Wrp1># !!&z'./&0L=rBHI"Q$fnsu1789:Im8nswy7'ZV-#`"%(-7257;Z=C?:EDHLRTbUdd_Jewel.info_Version: v1.25 3de/buschtrommel/sudoku/AbstractSaveLoadDialog.class--de/buschtrommel/sudoku/AbstractSaveLoadDialogewe/ui/ControlPopupForm fileSlots[Lewe/ui/mButton;board$Lde/buschtrommel/sudoku/Sudokuboard;'(Lde/buschtrommel/sudoku/Sudokuboard;)VCode()V  ewe/ui/mButton     ewe/ui/Form resizableZ  moveable  ewe/ui/HtmlDisplay   getHTMLString()Ljava/lang/String; !" #setHtml(Ljava/lang/String;)V %& 'ewe/ui/Control)setPreferredSize(II)Lewe/ui/Control; +, *- ewe/ui/Panel/addLast"(Lewe/ui/Control;)Lewe/ui/Control; 12 03 ewe/fx/Insets5(IIII)V 7 68setTag%(ILjava/lang/Object;)Lewe/ui/Control; :; *<(de/buschtrommel/sudoku/SaveAndLoadHelper>getName(I)Ljava/lang/String; @A ?B & DLineNumberTableLocalVariableTablethis/Lde/buschtrommel/sudoku/AbstractSaveLoadDialog; htmlDisplayLewe/ui/HtmlDisplay;iIaction(I)Z Exceptionsewe/io/IOExceptionQonEvent(Lewe/ui/Event;)V ewe/ui/EventUtargetLjava/lang/Object; WX VYtype [M V\ NO ^exit `O ajava/lang/SystemcoutLjava/io/PrintStream; ef dgjava/io/PrintStreamiprintln(Ljava/lang/Object;)V kl jm ST oevLewe/ui/Event;eLewe/io/IOException;close(I)V getWindow()Lewe/ui/Window; wx *y ewe/sys/Vm{setSIP(ILewe/ui/Window;)V }~ | uv retVal SourceFileAbstractSaveLoadDialog.java!  ***+**ZY M,*$(,.W*,46Y9=W>3*YCES**246Y9=W*ʱF6  #+5JO `!|#G*HI#fJKL<LM!"NOPRST H=7+Z*2'+],*_*bW Nh-n**+p--RF. *+,.$/-0.1536*B7G8G*HHIHqr@LM.stuv J*z*F;< =GHIM/de/buschtrommel/sudoku/BelegungsGenerator.class-d)de/buschtrommel/sudoku/BelegungsGeneratorjava/lang/Object_randomWrapperLewe/util/Random;()VCodeewe/util/Random    LineNumberTableLocalVariableTable  this+Lde/buschtrommel/sudoku/BelegungsGenerator; getSudoku()[[I[[I getNumbers(I)[I   getUnallowed ([[III)[I    removeAll([I[I)V "# $shuffle([I)V &' ( getFirstNot0([I)I *+ ,sudoku keineLoesungZxIyli[IrandomNurnextInt(I)I 89 :swap([III)V <= >listsizeigetShuffeldNumbersarrjtmp unallowedgetNumbersOfColumn([[II)[I HI JgetNumbersOfRow LI MgetNumbersOfViVi O PrettempzgetNumbersOfCoordinates ([[I[[I)[I coordinateskblengthlinkeddiv(II)I \] ^xxyy SourceFileBelegungsGenerator.java!  / Y    /*  N  K<w<=j>\ :*!%)-6 *2O,6 *2O  >==  *f  !,18=GMT^adhjn py %H . }/0p12b32!O458862J72 &' l*<=*d;?*-.-/ @5A2B2 *+ ^<*.*.*23 42545B2C G L+)+9: ; B2@5 <= c*.>**.O*O?@ AB*D5B2E2 F2 "# g=+.*O*HI JHK 45G5B2  Y N6*K:6-.d.O .*N:6-.d.O .*Q:6-.d.O .-JNORST#U&S8W?XEYSZVXh\p]v^_]a\ .1232R5B2S5&T2B&T2s&T2 UV 7 M>6$*+2.2+2..6 ,O+,& ghi jk#l(m+i5p>7.7W2@50B2 +X2 Y2LI . M>6*2.,*2.O ,"uvw xyz"w,}4...32)@5'B2 "12HI , M>6*2.,*2.O , !*4,.,12'@5#32 B2  g L= +dO+  Z2[5B2O \ N6_h6;_h6*2.-*2.O_h`ڄ_h`-*  *58IZH\.\12\32W@5TB2I`2,a2 \] 8l1232bc%de/buschtrommel/sudoku/Field.class-de/buschtrommel/sudoku/Fieldjava/lang/Object()VCode  LineNumberTableLocalVariableTablethisLde/buschtrommel/sudoku/Field; SourceFile Field.java!/*    (de/buschtrommel/sudoku/HelpDialog.class-}!de/buschtrommel/sudoku/HelpDialogewe/ui/ControlPopupFormokButtonLewe/ui/mButton;()VCode   Help  ewe/ui/Form windowTitleLjava/lang/String;   resizableZ  moveable  ewe/ui/mButtonOK(Ljava/lang/String;)V    "ewe/ui/HtmlDisplay$(II)V & %'ewe/ui/Control)setMinimumSize(II)Lewe/ui/Control; +, *-setPreferredSize /, *09SUDOKU - The Rules
The aim of Sudoku is to place numbers from 1 through 9 into the partially filled 9x9 grid. The Sudoku grid is composed of nine 3x3 sub grids in which the following conditions have to be met when entering the missing numbers. You must fill in the grid so that every row, every column, and every 3x3 sub grid contains the numbers 1 through 9 (without duplication)
Puzzles are available in Heavy (24 entries), Medium (32 entries) and Easy (48 entries).

Enjoy the game and Good Luck! 2setHtml 4 %5 ewe/fx/Color7(III)V 9 8: backGroundLewe/fx/Color; <= *> borderWidthI @A *B ewe/ui/PanelDaddLast"(Lewe/ui/Control;)Lewe/ui/Control; FG EH ewe/fx/InsetsJ(IIII)V L KMsetTag%(ILjava/lang/Object;)Lewe/ui/Control; OP *QLineNumberTableLocalVariableTablethis#Lde/buschtrommel/sudoku/HelpDialog; htmlDisplayLewe/ui/HtmlDisplay;onEvent(Lewe/ui/Event;)V ewe/ui/Event[targetLjava/lang/Object; ]^ \_type aA \bexit(I)Z de f YZ hevLewe/ui/Event;close(I)V getWindow()Lewe/ui/Window; no *p ewe/sys/VmrsetSIP(ILewe/ui/Window;)V tu sv lm xretVal SourceFileHelpDialog.java1 }* * **Z*Y!#%Y(L+ȶ.W+ȶ1W+36+8Y222;?+C*+IW**#IKYNRWS6  !,7BH+Y,^.d0|1T}UV,QWXYZ 7+`*#)+c, *gW+c0*gW*+iS4 567(81:6;T7UV7jklm J*qw*yS>? @TUVzA{|!de/buschtrommel/sudoku/Icon.bmpBM66(oV&x@ VmRFZ7WR7W`v=@ v=LdzR`=Ro@y@w owo7oxM_@_M_@VVxM_VV3I_VVVI_Vg@_VVVI_V@_VVI_V8iUtitedZ_Ѕ@yRwjw8AL(J jwtw8A8A|L| ({,T~W(@y\hLTg IageFil Fomaticst,\\\<@yJ~Io h\I_V@_D PV@_D Px@hI_܇Wo@ F8FG8F_^JGd_ F8F^VFV68F_@^\ A2%߾}`1CBB444vЉbb`cc;>|Ȱc+W| dddLMM @M`u rrrXrpp0l߾P@bbb ׯ_gxOb8@j|0xՃB  } x9Ɂ0,ԃ,@rty@L8M 4rA% e1zƧ$RccEq2d8777nWՀAX|Ar0r@6_kID2p`!"doÖ݈̐ WU7329b/((Ƞ ** Nɓ'l*@(!!ׯ `0@| tb=U\IN&IKԖI|J z6~ n"0p5kQ]Unn i1",O?13eEp )])`NBy kxfb7A dowwy&WUU9TOR)xV !]PԀ@`AGQ2PR 6:X9d'@ %* ĖoA>E (@l ` 99yK`@r ! KxrN¦f`  X`.aP`U+6Scc3&@p9%!,AmAfãD(\L̙6ikB5k=Ic;0 Y|j\R6+ AY A>PSSp 9Aߠb``/C1IuL  EEE $<|0Cdd$:(Xd 7@[M@SK)V+F*^~YMHՄIҝb{&vX;#Mc9 d/@&abۄ @& xW 9XJ%d< %!rѸ1E1H?~ .ۄ0GPRr P{5@ՁԀZV @9vb5@@yVb!;քExePSpvDoxPi K 6s Jԁ%| c Ar sHp(@|b"7@jCA !p a)IENDB`#de/buschtrommel/sudoku/IconMask.bmpBM~>(@???cc???$de/buschtrommel/sudoku/IconMask2.bmpBMv(gA&x@ DVm_*de/buschtrommel/sudoku/ImageMenuBar.class-#de/buschtrommel/sudoku/ImageMenuBar ewe/ui/HoldermenusLewe/ui/CellPanel; imageButtonLewe/ui/mButton;(Lewe/fx/mImage;)VCode()V  ewe/ui/Controlmodify(II)I  ewe/ui/CellPanel    ewe/ui/PaneladdNext"(Lewe/ui/Control;)Lewe/ui/Control;   setControl(I)Lewe/ui/Control; ! "ewe/ui/mButton$(Lewe/fx/IImage;)V & %'  ) setBorder(II)Lewe/ui/Control; +, -addLast / 0LineNumberTableLocalVariableTablethis%Lde/buschtrommel/sudoku/ImageMenuBar;imageLewe/fx/mImage;setImageLewe/fx/IImage; 69 :addMenu(Lewe/ui/PullDownMenu;)VmLewe/ui/PullDownMenu;)(Ljava/lang/String;)Lewe/ui/PullDownMenu; ewe/ui/MenuA B 6(Lewe/ui/Menu;Ljava/lang/String;)Lewe/ui/PullDownMenu; <D EnameLjava/lang/String;ewe/ui/PullDownMenuI"(Ljava/lang/String;Lewe/ui/Menu;)V K JL <= N Lewe/ui/Menu;pdm showMenuFor(Lewe/ui/Control;)Zewe/ui/ButtonControlT startDropMenu(Lewe/fx/Point;)Z VW UX tryStartMenu ZW [nLewe/ui/Control;nextMenu(Z)Zewe/ui/ContaineragetChildrenBackwards()Lewe/util/Iterator; cd be getChildren gd bhewe/util/Iteratorjnext()Ljava/lang/Object; lm kn menuIsActive()Z pq r ewe/sys/Vmt freezeSIP(Lewe/ui/Control;)V vw ux menuStateLewe/ui/MenuState; z{ |ewe/ui/MenuState~ closeMenu  RS hasNext q kisLeftZprevitLewe/util/Iterator;conControlEvent(Lewe/ui/ControlEvent;)V ewe/ui/EventtypeI targetLjava/lang/Object; getMenu()Lewe/ui/Menu;  addListener(Lewe/ui/EventListener;)V  _`  evLewe/ui/ControlEvent;doHotKey$(Lewe/ui/Control;Lewe/ui/KeyEvent;)Zewe/ui/KeyEventkey % bfromLewe/ui/KeyEvent;first SourceFileImageMenuBar.java!   L**W*Y**#W*%Y+(***.W***1#W2" &2<K3L45L678& A **+;2 "#3 45 69<= H*+#W2 ')345>?<@ A *BYC+F2,3 45 GH<D aJY,+MN*-O-20 123*45>PGH Q?RS L+U+UY+\27345]^_` ^M *f *iN;-o:s(-o:*y}*W-22 ;<=>&?.@9A@BDCLDS=\G3>^45^\^F&-^9]^ I+2+*++u6 +u5*+u6W*+2L MN/OCQHR3I45I YN,J*i:(o:-Ns }- *-W*+,22 VW XY#Z*[2\:]<XF`PaRc3>Y45Y^YW^2#^(de/buschtrommel/sudoku/LoadDialog.class->!de/buschtrommel/sudoku/LoadDialog-de/buschtrommel/sudoku/AbstractSaveLoadDialog'(Lde/buschtrommel/sudoku/Sudokuboard;)VCode  Load  ewe/ui/Form  windowTitleLjava/lang/String;  LineNumberTableLocalVariableTablethis#Lde/buschtrommel/sudoku/LoadDialog;board$Lde/buschtrommel/sudoku/Sudokuboard; getHTMLString()Ljava/lang/String;k

Load Puzzles from Slots
action(I)Z Exceptionsewe/io/IOException(de/buschtrommel/sudoku/SaveAndLoadHelper!getFile(I)Lewe/io/File; #$ "% ewe/io/File'exists()Z )* (+ loadPuzzle(I)Ljava/lang/String; -. "/  1"de/buschtrommel/sudoku/Sudokuboard3setPuzzleString(Ljava/lang/String;)V 56 47iIstring SourceFileLoadDialog.java1H *+ *     -  i&,0M*2,8  9: ;<=.de/buschtrommel/sudoku/MultiNumAniImage.class-o'de/buschtrommel/sudoku/MultiNumAniImageewe/graphics/AniImagetypeIbs[Zfont2 Lewe/fx/Font;()VCode ewe/fx/FontArial(Ljava/lang/String;II)V   LineNumberTableLocalVariableTable([Z)V       ewe/fx/mImage!location Lewe/fx/Rect; #$ "% ewe/fx/Rect'width ) (*height , (-this)Lde/buschtrommel/sudoku/MultiNumAniImage;doDraw(Lewe/fx/Graphics;I)V ewe/fx/Color3BlackLewe/fx/Color; 56 47ewe/fx/Graphics9setColor(Lewe/fx/Color;)V ;< :=setFont(Lewe/fx/Font;)V ?@ :AgetText()Ljava/lang/String; CD Ejava/lang/StringGlength()I IJ HK substring(II)Ljava/lang/String; MN HOdrawText Q :RgLewe/fx/Graphics;optionstextLjava/lang/String;Yjava/lang/StringBuffer[valueOf&(Ljava/lang/Object;)Ljava/lang/String; ]^ H_(Ljava/lang/String;)V a \bappend(I)Ljava/lang/StringBuffer; de \ftoString hD \isi SourceFileMultiNumAniImage.java    4Y    r&***+ *&+*&.*  %&/0&12 U+8>+B*FN+--L -LPS-L!+--L -LP S.6T *U/0UTUUVBWXCD 4ZL=$* 3\Y+`c`gjL* +#$%&&$2' 4/01kX-lmn,de/buschtrommel/sudoku/RegFailedDialog.class-}&de/buschtrommel/sudoku/RegFailedDialogewe/ui/ControlPopupFormokButtonLewe/ui/mButton;()VCode   Message  ewe/ui/Form windowTitleLjava/lang/String;   resizableZ  moveable  ewe/ui/mButtonOK(Ljava/lang/String;)V    "ewe/ui/HtmlDisplay$(II)V & %'ewe/ui/Control)setMinimumSize(II)Lewe/ui/Control; +, *-setPreferredSize /, *0Registration failed!
You can buy a licence at http://www.buschtrommel.net. Spilt the key to user and serial information and enter it in the two text fields of the registration dialogue.2setHtml 4 %5 ewe/fx/Color7(III)V 9 8: backGroundLewe/fx/Color; <= *> borderWidthI @A *B ewe/ui/PanelDaddLast"(Lewe/ui/Control;)Lewe/ui/Control; FG EH ewe/fx/InsetsJ(IIII)V L KMsetTag%(ILjava/lang/Object;)Lewe/ui/Control; OP *QLineNumberTableLocalVariableTablethis(Lde/buschtrommel/sudoku/RegFailedDialog; htmlDisplayLewe/ui/HtmlDisplay;onEvent(Lewe/ui/Event;)V ewe/ui/Event[targetLjava/lang/Object; ]^ \_type aA \bexit(I)Z de f YZ hevLewe/ui/Event;close(I)V getWindow()Lewe/ui/Window; no *p ewe/sys/VmrsetSIP(ILewe/ui/Window;)V tu sv lm xretVal SourceFileRegFailedDialog.java1 * * **Z*Y!#%Y(L+x.W+x1W+36+8Y222;?+C*+IKYNRW**#IKYNRWS6  !,6@F$W%\'q)*TUV,^WXYZ 7+`*#)+c, *gW+c0*gW*+iS- ./0(11364T7UV7jklm J*qw*yS78 9TUVzA{|.de/buschtrommel/sudoku/RegisterDialog.class-1%de/buschtrommel/sudoku/RegisterDialogewe/ui/ControlPopupFormREGENTRYLjava/lang/String; ConstantValueSoftware\sudokuokButtonLewe/ui/mButton; inputNameLewe/ui/mInput;inputKey cacheExpiredZcacheRegisterd()VCode    LineNumberTableLocalVariableTable  getUser()Ljava/lang/String;    getSerial " # Registration% ewe/ui/Form' windowTitle ) (* resizable , (-moveable / (0 MaxMuster2 10-838-5434 ewe/ui/mLabel6User:8(Ljava/lang/String;)V : 7; ewe/fx/Color= LightGrayLewe/fx/Color; ?@ >Aewe/ui/ControlC backGround E@ DFBlack H@ >I foreGround K@ DLSerial:N ewe/ui/mInputP Q; S  Uewe/ui/mButtonWOKY X; \ewe/ui/HtmlDisplay^(II)V ` _asetMinimumSize(II)Lewe/ui/Control; cd DesetPreferredSize gd Dh
Mobile Sudoku 2.0
by Rainer Herrler
http://sudoku.buschtrommel.net
jsetHtml l: _m borderWidthI op Dq ewe/ui/PanelsaddLast"(Lewe/ui/Control;)Lewe/ui/Control; uv twewe/fx/Dimensiony zasetTag%(ILjava/lang/Object;)Lewe/ui/Control; |} D~ ewe/fx/Insets(IIII)V  addNext v tthis'Lde/buschtrommel/sudoku/RegisterDialog;nameseriallabel1Lewe/ui/mLabel;label2 htmlDisplayLewe/ui/HtmlDisplay;onEvent(Lewe/ui/Event;)V ewe/ui/EventtargetLjava/lang/Object; type p ewex/registry/Registry getLocalKey2(ILjava/lang/String;ZZ)Lewex/registry/RegistryKey; UsergetText  Dewex/registry/RegistryKeysetValue'(Ljava/lang/String;Ljava/lang/String;)Z Serialexit(I)Z ( (evLewe/ui/Event;keyLewex/registry/RegistryKey;close(I)V getWindow()Lewe/ui/Window; D ewe/sys/VmsetSIP(ILewe/ui/Window;)V retVal getSkinNr()IisNativeInitialized()Z SkingetValue&(Ljava/lang/String;)Ljava/lang/Object; (Ljava/lang/String;I)Z  ewe/sys/LongvalueJ  setSkinNrnrexpired ewe/sys/Time year p TimegetDefaultFormat  format&(Ljava/lang/String;)Ljava/lang/String; java/lang/String fromString : ewe/sys/DateChange dateDifferenceF(Lewe/sys/Time;Lewe/sys/Time;Lewe/sys/DateChange;)Lewe/sys/DateChange; days p nowLewe/sys/Time;regTimechangeLewe/sys/DateChange; registeredlength  code  equals(Ljava/lang/Object;)Z    userNamegetBytes()[B  M-Sudoku rocksjava/lang/StringBuffer append(I)Ljava/lang/StringBuffer;  toString  ,(Ljava/lang/String;)Ljava/lang/StringBuffer;   originby[BpfpfibuffLjava/lang/StringBuffer;irecode([B)V + ,res SourceFileRegisterDialog.java1      1 v $*!L$M*&+**Z.1+3L,5M7Y9$ 4M`+*]R+,5 M,*TW,*VW*W+0*W*+6 K LNOMP,Q:R>SGTQUZW_X ``)J**Ʊ[\ ]p|2͙- K*϶ *W*϶ش܈& `ab acd e"g0j !`͙ L+Wnop oqspYK*֡ Y͙] L++**WYYM,+YN*,-W- YYNxyz|} &'+/8GMUbjqz*v/QU+j?͚ Y!K$L*+** + & &0;'# Y͚ K*   Y*LM>Y:62Y++dd3,3!W,>+.  >AGIS>Y"T#$ M%$K&pB'(9)p *N*L+MN6+d6&,++dd3-3T-6ۻY,-.  03:=E>N"I#$ D.$=%$:&p+)p "Y͚ K*   /00de/buschtrommel/sudoku/SaveAndLoadHelper.class-z(de/buschtrommel/sudoku/SaveAndLoadHelperjava/lang/Object()VCode  LineNumberTableLocalVariableTablethis*Lde/buschtrommel/sudoku/SaveAndLoadHelper; loadPuzzle(I)Ljava/lang/String; Exceptionsewe/io/IOExceptionewe/io/BufferedReaderewe/io/FileReadergetFile(I)Lewe/io/File;  (Lewe/io/File;)V  (Lewe/io/Reader;)V  java/lang/StringBuffer!readLine()Ljava/lang/String; #$ %java/lang/String'valueOf&(Ljava/lang/Object;)Ljava/lang/String; )* (+(Ljava/lang/String;)V - ". 0append,(Ljava/lang/String;)Ljava/lang/StringBuffer; 23 "4toString 6$ "7close 9 :slotIfosLewe/io/BufferedReader; readStringLjava/lang/String; savePuzzle(ILjava/lang/String;)Vewe/io/BufferedWriterDewe/io/FileWriterF G(Lewe/io/Writer;)V I EJ ewe/io/WriterLwrite N- MO E: saveStringfile Lewe/io/File;Lewe/io/BufferedWriter; ewe/io/FileVpuzzleX(I)Ljava/lang/StringBuffer; 2Z "[.sud] W.getNameexists()Z ab Wc ewe/sys/Timee fewe/io/FileBaseh lastModified()J jk ilsetTime(J)Lewe/sys/Time; no fp f7 Not assignedsftLewe/sys/Time; SourceFileSaveAndLoadHelper.java!/*    CYY L"Y+&,/15+&515+&58M+;,  29=A C<=0>?=@A BCwMEYGY,HKN-+P-Q  *<=RAST >U WWY"YY/\^58_L+  <=ST `w%L+dfYgM,+mqW,rt !" #$%"' %<= uTvwxy'de/buschtrommel/sudoku/SaveDialog.class-9!de/buschtrommel/sudoku/SaveDialog-de/buschtrommel/sudoku/AbstractSaveLoadDialog'(Lde/buschtrommel/sudoku/Sudokuboard;)VCode  Save  ewe/ui/Form  windowTitleLjava/lang/String;  LineNumberTableLocalVariableTablethis#Lde/buschtrommel/sudoku/SaveDialog;board$Lde/buschtrommel/sudoku/Sudokuboard; getHTMLString()Ljava/lang/String;g
Save Puzzle to Slot
action(I)Z Exceptionsewe/io/IOException  !"de/buschtrommel/sudoku/Sudokuboard#model$Lde/buschtrommel/sudoku/SudokuModel; %& $'"de/buschtrommel/sudoku/SudokuModel)getPuzzleString + *,(de/buschtrommel/sudoku/SaveAndLoadHelper. savePuzzle(ILjava/lang/String;)V 01 /2iI saveString SourceFileSaveDialog.java1H *+ *     -  X*"(-M,3  45 678&de/buschtrommel/sudoku/Sudoku.class-Wde/buschtrommel/sudoku/Sudoku ewe/ui/Form SKIN_MENU Lewe/ui/Menu; HIGH_BUTTONLewe/ui/mButton; ERASE_BUTTONboard$Lde/buschtrommel/sudoku/Sudokuboard;infoLewe/fx/mImage; smallInfoclose aboutButton numberButtons[Lewe/ui/mButton;mItemShowViolationLewe/ui/MenuItem; mItemSolvemItemEnterPossibilities mItemSave mItemLoadmItemNewBoard24mItemNewBoard32mItemNewBoard48 mItemPlayModemItemComposeMode mItemExitGame mItemRegister mItemHelpGamemItemResetPuzzlemItemEmptyBoardmItemSolveStep mItemUndohighZmenuBar%Lde/buschtrommel/sudoku/ImageMenuBar; mItemProf IMAGE_PATHLjava/lang/String; ConstantValuede/buschtrommel/sudoku/images/-()VCode ewe/ui/Menu2java/lang/String4Classic6Soil8 Boys&Grils:Red&Blue<Style>Metal@SimpleBSkinD(([Ljava/lang/String;Ljava/lang/String;)V FG 3H  Jewe/ui/mButtonL ewe/fx/ImageN&de/buschtrommel/sudoku/images/memo.pngP(Ljava/lang/String;)V FR OS(Lewe/fx/IImage;)V FU MV  X'de/buschtrommel/sudoku/images/erase.pngZ  \LineNumberTableLocalVariableTablemain([Ljava/lang/String;)V ewe/sys/VmbstartEwe da ce F0 gexecute()I ij kexit(I)V mn coargs[Ljava/lang/String; g %& tupdateWindowTitle v0 w resizable y& zmoveable |& } ewe/fx/mImage'de/buschtrommel/sudoku/images/Close.png S Exit Sudokuewe/ui/Control setToolTip$(Ljava/lang/Object;)Lewe/ui/Control;  titleCancelLewe/ui/Control; modify(II)I  borderWidthI windowFlagsToSet de/buschtrommel/sudoku/Icon.png windowIconLewe/fx/IImage;  borderStyle  ewe/fx/ColorWhiteLewe/fx/Color;  backGround 'de/buschtrommel/sudoku/images/about.png "de/buschtrommel/sudoku/Sudokuboard g  getMenubar'()Lde/buschtrommel/sudoku/ImageMenuBar; isHPC()Z ewe/ui/CellPanel g ewe/ui/PaneladdLast"(Lewe/ui/Control;)Lewe/ui/Control; setCell(I)Lewe/ui/Control; &de/buschtrommel/sudoku/images/bunt.pnghttp://www.buschtrommel.netsetPreferredSize(II)Lewe/ui/Control;  setBorder getButtonPanel()Lewe/ui/CellPanel; addNext  ewe/ui/CanvasgetScrollablePanel()Lewe/ui/ScrollablePanel;  setControl  ewe/fx/Insets(IIII)V F setTag%(ILjava/lang/Object;)Lewe/ui/Control;  pieceWidth  setupMenus 0 %de/buschtrommel/sudoku/RegisterDialog getSkinNr j setSkin n thisLde/buschtrommel/sudoku/Sudoku;Lewe/ui/Holder;panelLewe/ui/CellPanel;java/lang/StringBuffer Mobile-Sudoku S registered     - unregistered append,(Ljava/lang/String;)Ljava/lang/StringBuffer;  toString()Ljava/lang/String;   windowTitle +  '( #de/buschtrommel/sudoku/ImageMenuBargetHeaderImage(I)Lewe/fx/mImage;   (Lewe/fx/mImage;)V F" # LighterGray % &Main(addMenu)(Ljava/lang/String;)Lewe/ui/PullDownMenu; *+ ,getMenu()Lewe/ui/Menu; ./ 0 Play Mode2 Compose Mode4 Save puzzle6 Load Puzzle8ewe/ui/ChoiceControl:addItems'([Ljava/lang/String;)[Lewe/ui/MenuItem; <= ;>addItem%(Ljava/lang/Object;)Lewe/ui/MenuItem; @A ;B  D  F  H  J-LExitN  PPuzzleRHeavy (24 Entries)TMedium (32 Entries)VEasy (48 Entries)XUndoZ Empty board\ Reset Puzzle^  `  b  d $ f " h ! jHintlShow violationsnShow possibilitiesp Solve SteprSolvet Prof. Sudokuv  x  z # |  ~ ) HelpRulesRegister    mainMenuitems[Lewe/ui/MenuItem; boardMenuhintMenuhelpMenu"de/buschtrommel/sudoku/images/skin(I)Ljava/lang/StringBuffer;   /header.pngskinNr   g MSigetImage#(Ljava/lang/String;)Lewe/fx/mImage;5(Ljava/lang/String;Ljava/lang/Object;)Lewe/fx/mImage;  java/lang/ThrowableprintStackTrace 0 java/lang/ExceptionfileeLjava/lang/Exception;drawMode  #(Ljava/lang/String;Lewe/fx/Color;)V F java/lang/Object '(Ljava/lang/String;Ljava/lang/String;)V F maskLjava/lang/Object; getFormFrame(I)Lewe/ui/FormFrame;  ewe/ui/FormFrametitleBar   LightGray  optionsffLewe/ui/FormFrame;ewe/ui/MenuItemChecked   modifiers  model$Lde/buschtrommel/sudoku/SudokuModel;  "de/buschtrommel/sudoku/SudokuModelcompose & chonEvent(Lewe/ui/Event;)V ewe/ui/Eventtype  target  action(Ljava/lang/Object;)V    evLewe/ui/Event;eventNumberSet n repaint 0 eventNumberMemo n obj actionnumbermenuItemSelected(Lewe/ui/MenuItem;)VenterPossibilies 0  repaintNow 0 solve 0  solveStep 0 showProf  0  newBoard  n undo 0 !de/buschtrommel/sudoku/SaveDialog'(Lde/buschtrommel/sudoku/Sudokuboard;)V F !de/buschtrommel/sudoku/LoadDialog toggleShowViolations 0  showViolation & Hide violations!setText%(Ljava/lang/String;)Lewe/ui/MenuItem; #$ % resetPuzzle '0 ( emptyBoard *0 +!de/buschtrommel/sudoku/HelpDialog- .g(I)Z m0 1 g&de/buschtrommel/sudoku/RegFailedDialog4 5gRegistraton successfull7mb 9R : getItemAt(I)Lewe/ui/MenuItem; <= ;>mef'Lde/buschtrommel/sudoku/RegisterDialog; setImage DU E setSkinNr Gn Hewe/ui/MessageBoxJ((Ljava/lang/String;Ljava/lang/String;I)V FL KMexec()Lewe/ui/FormFrame; OP QtextLewe/ui/MessageBox; SourceFile Sudoku.java!     !"#$%&'()*+,./01\3Y5Y7SY9SY;SY=SY?SYASYCSEIKMYOYQTWYMYOY[TW]^* /5 =!B H#P$U#[_ `a1J*fYhlWp^_ qrF01$N*s*u*x**Z{~*MYYW*W**Y*OYT*{***Y*Y*L*yYM,+W,MYY̷Wζ նW,*ٶW*,W**YW*8*+W**YW**ٶW**^'E= F GHJ I-H0K<LDMPO]PbRgSmTtUWYZ[\]_^_]`abcd fg)h9iBlFnMo_ N'n1,^r_ v01Z$*Y  ^y z y#{_ $1***Y*!$*'**)-1L+5Y3SY5SY7SY9S?M+KCW*,2E*,2G*,2I*,2K+5YMSYOS?M*,2Q*S-1N-5YUSYWSYYSYMSY[SY]SY_S?M*,2a*,2c*,2e*,2g*,2i*,2k*m-1:5YoSYqSYsSYuSYwS?M*,2y*,2{*,2}*,2*,2*-1:5YSYS?M*,2*,2*^) &.<IY]elsz (>BIPW^et_><a]@t)1U!YY`^_!!1cYL+W+]W* M=,*MYYS+*2W*+YW+^* "'BMYa_ c[$51`*+M,^ _ +15,Y+N--,Y+,Y+,^ (_*55+5  1-*M,,Ųȵ,,,ɵ,^ $+_ --'01_<*EY~*GY~***شݚ*EYԧ*GYԱ^& ")*AQ^__[1X+, *+*+^ _1=+] *+Y-**uuY*u '*>*2+=**u* *^F )?CHRT`dkv~_*}E1Y+*{**E+***/+*}* *+** *+*a**+*c*$*+*e*0*+*g**+*IY*lW+*KY*lWq+*y,**y* "o&W*@+*k*)**+*i*,*+*E**+*G**+*.Y/lW+*Q *2W+*-Y3M,lW 5Y6lW8;K?+ *tK?+ *aK?+ *NK?+ *;K?+ *(K?+ *K?+ *^G    %,4;BJQX`ipx !"#$%&'( )(*+#,*-1.9/@0G1O2Z3a4i5t6{789:;=>?@BDEFGHI JK L+M3N>OFPRQXS_ YY@"ABn1a*C**!FI*^VWXYZ_ 9R1QKY* NL+RW^]^__S+9TUV/de/buschtrommel/sudoku/SudokuGenerator.class-q&de/buschtrommel/sudoku/SudokuGeneratorjava/lang/Object PUZZLES36[Ljava/lang/String; PUZZLES24 PUZZLES48_randomWrapperLewe/util/Random;()VCodejava/lang/String000150490006032070008000032400907000320000014000304005910000600050690200072043000 000110110001011010001000011100101000110000011000101001110000100010110100011011000 000150490006032070008000032400907000320000014000304005910000600050690200072043000000197000000000850627050001000802509071000230902304000500040713094000000000586000 000111000000000110111010001000101101011000110101101000100010111011000000000111000 000197000000000850627050001000802509071000230902304000500040713094000000000586000830000004060090800020158009007006200001702900008300500900671020002030090400000081 110000001010010100010111001001001100001101100001100100100111010001010010100000011 830000004060090800020158009007006200001702900008300500900671020002030090400000081000298005081000000000070843000307200375000416009106000642030000000000790900825000 000111001011000000000010111000101100111000111001101000111010000000000110100111000 000298005081000000000070843000307200375000416009106000642030000000000790900825000  009000000000046000000070500714000060060200005000008004006000107090000086872000030 001000000000011000000010100111000010010100001000001001001000101010000011111000010 009000000000046000000070500714000060060200005000008004006000107090000086872000030060000000000004523083000100008000000000070009070000406009005080004008001002030607 010000000000001111011000100001000000000010001010000101001001010001001001001010101 060000000000004523083000100008000000000070009070000406009005080004008001002030607000000000000020060014000079002007008703500004000004001050060000000008003007000526 000000000000010010011000011001001001101100001000001001010010000000001001001000111 000000000000020060014000079002007008703500004000004001050060000000008003007000526000001800000050670006070300500013007000000040092000000000042501071030000008006002 000001100000010110001010100100011001000000010011000000000011101011010000001001001 000001800000050670006070300500013007000000040092000000000042501071030000008006002 030000020000200690700000000400890000060030000009075030080000259200000000005007043 010000010000100110100000000100110000010010000001011010010000111100000000001001011 030000020000200690700000000400890000060030000009075030080000259200000000005007043"000000107005000000800039060700000280300506001094000003030180004000000600207000000 000000101001000000100011010100000110100101001011000001010110001000000100101000000 000000107005000000800039060700000280300506001094000003030180004000000600207000000$000003010000520009600000007100608003090000050800407006700000004200036000080900000 000001010000110001100000001100101001010000010100101001100000001100011000010100000 000003010000520009600000007100608003090000050800407006700000004200036000080900000&000539000000000620780000001000000795000108000394000000500000048031000000000726000 000111000000000110110000001000000111000101000111000000100000011011000000000111000 000539000000000620780000001000000795000108000394000000500000048031000000000726000(600001500080700400090500200000030006400000007500020000002008090006005010003400005 100001100010100100010100100000010001100000001100010000001001010001001010001100001 600001500080700400090500200000030006400000007500020000002008090006005010003400005*000000120400790000008000000010203007023000450600508030000000900000014006057000000 000000110100110000001000000010101001011000110100101010000000100000011001011000000 000000120400790000008000000010203007023000450600508030000000900000014006057000000,  .050386010230090854071050063008209305703805201509104600180020430467010028090548070 010111010110010111011010011001101101101101101101101100110010110111010011010111010 0503860102300908540710500630082093057038052015091046001800204304670100280905480700430620150280950400060740892700302500503107908001405003654039080008016049012074065 110110110110110100010110111100101100101101101001101001111011010001011011011011011 4306201502809504000607408927003025005031079080014050036540390800080160490120740652492008300100539640000274810800956001317000596500317004083721000051643008006800173 111001100100111110000111110100111001111000111100111001011111000011111001001100111 4920083001005396400002748108009560013170005965003170040837210000516430080068001734703960184054180030891340076007204000006708300000609200470091653030026710168073409 101110111011110010111110011001101000001101100000101100110011111010011110111011101 7039601840541800308913400760072040000067083000006092004700916530300267101680734096006090241072014030419036050100307906207501304308902005020650813080420560653070400 001010111011011010111011010100101101101101101101101001010110111010110110111010100 0060902410720140304190360501003079062075013043089020050206508130804205606530704008  :ewe/util/Random< > =? ALineNumberTableLocalVariableTable ?this(Lde/buschtrommel/sudoku/SudokuGenerator; generateModel'(I)Lde/buschtrommel/sudoku/SudokuModel;9([Ljava/lang/String;)Lde/buschtrommel/sudoku/SudokuModel; HJ K Please waitMGenerating game...Oewe/ui/ProgressBarFormQdisplay5(Ljava/lang/String;Ljava/lang/String;Lewe/ui/Frame;)V ST RU"de/buschtrommel/sudoku/SudokuModelW(II)V >Y XZclear \ R] openNumbersImodel$Lde/buschtrommel/sudoku/SudokuModel;nextInt(I)I cd =esetPuzzleString(Ljava/lang/String;)V gh XiscrambleSymetric k Xlpuzzles SourceFileSudokuGenerator.java!    YSYSYSYS YSYSYSY!SY#SY%SY'SY)SY+SY -S/Y1SY3SY5SY7SY9S;=Y@BCn "',16";&A)G,M/S2VY6_7d:i=n@sCv6yGD>  /*ECD FG HI G /L$ L0 ;LNPVXY[L M^,^+/<<C6 KL MNO P'R/T<U=V@WBVEXD G_`9abEab HJ fXY[L+*B*f2j+m+C] ^ _^`aDn abop*de/buschtrommel/sudoku/SudokuModel.class-"de/buschtrommel/sudoku/SudokuModeljava/lang/Object_randomWrapperLewe/util/Random; sudoArray[[I solutionArraypredefinedArray[[Z startTimeLewe/sys/Time;composeZ solverlevelIrandomOpenFieldHelper[IrandomEmptyFieldHelperhistoryLewe/util/Vector;()VCodeewe/util/Random    LineNumberTableLocalVariableTable(II)V   &  ( +  -  /  1ewe/util/Vector3 4  6  8)de/buschtrommel/sudoku/BelegungsGenerator: getSudoku()[[I <= ;> ewe/sys/Time@ A CinitializeOpenFields(I)V EF GgetRandomOpenField()I IJ Kdiv(II)I MN O closeField Q# RgetRandomEmptyField TJ U openField W# XclearEnteredNumbers Z [solve()Z ]^ _this$Lde/buschtrommel/sudoku/SudokuModel;numberfieldfnextInt(I)I fg hfoundxyfoundEmptyFieldsimain([Ljava/lang/String;)V experiment q# rargs[Ljava/lang/String; # vjava/lang/SystemxoutLjava/io/PrintStream; z{ y|java/lang/StringBuffer~Model generation ((Ljava/lang/String;)V  append(I)Ljava/lang/StringBuffer; ,,(Ljava/lang/String;)Ljava/lang/StringBuffer; ):getTime()J A(J)Ljava/lang/StringBuffer; toString()Ljava/lang/String; java/io/PrintStreamprintln anzcountOpenFieldsretgetShuffeldNumbers(I)[I ;visibleIndizesclear  4 isPredefined(II)Z isViolatedxxyy getValueAt columnIndexrowIndex setValueAt(III)Vpush6(Lewe/util/Vector;Ljava/lang/Object;)Lewe/util/Vector; 4stateundo()Lewe/fx/Point;size J 4pop%(Lewe/util/Vector;)Ljava/lang/Object; 4 ewe/fx/Point vmove checkSolved  getImpossible(II)[ZgetNumbersOfRow([[II)[I ; enterNumbers([Z[I)V getNumbersOfColumn ;getNumbersOfViVi ([[III)[I ;result[ZnumbersgetPuzzleStringjava/lang/StringvalueOf&(Ljava/lang/Object;)Ljava/lang/String;  10Ljava/lang/String;jsetPuzzleString Exceptions#java/lang/IndexOutOfBoundsExceptionlength J ewe/util/mStringsplit((Ljava/lang/String;C)[Ljava/lang/String;  toCharArray()[C gelesen> != *3+2  readStringlinescalculatePossibilies(I)[[[Z()[[[Z   propagateConstraints ([[[Z[I)Z     solverLevel hintArray[[[ZstepDonef1f2f3f4f5 N   impossibleposs solveStep   makePossibleEntries([[[Z)Z "# $didStep solveArraygetTippergcheckSingleton([ZII)Z *+ , checkOnly([[[ZI)Z ./ 0getCoordinatesOfColumn(I)[[I 23 4 ([[[Z[[II)Z .6 7getCoordinatesOfRow 93 :getCoordinatesOfSubsquare <3 =noStep positionskgetPositionsContainingSearched([[[Z[[I[I[[I)[[I BC D F foundPositionfoundAll ([[[Z[[I[I)Z  J KsearchedNumbersisOneOf(I[I)Z NO Psearched foundAnyPosfoundAnyfoundAllAndoNoOthermodifiedconeOfzs containsAllOf([Z[I)Z [\ ]containsJustNumbersOf _\ ` containsAnyOf b\ cpossibilityArray(II[I)ZvalueAtvalue fieldValues ^ j ^ lemptyoldValscrambleSymetric changeCols q# r changeRows t# uchange2Numbers w xexChangeNumbers(II[[I)V z{ |col1col2arrayscramblechangeBlockCols # changeBlockRows # x1x2indentexChangeFields(IIII)Vy1y2val1val2b1b2   SourceFileSudokuModel.java!   4/ Y !  "#e*$*  %'*  %)*  *,*.*Q 0*Q 2*4Y57*9*?)*AYBD*H>$ *H0*L>* P pS*V6* P pY*\*`*\!f (-15>=@HMQRY!d"i#l$r%z'()*+#./"4abc(deIJE<=.> *,23*0 h`O  *0 i.!& 456 78#9&6/58;"*EabCj4k &lTJF<=) P> p6*'2. *2OQ*2 i.!. CDEFH I'J*D3M7N9P"4FabDm/nkl op5$s! TU" tu q#TAYBM>w}YAYB,e!"XZ [Z^6_P^S`"*TTL  nJ.<=">*,23  !"cde fge#d,h"*.ab,(k lEFL*  %'*  *,(M>$,.d P6,.d p6*Yl۱!& l mno#p/q9rAoKt">LabLc. +n/k9lW#E*,2T*'2*)2.O*,d2dT*'d2d*)d2d.O!w x{(|D}" EabEkElQ#1*,2T*'2O*,d2dT*'d2dO! !0" 1ab1k1lZV*AYBD*7<;=-*,23*'2*)2.O *'2O ӄ ű!* ':CLU" VabAk3l MN8l!"klG *,23!"  ab k l>6.*'2.#*'2.*'2.*'2. >6.*'2.#*'2.*'2.*'2. Ph>[Ph6> 0*'2.%*'2.*'2.*'2.Ph`Ph`!N 35>C^qs|"Habkl<n@<nhLNG *'2.!"  ab  `*.)*'2O*)2O*,2T5*,23**7 YOYOY*'2.OW*'2O!"-8V_"*`ab`k`l`x4*7+*7L*'+.2+.+.OY+.+.ư! $2"4ab^4<*=*ʚ*'2.  !  )2" 4ab0k"l/ N*-*'з*-*'׷*-*'۷-!& &*-"*/ab/k/l*i> +,.T,! "*abL=.> Y+*)2.L  һY+L=8>*Y+*,23L ք ȻY+L=.> Y+*'2.L  +!N '09MRW{"Rab4n &O>nT04n&*AYBD*7++ M>06 *)2,2 h`40dO ߄ >96)*,2,2 h`40dT ք >06 *'2,2 h`40dO ߄ ЧY!V "'-GQZ_e"\ ab"u$6n*'\?nb06n' * M>>*96`6q`6^`6K`68 YOYOYOYOYO: *, > DŽ    {*9y6l`6Y`6F`63 YOYOYOYO:*,> ̄   *9a6T`6A`6. YOYOYO:*,> ф  *9I6<`6) YOYO:*,> ք 5,!7     #,5>\`bdopz    !(".#7$@%T&X'g&h$r#|"*+,-./.,+2"ab x)e2R;?\e s`M:e+[4H=5TeC0ep   M>[6K*dd:*ddL6!,d2d2d+3T ބ  ,!. 9 :;<$=0>6?Q>[;e:nC">pab0+ e akRl3(e^i<**9!M*,%<!HN PR" ab& '(w**9!L=d>V*ddF66'+d2d2d3 66  Yư  !BW XYZ [#\)]:^@_GaJ\TcYdcYlXug">wab n' jl\k#@)&.e"#a=>46$*+d2d2-= ۄ >*+1= !2 kmn op*o+n5m>tCuVt_w">aaba'_&:k +l@./K>6#*5:*+8> 6#*;:*+8> 6#*>:*+8> !:|~%~/5=R\bj"f ab'e?*k@2*l=@_*Aj@.6>*+, YOE:2.6*2.d2.dG!*  %:<">>ab>>@>e.HI  s>6#*5:*+,L> 6#*;:*+,L> 6#*>:*+,L> !j$%/5=AEFQR\bjnrs~"f abM&*k@2*l=@_*Aj@ J %:*+,-E:2.62.62.6-up6 6 ] `2.6  `2.6 6 7* `-Q6+ d2 d2 36 + d2 d2 T   Ȅ   -kf6 6 S 2.6  2.6 6 1+ d2 d2- .d3+ d2 d2- .dT6  -΄   !#  #+3?BHS^do"ab@R S H#I+T3UBjV EdW SLk ^Al a>A o&X`V ZW Dk ;l 8Y <3L %M>:dphdp``6dlhdl``6,d2O,d2O ,!" /8AJ">LabLAD@ @Z#k/l93( %M>,d2O,d2O ,! &"*(ab(l @ k23( %M>,d2O,d2O ,!  & "*(ab(k @ lBCy  %:6,2.6,2.6*+d2d2-^G2\.`O2.2O2.2O*+d2d2-aL2\.`O?*+d2d2-d,2.2O2.2O2\.`O V!F 2<IViv !"#%("\ ab@RS H Wklb\t>+,.d3,!,-.,/"*abeeW[\t>+,.d3,!45647"*abeeW_\{#>+3*`,Q !<=><!?"*#ab#e#eWNfj*dd6*-Q! D E"4abkle gNOq>,.,!IJ KIM"*abheW*+N*ddB66+d3 66 *ddG!2 R STUV%W,Y/T9[>\J]L`">NabNiNkNl<)&e]^: *k*m! df"  abnE*.<*.=> *G  *AYBD*7*.!. jk lmnm$l-o8p?qDs"*Eab@o !np2*\<  i3AO]cq*s*s*s*s*s*s*s*v*v*v*v*v*v*v*y[!Rvw xD{J|R~X`fntzw"abYw>  i`<  i`=  i`=**'}**)}!" $)3=" >ab 3~(z{J6?6/-2.-2O-2. -2O Є !&  "-5?I">JabJ~JJFk 6l&*\< i ou{*s*s*s*s*s*s*s*s*s*v*v*v*v*v*v*v*v*v****** !v  %"&abY#p>*h`h`s!"*ab#p>*h`h`v!"*ab) *'2.6*'2.6*'2O*'2O*)2.6*)2.6*)2O*)2O*,236*,236*,2T*,2T!6   *4?JT^it~"\ ab uj^!iq#k>* ! "*ablt#k>* !  "*abk*de/buschtrommel/sudoku/Sudokuboard$1.class-Q$de/buschtrommel/sudoku/Sudokuboard$1ewe/graphics/AniImagethis$0$Lde/buschtrommel/sudoku/Sudokuboard; Synthetic val$line1Ljava/lang/String; val$line2](Lde/buschtrommel/sudoku/Sudokuboard;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V Exceptions"java/lang/IllegalArgumentExceptionCode(Ljava/lang/String;)V       LineNumberTableLocalVariableTablethis&Lde/buschtrommel/sudoku/Sudokuboard$1; $anonymous0doDraw(Lewe/fx/Graphics;I)V ewe/fx/mImage!  "# ewe/fx/Pen% ewe/fx/Color'BlackLewe/fx/Color; )* (+(Lewe/fx/Color;II)V - &.ewe/fx/Graphics0setPen(Lewe/fx/Pen;)Lewe/fx/Pen; 23 14setColor(Lewe/fx/Color;)V 67 18 ewe/fx/Font:Arial<(Ljava/lang/String;II)V > ;?setFont(Lewe/fx/Font;)V AB 1CdrawText E> 1FgLewe/fx/Graphics;optionsIfont2 Lewe/fx/Font; SourceFileSudokuboard.java InnerClasses0    N*,*+*-*   I*+$+&Y,/5W+,9;Y= @N+-D+*  G+* G"+0<H*IIHIIJK+LMNOP )de/buschtrommel/sudoku/Sudokuboard.class-]"de/buschtrommel/sudoku/Sudokuboardewe/graphics/MosaicPanelPROF1Lewe/graphics/AniImage;PROF2PROF3_randomWrapperLewe/util/Random;REDLewe/fx/Color;BLUEBROWNWHITE standardInk VIOLATIONINKSKININKS[Lewe/fx/Color; boardWidthImodel$Lde/buschtrommel/sudoku/SudokuModel;pics[[Lewe/graphics/AniImage; showViolationZ fieldWhite fieldGrey cursorPosLewe/fx/Point; pieceWidth backgroundprofBildsprechBlasenBildcheckId selectionmemo[[[ZskinNrtwice()VCodeewe/graphics/AniImage-&de/buschtrommel/sudoku/images/prof.png/(Ljava/lang/String;)V 12 .3  5'de/buschtrommel/sudoku/images/prof2.png7  9'de/buschtrommel/sudoku/images/prof3.png;  =ewe/util/Random? 1+ @A C ewe/fx/ColorE(III)V 1G FH J L  N  P  R  T  VLineNumberTableLocalVariableTabletoggleShowViolations  [ewe/graphics/Mosaic]imagesLewe/graphics/ImageList; _` ^aewe/util/Vectorcclear e+ dfmakeBackground h+ i fillPieces k+ lthis$Lde/buschtrommel/sudoku/Sudokuboard; imageMovedOn(Lewe/graphics/AniImage;)Z ! rewe/ui/Controlt setCursor(I)V vw ux pq zimage imageMovedOff movingOnTo ~  }q getRenderPoint(II)Lewe/fx/Point;     ewe/fx/mImagegetDim(Lewe/fx/Rect;)Lewe/fx/Rect;  ewe/fx/Rectwidth   ewe/fx/Point(II)V 1 xyspp clearProf +    ewe/fx/Image ewe/fx/Graphics(Lewe/fx/ISurface;)V 1  getBackground()Lewe/fx/Color; usetColor(Lewe/fx/Color;)V fillRect(IIII)V      draw(Lewe/fx/Graphics;III)V free + freeze + .AsetImage(Lewe/fx/Image;)V  properties  Lewe/fx/Image; | backgroundImage ^wigLewe/fx/Graphics;image2  "de/buschtrommel/sudoku/SudokuModel getValueAt(II)I  showPicAt G clearSprechblase +  "  setLocation . repaintNow + u ewe/sys/Vmsleep w  removeImage(Lewe/graphics/AniImage;)V ^ # showProfI'm already here !!Did you like my tip?showBlub'(Ljava/lang/String;Ljava/lang/String;)V  nextInt(I)I  @addImage  ^ getTipp()Lewe/fx/Point;    checkSolved()Z   You got it!I'm impressed..I'm puzzled...There must be an error!java/lang/StringBufferHey, look at positon  3append,(Ljava/lang/Object;)Ljava/lang/StringBuffer; !" #toString()Ljava/lang/String; %& ' It's simple!)My secret sudoku formula..+ says try -Lets have a look at /a very suspicious cell1My calculation says 3 A is the next candidate!6,(Ljava/lang/String;)Ljava/lang/StringBuffer; !8 9Come on! You should try ;harder, before asking!=Lets analyse the situation?...A comes nextC$de/buschtrommel/sudoku/Sudokuboard$1E(de/buschtrommel/sudoku/images/sprech.pngG](Lde/buschtrommel/sudoku/Sudokuboard;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 1I FJline1Ljava/lang/String;line2 showMiniPicAt(II[Z)V  Q containsTrue([Z)Z ST U'de/buschtrommel/sudoku/MultiNumAniImageW([Z)V 1Y XZbs[Z isPredefined(II)Z ^_ `compose b cBlack e Ff isViolated h_ i clearMemo k l#de/buschtrommel/sudoku/TextAniImagen(I)Ljava/lang/StringBuffer; !p q#(Lewe/fx/Color;Ljava/lang/String;)V 1s otvaluecolor Amodify z u{ autoScrolling } ~ quickDragging  ^' &'  ) *de/buschtrommel/sudoku/images/rechteck.png/de/buschtrommel/sudoku/images/rechteck-grey.pngmake(Z)V  unewBoard w reMake&de/buschtrommel/sudoku/SudokuGenerator generateModel'(I)Lde/buschtrommel/sudoku/SudokuModel;   k+  sudokusizesetPuzzleString Exceptions#java/lang/IndexOutOfBoundsException 2  readString resetPuzzleclearEnteredNumbers + refresh + ^ emptyBoardempty +  takeSnapShot + ^calculateSizes 1  ewe/ui/Canvas virtualSize Lewe/fx/Rect;  height  preferredHeight  upreferredWidth  u imagePressed((Lewe/graphics/AniImage;Lewe/fx/Point;)Z whichPiece   % *de/buschtrommel/sudoku/images/selected.png getLocation(Lewe/fx/Point;)Lewe/fx/Point;  wherefieldtoBoardLocationpieceXpieceYboardXboardY onKeyEvent(Lewe/ui/KeyEvent;)V ewe/ui/Eventtype  ewe/ui/KeyEventkey  evUp + consumed  evDown +   select(Lewe/fx/Point;)V  eventNumberSet w   uevLewe/ui/KeyEvent;p1   renderPoint difference(Lewe/sys/Time;Lewe/sys/Time;)I ewe/sys/Timehour  minute  timeLewe/sys/Time; startTimeeventNumberMemo setMemoNumber(ILewe/fx/Point;)V    actionnumberp2 OP %de/buschtrommel/sudoku/RegisterDialog registered  Please register Mobile Sudoku! de/buschtrommel/sudoku/Sudokumb 2  setValueAt  G ! A   $  &ewe/ui/MessageBox(Solved*You solved the quiz in , minutes.((Ljava/lang/String;Ljava/lang/String;I)V 10 )1 ewe/ui/Form3exec()Lewe/ui/FormFrame; 56 47Lewe/ui/MessageBox;enterPossibiliescalculatePossibilies(I)[[[Z ;< =solve solveStep @ AsetSkin ( D"de/buschtrommel/sudoku/images/skinFjava/lang/StringHvalueOf&(Ljava/lang/Object;)Ljava/lang/String; JK IL /rechteck.pngN/rechteck-grey.pngPstringundo S TscramblescrambleSymetric W+ X SourceFileSudokuboard.java InnerClasses!          !"#$%&'())*+,.Y046.Y84:.Y<4>@YBDFYIKFYIMFYdPPIOFYIQOSKUFYMSYOSYMSYQSYMSYMSYMSWXV $.!=#L%\'o*u,{../.YZ+,Z **\\*bg*j*mXDEFGHY  nopq,O+*s*y*+{XKL NYno|}q,e%+*s***s*y*+XRSTVY%no%|,.*dl>Y*h`*h`:Xcd+eY4.no..+h+,***h<YMY,N-*-6Q6?lplpp` :*:-**-,*.Yȵs*s,*sY**sҵձXZijkl!m)n1o7p=qVrYq[setvpovwxyz{|YRno!4Z:H[ek+,D*<1=!****݄*ͱX&  -8CY Dno 9)+,F**=*h<** * h****X.  "&4<@EYFno"+,K****XY no+,t*****.Y6SY:SY>SD2** h** * h<***h*ܶ'*ܶ**D(Ij*Y *ܶ$(**,Y. *ܶ$(|*Y0 *ܶ$(2[*4Y5*ܶ$7:(7*<>**@YB *ܶ$D:(*X+08;JR]fjn{258;PY\_ilYnoZ!,1**FY*H+,K**h*h** X (0Y 1no1LM1NMOP,Y*:*R22**R22*-V4*R2XY-[S*R22**R22 X"'7LXY4YnoYYY\]QST,f=+3 X Y no\]G,2*:S:*a *ܴdg:*\*jU:*R22**R22I*m*R2oYY5r(uS*R22**R22 X: #(;@ K W [aY>nov w 1+,b*x* *  yR*\*|W****   *.Y4.Y4X>1 57>$?)@.Z4BGTX[aY bno,H **0X Y no w,d**bg**j*mX!#$%&'Yno2,l *bg**+*j*m*X+, -./01Y no Mk+,u#<= *m  X45 654"7Y #no k,n>*22T X:;:<Y*no+,Y*ܶ*bg*j*m*X?@ABCDY no+,Y**ܶ*bg**XGH IKLMY no+,n4*Y*****sZZZñXPQR!Q3SY 4no,7**,,N*--:*-*.Y̷4***ʶ R**ʶ*д*д *ʧ***ʶ *XFVWXY&Z+[1Z4\E]P_X`ka~bdeijY4no|,h"Y*h*l`*h*l`XnonY "no"",A *++ȰXsY no ,t*l>*l6YXwxyY4no ,9M+dA+:041234 5678&9-${$$$*+*+*0**жM,, ,d*,+*1**жM,, ,`*,+********* **+X*   $%+,239:@AFGLY*MnoM !+,u1*,**жL++ +`*+X+0Y1no,w)*++M,Y`,Y`*,WX !(Y )no) +,t0*+**жL++ +d*+X*/Y0no ,S*+d?O\br     Y>no"D 9:+,S**>=>>0*dd*dd*d2d2* Є ±X&  &<@IRY SnoD6?+,k%*bg**j*m**ܶBX"!" #$%&!$(Y %noCw,q*EW2SYG `r(M.YY,M O:(4.YY,M Q:(4*bg**j*mX* +, -!.?/]1d2h3l4p5Y qnoq!PRM@+,G*ܶBW*j*mX89 :;Y noS+,p,*ܶUL+"*++*++*X>? @'A+CY,no$V+,Q*ܶY*bg*j*mXFGHIJY noZ[\ F,de/buschtrommel/sudoku/TextAniImage.class-a#de/buschtrommel/sudoku/TextAniImageewe/graphics/AniImagetypeItextLjava/lang/String;colorLewe/fx/Color;font2 Lewe/fx/Font;()VCode ewe/fx/FontArial(Ljava/lang/String;II)V   LineNumberTableLocalVariableTable#(Lewe/fx/Color;Ljava/lang/String;)V     !  # ewe/fx/mImage%location Lewe/fx/Rect; '( &) ewe/fx/Rect+width - ,.height 0 ,1this%Lde/buschtrommel/sudoku/TextAniImage;(Lewe/fx/Color;I)Vjava/lang/StringBuffer6 7append(I)Ljava/lang/StringBuffer; 9: 7;toString()Ljava/lang/String; => 7?  AidoDraw(Lewe/fx/Graphics;I)V ewe/fx/PenF(Lewe/fx/Color;II)V H GIewe/fx/GraphicsKsetPen(Lewe/fx/Pen;)Lewe/fx/Pen; MN LOsetColor(Lewe/fx/Color;)V QR LSsetFont(Lewe/fx/Font;)V UV LWdrawText Y LZgLewe/fx/Graphics;options SourceFileTextAniImage.java   4Y  +** *+"*,$**/**2* " %* +34+ +5V*+7Y8<@B  34 CDE{-+GY*"JPW+*"T+X+*$["#$!%,& -34-\]-^_`(de/buschtrommel/sudoku/images/Close.pngPNG  IHDR gAMA|Q cHRMz%u0`:oIDATxb?51@Q0 @9b 'H (  2001^kf D0Cp@"* q@ a@Tez: @($@ %f@Q @T7 @@79IENDB`&de/buschtrommel/sudoku/images/Info.pngPNG  IHDR szzIDATx 0ЎcLT քPh:Dd|mE J%"oa!)#,`X 5|Hvv:ƚD h@R "!j=d cܻ @1kY QUYH=ps"ChA0Q{yп0|n:B3+h~_;Z7}yoIENDB`(de/buschtrommel/sudoku/images/about.pngPNG  IHDR''Q5gAMA|Q cHRMz%u0`:ooIDATxb?`DŸ?3~'+'D 3 kkgad_VXŐ ~1߽r&O~MVAV@ #{v?xx47'Vf.o\ ˏ\ vݙm|VVl`qifabݳ/و vέZ2g: (Yll,CCic'@r_~|ELRRVC@890>~0}5pT6!}GBBh/vf@6'+ġ<<,`DZ1= lLWRQ?P @DFgM}CWt0JeGq ,Xؘc`zc'# 2? ?75HtDw}a<@׮^`"aZ?1)o% 2Xs-@1(JJ[Xtkk ,Le"\ ϭgaǷ螺 F P~b322߸q=Ú5x8?y/#CdB"CQiCzfåk7lm~b`b=N1o޸Ëx45SY8 jþ* 9}0218;3غՓG RB ^~ ̬ f`~e``~+QaO͍ > o>~c` q_9aJ~M9Y~~%2eʴעb  g/c1,5X * B ?a0i ןߎ23笮(hopfuMm+728{!++WrG'WV,[u?ޝ/_O_yێ?ľ^|~?)1??3&v%3z{^?l@(6 VkI]!L xϏ@x(e~ c}\l;o*? KGGW끸,06@ "'c`^,{Ç;MMa4' dA}iY'2\tA^A_ tC7k>?06@ܷw߾fŜl_޼#HPmToXɣO=33R?~tk__opH|/xˇ'Mÿ'1Bɭ, R v \ ܂ % o`Xd[7֭Y͠ ,@L~ L AOOnccn߹7`ea0ml'x) Prge1h00033x{0\xhl_KK~x 4 0Ýwn޸ !%CCrYYY!!!P`ooϠ ,2,]eB~`SPPx;@(m p{xCW&M+ySmyrNdh_sQeiily0wvu/,*򟛗?GUm|<`x$_LB@`qf`Ͽ` r}{&@p/浣;Š?{B*$FcfeR99۰gu@V/^?9=nާo 9 P2ćA(AN^aε |V XA}p19޾~0\xa W\bPVVdx,6ܹðj*S $899n3Rgfvv^2YϷ=~dڬ[.^p-K0ALDl ()3j B l:?(CWW_@ ;38W01|0 &WL@gJ00 1Ynzmv^U]ؽ{˰z:`.54^}}= ?%CjFß?,[kܺuʕ+ׯ_TTTWRRhw @'5ׯ7mtڵ/_ 311 ۆ8 <;wWp)ևtP4$`sԩx|}ժU@n Fs( }v>}"ӧ[l48 HΝCz*M3@ P`ѣGOX\{?J)Ez,q@ps6ƌlno8ër!^@_إԅј%kvºi,nk#a1>ȫ9FiI)q7y+eJ)+QA(Jŝ:espB;=v=yGv@~@ `f2v`aj V`Z @A;>%'.vSN)"LR?nJ)E c5`lO`\tQRJ`߾TBchFwrV )4\kسSуT$"úvCD/}{A4`Ib㜓'}} njm a(Ju\EKHd4f"4Di 0= B2ݝ+do~sΔXIW} <5H11!(QIvǶmz)eYyB5&7urQbZ>ˣKk i$:,^3_Jwˤ_ }uM)DyI;D)XkIE(ib>/L?Q3{A(7[k v<;xOK,[,l<53'7BJ&H?q[ NTIxpZA`J)pA%s6ZsK UJ Xk Ƈ$o ^H*4e5iTk-~'3MS8gQrۛɁCΙ ж,0 ٚzo =^g'0EH[MI9i帏}0 Li:5kF4TE'-S9 )];~6!}Bf_ ?3Z0|:$E;sLYsl*D2 j?-޻sNX~k]> cGSyS ?}mj?!#yf@DSΡ8K^ .I&bn'bDdXk/[,u9,Ӱ|:cRqG-[ek" m1,"sη.d'uAЁv ct9eaO7TkuRbaIrnz!?GnۃgKӀ`8 0uxo^X>6e9On=;Rk% 6Ъ ŸEǁG=k'k ‡\BC˒9fRtG> 1՜s6]?QXcMkLĬאVU%^,cP_%*֦9vGkI\3N@‘ HXVE`yRJ%ho O)Bք[lZ+? Lq]wc q1ƜCnGک~ <IR!yP.YVf0)[p%uag 93;&+zjАMK3Qk &eH`iCia*̰#@)7gl@CQK +s0S: jƸ{rP)d*-.SPJs" 2lFT~H#GKYk=s.$Fc^# ]!@BA#{3z$2SZk(Ȭ~>0佗foΙK`7Xh}EFcwHA} kC@;-n1DA@1H$dTAD  pވV9#~3s;ǒQY(egfED1#b#HWs0LʋTyu]Js!y!tׁ!EEM+15uWtkC>',={ݔRXP~^ECL)",x#N_}pt{D(X2E!`ts/<LW-J0iA\%A4È$8.9gF½IS_XkoM)Q.IX8{7$BSu+鱀VN϶kkHps/7 0ESS Q"a1BȘl㙇9'&6*Gy< &0C=ܔevv9AU\tѽ' &gyhL>V.#O!Zann9dr\?S&Y{/ɥ(tG#j;K+5􆸾#^R)~<; 0 E}eL5_0i 9{o` 9|A 8:1$iE6pm>v U wPs90x8>8ab˟vaBmc|m-|k^.SYQfq\k1sK\",C ;A&H/]*vE(A9gJ8c-:B(!0i|ƀ {uEʾPWBx\BKKAsY@BD=j=X;8⚎c -+?@blXy~O;[ZSJЦ0h3=6e4:?(9-[+#S*Kt%%.OH9噚9vi ٩6Azy4$M-FV ݁ԓh`gM!@98ϟ| ymkkkKIIu"h|ha`188ZgΜYn%Vr1'?!{#t^ 6& h(~lGܹOME6 [vfR0D~d`x .vx 9aH;y]A@C "7(~6h[[[{,gHE={FP G;dƏ?nݺ&.,,u, h W@=T?ꂯ_޾};P\|Sq`kO}:gȁ@ )) Q=Jݳ!^SSp%â͛7C}3V***dX LZΝ;5$xٮ]H!왠ˁ;b {409߿dsG,5(K:[JS@C/rpp~cFj0yu;ЮUVl\‚Ζ2 CDh@Sw#:ɞл}K @#8 h@fffZ:db5BAR(9h˖-oK S @C/27P̏?RkP@SҺy`[Ulllhz&nY9 ^>-nϟ?S(`]Dj̅s<p6/++K~BO> z9aE;ϟ?R;vȑ#/\@ d!4!@C/{`ӑ*1@s.^H.`žb ʗ@Z~ ))IύԿzY4r FuITU6A! 5 m&M.-  F`CˁaׯS/_xnܸq}*9Lk:F{]h@`&v9Ĉ\Tsx (!qȑw Q`+J h@VVVYYY":Pُ?jJ_xA((-!Z,dC@ ; ٕ`dL[:/_@z 7P ˁG'ې_~=quC6VlE󠚁m.!~*yzϞ=;nTiӳ5;@ 撷VX 'Ov92:AP`MZ ^ ++`^"2`髩C~A:o@gLLLLMM P 4r 0kk*'f|q餶y; *`Hϟ?) KKK???: Xf<&RX`ܓ &c,u %G[R?b8Ձ4r $k"m1yz"=]E].IIIȻeee_8@b9<M YJ"u,?~Lvyyg7E@C/䍗߾}#/cS'߈́O>%O#zL#+S+ X6m6ɻ߃m !@vZρdU@ Ǐ?Q(&&$-I`@U/0>@Kf??? 7̷@{G&8B64ӧO8_|fҁq+WNP48*Q0 ! `́` $8 F@́` $8 F@́` $8 F@́` $8 F@́` $8 F@́` $8 F@́` $8 F@́` $8 F@́` $8 F@́` $8 F@62sIENDB`*de/buschtrommel/sudoku/images/erase.pngPNG  IHDRgAMA|Q cHRMz%u0`:oIDATxb? (6FFFN 2wrp6@!!a@`?" bBRD @,0` |@+ |@bĂg#52 @ձM%F<IENDB`+de/buschtrommel/sudoku/images/header.pngPNG  IHDR<hugAMA|Q cHRMz%u0`:oIDATxbsxˁ7M?}$̌r@@` ۷מ=V{-++?''I##3+33A 8zի۶KRѻ߾s0'_zWQnzS Bw_g?GN6/_=|z99Bk@G2p}KP~JJ G̃_珵}}ve11] L9mci_+WOܻ+ dc@8cw9DKJ2a}Ann!A}͛~Czxd_.ZZ"< t//)7mr}޽>ғё:ڐoޜ􈝅P^Xm|߁K-$/B J ACݻ@= #ϟ|ე00jk @(GWMS!;/$0͙*(?P 3`CZIZRRdn t10 Mԑl`tMJ|Խ{@FOxؚ3gˀ?٨v}{^ysMOY!@(u7 LG`j6&/`J#*M9$$ԣwc';,Ib,}U9і@z 4$g%[(+qpUU9]<$##nxL9@Y(OPfw`47V?|V~ZZ @G~2ЋJ;u5~.. _*Pwān&^38QЁ,Rܵ?~ּi07#.gMM`X>x˗]n̔6 J`A^ ؎pt/p^d $/=~ʃD%&30{ϵkbπqן? rHѶyee̔*w\7;uu`iɓ@Ami Ll3gzG޻źsq'0)Ý @"LX} 0s`\K"0疋ݺF:0_;Fs灾\ Ppٳ@hfwMܵNNֻsOma/7;hx׫ϟzG@(4 %"f`.&A)?Q|0,{w󏟀'ޥ.XؼyWp} ^95c"`Z Q?zkWzg3@2Íϧl5Lˀ%w/0rЊ8B4'纜lfFF`L@S#P.?~,jyqi']} X 0`b"  doׯ5D0L0 XYkן?+=YY`g/0Λ/}D`ZŴ hR$" T4܁J5#jXh›LE?ਗ0IENDB`)de/buschtrommel/sudoku/images/memo.pngPNG  IHDRgAMA|Q cHRMz%u0`:oIDATxb?:`dd g$V XaH@1!s@q.3 A8]@DBl. C`6ۈK_DtĂMdѽ.a@ 0e!y;R'6@\¤@Q⸼ `}WŴIENDB`+de/buschtrommel/sudoku/images/msudoku.pngPNG  IHDR89gAMA|Q cHRMz%u0`:oIDATxbr(T 7hQ@$¹z:fbBg# 0`US=V CkaPL&f2rI0I!D{ .A3XصP) ݀0M"KKK8ŋ>47G4NN>ήd߸q-/]; F 40A n[҂,bmb9K:Bg"MW~ԧum .8 4M :hZay)Dr?Z.o]XeO-Q@4 $vi+|s2C|sH`r h[Gg:@yS z>y5huii)htWY!췗pYT;@zP1!#x01A1 kkk܋/.^YJipmv+ MšH*5\Z]՘/l.M3ϱ@&reY@} Q:tNMFy d W@iZBB#i}n8???"kA l>O7@W'Ia" a(Rs}7(Ak +;*!ICํg!Um1eNH@@LTޞ)DyŹg;r*eiN9*|2  i8 ؞Ɯs7,GAe̫ "P`m z>uꔶ`{A}D}0 ɋ/YA.\J}O ,B'j`{h Ydb'Zˈz633riyD}F8! ޞ&@=؞%z`7΁d)MV`*dA}.`&!\-XM6mdQ@ @p+Ls@QgW=S\Dz`{e} T}'-V7 ݨ f`{ζLgP T*xmI3@ yQ0HAIH- G8::T=% ǵ5?@,,,=="ƏXL HNikHE Xt`f$b*i^21`ah.@+n>MDT{,H*iş쨕( rkr%I;Al\-Uڻx\NF{} m1g@0!f/)5 yQ0@i2h =h@Q0@Q0@Q0@Q0@Q0@az`BS@:8@aIӘ5iz 8HLLvD/"<&Q0@Gm{x#Chtc @ 4GJ@@${P6Kᄳ*(dhF_Cn ɚBNdM(`0`a|L@Gp4~rƅ4hUf@rA@X`ޘfN F4 ɅƭѶ(n F(n F(n xx4jpBEgS(L@#88aSH! Y3 F}ڙ54ڞ h 5F Up}y5=f043zf FamOh4Mh4Mh4MqC!(Y;OL>uiiy+G)@4$)@4H5@ |cot4iz"-M#:QC :S{ HK$O4q( {]4mBzh{z 7@ܞC 4@"U ix-3Ѷ#,1NOm4`4rRAG2`!9FVVv6ajQ/(Dr( s.$KQlFf`0ЮVF4`izph@hP<qb@ raĤ@áh h 53k(4zfp3i4zf(mOh4Mh4Mh4M˸MϧМQFM XLA>U)z5aE4 h h h h h h  qIk06rPA/rv&BZF ih <"ـm@@=*ంw !}#2@䴧(Ie@ }9j@9<BV:V nQDX.v0Z``=247G4NN>ήd߸q-/]; F 40A n[҂,bmb9K:Bg"MW~ԧum .8 4M :hZay)Dr?Z.o]XeO-!}m XxP."9McoNyȂo.I1LON!sm⌡&9ɂ 12A#hJ[Oc`$gQ0E@'OZ#VzK.!q~>I@+~{OOIYjhi  *zLAȈ2LD DDL0A@iyyZ8ŋ/F)))sRh?\(]J?~b{@~Sqhm  ymW5 Kl@sle.zxYa3H_$ftɦ)@2 o\7!HZ&r=\$ck7-j dϯImֶ3*\G.lRӎArj) ْlWа</\Ӷ ]Wӽ&QBгtM5_=@i p"֊K/4>5g_$u@D+`SKݠ,Ӯ쨄^R$ z6Y_dBWuZekƮ ^]"X$̭]ֶsfP0s9\ ϷEG!p[SLygDxE jju!m ٱ:PMyFiz[Mw*S=( ɚ D4!S^L+*!xpZA z$]sld[ ,:/RM˵%SRМd),QA&!/< ؞Ɯs7,GAe̫ "PySer>_qCzm4) )ʜIFn[O:ހpgPQ4 ) y%+=p…⍕ XN41n!M: Lzhx X@2b@\`{}Qmh p{[;4][M;}MC>"rd6ؤ>"G&\Ar&E m`{:}I=% BlLKxzi`oOA&5r؞pؤ.D-iCXf%s:깘"zXJ`{e} T}'-V4 AnfY8Ҟ#DVKQdb -YYŒjfbV2:vC>"|,@vD| dglZ|/-? mC߉$!t[ @Cfq䱼}TO[txf'I# rq`x9M’ё)?daayɓ  v//_Lݣ`pBO$⮾GbYHBƨQ0  D>&n1 0$r9xD`PTTT0PVDÙ` 4PF 塥Q0 3?>@acP=DgΝ;tP`Y@mQ0@Q0@Q0@Q0@Q0@Q0@Q0@Q0@U`v;*T5\>Q@< b#,ٴIhhJD"FKl@bUI,D d.>l E$! 8 @9 5"?b2VZ"9M#!M"S#1n{`ML%~x @$ixĀQ6yQib# EV$r`d , bi%"f˕$mqU [Tiq9Q@@$=\ bcø\I8( FGp4%4Gp4Gp4Gp4Gp4Gp}|Q `ZZ T1gP4yX2/ 11 ClkMr(4IOw i@yX(5TpWNGbrEtXcHoV@d[?@:QGQ FFp4GpD4KiȀ."daFeQ5LdȎFu@Qx4A"Y.6Yb5jHdAw Fzf 1P ix3z=F2JOZMa@ӣ`Mӣ`Mӣ`"О&rg(`db N0@KP1QX@LӸv2VV1;2mF 4sd&E9=XVZJu) F;(\7 h g`xhRx ?5L8wG {pə5elbXNFLhWV*`p4C3kNg4AӴ?=f@4'(Q0@ @WǢQ0$@ pHL!ڰQ Fzb:p0$+HM;ƩzT a퇊'Ke]4R@VN3h&hA[/G8~,+UbH#=h4MBZh L]0 ~g֐M/R6w@;`-Gi{i(i)l P4j5@0cyh &N$H*ѭ4G3` 9@T6u ؘ/4<Π# 1 %0h^t< F{h4Mh4MVg֌@0zf̀ 3kiQ@e085DΙ54uPC ά Fo r@}Q0@̚A~ɨQC(\ F<fά(n F(n FϬ5j Ј#΃fFϬ53k7 h{z 7@iz 7@iz 7@iz 7@{ ]ǣs%I HN@둷ǎ&Q@9@NEoN ܨ3 ^>m{> <"m @ 4:1 4= 4GpDZF;n8 ! =F(bѶ(n F(n F(n FϬ͌YC qp43B@g֌!ά(n F(n FϬ5j Ј#΃fFϬ53k7 h{z 7@iz 7@iz 7@iz 7@9ASfo*]9\< ?jmA&0@E3z R @7>PV_R? ϹP)g**͏=@ pq\ Fz A ømCm{ Cf@*-S4`i*VXpC(7s8 @ X9=8[cfh&g @ C*cI I{z84= 4= 3kA3gPhDG͌)5`3kh== 4= 3kFF88a=҅x081@=9,Go v* h== 4= 4= 4= =7N@%tjmr*#nV*`v}-3 'bh9MC@CF` 4=`J]@@iZ;ASh!I: x@}DZ*3I4 Cf4r¡M4a*@Q0@Q0@Q0@hOsXFt! `Q yHSH N3kFhgh{z 7@iz 7@g֌5Th̚ g:h̚x5 h== 4= 5tTmE]@iz 4dՠJ4Gi@~zWs[]bb MEW9izPU4 ';j2C&)aNo ]4=Ij?"U+rc*R9`/p+<ËA>rT,b{^i~ %A F@ymOX |c>@ r*0Pic6>R AR\ PNSw I1`p4N~32UNPI9|ߟ,,ᐦ `=g"bsQX # ?X4m8ʦAb`k{@m?1bk[hmk`ff'h@ rzG= ~o!9^VVv6ah!^䏦lT/\43A҃IC6 F.66Tloh8i`D}!p2adn/ÃjMp5L4(u)P(*2B߿?Lr})M?̄hӣ`HF&~bˣ4= ߴ F(/ozZ!h̚x0>?媣 lY3[BB>|`Yx1*ꨟ?YX}WV5 `@%?Ex_A{l33">P^)@Y3 88ڙ54ڞC`MИ F(n F(n F(n {[T`8qk$pLA>U)R 85d8Ѷ(n F(n F(n F(s'{;h8 C`MlV 4.[۾Q0Q @6r  24VLAL @dF9iW&5obR\#\;6j)yNE |:HF<^rg&@$hR!j4Hlp-$2-yN%ۃ`FDZƟw &CR={p eE) 5_?21HhI~001200310r12o?ɔ @, B lPJCN^N~!_>{W*83;;ûwxE$'Vظ4fn ~a|S]T^ӫ axr:fVV`'gw2gfa ,v^޻ɠGVv6vq_m#˿~b;|%$؇/?Ï?~w`q񏁕APX_DXlA\^W(4_ ϯ}Pr '!X@\̔C@,L,l$k>} ?`~X32[>}#^0|>{ׯ+7# 3Ï@s>|dPWfw3n)1I` X|1|{󎁅?0sـ)\HZz;`!zY RbڨT_/{cŒ;qzeJA.64țH{R! Vw-1C 6-e0 IԨPc}=OO Bb[H(ns#f槣<1U>&c6_гrO̍X޽BxZS_H&ѓ <6 &ZSxJKxyc _D"vz8åK7]WiA!`blr RAA} '$ paNз>2cd ûod%n~`B`E:7j ( lpB XWۧ\y9.2|o߾2p1f`Fo`g^vVQ~>y `5E$9r < ?`xAr0 !" `SARQRav'}p+ T3 \@|Q'|Ign2<{>G+@q0ps`y ,DŽ'/l 2|EP^_A^J_XF2|h{+lsq3pI1/bx}`ÃAPN#&[Hh/+%j) n( C0EӾ6/` &@,M$4Gкvt;sMi g*9/UBD8FBQQ 8.cst m Qs.?kF}("5{EzE2TfyzQ(olWH0N^oXߍPˠb8P 6m(QQ68'*3ӛc+o\Ŷyϧ0K;Mc/rN(1/ KGLi 1LYT" Epf L5}kY<9#jan|hQ?hlB%@,~'X`v癏)}Hv>s'/B&¤x8>n`} l21I,lMaa[<< O` @||>0W s3Mm^qqoCfg-A<` {:8/a $CbkZ ~ʮ[|b*XoK7uaHn<]8zX6ݶg31)/JyV[[&A+ sXFm9!ʡ25' JuiR1@`A3wD0OOc|0nL_?M}?Yx$8~ Udcx}qq d/ ,X#xg Az`Vf߿!l@vF`$n^aE96NGL̬38A)Xrs 0WB*G- bu*0;߿}YYEO?1\zp3J`@X[!=l@`vB32t3h` 2<q8P߿Ac^`wAE/'0- <" \BB v;# ߿~ЬL B 玒m?P0g +7$ ,g:ׯo }`64^j}@pq~AR954?3'// fv$?'bZml (WrsG'![=Xa 8Ҡ%Ԉ$yo96:? \0CHT [{ Dsª:މ9$.ҘU`v4;mK^(b(3rѴp @{ Q Fzn?N8^e,d'9FN>b-+@p# J (y~G 65$V:/a؝]&'fs#L\OJ4pA/"Jϳ,oɃ #X2uϤRh)cUjvϨr.t.Lژ晩bvMh|~t8eD@U^ѱ/+K1qS;/)`;Û)؄,7`|&,-j,.9?}aa`V~>0 # V L_`5Wy;G br Ҋ %@E`Q%) YDxd ؁uȚ  .0;qAQ/L*'E0 @,|J{/??3|ANB<~+05sMLvmpP,3? 0)' >v2pp1ëoDu7 2o23e3.@,~CGp׷֠!;7/=o?~00{?ņ<%, /  o>0{~رaa-7}pSN`3Rh;|ڡ huaq.` =a6_}yAQwe=}'@-KN` *7 wfeP6d9o_$” F[?>X}zOXV__2Aާ Ͼ10X+O ~0`bgЙW0~2)5 ij` `l0̔U '+3U c_$AsB >}fx É'>[T3eÇwO!Pw[70B ~611a`a`|AF_< lᨘ{?8X 9FOQ2U  }w~{3X&bd`gdfeP 0pr0\_A3d92 A .Җ **"7ß_vo0p+dAp?L[6 sT19_~~7ח?8Ye0/o ~O2|AUXA^T_@b_!<-^a3]#?=3<+Ǡfo;028g9 N_6RF*&v[&nà4 % ^1*$()8qO`g!`S>2pS|\ vwS<''+9/@ {4u^h2e|zݛ & ҲV h".?͵ }_20 p| Xdf;'_#sn6{3h\Dh\VAN^AHX'K`''; O!&(ݫ }[&[w`[EA XyAXfq[J¹[`b l0sq2_>0|{Iܼ#˘M?3|xGN !@L0ʽ$7_r1P   (~dx|"Ó7~|g݊ > BB oM<~`SQ^D F`v`@]/_0|b / >|d#0e236՘3^fd*6}e7dxᅓj 3 ׿_>H ,ذkv~`UbRgR$>p%/3(sp0pqf^! FO 3`ߟځO ?:JJ+&$(Eb!=@^# 1$cfb~QeA\s.bx572w ϗO^pEsC'V O2@h/Oe8eo`d*h+뀬L !5=:҃1gQl(C^_[̙؄߿y0S_~g} `ȹ+`'0?adTIdV>71p 9 ~}Í{ BBV,~4-bI8 C4p-i VhY< _A)cxFLPh·wױo?@`Cf_ ?[.f`%r0+2p {-76)~|!$,o/^1ECXHA XؘϮsNF~>x+4E[Shm5h4<ң|v쎥K@8x8! +}3C`0fedPfv~~gd^ ȿ9KD ; ,Z< >B$?,(eR'(4 /@a<03YXX)M?y˖=L2pDhk0S`hg("Y_3eb`af`Q[2O L2~c31}ˀmZwցH, @`LQ .lo}z_ɠ+#E20*&hـ4_ \ ,l ⼠X -#L (#P %lZgA \z*^x}6`7 /m-&`3joآ/Ny ,u2(KJ0}0K7>1׏ ~ .> !,#V`_XTw@+ %F&f) h,22^Xf`{GK"1̕hl A2&I2a;,7*[&`[3AeښeJ@45%@q~?*`\R0<6J/Ċ x7<qF/ t ŪmƦOn<79lXyD05C$exZkhowKf1m{09&B$$Oү .ޢv9r%;]ZﶶD%)du} j6!y*/\V:$q(re!/W1Ś(l#h8@Rlп``+֒ Dikc0`Ƌx>oރraL\hHDEA-ࢫM:ҙcAO$auo̙ڒ^nt_VP&Orq=r4EBtispqhơԟ$|?t# ]w~;ŧ#O0]x&C̘08`]l[ $lw0MaHxՒd*`'A%c ^(/@tK7/.ڟ[ 0 MY] EDA/~?Ń()2<A˒4-.۪Ί˕7J0,jX^[.)r[fsyY#,Ve%@g YH;|J&G$2h{z>K+񾿫a:dH#HV)X{ rl;tGoĊ,-+I J@"PPR"~'xWA D0kn,^3+Ͽ`/+cZmPqN,&2c]4(s@]Ϫ$dj0z @&'jz(IK0HGw=F㑭l+뛁x ;x l  2:xGLdTÑÇs6y [/(A߿0>6قr@ l`e@E܌@nG!d\2d<(sq12K0H*1H2<<, * A4 .7 ׁ)`#`y ;9.!  KG#`Gc`5"R6fVf#G040\tW N.N uLmmm__*`1Chp(Ö͛LJa P@emcÐGWWWݻwsBb&N+d#o&N?y?oq+I s@ȭrghH4;Tb#\=)x@#x3oK.wo7vf߾jAyN#5IC$j"hxi[QZ!^>4u cV'htEIȹ՛3!q3^&<>E/581HRCG0/(8O*#Q.pDYrKzGd3֫}?=#|.ִBC N}]YN` #3@xVm 1AR8+dqSFAGӀ½@Q6P7͘Ձs7wa`W]LAAEaɃ n\`  iaYPqr 0%ں19{&"/h9+xD ` X,y3}deF!8Ag!Aa:saaa>01@f+a'޿?h h;<6fP9o$#Im_BiX8'3C;@}^6;@G9< `X{-00 Sɯ̞pmV` :g4cʲ\2 jo` 4$!#`QX(*)S`9\ܹs⢟)[GWFn2 nglo4 YIfp,>eG㛗ȥ;@ =ߠYPqdP02S6H6f@,-cD `@ hK5(Uq=#&)p]eׂ8p`=tRO> as7 o?'Ά9c`3؈a݆`Κf}|Ey)9`jbsXhugn`nOz_qABLaߞ=sSBB!athj7UD/4i`_f"B/3 l9 y1h&h#O@fft32NC{s a1  9yQ`jfI 6;~`Ji92.ʇƵ+ v;Б_2j2DE;^2ńD%=e&xʏRF;*AF?hIpϟ>[&ޘ!Y89 Je N3,`X@m 0p4t\F; LQpމt )TK2(3{AD\< ^`41,Y;lc[&\4)27?~8={\b'_0d2=rpU)`TJF 8pvV >~N@IK016EA,9%': I]C'w灕xf~_H?@16qB1|H"ld P[\zI̐J\[0Bg Ti , >4 Xt'`gΝ{$КAm=)ie=-;7#5Xۗo "" &`z cR3œ݇w ~NMN` ,A|Y~gx%/@ peH7  '3 !?3@yȐ ؋Dj3>J!spjfϠʓ eExJPVo>wyA=| l11<9~N-_F> 03e`cgZ!`kXLAo .V JAn lI0XY[2zSٸ((G'A XDAPE 6YMc ~?)<Pe8 Fh _B@Ͽ{zvI`aps]o2|sQ5*hAl+vc(޺_Ba/.l2r5w`3WGA6-m`hBa`SOYYL$$%e7b5e 05 r"$&lyч74–2[Hxf`det``7A?#t$6*r=Ko?3Ó,TDDnN% V5sp&X UOzXT31Vį߾bcp0a2HS5(bbQA9TӰps~F?1# XpQd",A9~_K_!+aޕy`᯽NHzjZd>A2Pwfd+ë+Nf@.M:vb$4lOA\႒/*n*UlS4;vDɈx(vQd7O=e"& Wom:S,69˕"}l S~_Ieqg[^-uQίA⫻z{ 7 CƖ뜻? zwfW΂̚Pw_DOwj<;CX\0礲HVͷOh#]tY*Ƃde.۽7pEk7ƊYD}(T6UzJdK+;IޜN`d`s<*Fb,ce$inE-1._]7a N08EQd$P tAi?Ԕ49H!)@$ rw],;Lcj)e`%_/DD@h0@uxƆЋ'llK"ӟt >+Đg%3ib5X} gdz)Nc4[ |>%+wnZ6Ԣȕ}_o%)Y¿Zyӏ%z>GjbU,iwV4),\A.Ú)Q;b [-̂m0~!t{<\PԳb#b_-e+D|kjNHʎRZguu=̙3>.Djs- ,;c$"\KYOb.0=W:*}5-q<P O)qR|·OF{q"-օr1 t}EŜQ3HA`:]-A3 ww-[-Þ lPLV;T) )~}{3a)zD3-wGYglBZXx w`- *4`6@Yȼ_P@pF6HEbp ؐfbal]B贈Fx= nm<~A= XKq0t# ~~Vk2@2 j.;O<f \叞?e!0b1ܹ} 3'~` cpuweص}ulF಑ Z IJWf մ I$oJ?E:xR 0vV|};ӷjY|p6LG?,XVw]ԀheL`y]Vٺނ 8P;"%:bC>:8v7"7'%i20&Ccdʜe/K 9 8?0>޶l~||掿l|_zf0.b D9Y1v]Я3"qn^Uu Bytu-QwȖB[(>/PGmYJ܉}y=s涹ѽѴ 7䪁[il^IsV4vېbj%2H́ki}`4v>ht\ڠ,McP&L,sكJnyDKusNJ~V3OYe nm\럫d=I}uYi#흂8-qrbZ*Fzq7S.c)U+ǡ-+z-h`@k"L; PN>PIsi;c_`, ]ڳ6Gy_]ϻ P@E߾cxr:0 krе'bxloOEbX+˟;{(ҷ >0wķ/7 R ZVbcxvÛ{`_?z(TO}/9Rf|"s҃eA||2b 0VN6pV4{:2Zy5d@wI5ة|T *H/\\^.82ܼyXd<{dsʕb/ >bxCQJ8)uLX J|! Oײ D'{AD("5"kӢU__}AQ0zm\m^眙sDKk ғ{=5Nj\(,ǯ|Jd@J͎ %Y\ kD~x2(j԰seehcJEbZ,6-p1=@A6L[7#4M7O@rXM[_a$b:STZdhqPp@MZQ < /oЋn*b@Lh< # 8PjƆ //%9 UIUyO.a_SP>h%-s XXmRp_ 2 J"A"4ʅеҰ)=$U^^`Ξ!$4l(A'_%%zm/kYRǡt"u]:m@4qᝨ-(蠔pF9VF!E6Β,]w#W"eA ^补ViE+S0LJuϝݸqg9sM00] Z*$ɫ IJsel{zwfc ŷ=sśdW9d,2R4j! P'-7+E<. :XMUK䯷lc\pBc-($%w畍`\L'?oQx"ϟ3TiXdA4hfPpJ)ОrPͫuu2|~|7_n/BԂׯ ?8QP : !  Y>|b qT*~@->>nq H5##l}m TZ~@|͍B+HU߀M_-߾S7Tw:y6=Xľl~`N.56aep`0F:ac=h0t.x'􏑗t)BAtMPh%0ڄ-ڇ7h%BMAp-" $lU,l㍧d4KI].-Ioqܡzߤ&@SQ2b0a9H䧦" ` YWK%Km $ t ֶBF3\:o;&r]kE\tj2v!cX(s"ܑŒa$#˘ lh,6@M_>1y`4QRJɠ, >vnNJ)PV]K ح<\ XXZ;h5+ PJ)h'74p6BlIݻu^`蠞 e@[y`4R@, /Barq CL JM6h6AeIH% /5cW_,Utco3sHZ.謌 ܼ4 ph4uWC{ $'$K{ؔ:` ZG- j#S+`kGB#8x^>pM:w#U `0e?Y$ǀ'W`b @,|?} ^\̒vR'x@TF"!Ę?~B9 je,{9V̠:t#|o, YU&/DZ*=:>~?`g1B7>RtAt\ h^gee³N?~Ǡ/hl}tF&L+98(Gm@023qtk2p COUxL24LAZb6 j<. hЄ0ۇ8A|`' e+`CCNW ک>J+ ]OpA)z 5e a1FSP4yeW!~nǠ,A'' H1~~7~ XyYI@s@?24lIL\1;!srƿ;x.ԣrЖb'bJ wj@r_% "C ;@s̐2PU꠽,Lm)1X Cִ&bVp QTeW_c ?2H 1D*j1y!܄AAD ?cg%H$T *!pgAYf uf ??1r1~bXYjsރh)h̰uuAgBfsN7@GPAҘ `u~90{R5,@'W0tX{G`"#l4`8i+9O`<l|W0/%Rb E^ ߁, or{ +l 3 J_~1 1bgc&fq˄43(f;u7l@PnW@NM[R-8-M>Ь f@?ٜp&_z@~11Y] =c!`l?Ȭ8( A1P<-e&