/* AcuteScroller - Decompiled by JODE * Visit http://jode.sourceforge.net/ */ import java.applet.Applet; import java.awt.Color; import java.awt.Cursor; import java.awt.Event; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Point; import java.awt.Rectangle; import java.io.DataInputStream; import java.net.URL; import java.net.URLConnection; import java.util.Enumeration; import java.util.Hashtable; import java.util.StringTokenizer; import java.util.Vector; public final class AcuteScroller extends Applet implements Runnable { private String null = "AcuteScroller v2.02"; private Image z; private Image b; private Thread u = null; int w = 0; int Y = 0; boolean K = false; boolean goto = false; boolean f = false; boolean long = false; String P; String void; long O; String D; String A; long new; long for; boolean T; int do = -1; String i = ""; String c = ""; String l; private static final int v = 0; private static final int W = 1; private static final int M = 2; private static final int X = 3; private static final int s = 4; private static final int L = 5; private static final String[] p = { "integer", "boolean", "string", "color", "url", "image" }; private Hashtable U = new Hashtable(); private Hashtable e = new Hashtable(); private Hashtable h = new Hashtable(); private Hashtable n = new Hashtable(); private String q = null; String[][] N = { { "#amp;", "&" }, { "#lt;", "<" }, { "#gt;", ">" }, { "#apos;", "'" }, { "#quot;", "\"" }, { "#nbsp;", " " }, { "&", "&" }, { "<", "<" }, { ">", ">" }, { "'", "'" }, { """, "\"" }, { " ", " " } }; String[][] k = { { "" }, { "" }, { "" }, { "" } }; MediaTracker S; Vector o; Vector V; Vector r; Vector g; Vector a; Vector if; Vector E; Vector j; Vector G; Vector d; Vector m; int else; int C; int case; int int; int B; int t; int J; FontMetrics R; Hashtable F; int Q; Vector char; Vector I; Vector H; Vector byte; Hashtable try = null; private final void do() { URL url = this.getDocumentBase(); if (!url.getProtocol().equalsIgnoreCase("file")) { String string = url.getHost().toLowerCase(); int i = string.lastIndexOf("."); if (i != -1) { i = string.lastIndexOf(".", i - 1); if (i != -1) string = string.substring(i + 1); } if (!string.equals("")) { char[] cs = string.toCharArray(); int i_0_ = 15145; for (int i_1_ = 0; i_1_ < cs.length; i_1_++) i_0_ ^= cs[i_1_] << i_1_ % 8; String string_2_ = this.getParameter("Domain-Keys"); if (string_2_ == null) string_2_ = ""; StringTokenizer stringtokenizer = new StringTokenizer(string_2_, ","); while (stringtokenizer.hasMoreTokens()) { if (i_0_ == Integer.parseInt(stringtokenizer.nextToken ().trim())) return; } ((AcuteScroller) this).long = true; paint(this.getGraphics()); try { Thread.sleep(7000L); } catch (InterruptedException interruptedexception) { /* empty */ } ((AcuteScroller) this).long = false; } } } private final void a(int i, int i_3_, int i_4_) { if (((AcuteScroller) this).goto) { Rectangle rectangle = (Rectangle) ((AcuteScroller) this).byte.elementAt(0); i_3_ += rectangle.x; i_4_ += rectangle.y; String string = (String) a(i, "vertical-align"); int i_5_ = ((Integer) ((AcuteScroller) this).H.elementAt(i)).intValue(); if (string.equalsIgnoreCase("center")) i_4_ += (rectangle.height - i_5_) / 2; else if (string.equalsIgnoreCase("bottom")) i_4_ += rectangle.height - i_5_; int i_6_ = ((Integer) ((AcuteScroller) this).char.elementAt(i)) .intValue(); int i_7_ = ((Integer) ((AcuteScroller) this).I.elementAt(i)).intValue(); for (int i_8_ = i_6_; i_8_ <= i_7_; i_8_++) { Rectangle rectangle_9_ = (Rectangle) ((AcuteScroller) this).r.elementAt(i_8_); if (rectangle_9_.inside(((AcuteScroller) this).w - i_3_, ((AcuteScroller) this).Y - i_4_)) { Hashtable hashtable = (Hashtable) ((AcuteScroller) this).a.elementAt(i_8_); ((AcuteScroller) this).try = hashtable; if (((AcuteScroller) this).try != null) break; } } } } private final void a(int i, int i_10_, int i_11_, Graphics graphics) { Rectangle rectangle = (Rectangle) ((AcuteScroller) this).byte.elementAt(0); graphics.clipRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height); i_10_ += rectangle.x; i_11_ += rectangle.y; String string = (String) a(i, "vertical-align"); int i_12_ = ((Integer) ((AcuteScroller) this).H.elementAt(i)).intValue(); if (string.equalsIgnoreCase("center")) i_11_ += (rectangle.height - i_12_) / 2; else if (string.equalsIgnoreCase("bottom")) i_11_ += rectangle.height - i_12_; int i_13_ = ((Integer) ((AcuteScroller) this).char.elementAt(i)).intValue(); int i_14_ = ((Integer) ((AcuteScroller) this).I.elementAt(i)).intValue(); boolean bool = false; for (int i_15_ = i_13_; i_15_ <= i_14_; i_15_++) { Object object = ((AcuteScroller) this).V.elementAt(i_15_); String string_16_ = (String) ((AcuteScroller) this).g.elementAt(i_15_); if (string_16_.equals("font")) graphics.setFont((Font) object); else if (string_16_.equals("proptable")) { Hashtable hashtable = (Hashtable) object; Object object_17_ = null; graphics.setColor((Color) a(hashtable, "text-color")); bool = ((Boolean) a(hashtable, "text-underline")) .booleanValue(); } else { Rectangle rectangle_18_ = (Rectangle) ((AcuteScroller) this).r.elementAt(i_15_); int i_19_ = rectangle_18_.x + i_10_; int i_20_ = rectangle_18_.y + i_11_; int i_21_ = rectangle_18_.height; int i_22_ = rectangle_18_.width; rectangle_18_ = new Rectangle(i_19_, i_20_, i_22_, i_21_); if (rectangle_18_.intersects(rectangle)) { if (string_16_.equals("text")) { String string_23_ = (String) object; int i_24_ = graphics.getFontMetrics().getAscent(); graphics.drawString(string_23_, i_19_, i_20_ + i_24_); if (bool) graphics.drawLine(i_19_, i_20_ + 1 + i_24_, i_19_ + i_22_, i_20_ + 1 + i_24_); } else if (string_16_.equals("bullet-text")) { String string_25_ = (String) a((Hashtable) object, "bullet-text"); int i_26_ = graphics.getFontMetrics().getAscent(); graphics.drawString(string_25_, i_19_, i_20_ + i_26_); } else if (string_16_.equals("rule")) { Color color = graphics.getColor(); Color color_27_ = (Color) a((Hashtable) object, "rule-color"); graphics.setColor(color_27_); graphics.fillRect(i_19_, i_20_, i_22_, i_21_); graphics.setColor(color); } else if (string_16_.equals("image")) { Image image = (Image) a((Hashtable) object, "image"); graphics.drawImage(image, i_19_, i_20_, this); this.getToolkit().sync(); } else if (string_16_.equals("bullet-image")) { Image image = (Image) a((Hashtable) object, "bullet-image"); graphics.drawImage(image, i_19_, i_20_, this); this.getToolkit().sync(); } } } } } private final void if(int i, Graphics graphics) { graphics.clipRect(0, 0, this.size().width, this.size().height); graphics.setColor((Color) a(i, "background-color")); graphics.fillRect(0, 0, this.size().width, this.size().height); Image image = (Image) a(i, "background-image"); if (image != null) { boolean bool = ((Boolean) a(i, "background-image-repeat")).booleanValue(); int i_28_ = ((Integer) a(i, "background-image-x")).intValue(); int i_29_ = ((Integer) a(i, "background-image-y")).intValue(); if (bool) { int i_30_ = i_28_; int i_31_ = i_29_; for (/**/; i_30_ < this.size().width; i_30_ += image.getWidth(this)) { for (/**/; i_31_ < this.size().height; i_31_ += image.getHeight(this)) { graphics.drawImage(image, i_30_, i_31_, this); this.getToolkit().sync(); } i_31_ = 0; } } else { graphics.drawImage(image, i_28_, i_29_, this); this.getToolkit().sync(); } } } private final void a(int i, Graphics graphics) { int i_32_ = this.size().width; int i_33_ = this.size().height; graphics.clipRect(0, 0, i_32_, i_33_); Image image = (Image) a(i, "foreground-image"); if (image != null) { int i_34_ = ((Integer) a(i, "foreground-image-x")).intValue(); int i_35_ = ((Integer) a(i, "foreground-image-y")).intValue(); graphics.drawImage(image, i_34_, i_35_, this); this.getToolkit().sync(); } graphics.setColor((Color) a(i, "border-color")); String string = (String) a(i, "border-type"); int i_36_ = ((Integer) a(i, "border-width")).intValue(); if (string.equalsIgnoreCase("full") || string.equalsIgnoreCase("vertical")) { for (int i_37_ = 0; i_37_ < i_36_; i_37_++) { graphics.drawLine(i_37_, 0, i_37_, i_33_ - 1); graphics.drawLine(i_32_ - i_37_ - 1, 0, i_32_ - i_37_ - 1, i_33_ - 1); } } if (string.equalsIgnoreCase("full") || string.equalsIgnoreCase("horizontal")) { for (int i_38_ = 0; i_38_ < i_36_; i_38_++) { graphics.drawLine(0, i_38_, i_32_ - 1, i_38_); graphics.drawLine(0, i_33_ - i_38_ - 1, i_32_ - 1, i_33_ - i_38_ - 1); } } } private final synchronized String[] a() { boolean bool = false; long l = System.currentTimeMillis(); if (((AcuteScroller) this).T && ((AcuteScroller) this).for <= l) { ((AcuteScroller) this).for = 9223372036854775807L; bool = true; } if (((AcuteScroller) this).O <= l) { ((AcuteScroller) this).O = 9223372036854775807L; bool = true; } if (bool) { ((AcuteScroller) this).T = false; String[] strings = { ((AcuteScroller) this).P, ((AcuteScroller) this).void }; return strings; } return null; } private final synchronized String[] try() { long l = System.currentTimeMillis(); if (((AcuteScroller) this).new <= l) { ((AcuteScroller) this).new = 9223372036854775807L; if (((AcuteScroller) this).T && ((AcuteScroller) this).i .equalsIgnoreCase(((AcuteScroller) this).D) && ((AcuteScroller) this).c .equalsIgnoreCase(((AcuteScroller) this).A)) return null; ((AcuteScroller) this).T = true; ((AcuteScroller) this).i = ((AcuteScroller) this).D; ((AcuteScroller) this).c = ((AcuteScroller) this).A; String[] strings = { ((AcuteScroller) this).D, ((AcuteScroller) this).A }; return strings; } return null; } public final synchronized void goToNextSection() { ((AcuteScroller) this).do = -2; } public final synchronized void goToPreviousSection() { ((AcuteScroller) this).do = -3; } public final synchronized void goToSection(String string) { if (string != null) { for (int i = 0; i < ((AcuteScroller) this).Q; i++) { String string_39_ = (String) a(i, "section-name"); if (string_39_ != null && string_39_.equalsIgnoreCase(string)) ((AcuteScroller) this).do = i; } } } public boolean handleEvent(Event event) { switch (event.id) { case 504: ((AcuteScroller) this).goto = true; break; case 505: ((AcuteScroller) this).goto = false; break; case 501: ((AcuteScroller) this).K = true; break; case 502: ((AcuteScroller) this).K = false; if (((AcuteScroller) this).try != null) { URL url = (URL) a(((AcuteScroller) this).try, "url"); String string = (String) a(((AcuteScroller) this).try, "url-frame"); String string_40_ = (String) a(((AcuteScroller) this).try, "load-main-message"); String string_41_ = (String) a(((AcuteScroller) this).try, "load-main-style"); String string_42_ = (String) a(((AcuteScroller) this).try, "load-temp-message"); String string_43_ = (String) a(((AcuteScroller) this).try, "load-temp-style"); String string_44_ = (String) a(((AcuteScroller) this).try, "link-section-name"); if (url != null) this.getAppletContext().showDocument(url, string); else if (string_40_ != null || string_41_ != null) { if (string_40_ != null) string_40_ = "file:" + string_40_; if (string_41_ != null) string_41_ = "file:" + string_41_; loadMain(string_40_, string_41_); } else if (string_42_ != null || string_43_ != null) { if (string_42_ != null) string_42_ = "file:" + string_42_; if (string_43_ != null) string_43_ = "file:" + string_43_; loadTemp(string_42_, string_43_, 0); } else if (string_44_ != null) goToSection(string_44_); else if (((Boolean) a(((AcuteScroller) this).try, "link-next-section")) .booleanValue()) goToNextSection(); else if (((Boolean) a(((AcuteScroller) this).try, "link-previous-section")) .booleanValue()) goToPreviousSection(); } break; case 503: case 506: ((AcuteScroller) this).w = event.x; ((AcuteScroller) this).Y = event.y; break; case 401: case 403: if (event.key == 1008) loadTemp((null + "
Domain: " + this.getDocumentBase().getHost().toLowerCase() + "" + "
Keys: " + this.getParameter("Domain-Keys") + ""), "", 0); break; } return true; } private final boolean byte() { if ((((AcuteScroller) this).S.statusAll(true) & 0x1) != 0) return false; for (int i = 0; i < ((AcuteScroller) this).o.size(); i++) { if ((((AcuteScroller) this).S.statusID(i, false) & 0x4) != 0) { ((AcuteScroller) this).l += "Error 11: Unable to load image:
"; ((AcuteScroller) this).l += "'" + int(((URL) ((AcuteScroller) this).o.elementAt(i)) .toString()) + "'
"; } } return true; } private final void a(Vector vector) { ((AcuteScroller) this).S = new MediaTracker(this); ((AcuteScroller) this).o = new Vector(); for (int i = 0; i < vector.size(); i++) { Object object = vector.elementAt(i); Class var_class = object.getClass(); if (var_class.getName().equals("java.util.Hashtable")) { Hashtable hashtable = (Hashtable) object; Enumeration enumeration = hashtable.keys(); while (enumeration.hasMoreElements()) { String string = (String) enumeration.nextElement(); String string_45_ = string; String string_46_ = ""; if (string.endsWith("-over")) { string_45_ = string.substring(0, string.length() - 5); string_46_ = "-over"; } if (string.endsWith("-click")) { string_45_ = string.substring(0, string.length() - 6); string_46_ = "-click"; } if (((Integer) U.get(string_45_)).intValue() == 5) { URL url = (URL) hashtable.get(string); Image image = this.getImage(url); hashtable.put(string, image); boolean bool = false; for (int i_47_ = 0; i_47_ < ((AcuteScroller) this).o.size(); i_47_++) { if (((AcuteScroller) this).o.elementAt(i_47_) .equals(url)) { bool = true; break; } } if (!bool) { ((AcuteScroller) this).S.addImage(image, ((AcuteScroller) this) .o.size()); ((AcuteScroller) this).o.addElement(url); } } } } } } private final synchronized void for() { ((AcuteScroller) this).P = ""; ((AcuteScroller) this).void = ""; ((AcuteScroller) this).O = 9223372036854775807L; ((AcuteScroller) this).D = ""; ((AcuteScroller) this).A = ""; ((AcuteScroller) this).new = 9223372036854775807L; ((AcuteScroller) this).for = 9223372036854775807L; ((AcuteScroller) this).T = false; } private final void if(Vector vector) { ((AcuteScroller) this).else = 0; ((AcuteScroller) this).C = 0; ((AcuteScroller) this).case = 0; ((AcuteScroller) this).int = 0; ((AcuteScroller) this).B = 0; ((AcuteScroller) this).t = 0; ((AcuteScroller) this).J = 0; ((AcuteScroller) this).R = this.getGraphics().getFontMetrics(); ((AcuteScroller) this).F = null; ((AcuteScroller) this).if = new Vector(); ((AcuteScroller) this).E = new Vector(); ((AcuteScroller) this).j = new Vector(); ((AcuteScroller) this).G = new Vector(); ((AcuteScroller) this).d = new Vector(); ((AcuteScroller) this).m = new Vector(); Enumeration enumeration = vector.elements(); while (enumeration.hasMoreElements()) { Object object = enumeration.nextElement(); Class var_class = object.getClass(); if (var_class.getName().equals("java.lang.String")) { String string = (String) object; if (!string.equals(" ") || ((AcuteScroller) this).else != 0) { while ((((AcuteScroller) this).case + ((AcuteScroller) this).B + ((AcuteScroller) this).R.stringWidth(string) + ((AcuteScroller) this).int) > ((AcuteScroller) this).J) { int i = (((AcuteScroller) this).J - ((AcuteScroller) this).case - ((AcuteScroller) this).B - ((AcuteScroller) this).else - ((AcuteScroller) this).int); int i_48_; for (i_48_ = 1; (((AcuteScroller) this).R .stringWidth(string.substring(0, i_48_)) < i); i_48_++) { /* empty */ } i_48_--; String string_49_ = string.substring(0, i_48_); string = string.substring(i_48_); int i_50_ = ((AcuteScroller) this).R.stringWidth(string_49_); a(string_49_, i_50_, ((AcuteScroller) this).R.getHeight(), "text"); new(); } int i = ((AcuteScroller) this).R.stringWidth(string); if (!string.equals(" ") && ((((AcuteScroller) this).case + ((AcuteScroller) this).B + ((AcuteScroller) this).else + i + ((AcuteScroller) this).int) > ((AcuteScroller) this).J)) new(); a(string, i, ((AcuteScroller) this).R.getHeight(), "text"); ((AcuteScroller) this).else += i; } } else { Hashtable hashtable = (Hashtable) object; if (((Boolean) a(hashtable, "section-header")) .booleanValue()) { new(); ((AcuteScroller) this).C = 0; ((AcuteScroller) this).case = 0; ((AcuteScroller) this).int = 0; ((AcuteScroller) this).B = 0; ((AcuteScroller) this).t = 0; int i = ((Integer) a(hashtable, "margin-left")).intValue(); int i_51_ = ((Integer) a(hashtable, "margin-right")).intValue(); int i_52_ = ((Integer) a(hashtable, "margin-top")).intValue(); int i_53_ = ((Integer) a(hashtable, "margin-bottom")).intValue(); int i_54_ = ((Integer) a(hashtable, "border-width")).intValue(); String string = (String) a(hashtable, "border-type"); if (string.equalsIgnoreCase("full")) { i += i_54_; i_51_ += i_54_; i_52_ += i_54_; i_53_ += i_54_; } if (string.equalsIgnoreCase("vertical")) { i += i_54_; i_51_ += i_54_; } if (string.equalsIgnoreCase("horizontal")) { i_52_ += i_54_; i_53_ += i_54_; } hashtable.put("margin-left", new Integer(i)); hashtable.put("margin-right", new Integer(i_51_)); hashtable.put("margin-top", new Integer(i_52_)); hashtable.put("margin-bottom", new Integer(i_53_)); ((AcuteScroller) this).J = this.size().width - i - i_51_; } if (hashtable.containsKey("padding-top")) { new(); int i = ((Integer) a(hashtable, "padding-top")).intValue(); if (i > 0) { a(new Rectangle(), 0, i, "padding"); new(); } else ((AcuteScroller) this).C += i; } ((AcuteScroller) this).case = ((Integer) a(hashtable, "padding-left")).intValue(); ((AcuteScroller) this).int = ((Integer) a(hashtable, "padding-right")).intValue(); String string = (String) a(hashtable, "align"); int i = 0; if (string.equalsIgnoreCase("center")) i = 1; else if (string.equalsIgnoreCase("right")) i = 2; if (i != ((AcuteScroller) this).t) { ((AcuteScroller) this).t = i; new(); } if (hashtable.containsKey("url") || hashtable.containsKey("load-main-message") || hashtable.containsKey("load-main-style") || hashtable.containsKey("load-temp-message") || hashtable.containsKey("load-temp-style") || hashtable.containsKey("link-section-name") || hashtable.containsKey("link-next-section") || hashtable.containsKey("link-previous-section")) ((AcuteScroller) this).F = hashtable; else ((AcuteScroller) this).F = null; a(hashtable, 0, 0, "proptable"); String string_55_ = (String) a(hashtable, "text-font"); int i_56_ = 0; if (((Boolean) a(hashtable, "text-bold")).booleanValue()) i_56_++; if (((Boolean) a(hashtable, "text-italic")).booleanValue()) i_56_ += 2; int i_57_ = ((Integer) a(hashtable, "text-size")).intValue(); Font font = new Font(string_55_, i_56_, i_57_); a(font, 0, 0, "font"); ((AcuteScroller) this).R = this.getFontMetrics(font); if (hashtable.containsKey("rule-color")) { int i_58_ = ((Integer) a(hashtable, "rule-width")).intValue(); int i_59_ = ((Integer) a(hashtable, "rule-height")).intValue(); int i_60_ = ((AcuteScroller) this).t; String string_61_ = (String) a(hashtable, "rule-align"); if (string_61_.equalsIgnoreCase("center")) ((AcuteScroller) this).t = 1; else if (string_61_.equalsIgnoreCase("right")) ((AcuteScroller) this).t = 2; else ((AcuteScroller) this).t = 0; int i_62_ = ((((AcuteScroller) this).J - ((AcuteScroller) this).case - ((AcuteScroller) this).B - ((AcuteScroller) this).int) * i_58_ / 100); new(); a(hashtable, i_62_, i_59_, "rule"); ((AcuteScroller) this).else += i_62_; new(); ((AcuteScroller) this).t = i_60_; } if (hashtable.containsKey("bullet-indent")) { if (hashtable.containsKey("bullet-image")) { new(); ((AcuteScroller) this).B = 0; Image image = (Image) a(hashtable, "bullet-image"); a(hashtable, 0, image.getHeight(this), "bullet-image"); } if (hashtable.containsKey("bullet-text")) { new(); ((AcuteScroller) this).B = 0; String string_63_ = (String) a(hashtable, "bullet-text"); int i_64_ = 0; int i_65_ = ((AcuteScroller) this).R.getHeight(); a(hashtable, i_64_, i_65_, "bullet-text"); } ((AcuteScroller) this).B = ((Integer) a(hashtable, "bullet-indent")).intValue(); } else { if (((AcuteScroller) this).B != 0) new(); ((AcuteScroller) this).B = 0; } if (hashtable.containsKey("image")) { Image image = (Image) a(hashtable, "image"); int i_66_ = ((AcuteScroller) this).t; if (hashtable.containsKey("image-align")) { String string_67_ = (String) a(hashtable, "image-align"); if (string_67_.equalsIgnoreCase("center")) ((AcuteScroller) this).t = 1; else if (string_67_.equalsIgnoreCase("right")) ((AcuteScroller) this).t = 2; else ((AcuteScroller) this).t = 0; } new(); a(hashtable, image.getWidth(this), image.getHeight(this), "image"); ((AcuteScroller) this).else += image.getWidth(this); new(); ((AcuteScroller) this).t = i_66_; } if (((Boolean) a(hashtable, "line-break")).booleanValue()) new(); if (hashtable.containsKey("padding-bottom")) { new(); int i_68_ = ((Integer) a(hashtable, "padding-bottom")) .intValue(); if (i_68_ > 0) { a(new Rectangle(), 0, i_68_, "padding"); new(); } else ((AcuteScroller) this).C += i_68_; } if (hashtable.containsKey("line-feed")) { int i_69_ = ((Integer) a(hashtable, "line-feed")).intValue(); if (((AcuteScroller) this).else != 0) { new(); i_69_--; } i_69_ = Math.max(i_69_, 0); ((AcuteScroller) this).C += i_69_ * ((AcuteScroller) this).R.getHeight(); } } } new(); ((AcuteScroller) this).V = ((AcuteScroller) this).if; ((AcuteScroller) this).r = ((AcuteScroller) this).E; ((AcuteScroller) this).g = ((AcuteScroller) this).j; ((AcuteScroller) this).a = ((AcuteScroller) this).G; } private final void a(Object object, int i, int i_70_, String string) { Rectangle rectangle = new Rectangle((((AcuteScroller) this).else + ((AcuteScroller) this).case + ((AcuteScroller) this).B), -999, i, i_70_); ((AcuteScroller) this).if.addElement(object); ((AcuteScroller) this).E.addElement(rectangle); ((AcuteScroller) this).j.addElement(string); ((AcuteScroller) this).G.addElement(((AcuteScroller) this).F); if (string.equals("text") || string.equals("bullet-text")) ((AcuteScroller) this).d .addElement(new Integer(((AcuteScroller) this).R.getAscent())); else ((AcuteScroller) this).d.addElement(new Integer(i_70_)); ((AcuteScroller) this).m .addElement(new Integer(((AcuteScroller) this).t)); } private final void new() { int i = 0; int i_71_ = 0; int i_72_ = 0; int i_73_ = ((AcuteScroller) this).if.size() - 1; int i_74_ = 0; int i_75_ = i_73_; for (/**/; (i_73_ - i_74_ >= 0 && (((Rectangle) ((AcuteScroller) this).E.elementAt(i_73_ - i_74_)).y == -999)); i_74_++) { Object object = ((AcuteScroller) this).if.elementAt(i_73_ - i_74_); Class var_class = object.getClass(); if (var_class.getName().equals("java.lang.String") && !((String) object).equals("")) i_75_ = i_73_ - i_74_; } int i_76_ = i_73_ - i_74_ + 1; if (i_74_ != 0) { for (int i_77_ = i_73_; i_77_ >= i_76_; i_77_--) { Object object = ((AcuteScroller) this).if.elementAt(i_77_); Class var_class = object.getClass(); if (var_class.getName().equals("java.lang.String")) { if (((String) object).equals(" ")) { ((AcuteScroller) this).if.setElementAt("", i_77_); ((Rectangle) ((AcuteScroller) this).E.elementAt(i_77_)).width = 0; } break; } } for (int i_78_ = i_76_; i_78_ <= i_73_; i_78_++) { Rectangle rectangle = (Rectangle) ((AcuteScroller) this).E.elementAt(i_78_); i += rectangle.width; i_71_ = Math.max(i_71_, rectangle.height); i_72_ = Math.max(i_72_, ((Integer) ((AcuteScroller) this).d.elementAt(i_78_)) .intValue()); } for (int i_79_ = i_76_; i_79_ <= i_73_; i_79_++) { Rectangle rectangle = (Rectangle) ((AcuteScroller) this).E.elementAt(i_79_); rectangle.y = (((AcuteScroller) this).C + i_72_ - ((Integer) ((AcuteScroller) this).d.elementAt(i_79_)) .intValue()); rectangle.x += (((Integer) ((AcuteScroller) this).m.elementAt(i_75_)) .intValue() * ((((AcuteScroller) this).J - ((AcuteScroller) this).case - ((AcuteScroller) this).B - ((AcuteScroller) this).int - i) / 2)); } } ((AcuteScroller) this).else = 0; ((AcuteScroller) this).C += i_71_; } private final void int() { ((AcuteScroller) this).char = new Vector(); for (int i = 0; i < ((AcuteScroller) this).V.size(); i++) { Object object = ((AcuteScroller) this).V.elementAt(i); if (object.getClass().getName().equals("java.util.Hashtable") && ((AcuteScroller) this).g.elementAt(i).equals("proptable")) { Hashtable hashtable = (Hashtable) object; if (((Boolean) a(hashtable, "section-header")).booleanValue()) ((AcuteScroller) this).char.addElement(new Integer(i)); } } ((AcuteScroller) this).I = new Vector(); for (int i = 1; i < ((AcuteScroller) this).char.size(); i++) { int i_80_ = (((Integer) ((AcuteScroller) this).char.elementAt(i)) .intValue() - 1); ((AcuteScroller) this).I.addElement(new Integer(i_80_)); } ((AcuteScroller) this).I .addElement(new Integer(((AcuteScroller) this).V.size() - 1)); ((AcuteScroller) this).Q = ((AcuteScroller) this).char.size(); ((AcuteScroller) this).H = new Vector(); ((AcuteScroller) this).byte = new Vector(); for (int i = 0; i < ((AcuteScroller) this).Q; i++) { int i_81_ = ((Integer) ((AcuteScroller) this).char.elementAt(i)) .intValue(); int i_82_ = ((Integer) ((AcuteScroller) this).I.elementAt(i)).intValue(); int i_83_ = 0; for (int i_84_ = i_81_; i_84_ <= i_82_; i_84_++) { Rectangle rectangle = (Rectangle) ((AcuteScroller) this).r.elementAt(i_84_); i_83_ = Math.max(i_83_, rectangle.y + rectangle.height); } ((AcuteScroller) this).H.addElement(new Integer(i_83_)); Rectangle rectangle = new Rectangle(new Point(0, 0), this.size()); rectangle.x = ((Integer) a(i, "margin-left")).intValue(); rectangle.y = ((Integer) a(i, "margin-top")).intValue(); rectangle.width = (this.size().width - rectangle.x - ((Integer) a(i, "margin-right")).intValue()); rectangle.height = (this.size().height - rectangle.y - ((Integer) a(i, "margin-bottom")).intValue()); ((AcuteScroller) this).byte.addElement(rectangle); } } public final synchronized void loadMain(String string, String string_85_) { if (string == null) string = ""; if (string_85_ == null) string_85_ = ""; if (!string.equals("")) ((AcuteScroller) this).P = string; if (!string_85_.equals("")) ((AcuteScroller) this).void = string_85_; ((AcuteScroller) this).O = System.currentTimeMillis(); } public final synchronized void loadTemp(String string, String string_86_, int i) { if (string == null) string = ""; if (string_86_ == null) string_86_ = ""; if (!string.equals("")) { if (string_86_.equals("")) string_86_ = ((AcuteScroller) this).void; ((AcuteScroller) this).A = string_86_; ((AcuteScroller) this).D = string; ((AcuteScroller) this).new = System.currentTimeMillis() + (long) i; ((AcuteScroller) this).for = 9223372036854775807L; } } private static final void a(Hashtable hashtable, Hashtable hashtable_87_) { Enumeration enumeration = hashtable_87_.keys(); while (enumeration.hasMoreElements()) { String string = (String) enumeration.nextElement(); if (!hashtable.containsKey(string)) hashtable.put(string, hashtable_87_.get(string)); } } private final void a(String string, int i, Object object, Boolean var_boolean, Boolean var_boolean_88_) { U.put(string, new Integer(i)); e.put(string, var_boolean); n.put(string, var_boolean_88_); if (object != null) h.put(string, object); } private final String a(String string) { for (int i = 0; i < ((AcuteScroller) this).N.length; i++) { int i_89_ = -1; for (;;) { int i_90_ = string.indexOf(((AcuteScroller) this).N[i][0]); if (i_90_ <= i_89_) break; i_89_ = i_90_; string = (string.substring(0, i_89_) + ((AcuteScroller) this).N[i][1] + string.substring(i_89_ + ((AcuteScroller) this) .N[i][0].length())); } } return string; } private final String int(String string) { for (int i = 0; i < ((AcuteScroller) this).N.length; i++) { int i_91_ = -1; for (;;) { int i_92_ = string.indexOf(((AcuteScroller) this).N[i][1]); if (i_92_ <= i_91_) break; i_91_ = i_92_; string = (string.substring(0, i_91_) + ((AcuteScroller) this).N[i][0] + string.substring(i_91_ + ((AcuteScroller) this) .N[i][1].length())); } } return string; } private final Object a(int i, String string) { int i_93_ = ((Integer) ((AcuteScroller) this).char.elementAt(i)).intValue(); Hashtable hashtable = (Hashtable) ((AcuteScroller) this).V.elementAt(i_93_); return a(hashtable, string); } private final Object a(Object object, String string) { Hashtable hashtable = (Hashtable) object; String string_94_ = ""; if (((AcuteScroller) this).try != null && (((AcuteScroller) this).try == hashtable || hashtable.containsKey("section-header"))) { if (((AcuteScroller) this).K) string_94_ = "-click"; else string_94_ = "-over"; if (string_94_.equals("-click") && !hashtable.containsKey(string + string_94_)) string_94_ = "-over"; if (string_94_.equals("-over") && !hashtable.containsKey(string + string_94_)) string_94_ = ""; } String string_95_ = string + string_94_; Object object_96_ = hashtable.get(string_95_); if (object_96_ != null) return object_96_; if (h.containsKey(string_95_)) return h.get(string_95_); return null; } private final void if() { a("image", 5, null, Boolean.FALSE, Boolean.TRUE); a("image-align", 2, new Integer(0), Boolean.FALSE, Boolean.FALSE); a("rule-color", 3, null, Boolean.FALSE, Boolean.TRUE); a("rule-width", 0, new Integer(100), Boolean.FALSE, Boolean.FALSE); a("rule-height", 0, new Integer(1), Boolean.FALSE, Boolean.FALSE); a("rule-align", 2, "center", Boolean.FALSE, Boolean.FALSE); a("text-font", 2, "Helvetica", Boolean.TRUE, Boolean.FALSE); a("text-size", 0, new Integer(12), Boolean.TRUE, Boolean.FALSE); a("text-bold", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE); a("text-italic", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE); a("text-underline", 1, Boolean.FALSE, Boolean.TRUE, Boolean.TRUE); a("text-color", 3, Color.black, Boolean.TRUE, Boolean.TRUE); a("bullet-indent", 0, new Integer(13), Boolean.TRUE, Boolean.FALSE); a("bullet-text", 2, null, Boolean.FALSE, Boolean.TRUE); a("bullet-image", 5, null, Boolean.FALSE, Boolean.TRUE); a("line-break", 1, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE); a("line-feed", 0, null, Boolean.FALSE, Boolean.FALSE); a("padding-left", 0, new Integer(10), Boolean.TRUE, Boolean.FALSE); a("padding-right", 0, new Integer(10), Boolean.TRUE, Boolean.FALSE); a("align", 2, "left", Boolean.TRUE, Boolean.FALSE); a("vertical-align", 2, "top", Boolean.FALSE, Boolean.FALSE); a("padding-top", 0, new Integer(0), Boolean.FALSE, Boolean.FALSE); a("padding-bottom", 0, new Integer(0), Boolean.FALSE, Boolean.FALSE); a("url", 4, null, Boolean.TRUE, Boolean.FALSE); a("url-frame", 2, "_self", Boolean.TRUE, Boolean.FALSE); a("load-main-message", 2, null, Boolean.TRUE, Boolean.FALSE); a("load-main-style", 2, null, Boolean.TRUE, Boolean.FALSE); a("load-temp-message", 2, null, Boolean.TRUE, Boolean.FALSE); a("load-temp-style", 2, null, Boolean.TRUE, Boolean.FALSE); a("link-section-name", 2, null, Boolean.TRUE, Boolean.FALSE); a("link-next-section", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE); a("link-previous-section", 1, Boolean.FALSE, Boolean.TRUE, Boolean.FALSE); a("section-header", 1, Boolean.FALSE, Boolean.FALSE, Boolean.FALSE); a("border-type", 2, "none", Boolean.FALSE, Boolean.TRUE); a("border-color", 3, Color.black, Boolean.FALSE, Boolean.TRUE); a("border-width", 0, new Integer(1), Boolean.FALSE, Boolean.TRUE); a("background-color", 3, Color.white, Boolean.FALSE, Boolean.TRUE); a("background-image", 5, null, Boolean.FALSE, Boolean.TRUE); a("background-image-x", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("background-image-y", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("background-image-repeat", 1, Boolean.FALSE, Boolean.FALSE, Boolean.TRUE); a("foreground-image", 5, null, Boolean.FALSE, Boolean.TRUE); a("foreground-image-x", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("foreground-image-y", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("margin-left", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("margin-top", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("margin-right", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("margin-bottom", 0, new Integer(0), Boolean.FALSE, Boolean.TRUE); a("section-name", 2, null, Boolean.FALSE, Boolean.FALSE); q = "
"; } private final String do(String string) { string = string.trim(); if (string.length() >= 5 && string.substring(0, 5).equalsIgnoreCase("file:")) { String string_97_ = string.substring(5); try { URLConnection urlconnection = new URL(this.getDocumentBase(), string_97_) .openConnection(); urlconnection.setDoInput(true); urlconnection.setUseCaches(false); java.io.InputStream inputstream = urlconnection.getInputStream(); DataInputStream datainputstream = new DataInputStream(urlconnection.getInputStream()); string = ""; for (;;) { String string_98_ = datainputstream.readLine(); if (string_98_ == null) break; string += (String) string_98_ + "\n"; } datainputstream.close(); } catch (Exception exception) { ((AcuteScroller) this).l += "Error 12: Unable to load file:
"; ((AcuteScroller) this).l += "'" + (String) string_97_ + "'
"; string = ""; } } return string; } private final Vector a(String string, Hashtable hashtable) { string = for(string); Hashtable hashtable_99_ = (Hashtable) hashtable.get("default"); Vector vector = new Vector(); Hashtable hashtable_100_ = hashtable_99_; Vector vector_101_ = new Vector(); Vector vector_102_ = new Vector(); boolean bool = false; int i; do { i = string.indexOf("<"); int i_103_; if (i == -1) i_103_ = string.length(); else i_103_ = i; String string_104_ = string.substring(0, i_103_); string = string.substring(i_103_); if (!string_104_.equals("")) { StringTokenizer stringtokenizer = new StringTokenizer(string_104_, " \t\r\n\014", true); while (stringtokenizer.hasMoreTokens()) { String string_105_ = stringtokenizer.nextToken(); switch (string_105_.charAt(0)) { case '\t': case '\n': case '\014': case '\r': case ' ': if (!bool) vector.addElement(" "); bool = true; break; default: vector.addElement(a(string_105_)); bool = false; } } } if (i != -1) { Object[] objects = if(string); String string_106_ = (String) objects[0]; Hashtable hashtable_107_ = (Hashtable) objects[1]; string = (String) objects[2]; if (string_106_.startsWith("/")) { string_106_ = string_106_.substring(1).trim(); int i_108_; if (string_106_.equals("")) i_108_ = vector_101_.size() - 1; else i_108_ = vector_101_.lastIndexOf(string_106_); Hashtable hashtable_109_; if (i_108_ != -1) { hashtable_109_ = (Hashtable) vector_102_.elementAt(i_108_); for (int i_110_ = vector_101_.size() - 1; i_110_ >= i_108_; i_110_--) { vector_101_.removeElementAt(i_110_); vector_102_.removeElementAt(i_110_); } } else hashtable_109_ = new Hashtable(); hashtable_109_ = a((Hashtable) hashtable_109_.clone()); a(hashtable_107_, hashtable_109_); if (hashtable.containsKey("/" + string_106_)) a(hashtable_107_, (Hashtable) hashtable.get("/" + string_106_)); } else { if (!string_106_.equals("") && hashtable.containsKey(string_106_)) a(hashtable_107_, (Hashtable) hashtable.get(string_106_)); if (((Boolean) a(hashtable_107_, "section-header")) .booleanValue()) { hashtable_100_ = hashtable_99_; vector_101_ = new Vector(); vector_102_ = new Vector(); } a(hashtable_107_, hashtable_100_); vector_101_.addElement(string_106_); vector_102_.addElement(hashtable_100_); } hashtable_100_ = a((Hashtable) hashtable_107_.clone()); vector.addElement(hashtable_107_); } } while (i != -1); if (vector.size() != 0) { if (!vector.firstElement().getClass().getName() .equals("java.util.Hashtable")) vector.insertElementAt(hashtable_99_.clone(), 0); ((Hashtable) vector.firstElement()).put("section-header", Boolean.TRUE); } return vector; } private final Object[] if(String string) { string = string.trim(); int i = string.indexOf(">"); if (i == -1 || !string.startsWith("<")) { ((AcuteScroller) this).l += "Error 02: Missing end of style declaration:
"; ((AcuteScroller) this).l += "'" + int(string) + "'
"; Object[] objects = { "", new Hashtable(), "" }; return objects; } String string_111_ = string.substring(1, i).trim(); string = string.substring(i + 1); if (string_111_.endsWith("/") && string_111_.length() > 1) string_111_ = string_111_.substring(0, string_111_.length() - 1); String string_112_ = ""; Hashtable hashtable = new Hashtable(); int i_113_ = 0; while (!string_111_.trim().equals("")) { i_113_++; String string_114_ = new StringTokenizer(string_111_).nextToken(" \t\014\n\r="); string_111_ = string_111_.substring(string_114_.length()).trim(); if (!string_111_.startsWith("=") && i_113_ == 1) string_112_ = string_114_.trim().toLowerCase(); else { String string_115_ = string_114_.trim().toLowerCase(); string_111_ = string_111_.substring(1).trim(); String string_116_ = string_111_; String string_117_ = ""; boolean bool = false; int i_118_ = -1; if (string_111_.startsWith("\"")) { bool = true; string_111_ = string_111_.substring(1); i_118_ = string_111_.indexOf("\""); } else if (string_111_.startsWith("'")) { string_111_ = string_111_.substring(1); i_118_ = string_111_.indexOf("'"); bool = true; } if (i_118_ != -1) { string_117_ = string_111_.substring(0, i_118_); string_111_ = string_111_.substring(i_118_ + 1).trim(); } if (!bool || i_118_ == -1) { ((AcuteScroller) this).l += "Error 03: Missing delimiter character (' or \") for property value of "; ((AcuteScroller) this).l += "" + int(string_115_) + ":
"; ((AcuteScroller) this).l += (int(string_116_.substring(0, Math.min(string_116_ .length(), 10))) + "...
"); break; } String string_119_ = string_115_; String string_120_ = ""; if (string_115_.endsWith("-over")) { string_119_ = string_115_.substring(0, string_115_.length() - 5); string_120_ = "-over"; } if (string_115_.endsWith("-click")) { string_119_ = string_115_.substring(0, string_115_.length() - 6); string_120_ = "-click"; } if (n.containsKey(string_119_) && !((Boolean) n.get(string_119_)).booleanValue()) { string_119_ = string_115_; string_120_ = ""; } if (!U.containsKey(string_119_)) ((AcuteScroller) this).l += ("Error 04: Unknown property name " + (String) string_115_ + ".
"); else { string_117_ = a(string_117_); int i_121_ = ((Integer) U.get(string_119_)).intValue(); java.io.Serializable serializable = null; try { switch (i_121_) { case 0: serializable = new Integer(Integer.parseInt(string_117_)); break; case 1: serializable = new Boolean(string_117_); break; case 2: serializable = string_117_; break; case 3: serializable = new Color(Integer.parseInt(string_117_, 16)); break; case 4: case 5: serializable = new URL(this.getDocumentBase(), string_117_); break; } } catch (Exception exception) { ((AcuteScroller) this).l += ("Error 05: Invalid " + p[i_121_] + " value for " + (String) string_115_ + ":
"); ((AcuteScroller) this).l += "'" + int(string_117_) + "'
"; continue; } hashtable.put(string_115_, serializable); } } } Object[] objects = { string_112_, hashtable, string }; return objects; } private final Hashtable new(String string) { string = for(string); Hashtable hashtable = new Hashtable(); int i; while ((i = string.indexOf("<")) != -1) { string = string.substring(i); Object[] objects = if(string); String string_122_ = (String) objects[0]; Hashtable hashtable_123_ = (Hashtable) objects[1]; string = (String) objects[2]; if (!string_122_.equals("") && !hashtable_123_.isEmpty()) hashtable.put(string_122_, hashtable_123_); } return hashtable; } private final Hashtable a(Hashtable hashtable) { Enumeration enumeration = hashtable.keys(); Vector vector = new Vector(); while (enumeration.hasMoreElements()) vector.addElement((String) enumeration.nextElement()); enumeration = vector.elements(); while (enumeration.hasMoreElements()) { String string = (String) enumeration.nextElement(); String string_124_ = string; if (string_124_.endsWith("-over")) string_124_ = string.substring(0, string.length() - 5); if (string.endsWith("-click")) string_124_ = string.substring(0, string.length() - 6); boolean bool = ((Boolean) e.get(string_124_)).booleanValue(); if (!bool) hashtable.remove(string); } return hashtable; } private final String for(String string) { for (int i = 0; i < ((AcuteScroller) this).k.length; i++) { int i_125_; while ((i_125_ = string.indexOf(((AcuteScroller) this).k[i][0])) != -1) { int i_126_ = string.indexOf(((AcuteScroller) this).k[i][1], i_125_); if (i_126_ != -1) string = (string.substring(0, i_125_) + string.substring(i_126_ + ((AcuteScroller) this) .k[i][1].length())); else { ((AcuteScroller) this).l += "Error 01: Missing end of block started with "; ((AcuteScroller) this).l += ("'" + int(((AcuteScroller) this).k[i][0]) + "'.
"); return string.substring(0, i_125_); } } } return string; } public final void paint(Graphics graphics) { if (!System.getProperty("java.version").startsWith("1.0")) { int i = 0; if (((AcuteScroller) this).f) i = 3; else if (((AcuteScroller) this).try != null) i = 12; this.setCursor(new Cursor(i)); } if (((AcuteScroller) this).f || ((AcuteScroller) this).long || u == null) { Color color = Color.white; Color color_127_ = new Color(5263440); String string = ""; try { color = new Color(Integer.parseInt (this.getParameter("loading-background-color"), 16)); } catch (Exception exception) { /* empty */ } try { color_127_ = new Color(Integer.parseInt (this.getParameter("loading-text-color"), 16)); } catch (Exception exception) { /* empty */ } if (((AcuteScroller) this).f) { string = this.getParameter("loading-text"); if (string == null) string = "(loading)"; } if (((AcuteScroller) this).long) { string = (null + "\nUnregistered version\nFor evaluation use only!\nwww.acuteapplets.com"); color = Color.darkGray; color_127_ = Color.white; } Graphics graphics_128_ = b.getGraphics(); graphics_128_.setColor(color); graphics_128_.fillRect(0, 0, this.size().width, this.size().height); Font font = new Font("Helvetica", 0, 9); graphics_128_.setFont(font); graphics_128_.setColor(color_127_); FontMetrics fontmetrics = graphics_128_.getFontMetrics(font); StringTokenizer stringtokenizer = new StringTokenizer(string, "\n"); int i = (this.size().height / 2 - (fontmetrics.getHeight() * stringtokenizer.countTokens() / 2) + fontmetrics.getAscent()); while (stringtokenizer.hasMoreTokens()) { String string_129_ = stringtokenizer.nextToken(); graphics_128_.drawString(string_129_, (this.size().width - fontmetrics .stringWidth(string_129_)) / 2, i); i += fontmetrics.getHeight(); } } graphics.drawImage(b, 0, 0, this); this.getToolkit().sync(); } private final void a(String string, String string_130_) { ((AcuteScroller) this).l = ""; string = do(string); string_130_ = do(string_130_); if (string.equals("")) string = " "; Hashtable hashtable = new(q); Hashtable hashtable_131_ = new(string_130_); Enumeration enumeration = hashtable.keys(); while (enumeration.hasMoreElements()) { String string_132_ = (String) enumeration.nextElement(); if (!hashtable_131_.containsKey(string_132_)) hashtable_131_.put(string_132_, hashtable.get(string_132_)); else a((Hashtable) hashtable_131_.get(string_132_), (Hashtable) hashtable.get(string_132_)); } Vector vector = a(string, hashtable_131_); a(vector); while (!byte()) { ((AcuteScroller) this).f = true; paint(this.getGraphics()); try { Thread.sleep(20L); } catch (InterruptedException interruptedexception) { /* empty */ } } ((AcuteScroller) this).f = false; if(vector); if (!((AcuteScroller) this).l.equals("")) if(a(((AcuteScroller) this).l, hashtable)); int(); } public final void run() { if(); a("scroll-break", 2, "half", Boolean.FALSE, Boolean.FALSE); a("scroll-pause", 0, new Integer(0), Boolean.FALSE, Boolean.FALSE); a("scroll-speed", 0, new Integer(1), Boolean.FALSE, Boolean.FALSE); System.out.println(null + " (http://www.acuteapplets.com)."); this.repaint(); this.show(); z = this.createImage(this.size().width, this.size().height); b = this.createImage(this.size().width, this.size().height); do(); ((AcuteScroller) this).f = true; paint(this.getGraphics()); for(); loadMain(this.getParameter("Message"), this.getParameter("style")); String[] strings = null; String[] strings_133_ = null; boolean bool = false; boolean bool_134_ = false; boolean bool_135_ = false; boolean bool_136_ = false; ((AcuteScroller) this).do = -1; boolean bool_137_ = false; long l = 0L; int i = 0; int i_138_ = 0; boolean bool_139_ = false; int i_140_ = 0; Rectangle rectangle = null; int i_141_ = 0; int i_142_ = 0; for (;;) { if (bool_134_ == false) { strings_133_ = a(); if (strings_133_ != null) { strings = strings_133_; bool_134_ = true; bool_135_ = false; } else { strings_133_ = try(); if (strings_133_ != null) { bool_134_ = true; bool_135_ = true; } } } if (bool_134_ && bool == false) { String string = strings_133_[0]; String string_143_ = strings_133_[1]; a(string, string_143_); bool_136_ = bool_135_; bool_134_ = false; bool = true; rectangle = (Rectangle) ((AcuteScroller) this).byte.elementAt(0); i_141_ = 0; for (int i_144_ = 0; i_144_ < ((AcuteScroller) this).char.size(); i_144_++) { String string_145_ = (String) a(i_144_, "scroll-break"); int i_146_ = ((Integer) ((AcuteScroller) this).H.elementAt(i_144_)) .intValue(); i_142_ = i_141_ + i_146_; if (string_145_.equalsIgnoreCase("full")) i_146_ += ((Rectangle) ((AcuteScroller) this).byte .elementAt(i_144_)).height; else if (string_145_.equalsIgnoreCase("none")) i_146_ += 0; else i_146_ += Math.max(0, rectangle.height - i_146_); ((AcuteScroller) this).H.setElementAt(new Integer(i_146_), i_144_); i_141_ += i_146_; } bool_137_ = false; i = rectangle.height; i_138_ = 0; } int i_147_ = i; int i_148_ = 0; ((AcuteScroller) this).try = null; int i_149_ = 0; int i_150_ = i_147_; boolean bool_151_ = false; int i_152_ = 0; while (i_147_ < rectangle.height) { if (i_147_ >= 0 && !bool_151_) { i_149_ = i_148_; i_150_ = i_147_; bool_151_ = true; } i_152_ = i_148_; int i_153_ = ((Integer) ((AcuteScroller) this).H.elementAt(i_148_)) .intValue(); if (rectangle.inside(((AcuteScroller) this).w, ((AcuteScroller) this).Y) && i_147_ >= -i_153_) a(i_148_, i_138_, i_147_); i_147_ += i_153_; i_148_ = (i_148_ + 1) % ((AcuteScroller) this).char.size(); } long l_154_ = System.currentTimeMillis(); if(i_152_, z.getGraphics()); i_147_ = i; i_148_ = 0; while (i_147_ < rectangle.height && i_148_ < ((AcuteScroller) this).char.size()) { if (i_147_ + ((Integer) ((AcuteScroller) this).H.elementAt(i_148_)) .intValue() > 0) a(i_148_, i_138_, i_147_, z.getGraphics()); i_147_ += ((Integer) ((AcuteScroller) this).H.elementAt(i_148_)) .intValue(); i_148_++; if (bool_136_ == false) i_148_ %= ((AcuteScroller) this).char.size(); } a(i_152_, z.getGraphics()); Image image = b; b = z; z = image; paint(this.getGraphics()); try { Thread.sleep(Math.max(10L, (l_154_ + 40L - System.currentTimeMillis()))); } catch (InterruptedException interruptedexception) { /* empty */ } int i_155_ = ((Integer) a(i_149_, "scroll-pause")).intValue(); if (i_155_ == -1) i_155_ = 2147483647; if (i_150_ == 0 && i_155_ != 0 && bool_137_ == false) { l = System.currentTimeMillis() + (long) i_155_; bool_137_ = true; } if (l <= System.currentTimeMillis()) bool_137_ = false; if (bool_134_) { if (i_138_ < rectangle.width) i_138_ += 30; else { i_138_ = 0; bool = false; } bool_137_ = false; } else if (((AcuteScroller) this).K) { if (bool_139_) { int i_156_ = ((AcuteScroller) this).Y - i_140_; i += i_156_; if (i_156_ != 0) bool_137_ = false; } } else if (bool_137_ == false) { int i_157_ = ((Integer) a(i_152_, "scroll-speed")).intValue(); if (i_155_ != 0 && i_150_ >= 0) { i_157_ = Math.min(i_157_, i_150_); i_157_ = Math.max(i_157_, 1); } i -= i_157_; if (i < -i_141_ * 10 && i_141_ != 0) i = -(-i % i_141_) - i_141_ * 10; } i_140_ = ((AcuteScroller) this).Y; bool_139_ = ((AcuteScroller) this).K; if (bool_136_ && !((AcuteScroller) this).K && i < -i_142_) { strings_133_ = strings; bool_135_ = false; bool_134_ = true; bool = false; ((AcuteScroller) this).T = false; } } } public final void start() { if (u == null) { u = new Thread(this); u.start(); } } public final void stop() { if (u != null) { u.stop(); u = null; } } public final synchronized void unloadTemp(int i) { if (((AcuteScroller) this).T) { ((AcuteScroller) this).new = 9223372036854775807L; ((AcuteScroller) this).for = System.currentTimeMillis() + (long) i; } else { ((AcuteScroller) this).new = 9223372036854775807L; ((AcuteScroller) this).for = 9223372036854775807L; } } public final void update(Graphics graphics) { paint(graphics); } }