home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / AnfyJava14 / data1.cab / Program_Files / Applet / mandel2 / mandel.jar / mandel.class (.txt) < prev   
Encoding:
Java Class File  |  1998-11-29  |  14.0 KB  |  1,151 lines

  1. import java.applet.Applet;
  2. import java.awt.Component;
  3. import java.awt.Container;
  4. import java.awt.Dimension;
  5. import java.awt.Event;
  6. import java.awt.Frame;
  7. import java.awt.Graphics;
  8. import java.awt.Image;
  9. import java.awt.Label;
  10. import java.awt.LayoutManager;
  11. import java.awt.MediaTracker;
  12. import java.awt.Panel;
  13. import java.awt.Toolkit;
  14. import java.awt.image.DirectColorModel;
  15. import java.awt.image.ImageObserver;
  16. import java.awt.image.MemoryImageSource;
  17. import java.io.ByteArrayOutputStream;
  18. import java.io.IOException;
  19. import java.io.InputStream;
  20. import java.io.OutputStream;
  21. import java.net.MalformedURLException;
  22. import java.net.URL;
  23.  
  24. public class mandel extends Applet implements Runnable, ImageObserver {
  25.    // $FF: renamed from: a java.awt.Frame
  26.    Frame field_0;
  27.    // $FF: renamed from: b boolean
  28.    boolean field_1 = false;
  29.    // $FF: renamed from: c java.lang.String
  30.    final String field_2 = method_13("<\n3\\#\tZ!If;\u001b!Y)]9*E%\u001e\u0013c\u00181\n\rmQ(\u001b");
  31.    // $FF: renamed from: d byte[]
  32.    byte[] field_3;
  33.    // $FF: renamed from: e int
  34.    int field_4;
  35.    // $FF: renamed from: f int
  36.    int field_5;
  37.    // $FF: renamed from: g int
  38.    int field_6;
  39.    // $FF: renamed from: h int
  40.    int field_7;
  41.    // $FF: renamed from: i int
  42.    int field_8;
  43.    // $FF: renamed from: j long
  44.    long field_9;
  45.    // $FF: renamed from: k int[]
  46.    int[] field_10;
  47.    // $FF: renamed from: l byte[]
  48.    byte[] field_11;
  49.    // $FF: renamed from: m int
  50.    int field_12;
  51.    // $FF: renamed from: n int
  52.    int field_13;
  53.    // $FF: renamed from: o java.awt.Image
  54.    private Image field_14;
  55.    // $FF: renamed from: p boolean
  56.    boolean field_15 = false;
  57.    // $FF: renamed from: q java.net.URL
  58.    URL field_16;
  59.    // $FF: renamed from: r int
  60.    int field_17;
  61.    // $FF: renamed from: s int
  62.    int field_18;
  63.    // $FF: renamed from: t java.lang.String
  64.    String field_19;
  65.    // $FF: renamed from: u java.lang.String
  66.    String field_20;
  67.    // $FF: renamed from: v java.lang.String
  68.    String field_21;
  69.    // $FF: renamed from: w java.lang.String
  70.    String field_22;
  71.    // $FF: renamed from: x java.lang.String
  72.    String field_23;
  73.    // $FF: renamed from: y java.lang.String
  74.    String field_24;
  75.    // $FF: renamed from: z java.lang.String
  76.    String field_25;
  77.    // $FF: renamed from: A java.lang.String
  78.    String field_26;
  79.    // $FF: renamed from: B java.lang.String
  80.    String field_27;
  81.    // $FF: renamed from: C java.lang.String
  82.    String field_28;
  83.    // $FF: renamed from: D java.lang.String
  84.    String field_29;
  85.    // $FF: renamed from: E boolean
  86.    boolean field_30 = false;
  87.    // $FF: renamed from: F int
  88.    int field_31 = 1;
  89.    // $FF: renamed from: G java.awt.Graphics
  90.    private Graphics field_32;
  91.    // $FF: renamed from: H java.awt.Image
  92.    private Image field_33;
  93.    // $FF: renamed from: I boolean
  94.    boolean field_34 = false;
  95.    // $FF: renamed from: J java.awt.Image
  96.    private Image field_35;
  97.    // $FF: renamed from: K int
  98.    int field_36;
  99.    // $FF: renamed from: L int
  100.    int field_37;
  101.    // $FF: renamed from: M byte[]
  102.    byte[] field_38;
  103.    // $FF: renamed from: N byte[]
  104.    byte[] field_39;
  105.    // $FF: renamed from: O byte[]
  106.    byte[] field_40;
  107.    // $FF: renamed from: P int[]
  108.    int[] field_41;
  109.    // $FF: renamed from: Q boolean
  110.    boolean field_42 = true;
  111.    // $FF: renamed from: R int
  112.    int field_43;
  113.    // $FF: renamed from: S anfy
  114.    anfy field_44;
  115.    // $FF: renamed from: T java.awt.image.MemoryImageSource
  116.    MemoryImageSource field_45;
  117.    // $FF: renamed from: U int
  118.    int field_46;
  119.    // $FF: renamed from: V int
  120.    int field_47;
  121.    // $FF: renamed from: W byte[]
  122.    byte[] field_48;
  123.    // $FF: renamed from: X boolean
  124.    boolean field_49 = false;
  125.    // $FF: renamed from: Y int
  126.    int field_50 = 1;
  127.    // $FF: renamed from: Z java.lang.String
  128.    String field_51;
  129.    // $FF: renamed from: ba java.awt.Toolkit
  130.    Toolkit field_52;
  131.    // $FF: renamed from: bb java.lang.Thread
  132.    Thread field_53;
  133.    // $FF: renamed from: bc int
  134.    int field_54;
  135.    // $FF: renamed from: bd Lware
  136.    Lware field_55;
  137.    // $FF: renamed from: be float
  138.    float field_56 = -0.44F;
  139.    // $FF: renamed from: bf float
  140.    float field_57 = -0.0044F;
  141.    // $FF: renamed from: bg float
  142.    float field_58 = -0.64F;
  143.    // $FF: renamed from: bh float
  144.    float field_59 = 0.0022F;
  145.    // $FF: renamed from: bi float
  146.    float field_60;
  147.    // $FF: renamed from: bj float[]
  148.    float[] field_61;
  149.    // $FF: renamed from: bk float
  150.    float field_62 = -0.0044F;
  151.    // $FF: renamed from: bl float
  152.    float field_63 = 0.7F;
  153.    // $FF: renamed from: bm float
  154.    float field_64 = 0.0022F;
  155.    // $FF: renamed from: bn float
  156.    float field_65 = 0.55F;
  157.    // $FF: renamed from: bo float
  158.    float field_66;
  159.  
  160.    // $FF: renamed from: a () void
  161.    private final void method_0() {
  162.       while(true) {
  163.          ((Applet)this).showStatus(method_13("9\u0015-\u00172]\b&])\u000b\u001fcG1\nT\"^ \u0004\u0010\"F'S\u0019,]f\u001e\b&T/\t\tc\\/\u0013\u001fcY(]2\u0017}\n\\"));
  164.  
  165.          try {
  166.             Thread.sleep(500L);
  167.          } catch (InterruptedException var1) {
  168.          }
  169.       }
  170.    }
  171.  
  172.    // $FF: renamed from: b () boolean
  173.    public synchronized boolean method_1() {
  174.       ((Component)this).prepareImage(this.field_35, this);
  175.       if (!this.field_15) {
  176.          return false;
  177.       } else {
  178.          for(int var1 = 0; var1 < 3; ++var1) {
  179.             this.notifyAll();
  180.             Thread.yield();
  181.  
  182.             try {
  183.                Thread.sleep(100L);
  184.             } catch (InterruptedException var2) {
  185.             }
  186.          }
  187.  
  188.          return this.field_34;
  189.       }
  190.    }
  191.  
  192.    public void destroy() {
  193.       if (this.field_35 != null) {
  194.          this.field_35.flush();
  195.       }
  196.  
  197.       this.field_35 = null;
  198.       if (this.field_33 != null) {
  199.          this.field_33.flush();
  200.       }
  201.  
  202.       this.field_33 = null;
  203.       if (this.field_32 != null) {
  204.          this.field_32.dispose();
  205.       }
  206.  
  207.       this.field_32 = null;
  208.       System.gc();
  209.    }
  210.  
  211.    // $FF: renamed from: c () void
  212.    public final void method_2() {
  213.       int var1 = 0;
  214.       float var11 = (this.field_56 - this.field_58) / (float)this.field_54;
  215.       float var12 = (this.field_63 - this.field_65) / (float)this.field_12;
  216.       this.field_61[0] = this.field_58;
  217.  
  218.       for(int var10 = 1; var10 < this.field_54; ++var10) {
  219.          this.field_61[var10] = this.field_61[var10 - 1] + var11;
  220.       }
  221.  
  222.       float var2 = this.field_63;
  223.       int var13 = this.field_12;
  224.       int var14 = this.field_54;
  225.       int[] var15 = this.field_10;
  226.       int[] var16 = this.field_41;
  227.       float[] var17 = this.field_61;
  228.  
  229.       for(int var9 = 0; var9 < var13; ++var9) {
  230.          for(int var19 = 0; var19 < var14; ++var19) {
  231.             float var3 = this.field_60;
  232.             float var4 = this.field_66;
  233.             float var7 = var17[var19];
  234.  
  235.             int var8;
  236.             for(var8 = 0; var8 < 255; ++var8) {
  237.                float var5 = var3 * var3;
  238.                float var6 = var4 * var4;
  239.                if (var5 + var6 >= 4.0F) {
  240.                   break;
  241.                }
  242.  
  243.                var4 *= var3;
  244.                var4 += var4 + var2;
  245.                var3 = var5 - var6 + var7;
  246.             }
  247.  
  248.             var15[var1++] = var16[var8 >> 1];
  249.          }
  250.  
  251.          var2 -= var12;
  252.       }
  253.  
  254.       ++this.field_5;
  255.       ++this.field_6;
  256.       ++this.field_7;
  257.       ++this.field_8;
  258.       if (this.field_5 > 205) {
  259.          this.field_62 = -this.field_62;
  260.          this.field_5 = 0;
  261.       }
  262.  
  263.       if (this.field_6 > 160) {
  264.          this.field_64 = -this.field_64;
  265.          this.field_6 = 0;
  266.       }
  267.  
  268.       if (this.field_7 > 265) {
  269.          this.field_57 = -this.field_57;
  270.          this.field_7 = 0;
  271.       }
  272.  
  273.       if (this.field_8 > 375) {
  274.          this.field_8 = 0;
  275.          this.field_59 = -this.field_59;
  276.       }
  277.  
  278.       this.field_58 += this.field_59;
  279.       this.field_56 += this.field_57;
  280.       this.field_65 += this.field_64;
  281.       this.field_63 += this.field_62;
  282.    }
  283.  
  284.    // $FF: renamed from: d () void
  285.    public final void method_3() {
  286.       int var1 = 0;
  287.  
  288.       for(int var2 = 0; var2 < 16; ++var2) {
  289.          this.field_38[var1] = 0;
  290.          this.field_39[var1] = 64;
  291.          this.field_40[var1++] = (byte)(32 + var2 * 4);
  292.       }
  293.  
  294.       for(int var3 = 0; var3 < 16; ++var3) {
  295.          this.field_38[var1] = (byte)(var3 * 16);
  296.          this.field_39[var1] = 64;
  297.          this.field_40[var1++] = (byte)(96 + var3 * 2);
  298.       }
  299.  
  300.       for(int var4 = 0; var4 < 32; ++var4) {
  301.          this.field_38[var1] = -1;
  302.          this.field_39[var1] = (byte)(64 + var4 * 2);
  303.          this.field_40[var1++] = (byte)(128 + var4);
  304.       }
  305.  
  306.       for(int var5 = 0; var5 < 32; ++var5) {
  307.          this.field_38[var1] = -1;
  308.          this.field_39[var1] = (byte)(128 + var5 * 4);
  309.          this.field_40[var1++] = (byte)(160 + var5);
  310.       }
  311.  
  312.       for(int var6 = 0; var6 < 16; ++var6) {
  313.          this.field_38[var1] = (byte)(255 - var6 * 4);
  314.          this.field_39[var1] = (byte)(255 - var6 * 4);
  315.          this.field_40[var1++] = (byte)(160 - var6 * 8);
  316.       }
  317.  
  318.       for(int var7 = 0; var7 < 16; ++var7) {
  319.          this.field_38[var1] = -65;
  320.          this.field_39[var1] = -65;
  321.          this.field_40[var1++] = 32;
  322.       }
  323.  
  324.       switch (this.field_31) {
  325.          case 1:
  326.             this.method_7(this.field_38, this.field_39, this.field_40);
  327.             return;
  328.          case 2:
  329.             this.method_7(this.field_38, this.field_40, this.field_39);
  330.             return;
  331.          case 3:
  332.             this.method_7(this.field_39, this.field_38, this.field_40);
  333.             return;
  334.          case 4:
  335.             this.method_7(this.field_39, this.field_40, this.field_38);
  336.             return;
  337.          case 5:
  338.             this.method_7(this.field_40, this.field_38, this.field_39);
  339.             return;
  340.          case 6:
  341.             this.method_7(this.field_40, this.field_39, this.field_38);
  342.             return;
  343.          case 7:
  344.             this.method_7(this.field_38, this.field_38, this.field_39);
  345.             return;
  346.          case 8:
  347.             this.method_7(this.field_38, this.field_38, this.field_40);
  348.             return;
  349.          case 9:
  350.             this.method_7(this.field_38, this.field_39, this.field_38);
  351.             return;
  352.          case 10:
  353.             this.method_7(this.field_38, this.field_39, this.field_39);
  354.             return;
  355.          case 11:
  356.             this.method_7(this.field_38, this.field_40, this.field_38);
  357.             return;
  358.          case 12:
  359.             this.method_7(this.field_38, this.field_40, this.field_40);
  360.             return;
  361.          case 13:
  362.             this.method_7(this.field_39, this.field_39, this.field_38);
  363.             return;
  364.          case 14:
  365.             this.method_7(this.field_39, this.field_39, this.field_40);
  366.             return;
  367.          case 15:
  368.             this.method_7(this.field_39, this.field_38, this.field_38);
  369.             return;
  370.          case 16:
  371.             this.method_7(this.field_39, this.field_38, this.field_39);
  372.             return;
  373.          case 17:
  374.             this.method_7(this.field_39, this.field_40, this.field_39);
  375.             return;
  376.          case 18:
  377.             this.method_7(this.field_39, this.field_40, this.field_40);
  378.             return;
  379.          case 19:
  380.             this.method_7(this.field_40, this.field_40, this.field_38);
  381.             return;
  382.          case 20:
  383.             this.method_7(this.field_40, this.field_40, this.field_39);
  384.             return;
  385.          case 21:
  386.             this.method_7(this.field_40, this.field_38, this.field_38);
  387.             return;
  388.          case 22:
  389.             this.method_7(this.field_40, this.field_38, this.field_40);
  390.             return;
  391.          case 23:
  392.             this.method_7(this.field_40, this.field_39, this.field_39);
  393.             return;
  394.          case 24:
  395.             this.method_7(this.field_40, this.field_39, this.field_40);
  396.             return;
  397.          case 25:
  398.             this.method_7(this.field_38, this.field_38, this.field_38);
  399.             return;
  400.          case 26:
  401.             this.method_7(this.field_40, this.field_40, this.field_40);
  402.             return;
  403.          case 27:
  404.             this.method_7(this.field_39, this.field_39, this.field_39);
  405.             return;
  406.          default:
  407.       }
  408.    }
  409.  
  410.    // $FF: renamed from: a (java.lang.String) java.awt.Image
  411.    Image method_4(String var1) {
  412.       try {
  413.          return this.method_5(var1);
  414.       } catch (NoSuchMethodError var2) {
  415.          return this.method_5(var1);
  416.       }
  417.    }
  418.  
  419.    // $FF: renamed from: b (java.lang.String) java.awt.Image
  420.    synchronized Image method_5(String var1) {
  421.       URL var2 = null;
  422.       Image var3 = null;
  423.  
  424.       try {
  425.          var2 = new URL(((Applet)this).getDocumentBase(), var1);
  426.       } catch (MalformedURLException var14) {
  427.       }
  428.  
  429.       try {
  430.          try {
  431.             InputStream var4 = this.getClass().getResourceAsStream(var2.toString());
  432.             if (var4 != null) {
  433.                ByteArrayOutputStream var5 = new ByteArrayOutputStream(1024);
  434.                byte[] var6 = new byte[512];
  435.                boolean var8 = false;
  436.                Object var9 = null;
  437.  
  438.                try {
  439.                   while(!var8) {
  440.                      int var7 = var4.read(var6, 0, 512);
  441.                      if (var7 != -1) {
  442.                         var5.write(var6, 0, var7);
  443.                         ((OutputStream)var5).flush();
  444.                      } else {
  445.                         var8 = true;
  446.                      }
  447.                   }
  448.  
  449.                   var21 = var5.toByteArray();
  450.                   ((OutputStream)var5).close();
  451.                   var4.close();
  452.                } catch (IOException var15) {
  453.                   var21 = null;
  454.                }
  455.  
  456.                System.gc();
  457.                if (var21 != null) {
  458.                   var3 = ((Component)this).getToolkit().createImage(var21);
  459.                   ((Component)this).prepareImage(var3, this);
  460.                }
  461.             }
  462.          } catch (NoSuchMethodError var16) {
  463.          }
  464.       } catch (SecurityException var17) {
  465.       }
  466.  
  467.       if (var3 == null) {
  468.          int var18 = 0;
  469.  
  470.          while(var18 < 5) {
  471.             try {
  472.                if (var18 % 2 == 0) {
  473.                   var3 = Toolkit.getDefaultToolkit().getImage(var2);
  474.                } else {
  475.                   var3 = ((Applet)this).getImage(var2);
  476.                }
  477.  
  478.                ++var18;
  479.                MediaTracker var20 = new MediaTracker(this);
  480.                this.notifyAll();
  481.                Thread.currentThread();
  482.                Thread.yield();
  483.  
  484.                try {
  485.                   var20.addImage(var3, 0);
  486.                   var20.waitForID(0);
  487.                } catch (InterruptedException var12) {
  488.                   var3 = null;
  489.                }
  490.  
  491.                if (var20.isErrorID(0)) {
  492.                   var3 = null;
  493.                } else {
  494.                   var18 = 6;
  495.                }
  496.             } catch (NullPointerException var13) {
  497.                System.gc();
  498.             }
  499.          }
  500.       }
  501.  
  502.       if (var3 == null) {
  503.          for(int var19 = 0; var19 < 25; ++var19) {
  504.             ((Applet)this).showStatus(method_13("4\u0017\"W#]") + var1 + method_13("]\u0014,Df\u001b\u00156^\"\\"));
  505.  
  506.             try {
  507.                Thread.currentThread();
  508.                Thread.sleep(250L);
  509.             } catch (InterruptedException var11) {
  510.             }
  511.          }
  512.       } else {
  513.          while(var3.getWidth(this) < 0) {
  514.             this.notifyAll();
  515.             Thread.currentThread();
  516.             Thread.yield();
  517.  
  518.             try {
  519.                Thread.currentThread();
  520.                Thread.sleep(100L);
  521.             } catch (InterruptedException var10) {
  522.             }
  523.          }
  524.       }
  525.  
  526.       return var3;
  527.    }
  528.  
  529.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  530.       if (var1 == this.field_35) {
  531.          if (var2 == 16) {
  532.             this.field_34 = true;
  533.          }
  534.  
  535.          return true;
  536.       } else {
  537.          return true;
  538.       }
  539.    }
  540.  
  541.    public void init() {
  542.       ((Container)this).setLayout((LayoutManager)null);
  543.       ((Panel)this).addNotify();
  544.       this.field_51 = ((Applet)this).getParameter(method_13("\u000e\u000e\"D3\u000e\u00170W"));
  545.       this.field_52 = ((Component)this).getToolkit();
  546.       Object var1 = null;
  547.       String var37 = ((Applet)this).getParameter(method_13("\u001e\b&T/\t\t"));
  548.       if (var37 != null) {
  549.          if (!var37.startsWith(method_13("<\n3\\#\tZ!If;\u001b!Y)]9*E%\u001e\u0013c\u00181\n\rmQ(\u001b"))) {
  550.             this.method_0();
  551.          }
  552.       } else {
  553.          this.method_0();
  554.       }
  555.  
  556.       Object var2 = null;
  557.       Object var3 = null;
  558.  
  559.       try {
  560.          var38 = ((Applet)this).getDocumentBase().getProtocol();
  561.       } catch (SecurityException var34) {
  562.          var38 = method_13("\u001b\u0013/U");
  563.       }
  564.  
  565.       try {
  566.          var39 = ((Applet)this).getDocumentBase().getHost();
  567.       } catch (SecurityException var33) {
  568.          var39 = "";
  569.       }
  570.  
  571.       if (!var38.equalsIgnoreCase(method_13("\u001b\u0013/U")) && var39.length() != 0 && !var39.equalsIgnoreCase(method_13("\u0011\u0015 Q*\u0015\u00150D")) && !var39.equals(method_13("LHt\u001evSJm\u0001"))) {
  572.          if (var39.startsWith(method_13("\n\r4\u001e"))) {
  573.             var39 = var39.substring(4);
  574.          }
  575.  
  576.          Object var4 = null;
  577.          String var40 = ((Applet)this).getParameter(method_13("\u000f\u001f$S)\u0019\u001f"));
  578.          if (var40 != null && !var40.equals("NO") && var40.length() > 10) {
  579.             int var5 = 1;
  580.  
  581.             try {
  582.                for(int var6 = 0; var6 < var40.length(); ++var6) {
  583.                   if (var40.charAt(var6) == '+') {
  584.                      ++var5;
  585.                   }
  586.                }
  587.             } catch (StringIndexOutOfBoundsException var36) {
  588.             }
  589.  
  590.             int[] var43 = new int[var5];
  591.             if (var5 == 1) {
  592.                var43[0] = var40.length();
  593.             } else {
  594.                int var7 = 0;
  595.  
  596.                try {
  597.                   for(int var8 = 0; var8 < var40.length(); ++var8) {
  598.                      if (var40.charAt(var8) == '+') {
  599.                         var43[var7] = var8;
  600.                         ++var7;
  601.                      }
  602.                   }
  603.                } catch (StringIndexOutOfBoundsException var35) {
  604.                }
  605.  
  606.                var43[var7] = var40.length();
  607.             }
  608.  
  609.             String[] var45 = new String[var5];
  610.             int var47 = 0;
  611.  
  612.             for(int var9 = 0; var9 < var5; ++var9) {
  613.                try {
  614.                   var45[var9] = var40.substring(var47, var43[var9]);
  615.                } catch (StringIndexOutOfBoundsException var32) {
  616.                }
  617.  
  618.                var47 = var43[var9] + 1;
  619.             }
  620.  
  621.             for(int var10 = 0; var10 < var5; ++var10) {
  622.                int var11 = var45[var10].length() - 8;
  623.                byte[] var15 = new byte[var11];
  624.                byte[] var16 = new byte[8];
  625.                var45[var10].getBytes(0, var11, var15, 0);
  626.                var45[var10].getBytes(var11, var11 + 8, var16, 0);
  627.                int var13 = var11 % 7;
  628.                int var14 = var11 % 3;
  629.  
  630.                for(int var17 = 0; var17 < var11; ++var17) {
  631.                   byte var12 = var15[var17];
  632.                   if (var12 >= 48 && var12 <= 57) {
  633.                      var15[var17] = this.method_11(var12, var13, 48, 57);
  634.                   } else if (var12 >= 65 && var12 <= 90) {
  635.                      var15[var17] = this.method_11(var12, var13, 65, 90);
  636.                   } else if (var12 >= 97 && var12 <= 122) {
  637.                      var15[var17] = this.method_11(var12, var13, 97, 122);
  638.                   } else if (var12 == 45) {
  639.                      var15[var17] = 46;
  640.                   } else if (var12 == 46) {
  641.                      var15[var17] = 45;
  642.                   }
  643.  
  644.                   if ((var13 += var14) > 7) {
  645.                      var13 = 1;
  646.                   }
  647.                }
  648.  
  649.                int var18 = 0;
  650.                int var19 = 0;
  651.  
  652.                for(int var20 = 0; var20 < 4; ++var20) {
  653.                   var16[var20] = (byte)(var16[var20] - 52);
  654.                }
  655.  
  656.                for(int var21 = 4; var21 < 8; ++var21) {
  657.                   var16[var21] = (byte)(var16[var21] - 55);
  658.                }
  659.  
  660.                for(int var22 = 0; var22 < var11; var22 += 2) {
  661.                   var18 += var15[var22];
  662.                }
  663.  
  664.                for(int var23 = 1; var23 < var11; var23 += 2) {
  665.                   var19 += var15[var23];
  666.                }
  667.  
  668.                String var24 = String.valueOf(var18);
  669.  
  670.                String var25;
  671.                for(var25 = String.valueOf(var19); var24.length() < 4; var24 = "0" + var24) {
  672.                }
  673.  
  674.                while(var25.length() < 4) {
  675.                   var25 = "0" + var25;
  676.                }
  677.  
  678.                byte[] var26 = new byte[8];
  679.                var24.getBytes(0, 4, var26, 0);
  680.                var25.getBytes(0, 4, var26, 4);
  681.                String var27 = new String(var26, 0);
  682.                if (var27.equals(new String(var16, 0))) {
  683.                   String var28 = new String(var15, 0);
  684.                   Object var29 = null;
  685.                   String var52;
  686.                   if (var28.startsWith(method_13("\n\r4\u001e"))) {
  687.                      var52 = var28.substring(4);
  688.                   } else {
  689.                      var52 = var28;
  690.                   }
  691.  
  692.                   if (var39.equalsIgnoreCase(var52)) {
  693.                      this.field_49 = true;
  694.                   }
  695.                }
  696.             }
  697.          }
  698.       } else {
  699.          this.field_49 = true;
  700.       }
  701.  
  702.       String var41 = ((Applet)this).getParameter(method_13("\u000f\u001f$\\/\u0013\u0011"));
  703.       if (var41 != null && !var41.equalsIgnoreCase("NO")) {
  704.          try {
  705.             this.field_16 = new URL(((Applet)this).getDocumentBase(), var41);
  706.          } catch (MalformedURLException var31) {
  707.             this.field_16 = null;
  708.          }
  709.       }
  710.  
  711.       String var42 = ((Applet)this).getParameter(method_13("\u000f\u001f$^#\n\u001c1Q+\u0018"));
  712.       if (var42.equalsIgnoreCase(method_13("$?\u0010"))) {
  713.          this.field_30 = true;
  714.       }
  715.  
  716.       Container var44;
  717.       for(var44 = ((Component)this).getParent(); !(var44 instanceof Frame); var44 = ((Component)var44).getParent()) {
  718.       }
  719.  
  720.       this.field_0 = (Frame)var44;
  721.       this.field_0.setCursor(3);
  722.       String var46 = ((Applet)this).getParameter(method_13("\u0012\f&B/\u0010\u001d"));
  723.       if (var46 != null && !var46.equalsIgnoreCase("NO")) {
  724.          this.field_35 = this.method_4(var46);
  725.          if (this.field_35 != null) {
  726.             String var48 = ((Applet)this).getParameter(method_13("\u0012\f&B/\u0010\u001d\u001b"));
  727.             if (var48 == null) {
  728.                var48 = "0";
  729.             }
  730.  
  731.             this.field_36 = Integer.valueOf(var48);
  732.             String var50 = ((Applet)this).getParameter(method_13("\u0012\f&B/\u0010\u001d\u001a"));
  733.             if (var50 == null) {
  734.                var50 = "0";
  735.             }
  736.  
  737.             this.field_37 = Integer.valueOf(var50);
  738.          }
  739.       }
  740.  
  741.       this.field_26 = ((Applet)this).getParameter(method_13("0\u0013-c\u001f39"));
  742.       if (this.field_26 == null) {
  743.          this.field_26 = "10";
  744.       }
  745.  
  746.       this.field_18 = Integer.valueOf(this.field_26);
  747.       this.field_22 = ((Applet)this).getParameter(method_13("\u000f\u001f0"));
  748.       if (this.field_22 == null) {
  749.          this.field_22 = "1";
  750.       }
  751.  
  752.       this.field_23 = ((Applet)this).getParameter(method_13("\u0005\t7Q4\t"));
  753.       if (this.field_23 == null) {
  754.          this.field_23 = "0";
  755.       }
  756.  
  757.       this.field_24 = ((Applet)this).getParameter(method_13("\u0004\t7Q4\t"));
  758.       if (this.field_24 == null) {
  759.          this.field_24 = method_13("JJs\u0000");
  760.       }
  761.  
  762.       this.field_25 = ((Applet)this).getParameter(method_13("\u0005\u0017*^"));
  763.       if (this.field_25 == null) {
  764.          this.field_25 = "60";
  765.       }
  766.  
  767.       this.field_27 = ((Applet)this).getParameter(method_13("\u0005\u0017\"H"));
  768.       if (this.field_27 == null) {
  769.          this.field_27 = method_13("PKq\u0000");
  770.       }
  771.  
  772.       this.field_28 = ((Applet)this).getParameter(method_13("\u0004\u0017*^"));
  773.       if (this.field_28 == null) {
  774.          this.field_28 = "60";
  775.       }
  776.  
  777.       this.field_29 = ((Applet)this).getParameter(method_13("\u0004\u0017\"H"));
  778.       if (this.field_29 == null) {
  779.          this.field_29 = method_13("PKq\u0000");
  780.       }
  781.  
  782.       this.field_19 = ((Applet)this).getParameter(method_13("\u0013\u000f.@'\u0011"));
  783.       if (this.field_19 == null) {
  784.          this.field_19 = "1";
  785.       }
  786.  
  787.       this.field_20 = ((Applet)this).getParameter(method_13("\u0010\u001f.T#\u0011\u001b:"));
  788.       this.field_21 = ((Applet)this).getParameter(method_13("\r\b*_4\u0014\u000e:"));
  789.       this.field_17 = Integer.valueOf(this.field_20);
  790.       this.field_43 = Integer.valueOf(this.field_21);
  791.       if (this.field_17 < 0) {
  792.          this.field_17 = 0;
  793.       }
  794.  
  795.       if (this.field_43 > 10) {
  796.          this.field_43 = 10;
  797.       } else if (this.field_43 < 1) {
  798.          this.field_43 = 1;
  799.       }
  800.  
  801.       this.field_60 = (float)Double.valueOf(this.field_23) / 10000.0F;
  802.       this.field_66 = (float)Double.valueOf(this.field_24) / 10000.0F;
  803.       this.field_59 = (float)Double.valueOf(this.field_25) / 10000.0F;
  804.       this.field_57 = (float)Double.valueOf(this.field_27) / 10000.0F;
  805.       this.field_64 = (float)Double.valueOf(this.field_28) / 10000.0F;
  806.       this.field_62 = (float)Double.valueOf(this.field_29) / 10000.0F;
  807.       this.field_31 = Integer.valueOf(this.field_19);
  808.       this.field_50 = Integer.valueOf(this.field_22);
  809.       if (this.field_50 > 8) {
  810.          this.field_50 = 8;
  811.       } else if (this.field_50 < 1) {
  812.          this.field_50 = 1;
  813.       }
  814.  
  815.       Dimension var49 = ((Component)this).size();
  816.       this.field_54 = var49.width / this.field_50;
  817.       this.field_12 = var49.height / this.field_50;
  818.       this.field_47 = this.field_54 * this.field_50;
  819.       this.field_46 = this.field_12 * this.field_50;
  820.       if (this.field_31 > 27) {
  821.          this.field_31 = 27;
  822.       } else if (this.field_31 < 1) {
  823.          this.field_31 = 1;
  824.       }
  825.  
  826.       this.field_48 = new byte[128];
  827.       this.field_11 = new byte[128];
  828.       this.field_3 = new byte[128];
  829.       this.field_38 = new byte[128];
  830.       this.field_39 = new byte[128];
  831.       this.field_40 = new byte[128];
  832.       this.method_3();
  833.       this.field_10 = new int[this.field_54 * this.field_12];
  834.       this.field_41 = new int[128];
  835.  
  836.       for(this.field_13 = 0; this.field_13 < 128; ++this.field_13) {
  837.          this.field_41[this.field_13] = -16777216 | (this.field_48[this.field_13] & 255) << 16 | (this.field_11[this.field_13] & 255) << 8 | this.field_3[this.field_13] & 255;
  838.       }
  839.  
  840.       this.field_61 = new float[this.field_54];
  841.  
  842.       try {
  843.          this.method_6();
  844.       } catch (NoSuchMethodError var30) {
  845.          this.method_6();
  846.       }
  847.  
  848.       this.field_33 = ((Component)this).createImage(this.field_47, this.field_46);
  849.       this.field_32 = this.field_33.getGraphics();
  850.       if (!this.field_49) {
  851.          Label var51 = new Label(method_13("0\u001b-T#\u0011Z\"@6\u0011\u001f7\u0010$\u0004Z\u0005Q$\u0014\u0015cs/\b\u0019 YfLCz\u0006iDBm"));
  852.          this.field_55 = new Lware(((Applet)this).getAppletContext(), var51);
  853.          this.field_55.setTitle(method_13("0\u001b-T#\u0011Z\u0002@6\u0011\u001f7\u0010$\u0004Z\u0005Q$\u0014\u0015cs/\b\u0019 Y"));
  854.          this.field_55.hide();
  855.       }
  856.  
  857.    }
  858.  
  859.    // $FF: renamed from: e () void
  860.    void method_6() {
  861.       this.field_45 = new MemoryImageSource(this.field_54, this.field_12, new DirectColorModel(24, 16711680, 65280, 255), this.field_10, 0, this.field_54);
  862.  
  863.       String var1;
  864.       try {
  865.          var1 = System.getProperty(method_13("\u0017\u001b5Qh\u000b\u001f1C/\u0012\u0014"));
  866.       } catch (SecurityException var3) {
  867.          var1 = method_13("\b\u0014(");
  868.       }
  869.  
  870.       if (!var1.startsWith(method_13("LTs"))) {
  871.          try {
  872.             this.field_45.setAnimated(true);
  873.             this.field_45.setFullBufferUpdates(true);
  874.             this.field_14 = ((Component)this).createImage(this.field_45);
  875.             this.field_45.newPixels();
  876.             this.field_15 = true;
  877.          } catch (NoSuchMethodError var2) {
  878.             this.field_15 = false;
  879.          }
  880.       }
  881.  
  882.       if (!this.field_15) {
  883.          this.field_45 = null;
  884.          this.field_44 = new anfy(this.field_54, this.field_12, new DirectColorModel(24, 16711680, 65280, 255), this.field_10, 0, this.field_54);
  885.          this.field_14 = ((Component)this).createImage(this.field_44);
  886.       }
  887.  
  888.    }
  889.  
  890.    public final boolean mouseDown(Event var1, int var2, int var3) {
  891.       if (!this.field_49) {
  892.          this.field_55.show();
  893.          this.field_55.toFront();
  894.          this.field_55.requestFocus();
  895.       } else if (this.field_16 != null) {
  896.          if (this.field_30) {
  897.             ((Applet)this).getAppletContext().showDocument(this.field_16, method_13("\"\u0018/Q(\u0016"));
  898.          } else {
  899.             ((Applet)this).getAppletContext().showDocument(this.field_16);
  900.          }
  901.       }
  902.  
  903.       return true;
  904.    }
  905.  
  906.    public final boolean mouseEnter(Event var1, int var2, int var3) {
  907.       ((Applet)this).showStatus(this.field_51);
  908.       return true;
  909.    }
  910.  
  911.    public final boolean mouseExit(Event var1, int var2, int var3) {
  912.       ((Applet)this).showStatus("");
  913.       return true;
  914.    }
  915.  
  916.    public final void paint(Graphics var1) {
  917.       if (this.field_42) {
  918.          var1.drawString(method_13("*\u001b*DhST"), this.field_54 * this.field_50 / 2 - 20, this.field_12 * this.field_50 / 2);
  919.       } else {
  920.          if (this.field_14 != null) {
  921.             if (this.field_50 == 1) {
  922.                this.field_32.drawImage(this.field_14, 0, 0, this);
  923.             } else {
  924.                this.method_9();
  925.                this.field_32.drawImage(this.field_14, 0, 0, this.field_47, this.field_46, this);
  926.             }
  927.  
  928.             if (this.field_35 != null) {
  929.                this.method_8();
  930.             }
  931.  
  932.             var1.drawImage(this.field_33, 0, 0, this);
  933.          }
  934.  
  935.       }
  936.    }
  937.  
  938.    // $FF: renamed from: a (byte[], byte[], byte[]) void
  939.    public final void method_7(byte[] var1, byte[] var2, byte[] var3) {
  940.       int var4 = 0;
  941.  
  942.       for(int var5 = 0; var5 < 128; ++var5) {
  943.          this.field_48[var4] = var1[var4];
  944.          this.field_11[var4] = var2[var4];
  945.          this.field_3[var4] = var3[var4];
  946.          ++var4;
  947.       }
  948.  
  949.    }
  950.  
  951.    // $FF: renamed from: f () void
  952.    public synchronized void method_8() {
  953.       if (this.field_1) {
  954.          this.notifyAll();
  955.  
  956.          while(!this.field_34) {
  957.             Thread.yield();
  958.  
  959.             try {
  960.                Thread.sleep(8L);
  961.             } catch (InterruptedException var1) {
  962.             }
  963.          }
  964.  
  965.          this.field_34 = false;
  966.       }
  967.  
  968.       this.field_32.drawImage(this.field_35, this.field_36, this.field_37, this);
  969.    }
  970.  
  971.    // $FF: renamed from: g () void
  972.    public synchronized void method_9() {
  973.       int var1 = 0;
  974.       ((Component)this).prepareImage(this.field_14, this.field_47, this.field_46, this);
  975.       this.notifyAll();
  976.  
  977.       while((var1 & 240) == 0) {
  978.          Thread.yield();
  979.          var1 = ((Component)this).checkImage(this.field_14, this.field_47, this.field_46, this);
  980.       }
  981.  
  982.    }
  983.  
  984.    // $FF: renamed from: h () void
  985.    public final void method_10() {
  986.       try {
  987.          if (this.field_15) {
  988.             this.field_45.newPixels();
  989.          } else {
  990.             this.field_44.startProduction(this.field_44.getConsumer());
  991.          }
  992.       } catch (NoSuchMethodError var1) {
  993.       }
  994.    }
  995.  
  996.    public void run() {
  997.       this.field_53.setPriority(this.field_43);
  998.       ((Applet)this).showStatus("");
  999.       System.gc();
  1000.       this.field_9 = System.currentTimeMillis();
  1001.       Graphics var1 = ((Component)this).getGraphics();
  1002.       if (this.field_35 != null && !this.field_1) {
  1003.          this.field_1 = this.method_1();
  1004.       }
  1005.  
  1006.       if (this.field_16 != null) {
  1007.          this.field_0.setCursor(12);
  1008.       } else {
  1009.          this.field_0.setCursor(0);
  1010.       }
  1011.  
  1012.       while(this.field_53 != null) {
  1013.          this.method_2();
  1014.          this.field_42 = false;
  1015.          if (++this.field_4 == this.field_17) {
  1016.             System.gc();
  1017.             this.field_4 = 0;
  1018.          }
  1019.  
  1020.          try {
  1021.             this.method_10();
  1022.          } catch (NoSuchMethodError var2) {
  1023.          }
  1024.  
  1025.          if (this.field_50 == 1) {
  1026.             this.field_32.drawImage(this.field_14, 0, 0, this);
  1027.          } else {
  1028.             this.method_9();
  1029.             this.field_32.drawImage(this.field_14, 0, 0, this.field_47, this.field_46, this);
  1030.          }
  1031.  
  1032.          if (this.field_35 != null) {
  1033.             this.method_8();
  1034.          }
  1035.  
  1036.          var1.drawImage(this.field_33, 0, 0, this);
  1037.          this.method_12();
  1038.       }
  1039.  
  1040.    }
  1041.  
  1042.    // $FF: renamed from: a (int, int, int, int) byte
  1043.    byte method_11(int var1, int var2, int var3, int var4) {
  1044.       int var5 = var1 - var2;
  1045.       if (var5 >= var3) {
  1046.          return (byte)var5;
  1047.       } else {
  1048.          int var6 = var3 - var5 - 1;
  1049.          return (byte)(var4 - var6);
  1050.       }
  1051.    }
  1052.  
  1053.    public void start() {
  1054.       if (this.field_53 == null) {
  1055.          this.field_53 = new Thread(this);
  1056.          this.field_53.start();
  1057.       }
  1058.  
  1059.    }
  1060.  
  1061.    public void stop() {
  1062.       if (this.field_53 != null && this.field_53.isAlive()) {
  1063.          this.field_53.stop();
  1064.       }
  1065.  
  1066.       this.field_53 = null;
  1067.    }
  1068.  
  1069.    public final void update(Graphics var1) {
  1070.       this.paint(var1);
  1071.    }
  1072.  
  1073.    // $FF: renamed from: i () void
  1074.    public synchronized void method_12() {
  1075.       Thread.yield();
  1076.       this.field_52.sync();
  1077.       long var1 = 10L - (System.currentTimeMillis() - this.field_9);
  1078.       if (var1 > 0L) {
  1079.          try {
  1080.             Thread.sleep(var1);
  1081.          } catch (InterruptedException var5) {
  1082.          }
  1083.       } else {
  1084.          try {
  1085.             Thread.sleep(1L);
  1086.          } catch (InterruptedException var4) {
  1087.          }
  1088.       }
  1089.  
  1090.       this.field_9 = System.currentTimeMillis();
  1091.  
  1092.       try {
  1093.          Thread.sleep((long)this.field_18);
  1094.       } catch (InterruptedException var3) {
  1095.       }
  1096.    }
  1097.  
  1098.    // $FF: renamed from: c (java.lang.String) java.lang.String
  1099.    private static String method_13(String var0) {
  1100.       char[] var1 = var0.toCharArray();
  1101.       int var2 = var1.length;
  1102.       int var3 = 0;
  1103.  
  1104.       label32:
  1105.       while(true) {
  1106.          int var4 = 0;
  1107.          byte var10000 = 125;
  1108.          char[] var10001 = var1;
  1109.          int var10002 = var3;
  1110.  
  1111.          label30:
  1112.          while(true) {
  1113.             var10001[var10002] ^= var10000;
  1114.  
  1115.             while(true) {
  1116.                ++var3;
  1117.                ++var4;
  1118.                if (var2 == var3) {
  1119.                   return new String(var1);
  1120.                }
  1121.  
  1122.                switch (var4) {
  1123.                   case 1:
  1124.                      var10000 = 122;
  1125.                      var10001 = var1;
  1126.                      var10002 = var3;
  1127.                      continue label30;
  1128.                   case 2:
  1129.                      var10000 = 67;
  1130.                      var10001 = var1;
  1131.                      var10002 = var3;
  1132.                      continue label30;
  1133.                   case 3:
  1134.                      var10000 = 48;
  1135.                      var10001 = var1;
  1136.                      var10002 = var3;
  1137.                      continue label30;
  1138.                   case 4:
  1139.                      var10000 = 70;
  1140.                      var10001 = var1;
  1141.                      var10002 = var3;
  1142.                      continue label30;
  1143.                   case 5:
  1144.                      continue label32;
  1145.                }
  1146.             }
  1147.          }
  1148.       }
  1149.    }
  1150. }
  1151.