Hex Artifact Content Вы: nobody
Вход

Artifact 6a657003fe57d88f82b5ec99867c59b3cef91738:


0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69  ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 52 65 66 61 63  pt..$uname Refac
0020: 74 6f 72 69 6e 67 0d 0a 24 64 6e 61 6d 65 20 d0  toring..$dname .
0030: a0 d0 b5 d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 d0  ................
0040: b8 d0 bd d0 b3 0d 0a 24 61 64 64 69 6e 20 67 6c  .......$addin gl
0050: 6f 62 61 6c 0d 0a 24 61 64 64 69 6e 20 73 74 64  obal..$addin std
0060: 6c 69 62 0d 0a 24 61 64 64 69 6e 20 76 62 73 0d  lib..$addin vbs.
0070: 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  .../////////////
0080: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0090: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f  ///////////..///
00d0: 2f 7b 20 43 d0 ba d1 80 d0 b8 d0 bf d1 82 20 22  /{ C.......... "
00e0: d0 a0 d0 b5 d1 84 d0 b0 d0 ba d1 82 d0 be d1 80  ................
00f0: d0 b8 d0 bd d0 b3 22 20 28 72 65 66 61 63 74 6f  ......" (refacto
0100: 72 69 6e 67 2e 6a 73 29 20 d0 b4 d0 bb d1 8f 20  ring.js) ...... 
0110: d0 bf d1 80 d0 be d0 b5 d0 ba d1 82 d0 b0 20 22  .............. "
0120: d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 d1 82  ................
0130: 22 0d 0a 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 20 d0 9e  "..////..//// ..
0140: d0 bf d0 b8 d1 81 d0 b0 d0 bd d0 b8 d0 b5 3a 20  ..............: 
0150: d0 a0 d0 b5 d0 b0 d0 bb d0 b8 d0 b7 d1 83 d0 b5  ................
0160: d1 82 20 d0 bf d1 80 d0 be d1 81 d1 82 d0 b5 d0  .. .............
0170: b9 d1 88 d0 b8 d0 b5 20 d0 b8 d0 bd d1 81 d1 82  ....... ........
0180: d1 80 d1 83 d0 bc d0 b5 d0 bd d1 82 d1 8b 20 d1  .............. .
0190: 80 d0 b5 d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 d0  ................
01a0: b8 d0 bd d0 b3 d0 b0 2e 0d 0a 2f 2f 2f 2f 20 d0  ..........//// .
01b0: 90 d0 b2 d1 82 d0 be d1 80 3a 20 d0 90 d0 bb d0  .........: .....
01c0: b5 d0 ba d1 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 9a  ............. ..
01d0: d1 83 d0 bd d1 82 d0 b0 d1 88 d0 be d0 b2 20 3c  .............. <
01e0: 6b 75 6e 74 61 73 68 6f 76 40 67 6d 61 69 6c 2e  kuntashov@gmail.
01f0: 63 6f 6d 3e 2c 20 68 74 74 70 3a 2f 2f 63 6f 6d  com>, http://com
0200: 70 61 75 64 2e 72 75 2f 62 6c 6f 67 0d 0a 2f 2f  paud.ru/blog..//
0210: 2f 2f 7d 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  //}..///////////
0220: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0230: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0240: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0250: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0260: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 0d  /////////////...
0270: 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28  .stdlib.require(
0280: 27 54 65 78 74 57 69 6e 64 6f 77 2e 6a 73 27 2c  'TextWindow.js',
0290: 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a 73   SelfScript);..s
02a0: 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28 27 53  tdlib.require('S
02b0: 65 74 74 69 6e 67 73 4d 61 6e 61 67 65 6d 65 6e  ettingsManagemen
02c0: 74 2e 6a 73 27 2c 20 53 65 6c 66 53 63 72 69 70  t.js', SelfScrip
02d0: 74 29 3b 0d 0a 0d 0a 73 74 64 6c 69 62 2e 72 65  t);....stdlib.re
02e0: 71 75 69 72 65 28 27 53 79 6e 74 61 78 41 6e 61  quire('SyntaxAna
02f0: 6c 79 73 69 73 2e 6a 73 27 2c 20 53 65 6c 66 53  lysis.js', SelfS
0300: 63 72 69 70 74 29 3b 0d 0a 2f 2f d0 94 d0 bb d1  cript);..//.....
0310: 8f 20 d0 be d1 82 d0 bb d0 b0 d0 b4 d0 ba d0 b8  . ..............
0320: 3a 20 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65  : stdlib.require
0330: 28 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 67 65 74  (profileRoot.get
0340: 56 61 6c 75 65 28 22 53 6e 65 67 6f 70 61 74 2f  Value("Snegopat/
0350: 4d 61 69 6e 46 6f 6c 64 65 72 22 29 20 2b 20 27  MainFolder") + '
0360: 75 73 65 72 5c 5c 4c 69 62 73 5c 5c 53 79 6e 74  user\\Libs\\Synt
0370: 61 78 41 6e 61 6c 79 73 69 73 2e 6a 73 27 2c 20  axAnalysis.js', 
0380: 53 65 6c 66 53 63 72 69 70 74 29 3b 20 0d 0a 0d  SelfScript); ...
0390: 0a 67 6c 6f 62 61 6c 2e 63 6f 6e 6e 65 63 74 47  .global.connectG
03a0: 6c 6f 62 61 6c 73 28 53 65 6c 66 53 63 72 69 70  lobals(SelfScrip
03b0: 74 29 3b 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f  t);..../////////
03c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03e0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0400: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d  ///////////////.
0410: 0a 2f 2f 2f 2f 7b 20 d0 9c d0 b0 d0 ba d1 80 d0  .////{ .........
0420: be d1 81 d1 8b 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 53  .......////....S
0430: 65 6c 66 53 63 72 69 70 74 2e 73 65 6c 66 5b 27  elfScript.self['
0440: 6d 61 63 72 6f 73 d0 92 d1 8b d0 b4 d0 b5 d0 bb  macros..........
0450: d0 b8 d1 82 d1 8c 20 d0 bc d0 b5 d1 82 d0 be d0  ...... .........
0460: b4 20 28 65 78 74 72 61 63 74 20 6d 65 74 68 6f  . (extract metho
0470: 64 29 27 5d 20 3d 20 66 75 6e 63 74 69 6f 6e 20  d)'] = function 
0480: 28 29 20 7b 0d 0a 20 20 20 20 72 65 66 61 63 74  () {..    refact
0490: 6f 72 28 45 78 74 72 61 63 74 4d 65 74 68 6f 64  or(ExtractMethod
04a0: 52 65 66 61 63 74 6f 72 69 6e 67 29 3b 0d 0a 7d  Refactoring);..}
04b0: 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70 74 2e 73  ....SelfScript.s
04c0: 65 6c 66 5b 27 6d 61 63 72 6f 73 d0 9f d0 be d0  elf['macros.....
04d0: ba d0 b0 d0 b7 d0 b0 d1 82 d1 8c 20 d1 81 d0 bf  ........... ....
04e0: d0 b8 d1 81 d0 be d0 ba 20 d0 bf d1 80 d0 be d1  ........ .......
04f0: 86 d0 b5 d0 b4 d1 83 d1 80 20 d0 b8 20 d1 84 d1  ......... .. ...
0500: 83 d0 bd d0 ba d1 86 d0 b8 d0 b9 20 d0 bc d0 be  ........... ....
0510: d0 b4 d1 83 d0 bb d1 8f 27 5d 20 3d 20 66 75 6e  ........'] = fun
0520: 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20  ction () {..    
0530: 76 61 72 20 74 77 20 3d 20 47 65 74 54 65 78 74  var tw = GetText
0540: 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69  Window();..    i
0550: 66 20 28 21 74 77 29 20 72 65 74 75 72 6e 3b 0d  f (!tw) return;.
0560: 0a 20 20 20 20 76 61 72 20 6d 6f 64 75 6c 65 20  .    var module 
0570: 3d 20 53 79 6e 74 61 78 41 6e 61 6c 79 73 69 73  = SyntaxAnalysis
0580: 2e 41 6e 61 6c 79 73 65 54 65 78 74 44 6f 63 75  .AnalyseTextDocu
0590: 6d 65 6e 74 28 74 77 29 3b 0d 0a 20 20 20 20 76  ment(tw);..    v
05a0: 61 72 20 6d 65 74 68 4c 69 73 74 20 3d 20 6e 65  ar methList = ne
05b0: 77 20 4d 65 74 68 6f 64 4c 69 73 74 46 6f 72 6d  w MethodListForm
05c0: 28 6d 6f 64 75 6c 65 29 3b 0d 0a 20 20 20 20 69  (module);..    i
05d0: 66 20 28 6d 65 74 68 4c 69 73 74 2e 73 65 6c 65  f (methList.sele
05e0: 63 74 4d 65 74 68 6f 64 28 29 29 0d 0a 20 20 20  ctMethod())..   
05f0: 20 20 20 20 20 4d 65 73 73 61 67 65 28 6d 65 74       Message(met
0600: 68 4c 69 73 74 2e 53 65 6c 65 63 74 65 64 4d 65  hList.SelectedMe
0610: 74 68 6f 64 2e 4e 61 6d 65 29 3b 0d 0a 7d 0d 0a  thod.Name);..}..
0620: 0d 0a 53 65 6c 66 53 63 72 69 70 74 2e 73 65 6c  ..SelfScript.sel
0630: 66 5b 27 6d 61 63 72 6f 73 d0 a1 d0 be d0 b7 d0  f['macros.......
0640: b4 d0 b0 d1 82 d1 8c 20 d0 b7 d0 b0 d0 b3 d0 bb  ....... ........
0650: d1 83 d1 88 d0 ba d1 83 20 d0 b4 d0 bb d1 8f 20  ........ ...... 
0660: d0 bd d0 b5 d1 81 d1 83 d1 89 d0 b5 d1 81 d1 82  ................
0670: d0 b2 d1 83 d1 8e d1 89 d0 b5 d0 b3 d0 be 20 d0  .............. .
0680: bc d0 b5 d1 82 d0 be d0 b4 d0 b0 27 5d 20 3d 20  ...........'] = 
0690: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20  function () {.. 
06a0: 20 20 20 72 65 66 61 63 74 6f 72 28 43 72 65 61     refactor(Crea
06b0: 74 65 4d 65 74 68 6f 64 53 74 75 62 52 65 66 61  teMethodStubRefa
06c0: 63 74 6f 72 69 6e 67 2c 20 74 72 75 65 29 3b 0d  ctoring, true);.
06d0: 0a 7d 0d 0a 0d 0a 2f 2f 2f 2f 7d 20 d0 9c d0 b0  .}....////} ....
06e0: d0 ba d1 80 d0 be d1 81 d1 8b 0d 0a 0d 0a 66 75  ..............fu
06f0: 6e 63 74 69 6f 6e 20 72 65 66 61 63 74 6f 72 28  nction refactor(
0700: 72 65 66 61 63 74 6f 72 65 72 43 6c 61 73 73 2c  refactorerClass,
0710: 20 77 69 74 68 6f 75 74 53 65 6c 65 63 74 69 6f   withoutSelectio
0720: 6e 29 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  n) {..    ..    
0730: 76 61 72 20 74 77 20 3d 20 47 65 74 54 65 78 74  var tw = GetText
0740: 57 69 6e 64 6f 77 28 29 3b 0d 0a 20 20 20 20 69  Window();..    i
0750: 66 20 28 21 74 77 29 20 72 65 74 75 72 6e 3b 0d  f (!tw) return;.
0760: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 73  .    ..    var s
0770: 65 6c 54 65 78 74 20 3d 20 74 77 2e 47 65 74 53  elText = tw.GetS
0780: 65 6c 65 63 74 65 64 54 65 78 74 28 29 3b 0d 0a  electedText();..
0790: 20 20 20 20 69 66 20 28 21 73 65 6c 54 65 78 74      if (!selText
07a0: 20 26 26 20 21 77 69 74 68 6f 75 74 53 65 6c 65   && !withoutSele
07b0: 63 74 69 6f 6e 29 20 0d 0a 20 20 20 20 7b 0d 0a  ction) ..    {..
07c0: 20 20 20 20 20 20 20 20 4d 65 73 73 61 67 65 28          Message(
07d0: 22 d0 9d d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb  ".... ..........
07e0: d0 b5 d0 bd 20 d1 82 d0 b5 d0 ba d1 81 d1 82 2c  .... ..........,
07f0: 20 d0 ba 20 d0 ba d0 be d1 82 d0 be d1 80 d0 be   .. ............
0800: d0 bc d1 83 20 d0 bf d1 80 d0 b8 d0 bc d0 b5 d0  .... ...........
0810: bd d1 8f d0 b5 d1 82 d1 81 d1 8f 20 d1 80 d0 b5  ........... ....
0820: d1 84 d0 b0 d0 ba d1 82 d0 be d1 80 d0 b8 d0 bd  ................
0830: d0 b3 21 22 29 3b 0d 0a 20 20 20 20 20 20 20 20  ..!");..        
0840: 72 65 74 75 72 6e 3b 0d 0a 20 20 20 20 7d 0d 0a  return;..    }..
0850: 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 6d 6f      ..    var mo
0860: 64 75 6c 65 20 3d 20 53 79 6e 74 61 78 41 6e 61  dule = SyntaxAna
0870: 6c 79 73 69 73 2e 41 6e 61 6c 79 73 65 54 65 78  lysis.AnalyseTex
0880: 74 44 6f 63 75 6d 65 6e 74 28 74 77 29 3b 0d 0a  tDocument(tw);..
0890: 20 20 20 20 76 61 72 20 72 65 66 61 63 74 6f 72      var refactor
08a0: 65 72 20 3d 20 6e 65 77 20 72 65 66 61 63 74 6f  er = new refacto
08b0: 72 65 72 43 6c 61 73 73 28 6d 6f 64 75 6c 65 29  rerClass(module)
08c0: 3b 0d 0a 20 20 20 20 72 65 66 61 63 74 6f 72 65  ;..    refactore
08d0: 72 2e 72 65 66 61 63 74 6f 72 28 73 65 6c 54 65  r.refactor(selTe
08e0: 78 74 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 2f 2f 2f  xt);..}..../////
08f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0900: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0910: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0920: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0930: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0940: 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20 4d 65 74 68 6f  ///..////{ Metho
0950: 64 4c 69 73 74 46 6f 72 6d 0d 0a 2f 2f 2f 2f 0d  dListForm..////.
0960: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 4d 65 74 68  ...function Meth
0970: 6f 64 4c 69 73 74 46 6f 72 6d 28 6d 6f 64 75 6c  odListForm(modul
0980: 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 74 68 69 73  e) {....    this
0990: 2e 6d 6f 64 75 6c 65 20 3d 20 6d 6f 64 75 6c 65  .module = module
09a0: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 6f 72 69 67  ;..    this.orig
09b0: 69 6e 61 6c 4d 65 74 68 6f 64 4c 69 73 74 20 3d  inalMethodList =
09c0: 20 6d 6f 64 75 6c 65 2e 67 65 74 4d 65 74 68 6f   module.getMetho
09d0: 64 73 54 61 62 6c 65 28 29 3b 0d 0a 0d 0a 20 20  dsTable();....  
09e0: 20 20 74 68 69 73 2e 66 6f 72 6d 20 3d 20 6c 6f    this.form = lo
09f0: 61 64 53 63 72 69 70 74 46 6f 72 6d 28 53 65 6c  adScriptForm(Sel
0a00: 66 53 63 72 69 70 74 2e 66 75 6c 6c 50 61 74 68  fScript.fullPath
0a10: 2e 72 65 70 6c 61 63 65 28 2f 5c 2e 6a 73 24 2f  .replace(/\.js$/
0a20: 2c 20 27 2e 6d 65 74 68 6f 64 4c 69 73 74 2e 73  , '.methodList.s
0a30: 73 66 27 29 2c 20 74 68 69 73 29 3b 0d 0a 20 20  sf'), this);..  
0a40: 20 20 74 68 69 73 2e 53 65 6c 65 63 74 65 64 4d    this.SelectedM
0a50: 65 74 68 6f 64 20 3d 20 75 6e 64 65 66 69 6e 65  ethod = undefine
0a60: 64 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68  d;..    ..    th
0a70: 69 73 2e 73 65 74 74 69 6e 67 73 20 3d 20 53 65  is.settings = Se
0a80: 74 74 69 6e 67 73 4d 61 6e 61 67 65 6d 65 6e 74  ttingsManagement
0a90: 2e 43 72 65 61 74 65 4d 61 6e 61 67 65 72 28 53  .CreateManager(S
0aa0: 65 6c 66 53 63 72 69 70 74 2e 75 6e 69 71 75 65  elfScript.unique
0ab0: 4e 61 6d 65 20 2b 20 22 2f 4d 65 74 68 6f 64 4c  Name + "/MethodL
0ac0: 69 73 74 46 6f 72 6d 22 2c 20 7b 0d 0a 20 20 20  istForm", {..   
0ad0: 20 20 20 20 20 27 44 6f 4e 6f 74 46 69 6c 74 65       'DoNotFilte
0ae0: 72 27 3a 20 66 61 6c 73 65 2c 20 27 53 6f 72 74  r': false, 'Sort
0af0: 42 79 4e 61 6d 65 27 20 3a 20 66 61 6c 73 65 0d  ByName' : false.
0b00: 0a 20 20 20 20 7d 29 3b 0d 0a 20 20 20 20 0d 0a  .    });..    ..
0b10: 20 20 20 20 74 68 69 73 2e 73 65 74 74 69 6e 67      this.setting
0b20: 73 2e 4c 6f 61 64 53 65 74 74 69 6e 67 73 28 29  s.LoadSettings()
0b30: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20  ;..        ..   
0b40: 20 76 61 72 20 6d 65 74 68 4c 69 73 74 46 6f 72   var methListFor
0b50: 6d 20 3d 20 74 68 69 73 3b 0d 0a 20 20 20 20 74  m = this;..    t
0b60: 68 69 73 2e 74 63 57 61 74 63 68 65 72 20 3d 20  his.tcWatcher = 
0b70: 6e 65 77 20 54 65 78 74 43 68 61 6e 67 65 73 57  new TextChangesW
0b80: 61 74 63 68 65 72 28 74 68 69 73 2e 66 6f 72 6d  atcher(this.form
0b90: 2e 43 6f 6e 74 72 6f 6c 73 2e 53 65 61 72 63 68  .Controls.Search
0ba0: 54 65 78 74 2c 20 33 2c 20 66 75 6e 63 74 69 6f  Text, 3, functio
0bb0: 6e 28 74 29 7b 6d 65 74 68 4c 69 73 74 46 6f 72  n(t){methListFor
0bc0: 6d 2e 66 69 6c 6c 4d 65 74 68 6f 64 4c 69 73 74  m.fillMethodList
0bd0: 28 74 29 7d 29 3b 0d 0a 20 20 20 20 0d 0a 20 20  (t)});..    ..  
0be0: 20 20 74 68 69 73 2e 69 63 6f 6e 73 20 3d 20 7b    this.icons = {
0bf0: 0d 0a 20 20 20 20 20 20 20 20 27 50 72 6f 63 27  ..        'Proc'
0c00: 3a 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74  : this.form.Cont
0c10: 72 6f 6c 73 2e 70 69 63 50 72 6f 63 2e 50 69 63  rols.picProc.Pic
0c20: 74 75 72 65 2c 0d 0a 20 20 20 20 20 20 20 20 27  ture,..        '
0c30: 46 75 6e 63 27 3a 20 74 68 69 73 2e 66 6f 72 6d  Func': this.form
0c40: 2e 43 6f 6e 74 72 6f 6c 73 2e 70 69 63 46 75 6e  .Controls.picFun
0c50: 63 2e 50 69 63 74 75 72 65 0d 0a 20 20 20 20 7d  c.Picture..    }
0c60: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73  ..    ..    this
0c70: 2e 66 69 6c 6c 4d 65 74 68 6f 64 4c 69 73 74 28  .fillMethodList(
0c80: 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c  );..}....MethodL
0c90: 69 73 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70  istForm.prototyp
0ca0: 65 2e 73 65 6c 65 63 74 4d 65 74 68 6f 64 20 3d  e.selectMethod =
0cb0: 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a   function () {..
0cc0: 20 20 20 20 74 68 69 73 2e 53 65 6c 65 63 74 65      this.Selecte
0cd0: 64 4d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e 66  dMethod = this.f
0ce0: 6f 72 6d 2e 44 6f 4d 6f 64 61 6c 28 29 3b 0d 0a  orm.DoModal();..
0cf0: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e      return this.
0d00: 53 65 6c 65 63 74 65 64 4d 65 74 68 6f 64 20 3f  SelectedMethod ?
0d10: 20 74 72 75 65 20 3a 20 66 61 6c 73 65 3b 0d 0a   true : false;..
0d20: 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46  }....MethodListF
0d30: 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 4d 65  orm.prototype.Me
0d40: 74 68 6f 64 4c 69 73 74 53 65 6c 65 63 74 69 6f  thodListSelectio
0d50: 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 6f  n = function (Co
0d60: 6e 74 72 6f 6c 2c 20 53 65 6c 65 63 74 65 64 52  ntrol, SelectedR
0d70: 6f 77 2c 20 43 6f 6c 75 6d 6e 2c 20 44 65 66 61  ow, Column, Defa
0d80: 75 6c 74 48 61 6e 64 6c 65 72 29 20 7b 0d 0a 20  ultHandler) {.. 
0d90: 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6c 6f     this.form.Clo
0da0: 73 65 28 53 65 6c 65 63 74 65 64 52 6f 77 2e 76  se(SelectedRow.v
0db0: 61 6c 2e 5f 6d 65 74 68 6f 64 29 3b 0d 0a 7d 0d  al._method);..}.
0dc0: 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46 6f 72  ...MethodListFor
0dd0: 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 4d 65 74 68  m.prototype.Meth
0de0: 6f 64 4c 69 73 74 4f 6e 52 6f 77 4f 75 74 70 75  odListOnRowOutpu
0df0: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43 6f  t = function (Co
0e00: 6e 74 72 6f 6c 2c 20 52 6f 77 41 70 70 65 61 72  ntrol, RowAppear
0e10: 61 6e 63 65 2c 20 52 6f 77 44 61 74 61 29 20 7b  ance, RowData) {
0e20: 0d 0a 20 20 20 20 76 61 72 20 6e 61 6d 65 43 65  ..    var nameCe
0e30: 6c 6c 20 3d 20 52 6f 77 41 70 70 65 61 72 61 6e  ll = RowAppearan
0e40: 63 65 2e 76 61 6c 2e 43 65 6c 6c 73 2e 4e 61 6d  ce.val.Cells.Nam
0e50: 65 3b 0d 0a 20 20 20 20 6e 61 6d 65 43 65 6c 6c  e;..    nameCell
0e60: 2e 53 65 74 50 69 63 74 75 72 65 28 20 52 6f 77  .SetPicture( Row
0e70: 44 61 74 61 2e 76 61 6c 2e 49 73 50 72 6f 63 20  Data.val.IsProc 
0e80: 3f 20 74 68 69 73 2e 69 63 6f 6e 73 2e 50 72 6f  ? this.icons.Pro
0e90: 63 20 3a 20 74 68 69 73 2e 69 63 6f 6e 73 2e 46  c : this.icons.F
0ea0: 75 6e 63 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68  unc);..}....Meth
0eb0: 6f 64 4c 69 73 74 46 6f 72 6d 2e 70 72 6f 74 6f  odListForm.proto
0ec0: 74 79 70 65 2e 43 6d 64 42 61 72 53 6f 72 74 42  type.CmdBarSortB
0ed0: 79 4e 61 6d 65 20 3d 20 66 75 6e 63 74 69 6f 6e  yName = function
0ee0: 20 28 62 75 74 74 6f 6e 29 20 7b 0d 0a 20 20 20   (button) {..   
0ef0: 20 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63   button.val.Chec
0f00: 6b 20 3d 20 21 62 75 74 74 6f 6e 2e 76 61 6c 2e  k = !button.val.
0f10: 43 68 65 63 6b 3b 0d 0a 20 20 20 20 74 68 69 73  Check;..    this
0f20: 2e 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61 6d 65  .form.SortByName
0f30: 20 3d 20 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68   = button.val.Ch
0f40: 65 63 6b 3b 0d 0a 20 20 20 20 74 68 69 73 2e 73  eck;..    this.s
0f50: 6f 72 74 4d 65 74 68 6f 64 4c 69 73 74 28 62 75  ortMethodList(bu
0f60: 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b 29 3b  tton.val.Check);
0f70: 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73  ..}....MethodLis
0f80: 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e  tForm.prototype.
0f90: 43 6d 64 42 61 72 44 6f 4e 6f 74 46 69 6c 74 65  CmdBarDoNotFilte
0fa0: 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 62 75  r = function (bu
0fb0: 74 74 6f 6e 29 20 7b 0d 0a 20 20 20 20 62 75 74  tton) {..    but
0fc0: 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b 20 3d 20  ton.val.Check = 
0fd0: 21 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63  !button.val.Chec
0fe0: 6b 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72  k;..    this.for
0ff0: 6d 2e 44 6f 4e 6f 74 46 69 6c 74 65 72 20 3d 20  m.DoNotFilter = 
1000: 62 75 74 74 6f 6e 2e 76 61 6c 2e 43 68 65 63 6b  button.val.Check
1010: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 6c 6c  ;..    this.fill
1020: 4d 65 74 68 6f 64 4c 69 73 74 28 74 68 69 73 2e  MethodList(this.
1030: 66 6f 72 6d 2e 53 65 61 72 63 68 54 65 78 74 29  form.SearchText)
1040: 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69  ;..}....MethodLi
1050: 73 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65  stForm.prototype
1060: 2e 43 6d 64 42 61 72 4d 61 69 6e d0 9e d0 9a 20  .CmdBarMain.... 
1070: 3d 20 66 75 6e 63 74 69 6f 6e 20 28 d0 9a d0 bd  = function (....
1080: d0 be d0 bf d0 ba d0 b0 29 20 7b 0d 0a 20 20 20  ........) {..   
1090: 20 76 61 72 20 53 65 6c 65 63 74 65 64 52 6f 77   var SelectedRow
10a0: 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e   = this.form.Con
10b0: 74 72 6f 6c 73 2e 4d 65 74 68 6f 64 4c 69 73 74  trols.MethodList
10c0: 2e 43 75 72 72 65 6e 74 52 6f 77 3b 0d 0a 20 20  .CurrentRow;..  
10d0: 20 20 69 66 20 28 53 65 6c 65 63 74 65 64 52 6f    if (SelectedRo
10e0: 77 29 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73  w)..        this
10f0: 2e 66 6f 72 6d 2e 43 6c 6f 73 65 28 53 65 6c 65  .form.Close(Sele
1100: 63 74 65 64 52 6f 77 2e 5f 6d 65 74 68 6f 64 29  ctedRow._method)
1110: 3b 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20 20  ;..    else..   
1120: 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43       this.form.C
1130: 75 72 72 65 6e 74 43 6f 6e 74 72 6f 6c 20 3d 20  urrentControl = 
1140: 74 68 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f  this.form.Contro
1150: 6c 73 2e 53 65 61 72 63 68 54 65 78 74 3b 0d 0a  ls.SearchText;..
1160: 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46  }....MethodListF
1170: 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 4f 6e  orm.prototype.On
1180: 4f 70 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20  Open = function 
1190: 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 74 68 69 73  () {....    this
11a0: 2e 73 65 74 74 69 6e 67 73 2e 41 70 70 6c 79 54  .settings.ApplyT
11b0: 6f 46 6f 72 6d 28 74 68 69 73 2e 66 6f 72 6d 29  oForm(this.form)
11c0: 3b 0d 0a 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f  ;....    this.fo
11d0: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 43 6d 64 42  rm.Controls.CmdB
11e0: 61 72 2e 42 75 74 74 6f 6e 73 2e 53 6f 72 74 42  ar.Buttons.SortB
11f0: 79 4e 61 6d 65 2e 43 68 65 63 6b 20 3d 20 74 68  yName.Check = th
1200: 69 73 2e 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61  is.form.SortByNa
1210: 6d 65 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f  me;..    this.fo
1220: 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 43 6d 64 42  rm.Controls.CmdB
1230: 61 72 2e 42 75 74 74 6f 6e 73 2e 44 6f 4e 6f 74  ar.Buttons.DoNot
1240: 46 69 6c 74 65 72 2e 43 68 65 63 6b 20 3d 20 74  Filter.Check = t
1250: 68 69 73 2e 66 6f 72 6d 2e 44 6f 4e 6f 74 46 69  his.form.DoNotFi
1260: 6c 74 65 72 3b 0d 0a 20 20 20 20 0d 0a 20 20 20  lter;..    ..   
1270: 20 74 68 69 73 2e 6c 6f 61 64 65 64 4f 6e 4f 70   this.loadedOnOp
1280: 65 6e 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 20  en = true;..    
1290: 74 68 69 73 2e 74 63 57 61 74 63 68 65 72 2e 73  this.tcWatcher.s
12a0: 74 61 72 74 28 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65  tart();..}....Me
12b0: 74 68 6f 64 4c 69 73 74 46 6f 72 6d 2e 70 72 6f  thodListForm.pro
12c0: 74 6f 74 79 70 65 2e 42 65 66 6f 72 65 43 6c 6f  totype.BeforeClo
12d0: 73 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 43  se = function (C
12e0: 61 6e 63 65 6c 2c 20 53 74 61 6e 64 61 72 64 48  ancel, StandardH
12f0: 61 6e 64 6c 65 72 29 20 7b 0d 0a 20 20 20 20 74  andler) {..    t
1300: 68 69 73 2e 74 63 57 61 74 63 68 65 72 2e 73 74  his.tcWatcher.st
1310: 6f 70 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e  op();..    this.
1320: 73 61 76 65 53 65 74 74 69 6e 67 73 28 29 3b 0d  saveSettings();.
1330: 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74  .}....MethodList
1340: 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 66  Form.prototype.f
1350: 69 6c 6c 4d 65 74 68 6f 64 4c 69 73 74 20 3d 20  illMethodList = 
1360: 66 75 6e 63 74 69 6f 6e 20 28 6e 65 77 54 65 78  function (newTex
1370: 74 29 20 7b 0d 0a 0d 0a 20 20 20 20 69 66 20 28  t) {....    if (
1380: 21 6e 65 77 54 65 78 74 20 7c 7c 20 6e 65 77 54  !newText || newT
1390: 65 78 74 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 24  ext.match(/^\s*$
13a0: 2f 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  /))..    {..    
13b0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c 6f 61      if (this.loa
13c0: 64 65 64 4f 6e 4f 70 65 6e 29 0d 0a 20 20 20 20  dedOnOpen)..    
13d0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 61          this.loa
13e0: 64 65 64 4f 6e 4f 70 65 6e 20 3d 20 66 61 6c 73  dedOnOpen = fals
13f0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65  e;..        else
1400: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68  ..            th
1410: 69 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73  is.form.Controls
1420: 2e 4d 65 74 68 6f 64 4c 69 73 74 2e 56 61 6c 75  .MethodList.Valu
1430: 65 20 3d 20 74 68 69 73 2e 6f 72 69 67 69 6e 61  e = this.origina
1440: 6c 4d 65 74 68 6f 64 4c 69 73 74 2e 43 6f 70 79  lMethodList.Copy
1450: 28 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 0d  ();            .
1460: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c 73 65  .    }..    else
1470: 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20   ..    {..      
1480: 20 20 76 61 72 20 61 20 3d 20 6e 65 77 54 65 78    var a = newTex
1490: 74 2e 73 70 6c 69 74 28 2f 5c 73 2b 2f 29 3b 0d  t.split(/\s+/);.
14a0: 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61  .        for (va
14b0: 72 20 69 3d 30 3b 20 69 3c 61 2e 6c 65 6e 67 74  r i=0; i<a.lengt
14c0: 68 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 20 20 20  h; i++)..       
14d0: 20 20 20 20 20 61 5b 69 5d 20 3d 20 53 74 72 69       a[i] = Stri
14e0: 6e 67 55 74 69 6c 73 2e 61 64 64 53 6c 61 73 68  ngUtils.addSlash
14f0: 65 73 28 61 5b 69 5d 29 3b 0d 0a 20 20 20 20 20  es(a[i]);..     
1500: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
1510: 20 76 61 72 20 72 65 20 3d 20 6e 65 77 20 52 65   var re = new Re
1520: 67 45 78 70 28 61 2e 6a 6f 69 6e 28 22 2e 2a 3f  gExp(a.join(".*?
1530: 22 29 2c 20 27 69 27 29 3b 20 20 20 20 0d 0a 20  "), 'i');    .. 
1540: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
1550: 20 69 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 44   if (this.form.D
1560: 6f 4e 6f 74 46 69 6c 74 65 72 29 0d 0a 20 20 20  oNotFilter)..   
1570: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
1580: 20 20 20 20 76 61 72 20 63 75 72 72 65 6e 74 52      var currentR
1590: 6f 77 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0d  ow = undefined;.
15a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20  .            .. 
15b0: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6d             var m
15c0: 65 74 68 4c 69 73 74 20 3d 20 74 68 69 73 2e 6f  ethList = this.o
15d0: 72 69 67 69 6e 61 6c 4d 65 74 68 6f 64 4c 69 73  riginalMethodLis
15e0: 74 2e 43 6f 70 79 28 29 3b 0d 0a 20 20 20 20 20  t.Copy();..     
15f0: 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20         for (var 
1600: 72 6f 77 4e 6f 20 3d 20 30 3b 20 72 6f 77 4e 6f  rowNo = 0; rowNo
1610: 20 3c 20 6d 65 74 68 4c 69 73 74 2e 43 6f 75 6e   < methList.Coun
1620: 74 28 29 3b 20 72 6f 77 4e 6f 2b 2b 29 0d 0a 20  t(); rowNo++).. 
1630: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20             {..  
1640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61                va
1650: 72 20 72 6f 77 20 3d 20 6d 65 74 68 4c 69 73 74  r row = methList
1660: 2e 47 65 74 28 72 6f 77 4e 6f 29 3b 0d 0a 20 20  .Get(rowNo);..  
1670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
1680: 20 28 72 65 2e 74 65 73 74 28 72 6f 77 2e 4e 61   (re.test(row.Na
1690: 6d 65 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20  me))..          
16a0: 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20        {..       
16b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72               cur
16c0: 72 65 6e 74 52 6f 77 20 3d 20 72 6f 77 3b 0d 0a  rentRow = row;..
16d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e0: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20      break;..    
16f0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20              }.. 
1700: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20             }..  
1710: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
1720: 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72          this.for
1730: 6d 2e 43 6f 6e 74 72 6f 6c 73 2e 4d 65 74 68 6f  m.Controls.Metho
1740: 64 4c 69 73 74 2e 56 61 6c 75 65 20 3d 20 6d 65  dList.Value = me
1750: 74 68 4c 69 73 74 3b 0d 0a 20 20 20 20 20 20 20  thList;..       
1760: 20 20 20 20 20 69 66 20 28 63 75 72 72 65 6e 74       if (current
1770: 52 6f 77 29 0d 0a 20 20 20 20 20 20 20 20 20 20  Row)..          
1780: 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e        this.form.
1790: 43 6f 6e 74 72 6f 6c 73 2e 4d 65 74 68 6f 64 4c  Controls.MethodL
17a0: 69 73 74 2e 43 75 72 72 65 6e 74 52 6f 77 20 3d  ist.CurrentRow =
17b0: 20 63 75 72 72 65 6e 74 52 6f 77 3b 0d 0a 20 20   currentRow;..  
17c0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20        }..       
17d0: 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 7b   else..        {
17e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61  ..            va
17f0: 72 20 6d 65 74 68 4c 69 73 74 20 3d 20 74 68 69  r methList = thi
1800: 73 2e 66 6f 72 6d 2e 43 6f 6e 74 72 6f 6c 73 2e  s.form.Controls.
1810: 4d 65 74 68 6f 64 4c 69 73 74 2e 56 61 6c 75 65  MethodList.Value
1820: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d  ;..            m
1830: 65 74 68 4c 69 73 74 2e 43 6c 65 61 72 28 29 3b  ethList.Clear();
1840: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20      ..          
1850: 20 20 66 6f 72 20 28 76 61 72 20 72 6f 77 4e 6f    for (var rowNo
1860: 20 3d 20 30 3b 20 72 6f 77 4e 6f 20 3c 20 74 68   = 0; rowNo < th
1870: 69 73 2e 6f 72 69 67 69 6e 61 6c 4d 65 74 68 6f  is.originalMetho
1880: 64 4c 69 73 74 2e 43 6f 75 6e 74 28 29 3b 20 72  dList.Count(); r
1890: 6f 77 4e 6f 2b 2b 29 0d 0a 20 20 20 20 20 20 20  owNo++)..       
18a0: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20       {..        
18b0: 20 20 20 20 20 20 20 20 76 61 72 20 72 6f 77 20          var row 
18c0: 3d 20 74 68 69 73 2e 6f 72 69 67 69 6e 61 6c 4d  = this.originalM
18d0: 65 74 68 6f 64 4c 69 73 74 2e 47 65 74 28 72 6f  ethodList.Get(ro
18e0: 77 4e 6f 29 3b 0d 0a 20 20 20 20 20 20 20 20 20  wNo);..         
18f0: 20 20 20 20 20 20 20 69 66 20 28 72 65 2e 74 65         if (re.te
1900: 73 74 28 72 6f 77 2e 4e 61 6d 65 29 29 0d 0a 20  st(row.Name)).. 
1910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1920: 20 20 20 46 69 6c 6c 50 72 6f 70 65 72 74 79 56     FillPropertyV
1930: 61 6c 75 65 73 28 6d 65 74 68 4c 69 73 74 2e 41  alues(methList.A
1940: 64 64 28 29 2c 20 72 6f 77 29 3b 0d 0a 20 20 20  dd(), row);..   
1950: 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20           }..    
1960: 20 20 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20      }..    }..  
1970: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 73 6f 72    ..    this.sor
1980: 74 4d 65 74 68 6f 64 4c 69 73 74 28 74 68 69 73  tMethodList(this
1990: 2e 66 6f 72 6d 2e 53 6f 72 74 42 79 4e 61 6d 65  .form.SortByName
19a0: 29 3b 0d 0a 7d 0d 0a 0d 0a 4d 65 74 68 6f 64 4c  );..}....MethodL
19b0: 69 73 74 46 6f 72 6d 2e 70 72 6f 74 6f 74 79 70  istForm.prototyp
19c0: 65 2e 73 6f 72 74 4d 65 74 68 6f 64 4c 69 73 74  e.sortMethodList
19d0: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 73 6f 72   = function (sor
19e0: 74 42 79 4e 61 6d 65 29 20 7b 0d 0a 20 20 20 20  tByName) {..    
19f0: 74 68 69 73 2e 66 6f 72 6d 2e 4d 65 74 68 6f 64  this.form.Method
1a00: 4c 69 73 74 2e 53 6f 72 74 28 73 6f 72 74 42 79  List.Sort(sortBy
1a10: 4e 61 6d 65 20 3f 20 27 4e 61 6d 65 27 20 3a 20  Name ? 'Name' : 
1a20: 27 53 74 61 72 74 4c 69 6e 65 27 29 3b 0d 0a 7d  'StartLine');..}
1a30: 0d 0a 0d 0a 4d 65 74 68 6f 64 4c 69 73 74 46 6f  ....MethodListFo
1a40: 72 6d 2e 70 72 6f 74 6f 74 79 70 65 2e 73 61 76  rm.prototype.sav
1a50: 65 53 65 74 74 69 6e 67 73 20 3d 20 66 75 6e 63  eSettings = func
1a60: 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 74  tion () {..    t
1a70: 68 69 73 2e 73 65 74 74 69 6e 67 73 2e 52 65 61  his.settings.Rea
1a80: 64 46 72 6f 6d 46 6f 72 6d 28 74 68 69 73 2e 66  dFromForm(this.f
1a90: 6f 72 6d 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e  orm);..    this.
1aa0: 73 65 74 74 69 6e 67 73 2e 53 61 76 65 53 65 74  settings.SaveSet
1ab0: 74 69 6e 67 73 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f  tings();..}..../
1ac0: 2f 2f 2f 7d 20 4d 65 74 68 6f 64 4c 69 73 74 46  ///} MethodListF
1ad0: 6f 72 6d 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f  orm..../////////
1ae0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
1af0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
1b00: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
1b10: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
1b20: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d  ///////////////.
1b30: 0a 2f 2f 2f 2f 7b 20 43 72 65 61 74 65 4d 65 74  .////{ CreateMet
1b40: 68 6f 64 53 74 75 62 52 65 66 61 63 74 6f 72 69  hodStubRefactori
1b50: 6e 67 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 66 75 6e 63  ng..////....func
1b60: 74 69 6f 6e 20 43 72 65 61 74 65 4d 65 74 68 6f  tion CreateMetho
1b70: 64 53 74 75 62 52 65 66 61 63 74 6f 72 69 6e 67  dStubRefactoring
1b80: 28 6d 6f 64 75 6c 65 29 20 7b 0d 0a 0d 0a 20 20  (module) {....  
1b90: 20 20 74 68 69 73 2e 6d 6f 64 75 6c 65 20 3d 20    this.module = 
1ba0: 6d 6f 64 75 6c 65 3b 0d 0a 20 20 20 20 74 68 69  module;..    thi
1bb0: 73 2e 74 65 78 74 57 69 6e 64 6f 77 20 3d 20 74  s.textWindow = t
1bc0: 68 69 73 2e 6d 6f 64 75 6c 65 2e 74 65 78 74 57  his.module.textW
1bd0: 69 6e 64 6f 77 3b 0d 0a 7d 0d 0a 0d 0a 43 72 65  indow;..}....Cre
1be0: 61 74 65 4d 65 74 68 6f 64 53 74 75 62 52 65 66  ateMethodStubRef
1bf0: 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79  actoring.prototy
1c00: 70 65 2e 72 65 66 61 63 74 6f 72 20 3d 20 66 75  pe.refactor = fu
1c10: 6e 63 74 69 6f 6e 20 28 73 65 6c 65 63 74 65 64  nction (selected
1c20: 54 65 78 74 29 20 7b 0d 0a 20 20 20 20 0d 0a 20  Text) {..    .. 
1c30: 20 20 20 76 61 72 20 6d 65 74 68 6f 64 4e 61 6d     var methodNam
1c40: 65 2c 20 6d 65 74 68 6f 64 53 69 67 6e 61 74 75  e, methodSignatu
1c50: 72 65 2c 20 6d 61 74 63 68 65 73 3b 0d 0a 20 20  re, matches;..  
1c60: 20 20 0d 0a 20 20 20 20 6d 65 74 68 6f 64 4e 61    ..    methodNa
1c70: 6d 65 20 3d 20 74 68 69 73 2e 74 65 78 74 57 69  me = this.textWi
1c80: 6e 64 6f 77 2e 47 65 74 57 6f 72 64 55 6e 64 65  ndow.GetWordUnde
1c90: 72 43 75 72 73 6f 72 28 29 3b 0d 0a 20 20 20 20  rCursor();..    
1ca0: 69 66 20 28 21 6d 65 74 68 6f 64 4e 61 6d 65 29  if (!methodName)
1cb0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ..        return
1cc0: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72  ;..    ..    var
1cd0: 20 6d 65 74 68 6f 64 5f 63 61 6c 6c 5f 70 72 6f   method_call_pro
1ce0: 63 20 3d 20 6e 65 77 20 52 65 67 45 78 70 28 22  c = new RegExp("
1cf0: 28 3f 3a 3b 5c 5c 73 2a 7c 5e 5c 5c 73 2a 29 22  (?:;\\s*|^\\s*)"
1d00: 20 2b 20 6d 65 74 68 6f 64 4e 61 6d 65 20 2b 20   + methodName + 
1d10: 27 28 5c 5c 28 2e 2b 3f 5c 5c 29 29 27 29 3b 0d  '(\\(.+?\\))');.
1d20: 0a 20 20 20 20 76 61 72 20 6d 65 74 68 6f 64 5f  .    var method_
1d30: 63 61 6c 6c 5f 66 75 6e 63 20 3d 20 6e 65 77 20  call_func = new 
1d40: 52 65 67 45 78 70 28 6d 65 74 68 6f 64 4e 61 6d  RegExp(methodNam
1d50: 65 20 2b 20 22 28 5c 5c 28 2e 2a 3f 5c 5c 29 29  e + "(\\(.*?\\))
1d60: 22 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 76  ");..    ..    v
1d70: 61 72 20 6c 69 6e 65 20 3d 20 74 68 69 73 2e 74  ar line = this.t
1d80: 65 78 74 57 69 6e 64 6f 77 2e 47 65 74 4c 69 6e  extWindow.GetLin
1d90: 65 28 74 68 69 73 2e 74 65 78 74 57 69 6e 64 6f  e(this.textWindo
1da0: 77 2e 47 65 74 43 61 72 65 74 50 6f 73 28 29 2e  w.GetCaretPos().
1db0: 62 65 67 69 6e 52 6f 77 29 3b 0d 0a 20 20 20 20  beginRow);..    
1dc0: 0d 0a 20 20 20 20 76 61 72 20 6d 61 74 63 68 65  ..    var matche
1dd0: 73 20 3d 20 6c 69 6e 65 2e 6d 61 74 63 68 28 6d  s = line.match(m
1de0: 65 74 68 6f 64 5f 63 61 6c 6c 5f 70 72 6f 63 29  ethod_call_proc)
1df0: 3b 0d 0a 20 20 20 20 76 61 72 20 69 73 50 72 6f  ;..    var isPro
1e00: 63 20 3d 20 28 6d 61 74 63 68 65 73 20 21 3d 20  c = (matches != 
1e10: 6e 75 6c 6c 29 3b 0d 0a 20 20 20 20 0d 0a 20 20  null);..    ..  
1e20: 20 20 69 66 20 28 21 69 73 50 72 6f 63 29 0d 0a    if (!isProc)..
1e30: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 6d      {..        m
1e40: 61 74 63 68 65 73 20 3d 20 6c 69 6e 65 2e 6d 61  atches = line.ma
1e50: 74 63 68 28 6d 65 74 68 6f 64 5f 63 61 6c 6c 5f  tch(method_call_
1e60: 66 75 6e 63 29 3b 0d 0a 20 20 20 20 20 20 20 20  func);..        
1e70: 69 66 20 28 21 6d 61 74 63 68 65 73 29 0d 0a 20  if (!matches).. 
1e80: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72             retur
1e90: 6e 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d  n;..    }..    .
1ea0: 0a 20 20 20 20 6d 65 74 68 6f 64 53 69 67 6e 61  .    methodSigna
1eb0: 74 75 72 65 20 3d 20 6d 65 74 68 6f 64 4e 61 6d  ture = methodNam
1ec0: 65 20 2b 20 6d 61 74 63 68 65 73 5b 31 5d 3b 0d  e + matches[1];.
1ed0: 0a 20 20 20 20 0d 0a 20 20 20 20 76 61 72 20 70  .    ..    var p
1ee0: 72 6f 63 54 65 6d 70 6c 61 74 65 20 3d 20 22 5c  rocTemplate = "\
1ef0: 6e 22 20 20 0d 0a 20 20 20 20 2b 20 22 d0 9f d1  n"  ..    + "...
1f00: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0 b0 20  ............... 
1f10: d0 98 d0 bc d1 8f d0 9c d0 b5 d1 82 d0 be d0 b4  ................
1f20: d0 b0 28 29 5c 6e 22 0d 0a 20 20 20 20 2b 20 22  ..()\n"..    + "
1f30: 5c 74 2f 2f 54 4f 44 4f 3a 20 d0 94 d0 be d0 b1  \t//TODO: ......
1f40: d0 b0 d0 b2 d1 8c d1 82 d0 b5 20 d0 b8 d1 81 d1  .......... .....
1f50: 85 d0 be d0 b4 d0 bd d1 8b d0 b9 20 d0 ba d0 be  ........... ....
1f60: d0 b4 20 d0 bf d1 80 d0 be d1 86 d0 b5 d0 b4 d1  .. .............
1f70: 83 d1 80 d1 8b 2e 5c 6e 22 20 0d 0a 20 20 20 20  ......\n" ..    
1f80: 2b 20 22 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1  + ".............
1f90: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 5c  ...............\
1fa0: 6e 22 3b 0d 0a 0d 0a 20 20 20 20 76 61 72 20 66  n";....    var f
1fb0: 75 6e 63 54 65 6d 70 6c 61 74 65 20 3d 20 22 5c  uncTemplate = "\
1fc0: 6e 22 20 0d 0a 20 20 20 20 2b 20 22 d0 a4 d1 83  n" ..    + "....
1fd0: d0 bd d0 ba d1 86 d0 b8 d1 8f 20 d0 98 d0 bc d1  .......... .....
1fe0: 8f d0 9c d0 b5 d1 82 d0 be d0 b4 d0 b0 28 29 5c  .............()\
1ff0: 6e 22 0d 0a 20 20 20 20 2b 20 22 5c 74 2f 2f 54  n"..    + "\t//T
2000: 4f 44 4f 3a 20 d0 94 d0 be d0 b1 d0 b0 d0 b2 d1  ODO: ...........
2010: 8c d1 82 d0 b5 20 d0 b8 d1 81 d1 85 d0 be d0 b4  ..... ..........
2020: d0 bd d1 8b d0 b9 20 d0 ba d0 be d0 b4 20 d1 84  ...... ...... ..
2030: d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 2e 5c 6e 22  .............\n"
2040: 20 0d 0a 20 20 20 20 2b 20 22 5c 74 d0 92 d0 be   ..    + "\t....
2050: d0 b7 d0 b2 d1 80 d0 b0 d1 82 20 d0 9d d0 b5 d0  .......... .....
2060: be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0  ................
2070: bd d0 be 3b 5c 6e 22 0d 0a 20 20 20 20 2b 20 22  ...;\n"..    + "
2080: d0 9a d0 be d0 bd d0 b5 d1 86 d0 a4 d1 83 d0 bd  ................
2090: d0 ba d1 86 d0 b8 d0 b8 5c 6e 22 3b 0d 0a 20 20  ........\n";..  
20a0: 20 20 0d 0a 20 20 20 20 76 61 72 20 73 74 75 62    ..    var stub
20b0: 43 6f 64 65 20 3d 20 69 73 50 72 6f 63 20 3f 20  Code = isProc ? 
20c0: 70 72 6f 63 54 65 6d 70 6c 61 74 65 20 3a 20 66  procTemplate : f
20d0: 75 6e 63 54 65 6d 70 6c 61 74 65 3b 0d 0a 20 20  uncTemplate;..  
20e0: 20 20 73 74 75 62 43 6f 64 65 20 3d 20 73 74 75    stubCode = stu
20f0: 62 43 6f 64 65 2e 72 65 70 6c 61 63 65 28 27 d0  bCode.replace('.
2100: 98 d0 bc d1 8f d0 9c d0 b5 d1 82 d0 be d0 b4 d0  ................
2110: b0 28 29 27 2c 20 6d 65 74 68 6f 64 53 69 67 6e  .()', methodSign
2120: 61 74 75 72 65 29 3b 0d 0a 20 20 20 20 0d 0a 20  ature);..    .. 
2130: 20 20 20 76 61 72 20 6d 65 74 68 6f 64 4c 69 73     var methodLis
2140: 74 20 3d 20 6e 65 77 20 4d 65 74 68 6f 64 4c 69  t = new MethodLi
2150: 73 74 46 6f 72 6d 28 74 68 69 73 2e 6d 6f 64 75  stForm(this.modu
2160: 6c 65 29 3b 0d 0a 20 20 20 20 69 66 20 28 6d 65  le);..    if (me
2170: 74 68 6f 64 4c 69 73 74 2e 73 65 6c 65 63 74 4d  thodList.selectM
2180: 65 74 68 6f 64 28 29 29 0d 0a 20 20 20 20 7b 0d  ethod())..    {.
2190: 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 6e 73  .        var ins
21a0: 65 72 74 4c 69 6e 65 49 6e 64 65 78 20 3d 20 6d  ertLineIndex = m
21b0: 65 74 68 6f 64 4c 69 73 74 2e 53 65 6c 65 63 74  ethodList.Select
21c0: 65 64 4d 65 74 68 6f 64 2e 45 6e 64 4c 69 6e 65  edMethod.EndLine
21d0: 20 2b 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 74   + 1;..        t
21e0: 68 69 73 2e 74 65 78 74 57 69 6e 64 6f 77 2e 49  his.textWindow.I
21f0: 6e 73 65 72 74 4c 69 6e 65 28 69 6e 73 65 72 74  nsertLine(insert
2200: 4c 69 6e 65 49 6e 64 65 78 20 2b 20 31 2c 20 73  LineIndex + 1, s
2210: 74 75 62 43 6f 64 65 29 3b 0d 0a 20 20 20 20 20  tubCode);..     
2220: 20 20 20 74 68 69 73 2e 74 65 78 74 57 69 6e 64     this.textWind
2230: 6f 77 2e 53 65 74 43 61 72 65 74 50 6f 73 28 69  ow.SetCaretPos(i
2240: 6e 73 65 72 74 4c 69 6e 65 49 6e 64 65 78 20 2b  nsertLineIndex +
2250: 20 33 2c 20 31 29 3b 0d 0a 20 20 20 20 7d 0d 0a   3, 1);..    }..
2260: 7d 0d 0a 0d 0a 2f 2f 2f 2f 7d 20 43 72 65 61 74  }....////} Creat
2270: 65 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69  eMethodRefactori
2280: 6e 67 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ng....//////////
2290: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
22a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
22b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
22c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
22d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a  //////////////..
22e0: 2f 2f 2f 2f 7b 20 45 78 74 72 61 63 74 4d 65 74  ////{ ExtractMet
22f0: 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 0d 0a  hodRefactoring..
2300: 2f 2f 2f 2f 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e  ////....function
2310: 20 45 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65   ExtractMethodRe
2320: 66 61 63 74 6f 72 69 6e 67 28 6d 6f 64 75 6c 65  factoring(module
2330: 29 20 7b 0d 0a 20 20 20 20 74 68 69 73 2e 6d 6f  ) {..    this.mo
2340: 64 75 6c 65 20 3d 20 6d 6f 64 75 6c 65 3b 0d 0a  dule = module;..
2350: 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 20 3d 20      this.form = 
2360: 6c 6f 61 64 53 63 72 69 70 74 46 6f 72 6d 28 53  loadScriptForm(S
2370: 65 6c 66 53 63 72 69 70 74 2e 66 75 6c 6c 50 61  elfScript.fullPa
2380: 74 68 2e 72 65 70 6c 61 63 65 28 2f 5c 2e 6a 73  th.replace(/\.js
2390: 24 2f 2c 20 27 2e 65 78 74 72 61 63 74 4d 65 74  $/, '.extractMet
23a0: 68 6f 64 2e 73 73 66 27 29 2c 20 74 68 69 73 29  hod.ssf'), this)
23b0: 3b 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e  ;    ..    this.
23c0: 50 61 72 61 6d 73 20 3d 20 74 68 69 73 2e 66 6f  Params = this.fo
23d0: 72 6d 2e 50 61 72 61 6d 73 3b 0d 0a 20 20 20 20  rm.Params;..    
23e0: 74 68 69 73 2e 52 65 74 75 72 6e 56 61 6c 75 65  this.ReturnValue
23f0: 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 52 65 74   = this.form.Ret
2400: 75 72 6e 56 61 6c 75 65 3b 0d 0a 20 20 20 20 74  urnValue;..    t
2410: 68 69 73 2e 53 69 67 6e 61 74 75 72 65 50 72 65  his.SignaturePre
2420: 76 69 65 77 20 3d 20 74 68 69 73 2e 66 6f 72 6d  view = this.form
2430: 2e 53 69 67 6e 61 74 75 72 65 50 72 65 76 69 65  .SignaturePrevie
2440: 77 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 74  w;..}....Extract
2450: 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e  MethodRefactorin
2460: 67 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 74 56  g.prototype.getV
2470: 61 72 52 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20  arRe = function 
2480: 28 76 61 72 4e 61 6d 65 29 20 7b 0d 0a 20 20 20  (varName) {..   
2490: 20 72 65 74 75 72 6e 20 6e 65 77 20 52 65 67 45   return new RegE
24a0: 78 70 28 22 28 5b 5e 5c 5c 77 5c 5c 64 d0 90 2d  xp("([^\\w\\d..-
24b0: d1 8f 5c 2e 5d 7c 5e 29 22 20 2b 20 76 61 72 4e  ..\.]|^)" + varN
24c0: 61 6d 65 20 2b 20 22 28 5b 5e 5c 5c 77 5c 5c 64  ame + "([^\\w\\d
24d0: d0 90 2d d1 8f 5d 7c 24 29 22 2c 20 27 69 27 29  ..-..]|$)", 'i')
24e0: 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 4d  ;..}....ExtractM
24f0: 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67  ethodRefactoring
2500: 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 66 61 63  .prototype.refac
2510: 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28  tor = function (
2520: 73 65 6c 65 63 74 65 64 54 65 78 74 29 20 7b 0d  selectedText) {.
2530: 0a 0d 0a 20 20 20 20 76 61 72 20 73 65 6c 20 3d  ...    var sel =
2540: 20 74 68 69 73 2e 6d 6f 64 75 6c 65 2e 74 65 78   this.module.tex
2550: 74 57 69 6e 64 6f 77 2e 47 65 74 53 65 6c 65 63  tWindow.GetSelec
2560: 74 69 6f 6e 28 29 3b 0d 0a 0d 0a 20 20 20 20 2f  tion();....    /
2570: 2f 20 30 2e 20 d0 9e d0 bf d1 80 d0 b5 d0 b4 d0  / 0. ...........
2580: b5 d0 bb d0 b8 d1 82 d1 8c 20 d0 bf d0 b5 d1 80  ......... ......
2590: d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b5 20 d0  .............. .
25a0: b2 d0 bd d1 83 d1 82 d1 80 d0 b8 20 d0 b2 d1 8b  ........... ....
25b0: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d0 be d0 b3  ................
25c0: d0 be 20 d0 b1 d0 bb d0 be d0 ba d0 b0 20 d0 ba  .. .......... ..
25d0: d0 be d0 b4 d0 b0 20 28 d1 80 d0 b0 d1 81 d0 bf  ...... (........
25e0: d0 b0 d1 80 d1 81 d0 b8 d1 82 d1 8c 20 d0 b5 d0  ............ ...
25f0: b3 d0 be 29 2e 0d 0a 20 20 20 20 76 61 72 20 65  ...)...    var e
2600: 78 74 43 6f 6e 74 65 78 74 20 3d 20 74 68 69 73  xtContext = this
2610: 2e 67 65 74 43 6f 64 65 43 6f 6e 74 65 78 74 28  .getCodeContext(
2620: 73 65 6c 65 63 74 65 64 54 65 78 74 29 3b 0d 0a  selectedText);..
2630: 20 20 20 20 76 61 72 20 65 78 74 56 61 72 73 20      var extVars 
2640: 3d 20 65 78 74 43 6f 6e 74 65 78 74 2e 41 75 74  = extContext.Aut
2650: 6f 6d 61 74 69 63 56 61 72 73 3b 0d 0a 0d 0a 20  omaticVars;.... 
2660: 20 20 20 2f 2f 20 31 2e 20 d0 9e d0 bf d1 80 d0     // 1. .......
2670: b5 d0 b4 d0 b5 d0 bb d0 b8 d1 82 d1 8c 20 d0 bb  ............. ..
2680: d0 be d0 ba d0 b0 d0 bb d1 8c d0 bd d1 8b d0 b5  ................
2690: 20 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0   ...............
26a0: bd d1 8b d0 b5 20 d1 87 d0 b0 d1 81 d1 82 d0 b8  ..... ..........
26b0: 20 d0 ba d0 be d0 b4 d0 b0 20 d0 bc d0 b5 d1 82   ........ ......
26c0: d0 be d0 b4 d0 b0 20 d0 b2 d1 8b d1 88 d0 b5 20  ...... ........ 
26d0: d0 b2 d1 8b d0 b4 d0 b5 d0 bb d1 8f d0 b5 d0 bc  ................
26e0: d0 be d0 b3 d0 be 20 d0 ba d0 be d0 b4 d0 b0 2e  ...... .........
26f0: 0d 0a 20 20 20 20 2f 2f 20 32 2e 20 d0 9e d0 bf  ..    // 2. ....
2700: d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b8 d1 82 d1 8c  ................
2710: 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1   ...............
2720: 80 d1 8b 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 b0  ... ............
2730: 2c 20 d0 b8 d0 b7 20 d0 ba d0 be d1 82 d0 be d1  , .... .........
2740: 80 d0 be d0 b3 d0 be 20 d0 b2 d1 8b d0 b4 d0 b5  ....... ........
2750: d0 bb d1 8f d0 b5 d1 82 d1 81 d1 8f 20 d0 ba d0  ............ ...
2760: be d0 b4 2e 0d 0a 20 20 20 20 76 61 72 20 63 75  ......    var cu
2770: 72 4d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e 6d  rMethod = this.m
2780: 6f 64 75 6c 65 2e 67 65 74 41 63 74 69 76 65 4c  odule.getActiveL
2790: 69 6e 65 4d 65 74 68 6f 64 28 29 3b 0d 0a 20 20  ineMethod();..  
27a0: 20 20 0d 0a 20 20 20 20 76 61 72 20 63 6f 64 65    ..    var code
27b0: 42 65 66 6f 72 65 20 3d 20 74 68 69 73 2e 6d 6f  Before = this.mo
27c0: 64 75 6c 65 2e 74 65 78 74 57 69 6e 64 6f 77 2e  dule.textWindow.
27d0: 52 61 6e 67 65 28 63 75 72 4d 65 74 68 6f 64 2e  Range(curMethod.
27e0: 53 74 61 72 74 4c 69 6e 65 2c 20 31 2c 20 73 65  StartLine, 1, se
27f0: 6c 2e 62 65 67 69 6e 52 6f 77 2d 31 29 2e 47 65  l.beginRow-1).Ge
2800: 74 54 65 78 74 28 29 3b 0d 0a 20 20 20 20 76 61  tText();..    va
2810: 72 20 63 6f 6e 74 65 78 74 42 65 66 6f 72 65 20  r contextBefore 
2820: 3d 20 74 68 69 73 2e 67 65 74 43 6f 64 65 43 6f  = this.getCodeCo
2830: 6e 74 65 78 74 28 63 6f 64 65 42 65 66 6f 72 65  ntext(codeBefore
2840: 29 3b 0d 0a 0d 0a 20 20 20 20 2f 2f 20 33 2e 20  );....    // 3. 
2850: d0 9e d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b8  ................
2860: d1 82 d1 8c 2c 20 d0 ba d0 b0 d0 ba d0 b8 d0 b5  ...., ..........
2870: 20 31 2b 32 20 d0 b8 d0 bd d0 b8 d1 86 d0 b8 d0   1+2 ...........
2880: b0 d0 bb d0 b8 d0 b7 d0 b8 d1 80 d1 83 d1 8e d1  ................
2890: 82 d1 81 d1 8f 20 d0 b2 20 30 20 28 41 75 74 6f  ..... .. 0 (Auto
28a0: 6d 61 74 69 63 56 61 72 73 29 2c 20 d0 b0 20 d0  maticVars), .. .
28b0: ba d0 b0 d0 ba d0 b8 d0 b5 20 d0 b8 d1 81 d0 bf  ......... ......
28c0: d0 be d0 bb d1 8c d0 b7 d1 83 d1 8e d1 82 d1 81  ................
28d0: d1 8f 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 69  .. ..    this.fi
28e0: 6c 6c 50 61 72 61 6d 73 28 63 6f 6e 74 65 78 74  llParams(context
28f0: 42 65 66 6f 72 65 2e 41 75 74 6f 6d 61 74 69 63  Before.Automatic
2900: 56 61 72 73 2c 20 65 78 74 56 61 72 73 2c 20 73  Vars, extVars, s
2910: 65 6c 65 63 74 65 64 54 65 78 74 29 3b 20 20 20  electedText);   
2920: 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 6c 6c   ..    this.fill
2930: 50 61 72 61 6d 73 28 63 75 72 4d 65 74 68 6f 64  Params(curMethod
2940: 2e 50 61 72 61 6d 73 2c 20 65 78 74 56 61 72 73  .Params, extVars
2950: 2c 20 73 65 6c 65 63 74 65 64 54 65 78 74 29 3b  , selectedText);
2960: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 0d 0a      ..        ..
2970: 20 20 20 20 2f 2f 20 34 2e 20 d0 a2 d0 b5 20 d0      // 4. .... .
2980: bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0 bd d1  ................
2990: 8b d0 b5 2c 20 d0 ba d0 be d1 82 d0 be d1 80 d1  ..., ...........
29a0: 8b d0 b5 20 d0 b8 d1 81 d0 bf d0 be d0 bb d1 8c  ... ............
29b0: d0 b7 d1 83 d1 8e d1 82 d1 81 d1 8f 20 d0 b2 20  ............ .. 
29c0: d0 be d1 81 d1 82 d0 b0 d0 bb d1 8c d0 bd d0 be  ................
29d0: d0 b9 20 d1 87 d0 b0 d1 81 d1 82 d0 b8 20 d0 ba  .. .......... ..
29e0: d0 be d0 b4 d0 b0 20 2d 20 d0 b2 d0 be d0 b7 d0  ...... - .......
29f0: b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d0 bc d1 8b d0  ................
2a00: b5 20 d0 b7 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8  . ..............
2a10: d1 8f 2e 0d 0a 20 20 20 20 76 61 72 20 63 6f 64  .....    var cod
2a20: 65 41 66 74 65 72 20 3d 20 74 68 69 73 2e 6d 6f  eAfter = this.mo
2a30: 64 75 6c 65 2e 74 65 78 74 57 69 6e 64 6f 77 2e  dule.textWindow.
2a40: 52 61 6e 67 65 28 73 65 6c 2e 65 6e 64 52 6f 77  Range(sel.endRow
2a50: 20 2b 20 31 2c 20 31 2c 20 63 75 72 4d 65 74 68   + 1, 1, curMeth
2a60: 6f 64 2e 45 6e 64 4c 69 6e 65 29 2e 47 65 74 54  od.EndLine).GetT
2a70: 65 78 74 28 29 3b 0d 0a 20 20 20 20 76 61 72 20  ext();..    var 
2a80: 63 6f 6e 74 65 78 74 41 66 74 65 72 20 3d 20 74  contextAfter = t
2a90: 68 69 73 2e 67 65 74 43 6f 64 65 43 6f 6e 74 65  his.getCodeConte
2aa0: 78 74 28 63 6f 64 65 41 66 74 65 72 29 3b 0d 0a  xt(codeAfter);..
2ab0: 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 66      ..    this.f
2ac0: 69 6c 6c 52 65 74 75 72 6e 56 61 6c 75 65 73 28  illReturnValues(
2ad0: 63 6f 6e 74 65 78 74 41 66 74 65 72 2e 41 75 74  contextAfter.Aut
2ae0: 6f 6d 61 74 69 63 56 61 72 73 2c 20 65 78 74 56  omaticVars, extV
2af0: 61 72 73 2c 20 63 6f 64 65 41 66 74 65 72 29 3b  ars, codeAfter);
2b00: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20  ..        ..    
2b10: 69 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 44 6f  if (this.form.Do
2b20: 4d 6f 64 61 6c 28 29 29 0d 0a 20 20 20 20 20 20  Modal())..      
2b30: 20 20 74 68 69 73 2e 65 78 74 72 61 63 74 4d 65    this.extractMe
2b40: 74 68 6f 64 28 73 65 6c 65 63 74 65 64 54 65 78  thod(selectedTex
2b50: 74 29 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63  t);..}....Extrac
2b60: 74 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69  tMethodRefactori
2b70: 6e 67 2e 70 72 6f 74 6f 74 79 70 65 2e 66 69 6c  ng.prototype.fil
2b80: 6c 50 61 72 61 6d 73 20 3d 20 66 75 6e 63 74 69  lParams = functi
2b90: 6f 6e 20 28 65 78 74 41 72 67 73 2c 20 65 78 74  on (extArgs, ext
2ba0: 56 61 72 73 2c 20 73 6f 75 72 63 65 29 20 7b 0d  Vars, source) {.
2bb0: 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d  .    for (var i=
2bc0: 30 3b 20 69 3c 65 78 74 41 72 67 73 2e 6c 65 6e  0; i<extArgs.len
2bd0: 67 74 68 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b  gth; i++)..    {
2be0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 76 61  ..        var va
2bf0: 72 4e 61 6d 65 20 3d 20 65 78 74 41 72 67 73 5b  rName = extArgs[
2c00: 69 5d 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72  i];..        var
2c10: 20 72 65 20 3d 20 74 68 69 73 2e 67 65 74 56 61   re = this.getVa
2c20: 72 52 65 28 76 61 72 4e 61 6d 65 29 3b 0d 0a 20  rRe(varName);.. 
2c30: 20 20 20 20 20 20 20 69 66 20 28 72 65 2e 74 65         if (re.te
2c40: 73 74 28 73 6f 75 72 63 65 29 20 26 26 20 65 78  st(source) && ex
2c50: 74 56 61 72 73 2e 69 6e 64 65 78 4f 66 28 76 61  tVars.indexOf(va
2c60: 72 4e 61 6d 65 29 20 3d 3d 20 2d 31 29 0d 0a 20  rName) == -1).. 
2c70: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
2c80: 61 64 64 50 61 72 61 6d 28 76 61 72 4e 61 6d 65  addParam(varName
2c90: 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 29 3b 0d  , true, false);.
2ca0: 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 45 78 74  .    }..}....Ext
2cb0: 72 61 63 74 4d 65 74 68 6f 64 52 65 66 61 63 74  ractMethodRefact
2cc0: 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 70 65 2e  oring.prototype.
2cd0: 66 69 6c 6c 52 65 74 75 72 6e 56 61 6c 75 65 73  fillReturnValues
2ce0: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 65 78 74   = function (ext
2cf0: 41 72 67 73 2c 20 65 78 74 56 61 72 73 2c 20 73  Args, extVars, s
2d00: 6f 75 72 63 65 29 20 7b 0d 0a 20 20 20 20 2f 2f  ource) {..    //
2d10: 64 65 62 75 67 67 65 72 3b 0d 0a 20 20 20 20 66  debugger;..    f
2d20: 6f 72 20 28 76 61 72 20 69 3d 30 3b 20 69 3c 65  or (var i=0; i<e
2d30: 78 74 56 61 72 73 2e 6c 65 6e 67 74 68 3b 20 69  xtVars.length; i
2d40: 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  ++)..    {..    
2d50: 20 20 20 20 76 61 72 20 76 61 72 4e 61 6d 65 20      var varName 
2d60: 3d 20 65 78 74 56 61 72 73 5b 69 5d 3b 0d 0a 20  = extVars[i];.. 
2d70: 20 20 20 20 20 20 20 76 61 72 20 72 65 20 3d 20         var re = 
2d80: 74 68 69 73 2e 67 65 74 56 61 72 52 65 28 76 61  this.getVarRe(va
2d90: 72 4e 61 6d 65 29 3b 0d 0a 20 20 20 20 20 20 20  rName);..       
2da0: 20 69 66 20 28 72 65 2e 74 65 73 74 28 73 6f 75   if (re.test(sou
2db0: 72 63 65 29 20 26 26 20 65 78 74 41 72 67 73 2e  rce) && extArgs.
2dc0: 69 6e 64 65 78 4f 66 28 76 61 72 4e 61 6d 65 29  indexOf(varName)
2dd0: 20 3d 3d 20 2d 31 29 0d 0a 20 20 20 20 20 20 20   == -1)..       
2de0: 20 20 20 20 20 74 68 69 73 2e 61 64 64 52 65 74       this.addRet
2df0: 75 72 6e 56 61 6c 75 65 28 76 61 72 4e 61 6d 65  urnValue(varName
2e00: 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a  );..    }..}....
2e10: 45 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 66  ExtractMethodRef
2e20: 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79  actoring.prototy
2e30: 70 65 2e 67 65 74 43 6f 64 65 43 6f 6e 74 65 78  pe.getCodeContex
2e40: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 63 6f  t = function (co
2e50: 64 65 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 65  de) {..    var e
2e60: 78 74 72 61 63 74 65 64 43 6f 64 65 20 3d 20 22  xtractedCode = "
2e70: d0 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80  ................
2e80: d0 b0 20 d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0  .. .............
2e90: bd d0 bd d1 8b d0 b9 d0 9c d0 b5 d1 82 d0 be d0  ................
2ea0: b4 28 29 5c 6e 22 20 2b 20 63 6f 64 65 20 2b 20  .()\n" + code + 
2eb0: 22 5c 6e d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f d1  "\n.............
2ec0: 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b 22  ..............."
2ed0: 3b 0d 0a 20 20 20 20 76 61 72 20 65 78 74 72 61  ;..    var extra
2ee0: 63 74 65 64 43 6f 6e 74 65 78 74 20 3d 20 53 79  ctedContext = Sy
2ef0: 6e 74 61 78 41 6e 61 6c 79 73 69 73 2e 41 6e 61  ntaxAnalysis.Ana
2f00: 6c 79 73 65 4d 6f 64 75 6c 65 28 65 78 74 72 61  lyseModule(extra
2f10: 63 74 65 64 43 6f 64 65 2c 20 66 61 6c 73 65 29  ctedCode, false)
2f20: 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 65 78  ;..    return ex
2f30: 74 72 61 63 74 65 64 43 6f 6e 74 65 78 74 2e 67  tractedContext.g
2f40: 65 74 4d 65 74 68 6f 64 42 79 4e 61 6d 65 28 22  etMethodByName("
2f50: d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd  ................
2f60: d1 8b d0 b9 d0 9c d0 b5 d1 82 d0 be d0 b4 22 29  ..............")
2f70: 3b 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 4d  ;..}....ExtractM
2f80: 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67  ethodRefactoring
2f90: 2e 70 72 6f 74 6f 74 79 70 65 2e 61 64 64 50 61  .prototype.addPa
2fa0: 72 61 6d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28  ram = function (
2fb0: 70 61 72 61 6d 4e 61 6d 65 2c 20 69 73 50 61 72  paramName, isPar
2fc0: 61 6d 2c 20 69 73 56 61 6c 29 20 7b 0d 0a 20 20  am, isVal) {..  
2fd0: 20 20 69 66 20 28 21 74 68 69 73 2e 50 61 72 61    if (!this.Para
2fe0: 6d 73 2e 46 69 6e 64 28 70 61 72 61 6d 4e 61 6d  ms.Find(paramNam
2ff0: 65 2c 20 27 4e 61 6d 65 27 29 29 0d 0a 20 20 20  e, 'Name'))..   
3000: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20   {..        var 
3010: 70 61 72 61 6d 52 6f 77 20 3d 20 74 68 69 73 2e  paramRow = this.
3020: 50 61 72 61 6d 73 2e 41 64 64 28 29 3b 0d 0a 20  Params.Add();.. 
3030: 20 20 20 20 20 20 20 70 61 72 61 6d 52 6f 77 2e         paramRow.
3040: 4e 61 6d 65 20 3d 20 70 61 72 61 6d 4e 61 6d 65  Name = paramName
3050: 3b 0d 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d  ;..        param
3060: 52 6f 77 2e 69 73 50 61 72 61 6d 20 3d 20 69 73  Row.isParam = is
3070: 50 61 72 61 6d 20 3f 20 74 72 75 65 20 3a 20 66  Param ? true : f
3080: 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 70  alse;..        p
3090: 61 72 61 6d 52 6f 77 2e 69 73 56 61 6c 20 3d 20  aramRow.isVal = 
30a0: 69 73 56 61 6c 20 3f 20 74 72 75 65 20 3a 20 66  isVal ? true : f
30b0: 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d  alse;..    }..}.
30c0: 0a 0d 0a 45 78 74 72 61 63 74 4d 65 74 68 6f 64  ...ExtractMethod
30d0: 52 65 66 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74  Refactoring.prot
30e0: 6f 74 79 70 65 2e 61 64 64 52 65 74 75 72 6e 56  otype.addReturnV
30f0: 61 6c 75 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20  alue = function 
3100: 28 76 61 72 4e 61 6d 65 29 20 7b 0d 0a 20 20 20  (varName) {..   
3110: 20 69 66 20 28 21 74 68 69 73 2e 52 65 74 75 72   if (!this.Retur
3120: 6e 56 61 6c 75 65 2e 46 69 6e 64 28 76 61 72 4e  nValue.Find(varN
3130: 61 6d 65 2c 20 27 4e 61 6d 65 27 29 29 0d 0a 20  ame, 'Name')).. 
3140: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61     {..        va
3150: 72 20 72 6f 77 20 3d 20 74 68 69 73 2e 52 65 74  r row = this.Ret
3160: 75 72 6e 56 61 6c 75 65 2e 41 64 64 28 29 3b 0d  urnValue.Add();.
3170: 0a 20 20 20 20 20 20 20 20 72 6f 77 2e 4e 61 6d  .        row.Nam
3180: 65 20 3d 20 76 61 72 4e 61 6d 65 3b 0d 0a 20 20  e = varName;..  
3190: 20 20 7d 0d 0a 7d 0d 0a 0d 0a 45 78 74 72 61 63    }..}....Extrac
31a0: 74 4d 65 74 68 6f 64 52 65 66 61 63 74 6f 72 69  tMethodRefactori
31b0: 6e 67 2e 70 72 6f 74 6f 74 79 70 65 2e 42 74 4f  ng.prototype.BtO
31c0: 4b 43 6c 69 63 6b 20 3d 20 66 75 6e 63 74 69 6f  KClick = functio
31d0: 6e 20 28 43 6f 6e 74 72 6f 6c 29 20 7b 0d 0a 0d  n (Control) {...
31e0: 0a 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 66  .    if (!this.f
31f0: 6f 72 6d 2e 4e 61 6d 65 2e 6d 61 74 63 68 28 2f  orm.Name.match(/
3200: 5e 5b 5f 5c 77 d0 90 2d d1 8f 5d 28 3f 3a 5b 5f  ^[_\w..-..](?:[_
3210: 5c 77 5c 64 d0 90 2d d1 8f 5d 2a 29 24 2f 29 29  \w\d..-..]*)$/))
3220: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20  ..    {..       
3230: 20 44 6f 4d 65 73 73 61 67 65 42 6f 78 28 22 d0   DoMessageBox(".
3240: 98 d0 bc d1 8f 20 d0 bc d0 b5 d1 82 d0 be d0 b4  ..... ..........
3250: d0 b0 20 d0 b4 d0 be d0 bb d0 b6 d0 bd d0 be 20  .. ............ 
3260: d0 b1 d1 8b d1 82 d1 8c 20 d0 bf d1 80 d0 b0 d0  ........ .......
3270: b2 d0 b8 d0 bb d1 8c d0 bd d1 8b d0 bc 20 d0 b8  ............. ..
3280: d0 b4 d0 b5 d0 bd d1 82 d0 b8 d1 84 d0 b8 d0 ba  ................
3290: d0 b0 d1 82 d0 be d1 80 d0 be d0 bc 21 22 29 3b  ............!");
32a0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ..        return
32b0: 3b 0d 0a 20 20 20 20 7d 20 20 20 20 0d 0a 20 20  ;..    }    ..  
32c0: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72    ..    this.for
32d0: 6d 2e 43 6c 6f 73 65 28 74 72 75 65 29 3b 0d 0a  m.Close(true);..
32e0: 7d 0d 0a 0d 0a 45 78 74 72 61 63 74 4d 65 74 68  }....ExtractMeth
32f0: 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 2e 70 72  odRefactoring.pr
3300: 6f 74 6f 74 79 70 65 2e 42 74 43 61 6e 63 65 6c  ototype.BtCancel
3310: 43 6c 69 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e  Click = function
3320: 20 28 43 6f 6e 74 72 6f 6c 29 20 7b 0d 0a 20 20   (Control) {..  
3330: 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6c 6f 73    this.form.Clos
3340: 65 28 66 61 6c 73 65 29 3b 0d 0a 7d 0d 0a 0d 0a  e(false);..}....
3350: 45 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 66  ExtractMethodRef
3360: 61 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79  actoring.prototy
3370: 70 65 2e 65 78 74 72 61 63 74 4d 65 74 68 6f 64  pe.extractMethod
3380: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 73 6f 75 72   = function(sour
3390: 63 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 72  ce) {....    var
33a0: 20 74 77 20 3d 20 74 68 69 73 2e 6d 6f 64 75 6c   tw = this.modul
33b0: 65 2e 74 65 78 74 57 69 6e 64 6f 77 3b 0d 0a 20  e.textWindow;.. 
33c0: 20 20 20 76 61 72 20 73 65 6c 20 3d 20 74 77 2e     var sel = tw.
33d0: 47 65 74 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0d  GetSelection();.
33e0: 0a 0d 0a 20 20 20 20 76 61 72 20 70 61 72 61 6d  ...    var param
33f0: 73 20 3d 20 6e 65 77 20 41 72 72 61 79 3b 0d 0a  s = new Array;..
3400: 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d 30      for (var i=0
3410: 3b 20 69 3c 74 68 69 73 2e 50 61 72 61 6d 73 2e  ; i<this.Params.
3420: 43 6f 75 6e 74 28 29 3b 20 69 2b 2b 29 0d 0a 20  Count(); i++).. 
3430: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61     {..        va
3440: 72 20 70 61 72 61 6d 52 6f 77 20 3d 20 74 68 69  r paramRow = thi
3450: 73 2e 50 61 72 61 6d 73 2e 47 65 74 28 69 29 3b  s.Params.Get(i);
3460: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 61  ..        if (pa
3470: 72 61 6d 52 6f 77 2e 49 73 50 61 72 61 6d 29 0d  ramRow.IsParam).
3480: 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72  .            par
3490: 61 6d 73 2e 70 75 73 68 28 28 70 61 72 61 6d 52  ams.push((paramR
34a0: 6f 77 2e 49 73 56 61 6c 20 3f 20 27 d0 97 d0 bd  ow.IsVal ? '....
34b0: d0 b0 d1 87 20 27 20 3a 20 27 27 29 20 2b 20 70  .... ' : '') + p
34c0: 61 72 61 6d 52 6f 77 2e 4e 61 6d 65 29 3b 0d 0a  aramRow.Name);..
34d0: 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20      }..    ..   
34e0: 20 2f 2f 20 d0 9e d1 82 d0 ba d0 be d1 80 d1 80   // ............
34f0: d0 b5 d0 ba d1 82 d0 b8 d1 80 d1 83 d0 b5 d0 bc  ................
3500: 20 d0 be d1 82 d1 81 d1 82 d1 83 d0 bf 2e 0d 0a   ...............
3510: 20 20 20 20 76 61 72 20 73 72 63 49 6e 64 65 6e      var srcInden
3520: 74 20 3d 20 53 74 72 69 6e 67 55 74 69 6c 73 2e  t = StringUtils.
3530: 67 65 74 49 6e 64 65 6e 74 28 73 6f 75 72 63 65  getIndent(source
3540: 29 3b 0d 0a 20 20 20 20 73 6f 75 72 63 65 20 3d  );..    source =
3550: 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 73 68 69   StringUtils.shi
3560: 66 74 4c 65 66 74 28 73 6f 75 72 63 65 2c 20 73  ftLeft(source, s
3570: 72 63 49 6e 64 65 6e 74 29 3b 0d 0a 20 20 20 20  rcIndent);..    
3580: 73 6f 75 72 63 65 20 3d 20 53 74 72 69 6e 67 55  source = StringU
3590: 74 69 6c 73 2e 73 68 69 66 74 52 69 67 68 74 28  tils.shiftRight(
35a0: 73 6f 75 72 63 65 2c 20 22 5c 74 22 29 3b 0d 0a  source, "\t");..
35b0: 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 a1 d1      ..    // ...
35c0: 84 d0 be d1 80 d0 bc d0 b8 d1 80 d1 83 d0 b5 d0  ................
35d0: bc 20 d0 b8 d1 81 d1 85 d0 be d0 b4 d0 bd d1 8b  . ..............
35e0: d0 b9 20 d0 ba d0 be d0 b4 20 d0 be d0 bf d1 80  .. ...... ......
35f0: d0 b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d1 8f  ................
3600: 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0   ...............
3610: bd d0 be d0 b3 d0 be 20 d0 bc d0 b5 d1 82 d0 be  ....... ........
3620: d0 b4 d0 b0 2e 0d 0a 20 20 20 20 76 61 72 20 6e  .......    var n
3630: 65 77 4d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e  ewMethod = this.
3640: 66 6f 72 6d 2e 49 73 50 72 6f 63 20 3f 20 27 d0  form.IsProc ? '.
3650: 9f d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d0  ................
3660: b0 27 20 3a 20 27 d0 a4 d1 83 d0 bd d0 ba d1 86  .' : '..........
3670: d0 b8 d1 8f 27 3b 0d 0a 20 20 20 20 6e 65 77 4d  ....';..    newM
3680: 65 74 68 6f 64 20 2b 3d 20 27 20 27 20 2b 20 74  ethod += ' ' + t
3690: 68 69 73 2e 66 6f 72 6d 2e 4e 61 6d 65 20 2b 20  his.form.Name + 
36a0: 27 28 27 20 2b 20 70 61 72 61 6d 73 2e 6a 6f 69  '(' + params.joi
36b0: 6e 28 27 2c 20 27 29 20 2b 20 27 29 27 3b 0d 0a  n(', ') + ')';..
36c0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 66 6f 72      if (this.for
36d0: 6d 2e 45 78 70 6f 72 74 65 64 29 0d 0a 20 20 20  m.Exported)..   
36e0: 20 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 20 2b       newMethod +
36f0: 3d 20 22 20 d0 ad d0 ba d1 81 d0 bf d0 be d1 80  = " ............
3700: d1 82 22 3b 20 20 20 0d 0a 20 20 20 20 20 20 20  ..";   ..       
3710: 20 0d 0a 20 20 20 20 6e 65 77 4d 65 74 68 6f 64   ..    newMethod
3720: 20 2b 3d 20 22 5c 6e 5c 6e 22 20 2b 20 74 68 69   += "\n\n" + thi
3730: 73 2e 70 72 65 70 61 72 65 53 6f 75 72 63 65 28  s.prepareSource(
3740: 73 6f 75 72 63 65 29 20 2b 20 22 5c 6e 5c 6e 22  source) + "\n\n"
3750: 3b 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69  ;  ..    ..    i
3760: 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e 49 73 50  f (this.form.IsP
3770: 72 6f 63 29 20 0d 0a 20 20 20 20 7b 0d 0a 20 20  roc) ..    {..  
3780: 20 20 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 20        newMethod 
3790: 2b 3d 20 27 d0 9a d0 be d0 bd d0 b5 d1 86 d0 9f  += '............
37a0: d1 80 d0 be d1 86 d0 b5 d0 b4 d1 83 d1 80 d1 8b  ................
37b0: 27 3b 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20  ';        ..    
37c0: 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 20      ..    }..   
37d0: 20 65 6c 73 65 0d 0a 20 20 20 20 7b 0d 0a 20 20   else..    {..  
37e0: 20 20 20 20 20 20 76 61 72 20 72 65 74 56 61 6c        var retVal
37f0: 20 3d 20 22 d0 9d d0 b5 d0 be d0 bf d1 80 d0 b5   = "............
3800: d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 be 22 3b 0d 0a  ............";..
3810: 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73          if (this
3820: 2e 52 65 74 75 72 6e 56 61 6c 75 65 2e 43 6f 75  .ReturnValue.Cou
3830: 6e 74 28 29 20 3e 20 30 29 20 7b 0d 0a 20 20 20  nt() > 0) {..   
3840: 20 20 20 20 20 20 20 20 20 72 65 74 56 61 6c 20           retVal 
3850: 3d 20 74 68 69 73 2e 52 65 74 75 72 6e 56 61 6c  = this.ReturnVal
3860: 75 65 2e 47 65 74 28 30 29 2e 4e 61 6d 65 3b 0d  ue.Get(0).Name;.
3870: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20  .        }..    
3880: 20 20 20 20 6e 65 77 4d 65 74 68 6f 64 20 2b 3d      newMethod +=
3890: 20 22 5c 74 d0 92 d0 be d0 b7 d0 b2 d1 80 d0 b0   "\t............
38a0: d1 82 20 22 20 2b 20 72 65 74 56 61 6c 20 2b 20  .. " + retVal + 
38b0: 22 3b 22 3b 20 20 20 20 0d 0a 20 20 20 20 20 20  ";";    ..      
38c0: 20 20 6e 65 77 4d 65 74 68 6f 64 20 2b 3d 20 22    newMethod += "
38d0: 5c 6e 5c 6e 22 20 2b 20 27 d0 9a d0 be d0 bd d0  \n\n" + '.......
38e0: b5 d1 86 d0 a4 d1 83 d0 bd d0 ba d1 86 d0 b8 d0  ................
38f0: b8 27 3b 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a  .';    ..    }..
3900: 0d 0a 20 20 20 20 2f 2f 20 d0 9f d0 be d0 bb d1  ..    // .......
3910: 83 d1 87 d0 b8 d0 bc 20 d0 bc d0 b5 d1 82 d0 be  ....... ........
3920: d0 b4 2c 20 d0 b2 d0 bd d1 83 d1 82 d1 80 d0 b8  .., ............
3930: 20 d0 ba d0 be d1 82 d0 be d1 80 d0 be d0 b3 d0   ...............
3940: be 20 d0 bc d1 8b 20 d0 bd d0 b0 d1 85 d0 be d0  . .... .........
3950: b4 d0 b8 d0 bc d1 81 d1 8f 2e 0d 0a 20 20 20 20  ............    
3960: 76 61 72 20 63 75 72 4d 65 74 68 6f 64 20 3d 20  var curMethod = 
3970: 74 68 69 73 2e 6d 6f 64 75 6c 65 2e 67 65 74 41  this.module.getA
3980: 63 74 69 76 65 4c 69 6e 65 4d 65 74 68 6f 64 28  ctiveLineMethod(
3990: 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f  );..    ..    //
39a0: 20 d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d0 bc 20   .............. 
39b0: d0 b2 20 d0 bc d0 be d0 b4 d1 83 d0 bb d1 8c 20  .. ............ 
39c0: d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb d0 b5  ................
39d0: d0 bd d0 b8 d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0  ...... .........
39e0: bb d0 b5 d0 bd d0 bd d0 be d0 b3 d0 be 20 d0 bc  ............. ..
39f0: d0 b5 d1 82 d0 be d0 b4 d0 b0 2e 0d 0a 20 20 20  .............   
3a00: 20 74 77 2e 49 6e 73 65 72 74 4c 69 6e 65 28 63   tw.InsertLine(c
3a10: 75 72 4d 65 74 68 6f 64 2e 45 6e 64 4c 69 6e 65  urMethod.EndLine
3a20: 20 2b 20 32 2c 20 22 5c 6e 22 20 2b 20 6e 65 77   + 2, "\n" + new
3a30: 4d 65 74 68 6f 64 29 3b 0d 0a 20 20 20 20 20 20  Method);..      
3a40: 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 97 d0 b0 d0    ..    // .....
3a50: bc d0 b5 d0 bd d0 b8 d0 bc 20 d0 b2 d1 8b d0 b4  ......... ......
3a60: d0 b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d0  .............. .
3a70: ba d0 be d0 b4 20 d0 bd d0 b0 20 d0 b2 d1 8b d0  ..... .... .....
3a80: b7 d0 be d0 b2 20 d0 bd d0 be d0 b2 d0 be d0 b3  ..... ..........
3a90: d0 be 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 b0 2e  .. .............
3aa0: 0d 0a 20 20 20 20 76 61 72 20 6d 65 74 68 43 61  ..    var methCa
3ab0: 6c 6c 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e 4e  ll = this.form.N
3ac0: 61 6d 65 20 2b 20 27 28 27 20 2b 20 70 61 72 61  ame + '(' + para
3ad0: 6d 73 2e 6a 6f 69 6e 28 27 2c 20 27 29 20 2b 20  ms.join(', ') + 
3ae0: 22 29 3b 5c 6e 22 3b 0d 0a 20 20 20 20 0d 0a 20  ");\n";..    .. 
3af0: 20 20 20 69 66 20 28 21 74 68 69 73 2e 66 6f 72     if (!this.for
3b00: 6d 2e 49 73 50 72 6f 63 20 26 26 20 74 68 69 73  m.IsProc && this
3b10: 2e 52 65 74 75 72 6e 56 61 6c 75 65 2e 43 6f 75  .ReturnValue.Cou
3b20: 6e 74 28 29 20 3e 20 30 29 20 7b 0d 0a 20 20 20  nt() > 0) {..   
3b30: 20 20 20 20 20 72 65 74 56 61 6c 20 3d 20 74 68       retVal = th
3b40: 69 73 2e 52 65 74 75 72 6e 56 61 6c 75 65 2e 47  is.ReturnValue.G
3b50: 65 74 28 30 29 2e 4e 61 6d 65 3b 0d 0a 20 20 20  et(0).Name;..   
3b60: 20 20 20 20 20 6d 65 74 68 43 61 6c 6c 20 3d 20       methCall = 
3b70: 72 65 74 56 61 6c 20 2b 20 27 20 3d 20 27 20 2b  retVal + ' = ' +
3b80: 20 6d 65 74 68 43 61 6c 6c 3b 0d 0a 20 20 20 20   methCall;..    
3b90: 7d 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20  }    ..    ..   
3ba0: 20 74 77 2e 53 65 74 53 65 6c 65 63 74 69 6f 6e   tw.SetSelection
3bb0: 28 73 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 73  (sel.beginRow, s
3bc0: 65 6c 2e 62 65 67 69 6e 43 6f 6c 2c 20 73 65 6c  el.beginCol, sel
3bd0: 2e 65 6e 64 52 6f 77 2c 20 73 65 6c 2e 65 6e 64  .endRow, sel.end
3be0: 43 6f 6c 29 3b 0d 0a 20 20 20 20 74 77 2e 53 65  Col);..    tw.Se
3bf0: 74 53 65 6c 65 63 74 65 64 54 65 78 74 28 73 72  tSelectedText(sr
3c00: 63 49 6e 64 65 6e 74 20 2b 20 6d 65 74 68 43 61  cIndent + methCa
3c10: 6c 6c 29 3b 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 45  ll);    ..}....E
3c20: 78 74 72 61 63 74 4d 65 74 68 6f 64 52 65 66 61  xtractMethodRefa
3c30: 63 74 6f 72 69 6e 67 2e 70 72 6f 74 6f 74 79 70  ctoring.prototyp
3c40: 65 2e 70 72 65 70 61 72 65 53 6f 75 72 63 65 20  e.prepareSource 
3c50: 3d 20 66 75 6e 63 74 69 6f 6e 28 73 6f 75 72 63  = function(sourc
3c60: 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 72 20  e) {....    var 
3c70: 6c 69 6e 65 73 20 3d 20 53 74 72 69 6e 67 55 74  lines = StringUt
3c80: 69 6c 73 2e 74 6f 4c 69 6e 65 73 28 73 6f 75 72  ils.toLines(sour
3c90: 63 65 29 3b 0d 0a 20 20 20 20 69 66 20 28 6c 69  ce);..    if (li
3ca0: 6e 65 73 2e 6c 65 6e 67 74 68 20 3c 20 32 29 0d  nes.length < 2).
3cb0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
3cc0: 73 6f 75 72 63 65 3b 0d 0a 20 20 20 20 20 20 20  source;..       
3cd0: 20 0d 0a 20 20 20 20 76 61 72 20 73 74 61 72 74   ..    var start
3ce0: 49 6e 64 65 78 20 3d 20 30 3b 0d 0a 20 20 20 20  Index = 0;..    
3cf0: 77 68 69 6c 65 20 28 73 74 61 72 74 49 6e 64 65  while (startInde
3d00: 78 20 3c 20 6c 69 6e 65 73 2e 6c 65 6e 67 74 68  x < lines.length
3d10: 20 26 26 20 6c 69 6e 65 73 5b 73 74 61 72 74 49   && lines[startI
3d20: 6e 64 65 78 5d 2e 6d 61 74 63 68 28 2f 5e 5c 73  ndex].match(/^\s
3d30: 2a 24 2f 29 29 0d 0a 20 20 20 20 20 20 20 20 73  *$/))..        s
3d40: 74 61 72 74 49 6e 64 65 78 2b 2b 3b 0d 0a 0d 0a  tartIndex++;....
3d50: 20 20 20 20 76 61 72 20 65 6e 64 49 6e 64 65 78      var endIndex
3d60: 20 3d 20 6c 69 6e 65 73 2e 6c 65 6e 67 74 68 20   = lines.length 
3d70: 2d 20 31 3b 0d 0a 20 20 20 20 77 68 69 6c 65 20  - 1;..    while 
3d80: 28 65 6e 64 49 6e 64 65 78 20 3e 20 30 20 26 26  (endIndex > 0 &&
3d90: 20 6c 69 6e 65 73 5b 65 6e 64 49 6e 64 65 78 5d   lines[endIndex]
3da0: 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 24 2f 29 29  .match(/^\s*$/))
3db0: 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 49 6e 64  ..        endInd
3dc0: 65 78 2d 2d 3b 0d 0a 20 20 20 20 20 20 20 20 0d  ex--;..        .
3dd0: 0a 20 20 20 20 69 66 20 28 73 74 61 72 74 49 6e  .    if (startIn
3de0: 64 65 78 20 3c 3d 20 65 6e 64 49 6e 64 65 78 29  dex <= endIndex)
3df0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e  ..        return
3e00: 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 66 72 6f   StringUtils.fro
3e10: 6d 4c 69 6e 65 73 28 6c 69 6e 65 73 2e 73 70 6c  mLines(lines.spl
3e20: 69 63 65 28 73 74 61 72 74 49 6e 64 65 78 2c 20  ice(startIndex, 
3e30: 65 6e 64 49 6e 64 65 78 20 2d 20 73 74 61 72 74  endIndex - start
3e40: 49 6e 64 65 78 20 2b 20 31 29 29 3b 0d 0a 20 20  Index + 1));..  
3e50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3e60: 20 20 20 20 20 20 0d 0a 20 20 20 20 72 65 74 75        ..    retu
3e70: 72 6e 20 73 6f 75 72 63 65 3b 0d 0a 7d 0d 0a 0d  rn source;..}...
3e80: 0a 2f 2f 2f 2f 7d 20 45 78 74 72 61 63 74 4d 65  .////} ExtractMe
3e90: 74 68 6f 64 52 65 66 61 63 74 6f 72 69 6e 67 0d  thodRefactoring.
3ea0: 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  .../////////////
3eb0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
3ec0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
3ed0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
3ee0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
3ef0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f  ///////////..///
3f00: 2f 7b 20 54 65 78 74 43 68 61 6e 67 65 73 57 61  /{ TextChangesWa
3f10: 74 63 68 65 72 20 28 d0 90 d0 bb d0 b5 d0 ba d1  tcher (.........
3f20: 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 9e d1 80 d0 b5  ......... ......
3f30: d1 84 d0 ba d0 be d0 b2 29 0d 0a 2f 2f 2f 2f 0d  ........)..////.
3f40: 0a 0d 0a 2f 2f 20 d0 9a d0 bb d0 b0 d1 81 d1 81  ...// ..........
3f50: 20 d0 b4 d0 bb d1 8f 20 d0 be d1 82 d1 81 d0 bb   ...... ........
3f60: d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d0 bd d0 b8 d1 8f  ................
3f70: 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd d0 b5 d0 bd d0   ...............
3f80: b8 d1 8f 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0  ... ............
3f90: 20 d0 b2 20 d0 bf d0 be d0 bb d0 b5 20 d0 b2 d0   .. ........ ...
3fa0: b2 d0 be d0 b4 d0 b0 2c 20 d0 b4 d0 bb d1 8f 20  ......., ...... 
3fb0: d0 b7 d0 b0 d0 bc d0 b5 d0 bd d1 8b 0d 0a 2f 2f  ..............//
3fc0: 20 d1 81 d0 be d0 b1 d1 8b d1 82 d0 b8 d1 8f 20   .............. 
3fd0: d0 90 d0 b2 d1 82 d0 be d0 9f d0 be d0 b4 d0 b1  ................
3fe0: d0 be d1 80 d0 a2 d0 b5 d0 ba d1 81 d1 82 d0 b0  ................
3ff0: 2e 20 d0 a8 d1 82 d0 b0 d1 82 d0 bd d0 be d0 b5  . ..............
4000: 20 d1 81 d0 be d0 b1 d1 8b d1 82 d0 b8 d0 b5 20   .............. 
4010: d0 bf d0 bb d0 be d1 85 d0 be 20 d1 82 d0 b5 d0  .......... .....
4020: bc 2c 20 d1 87 d1 82 d0 be 20 d0 bd d0 b5 20 d0  ., ...... .... .
4030: b2 d0 be d0 b7 d0 bd d0 b8 d0 ba d0 b0 d0 b5 d1  ................
4040: 82 0d 0a 2f 2f 20 2d 20 d0 bf d1 80 d0 b8 20 d1  ...// - ...... .
4050: 83 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 ba d0  ................
4060: b5 20 d0 bf d1 83 d1 81 d1 82 d0 be d0 b3 d0 be  . ..............
4070: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 0d 0a 2f   ............../
4080: 2f 20 2d 20 d0 bf d1 80 d0 b8 20 d0 b8 d0 b7 d0  / - ...... .....
4090: bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d0 b8 20 d1 82  ............. ..
40a0: d0 b5 d0 ba d1 81 d1 82 d0 b0 20 d0 bf d1 83 d1  .......... .....
40b0: 82 d0 b5 d0 bc 20 d0 b2 d1 81 d1 82 d0 b0 d0 b2  ..... ..........
40c0: d0 ba d0 b8 2f d0 b2 d1 8b d1 80 d0 b5 d0 b7 d0  ..../...........
40d0: b0 d0 bd d0 b8 d1 8f 20 d0 b8 d0 b7 2f d0 b2 20  ....... ..../.. 
40e0: d0 b1 d1 83 d1 84 d0 b5 d1 80 d0 b0 20 d0 be d0  ............ ...
40f0: b1 d0 bc d0 b5 d0 bd d0 b0 0d 0a 2f 2f 20 2d 20  ...........// - 
4100: d0 bf d1 80 d0 b8 20 d0 be d1 82 d0 bc d0 b5 d0  ...... .........
4110: bd d0 b5 20 d1 80 d0 b5 d0 b4 d0 b0 d0 ba d1 82  ... ............
4120: d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 b8 d1 8f  ................
4130: 20 28 43 74 72 6c 2b 5a 29 0d 0a 2f 2f 20 d0 bd   (Ctrl+Z)..// ..
4140: d0 b5 20 d0 bf d0 be d0 b7 d0 b2 d0 be d0 bb d1  .. .............
4150: 8f d0 b5 d1 82 20 d1 80 d0 b5 d0 b3 d1 83 d0 bb  ..... ..........
4160: d0 b8 d1 80 d0 be d0 b2 d0 b0 d1 82 d1 8c 20 d0  .............. .
4170: b7 d0 b0 d0 b4 d0 b5 d1 80 d0 b6 d0 ba d1 83 0d  ................
4180: 0a 2f 2f 20 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5  .// ............
4190: d1 82 d1 80 d1 8b 20 d0 ba d0 be d0 bd d1 81 d1  ...... .........
41a0: 82 d1 80 d1 83 d0 ba d1 82 d0 be d1 80 d0 b0 0d  ................
41b0: 0a 2f 2f 20 66 69 65 6c 64 20 2d 20 d1 8d d0 bb  .// field - ....
41c0: d0 b5 d0 bc d0 b5 d0 bd d1 82 20 d1 83 d0 bf d1  .......... .....
41d0: 80 d0 b0 d0 b2 d0 bb d0 b5 d0 bd d0 b8 d1 8f 20  ............... 
41e0: d0 bf d0 be d0 bb d0 b5 20 d0 b2 d0 b2 d0 be d0  ........ .......
41f0: b4 d0 b0 2c 20 d1 87 d1 8c d0 b5 20 d0 b8 d0 b7  ..., ...... ....
4200: d0 bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d0 b5 20 d1  .............. .
4210: 85 d0 be d1 82 d0 b8 d0 bc 20 d0 be d1 82 d1 81  ......... ......
4220: d0 bb d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d1 82 d1 8c  ................
4230: 0d 0a 2f 2f 20 74 69 63 6b 73 20 2d 20 d0 b2 d0  ..// ticks - ...
4240: b5 d0 bb d0 b8 d1 87 d0 b8 d0 bd d0 b0 20 d0 b7  ............. ..
4250: d0 b0 d0 b4 d0 b5 d1 80 d0 b6 d0 ba d0 b8 20 d0  .............. .
4260: bf d0 be d1 81 d0 bb d0 b5 20 d0 b2 d0 b2 d0 be  ......... ......
4270: d0 b4 d0 b0 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0  .... ...........
4280: b0 20 d0 b2 20 d0 b4 d0 b5 d1 81 d1 8f d1 82 d1  . .. ...........
4290: 8b d1 85 20 d1 81 d0 b5 d0 ba d1 83 d0 bd d0 b4  ... ............
42a0: d1 8b 20 28 d1 82 2e d0 b5 2e 20 33 20 2d 20 33  .. (...... 3 - 3
42b0: 30 30 20 d0 bc d1 81 d0 b5 d0 ba 29 0d 0a 2f 2f  00 ........)..//
42c0: 20 69 6e 76 6f 6b 65 72 20 2d 20 d1 84 d1 83 d0   invoker - .....
42d0: bd d0 ba d1 86 d0 b8 d1 8f 20 d0 be d0 b1 d1 80  ......... ......
42e0: d0 b0 d1 82 d0 bd d0 be d0 b3 d0 be 20 d0 b2 d1  ............ ...
42f0: 8b d0 b7 d0 be d0 b2 d0 b0 2c 20 d0 b2 d1 8b d0  ........., .....
4300: b7 d1 8b d0 b2 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20  ............... 
4310: d0 bf d0 be d1 81 d0 bb d0 b5 20 d0 be d0 ba d0  .......... .....
4320: be d0 bd d1 87 d0 b0 d0 bd d0 b8 d1 8f 20 d0 b8  ............. ..
4330: d0 b7 d0 bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d1 8f  ................
4340: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 2c 0d 0a   ............,..
4350: 2f 2f 20 20 d0 bd d0 be d0 b2 d1 8b d0 b9 20 d1  //  .......... .
4360: 82 d0 b5 d0 ba d1 81 d1 82 20 d0 bf d0 b5 d1 80  ......... ......
4370: d0 b5 d0 b4 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0  .............. .
4380: bf d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80 d0  ................
4390: be d0 bc 20 d1 84 d1 83 d0 bd d0 ba d1 86 d0 b8  ... ............
43a0: d0 b8 0d 0a 66 75 6e 63 74 69 6f 6e 20 54 65 78  ....function Tex
43b0: 74 43 68 61 6e 67 65 73 57 61 74 63 68 65 72 28  tChangesWatcher(
43c0: 66 69 65 6c 64 2c 20 74 69 63 6b 73 2c 20 69 6e  field, ticks, in
43d0: 76 6f 6b 65 72 29 0d 0a 7b 0d 0a 20 20 20 20 74  voker)..{..    t
43e0: 68 69 73 2e 74 69 63 6b 73 20 3d 20 74 69 63 6b  his.ticks = tick
43f0: 73 0d 0a 20 20 20 20 74 68 69 73 2e 69 6e 76 6f  s..    this.invo
4400: 6b 65 72 20 3d 20 69 6e 76 6f 6b 65 72 0d 0a 20  ker = invoker.. 
4410: 20 20 20 74 68 69 73 2e 66 69 65 6c 64 20 3d 20     this.field = 
4420: 66 69 65 6c 64 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 d0  field..}....// .
4430: 9d d0 b0 d1 87 d0 b0 d1 82 d1 8c 20 d0 be d1 82  ........... ....
4440: d1 81 d0 bb d0 b5 d0 b6 d0 b8 d0 b2 d0 b0 d0 bd  ................
4450: d0 b8 d0 b5 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd d0  .... ...........
4460: b5 d0 bd d0 b8 d1 8f 20 d1 82 d0 b5 d0 ba d1 81  ....... ........
4470: d1 82 d0 b0 0d 0a 54 65 78 74 43 68 61 6e 67 65  ......TextChange
4480: 73 57 61 74 63 68 65 72 2e 70 72 6f 74 6f 74 79  sWatcher.prototy
4490: 70 65 2e 73 74 61 72 74 20 3d 20 66 75 6e 63 74  pe.start = funct
44a0: 69 6f 6e 28 29 0d 0a 7b 0d 0a 20 20 20 20 74 68  ion()..{..    th
44b0: 69 73 2e 6c 61 73 74 54 65 78 74 20 3d 20 74 68  is.lastText = th
44c0: 69 73 2e 66 69 65 6c 64 2e d0 97 d0 bd d0 b0 d1  is.field........
44d0: 87 d0 b5 d0 bd d0 b8 d0 b5 2e 72 65 70 6c 61 63  ..........replac
44e0: 65 28 2f 5e 5c 73 2a 7c 5c 73 2a 24 2f 67 2c 20  e(/^\s*|\s*$/g, 
44f0: 27 27 29 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28  '').toLowerCase(
4500: 29 0d 0a 20 20 20 20 74 68 69 73 2e 6e 6f 43 68  )..    this.noCh
4510: 61 6e 67 65 73 54 69 63 6b 73 20 3d 20 30 0d 0a  angesTicks = 0..
4520: 20 20 20 20 74 68 69 73 2e 74 69 6d 65 72 49 44      this.timerID
4530: 20 3d 20 63 72 65 61 74 65 54 69 6d 65 72 28 31   = createTimer(1
4540: 30 30 2c 20 74 68 69 73 2c 20 22 6f 6e 54 69 6d  00, this, "onTim
4550: 65 72 22 29 0d 0a 7d 0d 0a 2f 2f 20 d0 9e d1 81  er")..}..// ....
4560: d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c  ................
4570: 20 d0 be d1 82 d1 81 d0 bb d0 b5 d0 b6 d0 b8 d0   ...............
4580: b2 d0 b0 d0 bd d0 b8 d0 b5 20 d0 b8 d0 b7 d0 bc  ......... ......
4590: d0 b5 d0 bd d0 b5 d0 bd d0 b8 d1 8f 20 d1 82 d0  ............ ...
45a0: b5 d0 ba d1 81 d1 82 d0 b0 0d 0a 54 65 78 74 43  ...........TextC
45b0: 68 61 6e 67 65 73 57 61 74 63 68 65 72 2e 70 72  hangesWatcher.pr
45c0: 6f 74 6f 74 79 70 65 2e 73 74 6f 70 20 3d 20 66  ototype.stop = f
45d0: 75 6e 63 74 69 6f 6e 28 29 0d 0a 7b 0d 0a 20 20  unction()..{..  
45e0: 20 20 6b 69 6c 6c 54 69 6d 65 72 28 74 68 69 73    killTimer(this
45f0: 2e 74 69 6d 65 72 49 44 29 0d 0a 7d 0d 0a 2f 2f  .timerID)..}..//
4600: 20 d0 9e d0 b1 d1 80 d0 b0 d0 b1 d0 be d1 82 d1   ...............
4610: 87 d0 b8 d0 ba 20 d1 81 d0 be d0 b1 d1 8b d1 82  ..... ..........
4620: d0 b8 d1 8f 20 d1 82 d0 b0 d0 b9 d0 bc d0 b5 d1  .... ...........
4630: 80 d0 b0 0d 0a 54 65 78 74 43 68 61 6e 67 65 73  .....TextChanges
4640: 57 61 74 63 68 65 72 2e 70 72 6f 74 6f 74 79 70  Watcher.prototyp
4650: 65 2e 6f 6e 54 69 6d 65 72 20 3d 20 66 75 6e 63  e.onTimer = func
4660: 74 69 6f 6e 28 29 0d 0a 7b 0d 0a 20 20 20 20 2f  tion()..{..    /
4670: 2f 20 d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d0 bc  / ..............
4680: 20 d1 82 d0 b5 d0 ba d1 83 d1 89 d0 b8 d0 b9 20   .............. 
4690: d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 b8 d0 b7 20  .......... .... 
46a0: d0 bf d0 be d0 bb d1 8f 20 d0 b2 d0 b2 d0 be d0  ........ .......
46b0: b4 d0 b0 0d 0a 20 20 20 20 76 62 73 2e 76 61 72  .....    vbs.var
46c0: 30 20 3d 20 74 68 69 73 2e 66 69 65 6c 64 0d 0a  0 = this.field..
46d0: 20 20 20 20 76 62 73 2e 44 6f 45 78 65 63 75 74      vbs.DoExecut
46e0: 65 28 22 76 61 72 30 2e 47 65 74 54 65 78 74 53  e("var0.GetTextS
46f0: 65 6c 65 63 74 69 6f 6e 42 6f 75 6e 64 73 20 76  electionBounds v
4700: 61 72 31 2c 20 76 61 72 32 2c 20 76 61 72 33 2c  ar1, var2, var3,
4710: 20 76 61 72 34 22 29 0d 0a 20 20 20 20 74 68 69   var4")..    thi
4720: 73 2e 66 69 65 6c 64 2e d0 a3 d1 81 d1 82 d0 b0  s.field.........
4730: d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c d0 93 d1 80  ................
4740: d0 b0 d0 bd d0 b8 d1 86 d1 8b d0 92 d1 8b d0 b4  ................
4750: d0 b5 d0 bb d0 b5 d0 bd d0 b8 d1 8f 28 31 2c 20  ............(1, 
4760: 31 2c 20 31 2c 20 31 30 30 30 30 29 0d 0a 20 20  1, 1, 10000)..  
4770: 20 20 76 61 72 20 6e 65 77 54 65 78 74 20 3d 20    var newText = 
4780: 74 68 69 73 2e 66 69 65 6c 64 2e d0 92 d1 8b d0  this.field......
4790: b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 d0  ................
47a0: a2 d0 b5 d0 ba d1 81 d1 82 2e 72 65 70 6c 61 63  ..........replac
47b0: 65 28 2f 5e 5c 73 2a 7c 5c 73 2a 24 2f 67 2c 20  e(/^\s*|\s*$/g, 
47c0: 27 27 29 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28  '').toLowerCase(
47d0: 29 0d 0a 20 20 20 20 74 68 69 73 2e 66 69 65 6c  )..    this.fiel
47e0: 64 2e d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2  d...............
47f0: d0 b8 d1 82 d1 8c d0 93 d1 80 d0 b0 d0 bd d0 b8  ................
4800: d1 86 d1 8b d0 92 d1 8b d0 b4 d0 b5 d0 bb d0 b5  ................
4810: d0 bd d0 b8 d1 8f 28 76 62 73 2e 76 61 72 31 2c  ......(vbs.var1,
4820: 20 76 62 73 2e 76 61 72 32 2c 20 76 62 73 2e 76   vbs.var2, vbs.v
4830: 61 72 33 2c 20 76 62 73 2e 76 61 72 34 29 0d 0a  ar3, vbs.var4)..
4840: 20 20 20 20 2f 2f 20 d0 9f d1 80 d0 be d0 b2 d0      // .........
4850: b5 d1 80 d0 b8 d0 bc 2c 20 d0 b8 d0 b7 d0 bc d0  ......., .......
4860: b5 d0 bd d0 b8 d0 bb d1 81 d1 8f 20 d0 bb d0 b8  ........... ....
4870: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 bf d0 be   .......... ....
4880: 20 d1 81 d1 80 d0 b0 d0 b2 d0 b5 d0 bd d0 b8 d1   ...............
4890: 8e 20 d1 81 20 d0 bf d1 80 d0 be d1 88 d0 bb d1  . .. ...........
48a0: 8b d0 bc 20 d1 80 d0 b0 d0 b7 d0 be d0 bc 0d 0a  ... ............
48b0: 20 20 20 20 69 66 28 6e 65 77 54 65 78 74 20 21      if(newText !
48c0: 3d 20 74 68 69 73 2e 6c 61 73 74 54 65 78 74 29  = this.lastText)
48d0: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20  ..    {..       
48e0: 20 2f 2f 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd d0 b8   // ............
48f0: d0 bb d1 81 d1 8f 2c 20 d0 b7 d0 b0 d0 bf d0 be  ......, ........
4900: d0 bc d0 bd d0 b8 d0 bc 20 d0 b5 d0 b3 d0 be 0d  ........ .......
4910: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61  .        this.la
4920: 73 74 54 65 78 74 20 3d 20 6e 65 77 54 65 78 74  stText = newText
4930: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e  ..        this.n
4940: 6f 43 68 61 6e 67 65 73 54 69 63 6b 73 20 3d 20  oChangesTicks = 
4950: 30 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 6c  0..    }..    el
4960: 73 65 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20  se..    {..     
4970: 20 20 20 2f 2f 20 d0 a2 d0 b5 d0 ba d1 81 d1 82     // ..........
4980: 20 d0 bd d0 b5 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd   .... ..........
4990: d0 b8 d0 bb d1 81 d1 8f 2e 20 d0 95 d1 81 d0 bb  ......... ......
49a0: d0 b8 20 d0 bc d1 8b 20 d0 b5 d1 89 d0 b5 20 d0  .. .... ...... .
49b0: bd d0 b5 20 d1 81 d0 b8 d0 b3 d0 bd d0 b0 d0 bb  ... ............
49c0: d0 b8 d0 b7 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bb  ................
49d0: d0 b8 20 d0 be d0 b1 20 d1 8d d1 82 d0 be d0 bc  .. .... ........
49e0: 2c 20 d1 82 d0 be 20 d1 83 d0 b2 d0 b5 d0 bb d0  , .... .........
49f0: b8 d1 87 d0 b8 d0 bc 20 d1 81 d1 87 d0 b5 d1 82  ....... ........
4a00: d1 87 d0 b8 d0 ba 20 d1 82 d0 b8 d0 ba d0 be d0  ...... .........
4a10: b2 0d 0a 20 20 20 20 20 20 20 20 69 66 28 74 68  ...        if(th
4a20: 69 73 2e 6e 6f 43 68 61 6e 67 65 73 54 69 63 6b  is.noChangesTick
4a30: 73 20 3c 3d 20 74 68 69 73 2e 74 69 63 6b 73 29  s <= this.ticks)
4a40: 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20  ..        {..   
4a50: 20 20 20 20 20 20 20 20 20 69 66 28 2b 2b 74 68           if(++th
4a60: 69 73 2e 6e 6f 43 68 61 6e 67 65 73 54 69 63 6b  is.noChangesTick
4a70: 73 20 3e 20 74 68 69 73 2e 74 69 63 6b 73 29 20  s > this.ticks) 
4a80: 20 2f 2f 20 d0 94 d0 be d1 81 d1 82 d0 b8 d0 b3   // ............
4a90: d0 bb d0 b8 20 d0 b7 d0 b0 d0 b4 d0 b0 d0 bd d0  .... ...........
4aa0: bd d0 be d0 b3 d0 be 20 d0 ba d0 be d0 bb d0 b8  ....... ........
4ab0: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 b0 20 d1 82 d0  ............ ...
4ac0: b8 d0 ba d0 be d0 b2 2e 0d 0a 20 20 20 20 20 20  ..........      
4ad0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 69            this.i
4ae0: 6e 76 6f 6b 65 72 28 6e 65 77 54 65 78 74 29 20  nvoker(newText) 
4af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f                //
4b00: 20 d0 9e d1 82 d1 80 d0 b0 d0 bf d0 be d1 80 d1   ...............
4b10: 82 d1 83 d0 b5 d0 bc 0d 0a 20 20 20 20 20 20 20  .........       
4b20: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a   }..    }..}....
4b30: 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7d 20 54 65 78 74  ////..////} Text
4b40: 43 68 61 6e 67 65 73 57 61 74 63 68 65 72 20 28  ChangesWatcher (
4b50: d0 90 d0 bb d0 b5 d0 ba d1 81 d0 b0 d0 bd d0 b4  ................
4b60: d1 80 20 d0 9e d1 80 d0 b5 d1 84 d0 ba d0 be d0  .. .............
4b70: b2 29 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  .)..////////////
4b80: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4b90: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4ba0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4bb0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4bc0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 0d 0a  ////////////....
4bd0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4be0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4bf0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4c00: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4c10: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4c20: 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b 20  ////////..////{ 
4c30: d0 92 d1 81 d0 bf d0 be d0 bc d0 be d0 b3 d0 b0  ................
4c40: d1 82 d0 b5 d0 bb d1 8c d0 bd d1 8b d0 b5 20 d1  .............. .
4c50: 84 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 0d 0a 2f  .............../
4c60: 2f 2f 2f 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2f 2f 7d  ///........////}
4c70: 20 d0 92 d1 81 d0 bf d0 be d0 bc d0 be d0 b3 d0   ...............
4c80: b0 d1 82 d0 b5 d0 bb d1 8c d0 bd d1 8b d0 b5 20  ............... 
4c90: d1 84 d1 83 d0 bd d0 ba d1 86 d0 b8 d0 b8 0d 0a  ................