From 47eb9d880f09c776bab92528a48139484379c2b5 Mon Sep 17 00:00:00 2001 From: Vichingo455 Date: Wed, 24 Sep 2025 12:40:09 +0200 Subject: [PATCH] first commit --- about.html | 63 + avr8js/analog.html | 33 + avr8js/index.html | 38 + avr8js/logic.html | 33 + avr8js/src.avr8js.css | 55 + avr8js/src.avr8js.css.map | 1 + avr8js/src.avr8js.js | 11640 ++++++++++++++++ avr8js/src.avr8js.js.map | 1 + blink-test.html | 73 + canvas2svg.js | 1254 ++ circuitjs.html | 183 + .../34BE10C27C953A8358ADAB184A21D5C0.cache.js | 26 + .../36D0E0476501C55A556F09B8149CBBF7.cache.js | 26 + .../7CAF1A67BAED9CD877A9D647C1947A3D.cache.js | 24 + .../83C11E8C70C2941EC713E13666BF6A01.cache.js | 26 + .../E8DD6960DBF1D2441A46A283AA00B133.cache.js | 26 + circuitjs1/circuitjs1.devmode.js | 1 + circuitjs1/circuitjs1.nocache.js | 27 + circuitjs1/circuits/3-cgand.txt | 47 + circuitjs1/circuits/3-cgor.txt | 48 + circuitjs1/circuits/3-f211.txt | 11 + circuitjs1/circuits/3-f220.txt | 11 + circuitjs1/circuits/3-f221.txt | 11 + circuitjs1/circuits/3-invert.txt | 21 + circuitjs1/circuits/3motor.txt | 11 + circuitjs1/circuits/3way.txt | 12 + circuitjs1/circuits/4way.txt | 22 + circuitjs1/circuits/555int.txt | 50 + circuitjs1/circuits/555lowduty.txt | 20 + circuitjs1/circuits/555missing.txt | 26 + circuitjs1/circuits/555monostable.txt | 22 + circuitjs1/circuits/555pulsemod.txt | 19 + circuitjs1/circuits/555saw.txt | 25 + circuitjs1/circuits/555schmitt.txt | 17 + circuitjs1/circuits/555sequencer.txt | 68 + circuitjs1/circuits/555square.txt | 21 + circuitjs1/circuits/7segdecoder.txt | 263 + circuitjs1/circuits/actbutterband.txt | 56 + circuitjs1/circuits/actbutterhi.txt | 46 + circuitjs1/circuits/actbutterlo.txt | 46 + circuitjs1/circuits/allpass1.txt | 14 + circuitjs1/circuits/allpass2.txt | 13 + circuitjs1/circuits/alu74181.txt | 414 + circuitjs1/circuits/amdetect.txt | 25 + circuitjs1/circuits/amp-dfdx.txt | 14 + circuitjs1/circuits/amp-diff.txt | 18 + circuitjs1/circuits/amp-follower.txt | 15 + circuitjs1/circuits/amp-fullrect.txt | 23 + circuitjs1/circuits/amp-integ.txt | 18 + circuitjs1/circuits/amp-invert.txt | 14 + circuitjs1/circuits/amp-noninvert.txt | 13 + circuitjs1/circuits/amp-rect.txt | 15 + circuitjs1/circuits/amp-schmitt.txt | 23 + circuitjs1/circuits/amp-sum.txt | 18 + circuitjs1/circuits/analogrecip.txt | 51 + circuitjs1/circuits/avr8js-analog.txt | 19 + circuitjs1/circuits/avr8js-logic.txt | 11 + circuitjs1/circuits/avr8js-strobe.txt | 21 + circuitjs1/circuits/bandnoise.txt | 14 + circuitjs1/circuits/bandpass.txt | 17 + circuitjs1/circuits/besselbutter.txt | 44 + circuitjs1/circuits/blank.txt | 1 + circuitjs1/circuits/brentkung.txt | 326 + circuitjs1/circuits/butter10hi.txt | 22 + circuitjs1/circuits/butter10hiaud.txt | 22 + circuitjs1/circuits/butter10lo.txt | 22 + circuitjs1/circuits/butter10loaud.txt | 22 + circuitjs1/circuits/butterbandstop.txt | 32 + circuitjs1/circuits/cap.txt | 13 + circuitjs1/circuits/capac.txt | 7 + circuitjs1/circuits/capmult.txt | 24 + circuitjs1/circuits/capmultcaps.txt | 16 + circuitjs1/circuits/capmultfreq.txt | 16 + circuitjs1/circuits/cappar.txt | 24 + circuitjs1/circuits/capseries.txt | 18 + circuitjs1/circuits/cc2.txt | 8 + circuitjs1/circuits/cc2imp.txt | 39 + circuitjs1/circuits/cc2impn.txt | 57 + circuitjs1/circuits/cc2n.txt | 8 + circuitjs1/circuits/ccdiff.txt | 17 + circuitjs1/circuits/cciamp.txt | 13 + circuitjs1/circuits/ccinductor.txt | 27 + circuitjs1/circuits/ccint.txt | 16 + circuitjs1/circuits/ccitov.txt | 17 + circuitjs1/circuits/ccvccs.txt | 10 + circuitjs1/circuits/ceamp.txt | 18 + circuitjs1/circuits/chaos1.txt | 40 + circuitjs1/circuits/chaos2.txt | 68 + circuitjs1/circuits/chua.txt | 78 + circuitjs1/circuits/classd.txt | 24 + circuitjs1/circuits/clockedsrff.txt | 23 + circuitjs1/circuits/cmosff.txt | 51 + circuitjs1/circuits/cmosinverter.txt | 11 + circuitjs1/circuits/cmosinvertercap.txt | 18 + circuitjs1/circuits/cmosinverterslow.txt | 18 + circuitjs1/circuits/cmosmsff.txt | 29 + circuitjs1/circuits/cmosnand.txt | 21 + circuitjs1/circuits/cmosnor.txt | 19 + circuitjs1/circuits/cmostransgate.txt | 22 + circuitjs1/circuits/cmosxor.txt | 28 + circuitjs1/circuits/colpitts.txt | 20 + circuitjs1/circuits/comb.txt | 28 + circuitjs1/circuits/conv-boost.txt | 19 + circuitjs1/circuits/conv-buck.txt | 19 + circuitjs1/circuits/conv-buckboost.txt | 19 + circuitjs1/circuits/conv-cuk.txt | 22 + circuitjs1/circuits/conv-sepic.txt | 23 + circuitjs1/circuits/counter.txt | 49 + circuitjs1/circuits/counter8.txt | 110 + circuitjs1/circuits/coupled1.txt | 19 + circuitjs1/circuits/coupled2.txt | 18 + circuitjs1/circuits/coupled3.txt | 37 + circuitjs1/circuits/crossover.txt | 29 + circuitjs1/circuits/crystalosc.txt | 28 + circuitjs1/circuits/crystalosc2.txt | 21 + circuitjs1/circuits/cube.txt | 15 + circuitjs1/circuits/currentsrc.txt | 14 + circuitjs1/circuits/currentsrcelm.txt | 26 + circuitjs1/circuits/currentsrcramp.txt | 15 + circuitjs1/circuits/dac.txt | 21 + circuitjs1/circuits/darlington.txt | 14 + circuitjs1/circuits/dcrestoration.txt | 10 + circuitjs1/circuits/deccounter.txt | 77 + circuitjs1/circuits/decoder.txt | 29 + circuitjs1/circuits/delayrc.txt | 26 + circuitjs1/circuits/delta-pwm.txt | 31 + circuitjs1/circuits/deltasigma.txt | 40 + circuitjs1/circuits/diff.txt | 8 + circuitjs1/circuits/digcompare.txt | 61 + circuitjs1/circuits/digsine.txt | 62 + circuitjs1/circuits/diodeclip.txt | 9 + circuitjs1/circuits/diodecurve.txt | 7 + circuitjs1/circuits/diodelimit.txt | 13 + circuitjs1/circuits/diodevar.txt | 5 + circuitjs1/circuits/divideby2.txt | 9 + circuitjs1/circuits/divideby3.txt | 17 + circuitjs1/circuits/dram.txt | 73 + circuitjs1/circuits/dtlinverter.txt | 13 + circuitjs1/circuits/dtlnand.txt | 19 + circuitjs1/circuits/dtlnor.txt | 28 + circuitjs1/circuits/early.txt | 18 + circuitjs1/circuits/eclnor.txt | 63 + circuitjs1/circuits/eclosc.txt | 40 + circuitjs1/circuits/edgedff.txt | 47 + circuitjs1/circuits/fanout.txt | 89 + circuitjs1/circuits/filt-hipass-l.txt | 9 + circuitjs1/circuits/filt-hipass.txt | 9 + circuitjs1/circuits/filt-lopass-l.txt | 9 + circuitjs1/circuits/filt-lopass.txt | 9 + circuitjs1/circuits/filt-vcvs-hipass.txt | 22 + circuitjs1/circuits/filt-vcvs-lopass.txt | 22 + circuitjs1/circuits/flashadc.txt | 73 + circuitjs1/circuits/follower.txt | 15 + circuitjs1/circuits/freqdouble.txt | 36 + circuitjs1/circuits/fulladd.txt | 30 + circuitjs1/circuits/fullrect.txt | 17 + circuitjs1/circuits/fullrectf.txt | 20 + circuitjs1/circuits/gilbertcell.txt | 102 + circuitjs1/circuits/graycode.txt | 28 + circuitjs1/circuits/grid.txt | 61 + circuitjs1/circuits/grid2.txt | 163 + circuitjs1/circuits/gyrator.txt | 18 + circuitjs1/circuits/halfadd.txt | 15 + circuitjs1/circuits/hartley.txt | 20 + circuitjs1/circuits/hfadc.txt | 46 + circuitjs1/circuits/howland.txt | 24 + circuitjs1/circuits/impedance.txt | 14 + circuitjs1/circuits/indmultfreq.txt | 16 + circuitjs1/circuits/indmultind.txt | 16 + circuitjs1/circuits/indpar.txt | 24 + circuitjs1/circuits/indseries.txt | 18 + circuitjs1/circuits/induct.txt | 11 + circuitjs1/circuits/inductac.txt | 7 + circuitjs1/circuits/inductkick-block.txt | 13 + circuitjs1/circuits/inductkick-snub.txt | 15 + circuitjs1/circuits/inductkick.txt | 13 + circuitjs1/circuits/inv-osc.txt | 12 + circuitjs1/circuits/invertamp.txt | 18 + circuitjs1/circuits/itov.txt | 13 + circuitjs1/circuits/jerk.txt | 39 + circuitjs1/circuits/jfetamp.txt | 16 + circuitjs1/circuits/jfetcurrentsrc.txt | 13 + circuitjs1/circuits/jfetfollower-nooff.txt | 13 + circuitjs1/circuits/jfetfollower.txt | 10 + circuitjs1/circuits/jkff.txt | 58 + circuitjs1/circuits/johnsonctr.txt | 125 + circuitjs1/circuits/joule-thief.txt | 26 + circuitjs1/circuits/jsinterface.txt | 80 + circuitjs1/circuits/ladder.txt | 79 + circuitjs1/circuits/lambda-diode-osc.txt | 20 + circuitjs1/circuits/lambda-diode.txt | 11 + circuitjs1/circuits/latchingrelay.txt | 8 + circuitjs1/circuits/leadingedge.txt | 44 + circuitjs1/circuits/ledarray.txt | 62 + circuitjs1/circuits/ledflasher.txt | 43 + circuitjs1/circuits/lightbulb.txt | 8 + circuitjs1/circuits/lissa.txt | 28 + circuitjs1/circuits/logconvert.txt | 36 + circuitjs1/circuits/longdist.txt | 33 + circuitjs1/circuits/lrc-critical.txt | 12 + circuitjs1/circuits/lrc.txt | 15 + circuitjs1/circuits/majority.txt | 23 + circuitjs1/circuits/masterslaveff.txt | 45 + circuitjs1/circuits/mirror.txt | 24 + circuitjs1/circuits/moscurrentramp.txt | 15 + circuitjs1/circuits/moscurrentsrc.txt | 11 + circuitjs1/circuits/mosfetamp.txt | 16 + circuitjs1/circuits/mosfollower.txt | 9 + circuitjs1/circuits/mosmirror.txt | 23 + circuitjs1/circuits/mosswitch.txt | 9 + circuitjs1/circuits/motorprotect.txt | 15 + circuitjs1/circuits/mr-crossbar.txt | 45 + circuitjs1/circuits/mr-sine.txt | 7 + circuitjs1/circuits/mr-sine2.txt | 7 + circuitjs1/circuits/mr-sine3.txt | 7 + circuitjs1/circuits/mr-square.txt | 7 + circuitjs1/circuits/mr-triangle.txt | 7 + circuitjs1/circuits/mr.txt | 7 + circuitjs1/circuits/multivib-a.txt | 28 + circuitjs1/circuits/multivib-bi.txt | 27 + circuitjs1/circuits/multivib-mono.txt | 23 + circuitjs1/circuits/mux.txt | 40 + circuitjs1/circuits/mux3state.txt | 39 + circuitjs1/circuits/nandff.txt | 17 + circuitjs1/circuits/nic-r.txt | 19 + circuitjs1/circuits/nmosfet.txt | 8 + circuitjs1/circuits/nmosinverter.txt | 8 + circuitjs1/circuits/nmosinverter2.txt | 12 + circuitjs1/circuits/nmosinverter3.txt | 14 + circuitjs1/circuits/nmosnand.txt | 15 + circuitjs1/circuits/norton.txt | 36 + circuitjs1/circuits/notch.txt | 13 + circuitjs1/circuits/npn.txt | 8 + circuitjs1/circuits/ohms.txt | 10 + circuitjs1/circuits/opamp-regulator.txt | 29 + circuitjs1/circuits/opamp.txt | 5 + circuitjs1/circuits/opampfeedback.txt | 7 + circuitjs1/circuits/opint-current.txt | 109 + circuitjs1/circuits/opint-invert-amp.txt | 109 + circuitjs1/circuits/opint-slew.txt | 110 + circuitjs1/circuits/opint.txt | 105 + circuitjs1/circuits/ota-gain.txt | 36 + circuitjs1/circuits/ota-ringmod.txt | 25 + circuitjs1/circuits/ota-vca.txt | 24 + circuitjs1/circuits/ota-vcf-single.txt | 39 + circuitjs1/circuits/peak-detect.txt | 28 + circuitjs1/circuits/phasecomp.txt | 15 + circuitjs1/circuits/phasecompint.txt | 33 + circuitjs1/circuits/phaseseq.txt | 72 + circuitjs1/circuits/phaseshiftosc.txt | 21 + circuitjs1/circuits/phasesplit.txt | 22 + circuitjs1/circuits/piso-sr.txt | 36 + circuitjs1/circuits/pll.txt | 26 + circuitjs1/circuits/pll2.txt | 27 + circuitjs1/circuits/pll2a.txt | 28 + circuitjs1/circuits/pmosfet.txt | 8 + circuitjs1/circuits/pnp.txt | 8 + circuitjs1/circuits/pot.txt | 7 + circuitjs1/circuits/potdivide.txt | 8 + circuitjs1/circuits/powerfactor1.txt | 10 + circuitjs1/circuits/powerfactor2.txt | 11 + circuitjs1/circuits/priencoder.txt | 26 + circuitjs1/circuits/pushpull.txt | 22 + circuitjs1/circuits/pushpullxover.txt | 18 + circuitjs1/circuits/qam-256.txt | 177 + circuitjs1/circuits/r2rladder.txt | 45 + circuitjs1/circuits/rectify.txt | 7 + circuitjs1/circuits/relaxosc.txt | 15 + circuitjs1/circuits/relay.txt | 11 + circuitjs1/circuits/relayand.txt | 22 + circuitjs1/circuits/relayctr.txt | 108 + circuitjs1/circuits/relayff.txt | 18 + circuitjs1/circuits/relaymux.txt | 32 + circuitjs1/circuits/relayor.txt | 27 + circuitjs1/circuits/relayosc.txt | 13 + circuitjs1/circuits/relays.txt | 61 + circuitjs1/circuits/relaytff.txt | 33 + circuitjs1/circuits/relayxor.txt | 16 + circuitjs1/circuits/res-par.txt | 35 + circuitjs1/circuits/res-series.txt | 17 + circuitjs1/circuits/resistors.txt | 24 + circuitjs1/circuits/ringcascade.txt | 47 + circuitjs1/circuits/ringing.txt | 14 + circuitjs1/circuits/ringmod.txt | 38 + circuitjs1/circuits/rmsconverter.txt | 93 + circuitjs1/circuits/rossler.txt | 69 + circuitjs1/circuits/rtlinverter.txt | 9 + circuitjs1/circuits/rtlnand.txt | 18 + circuitjs1/circuits/rtlnor.txt | 24 + circuitjs1/circuits/samplenhold.txt | 32 + circuitjs1/circuits/sawtooth.txt | 22 + circuitjs1/circuits/schmitt.txt | 29 + circuitjs1/circuits/scr.txt | 9 + circuitjs1/circuits/scractrig.txt | 10 + circuitjs1/circuits/sine.txt | 24 + circuitjs1/circuits/sinediode.txt | 57 + circuitjs1/circuits/sipo-sr.txt | 25 + circuitjs1/circuits/spark-marx.txt | 39 + circuitjs1/circuits/spark-sawtooth.txt | 9 + circuitjs1/circuits/spikegen.txt | 10 + circuitjs1/circuits/sram.txt | 89 + circuitjs1/circuits/switchedcap.txt | 22 + circuitjs1/circuits/switchfilter.txt | 45 + circuitjs1/circuits/swtreedac.txt | 51 + circuitjs1/circuits/synccounter.txt | 48 + circuitjs1/circuits/tdiode.txt | 6 + circuitjs1/circuits/tdosc.txt | 18 + circuitjs1/circuits/tdrelax.txt | 12 + circuitjs1/circuits/tesla.txt | 23 + circuitjs1/circuits/thevenin.txt | 34 + circuitjs1/circuits/tl.txt | 8 + circuitjs1/circuits/tlfreq.txt | 19 + circuitjs1/circuits/tllight.txt | 15 + circuitjs1/circuits/tllopass.txt | 37 + circuitjs1/circuits/tlmatch1.txt | 32 + circuitjs1/circuits/tlmatch2.txt | 39 + circuitjs1/circuits/tlmis1.txt | 15 + circuitjs1/circuits/tlmismatch.txt | 13 + circuitjs1/circuits/tlstand.txt | 11 + circuitjs1/circuits/tlterm.txt | 33 + circuitjs1/circuits/traffic.txt | 68 + circuitjs1/circuits/trans-diffamp-common.txt | 24 + circuitjs1/circuits/trans-diffamp-cursrc.txt | 31 + circuitjs1/circuits/trans-diffamp.txt | 25 + circuitjs1/circuits/transformer.txt | 16 + circuitjs1/circuits/transformerdc.txt | 16 + circuitjs1/circuits/transformerdown.txt | 16 + circuitjs1/circuits/transformerup.txt | 16 + circuitjs1/circuits/transrectifier.txt | 12 + circuitjs1/circuits/transswitch.txt | 10 + circuitjs1/circuits/triacdimmer.txt | 12 + circuitjs1/circuits/triangle.txt | 18 + circuitjs1/circuits/trianglevco.txt | 45 + circuitjs1/circuits/triode.txt | 8 + circuitjs1/circuits/triodeamp.txt | 20 + circuitjs1/circuits/ttlinverter.txt | 11 + circuitjs1/circuits/ttlnand.txt | 17 + circuitjs1/circuits/ttlnor.txt | 24 + circuitjs1/circuits/twint.txt | 17 + circuitjs1/circuits/ujtosc.txt | 14 + circuitjs1/circuits/unishiftreg.txt | 217 + circuitjs1/circuits/updownctr.txt | 68 + circuitjs1/circuits/varactor.txt | 16 + circuitjs1/circuits/varactorvco.txt | 34 + circuitjs1/circuits/vco.txt | 36 + circuitjs1/circuits/vilnius.txt | 26 + circuitjs1/circuits/voltdivide.txt | 16 + circuitjs1/circuits/voltdouble.txt | 14 + circuitjs1/circuits/voltdouble2.txt | 13 + circuitjs1/circuits/voltinvert.txt | 21 + circuitjs1/circuits/voltquad.txt | 18 + circuitjs1/circuits/volttriple.txt | 16 + circuitjs1/circuits/volume.txt | 14 + circuitjs1/circuits/wheatstone.txt | 11 + circuitjs1/circuits/wienbridge.txt | 20 + circuitjs1/circuits/xor.txt | 16 + circuitjs1/circuits/xorphasedet.txt | 10 + circuitjs1/circuits/zeneriv.txt | 6 + circuitjs1/circuits/zenerref.txt | 11 + circuitjs1/circuits/zenerreffollow.txt | 16 + circuitjs1/clear.cache.gif | Bin 0 -> 43 bytes circuitjs1/compilation-mappings.txt | 16 + circuitjs1/gwt/clean/clean.css | 1121 ++ circuitjs1/gwt/clean/clean_rtl.css | 1122 ++ circuitjs1/gwt/clean/images/circles.png | Bin 0 -> 1492 bytes circuitjs1/gwt/clean/images/corner.png | Bin 0 -> 1140 bytes circuitjs1/gwt/clean/images/hborder.png | Bin 0 -> 1995 bytes circuitjs1/gwt/clean/images/thumb_horz.png | Bin 0 -> 222 bytes .../gwt/clean/images/thumb_vertical.png | Bin 0 -> 231 bytes circuitjs1/gwt/clean/images/vborder.png | Bin 0 -> 298 bytes .../img/subcircuits/subcircuit-pins1.png | Bin 0 -> 7998 bytes .../img/subcircuits/subcircuit-pins2.png | Bin 0 -> 5644 bytes circuitjs1/locale_csx.txt | 1087 ++ circuitjs1/locale_da.txt | 535 + circuitjs1/locale_de.txt | 778 ++ circuitjs1/locale_es.txt | 1417 ++ circuitjs1/locale_fr.txt | 1068 ++ circuitjs1/locale_it.txt | 1066 ++ circuitjs1/locale_ja.txt | 1377 ++ circuitjs1/locale_nb.txt | 1081 ++ circuitjs1/locale_pl.txt | 979 ++ circuitjs1/locale_pt.txt | 1357 ++ circuitjs1/locale_ru.txt | 1314 ++ circuitjs1/locale_zh-tw.txt | 1277 ++ circuitjs1/locale_zh.txt | 1204 ++ circuitjs1/setuplist.txt | 439 + circuitjs1/style.css | 127 + crystal.html | 67 + customfunction.html | 64 + customlogic.html | 145 + customtransformer.html | 29 + diodecalc.html | 48 + doc/AudioInput.html | 82 + doc/DataInput.html | 53 + doc/DelayBuffer.html | 42 + doc/circuits.html | 2369 ++++ doc/customfunction.html | 64 + doc/customlogic.html | 145 + doc/customtransformer.html | 29 + doc/index.html | 41 + doc/js-interface.html | 276 + doc/opampreal.html | 19 + doc/overview.html | 1297 ++ doc/subcircuit-pins1.png | Bin 0 -> 7998 bytes doc/subcircuit-pins2.png | Bin 0 -> 5644 bytes doc/subcircuits.html | 54 + doc/toc.html | 40 + doc/welcome.html | 2701 ++++ font/LICENSE.txt | 51 + font/config.json | 294 + font/fontello.css | 92 + font/fontello.eot | Bin 0 -> 16944 bytes font/fontello.svg | 82 + font/fontello.ttf | Bin 0 -> 16776 bytes font/fontello.woff | Bin 0 -> 10512 bytes font/fontello.woff2 | Bin 0 -> 8852 bytes font/webfontlicense.html | 37 + icon1024.png | Bin 0 -> 124558 bytes icon128.png | Bin 0 -> 12242 bytes icon512.png | Bin 0 -> 50485 bytes iframe.html | 9 + jsinterface.html | 121 + lz-string.min.js | 1 + manifest.json | 22 + mosfet-beta.html | 51 + opampreal.html | 19 + service-worker.js | 74 + shortrelay.php | 19 + subcircuits.html | 54 + 429 files changed, 49841 insertions(+) create mode 100644 about.html create mode 100644 avr8js/analog.html create mode 100644 avr8js/index.html create mode 100644 avr8js/logic.html create mode 100644 avr8js/src.avr8js.css create mode 100644 avr8js/src.avr8js.css.map create mode 100644 avr8js/src.avr8js.js create mode 100644 avr8js/src.avr8js.js.map create mode 100644 blink-test.html create mode 100644 canvas2svg.js create mode 100644 circuitjs.html create mode 100644 circuitjs1/34BE10C27C953A8358ADAB184A21D5C0.cache.js create mode 100644 circuitjs1/36D0E0476501C55A556F09B8149CBBF7.cache.js create mode 100644 circuitjs1/7CAF1A67BAED9CD877A9D647C1947A3D.cache.js create mode 100644 circuitjs1/83C11E8C70C2941EC713E13666BF6A01.cache.js create mode 100644 circuitjs1/E8DD6960DBF1D2441A46A283AA00B133.cache.js create mode 100644 circuitjs1/circuitjs1.devmode.js create mode 100644 circuitjs1/circuitjs1.nocache.js create mode 100644 circuitjs1/circuits/3-cgand.txt create mode 100644 circuitjs1/circuits/3-cgor.txt create mode 100644 circuitjs1/circuits/3-f211.txt create mode 100644 circuitjs1/circuits/3-f220.txt create mode 100644 circuitjs1/circuits/3-f221.txt create mode 100644 circuitjs1/circuits/3-invert.txt create mode 100644 circuitjs1/circuits/3motor.txt create mode 100644 circuitjs1/circuits/3way.txt create mode 100644 circuitjs1/circuits/4way.txt create mode 100644 circuitjs1/circuits/555int.txt create mode 100644 circuitjs1/circuits/555lowduty.txt create mode 100644 circuitjs1/circuits/555missing.txt create mode 100644 circuitjs1/circuits/555monostable.txt create mode 100644 circuitjs1/circuits/555pulsemod.txt create mode 100644 circuitjs1/circuits/555saw.txt create mode 100644 circuitjs1/circuits/555schmitt.txt create mode 100644 circuitjs1/circuits/555sequencer.txt create mode 100644 circuitjs1/circuits/555square.txt create mode 100644 circuitjs1/circuits/7segdecoder.txt create mode 100644 circuitjs1/circuits/actbutterband.txt create mode 100644 circuitjs1/circuits/actbutterhi.txt create mode 100644 circuitjs1/circuits/actbutterlo.txt create mode 100644 circuitjs1/circuits/allpass1.txt create mode 100644 circuitjs1/circuits/allpass2.txt create mode 100644 circuitjs1/circuits/alu74181.txt create mode 100644 circuitjs1/circuits/amdetect.txt create mode 100644 circuitjs1/circuits/amp-dfdx.txt create mode 100644 circuitjs1/circuits/amp-diff.txt create mode 100644 circuitjs1/circuits/amp-follower.txt create mode 100644 circuitjs1/circuits/amp-fullrect.txt create mode 100644 circuitjs1/circuits/amp-integ.txt create mode 100644 circuitjs1/circuits/amp-invert.txt create mode 100644 circuitjs1/circuits/amp-noninvert.txt create mode 100644 circuitjs1/circuits/amp-rect.txt create mode 100644 circuitjs1/circuits/amp-schmitt.txt create mode 100644 circuitjs1/circuits/amp-sum.txt create mode 100644 circuitjs1/circuits/analogrecip.txt create mode 100644 circuitjs1/circuits/avr8js-analog.txt create mode 100644 circuitjs1/circuits/avr8js-logic.txt create mode 100644 circuitjs1/circuits/avr8js-strobe.txt create mode 100644 circuitjs1/circuits/bandnoise.txt create mode 100644 circuitjs1/circuits/bandpass.txt create mode 100644 circuitjs1/circuits/besselbutter.txt create mode 100644 circuitjs1/circuits/blank.txt create mode 100644 circuitjs1/circuits/brentkung.txt create mode 100644 circuitjs1/circuits/butter10hi.txt create mode 100644 circuitjs1/circuits/butter10hiaud.txt create mode 100644 circuitjs1/circuits/butter10lo.txt create mode 100644 circuitjs1/circuits/butter10loaud.txt create mode 100644 circuitjs1/circuits/butterbandstop.txt create mode 100644 circuitjs1/circuits/cap.txt create mode 100644 circuitjs1/circuits/capac.txt create mode 100644 circuitjs1/circuits/capmult.txt create mode 100644 circuitjs1/circuits/capmultcaps.txt create mode 100644 circuitjs1/circuits/capmultfreq.txt create mode 100644 circuitjs1/circuits/cappar.txt create mode 100644 circuitjs1/circuits/capseries.txt create mode 100644 circuitjs1/circuits/cc2.txt create mode 100644 circuitjs1/circuits/cc2imp.txt create mode 100644 circuitjs1/circuits/cc2impn.txt create mode 100644 circuitjs1/circuits/cc2n.txt create mode 100644 circuitjs1/circuits/ccdiff.txt create mode 100644 circuitjs1/circuits/cciamp.txt create mode 100644 circuitjs1/circuits/ccinductor.txt create mode 100644 circuitjs1/circuits/ccint.txt create mode 100644 circuitjs1/circuits/ccitov.txt create mode 100644 circuitjs1/circuits/ccvccs.txt create mode 100644 circuitjs1/circuits/ceamp.txt create mode 100644 circuitjs1/circuits/chaos1.txt create mode 100644 circuitjs1/circuits/chaos2.txt create mode 100644 circuitjs1/circuits/chua.txt create mode 100644 circuitjs1/circuits/classd.txt create mode 100644 circuitjs1/circuits/clockedsrff.txt create mode 100644 circuitjs1/circuits/cmosff.txt create mode 100644 circuitjs1/circuits/cmosinverter.txt create mode 100644 circuitjs1/circuits/cmosinvertercap.txt create mode 100644 circuitjs1/circuits/cmosinverterslow.txt create mode 100644 circuitjs1/circuits/cmosmsff.txt create mode 100644 circuitjs1/circuits/cmosnand.txt create mode 100644 circuitjs1/circuits/cmosnor.txt create mode 100644 circuitjs1/circuits/cmostransgate.txt create mode 100644 circuitjs1/circuits/cmosxor.txt create mode 100644 circuitjs1/circuits/colpitts.txt create mode 100644 circuitjs1/circuits/comb.txt create mode 100644 circuitjs1/circuits/conv-boost.txt create mode 100644 circuitjs1/circuits/conv-buck.txt create mode 100644 circuitjs1/circuits/conv-buckboost.txt create mode 100644 circuitjs1/circuits/conv-cuk.txt create mode 100644 circuitjs1/circuits/conv-sepic.txt create mode 100644 circuitjs1/circuits/counter.txt create mode 100644 circuitjs1/circuits/counter8.txt create mode 100644 circuitjs1/circuits/coupled1.txt create mode 100644 circuitjs1/circuits/coupled2.txt create mode 100644 circuitjs1/circuits/coupled3.txt create mode 100644 circuitjs1/circuits/crossover.txt create mode 100644 circuitjs1/circuits/crystalosc.txt create mode 100644 circuitjs1/circuits/crystalosc2.txt create mode 100644 circuitjs1/circuits/cube.txt create mode 100644 circuitjs1/circuits/currentsrc.txt create mode 100644 circuitjs1/circuits/currentsrcelm.txt create mode 100644 circuitjs1/circuits/currentsrcramp.txt create mode 100644 circuitjs1/circuits/dac.txt create mode 100644 circuitjs1/circuits/darlington.txt create mode 100644 circuitjs1/circuits/dcrestoration.txt create mode 100644 circuitjs1/circuits/deccounter.txt create mode 100644 circuitjs1/circuits/decoder.txt create mode 100644 circuitjs1/circuits/delayrc.txt create mode 100644 circuitjs1/circuits/delta-pwm.txt create mode 100644 circuitjs1/circuits/deltasigma.txt create mode 100644 circuitjs1/circuits/diff.txt create mode 100644 circuitjs1/circuits/digcompare.txt create mode 100644 circuitjs1/circuits/digsine.txt create mode 100644 circuitjs1/circuits/diodeclip.txt create mode 100644 circuitjs1/circuits/diodecurve.txt create mode 100644 circuitjs1/circuits/diodelimit.txt create mode 100644 circuitjs1/circuits/diodevar.txt create mode 100644 circuitjs1/circuits/divideby2.txt create mode 100644 circuitjs1/circuits/divideby3.txt create mode 100644 circuitjs1/circuits/dram.txt create mode 100644 circuitjs1/circuits/dtlinverter.txt create mode 100644 circuitjs1/circuits/dtlnand.txt create mode 100644 circuitjs1/circuits/dtlnor.txt create mode 100644 circuitjs1/circuits/early.txt create mode 100644 circuitjs1/circuits/eclnor.txt create mode 100644 circuitjs1/circuits/eclosc.txt create mode 100644 circuitjs1/circuits/edgedff.txt create mode 100644 circuitjs1/circuits/fanout.txt create mode 100644 circuitjs1/circuits/filt-hipass-l.txt create mode 100644 circuitjs1/circuits/filt-hipass.txt create mode 100644 circuitjs1/circuits/filt-lopass-l.txt create mode 100644 circuitjs1/circuits/filt-lopass.txt create mode 100644 circuitjs1/circuits/filt-vcvs-hipass.txt create mode 100644 circuitjs1/circuits/filt-vcvs-lopass.txt create mode 100644 circuitjs1/circuits/flashadc.txt create mode 100644 circuitjs1/circuits/follower.txt create mode 100644 circuitjs1/circuits/freqdouble.txt create mode 100644 circuitjs1/circuits/fulladd.txt create mode 100644 circuitjs1/circuits/fullrect.txt create mode 100644 circuitjs1/circuits/fullrectf.txt create mode 100644 circuitjs1/circuits/gilbertcell.txt create mode 100644 circuitjs1/circuits/graycode.txt create mode 100644 circuitjs1/circuits/grid.txt create mode 100644 circuitjs1/circuits/grid2.txt create mode 100644 circuitjs1/circuits/gyrator.txt create mode 100644 circuitjs1/circuits/halfadd.txt create mode 100644 circuitjs1/circuits/hartley.txt create mode 100644 circuitjs1/circuits/hfadc.txt create mode 100644 circuitjs1/circuits/howland.txt create mode 100644 circuitjs1/circuits/impedance.txt create mode 100644 circuitjs1/circuits/indmultfreq.txt create mode 100644 circuitjs1/circuits/indmultind.txt create mode 100644 circuitjs1/circuits/indpar.txt create mode 100644 circuitjs1/circuits/indseries.txt create mode 100644 circuitjs1/circuits/induct.txt create mode 100644 circuitjs1/circuits/inductac.txt create mode 100644 circuitjs1/circuits/inductkick-block.txt create mode 100644 circuitjs1/circuits/inductkick-snub.txt create mode 100644 circuitjs1/circuits/inductkick.txt create mode 100644 circuitjs1/circuits/inv-osc.txt create mode 100644 circuitjs1/circuits/invertamp.txt create mode 100644 circuitjs1/circuits/itov.txt create mode 100644 circuitjs1/circuits/jerk.txt create mode 100644 circuitjs1/circuits/jfetamp.txt create mode 100644 circuitjs1/circuits/jfetcurrentsrc.txt create mode 100644 circuitjs1/circuits/jfetfollower-nooff.txt create mode 100644 circuitjs1/circuits/jfetfollower.txt create mode 100644 circuitjs1/circuits/jkff.txt create mode 100644 circuitjs1/circuits/johnsonctr.txt create mode 100644 circuitjs1/circuits/joule-thief.txt create mode 100644 circuitjs1/circuits/jsinterface.txt create mode 100644 circuitjs1/circuits/ladder.txt create mode 100644 circuitjs1/circuits/lambda-diode-osc.txt create mode 100644 circuitjs1/circuits/lambda-diode.txt create mode 100644 circuitjs1/circuits/latchingrelay.txt create mode 100644 circuitjs1/circuits/leadingedge.txt create mode 100644 circuitjs1/circuits/ledarray.txt create mode 100644 circuitjs1/circuits/ledflasher.txt create mode 100644 circuitjs1/circuits/lightbulb.txt create mode 100644 circuitjs1/circuits/lissa.txt create mode 100644 circuitjs1/circuits/logconvert.txt create mode 100644 circuitjs1/circuits/longdist.txt create mode 100644 circuitjs1/circuits/lrc-critical.txt create mode 100644 circuitjs1/circuits/lrc.txt create mode 100644 circuitjs1/circuits/majority.txt create mode 100644 circuitjs1/circuits/masterslaveff.txt create mode 100644 circuitjs1/circuits/mirror.txt create mode 100644 circuitjs1/circuits/moscurrentramp.txt create mode 100644 circuitjs1/circuits/moscurrentsrc.txt create mode 100644 circuitjs1/circuits/mosfetamp.txt create mode 100644 circuitjs1/circuits/mosfollower.txt create mode 100644 circuitjs1/circuits/mosmirror.txt create mode 100644 circuitjs1/circuits/mosswitch.txt create mode 100644 circuitjs1/circuits/motorprotect.txt create mode 100644 circuitjs1/circuits/mr-crossbar.txt create mode 100644 circuitjs1/circuits/mr-sine.txt create mode 100644 circuitjs1/circuits/mr-sine2.txt create mode 100644 circuitjs1/circuits/mr-sine3.txt create mode 100644 circuitjs1/circuits/mr-square.txt create mode 100644 circuitjs1/circuits/mr-triangle.txt create mode 100644 circuitjs1/circuits/mr.txt create mode 100644 circuitjs1/circuits/multivib-a.txt create mode 100644 circuitjs1/circuits/multivib-bi.txt create mode 100644 circuitjs1/circuits/multivib-mono.txt create mode 100644 circuitjs1/circuits/mux.txt create mode 100644 circuitjs1/circuits/mux3state.txt create mode 100644 circuitjs1/circuits/nandff.txt create mode 100644 circuitjs1/circuits/nic-r.txt create mode 100644 circuitjs1/circuits/nmosfet.txt create mode 100644 circuitjs1/circuits/nmosinverter.txt create mode 100644 circuitjs1/circuits/nmosinverter2.txt create mode 100644 circuitjs1/circuits/nmosinverter3.txt create mode 100644 circuitjs1/circuits/nmosnand.txt create mode 100644 circuitjs1/circuits/norton.txt create mode 100644 circuitjs1/circuits/notch.txt create mode 100644 circuitjs1/circuits/npn.txt create mode 100644 circuitjs1/circuits/ohms.txt create mode 100644 circuitjs1/circuits/opamp-regulator.txt create mode 100644 circuitjs1/circuits/opamp.txt create mode 100644 circuitjs1/circuits/opampfeedback.txt create mode 100644 circuitjs1/circuits/opint-current.txt create mode 100644 circuitjs1/circuits/opint-invert-amp.txt create mode 100644 circuitjs1/circuits/opint-slew.txt create mode 100644 circuitjs1/circuits/opint.txt create mode 100644 circuitjs1/circuits/ota-gain.txt create mode 100644 circuitjs1/circuits/ota-ringmod.txt create mode 100644 circuitjs1/circuits/ota-vca.txt create mode 100644 circuitjs1/circuits/ota-vcf-single.txt create mode 100644 circuitjs1/circuits/peak-detect.txt create mode 100644 circuitjs1/circuits/phasecomp.txt create mode 100644 circuitjs1/circuits/phasecompint.txt create mode 100644 circuitjs1/circuits/phaseseq.txt create mode 100644 circuitjs1/circuits/phaseshiftosc.txt create mode 100644 circuitjs1/circuits/phasesplit.txt create mode 100644 circuitjs1/circuits/piso-sr.txt create mode 100644 circuitjs1/circuits/pll.txt create mode 100644 circuitjs1/circuits/pll2.txt create mode 100644 circuitjs1/circuits/pll2a.txt create mode 100644 circuitjs1/circuits/pmosfet.txt create mode 100644 circuitjs1/circuits/pnp.txt create mode 100644 circuitjs1/circuits/pot.txt create mode 100644 circuitjs1/circuits/potdivide.txt create mode 100644 circuitjs1/circuits/powerfactor1.txt create mode 100644 circuitjs1/circuits/powerfactor2.txt create mode 100644 circuitjs1/circuits/priencoder.txt create mode 100644 circuitjs1/circuits/pushpull.txt create mode 100644 circuitjs1/circuits/pushpullxover.txt create mode 100644 circuitjs1/circuits/qam-256.txt create mode 100644 circuitjs1/circuits/r2rladder.txt create mode 100644 circuitjs1/circuits/rectify.txt create mode 100644 circuitjs1/circuits/relaxosc.txt create mode 100644 circuitjs1/circuits/relay.txt create mode 100644 circuitjs1/circuits/relayand.txt create mode 100644 circuitjs1/circuits/relayctr.txt create mode 100644 circuitjs1/circuits/relayff.txt create mode 100644 circuitjs1/circuits/relaymux.txt create mode 100644 circuitjs1/circuits/relayor.txt create mode 100644 circuitjs1/circuits/relayosc.txt create mode 100644 circuitjs1/circuits/relays.txt create mode 100644 circuitjs1/circuits/relaytff.txt create mode 100644 circuitjs1/circuits/relayxor.txt create mode 100644 circuitjs1/circuits/res-par.txt create mode 100644 circuitjs1/circuits/res-series.txt create mode 100644 circuitjs1/circuits/resistors.txt create mode 100644 circuitjs1/circuits/ringcascade.txt create mode 100644 circuitjs1/circuits/ringing.txt create mode 100644 circuitjs1/circuits/ringmod.txt create mode 100644 circuitjs1/circuits/rmsconverter.txt create mode 100644 circuitjs1/circuits/rossler.txt create mode 100644 circuitjs1/circuits/rtlinverter.txt create mode 100644 circuitjs1/circuits/rtlnand.txt create mode 100644 circuitjs1/circuits/rtlnor.txt create mode 100644 circuitjs1/circuits/samplenhold.txt create mode 100644 circuitjs1/circuits/sawtooth.txt create mode 100644 circuitjs1/circuits/schmitt.txt create mode 100644 circuitjs1/circuits/scr.txt create mode 100644 circuitjs1/circuits/scractrig.txt create mode 100644 circuitjs1/circuits/sine.txt create mode 100644 circuitjs1/circuits/sinediode.txt create mode 100644 circuitjs1/circuits/sipo-sr.txt create mode 100644 circuitjs1/circuits/spark-marx.txt create mode 100644 circuitjs1/circuits/spark-sawtooth.txt create mode 100644 circuitjs1/circuits/spikegen.txt create mode 100644 circuitjs1/circuits/sram.txt create mode 100644 circuitjs1/circuits/switchedcap.txt create mode 100644 circuitjs1/circuits/switchfilter.txt create mode 100644 circuitjs1/circuits/swtreedac.txt create mode 100644 circuitjs1/circuits/synccounter.txt create mode 100644 circuitjs1/circuits/tdiode.txt create mode 100644 circuitjs1/circuits/tdosc.txt create mode 100644 circuitjs1/circuits/tdrelax.txt create mode 100644 circuitjs1/circuits/tesla.txt create mode 100644 circuitjs1/circuits/thevenin.txt create mode 100644 circuitjs1/circuits/tl.txt create mode 100644 circuitjs1/circuits/tlfreq.txt create mode 100644 circuitjs1/circuits/tllight.txt create mode 100644 circuitjs1/circuits/tllopass.txt create mode 100644 circuitjs1/circuits/tlmatch1.txt create mode 100644 circuitjs1/circuits/tlmatch2.txt create mode 100644 circuitjs1/circuits/tlmis1.txt create mode 100644 circuitjs1/circuits/tlmismatch.txt create mode 100644 circuitjs1/circuits/tlstand.txt create mode 100644 circuitjs1/circuits/tlterm.txt create mode 100644 circuitjs1/circuits/traffic.txt create mode 100644 circuitjs1/circuits/trans-diffamp-common.txt create mode 100644 circuitjs1/circuits/trans-diffamp-cursrc.txt create mode 100644 circuitjs1/circuits/trans-diffamp.txt create mode 100644 circuitjs1/circuits/transformer.txt create mode 100644 circuitjs1/circuits/transformerdc.txt create mode 100644 circuitjs1/circuits/transformerdown.txt create mode 100644 circuitjs1/circuits/transformerup.txt create mode 100644 circuitjs1/circuits/transrectifier.txt create mode 100644 circuitjs1/circuits/transswitch.txt create mode 100644 circuitjs1/circuits/triacdimmer.txt create mode 100644 circuitjs1/circuits/triangle.txt create mode 100644 circuitjs1/circuits/trianglevco.txt create mode 100644 circuitjs1/circuits/triode.txt create mode 100644 circuitjs1/circuits/triodeamp.txt create mode 100644 circuitjs1/circuits/ttlinverter.txt create mode 100644 circuitjs1/circuits/ttlnand.txt create mode 100644 circuitjs1/circuits/ttlnor.txt create mode 100644 circuitjs1/circuits/twint.txt create mode 100644 circuitjs1/circuits/ujtosc.txt create mode 100644 circuitjs1/circuits/unishiftreg.txt create mode 100644 circuitjs1/circuits/updownctr.txt create mode 100644 circuitjs1/circuits/varactor.txt create mode 100644 circuitjs1/circuits/varactorvco.txt create mode 100644 circuitjs1/circuits/vco.txt create mode 100644 circuitjs1/circuits/vilnius.txt create mode 100644 circuitjs1/circuits/voltdivide.txt create mode 100644 circuitjs1/circuits/voltdouble.txt create mode 100644 circuitjs1/circuits/voltdouble2.txt create mode 100644 circuitjs1/circuits/voltinvert.txt create mode 100644 circuitjs1/circuits/voltquad.txt create mode 100644 circuitjs1/circuits/volttriple.txt create mode 100644 circuitjs1/circuits/volume.txt create mode 100644 circuitjs1/circuits/wheatstone.txt create mode 100644 circuitjs1/circuits/wienbridge.txt create mode 100644 circuitjs1/circuits/xor.txt create mode 100644 circuitjs1/circuits/xorphasedet.txt create mode 100644 circuitjs1/circuits/zeneriv.txt create mode 100644 circuitjs1/circuits/zenerref.txt create mode 100644 circuitjs1/circuits/zenerreffollow.txt create mode 100644 circuitjs1/clear.cache.gif create mode 100644 circuitjs1/compilation-mappings.txt create mode 100644 circuitjs1/gwt/clean/clean.css create mode 100644 circuitjs1/gwt/clean/clean_rtl.css create mode 100644 circuitjs1/gwt/clean/images/circles.png create mode 100644 circuitjs1/gwt/clean/images/corner.png create mode 100644 circuitjs1/gwt/clean/images/hborder.png create mode 100644 circuitjs1/gwt/clean/images/thumb_horz.png create mode 100644 circuitjs1/gwt/clean/images/thumb_vertical.png create mode 100644 circuitjs1/gwt/clean/images/vborder.png create mode 100644 circuitjs1/img/subcircuits/subcircuit-pins1.png create mode 100644 circuitjs1/img/subcircuits/subcircuit-pins2.png create mode 100644 circuitjs1/locale_csx.txt create mode 100644 circuitjs1/locale_da.txt create mode 100644 circuitjs1/locale_de.txt create mode 100644 circuitjs1/locale_es.txt create mode 100644 circuitjs1/locale_fr.txt create mode 100644 circuitjs1/locale_it.txt create mode 100644 circuitjs1/locale_ja.txt create mode 100644 circuitjs1/locale_nb.txt create mode 100644 circuitjs1/locale_pl.txt create mode 100644 circuitjs1/locale_pt.txt create mode 100644 circuitjs1/locale_ru.txt create mode 100644 circuitjs1/locale_zh-tw.txt create mode 100644 circuitjs1/locale_zh.txt create mode 100644 circuitjs1/setuplist.txt create mode 100644 circuitjs1/style.css create mode 100644 crystal.html create mode 100644 customfunction.html create mode 100644 customlogic.html create mode 100644 customtransformer.html create mode 100644 diodecalc.html create mode 100644 doc/AudioInput.html create mode 100644 doc/DataInput.html create mode 100644 doc/DelayBuffer.html create mode 100644 doc/circuits.html create mode 100644 doc/customfunction.html create mode 100644 doc/customlogic.html create mode 100644 doc/customtransformer.html create mode 100644 doc/index.html create mode 100644 doc/js-interface.html create mode 100644 doc/opampreal.html create mode 100644 doc/overview.html create mode 100644 doc/subcircuit-pins1.png create mode 100644 doc/subcircuit-pins2.png create mode 100644 doc/subcircuits.html create mode 100644 doc/toc.html create mode 100644 doc/welcome.html create mode 100644 font/LICENSE.txt create mode 100644 font/config.json create mode 100644 font/fontello.css create mode 100644 font/fontello.eot create mode 100644 font/fontello.svg create mode 100644 font/fontello.ttf create mode 100644 font/fontello.woff create mode 100644 font/fontello.woff2 create mode 100644 font/webfontlicense.html create mode 100644 icon1024.png create mode 100644 icon128.png create mode 100644 icon512.png create mode 100644 iframe.html create mode 100644 jsinterface.html create mode 100644 lz-string.min.js create mode 100644 manifest.json create mode 100644 mosfet-beta.html create mode 100644 opampreal.html create mode 100644 service-worker.js create mode 100644 shortrelay.php create mode 100644 subcircuits.html diff --git a/about.html b/about.html new file mode 100644 index 0000000..d79966b --- /dev/null +++ b/about.html @@ -0,0 +1,63 @@ + + +
+

Circuit Simulator version .

+

Original by Paul Falstad.
http://www.falstad.com/

+

JavaScript conversion by Iain Sharp.
http://lushprojects.com/

+

GitHub link to report issues and view source code: https://github.com/pfalstad/circuitjs1

+

Thanks to: Edward Calver for 15 new components and other improvements; +Rodrigo Hausen for file import/export and many other UI improvements; +J. Mike Rollins for the Zener diode code; +Julius Schmidt for the spark gap code and some examples; +Dustin Soodak for help with the user interface improvements; +Jacob Calvert for the T Flip Flop; Ben Hayden for scope spectrum; +Francisco Campos for the DC Motor; +Bill Collis for the thermistor and LDR; +Mark McGarry for AVR8js support; Uri Shaked for AVR8js; +Johannes Bauer for WebSocket support; +Thomas Reitinger, Krystian Sławiński, Usevalad Khatkevich, Lucio Sciamanna, Mauro Hemerly Gazzani, J. Miguel Silva, Kristian Keilen, Linhart Jiří, Karel Kupa, Franck Viard, David Chen, Taisuke Fukuno, 肖国栋 (Gordon Shaw), 王逸伦, Pablo Sanz Martin for translations; +Andre Adrian for improved emitter coupled oscillator; Felthry for many examples; Colin Howell for code improvements. LZString (c) 2013 pieroxy.

+

This program uses free icons. For more information, please read the list of authors and licenses of these icons and webfonts.

+

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

+

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

+

For details of licensing see http://www.gnu.org/licenses/.

+

Source code (Paul):https://github.com/pfalstad/circuitjs1

+

Source code (Iain):https://github.com/sharpie7/circuitjs1

+

+Copyright (c) 1985-1991 The Regents of the University of California. +All rights reserved.

+

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF +CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN +"AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE +MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +

canvas2svg: Copyright (c) 2014 Gliffy Inc.

+ +

+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ +
+ diff --git a/avr8js/analog.html b/avr8js/analog.html new file mode 100644 index 0000000..6aa5a09 --- /dev/null +++ b/avr8js/analog.html @@ -0,0 +1,33 @@ +AVR8js CircuitJS1 Demo

AVR8js CircuitJS1 Demo

+ + +

LED strobe, Logic, Analog Read

+ +
+

Click Run below to start the simulation.

+
 
 
+ diff --git a/avr8js/index.html b/avr8js/index.html new file mode 100644 index 0000000..6158dd7 --- /dev/null +++ b/avr8js/index.html @@ -0,0 +1,38 @@ +AVR8js CircuitJS1 Demo

AVR8js CircuitJS1 Demo

+ + +

LED strobe, Logic, Analog Read

+ +
+

Click Run below to start the simulation.

+
 
 
diff --git a/avr8js/logic.html b/avr8js/logic.html new file mode 100644 index 0000000..a790939 --- /dev/null +++ b/avr8js/logic.html @@ -0,0 +1,33 @@ +AVR8js CircuitJS1 Demo

AVR8js CircuitJS1 Demo

+ + +

LED strobe, Logic, Analog Read

+ +
+

Click Run below to start the simulation.

+
 
 
diff --git a/avr8js/src.avr8js.css b/avr8js/src.avr8js.css new file mode 100644 index 0000000..b11a1be --- /dev/null +++ b/avr8js/src.avr8js.css @@ -0,0 +1,55 @@ +body { + padding: 0 16px; + font-family: 'Roboto', sans-serif; + width: 100%; + box-sizing: border-box; +} + +.app-container { + width: 700px; + max-width: 100%; +} + +.toolbar { + padding: 4px; + display: flex; + background-color: #ddd; + box-sizing: border-box; + width: 100%; +} + +.toolbar > button { + margin-right: 4px; +} + +.spacer { + flex: 1; +} + +.code-editor { + width: 100%; + max-width: 100%; + height: 300px; + box-sizing: border-box; + border: 1px solid grey; +} + +.compiler-output { + width: 100%; + box-sizing: border-box; + padding: 8px 12px; + max-height: 160px; + overflow: auto; +} + +.compiler-output pre { + margin: 0; + white-space: pre-line; +} + +#serial-output-text { + color: blue; +} + + +/*# sourceMappingURL=/src.77de5100.css.map */ \ No newline at end of file diff --git a/avr8js/src.avr8js.css.map b/avr8js/src.avr8js.css.map new file mode 100644 index 0000000..9a7b7d4 --- /dev/null +++ b/avr8js/src.avr8js.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"src.77de5100.css","sourceRoot":"../src","sourcesContent":["body {\n padding: 0 16px;\n font-family: 'Roboto', sans-serif;\n width: 100%;\n box-sizing: border-box;\n}\n\n.app-container {\n width: 700px;\n max-width: 100%;\n}\n\n.toolbar {\n padding: 4px;\n display: flex;\n background-color: #ddd;\n box-sizing: border-box;\n width: 100%;\n}\n\n.toolbar > button {\n margin-right: 4px;\n}\n\n.spacer {\n flex: 1;\n}\n\n.code-editor {\n width: 100%;\n max-width: 100%;\n height: 300px;\n box-sizing: border-box;\n border: 1px solid grey;\n}\n\n.compiler-output {\n width: 100%;\n box-sizing: border-box;\n padding: 8px 12px;\n max-height: 160px;\n overflow: auto;\n}\n\n.compiler-output pre {\n margin: 0;\n white-space: pre-line;\n}\n\n#serial-output-text {\n color: blue;\n}\n"]} \ No newline at end of file diff --git a/avr8js/src.avr8js.js b/avr8js/src.avr8js.js new file mode 100644 index 0000000..815ce11 --- /dev/null +++ b/avr8js/src.avr8js.js @@ -0,0 +1,11640 @@ +// modules are defined as an array +// [ module function, map of requires ] +// +// map of requires is short require name -> numeric require +// +// anything defined in a previous bundle is accessed via the +// orig method which is the require for previous bundles +parcelRequire = (function (modules, cache, entry, globalName) { + // Save the require from previous bundle to this closure if any + var previousRequire = typeof parcelRequire === 'function' && parcelRequire; + var nodeRequire = typeof require === 'function' && require; + + function newRequire(name, jumped) { + if (!cache[name]) { + if (!modules[name]) { + // if we cannot find the module within our internal map or + // cache jump to the current global require ie. the last bundle + // that was added to the page. + var currentRequire = typeof parcelRequire === 'function' && parcelRequire; + if (!jumped && currentRequire) { + return currentRequire(name, true); + } + + // If there are other bundles on this page the require from the + // previous one is saved to 'previousRequire'. Repeat this as + // many times as there are bundles until the module is found or + // we exhaust the require chain. + if (previousRequire) { + return previousRequire(name, true); + } + + // Try the node require function if it exists. + if (nodeRequire && typeof name === 'string') { + return nodeRequire(name); + } + + var err = new Error('Cannot find module \'' + name + '\''); + err.code = 'MODULE_NOT_FOUND'; + throw err; + } + + localRequire.resolve = resolve; + localRequire.cache = {}; + + var module = cache[name] = new newRequire.Module(name); + + modules[name][0].call(module.exports, localRequire, module, module.exports, this); + } + + return cache[name].exports; + + function localRequire(x){ + return newRequire(localRequire.resolve(x)); + } + + function resolve(x){ + return modules[name][1][x] || x; + } + } + + function Module(moduleName) { + this.id = moduleName; + this.bundle = newRequire; + this.exports = {}; + } + + newRequire.isParcelRequire = true; + newRequire.Module = Module; + newRequire.modules = modules; + newRequire.cache = cache; + newRequire.parent = previousRequire; + newRequire.register = function (id, exports) { + modules[id] = [function (require, module) { + module.exports = exports; + }, {}]; + }; + + var error; + for (var i = 0; i < entry.length; i++) { + try { + newRequire(entry[i]); + } catch (e) { + // Save first error but execute all entries + if (!error) { + error = e; + } + } + } + + if (entry.length) { + // Expose entry point to Node, AMD or browser globals + // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js + var mainExports = newRequire(entry[entry.length - 1]); + + // CommonJS + if (typeof exports === "object" && typeof module !== "undefined") { + module.exports = mainExports; + + // RequireJS + } else if (typeof define === "function" && define.amd) { + define(function () { + return mainExports; + }); + + // + + + \ No newline at end of file diff --git a/canvas2svg.js b/canvas2svg.js new file mode 100644 index 0000000..c70fa06 --- /dev/null +++ b/canvas2svg.js @@ -0,0 +1,1254 @@ +/*!! + * Canvas 2 Svg v1.0.19 + * A low level canvas to SVG converter. Uses a mock canvas context to build an SVG document. + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * + * Author: + * Kerry Liu + * + * Copyright (c) 2014 Gliffy Inc. + */ + +;(function () { + "use strict"; + + var STYLES, ctx, CanvasGradient, CanvasPattern, namedEntities; + + //helper function to format a string + function format(str, args) { + var keys = Object.keys(args), i; + for (i=0; i 1) { + options = defaultOptions; + options.width = arguments[0]; + options.height = arguments[1]; + } else if ( !o ) { + options = defaultOptions; + } else { + options = o; + } + + if (!(this instanceof ctx)) { + //did someone call this without new? + return new ctx(options); + } + + //setup options + this.width = options.width || defaultOptions.width; + this.height = options.height || defaultOptions.height; + this.enableMirroring = options.enableMirroring !== undefined ? options.enableMirroring : defaultOptions.enableMirroring; + + this.canvas = this; ///point back to this instance! + this.__document = options.document || document; + + // allow passing in an existing context to wrap around + // if a context is passed in, we know a canvas already exist + if (options.ctx) { + this.__ctx = options.ctx; + } else { + this.__canvas = this.__document.createElement("canvas"); + this.__ctx = this.__canvas.getContext("2d"); + } + + this.__setDefaultStyles(); + this.__stack = [this.__getStyleState()]; + this.__groupStack = []; + + //the root svg element + this.__root = this.__document.createElementNS("http://www.w3.org/2000/svg", "svg"); + this.__root.setAttribute("version", 1.1); + this.__root.setAttribute("xmlns", "http://www.w3.org/2000/svg"); + this.__root.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"); + this.__root.setAttribute("width", this.width); + this.__root.setAttribute("height", this.height); + + //make sure we don't generate the same ids in defs + this.__ids = {}; + + //defs tag + this.__defs = this.__document.createElementNS("http://www.w3.org/2000/svg", "defs"); + this.__root.appendChild(this.__defs); + + //also add a group child. the svg element can't use the transform attribute + this.__currentElement = this.__document.createElementNS("http://www.w3.org/2000/svg", "g"); + this.__root.appendChild(this.__currentElement); + }; + + + /** + * Creates the specified svg element + * @private + */ + ctx.prototype.__createElement = function (elementName, properties, resetFill) { + if (typeof properties === "undefined") { + properties = {}; + } + + var element = this.__document.createElementNS("http://www.w3.org/2000/svg", elementName), + keys = Object.keys(properties), i, key; + if (resetFill) { + //if fill or stroke is not specified, the svg element should not display. By default SVG's fill is black. + element.setAttribute("fill", "none"); + element.setAttribute("stroke", "none"); + } + for (i=0; i 0) { + if (this.__currentElement.nodeName === "path") { + if (!this.__currentElementsToStyle) this.__currentElementsToStyle = {element: parent, children: []}; + this.__currentElementsToStyle.children.push(this.__currentElement) + this.__applyCurrentDefaultPath(); + } + + var group = this.__createElement("g"); + parent.appendChild(group); + this.__currentElement = group; + } + + var transform = this.__currentElement.getAttribute("transform"); + if (transform) { + transform += " "; + } else { + transform = ""; + } + transform += t; + this.__currentElement.setAttribute("transform", transform); + }; + + /** + * scales the current element + */ + ctx.prototype.scale = function (x, y) { + if (y === undefined) { + y = x; + } + this.__addTransform(format("scale({x},{y})", {x:x, y:y})); + }; + + /** + * rotates the current element + */ + ctx.prototype.rotate = function (angle) { + var degrees = (angle * 180 / Math.PI); + this.__addTransform(format("rotate({angle},{cx},{cy})", {angle:degrees, cx:0, cy:0})); + }; + + /** + * translates the current element + */ + ctx.prototype.translate = function (x, y) { + this.__addTransform(format("translate({x},{y})", {x:x,y:y})); + }; + + /** + * applies a transform to the current element + */ + ctx.prototype.transform = function (a, b, c, d, e, f) { + this.__addTransform(format("matrix({a},{b},{c},{d},{e},{f})", {a:a, b:b, c:c, d:d, e:e, f:f})); + }; + + /** + * Create a new Path Element + */ + ctx.prototype.beginPath = function () { + var path, parent; + + // Note that there is only one current default path, it is not part of the drawing state. + // See also: https://html.spec.whatwg.org/multipage/scripting.html#current-default-path + this.__currentDefaultPath = ""; + this.__currentPosition = {}; + + path = this.__createElement("path", {}, true); + parent = this.__closestGroupOrSvg(); + parent.appendChild(path); + this.__currentElement = path; + }; + + /** + * Helper function to apply currentDefaultPath to current path element + * @private + */ + ctx.prototype.__applyCurrentDefaultPath = function () { + var currentElement = this.__currentElement; + if (currentElement.nodeName === "path") { + currentElement.setAttribute("d", this.__currentDefaultPath); + } else { + console.error("Attempted to apply path command to node", currentElement.nodeName); + } + }; + + /** + * Helper function to add path command + * @private + */ + ctx.prototype.__addPathCommand = function (command) { + this.__currentDefaultPath += " "; + this.__currentDefaultPath += command; + }; + + /** + * Adds the move command to the current path element, + * if the currentPathElement is not empty create a new path element + */ + ctx.prototype.moveTo = function (x,y) { + if (this.__currentElement.nodeName !== "path") { + this.beginPath(); + } + + // creates a new subpath with the given point + this.__currentPosition = {x: x, y: y}; + this.__addPathCommand(format("M {x} {y}", {x:x, y:y})); + }; + + /** + * Closes the current path + */ + ctx.prototype.closePath = function () { + if (this.__currentDefaultPath) { + this.__addPathCommand("Z"); + } + }; + + /** + * Adds a line to command + */ + ctx.prototype.lineTo = function (x, y) { + this.__currentPosition = {x: x, y: y}; + if (this.__currentDefaultPath.indexOf('M') > -1) { + this.__addPathCommand(format("L {x} {y}", {x:x, y:y})); + } else { + this.__addPathCommand(format("M {x} {y}", {x:x, y:y})); + } + }; + + /** + * Add a bezier command + */ + ctx.prototype.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) { + this.__currentPosition = {x: x, y: y}; + this.__addPathCommand(format("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}", + {cp1x:cp1x, cp1y:cp1y, cp2x:cp2x, cp2y:cp2y, x:x, y:y})); + }; + + /** + * Adds a quadratic curve to command + */ + ctx.prototype.quadraticCurveTo = function (cpx, cpy, x, y) { + this.__currentPosition = {x: x, y: y}; + this.__addPathCommand(format("Q {cpx} {cpy} {x} {y}", {cpx:cpx, cpy:cpy, x:x, y:y})); + }; + + + /** + * Return a new normalized vector of given vector + */ + var normalize = function (vector) { + var len = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]); + return [vector[0] / len, vector[1] / len]; + }; + + /** + * Adds the arcTo to the current path + * + * @see http://www.w3.org/TR/2015/WD-2dcontext-20150514/#dom-context-2d-arcto + */ + ctx.prototype.arcTo = function (x1, y1, x2, y2, radius) { + // Let the point (x0, y0) be the last point in the subpath. + var x0 = this.__currentPosition && this.__currentPosition.x; + var y0 = this.__currentPosition && this.__currentPosition.y; + + // First ensure there is a subpath for (x1, y1). + if (typeof x0 == "undefined" || typeof y0 == "undefined") { + return; + } + + // Negative values for radius must cause the implementation to throw an IndexSizeError exception. + if (radius < 0) { + throw new Error("IndexSizeError: The radius provided (" + radius + ") is negative."); + } + + // If the point (x0, y0) is equal to the point (x1, y1), + // or if the point (x1, y1) is equal to the point (x2, y2), + // or if the radius radius is zero, + // then the method must add the point (x1, y1) to the subpath, + // and connect that point to the previous point (x0, y0) by a straight line. + if (((x0 === x1) && (y0 === y1)) + || ((x1 === x2) && (y1 === y2)) + || (radius === 0)) { + this.lineTo(x1, y1); + return; + } + + // Otherwise, if the points (x0, y0), (x1, y1), and (x2, y2) all lie on a single straight line, + // then the method must add the point (x1, y1) to the subpath, + // and connect that point to the previous point (x0, y0) by a straight line. + var unit_vec_p1_p0 = normalize([x0 - x1, y0 - y1]); + var unit_vec_p1_p2 = normalize([x2 - x1, y2 - y1]); + if (unit_vec_p1_p0[0] * unit_vec_p1_p2[1] === unit_vec_p1_p0[1] * unit_vec_p1_p2[0]) { + this.lineTo(x1, y1); + return; + } + + // Otherwise, let The Arc be the shortest arc given by circumference of the circle that has radius radius, + // and that has one point tangent to the half-infinite line that crosses the point (x0, y0) and ends at the point (x1, y1), + // and that has a different point tangent to the half-infinite line that ends at the point (x1, y1), and crosses the point (x2, y2). + // The points at which this circle touches these two lines are called the start and end tangent points respectively. + + // note that both vectors are unit vectors, so the length is 1 + var cos = (unit_vec_p1_p0[0] * unit_vec_p1_p2[0] + unit_vec_p1_p0[1] * unit_vec_p1_p2[1]); + var theta = Math.acos(Math.abs(cos)); + + // Calculate origin + var unit_vec_p1_origin = normalize([ + unit_vec_p1_p0[0] + unit_vec_p1_p2[0], + unit_vec_p1_p0[1] + unit_vec_p1_p2[1] + ]); + var len_p1_origin = radius / Math.sin(theta / 2); + var x = x1 + len_p1_origin * unit_vec_p1_origin[0]; + var y = y1 + len_p1_origin * unit_vec_p1_origin[1]; + + // Calculate start angle and end angle + // rotate 90deg clockwise (note that y axis points to its down) + var unit_vec_origin_start_tangent = [ + -unit_vec_p1_p0[1], + unit_vec_p1_p0[0] + ]; + // rotate 90deg counter clockwise (note that y axis points to its down) + var unit_vec_origin_end_tangent = [ + unit_vec_p1_p2[1], + -unit_vec_p1_p2[0] + ]; + var getAngle = function (vector) { + // get angle (clockwise) between vector and (1, 0) + var x = vector[0]; + var y = vector[1]; + if (y >= 0) { // note that y axis points to its down + return Math.acos(x); + } else { + return -Math.acos(x); + } + }; + var startAngle = getAngle(unit_vec_origin_start_tangent); + var endAngle = getAngle(unit_vec_origin_end_tangent); + + // Connect the point (x0, y0) to the start tangent point by a straight line + this.lineTo(x + unit_vec_origin_start_tangent[0] * radius, + y + unit_vec_origin_start_tangent[1] * radius); + + // Connect the start tangent point to the end tangent point by arc + // and adding the end tangent point to the subpath. + this.arc(x, y, radius, startAngle, endAngle); + }; + + /** + * Sets the stroke property on the current element + */ + ctx.prototype.stroke = function () { + if (this.__currentElement.nodeName === "path") { + this.__currentElement.setAttribute("paint-order", "fill stroke markers"); + } + this.__applyCurrentDefaultPath(); + this.__applyStyleToCurrentElement("stroke"); + }; + + /** + * Sets fill properties on the current element + */ + ctx.prototype.fill = function () { + if (this.__currentElement.nodeName === "path") { + this.__currentElement.setAttribute("paint-order", "stroke fill markers"); + } + this.__applyCurrentDefaultPath(); + this.__applyStyleToCurrentElement("fill"); + }; + + /** + * Adds a rectangle to the path. + */ + ctx.prototype.rect = function (x, y, width, height) { + if (this.__currentElement.nodeName !== "path") { + this.beginPath(); + } + this.moveTo(x, y); + this.lineTo(x+width, y); + this.lineTo(x+width, y+height); + this.lineTo(x, y+height); + this.lineTo(x, y); + this.closePath(); + }; + + + /** + * adds a rectangle element + */ + ctx.prototype.fillRect = function (x, y, width, height) { + var rect, parent; + rect = this.__createElement("rect", { + x : x, + y : y, + width : width, + height : height + }, true); + parent = this.__closestGroupOrSvg(); + parent.appendChild(rect); + this.__currentElement = rect; + this.__applyStyleToCurrentElement("fill"); + }; + + /** + * Draws a rectangle with no fill + * @param x + * @param y + * @param width + * @param height + */ + ctx.prototype.strokeRect = function (x, y, width, height) { + var rect, parent; + rect = this.__createElement("rect", { + x : x, + y : y, + width : width, + height : height + }, true); + parent = this.__closestGroupOrSvg(); + parent.appendChild(rect); + this.__currentElement = rect; + this.__applyStyleToCurrentElement("stroke"); + }; + + + /** + * Clear entire canvas: + * 1. save current transforms + * 2. remove all the childNodes of the root g element + */ + ctx.prototype.__clearCanvas = function () { + var current = this.__closestGroupOrSvg(), + transform = current.getAttribute("transform"); + var rootGroup = this.__root.childNodes[1]; + var childNodes = rootGroup.childNodes; + for (var i = childNodes.length - 1; i >= 0; i--) { + if (childNodes[i]) { + rootGroup.removeChild(childNodes[i]); + } + } + this.__currentElement = rootGroup; + //reset __groupStack as all the child group nodes are all removed. + this.__groupStack = []; + if (transform) { + this.__addTransform(transform); + } + }; + + /** + * "Clears" a canvas by just drawing a white rectangle in the current group. + */ + ctx.prototype.clearRect = function (x, y, width, height) { + //clear entire canvas + if (x === 0 && y === 0 && width === this.width && height === this.height) { + this.__clearCanvas(); + return; + } + var rect, parent = this.__closestGroupOrSvg(); + rect = this.__createElement("rect", { + x : x, + y : y, + width : width, + height : height, + fill : "#FFFFFF" + }, true); + parent.appendChild(rect); + }; + + /** + * Adds a linear gradient to a defs tag. + * Returns a canvas gradient object that has a reference to it's parent def + */ + ctx.prototype.createLinearGradient = function (x1, y1, x2, y2) { + var grad = this.__createElement("linearGradient", { + id : randomString(this.__ids), + x1 : x1+"px", + x2 : x2+"px", + y1 : y1+"px", + y2 : y2+"px", + "gradientUnits" : "userSpaceOnUse" + }, false); + this.__defs.appendChild(grad); + return new CanvasGradient(grad, this); + }; + + /** + * Adds a radial gradient to a defs tag. + * Returns a canvas gradient object that has a reference to it's parent def + */ + ctx.prototype.createRadialGradient = function (x0, y0, r0, x1, y1, r1) { + var grad = this.__createElement("radialGradient", { + id : randomString(this.__ids), + cx : x1+"px", + cy : y1+"px", + r : r1+"px", + fx : x0+"px", + fy : y0+"px", + "gradientUnits" : "userSpaceOnUse" + }, false); + this.__defs.appendChild(grad); + return new CanvasGradient(grad, this); + + }; + + /** + * Parses the font string and returns svg mapping + * @private + */ + ctx.prototype.__parseFont = function () { + var regex = /^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-,\'\"\sa-z0-9]+?)\s*$/i; + var fontPart = regex.exec( this.font ); + var data = { + style : fontPart[1] || 'normal', + size : fontPart[4] || '10px', + family : fontPart[6] || 'sans-serif', + weight: fontPart[3] || 'normal', + decoration : fontPart[2] || 'normal', + href : null + }; + + //canvas doesn't support underline natively, but we can pass this attribute + if (this.__fontUnderline === "underline") { + data.decoration = "underline"; + } + + //canvas also doesn't support linking, but we can pass this as well + if (this.__fontHref) { + data.href = this.__fontHref; + } + + return data; + }; + + /** + * Helper to link text fragments + * @param font + * @param element + * @return {*} + * @private + */ + ctx.prototype.__wrapTextLink = function (font, element) { + if (font.href) { + var a = this.__createElement("a"); + a.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", font.href); + a.appendChild(element); + return a; + } + return element; + }; + + /** + * Fills or strokes text + * @param text + * @param x + * @param y + * @param action - stroke or fill + * @private + */ + ctx.prototype.__applyText = function (text, x, y, action) { + var font = this.__parseFont(), + parent = this.__closestGroupOrSvg(), + textElement = this.__createElement("text", { + "font-family" : font.family, + "font-size" : font.size, + "font-style" : font.style, + "font-weight" : font.weight, + "text-decoration" : font.decoration, + "x" : x, + "y" : y, + "text-anchor": getTextAnchor(this.textAlign), + "dominant-baseline": getDominantBaseline(this.textBaseline) + }, true); + + textElement.appendChild(this.__document.createTextNode(text)); + this.__currentElement = textElement; + this.__applyStyleToCurrentElement(action); + parent.appendChild(this.__wrapTextLink(font,textElement)); + }; + + /** + * Creates a text element + * @param text + * @param x + * @param y + */ + ctx.prototype.fillText = function (text, x, y) { + this.__applyText(text, x, y, "fill"); + }; + + /** + * Strokes text + * @param text + * @param x + * @param y + */ + ctx.prototype.strokeText = function (text, x, y) { + this.__applyText(text, x, y, "stroke"); + }; + + /** + * No need to implement this for svg. + * @param text + * @return {TextMetrics} + */ + ctx.prototype.measureText = function (text) { + this.__ctx.font = this.font; + return this.__ctx.measureText(text); + }; + + /** + * Arc command! + */ + ctx.prototype.arc = function (x, y, radius, startAngle, endAngle, counterClockwise) { + // in canvas no circle is drawn if no angle is provided. + if (startAngle === endAngle) { + return; + } + startAngle = startAngle % (2*Math.PI); + endAngle = endAngle % (2*Math.PI); + if (endAngle == 6.28318) endAngle = 6.27; // fix for missing posts + if (startAngle === endAngle) { + //circle time! subtract some of the angle so svg is happy (svg elliptical arc can't draw a full circle) + endAngle = ((endAngle + (2*Math.PI)) - 0.001 * (counterClockwise ? -1 : 1)) % (2*Math.PI); + } + var endX = x+radius*Math.cos(endAngle), + endY = y+radius*Math.sin(endAngle), + startX = x+radius*Math.cos(startAngle), + startY = y+radius*Math.sin(startAngle), + sweepFlag = counterClockwise ? 0 : 1, + largeArcFlag = 0, + diff = endAngle - startAngle; + + // https://github.com/gliffy/canvas2svg/issues/4 + if (diff < 0) { + diff += 2*Math.PI; + } + + if (counterClockwise) { + largeArcFlag = diff > Math.PI ? 0 : 1; + } else { + largeArcFlag = diff > Math.PI ? 1 : 0; + } + + this.lineTo(startX, startY); + this.__addPathCommand(format("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}", + {rx:radius, ry:radius, xAxisRotation:0, largeArcFlag:largeArcFlag, sweepFlag:sweepFlag, endX:endX, endY:endY})); + + this.__currentPosition = {x: endX, y: endY}; + }; + + // simple implementation of ellipse. rotation is not supported + ctx.prototype.ellipse = function (x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterClockwise) { + // in canvas no circle is drawn if no angle is provided. + if (startAngle === endAngle) { + return; + } + startAngle = startAngle % (2*Math.PI); + endAngle = endAngle % (2*Math.PI); + if (startAngle === endAngle) { + //circle time! subtract some of the angle so svg is happy (svg elliptical arc can't draw a full circle) + endAngle = ((endAngle + (2*Math.PI)) - 0.001 * (counterClockwise ? -1 : 1)) % (2*Math.PI); + } + var endX = x+radiusX*Math.cos(endAngle), + endY = y+radiusY*Math.sin(endAngle), + startX = x+radiusX*Math.cos(startAngle), + startY = y+radiusY*Math.sin(startAngle), + sweepFlag = counterClockwise ? 0 : 1, + largeArcFlag = 0, + diff = endAngle - startAngle; + + // https://github.com/gliffy/canvas2svg/issues/4 + if (diff < 0) { + diff += 2*Math.PI; + } + + if (counterClockwise) { + largeArcFlag = diff > Math.PI ? 0 : 1; + } else { + largeArcFlag = diff > Math.PI ? 1 : 0; + } + + this.lineTo(startX, startY); + this.__addPathCommand(format("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}", + {rx:radiusX, ry:radiusY, xAxisRotation:0, largeArcFlag:largeArcFlag, sweepFlag:sweepFlag, endX:endX, endY:endY})); + + this.__currentPosition = {x: endX, y: endY}; + }; + + /** + * Generates a ClipPath from the clip command. + */ + ctx.prototype.clip = function () { + var group = this.__closestGroupOrSvg(), + clipPath = this.__createElement("clipPath"), + id = randomString(this.__ids), + newGroup = this.__createElement("g"); + + this.__applyCurrentDefaultPath(); + group.removeChild(this.__currentElement); + clipPath.setAttribute("id", id); + clipPath.appendChild(this.__currentElement); + + this.__defs.appendChild(clipPath); + + //set the clip path to this group + group.setAttribute("clip-path", format("url(#{id})", {id:id})); + + //clip paths can be scaled and transformed, we need to add another wrapper group to avoid later transformations + // to this path + group.appendChild(newGroup); + + this.__currentElement = newGroup; + + }; + + /** + * Draws a canvas, image or mock context to this canvas. + * Note that all svg dom manipulation uses node.childNodes rather than node.children for IE support. + * http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-drawimage + */ + ctx.prototype.drawImage = function () { + //convert arguments to a real array + var args = Array.prototype.slice.call(arguments), + image=args[0], + dx, dy, dw, dh, sx=0, sy=0, sw, sh, parent, svg, defs, group, + currentElement, svgImage, canvas, context, id; + + if (args.length === 3) { + dx = args[1]; + dy = args[2]; + sw = image.width; + sh = image.height; + dw = sw; + dh = sh; + } else if (args.length === 5) { + dx = args[1]; + dy = args[2]; + dw = args[3]; + dh = args[4]; + sw = image.width; + sh = image.height; + } else if (args.length === 9) { + sx = args[1]; + sy = args[2]; + sw = args[3]; + sh = args[4]; + dx = args[5]; + dy = args[6]; + dw = args[7]; + dh = args[8]; + } else { + throw new Error("Invalid number of arguments passed to drawImage: " + arguments.length); + } + + parent = this.__closestGroupOrSvg(); + currentElement = this.__currentElement; + var translateDirective = "translate(" + dx + ", " + dy + ")"; + if (image instanceof ctx) { + //canvas2svg mock canvas context. In the future we may want to clone nodes instead. + //also I'm currently ignoring dw, dh, sw, sh, sx, sy for a mock context. + svg = image.getSvg().cloneNode(true); + if (svg.childNodes && svg.childNodes.length > 1) { + defs = svg.childNodes[0]; + while(defs.childNodes.length) { + id = defs.childNodes[0].getAttribute("id"); + this.__ids[id] = id; + this.__defs.appendChild(defs.childNodes[0]); + } + group = svg.childNodes[1]; + if (group) { + //save original transform + var originTransform = group.getAttribute("transform"); + var transformDirective; + if (originTransform) { + transformDirective = originTransform+" "+translateDirective; + } else { + transformDirective = translateDirective; + } + group.setAttribute("transform", transformDirective); + parent.appendChild(group); + } + } + } else if (image.nodeName === "CANVAS" || image.nodeName === "IMG") { + //canvas or image + svgImage = this.__createElement("image"); + svgImage.setAttribute("width", dw); + svgImage.setAttribute("height", dh); + svgImage.setAttribute("preserveAspectRatio", "none"); + + if (sx || sy || sw !== image.width || sh !== image.height) { + //crop the image using a temporary canvas + canvas = this.__document.createElement("canvas"); + canvas.width = dw; + canvas.height = dh; + context = canvas.getContext("2d"); + context.drawImage(image, sx, sy, sw, sh, 0, 0, dw, dh); + image = canvas; + } + svgImage.setAttribute("transform", translateDirective); + svgImage.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", + image.nodeName === "CANVAS" ? image.toDataURL() : image.getAttribute("src")); + parent.appendChild(svgImage); + } + }; + + /** + * Generates a pattern tag + */ + ctx.prototype.createPattern = function (image, repetition) { + var pattern = this.__document.createElementNS("http://www.w3.org/2000/svg", "pattern"), id = randomString(this.__ids), + img; + pattern.setAttribute("id", id); + pattern.setAttribute("width", image.width); + pattern.setAttribute("height", image.height); + if (image.nodeName === "CANVAS" || image.nodeName === "IMG") { + img = this.__document.createElementNS("http://www.w3.org/2000/svg", "image"); + img.setAttribute("width", image.width); + img.setAttribute("height", image.height); + img.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", + image.nodeName === "CANVAS" ? image.toDataURL() : image.getAttribute("src")); + pattern.appendChild(img); + this.__defs.appendChild(pattern); + } else if (image instanceof ctx) { + pattern.appendChild(image.__root.childNodes[1]); + this.__defs.appendChild(pattern); + } + return new CanvasPattern(pattern, this); + }; + + ctx.prototype.setLineDash = function (dashArray) { + if (dashArray && dashArray.length > 0) { + this.lineDash = dashArray.join(","); + } else { + this.lineDash = null; + } + }; + + /** + * Not yet implemented + */ + ctx.prototype.drawFocusRing = function () {}; + ctx.prototype.createImageData = function () {}; + ctx.prototype.getImageData = function () {}; + ctx.prototype.putImageData = function () {}; + ctx.prototype.globalCompositeOperation = function () {}; + ctx.prototype.setTransform = function () {}; + + //add options for alternative namespace + if (typeof window === "object") { + window.C2S = ctx; + } + + // CommonJS/Browserify + if (typeof module === "object" && typeof module.exports === "object") { + module.exports = ctx; + } + +}()); diff --git a/circuitjs.html b/circuitjs.html new file mode 100644 index 0000000..59bb5ed --- /dev/null +++ b/circuitjs.html @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/circuitjs1/34BE10C27C953A8358ADAB184A21D5C0.cache.js b/circuitjs1/34BE10C27C953A8358ADAB184A21D5C0.cache.js new file mode 100644 index 0000000..80fcb3d --- /dev/null +++ b/circuitjs1/34BE10C27C953A8358ADAB184A21D5C0.cache.js @@ -0,0 +1,26 @@ +circuitjs1.onScriptDownloaded(["var $wnd = $wnd || window.parent;var __gwtModuleFunction = $wnd.circuitjs1;var $sendStats = __gwtModuleFunction.__sendStats;$sendStats('moduleStartup', 'moduleEvalStart');var $gwt_version = \"2.8.2\";var $strongName = '34BE10C27C953A8358ADAB184A21D5C0';var $gwt = {};var $doc = $wnd.document;var $moduleName, $moduleBase;function __gwtStartLoadingFragment(frag) {var fragFile = 'deferredjs/' + $strongName + '/' + frag + '.cache.js';return __gwtModuleFunction.__startLoadingFragment(fragFile);}function __gwtInstallCode(code) {return __gwtModuleFunction.__installRunAsyncCode(code);}function __gwt_isKnownPropertyValue(propName, propValue) {return __gwtModuleFunction.__gwt_isKnownPropertyValue(propName, propValue);}function __gwt_getMetaProperty(name) {return __gwtModuleFunction.__gwt_getMetaProperty(name);}var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent && $wnd.__gwtStatsEvent(a);} : null;var $sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;function S(){}\nfunction aG(){}\nfunction ZF(){}\nfunction mb(){}\nfunction zb(){}\nfunction Cf(){}\nfunction hh(){}\nfunction th(){}\nfunction Ah(){}\nfunction hm(){}\nfunction mm(){}\nfunction tm(){}\nfunction ym(){}\nfunction Im(){}\nfunction Om(){}\nfunction Tm(){}\nfunction Ym(){}\nfunction bn(){}\nfunction gn(){}\nfunction mn(){}\nfunction rn(){}\nfunction An(){}\nfunction Fn(){}\nfunction In(){}\nfunction Ln(){}\nfunction Qn(){}\nfunction io(){}\nfunction Gp(){}\nfunction dq(){}\nfunction jq(){}\nfunction lq(){}\nfunction xH(){}\nfunction zH(){}\nfunction CH(){}\nfunction zI(){}\nfunction _I(){}\nfunction rK(){}\nfunction tK(){}\nfunction YK(){}\nfunction $K(){}\nfunction bP(){}\nfunction qP(){}\nfunction IR(){}\nfunction KR(){}\nfunction RR(){}\nfunction lT(){}\nfunction l7(){}\nfunction d7(){}\nfunction i7(){}\nfunction o7(){}\nfunction r7(){}\nfunction v7(){}\nfunction L$(){}\nfunction $T(a){}\nfunction $ib(){}\nfunction gib(){}\nfunction obb(){}\nfunction heb(){}\nfunction hQb(){}\nfunction qhb(){}\nfunction fjb(){}\nfunction Rpb(){}\nfunction uFb(){}\nfunction VHb(){}\nfunction $Mb(){}\nfunction pRb(){}\nfunction sRb(){}\nfunction BRb(){}\nfunction GRb(){}\nfunction bWb(){}\nfunction jWb(){}\nfunction rWb(){}\nfunction oib(a){}\nfunction jDb(a){}\nfunction CG(){vG()}\nfunction JJ(){HJ()}\nfunction Jg(){Jg=ZF}\nfunction dK(a){II(a)}\nfunction kc(a,b){a.a=b}\nfunction bm(a,b){a.a=b}\nfunction cm(a,b){a.b=b}\nfunction EH(a,b){a.b=b}\nfunction DH(a,b){a.a=b}\nfunction FH(a,b){a.d=b}\nfunction $I(a,b){a.d=b}\nfunction $l(a,b){a.f=b}\nfunction bI(a,b){a.f=b}\nfunction bO(a,b){a.d=b}\nfunction dO(a,b){a.f=b}\nfunction IJ(a,b){a.a=b}\nfunction lP(a,b){a.e=b}\nfunction mP(a,b){a.g=b}\nfunction BQ(a,b){a.e=b}\nfunction DQ(a,b){a.e=b}\nfunction x1(a,b){a.d=b}\nfunction _1(a,b){a.d=b}\nfunction Be(a,b){a.Sb=b}\nfunction jb(a){this.a=a}\nfunction qb(a){this.a=a}\nfunction Mb(a){this.a=a}\nfunction Sb(a){this.a=a}\nfunction Un(a){this.a=a}\nfunction Zn(a){this.a=a}\nfunction co(a){this.a=a}\nfunction Eo(a){this.a=a}\nfunction Wo(a){this.a=a}\nfunction _o(a){this.a=a}\nfunction cH(a){this.a=a}\nfunction mH(a){this.a=a}\nfunction gI(a){this.a=a}\nfunction hI(a){this.a=a}\nfunction jI(a){this.a=a}\nfunction lI(a){this.a=a}\nfunction nI(a){this.a=a}\nfunction pI(a){this.a=a}\nfunction uI(a){this.a=a}\nfunction wI(a){this.a=a}\nfunction xL(a){this.a=a}\nfunction VM(a){this.a=a}\nfunction gN(a){this.a=a}\nfunction LN(a){this.d=a}\nfunction sO(a){this.a=a}\nfunction TO(a){this.a=a}\nfunction PO(a){this.b=a}\nfunction PQ(a){this.a=a}\nfunction nQ(a){this.a=a}\nfunction pQ(a){this.a=a}\nfunction RQ(a){this.a=a}\nfunction TQ(a){this.a=a}\nfunction cP(a){this.a=a}\nfunction jP(a){this.a=a}\nfunction KP(a){this.a=a}\nfunction yR(a){this.a=a}\nfunction BS(a){this.a=a}\nfunction IY(a){this.a=a}\nfunction E_(a){this.a=a}\nfunction l6(a){this.a=a}\nfunction n6(a){this.a=a}\nfunction p6(a){this.a=a}\nfunction r6(a){this.a=a}\nfunction t6(a){this.a=a}\nfunction x6(a){this.a=a}\nfunction z6(a){this.a=a}\nfunction A6(a){this.a=a}\nfunction F6(a){this.a=a}\nfunction H6(a){this.a=a}\nfunction O6(a){this.a=a}\nfunction Q6(a){this.a=a}\nfunction S6(a){this.a=a}\nfunction U6(a){this.a=a}\nfunction W6(a){this.a=a}\nfunction Y6(a){this.a=a}\nfunction $6(a){this.a=a}\nfunction f7(a){this.a=a}\nfunction h7(a){this.c=a}\nfunction cT(a){this.c=a}\nfunction wn(){this.a={}}\nfunction e7(){this.a=-1}\nfunction qAb(){this.f=0}\nfunction rab(a,b){a.d=b}\nfunction Gab(a,b){a.a=b}\nfunction gtb(a,b){a.a=b}\nfunction Rzb(a,b){a.a=b}\nfunction WCb(a,b){a.a=b}\nfunction HCb(a,b){a.Z=b}\nfunction hhb(a,b){a.e=b}\nfunction YU(a,b){a.kb=b}\nfunction vK(a,b){af(b,a)}\nfunction vhb(a){this.a=a}\nfunction thb(a){this.a=a}\nfunction xhb(a){this.a=a}\nfunction zhb(a){this.a=a}\nfunction Bhb(a){this.a=a}\nfunction Dhb(a){this.a=a}\nfunction Fhb(a){this.a=a}\nfunction Hhb(a){this.a=a}\nfunction Yhb(a){this.a=a}\nfunction $hb(a){this.a=a}\nfunction aib(a){this.a=a}\nfunction cib(a){this.a=a}\nfunction eib(a){this.a=a}\nfunction iib(a){this.a=a}\nfunction yib(a){this.a=a}\nfunction Fib(a){this.a=a}\nfunction Lib(a){this.a=a}\nfunction Nib(a){this.a=a}\nfunction Qib(a){this.a=a}\nfunction Sib(a){this.a=a}\nfunction Uib(a){this.a=a}\nfunction bjb(a){this.a=a}\nfunction djb(a){this.a=a}\nfunction kjb(a){this.b=a}\nfunction Rlb(a){this.a=a}\nfunction Tlb(a){this.a=a}\nfunction Vlb(a){this.a=a}\nfunction $lb(a){this.a=a}\nfunction LDb(a){this.a=a}\nfunction NDb(a){this.a=a}\nfunction PDb(a){this.a=a}\nfunction RDb(a){this.a=a}\nfunction TDb(a){this.a=a}\nfunction VDb(a){this.a=a}\nfunction XDb(a){this.a=a}\nfunction ZDb(a){this.a=a}\nfunction _Db(a){this.a=a}\nfunction bEb(a){this.a=a}\nfunction dEb(a){this.a=a}\nfunction fEb(a){this.a=a}\nfunction hEb(a){this.a=a}\nfunction lEb(a){this.a=a}\nfunction oEb(a){this.a=a}\nfunction tEb(a){this.a=a}\nfunction vEb(a){this.a=a}\nfunction mFb(a){this.a=a}\nfunction oFb(a){this.a=a}\nfunction qFb(a){this.a=a}\nfunction sFb(a){this.a=a}\nfunction CGb(a){this.a=a}\nfunction EGb(a){this.a=a}\nfunction GGb(a){this.a=a}\nfunction aHb(a){this.a=a}\nfunction cHb(a){this.a=a}\nfunction eHb(a){this.a=a}\nfunction gHb(a){this.a=a}\nfunction iHb(a){this.a=a}\nfunction WHb(a){this.a=a}\nfunction YHb(a){this.a=a}\nfunction LLb(a){this.a=a}\nfunction NLb(a){this.a=a}\nfunction TLb(a){this.a=a}\nfunction VLb(a){this.a=a}\nfunction XLb(a){this.a=a}\nfunction KRb(a){this.a=a}\nfunction DSb(a){this.a=a}\nfunction vUb(a){this.a=a}\nfunction ZUb(a){this.a=a}\nfunction RUb(a){this.d=a}\nfunction cVb(a){this.a=a}\nfunction OVb(a){this.c=a}\nfunction qYb(a){this.a=a}\nfunction Bg(){this.a=Ig()}\nfunction tS(){tS=ZF;HS()}\nfunction DI(){DI=ZF;XJ()}\nfunction kR(){kR=ZF;oR()}\nfunction mT(){mT=ZF;iT()}\nfunction JWb(){qUb(this)}\nfunction J5(){debugger}\nfunction xF(a){return a.e}\nfunction kqb(a){a.a=false}\nfunction cmb(a){a.b=a.c=0}\nfunction R7(a){a.F=0;a.D=0}\nfunction o9(a){a.o&&a.Bh()}\nfunction Ayb(a){a.A=QU(4)}\nfunction qzb(a){a.A=QU(4)}\nfunction Rf(b,a){b.font=a}\nfunction Th(b,a){b.href=a}\nfunction vi(b,a){b.name=a}\nfunction yi(b,a){b.size=a}\nfunction Vh(b,a){b.width=a}\nfunction Uh(b,a){b.height=a}\nfunction vn(a,b,c){a.a[b]=c}\nfunction _7(a,b,c){a.G[b]=c}\nfunction dmb(a,b){a.b=a.c=b}\nfunction ACb(a,b){a.n=uBb=b}\nfunction MM(a,b){$M(a.lb,b)}\nfunction kH(a,b){uH(a.a,b)}\nfunction Llb(a){Jlb=a;Klb()}\nfunction Wjb(a){a.e=0;a.d=0}\nfunction si(b,a){b.checked=a}\nfunction wi(b,a){b.htmlFor=a}\nfunction Sf(b,a){b.lineCap=a}\nfunction LU(a){return LT==a}\nfunction ih(a){return a.ze()}\nfunction oh(a){nh();mh.Be(a)}\nfunction yJ(a){$wnd.alert(a)}\nfunction l2(){JP.call(this)}\nfunction NRb(){wg.call(this)}\nfunction zSb(){wg.call(this)}\nfunction BSb(){wg.call(this)}\nfunction YSb(){wg.call(this)}\nfunction QTb(){wg.call(this)}\nfunction xWb(){wg.call(this)}\nfunction AXb(){wg.call(this)}\nfunction lc(a){kc(this,a.id)}\nfunction VS(a,b){YS(a,b,a.c)}\nfunction XM(a,b){a.a=b;YM(a)}\nfunction PXb(a,b){rVb(a.a,b)}\nfunction ZXb(a,b){zVb(a.a,b)}\nfunction De(a,b){Mh(a.ce(),b)}\nfunction Mg(a,b){Jg();a.src=b}\nfunction ui(b,a){b.disabled=a}\nfunction Ph(b,a){b.tabIndex=a}\nfunction JG(a){MG(a);this.a=a}\nfunction Em(){this.c=++Bm}\nfunction IG(){this.a=new KTb}\nfunction mK(){this.b=new CVb}\nfunction u7(){this.b=new $Xb}\nfunction gp(){gp=ZF;new JWb}\nfunction Dp(){Dp=ZF;Cp=new Gp}\nfunction Dg(){Dg=ZF;Cg=new S}\nfunction dh(){dh=ZF;bh=new hh}\nfunction HJ(){HJ=ZF;GJ=new Em}\nfunction VO(){VO=ZF;UO=new bP}\nfunction NWb(){this.a=new JWb}\nfunction $Xb(){this.a=new CVb}\nfunction Rhb(a){Nhb(a);Mhb(a)}\nfunction BDb(a){a.Y.o||EDb(a)}\nfunction G5(a){console.log(a)}\nfunction Tb(a){Sb.call(this,a)}\nfunction Fc(a){Sb.call(this,a)}\nfunction xg(a){vg.call(this,a)}\nfunction zg(a){xg.call(this,a)}\nfunction Yo(a){vg.call(this,a)}\nfunction Ho(a){Fo.call(this,a)}\nfunction WK(a){Ho.call(this,a)}\nfunction bL(a){pf.call(this,a)}\nfunction PRb(){NRb.call(this)}\nfunction tO(a){sO.call(this,a)}\nfunction Qf(b,a){b.fillStyle=a}\nfunction Oh(b,a){b.scrollTop=a}\nfunction un(a,b){return a.a[b]}\nfunction bV(a){return a<0?-a:a}\nfunction Ag(a){return Ig()-a.a}\nfunction AM(a){return DI(),a.a}\nfunction NY(a){!!a.j&&SEb(a.j)}\nfunction ttb(a,b){a.d=b;wtb(a)}\nfunction yI(a,b,c){a.a=b;a.b=c}\nfunction lH(a,b,c){vH(a.a,b,c)}\nfunction zP(a,b){EP(a,b,b,-1)}\nfunction rP(a,b){sP(a,b,a.k.c)}\nfunction bM(a,b){IL(a,b);WL(a)}\nfunction zO(a,b){aO(a,b);--a.b}\nfunction DCb(a,b){oCb(a);a.p=b}\nfunction Ob(){Mb.call(this,YYb)}\nfunction Pb(){Mb.call(this,ZYb)}\nfunction Xb(){Mb.call(this,$Yb)}\nfunction Yb(){Mb.call(this,_Yb)}\nfunction Zb(){Mb.call(this,aZb)}\nfunction _b(){Mb.call(this,bZb)}\nfunction ac(){Mb.call(this,cZb)}\nfunction bc(){Mb.call(this,dZb)}\nfunction cc(){Mb.call(this,eZb)}\nfunction sc(){Mb.call(this,fZb)}\nfunction zc(){Mb.call(this,gZb)}\nfunction Ac(){Mb.call(this,hZb)}\nfunction Bc(){Mb.call(this,iZb)}\nfunction Dc(){Mb.call(this,jZb)}\nfunction Ec(){Mb.call(this,kZb)}\nfunction Hc(){Mb.call(this,mZb)}\nfunction Mc(){Mb.call(this,nZb)}\nfunction ae(){Mb.call(this,oZb)}\nfunction de(){Mb.call(this,pZb)}\nfunction ze(){throw xF(new QTb)}\nfunction P$(){P$=ZF;M$=new JWb}\nfunction Tg(){Tg=ZF;!!(nh(),mh)}\nfunction TF(){RF==null&&(RF=[])}\nfunction ue(a){return DI(),a.Sb}\nfunction uf(a){return DI(),a.Sb}\nfunction eW(a,b){return a>b?a:b}\nfunction fW(a,b){return ab?a:b}\nfunction DU(a,b){return a.mb[b]}\nfunction Og(a,b){a.a=b;return a}\nfunction RJ(a,b){a.__listener=b}\nfunction pT(a,b){a.style[m_b]=b}\nfunction Pf(c,a,b){c.scale(a,b)}\nfunction Ae(a,b){Be(a,(DI(),b))}\nfunction hL(a,b){iL((DI(),a),b)}\nfunction ftb(a){b4(jRb,a.b,a.a)}\nfunction TEb(a){a.e=true;SEb(a)}\nfunction TRb(a){return BYb(a),a}\nfunction wSb(a){return BYb(a),a}\nfunction ASb(a){xg.call(this,a)}\nfunction CSb(a){xg.call(this,a)}\nfunction ZSb(a){xg.call(this,a)}\nfunction ORb(a){xg.call(this,a)}\nfunction RTb(a){xg.call(this,a)}\nfunction nYb(a,b){a.splice(b,1)}\nfunction Lf(c,a,b){c.lineTo(a,b)}\nfunction Nf(c,a,b){c.moveTo(a,b)}\nfunction nq(a,b){return jSb(a,b)}\nfunction kq(a){return a[4]||a[1]}\nfunction pf(a){Be(this,(DI(),a))}\nfunction Af(a){Be(this,(DI(),a))}\nfunction KL(a){Be(this,(DI(),a))}\nfunction TN(a){Be(this,(DI(),a))}\nfunction dL(a){eL.call(this,a.a)}\nfunction QRb(a){ORb.call(this,a)}\nfunction MJ(){qo.call(this,null)}\nfunction _Sb(a){ASb.call(this,a)}\nfunction KTb(){KRb.call(this,'')}\nfunction LTb(){KRb.call(this,'')}\nfunction NTb(a){ORb.call(this,a)}\nfunction gxb(){this.a=0;this.b=0}\nfunction ESb(a){this.a=vSb(a,10)}\nfunction oYb(a,b){return vq(a,b)}\nfunction rX(a,b){return a.A[b].o}\nfunction Je(a,b){DI();aK(a.Sb,b)}\nfunction VCb(a,b,c){vCb(a.a,b,c)}\nfunction bb(a,b,c){ab(a,b,Ig(),c)}\nfunction Kb(a,b){Lh(b,'role',a.a)}\nfunction rYb(a){qYb.call(this,a)}\nfunction rc(){Mb.call(this,'log')}\nfunction mc(){Mb.call(this,'img')}\nfunction Yd(){Mb.call(this,'row')}\nfunction he(){Mb.call(this,'tab')}\nfunction Ki(){Fi.call(this,OZb,3)}\nfunction Dk(){Ak.call(this,OZb,1)}\nfunction Yk(){Wk.call(this,VZb,0)}\nfunction Kl(){Hl.call(this,OZb,1)}\nfunction Ee(a,b,c){Pe(a.ce(),b,c)}\nfunction po(a,b){return Bo(a.a,b)}\nfunction DF(a,b){return zF(a,b)>0}\nfunction GF(a,b){return zF(a,b)<0}\nfunction jH(a,b){return rH(a.a,b)}\nfunction CK(a,b){return WS(a.k,b)}\nfunction DK(a,b){return XS(a.k,b)}\nfunction FG(b,a){return b.test(a)}\nfunction Tf(b,a){b.strokeStyle=a}\nfunction iL(a,b){a.style[g_b]=b.a}\nfunction qM(a,b){IL(a.tb,b);WL(a)}\nfunction XR(a,b){li((DI(),a.b),b)}\nfunction ZR(a,b){Oh((DI(),a.b),b)}\nfunction vS(a){(DI(),a.Sb).rows=5}\nfunction aSb(a){_Rb(a);return a.k}\nfunction bSb(a){_Rb(a);return a.i}\nfunction Sh(a){a=wTb(a);return a}\nfunction Kgb(a){a.k=true;return a}\nfunction rib(a){a.p=true;return a}\nfunction sib(a){a.d=true;return a}\nfunction ljb(a){this.b=6;this.c=a}\nfunction lJ(){this.a=new qo(null)}\nfunction HK(){this.k=new _S(this)}\nfunction SRb(){SRb=ZF;RRb=false}\nfunction gXb(){gXb=ZF;fXb=iXb()}\nfunction keb(){keb=ZF;ieb=new JWb}\nfunction $Vb(){$Vb=ZF;ZVb=new bWb}\nfunction iWb(){iWb=ZF;hWb=new jWb}\nfunction qWb(){qWb=ZF;pWb=new rWb}\nfunction PTb(){PTb=ZF;OTb=new GRb}\nfunction ah(){Qg!=0&&(Qg=0);Sg=-1}\nfunction jQ(){kQ.call(this,false)}\nfunction KS(){IS.call(this,VZb,0)}\nfunction fc(){Mb.call(this,'form')}\nfunction gc(){Mb.call(this,'grid')}\nfunction nc(){Mb.call(this,'link')}\nfunction oc(){Mb.call(this,'list')}\nfunction uc(){Mb.call(this,'math')}\nfunction vc(){Mb.call(this,'menu')}\nfunction Cc(){Mb.call(this,'note')}\nfunction oe(){Mb.call(this,'tree')}\nfunction se(a,b){Pe(a.ce(),b,true)}\nfunction Fe(a,b){Qe((DI(),a.Sb),b)}\nfunction He(a,b){Re((DI(),a.Sb),b)}\nfunction xf(a,b){Uh((DI(),a.Sb),b)}\nfunction yf(a,b){Vh((DI(),a.Sb),b)}\nfunction of(a){(DI(),a.Sb).focus()}\nfunction ZU(a,b,c){alb(b,FU(a,c))}\nfunction fxb(a,b,c){a.a+=b;a.b+=c}\nfunction syb(a,b,c){a.c+=b;a.d+=c}\nfunction ETb(a,b){a.a+=b;return a}\nfunction FTb(a,b){a.a+=b;return a}\nfunction Ib(a,b){this.b=a;this.a=b}\nfunction Yf(a,b){this.b=a;this.c=b}\nfunction yg(a,b){pg.call(this,a,b)}\nfunction Fi(a,b){Yf.call(this,a,b)}\nfunction dj(a,b){Yf.call(this,a,b)}\nfunction Rj(a,b){Yf.call(this,a,b)}\nfunction pk(a,b){Yf.call(this,a,b)}\nfunction Ak(a,b){Yf.call(this,a,b)}\nfunction Lk(a,b){Yf.call(this,a,b)}\nfunction Wk(a,b){Yf.call(this,a,b)}\nfunction kl(a,b){Yf.call(this,a,b)}\nfunction ml(){kl.call(this,'PX',0)}\nfunction sl(){kl.call(this,'EX',3)}\nfunction ql(){kl.call(this,'EM',2)}\nfunction Al(){kl.call(this,'CM',7)}\nfunction Cl(){kl.call(this,'MM',8)}\nfunction ul(){kl.call(this,'PT',4)}\nfunction wl(){kl.call(this,'PC',5)}\nfunction yl(){kl.call(this,'IN',6)}\nfunction Hl(a,b){Yf.call(this,a,b)}\nfunction Rl(a,b){Yf.call(this,a,b)}\nfunction Ap(a,b){Yf.call(this,a,b)}\nfunction AI(a,b){this.a=a;this.b=b}\nfunction KH(a,b){this.a=a;this.b=b}\nfunction Uo(a,b){this.b=a;this.a=b}\nfunction Bo(a,b){return iUb(a.d,b)}\nfunction BF(a,b){return zF(a,b)==0}\nfunction EF(a,b){return zF(a,b)>=0}\nfunction KF(a,b){return zF(a,b)!=0}\nfunction TI(a){return OJ((DI(),a))}\nfunction MI(a,b){DI();PJ();cK(a,b)}\nfunction WI(a,b){DI();PJ();cK(a,b)}\nfunction aL(a,b){Nh((DI(),a.Sb),b)}\nfunction RN(a,b){vi((DI(),a.Sb),b)}\nfunction HP(a,b){xi((DI(),a.Sb),b)}\nfunction IP(a,b){yi((DI(),a.Sb),b)}\nfunction TP(a){(DI(),a.Sb).focus()}\nfunction yS(a){(DI(),a.Sb).size=50}\nfunction EM(a,b){JM(a,pm(b),qm(b))}\nfunction FM(a,b){KM(a,pm(b),qm(b))}\nfunction IN(a,b){Yf.call(this,a,b)}\nfunction IS(a,b){Yf.call(this,a,b)}\nfunction ZQ(a,b){Yf.call(this,a,b)}\nfunction sT(a,b){pg.call(this,a,b)}\nfunction EZ(a,b){jZ.call(this,a,b)}\nfunction t$(a,b){$Z.call(this,a,b)}\nfunction G_(a,b){_U.call(this,a,b)}\nfunction oK(a,b){this.a=a;this.b=b}\nfunction qQ(a,b){this.a=a;this.b=b}\nfunction C6(a,b){this.a=a;this.b=b}\nfunction L6(a,b){this.a=a;this.b=b}\nfunction dlb(a){this.a=a;this.b=12}\nfunction rUb(a){return a.a.c+a.b.c}\nfunction tCb(a){return a.A.c+a.A.b}\nfunction oDb(a,b){return a.r+a.t-b}\nfunction ECb(a,b,c){TXb(a._,b).n=c}\nfunction uV(a,b){vV(a,b.b,b.c,b.a)}\nfunction yT(a){Co(a.a,a.d,a.c,a.b)}\nfunction k2(a,b){xi((DI(),a.Sb),b)}\nfunction Xe(a,b){!!a.Pb&&oo(a.Pb,b)}\nfunction Xf(c,a,b){c.translate(a,b)}\nfunction Mh(b,a){b.className=a||''}\nfunction Nh(b,a){b.innerHTML=a||''}\nfunction xi(b,a){b.selectedIndex=a}\nfunction ti(b,a){b.defaultChecked=a}\nfunction hJ(a){gJ();return kJ(eJ,a)}\nfunction Bb(a){$wnd.clearTimeout(a)}\nfunction _g(a){$wnd.clearTimeout(a)}\nfunction FJ(a,b,c){$wnd.open(a,b,c)}\nfunction YL(a,b){a.ub=b?b:(YQ(),VQ)}\nfunction wT(c,a,b){c.open(a,b,true)}\nfunction pV(a,b){Wkb(a,b.b,b.c,b.a)}\nfunction W1(a){qL.call(this,xRb(a))}\nfunction qS(a){pf.call(this,a);Dp()}\nfunction Nb(){Mb.call(this,'alert')}\nfunction le(){Mb.call(this,'timer')}\nfunction ic(){Mb.call(this,'group')}\nfunction Lc(){Mb.call(this,'radio')}\nfunction ol(){kl.call(this,'PCT',1)}\nfunction Vl(){Rl.call(this,'PRE',2)}\nfunction $tb(a,b){t$.call(this,a,b)}\nfunction hub(a,b){$Z.call(this,a,b)}\nfunction htb(a,b){this.b=a;this.a=b}\nfunction jEb(a,b){this.b=a;this.a=b}\nfunction RLb(a,b){this.b=a;this.a=b}\nfunction Ylb(a,b){this.a=a;this.b=b}\nfunction zmb(a,b){this.a=a;this.b=b}\nfunction hxb(a,b){this.a=a;this.b=b}\nfunction mVb(a,b){this.a=a;this.b=b}\nfunction FOb(a,b){_U.call(this,a,b)}\nfunction HQb(a,b){_U.call(this,a,b)}\nfunction HRb(a,b){return eTb(a.a,b)}\nfunction LWb(a,b){return iUb(a.a,b)}\nfunction NXb(a,b){return rVb(a.a,b)}\nfunction OXb(a,b){return sVb(a.a,b)}\nfunction YXb(a,b){return xVb(a.a,b)}\nfunction mXb(a,b){return a.a.get(b)}\nfunction a5(a,b){return b+a.sb&a.rb}\nfunction kr(a){return a==null?null:a}\nfunction Ab(a){$wnd.clearInterval(a)}\nfunction g4(a){a.d=true;y4(a);t3(a)}\nfunction w2(a,b){!!a.Nc&&CQ(a.Nc,b)}\nfunction lYb(a,b,c){a.splice(b,0,c)}\nfunction Ykb(a,b,c,d){Kf(a.a,b,c,d)}\nfunction Rb(a,b,c){Lh(b,a.a,Qb(a,c))}\nfunction nf(a,b){(DI(),a.Sb)[AZb]=!b}\nfunction ai(a,b){a.textContent=b||''}\nfunction ge(){Mb.call(this,'status')}\nfunction ce(){Mb.call(this,'slider')}\nfunction Wb(){Mb.call(this,'banner')}\nfunction Nc(){Mb.call(this,'region')}\nfunction Hi(){Fi.call(this,'NONE',0)}\nfunction Tj(){Rj.call(this,'NONE',0)}\nfunction sj(){dj.call(this,'MOVE',4)}\nfunction pj(){dj.call(this,'AUTO',1)}\nfunction Fk(){Ak.call(this,'AUTO',3)}\nfunction sk(){pk.call(this,'BOLD',1)}\nfunction $k(){Wk.call(this,'LEFT',2)}\nfunction qo(a){ro.call(this,a,false)}\nfunction LH(a){KH.call(this,a.a,a.b)}\nfunction GQ(a,b){LQ.call(this,a.a,b)}\nfunction HQ(a,b){MQ.call(this,a.a,b)}\nfunction KK(a,b){zK(a,b,(DI(),a.Sb))}\nfunction uO(a,b){zK(a,b,(DI(),a.Sb))}\nfunction SR(a){return ii((DI(),a.b))}\nfunction sH(a){return $wnd[a].length}\nfunction yWb(){this.a=new $wnd.Date}\nfunction Pg(){this.b='canvas2svg.js'}\nfunction tp(){tp=ZF;gp();sp=new JWb}\nfunction kXb(){gXb();return new fXb}\nfunction Bjb(a,b){a.a==null&&(a.a=b)}\nfunction J4(a,b){b!=null&&$M(a.zd,b)}\nfunction TW(a,b){BW.call(this,a,b,0)}\nfunction hX(a,b){BW.call(this,a,b,1)}\nfunction fX(a,b){UW.call(this,a,b,1)}\nfunction C$(a,b){UW.call(this,a,b,1)}\nfunction rub(a,b){hub.call(this,a,b)}\nfunction VQb(a,b){hub.call(this,a,b)}\nfunction Oub(a,b){tab.call(this,a,b)}\nfunction iBb(a,b){Wmb.call(this,a,b)}\nfunction Vb(){Mb.call(this,'article')}\nfunction jc(){Mb.call(this,'heading')}\nfunction pc(){Mb.call(this,'listbox')}\nfunction tc(){Mb.call(this,'marquee')}\nfunction xc(){Mb.call(this,'menubar')}\nfunction ie(){Mb.call(this,'tablist')}\nfunction ke(){Mb.call(this,'textbox')}\nfunction me(){Mb.call(this,'toolbar')}\nfunction ne(){Mb.call(this,'tooltip')}\nfunction MS(){IS.call(this,'LEFT',2)}\nfunction kj(){dj.call(this,'TEXT',13)}\nfunction lj(){dj.call(this,'WAIT',14)}\nfunction mj(){dj.call(this,'HELP',15)}\nfunction ak(){Rj.call(this,'FLEX',17)}\nfunction ck(){Rj.call(this,'BLOCK',1)}\nfunction ik(){Rj.call(this,'TABLE',7)}\nfunction Qk(){Lk.call(this,'FIXED',3)}\nfunction _k(){Wk.call(this,'RIGHT',3)}\nfunction Li(){Fi.call(this,'SOLID',4)}\nfunction Gb(a){this.a=a;zb.call(this)}\nfunction Mo(a){this.a=a;zb.call(this)}\nfunction yq(a){return zq(a.l,a.m,a.h)}\nfunction USb(a){return zF(a,0)>0?a:0}\nfunction QI(a){return DI(),OJ(a.type)}\nfunction sQ(a){return ei((DI(),a.Sb))}\nfunction zJ(a){return $wnd.confirm(a)}\nfunction uTb(a,b){return a.substr(b)}\nfunction GTb(a,b){a.a+=''+b;return a}\nfunction HTb(a,b){a.a+=''+b;return a}\nfunction mbb(a,b){a.e=b?a.e|1:a.e&-2}\nfunction idb(a,b){BW.call(this,a,b,0)}\nfunction MR(){ER.call(this,$doc.body)}\nfunction NS(){IS.call(this,'RIGHT',3)}\nfunction eR(a){db.call(this);this.a=a}\nfunction eub(a,b){UW.call(this,a,b,6)}\nfunction zHb(a,b){UW.call(this,a,b,2)}\nfunction blb(a,b){Tf(a.a,b);Qf(a.a,b)}\nfunction GM(a,b){LM((pm(b),qm(b),a))}\nfunction GI(a,b,c){DI();_J(a,KI(b),c)}\nfunction iR(a){this.a=a;zb.call(this)}\nfunction j6(a){this.a=a;zb.call(this)}\nfunction ZWb(a){this.a=kXb();this.b=a}\nfunction pXb(a){this.a=kXb();this.b=a}\nfunction PJ(){if(!NJ){$J();NJ=true}}\nfunction tW(a){return a<0?-1:a==0?0:1}\nfunction fUb(a){return !a?null:a.ei()}\nfunction CXb(a){return a!=null?Y(a):0}\nfunction kTb(a,b){return a.indexOf(b)}\nfunction iTb(a,b){return BYb(a),a===b}\nfunction UXb(a,b){return uVb(a.a,b,0)}\nfunction WJb(a){a.n=273.15;a.o=a.n+25}\nfunction xFb(a){a.b=0;a.a=0;a.c=false}\nfunction vYb(){qYb.call(this,'UTF-8')}\nfunction $b(){Mb.call(this,'combobox')}\nfunction ec(){Mb.call(this,'document')}\nfunction hc(){Mb.call(this,'gridcell')}\nfunction qc(){Mb.call(this,'listitem')}\nfunction yc(){Mb.call(this,'menuitem')}\nfunction qe(){Mb.call(this,'treeitem')}\nfunction pe(){Mb.call(this,'treegrid')}\nfunction Zd(){Mb.call(this,'rowgroup')}\nfunction je(){Mb.call(this,'tabpanel')}\nfunction Ii(){Fi.call(this,'DOTTED',1)}\nfunction Ji(){Fi.call(this,'DASHED',2)}\nfunction tk(){pk.call(this,'BOLDER',2)}\nfunction rk(){pk.call(this,'NORMAL',0)}\nfunction Tl(){Rl.call(this,'NORMAL',0)}\nfunction Ul(){Rl.call(this,'NOWRAP',1)}\nfunction dk(){Rj.call(this,'INLINE',2)}\nfunction hk(){Rj.call(this,'RUN_IN',6)}\nfunction Nk(){Lk.call(this,'STATIC',0)}\nfunction Ek(){Ak.call(this,'SCROLL',2)}\nfunction gh(a,b){a.b=jh(a.b,[b,false])}\nfunction $M(a,b){mN(a.b,b,false);YM(a)}\nfunction HG(a,b){HTb(a.a,b.a);return a}\nfunction gL(a,b){(DI(),a)['align']=b.a}\nfunction RO(a,b){return DI(),a.rows[b]}\nfunction QO(a,b){return RO((DI(),a),b)}\nfunction oN(a,b,c){sN(a,b,(HN(),BN),c)}\nfunction pN(a,b,c){sN(a,b,(HN(),EN),c)}\nfunction UW(a,b,c){BW.call(this,a,b,c)}\nfunction Of(e,a,b,c,d){e.rect(a,b,c,d)}\nfunction Df(c,a,b){c.addColorStop(a,b)}\nfunction Lh(c,a,b){c.setAttribute(a,b)}\nfunction VSb(a,b){return zF(a,b)<0?a:b}\nfunction MSb(a){return a==0?0:a<0?-1:1}\nfunction DWb(a){return a<10?'0'+a:''+a}\nfunction ATb(a){return BTb(a,a.length)}\nfunction wf(a){return (DI(),a.Sb).width}\nfunction Hp(){Hp=ZF;Fp((Dp(),Dp(),Cp))}\nfunction eI(a){aI(a);a.b=RI(new pI(a))}\nfunction hg(a){a.j=rq(FE,XYb,158,0,0,1)}\nfunction fj(){dj.call(this,'DEFAULT',0)}\nfunction rj(){dj.call(this,'POINTER',3)}\nfunction uk(){pk.call(this,'LIGHTER',3)}\nfunction Ck(){Ak.call(this,'VISIBLE',0)}\nfunction Jl(){Hl.call(this,'VISIBLE',0)}\nfunction Zk(){Wk.call(this,'JUSTIFY',1)}\nfunction dc(){Mb.call(this,'directory')}\nfunction be(){Mb.call(this,'separator')}\nfunction $d(){Mb.call(this,'rowheader')}\nfunction _d(){Mb.call(this,'scrollbar')}\nfunction hG(a,b){BG(b.d,b.c);wVb(a.c,b)}\nfunction FK(a,b){return RS(a,WS(a.k,b))}\nfunction qO(a,b,c){return pO(a.a.c,b,c)}\nfunction zq(a,b,c){return {l:a,m:b,h:c}}\nfunction If(d,a,b,c){d.drawImage(a,b,c)}\nfunction dY(a,b){jX();zX.call(this,a,b)}\nfunction LS(){IS.call(this,'JUSTIFY',1)}\nfunction P8(a,b){jX();zX.call(this,a,b)}\nfunction a9(a,b){jX();zX.call(this,a,b)}\nfunction i5(a,b){b>0&&(a.t[b-1].b=true)}\nfunction k5(a,b){b>0&&(a.t[b-1].e=true)}\nfunction Xkb(a,b,c,d,e){Vf(a.a,b,c,d,e)}\nfunction _kb(a,b,c,d,e){Jf(a.a,b,c,d,e)}\nfunction emb(a,b,c,d){a.e=b;a.c=c;a.d=d}\nfunction Do(a){this.d=new JWb;this.c=a}\nfunction FRb(a){this.d=a;this.a=new JWb}\nfunction LI(a){DI();CI=a;PJ();XJ(),TJ=a}\nfunction VI(a){DI();CI=a;PJ();XJ(),TJ=a}\nfunction xS(a){(DI(),a.Sb).maxLength=15}\nfunction zVb(a,b){YVb(a.a,a.a.length,b)}\nfunction fr(a,b){return a!=null&&cr(a,b)}\nfunction FSb(a,b){return ab?1:0}\nfunction Ih(b,a){return parseInt(b[a])|0}\nfunction Ch(b,a){return b.appendChild(a)}\nfunction Fh(b,a){return b.removeChild(a)}\nfunction Mf(b,a){return b.measureText(a)}\nfunction fK(a){a.preventDefault();gK(a)}\nfunction Ocb(a){a.s=rq(pr,l$b,8,2,15,1)}\nfunction Ok(){Lk.call(this,'RELATIVE',1)}\nfunction Pk(){Lk.call(this,'ABSOLUTE',2)}\nfunction Wl(){Rl.call(this,'PRE_LINE',3)}\nfunction Xl(){Rl.call(this,'PRE_WRAP',4)}\nfunction tj(){dj.call(this,'E_RESIZE',5)}\nfunction wj(){dj.call(this,'N_RESIZE',8)}\nfunction _j(){Rj.call(this,'INITIAL',16)}\nfunction Ccb(a,b){jX();zX.call(this,a,b)}\nfunction Reb(a,b){jX();zX.call(this,a,b)}\nfunction Blb(a,b){jX();zX.call(this,a,b)}\nfunction lnb(a,b){jX();zX.call(this,a,b)}\nfunction Vob(a,b){jX();zX.call(this,a,b)}\nfunction Gwb(a,b){jX();zX.call(this,a,b)}\nfunction SIb(a,b){jX();zX.call(this,a,b)}\nfunction hLb(a,b){jX();zX.call(this,a,b)}\nfunction gPb(a,b){jX();zX.call(this,a,b)}\nfunction sPb(a,b){jX();m0.call(this,a,b)}\nfunction jyb(a,b){u9.call(this,a,b,true)}\nfunction Fab(a,b){a.A=rq(Ky,XYb,9,b,0,1)}\nfunction CVb(){this.a=rq(DE,XYb,1,0,5,1)}\nfunction ye(a,b){Pe((DI(),a.Sb),b,false)}\nfunction ve(a){return Ih((DI(),a.Sb),rZb)}\nfunction we(a){return Ih((DI(),a.Sb),sZb)}\nfunction EG(c,a,b){return a.replace(c,b)}\nfunction cU(a,b,c){bU(a,b.a,b.b,c.a,c.b)}\nfunction ggb(a,b){a.p=b;a.q=a.p.n;kgb(a)}\nfunction stb(a,b){a.t=b;a.u=a.t.t;wtb(a)}\nfunction Ce(a,b){(DI(),a.Sb).style[tZb]=b}\nfunction Ie(a,b){(DI(),a.Sb).style[uZb]=b}\nfunction hr(a){return typeof a==='number'}\nfunction jr(a){return typeof a==='string'}\nfunction Gl(){Gl=ZF;Fl=new Jl;El=new Kl}\nfunction VK(){VK=ZF;TK=new YK;UK=new $K}\nfunction xm(){xm=ZF;wm=new Fm($Zb,new ym)}\nfunction Hm(){Hm=ZF;Gm=new Fm(_Zb,new Im)}\nfunction Sm(){Sm=ZF;Rm=new Fm(a$b,new Tm)}\nfunction Xm(){Xm=ZF;Wm=new Fm(b$b,new Ym)}\nfunction ln(){ln=ZF;kn=new Fm(c$b,new mn)}\nfunction zn(){zn=ZF;yn=new Fm(f$b,new An)}\nfunction En(){En=ZF;Dn=new Fm(g$b,new Fn)}\nfunction Kn(){Kn=ZF;Jn=new Fm(h$b,new Ln)}\nfunction Pn(){Pn=ZF;On=new Fm(i$b,new Qn)}\nfunction Iq(a){return a.l+a.m*v$b+a.h*w$b}\nfunction FF(a){return typeof a==='number'}\nfunction fG(a,b,c){return yG(a.b,a.d,b,c)}\nfunction TL(a){return Ih((DI(),a.Sb),rZb)}\nfunction UL(a){return Ih((DI(),a.Sb),sZb)}\nfunction LM(a){a.qb=false;JI((DI(),a.Sb))}\nfunction wg(){hg(this);jg(this);this.xe()}\nfunction ON(a,b){this.a=a;LN.call(this,b)}\nfunction d2(a,b){b2.call(this,a);this.d=b}\nfunction gj(){dj.call(this,'SE_RESIZE',9)}\nfunction uj(){dj.call(this,'NE_RESIZE',6)}\nfunction vj(){dj.call(this,'NW_RESIZE',7)}\nfunction jj(){dj.call(this,'W_RESIZE',12)}\nfunction ij(){dj.call(this,'S_RESIZE',11)}\nfunction qj(){dj.call(this,'CROSSHAIR',2)}\nfunction gk(){Rj.call(this,'LIST_ITEM',5)}\nfunction Bwb(a,b){job.call(this,a,b,true)}\nfunction Cwb(a,b){Hnb.call(this,a,b,true)}\nfunction Ewb(a,b){ytb.call(this,a,b,true)}\nfunction QFb(a,b){OFb();zX.call(this,a,b)}\nfunction mTb(a,b){return a.lastIndexOf(b)}\nfunction lTb(a,b,c){return a.indexOf(b,c)}\nfunction lS(a){return Jh((DI(),a.Sb),S_b)}\nfunction YRb(a){return a>=56320&&a<=57343}\nfunction MWb(a,b){return oUb(a.a,b)!=null}\nfunction QXb(a,b){return uVb(a.a,b,0)!=-1}\nfunction vWb(a,b){b.$modCount=a.$modCount}\nfunction w4(a,b){RS(a.Id,b);!!a.Ab&&X4(a)}\nfunction bmb(a){g5(a.g,a.f[0],a.f[1],a.b)}\nfunction Dyb(a){a.s=0;a.t=a.s+1;a.u=a.s+2}\nfunction sAb(a){a.j=50;a.k=0.0082;a.t=I$b}\nfunction KYb(a){return a.$H||(a.$H=++JYb)}\nfunction gr(a){return typeof a==='boolean'}\nfunction wYb(a){if(!a){throw xF(new zSb)}}\nfunction EYb(a){if(!a){throw xF(new BSb)}}\nfunction zYb(a){if(!a){throw xF(new AXb)}}\nfunction CTb(a){KRb.call(this,(BYb(a),a))}\nfunction MTb(a){KRb.call(this,(BYb(a),a))}\nfunction $j(){Rj.call(this,'TABLE_ROW',15)}\nfunction hj(){dj.call(this,'SW_RESIZE',10)}\nfunction Lg(a){a.parentNode.removeChild(a)}\nfunction rH(a,b){return $wnd[a].getItem(b)}\nfunction ZN(a){return (DI(),a).rows.length}\nfunction _H(a){if(a.a){yT(a.a.a);a.a=null}}\nfunction aI(a){if(a.b){yT(a.b.a);a.b=null}}\nfunction FP(a,b){AP(a,b);ki((DI(),a.Sb),b)}\nfunction g5(a,b,c,d){l5(a,b,-d);l5(a,c,d)}\nfunction Jf(e,a,b,c,d){e.fillRect(a,b,c,d)}\nfunction ktb(a,b){job.call(this,a,b,false)}\nfunction ltb(a,b){Hnb.call(this,a,b,false)}\nfunction Ytb(a,b){ytb.call(this,a,b,false)}\nfunction v6(a){this.a=a;kQ.call(this,true)}\nfunction gS(a){this.c=a;this.a=!!this.c.Mb}\nfunction ro(a,b){this.a=new Do(b);this.b=a}\nfunction UCb(a,b){qL.call(this,a);this.a=b}\nfunction RHb(a,b){SHb.call(this,a,b,false)}\nfunction JCb(a,b,c){a.u=new $Xb;yBb(a,b,c)}\nfunction OYb(){OYb=ZF;LYb=new S;NYb=new S}\nfunction pH(){pH=ZF;nH=qH(P$b);oH=qH(Q$b)}\nfunction $Hb(a){a.e=a.i;a.d=0;a.a=1;_Hb(a)}\nfunction PEb(a){a.e=false;a.d=false;SEb(a)}\nfunction KNb(a){a.k=0.0082;a.t=I$b;a.c=100}\nfunction ijb(a){a%=WYb;return a>=0?a:a+WYb}\nfunction rh(a){nh();return parseInt(a)||-1}\nfunction vTb(a,b,c){return a.substr(b,c-b)}\nfunction AVb(a){return jYb(a.a,a.a.length)}\nfunction SI(a){return DI(),a.__eventBits||0}\nfunction HLb(a){(DI(),a.Sb).style[u6b]=E6b}\nfunction lR(b,a){kR();b.__gwt_resolve=mR(a)}\nfunction _Rb(a){if(a.k!=null){return}nSb(a)}\nfunction V4(a){tN(a.Mb,a.Ad,!a.Bd.c);G4(a)}\nfunction V1(a,b){oL(a,(SRb(),b?true:false))}\nfunction XCb(a,b){yCb(a.a,b);sCb(a.a,false)}\nfunction utb(a,b){(a.bb&1)!=0!=b&&(a.bb^=1)}\nfunction b8(a,b){_U.call(this,a,b);R7(this)}\nfunction nj(){dj.call(this,'COL_RESIZE',16)}\nfunction oj(){dj.call(this,'ROW_RESIZE',17)}\nfunction Yj(){Rj.call(this,'TABLE_CELL',13)}\nfunction dr(a){return String.fromCharCode(a)}\nfunction Fb(a,b){return $wnd.setTimeout(a,b)}\nfunction Eh(a,b){return Dh(a,b,a.firstChild)}\nfunction Ug(a,b,c){return a.apply(b,c);var d}\nfunction ng(a,b){a.e=b;b!=null&&IYb(b,DZb,a)}\nfunction Ep(a){!a.a&&(a.a=new lq);return a.a}\nfunction Fp(a){!a.b&&(a.b=new jq);return a.b}\nfunction eb(a){this.j=new jb(this);this.s=a}\nfunction zWb(a){this.a=new $wnd.Date(OF(a))}\nfunction IYb(b,c,d){try{b[c]=d}catch(a){}}\nfunction Vf(e,a,b,c,d){e.strokeRect(a,b,c,d)}\nfunction _p(a,b){Hp();$p.call(this,a,b,true)}\nfunction MP(a,b){return VP(a,b,a.b.a.length)}\nfunction OP(a,b){return WP(a,b,a.b.a.length)}\nfunction pO(a,b,c){return a.rows[b].cells[c]}\nfunction pwb(a,b){_U.call(this,a,b);this.a=0}\nfunction lxb(a,b){A1.call(this,a,b);this.a=1}\nfunction BHb(a,b){_U.call(this,a,b);this.d=1}\nfunction bk(){Rj.call(this,'INLINE_FLEX',18)}\nfunction ek(){Rj.call(this,'INLINE_BLOCK',3)}\nfunction fk(){Rj.call(this,'INLINE_TABLE',4)}\nfunction gm(){gm=ZF;fm=new Fm('blur',new hm)}\nfunction gJ(){gJ=ZF;new nJ;eJ=new lJ;fJ=iJ()}\nfunction RH(a){a.r=false;a.c=false;a.g=null}\nfunction Sfb(a){HM(a,false);p2==a&&(p2=null)}\nfunction nDb(a,b){a.u==0?(a.b=b):(a.b=false)}\nfunction clb(a,b){if(b){Rf(a.a,b.a);a.b=b.b}}\nfunction dXb(a,b){var c;c=a[f4b];c.call(a,b)}\nfunction eXb(a,b){var c;c=a[f4b];c.call(a,b)}\nfunction Eb(a,b){return $wnd.setInterval(a,b)}\nfunction Dh(c,a,b){return c.insertBefore(a,b)}\nfunction zf(a){return (DI(),a.Sb).toDataURL()}\nfunction no(a,b,c){return new Eo(uo(a.a,b,c))}\nfunction SH(a){return new KH(SR(a.s),WR(a.s))}\nfunction sm(){sm=ZF;rm=new Fm('click',new tm)}\nfunction Nm(){Nm=ZF;Mm=new Fm('keyup',new Om)}\nfunction Zj(){Rj.call(this,'TABLE_COLUMN',14)}\nfunction jk(){Rj.call(this,'TABLE_CAPTION',8)}\nfunction fg(a,b,c){Yf.call(this,a,b);this.a=c}\nfunction QN(a,b,c){this.a=a;this.d=b;this.c=c}\n", +"function e_(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction Hjb(){this.a='gnd';this.b=1;this.d=2}\nfunction imb(a,b){a.b=b;emb(a.a,a.b,a.W,a.bb)}\nfunction nT(a){return jT(a.d,a.b,a.c,a.e,a.a)}\nfunction r5(a,b){return lr(b*a.Cd[0]+a.Cd[4])}\nfunction s5(a,b){return lr(b*a.Cd[3]+a.Cd[5])}\nfunction nTb(a,b,c){return a.lastIndexOf(b,c)}\nfunction URb(a,b){SRb();return a==b?0:a?1:-1}\nfunction kQb(a,b){_U.call(this,a,b);jQb(this)}\nfunction LQ(a,b){KQ.call(this,a,true);this.e=b}\nfunction H_(a,b,c,d,e){aV.call(this,a,b,c,d,e)}\nfunction Ff(g,a,b,c,d,e,f){g.arc(a,b,c,d,e,f)}\nfunction vo(a,b,c,d){var e;e=yo(a,b,c);e.Th(d)}\nfunction ko(a){var b;if(ho){b=new io;a.ie(b)}}\nfunction Nhb(a){while(CK(a.k,0)!=a.d)FK(a.k,0)}\nfunction nb(a){$wnd.cancelAnimationFrame(a.id)}\nfunction MRb(){xg.call(this,'divide by zero')}\nfunction tab(a,b){_U.call(this,a,b);this.f=I$b}\nfunction ilb(a,b){_U.call(this,a,b);this.a=hlb}\nfunction xpb(a,b){_U.call(this,a,b);this.a=j_b}\nfunction Szb(a,b){_U.call(this,a,b);this.a=m$b}\nfunction jrb(a,b){_U.call(this,a,b);this.a=2.5}\nfunction Aeb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction JEb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction JLb(a,b,c){this.a=a;this.c=b;this.b=c}\nfunction elb(a,b,c,d){c-=a;d-=b;return c*c+d*d}\nfunction wXb(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction xyb(a){vyb.call(this,a.c,a.d,a.b,a.a)}\nfunction YGb(a){while(CK(a.j,0)!=a.f)FK(a.j,0)}\nfunction to(a,b){!a.a&&(a.a=new CVb);rVb(a.a,b)}\nfunction li(a,b){di(a)&&(b=-b);a.scrollLeft=b}\nfunction pS(a,b){(DI(),a.Sb)[S_b]=b!=null?b:''}\nfunction DLb(a,b){$M(a.c,xRb('Mode: ')+(''+b))}\nfunction xYb(a,b){if(!a){throw xF(new ASb(b))}}\nfunction mq(a,b){this.c=a;this.b=b;this.a=false}\nfunction HH(a,b){return new KH(a.a-b.a,a.b-b.b)}\nfunction IH(a,b){return new KH(a.a*b.a,a.b*b.b)}\nfunction JH(a,b){return new KH(a.a+b.a,a.b+b.b)}\nfunction ySb(a){return !isNaN(a)&&!isFinite(a)}\nfunction hbb(a){return a.g!=null&&a.g.length>0}\nfunction R3(a,b){return lr((b-a.Cd[4])/a.Cd[0])}\nfunction S3(a,b){return lr((b-a.Cd[5])/a.Cd[3])}\nfunction xJ(a){AJ();return vJ((HJ(),HJ(),GJ),a)}\nfunction fp(){return ['USD','US$',2,'US$','$']}\nfunction $1(a){a.c=false;a.b='';a.d='';a.a=null}\nfunction ryb(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e}\nfunction GOb(a,b,c,d,e){aV.call(this,a,b,c,d,e)}\nfunction IQb(a,b,c,d,e){aV.call(this,a,b,c,d,e)}\nfunction Awb(a,b){Zdb();_db.call(this,a,b,true)}\nfunction Wvb(a,b){Zub.call(this,a,b);this.bb|=1}\nfunction IQ(a,b){KQ.call(this,a,false);this.e=b}\nfunction qV(a,b){alb(a,ZT);Zkb(a,b.a-3,b.b-3,7)}\nfunction Ef(f,a,b,c,d,e){f.arc(a,b,c,d,e,false)}\nfunction mYb(a,b,c){kYb(c,0,a,b,c.length,false)}\nfunction Zyb(a,b,c){a.b=(a.bb&2)!=0?1-b:b;a.o=c}\nfunction rVb(a,b){a.a[a.a.length]=b;return true}\nfunction Ro(a,b){bp('callback',b);return Qo(a,b)}\nfunction dI(a,b){XR(a.s,lr(b.a));ZR(a.s,lr(b.b))}\nfunction jG(a,b){this.a=a;this.b=b;db.call(this)}\nfunction ub(){this.a=new CVb;this.b=new Gb(this)}\nfunction lm(){lm=ZF;km=new Fm('change',new mm)}\nfunction an(){an=ZF;_m=new Fm('mouseout',new bn)}\nfunction QSb(){QSb=ZF;PSb=rq(yE,XYb,38,256,0,1)}\nfunction zS(){tS();AS.call(this,Xh($doc,'text'))}\nfunction W_(a,b){jX();zX.call(this,a,b);this.a=1}\nfunction MQ(a,b){KQ.call(this,a,true);FQ(this,b)}\nfunction fM(a){eM.call(this);this.vb=a;this.wb=a}\nfunction Tfb(){OM.call(this,new fN);this.kb=true}\nfunction Xj(){Rj.call(this,'TABLE_ROW_GROUP',12)}\nfunction NM(a){!a.rb&&(a.rb=wJ(new VM(a)));cM(a)}\nfunction fSb(a){var b;b=eSb(a);rSb(a,b);return b}\nfunction nK(a){var b=a[d_b];return b==null?-1:b}\nfunction vT(a){a.onreadystatechange=function(){}}\nfunction Cb(a,b){return SYb(function(){a.$d(b)})}\nfunction CU(a,b){return b==0?a.ib:b==1?a.jb:null}\nfunction Q4(a,b){a.gc=b;b==0?L4(a,m4b):L4(a,n4b)}\nfunction XXb(a,b){bYb(b,a.a.a.length);vVb(a.a,b)}\nfunction YVb(a,b,c){yYb(b,a.length);WVb(a,0,b,c)}\nfunction jtb(a,b){Zdb();_db.call(this,a,b,false)}\nfunction So(a,b){Po();To.call(this,!a?null:a.a,b)}\nfunction eL(a){cL.call(this);Nh((DI(),this.Sb),a)}\nfunction bG(){$wnd.setTimeout(SYb(rT));NI();lRb()}\nfunction fn(){fn=ZF;en=new Fm('mouseover',new gn)}\nfunction PK(a){return new oT(a.d,a.b,a.c,a.e,a.a)}\nfunction tq(a){return Array.isArray(a)&&a.ii===aG}\nfunction WR(a){return ((DI(),a.b).scrollTop||0)|0}\nfunction re(a,b){Ee(a,Me((DI(),a.Sb))+'-'+b,true)}\nfunction cO(a,b){!!a.e&&(b.a=a.e.a);a.e=b;NO(a.e)}\nfunction QP(a,b){if(a.g){VL(a.g.i,!b);b&&TP(a.g)}}\nfunction h0(a,b){jX();zX.call(this,a,b);this.a=-1}\nfunction JQ(a,b){KQ.call(this,a,false);FQ(this,b)}\nfunction xBb(a,b){fr(b,148)?yBb(a,6,b):yBb(a,0,b)}\nfunction tVb(a,b){AYb(b,a.a.length);return a.a[b]}\nfunction Qgb(a,b){nUb(Fgb,a,b);b.p=b.b=true;b.n=a}\nfunction bNb(a,b){nUb(XMb,a,b);b.u=b.d=true;b.t=a}\nfunction lsb(a){sX(a);a.A[2].A=true;a.e=a.c=false}\nfunction GLb(a){(DI(),a.Sb).style[u6b]='#007bff'}\nfunction vf(a){return (DI(),a.Sb).getContext('2d')}\nfunction er(a){return !Array.isArray(a)&&a.ii===aG}\nfunction _n(a,b){var c;if(Yn){c=new Zn(b);a.ie(c)}}\nfunction fo(a,b){var c;if(bo){c=new co(b);oo(a,c)}}\nfunction jh(a,b){!a&&(a=[]);a[a.length]=b;return a}\nfunction nN(a){this.a=a;this.b=dp(a);this.c=this.b}\nfunction JO(a){this.c=a;this.d=this.c.i.b;HO(this)}\nfunction qDb(a){iDb();jDb(this);this.e=a;this.u=0}\nfunction FR(a){DR();try{a.me()}finally{MWb(CR,a)}}\nfunction uJ(a){AJ();return vJ(Yn?Yn:(Yn=new Em),a)}\nfunction pq(a,b,c,d,e,f){return qq(a,b,c,d,e,0,f)}\nfunction VW(a,b,c,d,e,f){CW.call(this,a,b,c,d,e,f)}\nfunction FZ(a,b,c,d,e,f){kZ.call(this,a,b,c,d,e,f)}\nfunction u$(a,b,c,d,e,f){_Z.call(this,a,b,c,d,e,f)}\nfunction Q$(a,b){P$();UW.call(this,a,b,1);this.d=5}\nfunction N7(a,b,c){K7();this.d=a;this.c=b;this.a=c}\nfunction Jjb(a,b){UW.call(this,a,b,1);this.a='ext'}\nfunction Uj(){Rj.call(this,'TABLE_COLUMN_GROUP',9)}\nfunction QHb(a){SHb.call(this,a,' \\t\\n\\r\\f',false)}\nfunction EQ(a){Ee(a,Me((DI(),a.Sb))+'-'+L_b,false)}\nfunction vQ(a){return ei((DI(),a.Sb))+Ih(a.Sb,sZb)}\nfunction oUb(a,b){return jr(b)?pUb(a,b):YWb(a.a,b)}\nfunction lXb(a,b){return !(a.a.get(b)===undefined)}\nfunction iU(a,b,c,d){return a==c&&b==d||a==d&&b==c}\nfunction Kf(d,a,b,c){d.fillText&&d.fillText(a,b,c)}\nfunction qVb(a,b,c){DYb(b,a.a.length);lYb(a.a,b,c)}\nfunction XU(a,b){if(!WT.Cc.c)return;WU(a,b,a.bg())}\nfunction bYb(a,b){if(a<0||a>=b){throw xF(new PRb)}}\nfunction Khb(){Khb=ZF;Jhb=(Hp(),new _p(o5b,fp()))}\nfunction CJ(){pJ&&_n((!qJ&&(qJ=new MJ),qJ),false)}\nfunction DR(){DR=ZF;AR=new IR;BR=new JWb;CR=new NWb}\nfunction hSb(a){var b;b=eSb(a);b.j=a;b.e=1;return b}\nfunction zbb(a){a.d=acb(a.e,a.d);ybb(a);eU(a);uX(a)}\nfunction Deb(a,b){_U.call(this,a,b);Ceb(this,10240)}\nfunction Iab(a,b){jX();zX.call(this,a,b);vX(this,2)}\nfunction vg(a){hg(this);this.g=a;jg(this);this.xe()}\nfunction uyb(){this.c=0;this.d=0;this.b=0;this.a=0}\nfunction agb(a){this.d=a;this.c=rq(pr,l$b,8,2,15,1)}\nfunction hmb(a){this.g=a;this.f=rq(pr,l$b,8,2,15,1)}\nfunction _S(a){this.b=a;this.a=rq($x,XYb,21,4,0,1)}\nfunction _tb(a,b,c,d,e,f){u$.call(this,a,b,c,d,e,f)}\nfunction iub(a,b,c,d,e,f){_Z.call(this,a,b,c,d,e,f)}\nfunction Wf(g,a,b,c,d,e,f){g.transform(a,b,c,d,e,f)}\nfunction XEb(a,b,c,d){WEb.call(this,a,b,c);this.c=d}\nfunction QPb(a,b){mgb.call(this,a,b);this.a=4.0E-12}\nfunction xrb(a,b){u9.call(this,a,b,false);wrb(this)}\nfunction VOb(a,b){TOb();b8.call(this,a,b);UOb(this)}\nfunction Vq(a,b){return zq(a.l^b.l,a.m^b.m,a.h^b.h)}\nfunction Pq(a,b){return zq(a.l|b.l,a.m|b.m,a.h|b.h)}\nfunction RSb(a,b){return zF(a,b)<0?-1:zF(a,b)>0?1:0}\nfunction Jh(b,a){return b[a]==null?null:String(b[a])}\nfunction Nqb(){return !!($wnd.File&&$wnd.FileReader)}\nfunction wDb(a){HM(a,false);p2==a&&(p2=null);vDb(a)}\nfunction f3(a,b){I2(a);o4(a);p2=new $Gb(b,a);p2.nf()}\nfunction amb(a,b){a.a>0&&(a.c=b/a.a+a.b);return a.c}\nfunction Bub(a){a.f=0;a.g=0;a.i=0;a.j=0;a.t=9;a.q=-9}\nfunction NCb(a){if(a.X>1){a.X=a.X/2|0;sCb(a,false)}}\nfunction sb(a,b){wVb(a.a,b);a.a.a.length==0&&wb(a.b)}\nfunction sTb(a,b){return iTb(a.substr(0,b.length),b)}\nfunction iUb(a,b){return jr(b)?lUb(a,b):!!WWb(a.a,b)}\nfunction qUb(a){a.a=new ZWb(a);a.b=new pXb(a);wWb(a)}\nfunction NVb(a){EYb(a.b!=-1);vVb(a.c,a.a=a.b);a.b=-1}\nfunction tub(a,b,c,d,e,f){iub.call(this,a,b,c,d,e,f)}\nfunction WQb(a,b,c,d,e,f){iub.call(this,a,b,c,d,e,f)}\nfunction Pub(a,b,c,d,e,f){uab.call(this,a,b,c,d,e,f)}\nfunction jBb(a,b,c,d,e,f){Xmb.call(this,a,b,c,d,e,f)}\nfunction K9(a,b){u9.call(this,a,b,false);this.gb=true}\nfunction Vj(){Rj.call(this,'TABLE_HEADER_GROUP',10)}\nfunction Wj(){Rj.call(this,'TABLE_FOOTER_GROUP',11)}\nfunction JGb(a,b){jX();zX.call(this,a,b);this.a=false}\nfunction pib(a,b,c){if(U1(a.b))return b|c;return b&~c}\nfunction zRb(a){var b;b=new FRb(a);b.e=DRb();return b}\nfunction KWb(a,b){var c;c=mUb(a.a,b,a);return c==null}\nfunction jYb(a,b){var c;c=a.slice(0,b);return vq(c,a)}\nfunction vJ(a,b){return no((!qJ&&(qJ=new MJ),qJ),a,b)}\nfunction TR(a){return OR((!NR&&(NR=new RR),DI(),a.b))}\nfunction VR(a){return PR((!NR&&(NR=new RR),DI(),a.b))}\nfunction ci(a){return Math.round(-a.wheelDelta/40)||0}\nfunction qtb(a,b){return b==0?a.ib:b==1?a.f[0]:a.k[0]}\nfunction BK(a,b){if(b<0||b>a.k.c){throw xF(new NRb)}}\nfunction HM(a,b){if(a.rb){yT(a.rb.a);a.rb=null}VL(a,b)}\nfunction x5(a,b,c){var d;d=a.oc.a.a.length+b;l5(a,d,c)}\nfunction jL(a,b,c){var d;d=fL(a,b);!!d&&iL((DI(),d),c)}\nfunction fab(){fab=ZF;dab=uq(nq(pr,1),l$b,8,15,[1,2])}\nfunction C8(){C8=ZF;A8=uq(nq(pr,1),l$b,8,15,[2,1,4])}\nfunction jX(){jX=ZF;iX=uq(nq(pr,1),l$b,8,15,[2,3,0,1])}\nfunction Uf(g,a,b,c,d,e,f){g.setTransform(a,b,c,d,e,f)}\nfunction Ujb(a,b,c){return $wnd.Math.sqrt(b*b+c*c)/a.d}\nfunction qib(a,b,c){if(!U1(a.b))return b|c;return b&~c}\nfunction PF(a){if(FF(a)){return a|0}return a.l|a.m<<22}\nfunction z3(a){if(a.Fc.c)return K7(),I7;return K7(),z7}\nfunction BYb(a){if(a==null){throw xF(new YSb)}return a}\nfunction DTb(a,b){a.a+=String.fromCharCode(b);return a}\nfunction _T(a,b){if(a==100||a==-100)return a;return a+b}\nfunction up(a){gp();this.b=new CVb;this.a=a;pp(this,a)}\nfunction ZM(a){Be(this,(DI(),a));this.b=new nN(this.Sb)}\nfunction ER(a){HK.call(this);Be(this,(DI(),a));Ye(this)}\nfunction eN(a){dN.call(this);mN(this.b,a,true);YM(this)}\nfunction aN(a){ZM.call(this,(jTb('span',a.tagName),a))}\nfunction c8(a,b,c,d,e){aV.call(this,a,b,c,d,e);R7(this)}\nfunction eY(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f)}\nfunction Gf(g,a,b,c,d,e,f){g.bezierCurveTo(a,b,c,d,e,f)}\nfunction gmb(a,b){(a.d&2)==0?(a.b=b/a.a+a.c):(a.b=a.c)}\nfunction MNb(a,b){_U.call(this,a,b);KNb(this);LNb(this)}\nfunction wyb(a){this.c=a.a;this.d=a.b;this.b=0;this.a=0}\nfunction tAb(a){a.f=new agb(WT);$fb(a.f,Wgb(F4b));a.a=1}\nfunction jUb(a,b){return jr(b)?kUb(a,b):fUb(WWb(a.a,b))}\nfunction kJ(a,b){return no(a.a,(!ho&&(ho=new Em),ho),b)}\nfunction IWb(a,b){return kr(a)===kr(b)||a!=null&&U(a,b)}\nfunction BXb(a,b){return kr(a)===kr(b)||a!=null&&U(a,b)}\nfunction RXb(a,b){return bYb(b,a.a.a.length),tVb(a.a,b)}\nfunction TXb(a,b){bYb(b,a.a.a.length);return tVb(a.a,b)}\nfunction WXb(a,b){bYb(b,a.a.a.length);return vVb(a.a,b)}\nfunction JRb(a,b,c){IRb(a,b,b+1,String.fromCharCode(c))}\nfunction I0(a,b,c){b==0&&a.a<9&&(a.g.d[8]=c);a.g.d[b]=c}\nfunction a1(a,b,c){b==0&&a.a<9&&(a.g.d[8]=c);a.g.d[b]=c}\nfunction QUb(a){EYb(a.c!=-1);a.d.ai(a.c);a.b=a.c;a.c=-1}\nfunction O5(a){$wnd.saveFile(null,a);u2.Oc=true;y4(u2)}\nfunction vG(){vG=ZF;uG=DG((jl(),al),al);Ch($doc.body,uG)}\nfunction Zdb(){Zdb=ZF;Xdb=uq(nq(pr,1),l$b,8,15,[1,2,3])}\nfunction TOb(){TOb=ZF;QOb=uq(nq(pr,1),l$b,8,15,[1,2,3])}\nfunction Il(){Gl();return uq(nq(wu,1),XYb,185,0,[Fl,El])}\nfunction te(a){return gi((DI(),a.Sb))+$wnd.pageYOffset|0}\nfunction xe(a){Ee(a,Me((DI(),a.Sb))+'-'+'current',false)}\nfunction Ckb(a){var b;UU(a);b=(a.bb&1)!=0?32:16;hU(a,b)}\nfunction sbb(a){var b;!fbb&&tbb();b=kUb(fbb,a);return b}\nfunction YN(a,b){var c;c=a.rows[b];return c.cells.length}\nfunction CT(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d}\nfunction bN(a){_M.call(this);mN(this.b,a,false);YM(this)}\nfunction Y1(a,b){GQ.call(this,(aH(),new RG(Z1+g1b+a)),b)}\nfunction IRb(a,b,c,d){a.a=vTb(a.a,0,b)+(''+d)+uTb(a.a,c)}\nfunction mUb(a,b,c){return jr(b)?nUb(a,b,c):XWb(a.a,b,c)}\nfunction tPb(a,b,c,d,e,f){jX();n0.call(this,a,b,c,d,e,f)}\nfunction hPb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f)}\nfunction Dcb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f)}\nfunction Clb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f)}\nfunction Hwb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f)}\nfunction iLb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f)}\nfunction Hab(a,b,c,d,e){a.A[b]=new j2(a,c,d,e);f2(a.A[b])}\nfunction VU(a,b,c,d,e){a.nb=b;a.pb=c;a.ob=d;a.qb=e;a.wg()}\nfunction Ijb(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}\nfunction vyb(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d}\nfunction zT(a,b,c){this.a=a;this.d=b;this.c=null;this.b=c}\nfunction AT(a,b,c){this.a=a;this.d=b;this.c=null;this.b=c}\nfunction aTb(a,b,c){this.a=KZb;this.d=a;this.b=b;this.c=c}\nfunction cRb(a,b){mgb.call(this,a,b);this.q=bRb;kgb(this)}\nfunction eTb(a,b){HYb(b,a.length);return a.charCodeAt(b)}\nfunction uH(a,b){$wnd[a].getItem(b);$wnd[a].removeItem(b)}\nfunction Lm(a,b){b&&(a==39?(a=37):a==37&&(a=39));return a}\nfunction jg(a){if(a.n){a.e!==CZb&&a.xe();a.j=null}return a}\nfunction Ko(a){if(!a.d){return}Io(a);a.a._e(a,new $o(a.b))}\nfunction pUb(a,b){return b==null?YWb(a.a,null):oXb(a.b,b)}\nfunction xTb(a){return String.fromCharCode.apply(null,a)}\nfunction $g(a){Tg();$wnd.setTimeout(function(){throw a},0)}\nfunction vH(a,b,c){$wnd[a].getItem(b);$wnd[a].setItem(b,c)}\nfunction UH(a,b){if(a.j.a){return TH(b,a.j.a)}return false}\nfunction kbb(a,b){pUb(fbb,a.i);a.i=b;nUb(fbb,a.i,a);++gbb}\nfunction RFb(a,b,c,d,e,f){OFb();AX.call(this,a,b,c,d,e,f)}\nfunction $vb(){$vb=ZF;Yvb=uq(nq(pr,1),l$b,8,15,[6,2,4,5])}\nfunction wBb(){wBb=ZF;vBb=uq(nq(or,1),Z_b,8,15,[2,2.5,2])}\nfunction nh(){nh=ZF;var a,b;b=!sh();a=new Ah;mh=b?new th:a}\nfunction RYb(){if(MYb==256){LYb=NYb;NYb=new S;MYb=0}++MYb}\nfunction RG(a){if(a==null){throw xF(new ZSb(N$b))}this.a=a}\nfunction NG(a){if(a==null){throw xF(new ZSb(N$b))}this.a=a}\nfunction $2(a){if(!Q3(a,_2b)){return}p2=new Eib(2);p2.nf()}\nfunction BP(a,b){AP(a,b);return CP((DI(),a.Sb).options[b])}\nfunction wc(a,b){Rb((Kc(),Ic),a,uq(nq(Vr,1),XYb,269,0,[b]))}\nfunction gg(){eg();return uq(nq(Os,1),XYb,206,0,[bg,cg,dg])}\nfunction oJ(a){return $wnd.decodeURI(a.replace('%23','#'))}\nfunction JL(){KL.call(this,(DI(),$doc.createElement(y$b)))}\nfunction tib(a,b){oib(this);this.n=a;this.t=b;this.d=false}\nfunction Zgb(a){var b,c;c=new QHb(a);b=_gb(c);b.b=b.k=true}\nfunction jNb(a){var b,c;b=new QHb(a);c=lNb(b);c.d=c.k=true}\nfunction GH(a,b){this.c=b;this.d=new LH(a);this.e=new LH(b)}\nfunction GG(a){this.b=0;this.c=0;this.a=9;this.e=5;this.d=a}\nfunction L4(a,b){a.Hb!=null&&ye(a.J,a.Hb);se(a.J,b);a.Hb=b}\nfunction LF(a,b){return AF(Pq(FF(a)?NF(a):a,FF(b)?NF(b):b))}\nfunction QF(a,b){return AF(Vq(FF(a)?NF(a):a,FF(b)?NF(b):b))}\nfunction Bp(){zp();return uq(nq(xv,1),XYb,203,0,[yp,xp,wp])}\nfunction $Q(){YQ();return uq(nq(xx,1),XYb,202,0,[VQ,WQ,XQ])}\nfunction wJ(a){AJ();BJ();return vJ((!bo&&(bo=new Em),bo),a)}\nfunction AW(a){if(a0?to(a,new CT(a,b,c,d)):xo(a,b,c,d)}\nfunction We(a,b,c){return no(!a.Pb?(a.Pb=new qo(a)):a.Pb,c,b)}\nfunction tTb(a,b,c){return c>=0&&iTb(a.substr(c,b.length),b)}\nfunction Hf(e,a,b,c,d){return e.createLinearGradient(a,b,c,d)}\nfunction qT(b,c,d){try{b.setSelectionRange(c,c+d)}catch(a){}}\nfunction rO(a,b,c,d){a.a.rf(b,c);pO(a.a.c,b,c).style[g_b]=d.a}\nfunction l5(a,b,c){if(b>0){a.p?(b=a.t[b-1].d):--b;a.s[b]+=c}}\nfunction FCb(a,b){var c;c=a.A.b;a.A=b;a.A.b!=c&&sCb(a,false)}\nfunction Wn(a,b){var c;if(Tn){c=new Un(b);!!a.Pb&&oo(a.Pb,c)}}\nfunction fL(a,b){if(b.Rb!=a){return null}return DI(),Zh(b.Sb)}\nfunction lSb(a){if(a.Sh()){return null}var b=a.j;return WF[b]}\nfunction $F(a){function b(){}\n;b.prototype=a||{};return new b}\nfunction wR(){if(!uR){uR=new vR;KK((DR(),HR()),uR)}return uR}\nfunction mRb(a){uRb=a;jRb=new E5;P3(jRb);wJ(new sRb);v5(jRb)}\nfunction Abb(a,b){jX();zX.call(this,a,b);this.e=wbb;ybb(this)}\nfunction eAb(a,b){jX();zX.call(this,a,b);this.bb|=2;dAb(this)}\nfunction K0(a,b){jX();m0.call(this,a,b);this.i='2*a';k0(this)}\nfunction c1(a,b){jX();m0.call(this,a,b);this.i='2*a';k0(this)}\nfunction Dkb(a,b){_U.call(this,a,b);this.c=6.73;this.d=0.0613}\nfunction pg(a,b){hg(this);this.f=b;this.g=a;jg(this);this.xe()}\nfunction gTb(a,b){return fTb(a.toLowerCase(),b.toLowerCase())}\nfunction dUb(a,b){return b===a?'(this Map)':b==null?lZb:_F(b)}\nfunction SSb(a){return ($wnd.Math.exp(a)+$wnd.Math.exp(-a))/2}\nfunction lr(a){return Math.max(Math.min(a,UYb),-2147483648)|0}\nfunction KI(a){DI();return a.__gwt_resolve?a.__gwt_resolve():a}\nfunction qk(){ok();return uq(nq(Wt,1),XYb,141,0,[nk,kk,lk,mk])}\nfunction Bk(){zk();return uq(nq(_t,1),XYb,142,0,[yk,wk,xk,vk])}\nfunction Mk(){Kk();return uq(nq(eu,1),XYb,143,0,[Jk,Ik,Gk,Hk])}\nfunction Xk(){Vk();return uq(nq(ju,1),XYb,144,0,[Rk,Sk,Tk,Uk])}\nfunction Aub(){Aub=ZF;yub=uq(nq(pr,1),l$b,8,15,[7,5,15,1,13])}\nfunction JS(){HS();return uq(nq(Vx,1),XYb,147,0,[DS,ES,FS,GS])}\nfunction nS(a){var b;b=Jh((DI(),a.Sb),S_b).length;b>0&&oS(a,b)}\nfunction VL(a,b){if(!a.Kb){return}dR(a.Jb,false,false);_n(a,b)}\nfunction Xub(a){if((a.bb&8)!=0)return;a.a=(a.bb&4)!=0?m$b:E5b}\nfunction O4(a){if(a.Wb){if(a.Wb.kb)return;I2(a);a.Wb.kb=true}}\nfunction UY(a){a.q=0;a.k=0;a.f=0;a.j=0;a.o=0;a.e=true;a.d=true}\nfunction hgb(a){a.k.a=0;a.mb[0]=a.mb[1]=a.V=0;a.o&&(a.mb[2]=0)}\nfunction yb(a){!!a.d&&wb(a);a.c=true;a.d=OSb(Eb(Cb(a,a.b),16))}\nfunction GCb(a,b){b<1&&(b=1);b>o$b&&(b=o$b);a.X=b;sCb(a,false)}\nfunction uUb(a,b){if(fr(b,216)){return cUb(a.a,b)}return false}\nfunction rg(b){if(!(EZb in b)){try{throw b}catch(a){}}return b}\nfunction DYb(a,b){if(a<0||a>b){throw xF(new ORb($6b+a+_6b+b))}}\nfunction GYb(a,b){if(a>b||a<0){throw xF(new NTb(Y6b+a+Z6b+b))}}\nfunction jSb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.Nh(b))}\nfunction Ejb(a){var b;for(b=0;b!=a.d.length;b++)a.b[b]=0;a.a=0}\nfunction tN(a,b,c){var d;d=b.Qb;if(d.b==c){return}d.b=c;KN(a.c)}\nfunction SO(a,b,c){var d;d=(a.a.sf(b),DI(),QO(a.a.c,b));Re(d,c)}\nfunction zK(a,b,c){_e(b);VS(a.k,b);DI();Ch(c,KI(b.Sb));af(b,a)}\nfunction Tkb(a,b,c){a.a.beginPath();Of(a.a,0,0,b,c);a.a.clip()}\nfunction kUb(a,b){return b==null?fUb(WWb(a.a,null)):mXb(a.b,b)}\nfunction p4(a,b){var c;r4(a,uYb((c=b,pYb(),c)),0);$M(a.zd,null)}\nfunction L9(a,b,c,d,e,f){t9.call(this,a,b,c,d,e,f);this.gb=true}\nfunction ydb(a,b){u9.call(this,a,b,false);this.gb=true;this.d=2}\nfunction VY(a,b){_U.call(this,a,b);UY(this);this.bb=3;this.n=0}\nfunction leb(a,b){keb();UW.call(this,a,b,1);this.e=1;this.d=h0b}\nfunction tIb(a,b){u9.call(this,a,b,false);this.gb=true;this.d=2}\nfunction j2(a,b,c,d){this.w=a;this.n=b;this.r=this.q=c;this.u=d}\nfunction Ngb(){this.q=c0b;this.r=0;this.e=1;this.a=0;Mgb(this)}\nfunction WOb(a,b,c,d,e){TOb();c8.call(this,a,b,c,d,e);UOb(this)}\nfunction JTb(a,b,c){a.a=vTb(a.a,0,b)+(''+c)+uTb(a.a,b);return a}\nfunction nUb(a,b,c){return b==null?XWb(a.a,null,c):nXb(a.b,b,c)}\nfunction oyb(a,b){return nyb(a,b.c,b.d)&&nyb(a,b.c+b.b,b.d+b.a)}\nfunction AYb(a,b){if(a<0||a>=b){throw xF(new ORb($6b+a+_6b+b))}}\nfunction HYb(a,b){if(a<0||a>=b){throw xF(new NTb($6b+a+_6b+b))}}\nfunction pK(a,b){for(var c in a){a.hasOwnProperty(c)&&b(c,a[c])}}\nfunction flb(a,b,c){b==0?a.setLineDash([]):a.setLineDash([b,c])}\nfunction VWb(a,b){var c;c=a.a.get(b);return c==null?new Array:c}\nfunction QJ(a){var b=a.__listener;return !ir(b)&&fr(b,24)?b:null}\nfunction D8(a,b){a.d=b;a.c=8*b;a.e=13*b;a.bb=a.bb&-3|(b==1?2:0)}\nfunction vX(a,b){a.o=b;a.p=8*b;a.q=a.p*2;a.bb&=-2;a.bb|=b==1?1:0}\nfunction ZZ(a){var b;for(b=0;b!=a.n;b++)a.mb[b]=a.p^a.Tg()?a.f:0}\nfunction M3(a,b){var c;c=lr(IXb(a.Gc,32));c<0&&(c=-c);return c%b}\nfunction WS(a,b){if(b<0||b>=a.c){throw xF(new NRb)}return a.a[b]}\nfunction Rh(a){if(Gh(a)){return !!a&&a.nodeType==1}return false}\nfunction rI(a){if(a.f){yT(a.f.a);a.f=null}a==a.e.g&&(a.e.g=null)}\nfunction M4(a){a.tb=a.fd.c?8:16;a.rb=~(a.tb-1);a.sb=(a.tb/2|0)-1}\nfunction Yub(a,b){a.j=b;a.i=8*b;a.k=13*b;a.bb=a.bb&-3|(b==1?2:0)}\nfunction ARb(a){if(a.a){a.a.b=DRb();a.a.c=a.a.b-a.a.e;a.a=a.a.d}}\nfunction fN(){dN.call(this);(DI(),this.Sb).className='Caption'}\nfunction vib(a,b){oib(this);this.n=a;this.q=b;this.d=this.p=true}\nfunction L0(a,b,c,d,e,f){jX();n0.call(this,a,b,c,d,e,f);J0(this)}\nfunction d1(a,b,c,d,e,f){jX();n0.call(this,a,b,c,d,e,f);b1(this)}\nfunction N5(){$wnd.openFile(function(a,b){Mqb(a,b);w2(u2,true)})}\nfunction _gb(a){var b,c;c=ccb(PHb(a));b=Wgb(c);Lgb(b,a);return b}\nfunction ii(a){var b;b=(a.scrollLeft||0)|0;di(a)&&(b=-b);return b}\nfunction Xh(a,b){var c=a.createElement('INPUT');c.type=b;return c}\nfunction To(a,b){ap('httpMethod',a);ap('url',b);this.a=a;this.d=b}\nfunction iG(a){this.b=new CG;this.c=new CVb;this.d=a;zG(this.b,a)}\nfunction iP(){iP=ZF;fP=new jP(H$b);gP=new jP(E_b);hP=new jP(F$b)}\nfunction gH(){gH=ZF;new RegExp('%5B','g');new RegExp('%5D','g')}\nfunction Gi(){Ei();return uq(nq(et,1),XYb,132,0,[Ci,Ai,zi,Bi,Di])}\nfunction Sl(){Ql();return uq(nq(Cu,1),XYb,133,0,[Ll,Ml,Nl,Ol,Pl])}\nfunction XH(a){if(!a.r){return}a.r=false;if(a.c){a.c=false;WH(a)}}\nfunction KN(a){a.c=0;a.b=false;if(!a.e){a.e=true;gh((dh(),bh),a)}}\nfunction JM(a,b,c){DI();if(!CI){a.qb=true;LI(a.Sb);a.ob=b;a.pb=c}}\nfunction Ceb(a,b){a.b=b;a.a=rq(or,Z_b,8,a.b,15,1);a.d=0;a.c=false}\nfunction Qwb(a){a.b=rq(uF,P0b,8,0,16,1);a.c=0;a.a=false;a.e=false}\nfunction uDb(a,b,c){fO(b,a.N,a.M,c);if(++a.M>=a.s.a){a.M=0;++a.N}}\nfunction ldb(a,b){jX();zX.call(this,a,b);this.A[2].A=!this.A[1].A}\nfunction sEb(a,b){this.d=a;this.a=b;this.c=new $Xb;this.b=new $Xb}\nfunction uWb(a,b){if(b.$modCount!=a.$modCount){throw xF(new xWb)}}\nfunction Fvb(a){if(a.f==2)return null;return TXb(a.w,a.f==0?20:4)}\nfunction VXb(a){zYb(a.a.a.length!=0);return TXb(a,a.a.a.length-1)}\nfunction MVb(a){zYb(a.ab+1)return b+1;if(a=0&&b<$wnd[a].length?$wnd[a].key(b):null}\nfunction Phb(a){return $wnd.Math.abs(a-OF(CF($wnd.Math.round(a))))}\nfunction ji(a){return a.tabIndex=a.oc.a.a.length)return null;return TXb(a.oc,b)}\nfunction G3(a,b){if(b>=a.ab.a.a.length)return null;return TXb(a.ab,b)}\nfunction xT(c,a){var b=c;c.onreadystatechange=SYb(function(){a.$e(b)})}\nfunction NU(a,b,c){a.nb+=b;a.pb+=c;a.ob+=b;a.qb+=c;syb(a.U,b,c);a.wg()}\nfunction sV(a,b,c,d,e){a.a.lineWidth=3;Ukb(a,b,c,d,e);a.a.lineWidth=1}\nfunction s$(a,b,c,d,e,f,g,h,i){d>=0&&e>=0&&a.ellipse(b,c,d,e,f,g,h,i)}\nfunction f5(a,b,c,d){h5(a,b,b,d);h5(a,c,c,d);h5(a,b,c,-d);h5(a,c,b,-d)}\nfunction dP(a){return a==(zp(),xp)?(aP(),_O):a==yp?(aP(),YO):(aP(),ZO)}\nfunction eP(a){return a==(zp(),xp)?(aP(),YO):a==yp?(aP(),_O):(aP(),$O)}\nfunction OR(a){return QR(a)?0:((a.scrollWidth||0)|0)-(a.clientWidth|0)}\nfunction PR(a){return QR(a)?(a.clientWidth|0)-((a.scrollWidth||0)|0):0}\nfunction ni(a){!a.gwt_uid&&(a.gwt_uid=1);return 'gwt-uid-'+a.gwt_uid++}\nfunction Dmb(a,b){_U.call(this,a,b);this.gb=true;this.f=0.5;this.c=SZ}\nfunction hOb(a,b){_U.call(this,a,b);this.s=93;this.k=680;this.gb=true}\nfunction qkb(a,b){jX();zX.call(this,a,b);this.bb|=2;this.n=4;pkb(this)}\nfunction g7(a,b){this.a=b;this.b=a.Cd[0];this.c=a.Cd[4];this.d=a.Cd[5]}\nfunction CEb(a,b){if(b!=a.e){a.e=b;a.c.t=a.o[b];a.i.rg(0,a.c);g4(a.n)}}\nfunction VBb(a,b,c){if(a.A.d+a.A.a<=a.$+5)return;Ykb(b,c,0,a.$);a.$+=15}\nfunction REb(a,b){if(a.e){if(a.d){a.k=OEb(a,b);SEb(a);!!a.c&&a.c.Ae()}}}\nfunction mqb(a,b){jX();zX.call(this,a,b);kqb(this);this.bb|=2;lqb(this)}\nfunction SHb(a,b,c){this.b=a.length;this.e=a;this.a=b;this.d=c;this.c=0}\nfunction rXb(a){this.d=a;this.b=this.d.a.entries();this.a=this.b.next()}\nfunction ZI(a){a.e=false;a.f=null;a.a=false;a.b=false;a.c=true;a.d=null}\nfunction YZ(a,b){a.c=b;a.d=7*b;a.e=14*b;a.b=8*b;a.bb&=-2;a.bb|=b==1?1:0}\nfunction wib(a,b){var c;c=new uib('',0,-1,-1);c.b=new X1(a,b);return c}\nfunction hTb(a,b){var c;c=b.length;return iTb(a.substr(a.length-c,c),b)}\nfunction cp(a){var b=/\\+/g;return decodeURIComponent(a.replace(b,'%20'))}\nfunction Ig(){if(Date.now){return Date.now()}return (new Date).getTime()}\n", +"function Wg(b){Tg();return function(){return Xg(b,this,arguments);var a}}\nfunction JN(){HN();return uq(nq(Lw,1),XYb,151,0,[EN,BN,FN,GN,AN,DN,CN])}\nfunction JI(a){DI();!!CI&&a==CI&&(CI=null);PJ();(XJ(),TJ)==a&&(TJ=null)}\nfunction UI(a){DI();!!CI&&a==CI&&(CI=null);PJ();(XJ(),TJ)==a&&(TJ=null)}\nfunction HO(a){while(++a.b>22&s$b;d=a<0?t$b:0;return zq(b,c,d)}\nfunction DJ(){var a;if(pJ){a=new JJ;!!qJ&&oo(qJ,a);return a.a}return null}\nfunction i0(){if(WT.rd<10)return h0b;if(WT.rd<200)return I$b;return 0.1}\nfunction Z2(a,b){I2(a);o4(a);if(r2){aM(r2);r2=null}r2=new Thb(b,a);NM(r2)}\nfunction JBb(a,b){a.u=a._;OXb(a.u,b._);b.u.a.a=rq(DE,XYb,1,0,5,1);EBb(a)}\nfunction Mgb(a){a.t=a.e*c5b;a.s=1/a.t;a.j=$wnd.Math.log(1/a.q+1)*a.e*c5b}\nfunction X3(a,b){q4(a,b.a,2);a.Cd[0]=a.Cd[3]=b.b;a.Cd[4]=b.c;a.Cd[5]=b.d}\nfunction tV(a,b,c){a.a.lineWidth=3;Ukb(a,b.a,b.b,c.a,c.b);a.a.lineWidth=1}\nfunction oT(a,b,c,d,e){mT();this.d=a;this.b=b;this.c=c;this.e=d;this.a=e}\nfunction lib(a,b,c){Khb();Thb.call(this,a,b);this.b=a;this.a=c;_e(this.c)}\nfunction Bib(a,b,c){Khb();Thb.call(this,a,b);this.a=a;this.b=c;_e(this.c)}\nfunction cwb(a,b){$vb();e8.call(this,a,b,Zvb,Yvb);this.gb=true;_vb(this)}\nfunction FPb(a,b){UW.call(this,a,b,7);this.c=v0b;this.n=this.o;EPb(this)}\nfunction LXb(a,b){this.b=', ';this.d=a;this.e=b;this.c=this.d+(''+this.e)}\nfunction Tzb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.a=wSb(uSb(PHb(f)))}\nfunction d5(a,b,c,d,e){var f;f=a.oc.a.a.length+d;h5(a,b,f,e);h5(a,c,f,-e)}\nfunction eG(a,b,c){var d,e;d=wG(a.d,b);e=new tG(d,b,c);rVb(a.c,e);return e}\nfunction ERb(a,b,c){if(!lUb(a.a,b)){nUb(a.a,b,c);return true}return false}\nfunction AK(a,b,c){var d;BK(a,c);if(b.Rb==a){d=XS(a.k,b);d=(DI(),a.Sb).options.length){throw xF(new NRb)}}\nfunction _P(a){if(eQ(a)){return}a.o?!!a.g&&!a.g.o?hQ(a.g):QP(a,true):hQ(a)}\nfunction gi(b){try{return b.getBoundingClientRect().top}catch(a){return 0}}\nfunction ei(a){var b;b=fi(a)+$wnd.pageXOffset;di(a)&&(b+=hi(a));return b|0}\nfunction nJ(){var a;a=SYb(jJ);$wnd.addEventListener('hashchange',a,false)}\nfunction fTb(a,b){var c,d;c=(BYb(a),a);d=(BYb(b),b);return c==d?0:c0)b[--a]=new gxb;return b}\nfunction rq(a,b,c,d,e,f){var g;g=sq(e,d);e!=10&&uq(nq(a,f),b,c,e,g);return g}\nfunction Aob(a,b){var c;c=(a.c-b+1)*10;c=OF(CF($wnd.Math.round(c)));return c}\nfunction VEb(a,b){ba.g&&(b=a.g);a.k=b;SEb(a);!!a.c&&a.c.Ae()}\nfunction Ukb(a,b,c,d,e){a.a.beginPath();Nf(a.a,b,c);Lf(a.a,d,e);a.a.stroke()}\nfunction mjb(a,b,c){this.a=new $Xb;NXb(this.a,a);!!b&&NXb(this.a,b);this.b=c}\nfunction hGb(a,b){bGb();zX.call(this,a,b);this.a=this.j=7;this.d=0;fGb(this)}\nfunction CLb(a,b){Nh(ue(a.d),F6b+vTb(b?H6b:I6b,5,(b?H6b:I6b).length-5)+G6b)}\nfunction pKb(a){a.n=uq(nq(pr,1),l$b,8,15,[6,1,8,3,10,5,7,9,11,12]);a.o=37}\nfunction ll(){jl();return uq(nq(tu,1),XYb,71,0,[il,gl,bl,cl,hl,fl,dl,al,el])}\nfunction HI(b){DI();try{return !!b&&!!b.__gwt_resolve}catch(a){return false}}\nfunction EI(a,b){DI();var c;c=QJ(b);if(!c){return false}FI(a,b,c);return true}\nfunction vq(a,b){oq(b)!=10&&uq(W(b),b.hi,b.__elementTypeId$,oq(b),a);return a}\nfunction s9(a,b){_U.call(this,a,b);this.o=false;this.q=0;this.p=2;this.n=null}\nfunction WN(a,b){var c;c=a.qf();if(b>=c||b<0){throw xF(new ORb(B_b+b+C_b+c))}}\nfunction vU(a){var b,c;b=a.nb;c=a.pb;a.nb=a.ob;a.pb=a.qb;a.ob=b;a.qb=c;a.wg()}\nfunction rAb(a){var b;b=new gxb;JU(a.ib,a.jb,b,1,WT.tb*a.g);a.ob=b.a;a.qb=b.b}\nfunction CUb(a){EYb(!!a.c);uWb(a.e,a);a.c.vf();a.c=null;a.b=AUb(a);vWb(a.e,a)}\nfunction lL(a,b){if(!a.e){a.hf();a.e=true}return We(a,b,(!ho&&(ho=new Em),ho))}\nfunction zL(a){if(!a.n){throw xF(new CSb('initWidget() is not called yet'))}}\nfunction fS(a){if(!a.a||!a.c.Mb){throw xF(new AXb)}a.a=false;return a.b=a.c.Mb}\nfunction JF(a){var b;if(FF(a)){b=0-a;if(!isNaN(b)){return b}}return AF(Oq(a))}\nfunction Wh(a){var b=a.createElement('INPUT');b.type=_Yb;b.value='on';return b}\nfunction _h(a){var b=a.button;if(b==1){return 4}else if(b==2){return 2}return 1}\nfunction bi(a,b){var c;c=a.createElement('script');c.textContent=b||'';return c}\nfunction RS(a,b){var c,d;d=(DI(),Zh(b.Sb));c=GK(a,b);c&&Fh(a.i,Zh(d));return c}\nfunction EK(a,b,c,d){d=AK(a,b,d);_e(b);YS(a.k,b,d);DI();Ch(c,KI(b.Sb));af(b,a)}\nfunction Ogb(a,b,c,d,e){this.q=a;this.r=b;this.e=c;this.a=d;this.c=e;Mgb(this)}\nfunction ihb(){Tfb.call(this);this.f=null;this.i=null;this.d=null;this.kb=true}\nfunction E8(a,b){C8();e8.call(this,a,b,B8,A8);this.gb=true;D8(this,WT.fd.c?1:2)}\nfunction X_(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);this.a=wSb(uSb(PHb(f)))}\nfunction u9(a,b,c){_U.call(this,a,b);this.q=c?1:0;this.o=c;this.p=2;this.n=null}\nfunction Kjb(a,b,c,d,e,f){VW.call(this,a,b,c,d,e,f);this.a=ccb(PHb(f));this.r=1}\nfunction cgb(a,b){dgb(a,b);a.V=$U(a.W,a.V);WT.O!=a&&qU(b,a.ib,a.jb,a.V);tU(a,b)}\nfunction Ohb(a){HM(a,false);p2==a&&(p2=null);r2==a&&(r2=null);o2==a&&(o2=null)}\nfunction mCb(a){return a.s&&a.u.a.a.length==2&&TXb(a.u,0).v==6&&TXb(a.u,1).v==2}\nfunction ZP(a){if(eQ(a)){return}!a.k&&a.o?hQ(a):!!a.g&&a.g.o?hQ(a.g):QP(a,true)}\nfunction I3(a){if(a.gd.k==0)return 0;return 0.1*$wnd.Math.exp((a.gd.k-61)/24)}\nfunction vXb(a){if(a.a.d!=a.c){return mXb(a.a,a.b.value[0])}return a.b.value[1]}\nfunction bT(a){if(a.b>=a.c.c){throw xF(new AXb)}a.a=a.c.a[a.b];++a.b;return a.a}\nfunction CYb(a){if(!a){throw xF(new ZSb('Cannot suppress a null exception.'))}}\nfunction pYb(){pYb=ZF;new vYb;new rYb('ISO-LATIN-1');new rYb('ISO-8859-1')}\nfunction zp(){zp=ZF;yp=new Ap('RTL',0);xp=new Ap('LTR',1);wp=new Ap('DEFAULT',2)}\nfunction $q(){$q=ZF;Wq=zq(s$b,s$b,524287);Xq=zq(0,0,u$b);Yq=xq(1);xq(2);Zq=xq(0)}\nfunction tP(a){var b,c;for(c=new cT(a.k);c.b1&&(d=0.5*d);return c?JDb(2*d/a.n):2*d/a.n}\nfunction exb(a,b){var c,d;c=false;if(fr(b,19)){d=b;c=a.a==d.a&&a.b==d.b}return c}\nfunction Vkb(a,b,c){a.a.beginPath();Nf(a.a,b.a,b.b);Lf(a.a,c.a,c.b);a.a.stroke()}\nfunction Sab(a,b,c,d,e,f){c8.call(this,a,b,c,d,e);this.c=ccb(PHb(f));Qab(this,f)}\nfunction PLb(a,b,c,d,e,f){this.a=a;this.c=b;this.f=c;this.d=d;this.b=e;this.e=f}\nfunction uib(a,b,c,d){oib(this);this.n=a;this.t=b;this.d=false;this.k=c;this.i=d}\nfunction aNb(a,b){this.e=a;this.v=b;this.g=this.i=1;this.s=1.5;this.r=2;this.c=1}\nfunction w7(a,b){UW.call(this,a,b,2);this.o=2.5;this.i=2.5;this.n=100;this.bb|=1}\nfunction b2(a){IQ.call(this,a,null);$1(this);this.e=this;this.b=a;a2(this,false)}\nfunction Lb(a,b){Rb((Kc(),Jc),a,uq(nq(pE,1),XYb,249,8,[(SRb(),b?true:false)]))}\nfunction uVb(a,b,c){for(;c=1&&a.Mg(b-1,c)}\nfunction Uq(a){if(Lq(a,($q(),Zq))<0){return -Iq(Oq(a))}return a.l+a.m*v$b+a.h*w$b}\nfunction T3(a){if(!a)return false;var b=getComputedStyle(a);return b.display!=xZb}\nfunction oq(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$}\nfunction BUb(a){var b;uWb(a.e,a);zYb(a.b);a.c=a.a;b=a.a.uf();a.b=AUb(a);return b}\nfunction qjb(a){var b;b=sjb(a);while(Cjb(a,'&&')){b=new mjb(b,sjb(a),34)}return b}\nfunction xjb(a){var b;b=qjb(a);while(Cjb(a,'||')){b=new mjb(b,qjb(a),33)}return b}\nfunction Yh(a){var b=a.firstChild;while(b&&b.nodeType!=1)b=b.nextSibling;return b}\nfunction I2(a){var b,c;for(c=0;c!=a.ab.a.a.length;c++){b=G3(a,c);b.kb=false}t3(a)}\nfunction rCb(a,b){var c;if(ba.b+a.i&&HRb(b,a.b+a.i)>=53){c=a.b+a.i-1;Yp(a,b,c)}}\nfunction ab(a,b,c,d){$(a);a.o=true;a.p=false;a.k=b;a.t=c;a.n=d;++a.r;ib(a.j,Ig())}\nfunction lQb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.k=vSb(PHb(f),10);jQb(this)}\nfunction TIb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);this.A[2].A=!this.A[1].A}\nfunction TAb(a,b){jX();zX.call(this,a,b);this.b=this.d=4;this.g=new JWb;SAb(this)}\nfunction qY(a,b){_U.call(this,a,b);this.c=5;this.a=m$b;this.d=40;this.b=0;this.V=0}\nfunction SN(){TN.call(this,Xh($doc,y_b));(DI(),this.Sb).className='gwt-FileUpload'}\nfunction aM(a){(DI(),a.Sb).style[M$b]=C$b;!!a.zb&&(a.zb.style[M$b]=C$b,undefined)}\nfunction ZMb(a){if(a.e==null||iTb(a.e,a.t))return a.t;return a.t+X2b+xRb(a.e)+')'}\nfunction iq(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)}\nfunction eCb(a){var b;if(a._.a.a.length==0)return 'V';b=TXb(a._,0);return SCb(b.u)}\nfunction sjb(a){var b;b=rjb(a);if(Cjb(a,'=='))return new mjb(b,rjb(a),35);return b}\nfunction PS(a){var b;b=(DI(),$doc.createElement('td'));gL(b,a.a);hL(b,a.b);return b}\nfunction X7(a){var b,c;c=0;for(b=0;ba.Y._.a.a.length)return;b=a.Q.k;ECb(a.Y,a.P,b)}\nfunction v2(a,b){var c;if(a.Ab){c=DK(a.Id,a.Ab);QS(a.Id,b,c);X4(a)}else OS(a.Id,b)}\nfunction fh(a){var b,c;if(a.b){c=null;do{b=a.b;a.b=null;c=kh(b,c)}while(a.b);a.b=c}}\nfunction eh(a){var b,c;if(a.a){c=null;do{b=a.a;a.a=null;c=kh(b,c)}while(a.a);a.a=c}}\nfunction S2(a){var b,c;b=DK(a.Id,a.Nb);c=new Kqb(a);QS(a.Id,c,b);FK(a.Id,b+1);a.Nb=c}\nfunction Cfb(a){a.c=new agb(WT);a.d=new agb(WT);$fb(a.c,Wgb(F4b));$fb(a.d,Wgb(F4b))}\nfunction Enb(a){a.C=new agb(WT);$fb(a.C,Wgb(F4b));a.D=new agb(WT);$fb(a.D,Wgb(F4b))}\nfunction LNb(a){a.g=new agb(WT);$fb(a.g,Wgb(F4b));a.i=new agb(WT);$fb(a.i,Wgb(F4b))}\nfunction xnb(a){a.r=1;a.s=2;a.o=4;a.p=8;a.q=16;a.k=32;a.n=64;a.j=a.q|a.o;a.O=0;a.J=0}\nfunction UOb(a){var b;a.gb=true;a.bb|=1;b=new RHb(ROb,'/');Z7(a,b,SOb,QOb);WT.b=true}\nfunction AEb(a,b){var c;a.b+=b/(window.devicePixelRatio||1);c=BEb(a);CEb(a,c);DEb(a)}\nfunction Jo(a,b){var c,d;if(!a.d){return}wb(a.c);d=a.d;a.d=null;c=new _o(d);b.af(a,c)}\nfunction bK(a,b){var c=SJ;var d=c[b]||c['_default_'];a.addEventListener(b,d,false)}\nfunction SF(){TF();var a=RF;for(var b=0;b0;a.n=a.o?2:1;eU(a)}\nfunction eSb(a){var b;b=new cSb;b.k='Class$'+(a?'S'+a:''+b.g);b.b=b.k;b.i=b.k;return b}\nfunction JDb(a){var b,c;a=a*1.001;c=d0b;for(b=0;c=a._.a.a.length)return;IBb(a);TXb(a._,b).j=c;TXb(a._,b).k=true}\nfunction Xxb(a){a.u=0;a.a=0;a.B=0;a.k=0;a.o=0;a.f=0;a.s=0;a.e=0;a.w=0;a.g=true;a.d=true}\nfunction H4(a){var b,c,d;c=a.g;d=a.i;b=lr(c*a.Sc);a.Qc==0&&(b=0);a.j=new vyb(0,0,d,c-b)}\nfunction J2(a){var b;for(b=a.Qc-2;b>=0;b--){JBb(a.Wc[b],a.Wc[b+1]);yCb(a.Wc[b+1],null)}}\nfunction wF(a){var b;if(fr(a,37)){return a}b=a&&a[DZb];if(!b){b=new Fg(a);oh(b)}return b}\nfunction jU(a,b,c){var d;d=new yxb;wxb(d,a.a,a.b);wxb(d,b.a,b.b);wxb(d,c.a,c.b);return d}\nfunction FI(a,b,c){DI();var d;d=BI;BI=a;b==CI&&OJ(a.type)==8192&&(CI=null);c.le(a);BI=d}\nfunction VF(a,b){typeof window===TYb&&typeof window['$gwt']===TYb&&(window['$gwt'][a]=b)}\nfunction ir(a){return a!=null&&(typeof a===TYb||typeof a==='function')&&!(a.ii===aG)}\nfunction HXb(a){return IXb(a,26)*1.4901161193847656E-8+IXb(a,27)*1.1102230246251565E-16}\nfunction jQb(a){a.j=rq(pr,l$b,8,2,15,1);a.c=rq(or,Z_b,8,2,15,1);a.b=rq(or,Z_b,8,2,15,1)}\nfunction j0(a,b){var c;oX(a,b);for(c=0;b[c]!=null;c++);b[c]=$_b+WV(a.A[a.j].i,'A',false)}\nfunction UEb(a,b){!!b.a&&(b.a.preventDefault(),undefined);a.e&&VEb(a,a.k+(ci(b.a)/3|0))}\nfunction di(a){return a.ownerDocument.defaultView.getComputedStyle(a,'').direction=='rtl'}\nfunction ri(a){return ((iTb(a.compatMode,MZb)?a.documentElement:a.body).scrollWidth||0)|0}\nfunction T4(a){if(a.Cc.c){Ee(a.Dc,AZb,false);TEb(a.Bc)}else{Ee(a.Dc,AZb,true);PEb(a.Bc)}}\nfunction sP(a,b,c){var d;_e(b);YS(a.k,b,c);d=eG(a.a,(DI(),b.Sb),b);b.Qb=d;af(b,a);KN(a.b)}\nfunction sX(a){var b;for(b=0;b!=a.ag();b++){a.A[b].A=false;a.A[b].g=0;a.mb[b]=0}a.w=false}\nfunction FBb(a){var b;if(a._.a.a.length==0)return false;b=SXb(a._);return b.u==0||b.u==1}\nfunction Bpb(a){var b;if(!wpb)return null;b=kUb(wpb,a);if(!b)return null;return OSb(b.a)}\nfunction s4(a){var b;b=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);if(!b)return;a.v=rH(b.a,p4b)}\nfunction t1(a){var b;b=a.mb[0]-a.mb[a.c];if(WT.L){a.W=b/W0b;return}a.e>0&&(a.W=b/a.e+a.f)}\nfunction eK(a){var b;b=!II(a);if(b||!TJ){return}EI(a,TJ)&&(a.stopPropagation(),undefined)}\nfunction IM(a,b){var c;c=b.target;if(Rh(c)){return mi(Zh((DI(),zM(a.tb))),c)}return false}\nfunction xxb(a,b){var c,d;d=rq(pr,l$b,8,b,15,1);for(c=0;c=0)++a.c}return a.cd){f=b;b=d;d=f}if(c>e){f=c;c=e;e=f}ryb(a.U,b,c,d-b+1,e-c+1)}\nfunction rkb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);(this.bb&2)!=0||(this.n=1);pkb(this)}\nfunction mdb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);this.A[2].A=!this.A[1].A;this.a=true}\nfunction mnb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);this.A[4].A=!this.A[3].A;this.a=true}\nfunction job(a,b,c){Hnb.call(this,a,b,c);this.gb=true;this.e=new agb(WT);$fb(this.e,Wgb(F4b))}\nfunction $yb(a,b){_U.call(this,a,b);this.gb=true;this.g=0.05;this.f=i0b;this.c=j_b;this.bb|=4}\nfunction mpb(a,b){mgb.call(this,a,b);this.q=lpb;kgb(this);this.g=I$b;this.c=1;this.b=this.a=0}\nfunction MJb(a,b){G_.call(this,a,b);this.c='hello';this.a=new $Xb;NXb(this.a,this.c);this.b=24}\nfunction Tab(a,b,c){b8.call(this,a,b);this.c=c;this.bb|=1;WT.fd.c&&(this.bb|=2);Qab(this,null)}\nfunction lO(){gO.call(this);bO(this,new tO(this));dO(this,new TO(this));cO(this,new PO(this))}\nfunction YJb(a,b){return OF(CF($wnd.Math.round(a.f*$wnd.Math.exp(a.a*(1/(b+a.n)-1/a.o)))))}\nfunction wJb(a){a.B=0;a.v=0;a.n=0;a.p=0;a.e=0;a.q=0;a.a=0;a.u=0;a.d=0;a.w=0;a.f=true;a.c=true}\nfunction i_(a){a.g=0;a.n=0;a.q=uq(nq(pr,1),l$b,8,15,[8000,11025,16000,22050,44100,48000])}\nfunction CP(a){var b;b=a.text;a.hasAttribute(G_b)&&b.length>1&&(b=vTb(b,1,b.length-1));return b}\nfunction BU(a,b,c){var d,e;for(d=0;d!=a.ag();d++){e=a._f(d);if(e.a==b&&e.b==c)return d}return 0}\nfunction wX(a,b,c){var d,e;for(d=0;d!=a.ag();d++){e=a.A[d];if(e.k&&b--==0){e.B=c;return}}PTb()}\nfunction eO(a,b,c){var d;jO(a,b,0);d=XN(a,b,0,c==null);c!=null&&(d.textContent=c||'',undefined)}\nfunction lo(a,b,c){var d;if(!!ho&&b!=c&&(b==null||(BYb(b),b!=c))){d=new io;!!a.Pb&&oo(a.Pb,d)}}\nfunction J_(a,b){G_.call(this,a,b);this.ob=a;this.qb=b;SU(this,this.nb,this.pb,this.ob,this.qb)}\nfunction Jvb(a,b){Evb();b8.call(this,a,b);this.gb=true;this.k=0.6;this.c=S5b;this.f=0;Hvb(this)}\nfunction JP(){pf.call(this,$doc.createElement('select'));(DI(),this.Sb).className='gwt-ListBox'}\nfunction mL(a){return a.Nb?(SRb(),a.c.checked?true:false):(SRb(),a.c.defaultChecked?true:false)}\nfunction CQ(a,b){b?Ee(a,Me((DI(),a.Sb))+'-'+AZb,false):Ee(a,Me((DI(),a.Sb))+'-'+AZb,true);a.f=b}\nfunction Cob(a){UU(a);hU(a,32);a.e=a.g.k*J5b+p5b;a.b=a.c*a.e+a.d;a.f=Aob(a,a.b);new gxb;new gxb}\nfunction Ggb(a){a.d=true;return '34 '+Zbb(a.n)+' '+a.f+' '+a.q+' '+a.r+' '+a.e+' '+a.a+' '+a.g}\nfunction yEb(){yEb=ZF;xEb=uq(nq(or,1),Z_b,8,15,[1,1.2,1.5,1.8,2.2,2.7,3.3,3.9,4.7,5.6,6.8,8.2])}\nfunction Gjb(){this.d=rq(or,Z_b,8,9,15,1);this.b=rq(or,Z_b,8,9,15,1);this.d[4]=2.718281828459045}\nfunction xqb(a,b){G_.call(this,a,b);this.ob=a;this.qb=b;SU(this,this.nb,this.pb,this.ob,this.qb)}\nfunction qL(a){pL.call(this,(DI(),Wh($doc)));this.Sb.className='gwt-CheckBox';mN(this.b,a,false)}\nfunction F8(a,b,c,d,e,f){C8();d8.call(this,a,b,c,d,e,f,B8,A8);this.gb=true;D8(this,(e&2)!=0?1:2)}\nfunction yCb(a,b){a.u=new $Xb;fr(b,148)?(a.u=new $Xb,yBb(a,6,b)):(a.u=new $Xb,yBb(a,0,b));lCb(a)}\nfunction QH(a,b){var c,d;d=b.b-a.b;if(d<=0){return null}c=HH(a.a,b.a);return new KH(c.a/d,c.b/d)}\nfunction RBb(a,b){var c,d;d=rq(JE,XYb,2,1,6,1);bCb(a).Wf(d);for(c=0;d[c]!=null;c++)VBb(a,b,d[c])}\nfunction Bob(a){var b;v2(WT,a.a=new bN(a.i));se(a.a,H0b);b=lr(a.e*100);v2(WT,a.g=new YEb(b,a,a))}\nfunction ZJb(a){var b;v2(WT,a.b=new bN(a.k));se(a.b,H0b);b=lr(a.e*100);v2(WT,a.j=new YEb(b,a,a))}\nfunction DP(a){var b;b=(DI(),a.Sb).selectedIndex;return b==-1?null:(AP(a,b),CP(a.Sb.options[b]))}\nfunction AF(a){var b;b=a.h;if(b==0){return a.l+a.m*v$b}if(b==t$b){return a.l+a.m*v$b-w$b}return a}\nfunction Me(a){var b,c;b=a.className||'';c=kTb(b,yTb(32));if(c>=0){return b.substr(0,c)}return b}\nfunction II(a){DI();var b;b=bJ(OI,a);if(!b&&!!a){a.stopPropagation();a.preventDefault()}return b}\nfunction R2(a){var b,c,d;d=0;for(c=new OVb(a.ab.a);c.a=a.d.a.length){throw xF(new AXb)}b=tVb(a.d,a.b);a.a=a.b;HO(a);return b}\nfunction zBb(a){if(a.i){Ie(a.i,a.A.b+'PX');Ce(a.i,a.A.a+'PX');yf(a.i,a.A.b);xf(a.i,a.A.a);IBb(a)}}\nfunction UZ(a){var b;b=QU(4);KU(a.eb,a.fb,b[0],b[1],0,a.g);KU(a.eb,a.fb,b[3],b[2],1,a.g);a.a=lU(b)}\nfunction yjb(a){var b;b=zjb(a);while(true){if(Cjb(a,'^'))b=new mjb(b,zjb(a),9);else break}return b}\nfunction j3(a,b,c){var d,e;d=b-a.R;e=c-a.S;if(d==0&&e==0)return;a.Cd[4]+=d;a.Cd[5]+=e;a.R=b;a.S=c}\nfunction XJb(a){var b,c;b=a.n+25;c=a.n+50;return ($wnd.Math.log(a.f)-$wnd.Math.log(a.g))/(1/b-1/c)}\nfunction CF(a){if(x$b>22);e=a.h+b.h+(d>>22);return zq(c&s$b,d&s$b,e&t$b)}\nfunction Tq(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return zq(c&s$b,d&s$b,e&t$b)}\nfunction C4(a,b){if(a.Tc<0)return false;if(a.Tc6||c<-6)return 100;b==100&&(b=0);c%=8;return b+c}\nfunction E2(a){var b;if(!fr(a,152))return false;b=a;if(b.nb==b.ob||b.pb==b.qb)return true;return false}\nfunction F2(a,b){if(a.Qc<2)return false;b==0&&(b=1);if(a.Wc[b].v==a.Wc[b-1].v)return false;return true}\nfunction yRb(a,b){var c;c=zRb(a.a);if(!a.a){a.a=c;if(!a.b){a.c=b;a.b=a.a}}else{ERb(a.a,b,c)&&(a.a=c)}}\nfunction aO(a,b){var c,d,e;d=a.a;for(c=0;cb){return 1}if(a==b){return 0}return isNaN(a)?isNaN(b)?0:1:-1}\nfunction sVb(a,b){var c,d;c=AVb(b.a);d=c.length;if(d==0){return false}mYb(a.a,a.a.length,c);return true}\nfunction PY(a){var b,c;for(c=0;c!=u2.c.a.a.length;c++){b=TXb(u2.c,c);if(b.i==a)return true}return false}\nfunction mg(a){var b,c,d,e;for(b=(a.j==null&&(a.j=(nh(),e=mh.Ce(a),ph(e))),a.j),c=0,d=b.length;c=48&&c<=57&&JRb(a,d,c-48+b&LZb)}}\nfunction TU(a,b,c,d){var e,f;SU(a,b.a,b.b,c.a,c.b);e=lr(a.Y*d);f=lr(a.Z*d);bU(a,b.a+e,b.b+f,b.a-e,b.b-f)}\nfunction fO(a,b,c,d){var e;a.rf(b,c);e=XN(a,b,c,true);if(d){_e(d);kK(a.i,d);DI();Ch(e,KI(d.Sb));af(d,a)}}\nfunction O7(a,b,c){K7();var d;d=1-c;this.d=lr(a.d*d+b.d*c);this.c=lr(a.c*d+b.c*c);this.a=lr(a.a*d+b.a*c)}\nfunction Zjb(a,b){_U.call(this,a,b);Wjb(this);this.b=200;this.f=5;this.a=800;this.g=40;this.c=0;this.V=0}\nfunction TSb(a,b){return !isNaN(a)&&!isFinite(a)||!isNaN(b)&&!isFinite(b)?p$b:$wnd.Math.sqrt(a*a+b*b)}\nfunction ej(){cj();return uq(nq(xt,1),XYb,41,0,[Pi,Mi,Oi,Wi,Si,Qi,Ti,Ui,Vi,Yi,Zi,$i,bj,_i,aj,Ri,Ni,Xi])}\nfunction F4(a){var b,c,d;d=rq(OC,XYb,159,20,0,1);b=0;for(c=0;c=a.k&&(b=a.k-1);return b}\nfunction TVb(a){var b,c,d,e;e=1;for(c=0,d=a.length;c1||b>=0&&a.b<3}\nfunction OY(a,b){var c;if(a.i){OY(a.i,b);return}c=lr((b-a.f)*100/(a.e-a.f));a.g=true;VEb(a.j,c);a.g=false}\nfunction o3(a,b){var c;c=a.g;c<1&&(c=1);a.Sc=1-b/c;a.Sc<0.1&&(a.Sc=0.1);a.Sc>0.9&&(a.Sc=0.9);H4(a);y4(a)}\nfunction m_(a){a.c=lr(a.p*a.j);a.b=rq(or,Z_b,8,a.c,15,1);a.i=WT.td;a.e=0;a.d=false;a.o=1/a.p;a.n=WT.td+a.o}\nfunction wtb(a){a.t=iNb(a.u,a.t);a.u=a.t.t;a.C=c5b*$wnd.Math.log(c5b/($wnd.Math.sqrt(2)*a.t.v));a.gb=true}\nfunction fGb(a){a.j=a.a;a.f>0&&++a.j;if(a.d==0){a.i=a.j;a.b=-1}else{a.i=a.j+1;a.b=a.i-1}eU(a);gGb(a);uX(a)}\nfunction aIb(a,b){_U.call(this,a,b);this.a=1;this.i=20;this.f=4000;this.g=5;this.k=0.1;this.bb=2;$Hb(this)}\nfunction rV(a,b,c,d){a.a.lineWidth=3;a.a.beginPath();Ef(a.a,b,c,d*0.98,0,WYb);a.a.stroke();a.a.lineWidth=1}\nfunction Pp(a,b,c,d){var e;if(d>0){for(e=d;e<\\/i> '+xRb(b);return new GQ((aH(),new RG(d)),c)}\nfunction V3(b,c){var d;d=new So((Po(),Oo),c);try{Ro(d,new H6(b))}catch(a){a=wF(a);if(!fr(a,137))throw xF(a)}}\nfunction eg(){eg=ZF;bg=new fg('BUTT',0,'butt');cg=new fg('ROUND',1,'round');dg=new fg('SQUARE',2,'square')}\nfunction jl(){jl=ZF;il=new ml;gl=new ol;bl=new ql;cl=new sl;hl=new ul;fl=new wl;dl=new yl;al=new Al;el=new Cl}\nfunction SCb(a){wBb();switch(a){case 1:return 'A';case 3:return wRb;case 2:return 'W';default:return 'V';}}\nfunction yDb(b){var c;try{c=vSb(lS(b.n),10);return c}catch(a){a=wF(a);if(fr(a,15)){return 0}else throw xF(a)}}\nfunction iCb(a){var b,c;b=TXb(a.u,0).e;for(c=1;c=a.c){throw xF(new NRb)}--a.c;for(c=b;ca){throw xF(new ASb('fromIndex: 0 > toIndex: '+a))}if(a>b){throw xF(new QRb(Y6b+a+Z6b+b))}}\nfunction ALb(a,b,c,d,e,f){Nh((DI(),b.Sb),c);pUb(a.b,d.a);nUb(a.b,e.a,b);Re(f.Sb,false);gtb(d,e.a);b4(jRb,e.b,e.a)}\nfunction IU(a,b,c,d){c.a=lr($wnd.Math.floor(a.a*(1-d)+b.a*d+a0b));c.b=lr($wnd.Math.floor(a.b*(1-d)+b.b*d+a0b))}\nfunction y1(a,b,c){b==0&&(a.d=c.t>0?c.t:e1b);b==1&&(U1(c.b)?(a.bb&=-3):(a.bb|=2));b==2&&(a.g=c.t);b==3&&(a.n=c.t)}\nfunction xb(a,b){if(b<0){throw xF(new ASb('must be non-negative'))}!!a.d&&wb(a);a.c=false;a.d=OSb(Fb(Cb(a,a.b),b))}\nfunction db(){eb.call(this,(!lb&&(lb=!!$wnd.requestAnimationFrame&&!!$wnd.cancelAnimationFrame?new mb:new ub),lb))}\nfunction tT(a){sT.call(this,W_b+a+X_b+Y_b==null?lZb:_F(W_b+a+X_b+Y_b),fr(W_b+a+X_b+Y_b,37)?W_b+a+X_b+Y_b:null)}\nfunction $Z(a,b){_U.call(this,a,b);this.n=2;this.gb=true;this.n=2;this.f=SZ;TZ&&(this.bb|=2);YZ(this,WT.fd.c?1:2)}\nfunction Wmb(a,b){_U.call(this,a,b);this.gb=true;this.j=0.5;this.k=false;this.g=1.66;this.o=3.33;this.f=5;this.e=0}\nfunction xO(){Ae(this,$doc.createElement('iframe'));(DI(),this.Sb).className='gwt-Frame';this.Sb.src='iframe.html'}\nfunction Bf(){var a;!tf&&(tf=new Cf);a=$doc.createElement('canvas');if(!a.getContext){return null}return new Af(a)}\nfunction C3(a){var b,c,d,e;b=D3(a);e=b.b+140;d=b.a+100;c=new C2S(e,d);q3(a,c,2,b,e,d);return c.getSerializedSvg()}\nfunction TH(a,b){var c,d,e;e=new KH(a.a-b.a,a.b-b.b);c=$wnd.Math.abs(e.a);d=$wnd.Math.abs(e.b);return c<=25&&d<=25}\nfunction SP(a,b){var c,d;for(d=new OVb(a.f);d.a5){a.X8)return;a.j=lr(c.t);a.Ng();eU(a);uX(a)}}\nfunction U2(a){var b,c;for(c=a.ab.a.a.length-1;c>=0;c--){b=G3(a,c);if(fr(b,17)&&pCb(b.a)){b.Ef();WXb(a.ab,c);g4(a)}}}\nfunction T2(a,b){var c,d;if(!a.c)return;for(d=a.c.a.a.length-1;d>=0;d--){c=TXb(a.c,d);if(c.b==b){MY(c,a);WXb(a.c,d)}}}\nfunction T7(a){var b,c,d;b='';for(c=0;c=0&&a._.a.a.length>a.I)return TXb(a._,a.I).e;return a._.a.a.length>0?TXb(a._,0).e:TXb(a.u,0).e}\nfunction afb(a){var b;a.D=3;a.F=a.a;a.A=rq(Ky,XYb,9,a.a,0,1);for(b=0;b!=a.a;b++)a.A[b]=new j2(a,a.a-1-b,2,'I'+b);eU(a)}\nfunction LY(a,b,c){var d;v2(b,a.d=new bN(xRb(a.k)));se(a.d,H0b);d=lr((c-a.f)*100/(a.e-a.f));v2(b,a.j=new YEb(d,a,a.b))}\nfunction D4(a,b,c,d){!!a.fc&&!V2(a)&&a.Vc==-1&&(fr(a.fc,154)||fr(a.fc,135)||fr(a.fc,153))&&(t2=new FEb(b,c,d,a.fc,a))}\nfunction cGb(a,b,c,d){a.a.beginPath();Nf(a.a,b,c-d);Lf(a.a,b-d,c);Lf(a.a,b,c+d);Lf(a.a,b+d,c);Lf(a.a,b,c-d);a.a.fill()}\nfunction x4(a){var b,c;for(c=a.ab.a.a.length-1;c>=0;c--){b=G3(a,c);if(b.nb==b.ob&&b.pb==b.qb){XXb(a.ab,c);b.Ef()}}g4(a)}\nfunction o5(a,b,c,d){var e;e=a.oc.a.a.length+d;h5(a,e,b,-1);h5(a,e,c,1);e>0&&(a.t[e-1].e=true);h5(a,b,e,1);h5(a,c,e,-1)}\nfunction acb(a,b){var c;!Sbb&&(Sbb=new JWb);c=kUb(Sbb,a);if(c)return c;c=new Xbb(b);c.e=a;c.c=a;nUb(Sbb,a,c);return c}\nfunction OEb(a,b){var c;c=a.i+((a.g-a.i)*(b-MEb-NEb-LEb)/(m2-2*(MEb+NEb+LEb))|0);ca.g&&(c=a.g);return c}\nfunction zU(a,b){b[1]=$_b+WV($wnd.Math.abs(a.Rf()),'A',false);b[2]=__b+WV($wnd.Math.abs(a.gg()),'V',false);return 3}\nfunction VRb(a,b){SRb();return jr(a)?fTb(a,b):hr(a)?xSb((BYb(a),a),(BYb(b),b)):gr(a)?URb((BYb(a),a),(BYb(b),b)):a.se(b)}\nfunction Mqb(a,b){o4(Jqb);p4(Jqb,a);S2(Jqb);J4(Jqb,b);b==null||iTb(b.substr(0,10),w5b)?(Hib=null):(Hib=b);Jqb.Gd=false}\nfunction Cub(a,b){Aub();e8.call(this,a,b,zub,yub);Bub(this);this.gb=true;TXb(this.w,0).o=this.q;TXb(this.w,1).o=this.t}\nfunction _db(a,b,c){e8.call(this,a,b,Ydb,Xdb);this.j=c?-1:1;TXb(this.w,0).w=this.j;TXb(this.w,1).w=this.j;this.gb=true}\nfunction CO(a,b){gO.call(this);bO(this,new sO(this));dO(this,new TO(this));cO(this,new PO(this));AO(this,b);BO(this,a)}\nfunction tjb(a){var b;if(a.e.length==0)return new ljb(0);b=ojb(a);a.e.length>0&&Bjb(a,'unexpected token: '+a.e);return b}\nfunction Tbb(a){var b,c;if(a==null)return '';if(a.length==0)return '';c=a[0];for(b=1;b>=1);return b}}\nfunction _F(a){var b;if(Array.isArray(a)&&a.ii===aG){return aSb(W(a))+'@'+(b=Y(a)>>>0,b.toString(16))}return a.toString()}\nfunction OSb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(QSb(),PSb)[b];!c&&(c=PSb[b]=new DSb(a));return c}return new DSb(a)}\nfunction J3(a,b){var c;for(c=0;c!=a.ab.a.a.length;c++){if(fr(TXb(a.ab,c),17)){--b;if(b<0)return TXb(a.ab,c)}}return null}\nfunction pX(a,b,c,d){var e;for(e=0;e!=(a.A==null?1:a.A.length);e++){if(d==e)continue;if(g2(a.A[e],b,c))return e}return -1}\nfunction eU(a){var b;b=a.ag()+a.Yf();if(a.hb==null||a.hb.length!=b){a.hb=rq(pr,l$b,8,b,15,1);a.mb=rq(or,Z_b,8,b,15,1)}}\nfunction Cyb(a){var b,c,d;for(b=0;b!=a.j.a.a.length;b++){c=RXb(a.j,b);if(fr(c,212)){d=c;iTb(d.c,a.q)&&Zyb(d,1-a.C,a.H)}}}\nfunction gab(a){var b,c,d,e;b=TXb(a.w,0);x1(b,a.b);c=TXb(a.w,1);x1(c,a.g);d=TXb(a.w,2);imb(d,a.a);e=TXb(a.w,3);Rzb(e,a.e)}\nfunction Twb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);Qwb(this);this.b=rq(uF,P0b,8,this.n,16,1);VX(f,this.b);Rwb(this)}\nfunction fI(){this.d=new CVb;this.e=new zI;this.k=new zI;this.j=new zI;this.q=new CVb;this.i=new wI(this);bI(this,new CH)}\nfunction Fm(a,b){var c;Em.call(this);this.a=b;!am&&(am=new wn);c=un(am,a);if(!c){c=new CVb;vn(am,a,c)}c.Th(this);this.b=a}\nfunction gCb(a,b){var c;c=a.Z;if(c==null){if(b&&a.L)return null;c=hCb(a);if(c==null)return '';return xRb(c)}else return c}\nfunction zDb(b){var c;try{c=Whb(lS(b.J));c=d||bb&&d.ih(a[f-1],a[f])>0;--f){g=a[f];a[f]=a[f-1];a[f-1]=g}}}\nfunction BTb(a,b){var c,d,e;GYb(b,a.length);e='';for(d=0;d0){this.f=c.k;this.e=c.i}}\nfunction Fg(a){Dg();hg(this);jg(this);this.e=a;a!=null&&IYb(a,DZb,this);this.g=a==null?lZb:_F(a);this.a='';this.b=a;this.a=''}\nfunction KBb(a){return a.A.a>100&&a.A.b>100&&a.V.bc>=a.A.c&&a.V.bc<=a.A.c+36&&a.V.cc>=a.A.d+a.A.a-36&&a.V.cc<=a.A.d+a.A.a}\nfunction zxb(a){var b;v2(WT,a.n=new bN(a.A));se(a.n,H0b);b=PF(CF($wnd.Math.round((a.q-T5b)/J5b)));v2(WT,a.w=new YEb(b,a,a))}\nfunction Op(a){var b;if(48<=a&&a<=57){return a-48}else{b=(HYb(0,'0'.length),'0'.charCodeAt(0));return b<=a&&a<=b+9?a-b:-1}}\nfunction pm(a){var b,c;c=a.b;if(c){return b=a.a,((b.clientX||0)|0)-ei(c)+ii(c)+($wnd.pageXOffset|0)}return (a.a.clientX||0)|0}\nfunction _N(a,b){var c;if(b.Rb!=a){return false}try{af(b,null)}finally{c=(DI(),b.Sb);Fh((null,Zh(c)),c);lK(a.i,c)}return true}\nfunction GK(a,b){var c;if(b.Rb!=a){return false}try{af(b,null)}finally{c=(DI(),b.Sb);Fh((null,Zh(c)),c);$S(a.k,b)}return true}\nfunction zo(a,b,c){var d,e;e=jUb(a.d,b);if(!e){return $Vb(),$Vb(),ZVb}d=fUb(WWb(e.a,c));if(!d){return $Vb(),$Vb(),ZVb}return d}\nfunction yo(a,b,c){var d,e;e=jUb(a.d,b);if(!e){e=new JWb;mUb(a.d,b,e)}d=fUb(WWb(e.a,c));if(!d){d=new CVb;XWb(e.a,c,d)}return d}\nfunction xo(a,b,c,d){var e,f,g;e=zo(a,b,c);f=e.Wh(d);f&&e.Vh()&&(g=jUb(a.d,b),YWb(g.a,c),g.a.c+g.b.c==0&&oUb(a.d,b),undefined)}\nfunction w3(a){var b,c,d,e;e=l4(a);d=e.b*2;for(c=new OVb(a.ab.a);c.a0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return EZb in new Error}\nfunction szb(a){a.q=3*a.B;a.r=a.q+1;a.s=a.q+2;if(a.H==null||a.H.length!=a.B){a.H=rq(or,Z_b,8,a.B,15,1);a.G=rq(or,Z_b,8,a.B,15,1)}}\nfunction vDb(a){var b,c,d;c=lS(a.D);c.length==0&&(c=null);HCb(a.Y,c);if(a.Y.o){b=zDb(a);b>0&&CCb(a.Y,a.P,b);d=yDb(a);d>0&&ACb(a.Y,d)}}\nfunction MCb(a){var b,c,d;b=false;for(c=0;c!=a.u.a.a.length;c++){d=TXb(a.u,c);if(d.v==0)b=true;else if(d.v!=3)return false}return b}\nfunction Vg(){var a;if(Qg!=0){a=Ig();if(a-Rg>2000){Rg=a;Sg=$wnd.setTimeout(ah,10)}}if(Qg++==0){eh((dh(),bh));return true}return false}\nfunction Wkb(a,b,c,d){var e;a.a.beginPath();for(e=0;e0&&xb(this.c,b)}\nfunction gO(){this.i=new mK;this.g=(DI(),$doc.createElement(h_b));this.c=$doc.createElement(i_b);Ch(this.g,KI(this.c));Ae(this,this.g)}\nfunction kL(){HK.call(this);this.j=(DI(),$doc.createElement(h_b));this.i=$doc.createElement(i_b);Ch(this.j,KI(this.i));Ae(this,this.j)}\nfunction cL(){var a;bL.call(this,(a=$doc.createElement('BUTTON'),a.setAttribute('type',$Yb),a));(DI(),this.Sb).className='gwt-Button'}\nfunction vCb(a,b,c){if(!nyb(a.A,b,c))return;a.s||a._.a.a.length==0?(sBb=-1):(sBb=a.V.td-a.V.Sb*a.X*(a.A.c+a.A.b-b));GBb(a,b,c);rBb=a}\nfunction Xfb(a,b){if(b>=0||a.k==0)return a.b*($wnd.Math.exp(b*a.f)-1);return a.b*($wnd.Math.exp(b*a.f)-$wnd.Math.exp((-b-a.j)*b5b)-1)}\nfunction jbb(a){var b;if(a.i==null)return false;b=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);if(!b)return false;return jH(b,H4b+a.i)!=null}\nfunction xib(a,b,c){var d,e;e=lS(b.s);e.length==0&&(e=L7(c));d=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);!!d&&vH(d.a,a,e);return new P7(e)}\nfunction W4(b){var c;b.Md=1;try{c=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);b.Md=uSb(rH(c.a,t4b))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction L3(b,c){var d,e;e=Zg()+'setuplist.txt';d=new So((Po(),Oo),e);try{Ro(d,new C6(b,c))}catch(a){a=wF(a);if(!fr(a,137))throw xF(a)}}\nfunction uab(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);try{this.f=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(fr(a,15)){this.f=I$b}else throw xF(a)}}\nfunction krb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);try{this.a=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(fr(a,15)){this.a=2.5}else throw xF(a)}}\nfunction zJb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);wJb(this);this.o=(new ESb(PHb(f))).a;(this.bb&1)!=0?(this.g=ccb(PHb(f))):(this.g='TP')}\nfunction nsb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);ksb(this);this.d=TRb((SRb(),jTb(yZb,PHb(f))));this.a=wSb(uSb(PHb(f)));lsb(this)}\nfunction Dub(a,b,c,d,e,f){Aub();d8.call(this,a,b,c,d,e,f,zub,yub);Bub(this);this.gb=true;this.q=TXb(this.w,0).o;this.t=TXb(this.w,1).o}\nfunction qSb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;cd&&(b[d]=null);return b}\nfunction R4(a,b){var c,d,e,f,g;for(e=0;e!=b.length;e++){g=b[e];c=E3(a,e+1);for(f=0;f!=c.b.a.a.length;f++){d=TXb(c.b,f);d.a.ug(d.b,g)}}}\nfunction VX(a,b){var c,d,e;e=0;c=UYb;for(d=0;d=32)if(OHb(a)){e=vSb(PHb(a),10);c=0}else break;b[d]=(e&1<=a.b){throw xF(new ORb(B_b+b+C_b+a.b))}}\nfunction mp(a,b){var c,d;c=(HYb(b,a.length),a.charCodeAt(b));d=b+1;while(da.f*0.5?c:!c;d=a.mb[b]>a.f*(a.o[b]?0.35:0.55);a.o[b]=d;return d?c:!c}\nfunction Jp(a,b,c){if(a.d==0){b.a=b.a.substr(0,0)+'0'+b.a.substr(0);++a.b;++a.d}if(a.b\";return new NG(c.a)}\nfunction j_(a){var b;b='▶ '+xRb('Play Audio');a.k>1&&(b+=' '+a.k);v2(WT,a.a=new eL(b));Fe(a.a,V0b);Ve(a.a,new E_(a),(sm(),sm(),rm))}\nfunction zdb(b,c,d,e,f,g){t9.call(this,b,c,d,e,f,g);try{this.d=(new ESb(PHb(g))).a}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}this.gb=true}\n", +"function p_(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);i_(this);this.j=uSb(PHb(f));this.p=vSb(PHb(f),10);this.k=vSb(PHb(f),10);m_(this);j_(this)}\nfunction Kqb(a){SN.call(this);Jqb=a;(DI(),this.Sb).name='Import';this.Sb.id=g4b;Ve(this,this,(lm(),lm(),km));Pe(this.Sb,'offScreen',true)}\nfunction IBb(a){if(a.j){a.V.Fc.c?(a.j.fillStyle='#eee',undefined):(a.j.fillStyle='#111',undefined);Jf(a.j,0,0,a.A.b-1,a.A.a-1)}a.c=a.d=-1}\nfunction WP(a,b,c){if(c<0||c>a.b.a.length){throw xF(new NRb)}a.o&&((DI(),b.Sb)[J_b]=2,undefined);NP(a,c,(DI(),b.Sb));qVb(a.b,c,b);return b}\nfunction _bb(a){var b;!Sbb&&(Sbb=new JWb);b=kUb(Sbb,a);if(b)return b;b=new Wbb;b.e=a;b.c=iTb(a,F4b)?'custom logic':a;nUb(Sbb,a,b);return b}\nfunction Xgb(a,b){var c;Tgb();c=kUb(Fgb,a);if(c)return c;if(!b){console.log(k5b+a);return Wgb(F4b)}c=new Pgb(b);c.n=a;nUb(Fgb,a,c);return c}\nfunction iNb(a,b){var c;eNb();c=kUb(XMb,a);if(c)return c;if(!b){console.log(k5b+a);return hNb(F4b)}c=new _Mb(b);c.t=a;nUb(XMb,a,c);return c}\nfunction pjb(a){var b;b=wjb(a);while(true){if(Cjb(a,'+'))b=new mjb(b,wjb(a),1);else if(Cjb(a,'-'))b=new mjb(b,wjb(a),2);else break}return b}\nfunction wjb(a){var b;b=Ajb(a);while(true){if(Cjb(a,'*'))b=new mjb(b,Ajb(a),7);else if(Cjb(a,'/'))b=new mjb(b,Ajb(a),8);else break}return b}\nfunction VH(a,b){var c,d,e,f;c=Ig();f=false;for(e=new OVb(a.q);e.ap5b&&Phb(b.t*q5b)>Phb(b.t*q5b/r5b))return Xhb(b,b.t/r5b)+'rms';return Xhb(b,b.t)}\nfunction RAb(a){if(iTb(a.substr(0,2),'0x'))return vSb(a.substr(2),16);if(iTb(a.substr(0,2),'0b'))return vSb(a.substr(2),2);return vSb(a,10)}\nfunction ypb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.a=PHb(f);if((this.bb&4)==0){while(OHb(f))this.a+=' '+PHb(f)}else{this.a=ccb(this.a)}}\nfunction GPb(a,b,c,d,e,f){VW.call(this,a,b,c,d,e,f);this.c=PHb(f);while(OHb(f))this.c+=' '+PHb(f);this.c=pTb(this.c,'%2[bB]','+');EPb(this)}\nfunction SKb(a,b,c,d,e,f){jX();AX.call(this,a,b,c,d,e,f);this.d=uSb(PHb(f));this.b=uSb(PHb(f));this.e=uSb(PHb(f));this.c=this.i=uSb(PHb(f))}\nfunction fmb(a,b,c){a.f[0]=b;a.f[1]=c;(a.d&2)==0?(a.a=2*a.e/a.g.vd):(a.a=a.e/a.g.vd);j5(a.g,a.f[0],a.f[1],a.a);k5(a.g,a.f[0]);k5(a.g,a.f[1])}\nfunction sab(a){var b;UU(a);hU(a,26);a.b=GU(a.eb,a.fb,0.25);a.c=GU(a.eb,a.fb,0.6);a.e=GU(a.eb,a.fb,0.5);b=GU(a.eb,a.fb,0.75);a.a=gU(a.e,b,4,4)}\nfunction BCb(a,b,c){var d,e;b!=a.o&&IBb(a);a.o=b;for(e=new OVb(a.u.a);e.a0){rVb(a.b,new mq(b.a,c));d=b.a.length;0d&&(b.a+=ATb(rq(nr,l$b,8,-d,15,1)))}}\nfunction $N(a,b,c){var d,e;d=(DI(),Yh(b));e=null;!!d&&(e=jK(a.i,d));if(e){_N(a,e);return true}else{c&&(b.innerHTML='',undefined);return false}}\nfunction lp(a,b,c){var d;d=c.a.getFullYear()-1900+1900;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:rp(a,d%100,2);break;default:rp(a,d,b);}}\nfunction QK(a,b){Ae(this,$doc.createElement('a'));(DI(),this.Sb).className='gwt-Anchor';this.a=new nN(this.Sb);mN(this.a,a,false);Th(this.Sb,b)}\nfunction cfb(b,c,d,e,f,g){jX();AX.call(this,b,c,d,e,f,g);this.a=4;try{this.a=vSb(PHb(g),10)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}afb(this)}\nfunction Xsb(b,c,d,e,f,g){jX();AX.call(this,b,c,d,e,f,g);this.c=2;try{this.c=vSb(PHb(g),10)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}Vsb(this)}\nfunction Seb(b,c,d,e,f,g){jX();AX.call(this,b,c,d,e,f,g);try{this.c=vSb(PHb(g),10);Qeb(this);eU(this)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction Fo(a){var b,c,d;yg.call(this,Go(a),a.Vh()?null:a.ef().uf());this.a=a;d=0;for(c=a.ef();c.tf();){b=c.uf();if(d++==0){continue}ig(this,b)}}\nfunction ep(a,b){switch(b.c){case 0:{a['dir']='rtl';break}case 1:{a['dir']='ltr';break}case 2:{dp(a)!=(zp(),wp)&&(a['dir']='',undefined);break}}}\nfunction YR(a){var b;if(a.c){return false}a.c=(b=(PH==null&&(PH=(SRb(),!xn&&(xn=new In),false)),TRb(PH)?new fI:null),!!b&&cI(b,a),b);return !a.c}\nfunction k_(){var a,b,c,d;d=1;if(!WT.ab)return 0;for(b=0;b!=WT.ab.a.a.length;b++){a=G3(WT,b);if(!fr(a,215))continue;c=a.k;c>=d&&(d=c+1)}return d}\nfunction iFb(a){var b,c,d;d=DP(a.a);for(b=0;b!=a.c.Rb.a.a.length;b++){c=TXb(a.c.Rb,b);if(iTb(c.b,d)){c.e.Ae();break}}HM(a,false);p2==a&&(p2=null)}\nfunction p9(a,b,c){b==0&&(a.o=U1(c.b));if(b==1){a.bb=pib(c,a.bb,2);a.wg()}if(b==2){a.n=lS(c.s);if(a.n.length==0){a.n=null;a.bb&=-5}else a.bb|=4}}\nfunction Y(a){return jr(a)?QYb(a):hr(a)?lr((BYb(a),a)):gr(a)?(BYb(a),a)?1231:1237:er(a)?a.Rd():tq(a)?KYb(a):!!a&&!!a.hashCode?a.hashCode():KYb(a)}\nfunction U(a,b){return jr(a)?iTb(a,b):hr(a)?(BYb(a),a===b):gr(a)?(BYb(a),a===b):er(a)?a.Pd(b):tq(a)?a===b:!!a&&!!a.equals?a.equals(b):kr(a)===kr(b)}\nfunction cr(a,b){if(jr(a)){return !!br[b]}else if(a.hi){return !!a.hi[b]}else if(hr(a)){return !!ar[b]}else if(gr(a)){return !!_q[b]}return false}\nfunction iJ(){var a,b,c;a=(b=$wnd.location.href,c=b.indexOf('#'),c>0?b.substring(c):'');if(a==null||a.length==0){return ''}return oJ(a.substr(1))}\nfunction KM(a,b,c){var d,e;if(a.qb){d=b+ei((DI(),a.Sb));e=c+(gi(a.Sb)+$wnd.pageYOffset|0);if(d=a.sb||ea.t/2)}a.Hg();for(b=0;b!=a.ag();b++){c=a.A[b];c.k&&x5(WT,c.B,c.A?a.t:0)}}\nfunction lHb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.f=wSb(uSb(PHb(f)));this.e=wSb(uSb(PHb(f)));this.c=wSb(uSb(PHb(f)));this.d=wSb(uSb(PHb(f)))}\nfunction AU(a,b,c,d){a.db=-1;elb(a.nb,a.pb,a.ob,a.qb)>=d&&(elb(a.nb,a.pb,b,c)<=25?(a.db=0):a.$f()>1&&elb(a.ob,a.qb,b,c)<=25&&(a.db=1));return a.db}\nfunction nyb(a,b,c){var d,e,f,g;e=a.b;d=a.a;if((e|d)<0){return false}f=a.c;g=a.d;if(bb)&&(dc)}\nfunction CDb(a){var b;b=lr($wnd.Math.pow(2,10-a._.k));G5('changed '+a.Y.X+' '+b+' '+a._.k);a.Y.X!=b&&GCb(a.Y,b);$M(a.Z,WV(BBb(a.Y),'s',false)+h6b)}\nfunction ig(a,b){CYb(b);xYb(b!=a,'Exception can not suppress itself.');if(a.i){return}a.k==null?(a.k=uq(nq(KE,1),XYb,37,0,[b])):(a.k[a.k.length]=b)}\nfunction AH(a,b,c,d){var e,f,g;g=a*b;if(c>=0){e=$wnd.Math.max(0,c-d);g=$wnd.Math.min(g,e)}else{f=$wnd.Math.min(0,c+d);g=$wnd.Math.max(g,f)}return g}\nfunction CM(a){var b,c;c=(DI(),$doc.createElement('td'));b=$doc.createElement(y$b);Ch(c,KI(b));c.className=a||'';b.className=a+'Inner'||'';return c}\nfunction A3(a,b){var c,d,e,f,g;e=Bf();c=D3(a);g=c.b*2+140;f=c.a*2+100;Vh((DI(),e.Sb),g);Uh(e.Sb,f);d=e.Sb.getContext('2d');q3(a,d,b,c,g,f);return e}\nfunction i4(a){var b,c;if(!!a.fc&&!fr(a.fc,123))return false;for(c=0;c!=a.ab.a.a.length;c++){b=G3(a,c);if(b.kb&&!fr(b,123))return false}return true}\nfunction QYb(a){OYb();var b,c,d;c=':'+a;d=NYb[c];if(d!=null){return lr((BYb(d),d))}d=LYb[c];b=d==null?PYb(a):lr((BYb(d),d));RYb();NYb[c]=b;return b}\nfunction YM(a){var b;!a.a?(b=null):a.a?(b=a.a):(b=a.a==(VO(),UO)?eP(a.b.c):dP(a.b.c));if(b!=a.c){a.c=b;(DI(),a.Sb).style['textAlign']=!a.c?'':a.c.a}}\nfunction VN(a,b,c){var d;WN(a,b);if(c<0){throw xF(new ORb('Column '+c+' must be non-negative: '+c))}d=a.a;if(d<=c){throw xF(new ORb(z_b+c+A_b+a.a))}}\nfunction e4(a,b,c){var d;if(a.Qc==0)return false;d=b>=0&&b=a.j.a-5&&c=1){var f=new FileReader;f.onload=function(a){var b=f.result;c.Dh(b,e[0].name)};f.readAsText(e[0])}}\nfunction zsb(a){var b,c,d,e;e=a.a?0:1;for(b=0;b!=WT.ab.a.a.length;b++){c=RXb(WT.ab,b);if(fr(c,212)){d=c;iTb(d.c,a.f)&&(d.b=(d.bb&2)!=0?1-e:e,d.o=0)}}}\nfunction ZRb(a,b,c){wYb(a>=0&&a<=1114111);if(a>=W$b){b[c++]=55296+(a-W$b>>10&1023)&LZb;b[c]=56320+(a-W$b&1023)&LZb;return 2}else{b[c]=a&LZb;return 1}}\nfunction F5(d){d.toBlob(function(b){var c=parent.navigator.clipboard.write([new ClipboardItem({'image/png':b})]);c.then(function(a){console.log(a)})})}\nfunction AMb(a,b){_U.call(this,a,b);this.o=4;this.t=this.p=1;this.u=32;this.gb=true;this.e=0.999;this.j=rq(or,Z_b,8,2,15,1);this.i=rq(or,Z_b,8,2,15,1)}\nfunction YMb(a){a.f=true;return '32 '+Zbb(a.t)+' '+a.j+' '+a.v+' '+a.p+' '+a.b+' '+a.s+' '+a.q+' '+a.a+' '+a.r+' '+a.g+' '+a.i+' '+a.n+' '+a.o+' '+a.c}\nfunction $p(a,b,c){if(!b){throw xF(new ASb('Unknown currency code'))}this.s=a;this.a=b;Vp(this,this.s);if(!c&&this.g){this.n=this.a[2]&7;this.i=this.n}}\nfunction wG(a,b){var c;c=$doc.createElement(y$b);c.appendChild(b);c.style[z$b]=(Kk(),A$b);c.style[B$b]=(zk(),C$b);xG(b);a.insertBefore(c,null);return c}\nfunction ZL(a){a.Eb=true;if(!a.zb){a.zb=$doc.createElement(y$b);Mh(a.zb,a.Bb);a.zb.style[z$b]=(Kk(),A$b);a.zb.style[D$b]=(jl(),E$b);a.zb.style[F$b]=E$b}}\nfunction qR(a,b){pL.call(this,(DI(),$h($doc,a)));this.Sb.className='gwt-RadioButton';pR(this,1);pR(this,8);pR(this,T$b);pR(this,128);mN(this.b,b,false)}\nfunction XSb(a){var b;if(a==0){return a}else if(!isNaN(a)&&!isFinite(a)){return a==0||isNaN(a)?a:a<0?-1:1}else{b=$wnd.Math.exp(2*a);return (b-1)/(b+1)}}\nfunction Eq(a,b){var c,d,e;if(b<=22){c=a.l&(1<>>0,c.toString(16)))+M7((d=a.c>>>0,d.toString(16)))+M7((b=a.a>>>0,b.toString(16)))}\nfunction lg(a,b,c){var d,e,f,g,h;mg(a);for(e=(a.k==null&&(a.k=rq(KE,XYb,37,0,0,1)),a.k),f=0,g=e.length;f=55296&&d<=56319&&b>22);e+=d>>22;if(e<0){return false}a.l=c&s$b;a.m=d&s$b;a.h=e&t$b;return true}\nfunction Ubb(a){a.a=true;a.g.length>0&&!hTb(a.g,GZb)&&(a.g+=GZb);return '! '+Zbb(a.e)+' '+a.b+' '+Zbb(Tbb(a.d))+' '+Zbb(Tbb(a.f))+' '+Zbb(a.c)+' '+Zbb(a.g)}\nfunction Efb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.g=wSb(uSb(PHb(f)));this.f=wSb(uSb(PHb(f)));this.b=wSb(uSb(PHb(f)));this.e=wSb(uSb(PHb(f)));Cfb(this)}\nfunction Ekb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.d=wSb(uSb(PHb(f)));this.c=wSb(uSb(PHb(f)));this.b=wSb(uSb(PHb(f)));this.a=TRb((SRb(),jTb(yZb,PHb(f))))}\nfunction WY(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);UY(this);this.n=0;this.g=vSb(PHb(g),10);try{this.n=vSb(PHb(g),10)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction NNb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);KNb(this);this.t=uSb(PHb(f));this.k=uSb(PHb(f));this.c=uSb(PHb(f));this.s=(SRb(),jTb(yZb,PHb(f)));LNb(this)}\nfunction np(a){var b,c,d;b=false;d=a.b.a.length;for(c=0;cd){f=b;b=d;d=f}if(c>e){f=c;c=e;e=f}b=fW(a.U.c,b);c=fW(a.U.d,c);d=eW(a.U.c+a.U.b,d);e=eW(a.U.d+a.U.a,e);ryb(a.U,b,c,d-b,e-c)}\nfunction bY(a){var b,c,d,e;e=new KTb;d=0;b=0;for(c=0;c=32){e.a+=' ';e.a+=d;d=0;b=0}a[c]&&(d|=1<0){e.a+=' ';e.a+=d}return e.a}\nfunction qEb(a,b,c){var d;a.d.M!=0&&++a.d.N;a.d.M=0;d=new nEb(a.d,xRb(b),(SRb(),c?true:false));fO(a.a,a.d.N,a.d.M,d.d);NXb(a.c,d);NXb(a.b,OSb(a.d.N));++a.d.N}\nfunction ZLb(a){if(WT.Sb==0)return;a.j=lr(a.e/WT.Sb);PTb();if(a.j>E5b)a.q=a.r=null;else{a.q=rq(or,Z_b,8,a.j,15,1);a.r=rq(or,Z_b,8,a.j,15,1)}a.n=0;RU(a);a.i=0}\nfunction BG(a,b){var c,d,e;d=Zh(a);!!d&&d.removeChild(a);Zh(b)==a&&(c=Zh(b),!!c&&c.removeChild(b));e=b.style;e[z$b]='';e[D$b]='';e[F$b]='';e[uZb]='';e[tZb]=''}\nfunction bR(a){_Q(a);if(a.i){ue(a.a).style[z$b]=A$b;a.a.Lb!=-1&&$L(a.a,a.a.Fb,a.a.Lb);KK((DR(),HR()),a.a)}else{a.c||LK((DR(),HR()),a.a)}ue(a.a).style[B$b]=o_b}\nfunction ojb(a){var b,c,d,e;b=xjb(a);if(Cjb(a,'?')){c=xjb(a);Cjb(a,':')||Bjb(a,'expected :, got '+a.e);d=ojb(a);e=new mjb(b,c,32);NXb(e.a,d);return e}return b}\nfunction uCb(a){var b,c,d;c=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);if(!c)return;d=TXb(a.u,0);b=cCb(a);lH(c,s6b,'1 '+b+' '+d.s);console.log('saved defaults '+b)}\nfunction ILb(a,b){var c,d;Re((DI(),a.Sb),true);c=ei(b.Sb)-12;d=(gi(b.Sb)+$wnd.pageYOffset|0)+Ih(b.Sb,rZb)-2;a.Sb.style[D$b]=c+(jl(),XZb);a.Sb.style[F$b]=d+XZb}\nfunction _Mb(a){this.j=a.j;this.v=a.v;this.p=a.p;this.b=a.b;this.s=a.s;this.q=a.q;this.a=a.a;this.r=a.r;this.g=a.g;this.i=a.i;this.n=a.n;this.o=a.o;this.c=a.c}\nfunction D2(a){var b;for(b=0;b!=a.Qc;b++)if(QCb(a.Wc[b]))return false;for(b=0;b!=a.ab.a.a.length;b++)if(fr(G3(a,b),17)&&QCb(G3(a,b).a))return false;return true}\nfunction W7(a,b){var c,d,e;c=0;d=TXb(a.A,b).b;for(e=0;ea.i&&--a.k}else{if(b>m2-MEb-NEb){a.k=a.b.length||a.a>=a.c.length){d=a.a*2;d<4?(d=4):(d&d-1)!=0&&(d=JSb(d));a.b=xxb(a.b,d);a.c=xxb(a.c,d)}a.b[a.a]=b;a.c[a.a]=c;++a.a}\nfunction yFb(a){if(a.d.length>0&&a.a>0){if(a.b>=a.a){if((a.bb&4)!=0){a.A[1].A=false;return}a.b=0}a.A[1].A=(a.d[a.b/32|0]&1<\"+vTb(a,5,a.length-5)+G6b}\nfunction Dob(a,b){_U.call(this,a,b);this.d=0.1;this.c=q5b;this.e=0.34;this.b=this.c*this.e+this.d;this.f=Aob(this,this.b);this.i=xRb('Light Brightness');Bob(this)}\nfunction bIb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.a=1;this.i=wSb(uSb(PHb(f)));this.f=wSb(uSb(PHb(f)));this.g=wSb(uSb(PHb(f)));this.k=wSb(uSb(PHb(f)));$Hb(this)}\nfunction lDb(a,b){switch(a.u){case 0:return WV(b,'V',false);case 1:return WV(b,'A',false);case 3:return WV(b,wRb,false);case 2:return WV(b,'W',false);}return null}\nfunction Lq(a,b){var c,d,e,f,g,h,i,j;i=a.h>>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f}\nfunction zLb(a,b){var c;if(a.a){ue(a.a).style[u6b]=E6b;ue(a.a).style[u4b]=null}c=kUb(a.b,b);if(c){(DI(),c.Sb).style[u6b]='#007bff';c.Sb.style[u4b]='#e6f7ff';a.a=c}}\nfunction z5(){try{l=navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage;return l.toUpperCase().startsWith('DE')}catch(a){return 0}}\nfunction sCb(a,b){var c;a.G=1;while(a.G<=a.A.b)a.G*=2;!a.u&&(a.u=new $Xb);a.R=false;for(c=0;c!=a.u.a.a.length;c++)mDb(TXb(a.u,c),a.G,a.X,b);EBb(a);a.H=a.V.Sb;zBb(a)}\nfunction ICb(a,b){var c;if(a.u.a.a.length>2||a.u.a.a.length==0)return;c=SXb(a.u).e;if(a.u.a.a.length==2&&TXb(a.u,1).e!=c)return;a.s=a.t=false;a.u=new $Xb;yBb(a,b,c)}\nfunction _e(a){if(!a.Rb){DR();LWb(CR,a)&&FR(a)}else if(fr(a.Rb,40)){a.Rb.ff(a)}else if(a.Rb){throw xF(new CSb(\"This widget's parent does not implement HasWidgets\"))}}\nfunction jW(){var a,b;!OT&&(OT=(K7(),F7));!MT&&(MT=(K7(),H7));!NT&&(NT=(K7(),E7));for(a=0;a!=FT;a++){b=a*2/FT-1;b<0?(ET[a]=new O7(NT,MT,-b)):(ET[a]=new O7(NT,OT,b))}}\nfunction jO(a,b,c){var d,e;kO(a,b);if(c<0){throw xF(new ORb('Cannot create a column with a negative index: '+c))}d=(WN(a,b),YN((DI(),a.c),b));e=c+1-d;e>0&&UN(a.c,b,e)}\nfunction I4(a,b,c){var d,e,f,g;d=c?a.j.b/2|0:a.bc;e=c?a.j.a/2|0:a.cc;f=lr((d-a.Cd[4])/a.Cd[0]);g=lr((e-a.Cd[5])/a.Cd[3]);a.Cd[0]=a.Cd[3]=b;a.Cd[4]=d-f*b;a.Cd[5]=e-g*b}\nfunction h5(a,b,c,d){var e;!isNaN(d)&&!isFinite(d)&&J5();if(b>0&&c>0){if(a.p){b=a.t[b-1].d;e=a.t[c-1];if(e.f==1){a.s[b]-=d*e.g;return}c=e.c}else{--b;--c}a.k[b][c]+=d}}\nfunction kDb(a,b){if(b>0){a.d=hDb[(b-1)%8];return}switch(a.u){case 0:a.d=L7(OT);break;case 1:a.d=u2.Fc.c?'#A0A000':'#FFFF00';break;default:a.d=u2.Fc.c?f6b:'#FFFFFF';}}\nfunction Kp(a,b){var c,d;c=a.b+a.n;if(a.da.d&&(d=a.d);while(d>c&&eTb(b.a,d-1)==48){--d}if(d0);CQ(a.Ed,a.Fd.a.a.length>0)}\nfunction i3(a){var b;if(a.Fd.a.a.length==0)return;NXb(a.Kc,new g7(a,r3(a)));b=WXb(a.Fd,a.Fd.a.a.length-1);X3(a,b);CQ(a.Jc,a.Kc.a.a.length>0);CQ(a.Ed,a.Fd.a.a.length>0)}\nfunction $Cb(a,b,c,d,e,f){var g,h;aV.call(this,a,b,c,d,e);this.gb=false;g=PHb(f);h=new RHb(g,'_');this.a=new RCb(WT);PCb(this.a,h);UU(this);YCb(this);sCb(this.a,false)}\nfunction rY(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.a=wSb(uSb(PHb(f)));this.d=wSb(uSb(PHb(f)));this.c=wSb(uSb(PHb(f)));(this.bb&2)!=0&&(this.bb&=-3);this.b=0;this.V=0}\nfunction gNb(){var a,b,c,d;d=new $Xb;a=new DUb((new vUb(XMb)).a);while(a.b){b=BUb(a);c=b.ei();if(c.k)continue;uVb(d.a,c,0)!=-1||rVb(d.a,c)}$Vb();zVb(d.a,null);return d}\nfunction UF(b,c,d,e){TF();var f=RF;$moduleName=c;$moduleBase=d;vF=e;function g(){for(var a=0;a=0;d--){if(iTb(a[d].d,b)||iTb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a}\nfunction HN(){HN=ZF;EN=new IN('NORTH',0);BN=new IN('EAST',1);FN=new IN('SOUTH',2);GN=new IN('WEST',3);AN=new IN(VZb,4);DN=new IN('LINE_START',5);CN=new IN('LINE_END',6)}\nfunction BO(a,b){if(a.b==b){return}if(b<0){throw xF(new ORb('Cannot set number of rows to '+b))}if(a.bb){zO(a,a.b-1)}}}\nfunction _Hb(a){if(a.ea.f){a.e=a.i;a.d=0;a.a=1}if((a.bb&1)==0){a.b=a.a*WT.vd*(a.f-a.i)/a.k;a.c=1}else{a.b=0;a.c=$wnd.Math.pow(a.f/a.i,a.a*WT.vd/a.k)}a.j=WT.vd}\nfunction RCb(a){wBb();this.V=a;this.C=rq(or,Z_b,8,4,15,1);this.B=rq(uF,P0b,8,4,16,1);this.n=uBb;this.A=new vyb(0,0,1,1);this.i=Bf();this.j=vf(this.i);zBb(this);lCb(this)}\nfunction YCb(a){var b,c,d,e,f;b=r5(WT,fW(a.nb,a.ob));c=r5(WT,eW(a.nb,a.ob));d=s5(WT,fW(a.pb,a.qb));e=s5(WT,eW(a.pb,a.qb));f=new vyb(b,d,c-b,e-d);pyb(f,a.a.A)||FCb(a.a,f)}\nfunction rEb(a){var b,c,d,e;for(c=0;c\\'\"]');WG=new RegExp('&','g');XG=new RegExp('>','g');ZG=new RegExp('<','g');_G=new RegExp(\"'\",'g');$G=new RegExp('\"','g')}\nfunction XRb(a,b){if(b<2||b>36){return -1}if(a>=48&&a<48+$wnd.Math.min(b,10)){return a-48}if(a>=97&&a=65&&a0?(a.className=d+' '+b||'',undefined):(a.className=b||'',undefined);return true}return false}\nfunction B4(a){var b,c,d,e;d=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);if(!d)return;e='1';for(b=0;b!=a.ad.length;b++){c=a.ad[b];if(c==null)continue;e+=';'+b+'='+c}vH(d.a,b4b,e)}\nfunction Yp(a,b,c){var d,e;d=true;while(d&&c>=0){e=eTb(b.a,c);if(e==57){JRb(b,c--,48)}else{JRb(b,c,e+1&LZb);d=false}}if(d){b.a=b.a.substr(0,0)+'1'+b.a.substr(0);++a.b;++a.d}}\nfunction bJ(a,b){var c,d,e,f,g;if(!!XI&&!!a&&po(a,XI)){c=YI.a;d=YI.b;e=YI.c;f=YI.d;ZI(YI);$I(YI,b);oo(a,YI);g=!(YI.a&&!YI.b);YI.a=c;YI.b=d;YI.c=e;YI.d=f;return g}return true}\nfunction YP(a){if(eQ(a)){return}if(a.o){gQ(a)}else{if(!!a.j.i&&a.j.i.f.a.length!=0&&(!a.k||!a.k.j)){!a.k&&RP(a,a.j,false,true);TP(a.j.i)}else !!a.g&&(a.g.o?gQ(a.g):YP(a.g))}}\nfunction $P(a){if(eQ(a)){return}if(a.o){if(!!a.j.i&&a.j.i.f.a.length!=0&&(!a.k||!a.k.j)){!a.k&&RP(a,a.j,false,true);TP(a.j.i)}else !!a.g&&(a.g.o?$P(a.g):gQ(a.g))}else{gQ(a)}}\nfunction FU(a,b){var c;if(LT==a||a.kb||WT.zc==a||fr(LT,17)&&bCb(LT.a)==a){return ST}if(!WT.Ld.c){return ZT}c=lr((b+YT)*(FT-1)/(YT*2));c<0&&(c=0);c>=FT&&(c=FT-1);return ET[c]}\nfunction Y2(a,b){var c,d,e;b&&o4(a);d=false;for(e=a.ab.a.a.length-1;e>=0;e--){c=G3(a,e);if(c.kb||LT==c){LT==c&&P4(a,null);c.Ef();XXb(a.ab,e);d=true}}if(d){U2(a);g4(a);C5(a)}}\nfunction uIb(b,c,d,e,f,g){t9.call(this,b,c,d,e,f,g);this.a=(new ESb(PHb(g))).a;this.d=2;try{this.d=(new ESb(PHb(g))).a}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}this.gb=true}\nfunction Wob(b,c,d,e,f,g){jX();AX.call(this,b,c,d,e,f,g);try{this.D=vSb(PHb(g),10);this.F=vSb(PHb(g),10)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}eU(this);Uob(this);uX(this)}\nfunction zTb(a){var b;b=0;while(0<=(b=a.indexOf('\\\\',b))){HYb(b+1,a.length);a.charCodeAt(b+1)==36?(a=a.substr(0,b)+'$'+uTb(a,++b)):(a=a.substr(0,b)+(''+uTb(a,++b)))}return a}\nfunction z1(a){var b;UU(a);b=(a.X/2-4)/a.X;a.eb=GU(a.ib,a.jb,b);a.fb=GU(a.ib,a.jb,1-b);a.i=QU(2);a.j=QU(2);KU(a.ib,a.jb,a.i[0],a.i[1],b,12);KU(a.ib,a.jb,a.j[0],a.j[1],1-b,12)}\nfunction Lgb(b,c){b.f=(new ESb(PHb(c))).a;b.q=uSb(PHb(c));b.r=uSb(PHb(c));b.e=uSb(PHb(c));b.a=uSb(PHb(c));try{b.g=uSb(PHb(c))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}Mgb(b)}\nfunction DEb(a){var b,c;c=BEb(a);for(b=0;b<5;b++){xe(a.d[b]);if(c+b-2<0||c+b-2>=a.k)$M(a.d[b],'---');else{$M(a.d[b],WV(a.o[c+b-2],'',true));c+b-2==a.a&&re(a.d[b],'current')}}}\nfunction rU(a,b,c){alb(b,c);a.db==-1?_kb(b,a.nb-3,a.pb-3,7,7):a.db==0&&_kb(b,a.nb-4,a.pb-4,9,9);a.$f()>1&&(a.db==-1?_kb(b,a.ob-3,a.qb-3,7,7):a.db==1&&_kb(b,a.ob-4,a.qb-4,9,9))}\nfunction JU(a,b,c,d,e){var f,g;f=b.b-a.b;g=a.a-b.a;e/=$wnd.Math.sqrt(f*f+g*g);c.a=lr($wnd.Math.floor(a.a*(1-d)+b.a*d+e*f+a0b));c.b=lr($wnd.Math.floor(a.b*(1-d)+b.b*d+e*g+a0b))}\nfunction E4(a,b,c,d){var e,f,g,h,i,j;g=c4(b,a.Eb);h=_3(b,a.Eb);i=c4(c,a.Fb);j=_3(c,a.Fb);a.$c=new vyb(g,i,h-g,j-i);for(f=0;f!=a.ab.a.a.length;f++){e=G3(a,f);e.pg(a.$c,d)}t3(a)}\nfunction n9(a,b){var c;if(b==0){c=new uib('',0,-1,-1);c.b=new X1(z4b,a.o);return c}if(b==1)return wib(A4b,(a.bb&2)!=0);if(b==2)return new vib(B4b,a.n==null?'':a.n);return null}\nfunction Zbb(a){if(a.length==0)return '\\\\0';return oTb(oTb(oTb(oTb(oTb(oTb(oTb(oTb(a,'\\\\','\\\\\\\\'),GZb,'\\\\n'),' ','\\\\s'),'+','\\\\p'),'=','\\\\q'),'#','\\\\h'),'&','\\\\a'),'\\r','\\\\r')}\nfunction fhb(a){var b;if(a.f){b=lS(a.f);if(b.length==0){yJ(xRb('Please enter a model name.'));return}kbb(a.e,Oab=b)}lbb(a.e,U1(a.i));w5(u2);g4(u2);HM(a,false);p2==a&&(p2=null)}\nfunction Eob(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.d=0.1;this.c=q5b;this.e=wSb(uSb(PHb(f)));this.b=this.c*this.e+this.d;this.f=Aob(this,this.b);this.i=ccb(PHb(f));Bob(this)}\nfunction Emb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.gb=true;this.f=0.5;this.c=5;try{this.f=wSb(uSb(PHb(g)));this.c=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction rtb(a,b,c){var d;if(b>a.C&&$wnd.Math.abs(b-c)>0.05173){if(c>0){d=1+(b-c)/c5b;d>0?(b=c+c5b*$wnd.Math.log(d)):(b=a.C)}else{b=c5b*$wnd.Math.log(b/c5b)}WT.C=false}return b}\nfunction x3(a){var b,c,d,e;d=l4(a);e=a5(a,d.b-d.c);G5('xmy '+e+' grid '+a.tb+' '+d.b+' '+d.c);for(c=new OVb(a.ab.a);c.a=a.p&&(a.q=0);if(a.n!=null){for(b=0;b!=WT.ab.a.a.length;b++){c=RXb(WT.ab,b);if(fr(c,54)&&c!==a){d=c;iTb(a.n,d.n)&&(++d.q,d.q>=d.p&&(d.q=0))}}}}\nfunction YTb(a){var b,c,d;d=new LXb('[',']');for(c=a.ef();c.tf();){b=c.uf();KXb(d,b===a?'(this Collection)':b==null?lZb:_F(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)}\nfunction GXb(){GXb=ZF;var a,b,c,d;DXb=rq(or,Z_b,8,25,15,1);EXb=rq(or,Z_b,8,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){EXb[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){DXb[a]=c;c*=0.5}}\nfunction $J(){VJ=SYb(gK);WJ=SYb(hK);var c=pK;var d=SJ;c(d,function(a,b){d[a]=SYb(b)});var e=UJ;c(e,function(a,b){e[a]=SYb(b)});c(e,function(a,b){$wnd.addEventListener(a,b,true)})}\nfunction P7(a){K7();var b,c,d;this.b=a;if(iTb(a.substr(0,1),'#')&&a.length==7){d=a.substr(1,2);c=a.substr(3,2);b=a.substr(5,2);this.d=vSb(d,16);this.c=vSb(c,16);this.a=vSb(b,16)}}\n", +"function Iib(a){var b,c;c=lS(a.a);c.indexOf('.')!=-1||(c+='.txt');c==null||iTb(c.substr(0,10),w5b)?(Hib=null):(Hib=c);b=new QK(c,a.b);Lh((DI(),b.Sb),Z0b,c);OS(a.c,b);b.Sb.click()}\nfunction kRb(){if(navigator.languages){if(navigator.languages.length>0){return navigator.languages[0]}else{return 'en-US'}}else{return navigator.language||navigator.userLanguage}}\nfunction NQ(){var a;Be(this,(DI(),$doc.createElement('td')));this.Sb.className='gwt-MenuItemSeparator';a=$doc.createElement(y$b);Ch(this.Sb,KI(a));a.className='menuSeparatorInner'}\nfunction xU(a,b){var c,d,e,f;c=a.pb+b;e=a.nb-b;d=a.qb+b;f=a.ob-b;a.nb=c;a.pb=e;a.ob=d;a.qb=f;a.U=new uyb;ryb(a.U,fW(a.nb,a.ob),fW(a.pb,a.qb),bV(a.ob-a.nb)+1,bV(a.qb-a.pb)+1);a.wg()}\nfunction iXb(){function b(){try{return (new Map).entries().next().done}catch(a){return false}}\nif(typeof Map==='function'&&Map.prototype.entries&&b()){return Map}else{return jXb()}}\nfunction XP(a,b,c){var d;if(!b){if(!!a.j&&!!a.k&&a.k==a.j.i){return}}if(!!b&&!b.f){return}fQ(a,b);c&&a.e&&((DI(),a.Sb).focus(),undefined);!!b&&(!!a.k||!!a.g||a.c)&&RP(a,b,false,a.e)}\nfunction s3(a){var b,c;c=a.N.c?1:0;c|=a.fd.c?2:0;c|=a.Ld.c?0:4;c|=a.Cc.c?8:0;c|=a.cd.c?0:16;c|=a.b?64:0;b='$ '+c+' '+a.Sb+' '+I3(a)+' '+a.H.k+' '+YT+' '+a.Bc.k+' '+a.ac+GZb;return b}\nfunction zFb(a){a.D=2;a.F=2;a.A=rq(Ky,XYb,9,(a.bb&8)!=0?3:2,0,1);a.A[0]=new j2(a,0,2,'');a.A[0].d=true;a.A[1]=new j2(a,1,3,'Q');a.A[1].k=true;(a.bb&8)!=0&&(a.A[2]=new j2(a,1,2,'R'))}\nfunction Ng(a){var b,c,d;d=(Jg(),window);b=d.document;c=b.createElement('script');!!a.a&&Kg(c,a.a,false);Mg(c,a.b);(b.head||b.getElementsByTagName('head')[0]).appendChild(c);return c}\nfunction _L(a,b){(DI(),a.Sb).style[M$b]=C$b;!!a.zb&&(a.zb.style[M$b]=C$b,undefined);a.nf();b.wf(Ih(a.Sb,sZb),Ih(a.Sb,rZb));a.Sb.style[M$b]=o_b;!!a.zb&&(a.zb.style[M$b]=o_b,undefined)}\nfunction Zib(b){var c,d;d='shortrelay.php?v='+b;pS(Wib,'Waiting for short URL for web service...');c=new So((Po(),Oo),d);try{Ro(c,new $ib)}catch(a){a=wF(a);if(!fr(a,137))throw xF(a)}}\nfunction Plb(b){function d(){var a=c.responseText;o4(Nlb);p4(Nlb,a);w2(Nlb,false)}\ntry{var c=new XMLHttpRequest;c.addEventListener('load',d);c.open('GET',b,false);c.send()}catch(a){}}\nfunction iZ(a){UU(a);hU(a,32);dU(a,(a.bb&4)!=0,(a.bb&8)!=0);a.i=new gxb;a.f=(a.bb&4)!=0!=((a.bb&8)!=0)!=((a.bb&16)!=0)?-16:16;a.g=HU(a.eb,a.fb,0.5,-a.f);a.d=HU(a.eb,a.fb,0.5,-a.f/2|0)}\nfunction UU(a){a._=a.ob-a.nb;a.ab=a.qb-a.pb;a.X=$wnd.Math.sqrt(a._*a._+a.ab*a.ab);a.Y=a.ab/a.X;a.Z=-a._/a.X;a.$=a.ab==0?tW(a._):tW(a.ab);a.ib=new hxb(a.nb,a.pb);a.jb=new hxb(a.ob,a.qb)}\nfunction WU(a,b,c){var d;if(!WT.Cc.c)return;if(LT==a||a.kb||WT.zc==a||fr(LT,17)&&bCb(LT.a)==a){alb(b,ST);return}c*=PT;d=lr((FT/2|0)+(FT/2|0)*-c);d<0&&(d=0);d>=FT&&(d=FT-1);alb(b,ET[d])}\nfunction meb(a,b,c,d,e,f){keb();var g;VW.call(this,a,b,c,d,e,f);this.r=1;this.d=uSb(PHb(f));this.e=uSb(PHb(f));this.c=vSb(PHb(f),10);g=jUb(ieb,OSb(this.c));if(g){this.b=g.b;this.a=g.a}}\nfunction hBb(){SN.call(this);RN(this,xRb('Load File'));(DI(),this.Sb).id=t5b;Ve(this,this,(lm(),lm(),km));Pe(this.Sb,'offScreen',true);this.Sb.style[uZb]='0px';this.Sb.style[tZb]='0px'}\nfunction DRb(){if(window.performance.now){return window.performance.now()}else{if(window.performance.webkitNow){return window.performance.webkitNow()}else{return (new Date).getTime()}}}\nfunction oL(a,b){var c;b==null&&(b=(SRb(),RRb));c=a.Nb?(SRb(),a.c.checked?true:false):(SRb(),a.c.defaultChecked?true:false);si(a.c,(BYb(b),b));ti(a.c,(BYb(b),b));BYb(b);if(b==c){return}}\nfunction tU(a,b){var c,d;if(!WT.O&&!(LT==a||a.kb||WT.zc==a||fr(LT,17)&&bCb(LT.a)==a))return;if(WT.gc==2||WT.gc==3)return;for(c=0;c!=a.ag();c++){d=a._f(c);alb(b,ZT);Zkb(b,d.a-3,d.b-3,7)}}\nfunction b9(b,c,d,e,f,g){jX();AX.call(this,b,c,d,e,f,g);this.a=true;try{this.a=(SRb(),jTb(yZb,PHb(g)));this.b=vSb(PHb(g),10)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}this.A[1].a=this.a}\nfunction nfb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.gb=true;this.b=uSb(PHb(g));this.f=2.5;this.e=5;try{this.f=uSb(PHb(g));this.e=uSb(PHb(g))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction dhb(a){var b,c;a.g=a.e.d.a.a.length;Fab(a.a,a.g);a.a.D=a.e.k;a.a.F=a.e.n;for(b=0;b!=a.g;b++){c=TXb(a.e.d,b);Hab(a.a,b,c.c,c.d,c.a);a.a.mb[b]=0;b==a.k&&(a.a.A[b].p=true)}uX(a.a)}\nfunction _Bb(a,b,c){if(a.c==-1){a.c=b;a.d=c}a.V.Fc.c?(a.j.strokeStyle=f6b,undefined):(a.j.strokeStyle=e6b,undefined);a.j.beginPath();Nf(a.j,a.c,a.d);Lf(a.j,b,c);a.j.stroke();a.c=b;a.d=c}\nfunction oo(b,c){var d,e;!c.e||c.He();e=c.f;$l(c,b.b);try{wo(b.a,c)}catch(a){a=wF(a);if(fr(a,184)){d=a;throw xF(new Ho(d.a))}else throw xF(a)}finally{e==null?(c.e=true,c.f=null):(c.f=e)}}\nfunction gU(a,b,c,d){var e,f,g,h,i,j;j=new yxb;h=new gxb;i=new gxb;e=b.a-a.a;f=b.b-a.b;g=$wnd.Math.sqrt(e*e+f*f);wxb(j,b.a,b.b);KU(a,b,h,i,1-c/g,d);wxb(j,h.a,h.b);wxb(j,i.a,i.b);return j}\nfunction xX(a){var b,c,d;d=0;for(b=0;b!=a.ag();b++){c=a.A[b];if(c.k){o5(WT,0,a.hb[b],c.B);++d}}d!=a.ig()&&(console.log('voltage source count does not match number of outputs'),undefined)}\nfunction P2(a){var b,c,d,e;e=s3(a);Ybb();pbb();Rgb();cNb();for(c=a.ab.a.a.length-1;c>=0;c--){b=G3(a,c);d=b.Kf();d!=null&&d.length!=0&&(e+=d+GZb);b.kb&&!fr(b,17)&&(e+=b.Jf()+GZb)}return e}\nfunction yTb(a){var b,c;if(a>=W$b){b=55296+(a-W$b>>10&1023)&LZb;c=56320+(a-W$b&1023)&LZb;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&LZb)}}\nfunction xVb(a,b){var c,d,e,f;BYb(b);e=null;f=0;for(d=0;db){for(d=e;d>b;d--){Fh(a.a,a.a.lastChild)}}}\nfunction hCb(a){var b;if(a.Y!=1)return null;if(a.I<0&&!iCb(a))return null;if(a._.a.a.length==0)return null;b=SXb(a._);a.I>=0&&a._.a.a.length>a.I&&(b=TXb(a._,a.I));return !b.e?'':b.e.cg(b.v)}\nfunction HWb(){HWb=ZF;FWb=uq(nq(JE,1),XYb,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']);GWb=uq(nq(JE,1),XYb,2,6,['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'])}\nfunction XF(){WF={};!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)==='[object Array]'});function b(){return (new Date).getTime()}\n!Date.now&&(Date.now=b)}\nfunction R$(a,b,c,d,e,f){P$();var g;VW.call(this,a,b,c,d,e,f);this.r=1;this.d=uSb(PHb(f));this.f=uSb(PHb(f));this.c=vSb(PHb(f),10);g=jUb(M$,OSb(this.c));if(g){this.b=g.b;this.a=g.a}this.e=O$}\nfunction Bbb(a,b,c,d,e,f){jX();var g;AX.call(this,a,b,c,d,e,f);this.e=ccb(PHb(f));zbb(this);for(g=0;g!=this.i;g++){if(this.A[g].k){this.mb[g]=wSb(uSb(PHb(f)));this.A[g].A=this.mb[g]>this.t/2}}}\nfunction Vgb(a){var b,c,d,e;e=new $Xb;c=new DUb((new vUb(Fgb)).a);while(c.b){d=BUb(c);b=d.ei();if(b.k)continue;if(a&&b.a==0)continue;uVb(e.a,b,0)!=-1||rVb(e.a,b)}$Vb();zVb(e.a,null);return e}\nfunction nCb(a){var b,c,d,e;d=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);if(!d)return false;e=rH(d.a,s6b);if(e==null)return false;b=rTb(e,' ');c=vSb(b[1],10);zCb(a,c);a.X=vSb(b[2],10);return true}\nfunction wTb(a){var b,c,d;c=a.length;d=0;while(dd&&(HYb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b>22-b;e=a.h<>22-b}else if(b<44){c=0;d=a.l<>44-b}else{c=0;d=0;e=a.l<0&&fTb(b,VXb(a.Fd).a)==0)return;NXb(a.Fd,new g7(a,b));CQ(a.Jc,a.Kc.a.a.length>0);CQ(a.Ed,a.Fd.a.a.length>0);a.Oc=false}\nfunction Bnb(a,b,c){var d;d=$wnd.Math.abs(b-c);a.u>1&&(d*=100);if(d10&&d<$wnd.Math.abs(c)*h0b)return false;if(WT.rd>100&&di)&&(cj)&&(he)&&(gf)}\nfunction Eg(a){var b;if(a.c==null){b=kr(a.b)===kr(Cg)?null:a.b;a.d=b==null?lZb:ir(b)?b==null?null:b.name:jr(b)?'String':aSb(W(b));a.a=a.a+': '+(ir(b)?b==null?null:b.message:b+'');a.c='('+a.d+') '+a.a}}\nfunction vbb(a){var b,c;c=ccb(PHb(a));b=sbb(c);if(!b){b=new obb;b.i=c;nUb(fbb,c,b);++gbb}else if(b.g!=null){console.log('ignoring model '+c+', using stored version instead');return b}nbb(b,a);return b}\nfunction Sq(a,b){var c,d,e,f;b&=63;c=a.h&t$b;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return zq(d&s$b,e&s$b,f&t$b)}\nfunction KQ(a,b){Be(this,(DI(),$doc.createElement('td')));Ee(this,Me(this.Sb)+'-'+L_b,false);b?Nh(this.Sb,a):ai(this.Sb,a);this.Sb.className='gwt-MenuItem';Lh(this.Sb,'id',ni($doc));Xd();Kb(sd,this.Sb)}\nfunction XV(a,b,c,d){var e;if($wnd.Math.abs(a)>e0b)return WV(a,b,false);e=d?JT:VT;if(c==1)return Mp(e,a)+' '+b;if(c==2)return Mp(e,m$b*a)+' m'+b;if(c==3)return Mp(e,i0b*a)+' '+vRb+b;return WV(a,b,false)}\nfunction N2(a){var b,c,d,e,f;if(a.sd==null)return;for(e=0;e!=2;e++){d=a.sd[e];PP(d);c=rbb();for(b=0;b!=c.a.a.length;b++){f=(bYb(b,c.a.a.length),tVb(c.a,b)).i;MP(d,F3(a,xRb('Add ')+(''+f),$2b+f))}}s2=gbb}\nfunction VZ(a,b){if(b==0)return sib(new uib(O0b,a.n,1,8));if(b==1)return new uib(B0b,a.f,1,10);if(b==2)return wib('Schmitt Inputs',(a.bb&2)!=0);if(b==3)return wib('Invert Inputs',(a.bb&4)!=0);return null}\nfunction z2(a,b){var c,d,e,f;for(c=0;c!=a.n;c++){f=a.t[c];f.f==1?(e=f.g):(e=b[f.c]);if(isNaN(e)){a.C=false;break}if(c2?a.n:2;a.A=rq(Ky,XYb,9,a.n+2,0,1);for(b=0;b!=a.n;b++){a.A[b]=new j2(a,a.n-1-b,3,'D'+b);a.A[b].k=true}a.A[a.n]=new j2(a,0,2,'In');a.A[a.n+1]=new j2(a,a.F-1,2,'V+');eU(a)}\nfunction Bcb(a){var b;a.D=2;a.F=a.n>2?a.n:2;a.A=rq(Ky,XYb,9,a.n+2,0,1);for(b=0;b!=a.n;b++)a.A[b]=new j2(a,a.n-1-b,2,'D'+b);a.A[a.n]=new j2(a,0,3,'O');a.A[a.n].k=true;a.A[a.n+1]=new j2(a,a.F-1,3,'V+');eU(a)}\nfunction w1(a,b){b[0]='capacitor';b[1]=$_b+WV($wnd.Math.abs(a.W),'A',false);b[2]=__b+WV($wnd.Math.abs(a.mb[0]-a.mb[1]),'V',false);b[3]='C = '+WV(a.d,'F',false);b[4]=q0b+WV((a.mb[0]-a.mb[1])*a.W,'W',false)}\nfunction Uob(a){var b;if(a.D==0||a.F==0){a.D=a.F=8;eU(a)}a.A=rq(Ky,XYb,9,a.D+a.F,0,1);for(b=0;b!=a.D;b++)a.A[b]=new j2(a,b,1,'');for(b=0;b!=a.F;b++)a.A[b+a.D]=new j2(a,b,2,'');a.a=rq(or,Z_b,8,a.D*a.F,15,1)}\nfunction EP(a,b,c,d){var e,f,g,h;h=(DI(),a.Sb);g=$doc.createElement(jZb);g.text=b;g.removeAttribute(G_b);g.value=c;f=h.options.length;(d<0||d>f)&&(d=f);if(d==f){h.add(g,null)}else{e=h.options[d];h.add(g,e)}}\nfunction Igb(a){var b,c;a.a>0&&a.a<20?(a.n='zener-'+Mp(VT,a.a)):(a.f&1)!=0?(a.n='fwdrop='+Mp(VT,a.i)):(a.n='diodemodel');if(kUb(Fgb,a.n)!=null){c=2;for(;;c++){b=a.n+'-'+c;if(kUb(Fgb,b)==null){a.n=b;break}}}}\nfunction xRb(a){var b,c;if(a==null)return null;if(a.length==0){return a}c=kUb(uRb,a);if(c!=null)return c;b=kTb(a,yTb(126));if(b!=a.length-1)return a;a=a.substr(0,b);c=kUb(uRb,a);if(c!=null)return c;return a}\nfunction Qlb(a,b){if((BYb(b),b)&&a.indexOf('https://www.dropbox.com/')!=0){$wnd.alert('Dropbox links must start https://www.dropbox.com/');return}a=oTb(a,'www.dropbox.com','dl.dropboxusercontent.com');Plb(a)}\nfunction Vpb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);this.j=wSb(uSb(PHb(f)));isNaN(this.j)&&(this.j=300);this.f=wSb(uSb(PHb(f)));this.g=wSb(uSb(PHb(f)));this.k=wSb(uSb(PHb(f)));this.d=wSb(uSb(PHb(f)));Tpb(this)}\nfunction NJb(a,b,c,d,e,f){H_.call(this,a,b,c,d,e);this.b=(new ESb(PHb(f))).a;this.c=PHb(f);if((this.bb&4)==0){while(OHb(f))this.c+=' '+PHb(f);this.c=pTb(this.c,'%2[bB]','+')}else{this.c=ccb(this.c)}LJb(this)}\nfunction mi(a,b){if(a.nodeType!=1&&a.nodeType!=9){return a==b}if(b.nodeType!=1){b=b.parentNode;if(!b){return false}}if(a.nodeType==9){return a===b||a.body&&a.body.contains(b)}else{return a===b||a.contains(b)}}\nfunction Qj(){Qj=ZF;Fj=new Tj;xj=new ck;Aj=new dk;Bj=new ek;Dj=new fk;Ej=new gk;Gj=new hk;Hj=new ik;Ij=new jk;Lj=new Uj;Nj=new Vj;Mj=new Wj;Pj=new Xj;Jj=new Yj;Kj=new Zj;Oj=new $j;zj=new _j;yj=new ak;Cj=new bk}\nfunction Go(a){var b,c,d,e,f;c=a.Xh();if(c==0){return null}b=new MTb(c==1?'Exception caught: ':c+' exceptions caught: ');d=true;for(f=a.ef();f.tf();){e=f.uf();d?(d=false):(b.a+='; ',b);HTb(b,e.we())}return b.a}\nfunction OQ(a){var b,c,d,e,f;c=a.a.zb.style;f=pi($doc);e=oi($doc);c[K$b]=(Qj(),xZb);c[uZb]=(jl(),E$b);c[tZb]=E$b;d=ri($doc);b=qi($doc);c[uZb]=$wnd.Math.max(d,f)+XZb;c[tZb]=$wnd.Math.max(b,e)+XZb;c[K$b]='block'}\nfunction VP(a,b,c){var d,e;if(c<0||c>a.b.a.length){throw xF(new NRb)}qVb(a.b,c,b);e=0;for(d=0;da.c){throw xF(new NRb)}if(a.c==a.a.length){f=rq($x,XYb,21,a.a.length*2,0,1);for(e=0;ec;--d){a.a[d]=a.a[d-1]}a.a[c]=b}\nfunction A5(b){try{l=navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage;if(l.length>2){l=l.slice(-2).toUpperCase();return l=='US'||l=='CA'&&b}else{return 0}}catch(a){return 0}}\nfunction myb(){var a,b,c,d;this.a=new JWb;d=$wnd.location.search;if(d!=null&&d.length>0){b=rTb(d.substr(1),'&');for(a=0;a>1);XVb(b,a,i,j,-e,f);XVb(b,a,j,h,-e,f);if(f.ih(a[j-1],a[j])<=0){while(c0&&xb(a.b,$wnd.Math.max(5,16-(Ig()-c.a)))}\nfunction Ye(a){var b;if(a.je()){throw xF(new CSb(\"Should only call onAttach when the widget is detached from the browser's document\"))}a.Nb=true;DI();RJ(a.Sb,a);b=a.Ob;a.Ob=-1;b>0&&a.pe(b);a.ge();a.ne();Wn(a,true)}\nfunction Kh(a,b){var c,d,e,f,g;b=Sh(b);g=a.className||'';e=Qh(g,b);if(e!=-1){c=wTb(g.substr(0,e));d=wTb(uTb(g,e+b.length));c.length==0?(f=d):d.length==0?(f=c):(f=c+' '+d);a.className=f||'';return true}return false}\nfunction AL(a,b){var c;if(a.n){throw xF(new CSb('Composite.initWidget() may only be called once.'))}if(!b){throw xF(new ZSb('widget cannot be null'))}_e(b);c=(DI(),b.Sb);Be(a,c);(kR(),HI(c))&&lR(c,a);a.n=b;af(b,a)}\nfunction X2(a){var b,c;o4(a);O4(a);a.v='';for(c=a.ab.a.a.length-1;c>=0;c--){b=G3(a,c);(b.kb||LT==b)&&!fr(b,17)&&(a.v+=b.Jf()+GZb)}B5(a);Y2(a,true);(a.v==null||a.v.length==0)&&s4(a);CQ(a.xc,a.v!=null&&a.v.length>0)}\nfunction Gvb(a){var b,c;Z7(a,null,Cvb,Bvb);Fvb(a).d=3.0E-11/(a.k/0.6);Fvb(a).o=a.a;for(c=0;c!=11;c++)TXb(a.w,21+c).a=Dvb[c];b=a.c/S5b;TXb(a.w,21).a/=b;TXb(a.w,22).a/=b;ttb(TXb(a.w,13),b*100);ttb(TXb(a.w,18),b*100)}\nfunction bJb(a,b){_U.call(this,a,b);this.g=4;this.n=1;this.gb=true;this.b=0.99;this.e=rq(or,Z_b,8,4,15,1);this.d=rq(or,Z_b,8,4,15,1);this.o=rq(or,Z_b,8,3,15,1);this.c=rq(or,Z_b,8,3,15,1);this.a=rq(or,Z_b,8,9,15,1)}\nfunction XWb(a,b,c){var d,e,f,g,h;h=b==null?0:(g=Y(b),g|0);e=(d=a.a.get(h),d==null?new Array:d);if(e.length==0){a.a.set(h,e)}else{f=UWb(b,e);if(f){return f.fi(c)}}e[e.length]=new mVb(b,c);++a.c;wWb(a.b);return null}\nfunction kYb(a,b,c,d,e,f){var g,h,i,j,k;if(kr(a)===kr(c)){a=a.slice(b,b+e);b=0}i=c;for(h=b,j=b+e;h0?to(a,new AT(a,b,c)):(d=yo(a,b,null),d.Th(c));return new zT(a,b,c)}\nfunction a4(a,b,c,d){var e,f;e=L$b;a==''&&(e='');f='
<\\/i>'+e+xRb(b)+h1b+c+h1b;return new GQ((aH(),new RG(f)),d)}\nfunction a3(a){var b,c,d;b=a.Rb.a.a.length;for(c=0;c1&&a.Wc[a.Qc-1].v>0);CQ(a.Hd,a.Qc>1&&a.Wc[a.Qc-1].v!=a.Qc-1);CQ(a.w,a.Qc>1);CQ(a._c,a.Qc>0);s2!=gbb&&N2(a)}\nfunction fe(){fe=ZF;new Fc('aria-busy');new Tb('aria-checked');new Fc('aria-disabled');new Tb('aria-expanded');new Tb('aria-grabbed');ee=new Fc(qZb);new Tb('aria-invalid');new Tb('aria-pressed');new Tb('aria-selected')}\nfunction Qh(a,b){var c,d,e;c=a.indexOf(b);while(c!=-1){if(c==0||(HYb(c-1,a.length),a.charCodeAt(c-1)==32)){d=c+b.length;e=a.length;if(d==e||d0&&(e=255*(1+0.2*$wnd.Math.log(e)));e>255&&(e=255);e<20&&(e=20);e=$wnd.Math.max(e,a.a[c]);a.a[c]=e*0.99;d=new N7(lr(e),0,0);alb(b,d)}\nfunction Lqb(){var c=$doc.getElementById(g4b).files,d=c.length;if(d>=1){if(c[0].size>=128000)alert('File too large!');else{var e=new FileReader;e.onload=function(a){var b=e.result;Mqb(b,c[0].name)};e.readAsText(c[0])}}}\nfunction eq(a){var b;b=uq(nq(nr,1),l$b,8,15,[71,77,84,45,48,48,58,48,48]);if(a<=0){b[3]=43;a=-a}b[4]=b[4]+((a/60|0)/10|0)&LZb;b[5]=b[5]+(a/60|0)%10&LZb;b[7]=b[7]+(a%60/10|0)&LZb;b[8]=b[8]+a%10&LZb;return BTb(b,b.length)}\nfunction xDb(a,b){var c,d;d=TXb(a.Y._,b);c='●<\\/span> CH '+(''+(b+1));switch(d.u){case 0:c+=' (V)';break;case 1:c+=' (I)';break;case 3:c+=' (R)';break;case 2:c+=' (P)';}return c}\nfunction B1(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.d=wSb(uSb(PHb(g)));this.o=wSb(uSb(PHb(g)));this.g=h0b;try{this.g=wSb(uSb(PHb(g)));(this.bb&4)!=0&&(this.n=wSb(uSb(PHb(g))))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction kmb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.a=new hmb(WT);this.b=wSb(uSb(PHb(g)));this.W=wSb(uSb(PHb(g)));try{this.c=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}emb(this.a,this.b,this.W,this.bb)}\nfunction Kvb(b,c,d,e,f,g){Evb();c8.call(this,b,c,d,e,f);this.gb=true;this.k=uSb(PHb(g));this.a=uSb(PHb(g));this.c=S5b;this.f=0;try{this.c=uSb(PHb(g));this.f=vSb(PHb(g),10)}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}Hvb(this)}\nfunction DBb(a,b){var c,d,e,f,g,h,i;if(a.o)return;f=oDb(b,a.A.b);h=b.o;i=b.p;g=0;c=a.C[b.u];for(d=0;d!=a.A.b;d++){e=d+f&a.G-1;h[e]>g&&(g=h[e]);i[e]<-g&&(g=-i[e])}if(a.p)c=$wnd.Math.max(g,c);else while(g>c)c*=2;a.C[b.u]=c}\nfunction pDb(a){var b,c;if(!a.e)return;c=a.e.eg(a.v);b=a.a*(a.c+c-a.i);a.i=c;a.c=b;a.b&&(c=b);ca.o[a.r]&&(a.o[a.r]=c);if(u2.td-a.g>=u2.Sb*a.s){a.r=a.r+1&a.t-1;a.p[a.r]=a.o[a.r]=c;a.g+=u2.Sb*a.s}}\nfunction sIb(a){var b,c;q9(a);hU(a,32);a.c=QU(a.d);a.b=QU(2+a.d);for(c=0;c!=a.d;c++){b=-16*(c-((a.d-1)/2|0));a.d==2&&c==0&&(b=16);JU(a.eb,a.fb,a.b[c],1,b);JU(a.ib,a.jb,a.c[c],1,b)}a.b[c]=a.fb;a.p=(a.bb&1)!=0&&a.d==2?3:a.d}\nfunction g3(a,b){var c,d,e;d=a5(a,R3(a,a.Zb));e=a5(a,S3(a,a.$b));if(!b||!fr(b,152))return;b.nb==b.ob?(d=b.nb):(e=b.pb);if(d==b.nb&&e==b.pb||d==b.ob&&e==b.qb)return;c=new HQb(d,e);mU(c,b.ob,b.qb);b.Gf(d,e);PXb(a.ab,c);g4(a)}\nfunction awb(a,b,c,d,e,f,g,h,i,j){var k,m,n;k=b%2;if((a.bb&o$b)!=0){e=-e;g=-g;c+=a.b;i=-i}if((a.bb&U$b)!=0){f=-f;h=-h;d+=a.b;j=-j}m=c+a.b*e*k+i;n=d+a.b*f*k+j;_7(a,b,new hxb(m+g*a.b,n+h*a.b));a.g[b]=new hxb(m+g*a.a,n+h*a.a)}\nfunction fgb(a,b){a.p.o?(b[0]='diode'):(b[0]=xRb('diode')+X2b+a.q+')');b[1]=$_b+WV(a.W,'A',false);b[2]=__b+WV(a.mb[0]-a.mb[1],'V',false);b[3]=q0b+WV((a.mb[0]-a.mb[1])*a.W,'W',false);a.p.o&&(b[4]='Vf = '+WV(a.p.j,'V',false))}\nfunction X4(a){var b,c,d;if(!a.Ab)return;b=0;for(c=0;c=60){b=$wnd.Math.floor(a/3600);a-=3600*b;c=$wnd.Math.floor(a/60);a-=60*c;if(b==0)return c+':'+(a>=10?'':'0')+Mp(VT,a);return b+':'+(c>=10?'':'0')+c+':'+(a>=10?'':'0')+Mp(VT,a)}return WV(a,'s',false)}\nfunction tzb(a,b){_U.call(this,a,b);qzb(this);this.n=new hmb(WT);this.o=0.2;emb(this.n,this.o,0,2);this.gb=true;this.u=0.02;this.t=0.015;this.F=0.05;this.D=i0b;this.e=20;this.I=T5b;this.b=this.a=0;this.B=1;this.bb|=6;szb(this)}\nfunction CBb(a,b){var c,d,e,f,g,h,i;a.q=-100000000;a.r=W0b;for(i=0;i!=a._.a.a.length;i++){h=TXb(a._,i);if(h.u!=b)continue;e=oDb(h,a.A.b);f=h.o;g=h.p;for(c=0;c!=a.A.b;c++){d=c+e&a.G-1;f[d]>a.q&&(a.q=f[d]);g[d]=a.a.D+b)return;if(c<0&&(e.q==3||e.q==2)&&e.n>=a.a.F+c)return}}if(a.a.D+b<1||a.a.F+c<1)return;a.e.k+=b;a.e.n+=c;dhb(a);ehb(a)}\nfunction PP(a){var b,c,d;fQ(a,null);b=a.o?a.d:(DI(),YJ(a.d,0));while(DI(),ZJ(b)>0){Fh(b,YJ(b,0))}for(d=new OVb(a.b);d.a>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-T$b;b=d>>16&4;c+=b;a<<=b;d=a-V$b;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}\nfunction IGb(a){var b,c,d;a.D=a.n+1;a.F=3;a.A=rq(Ky,XYb,9,2+a.n,0,1);a.A[0]=new j2(a,1,2,'D');a.A[1]=new j2(a,2,2,'');a.A[1].d=true;for(b=0;b=b.length)return c;f=new RCb(a.V);g=TXb(a._,d);if(!!e&&e.e==g.e&&e.v==0&&g.v==3)continue;JCb(f,g.v,g.e);f.v=c;b[c++]=f;e=g;zCb(f,cCb(a));GCb(f,a.X)}return c}\nfunction vjb(a,b,c,d){var e,f,g,h;e=1;Cjb(a,'(')||Bjb(a,z5b+a.e);g=ojb(a);f=new mjb(g,null,b);while(Cjb(a,',')){h=ojb(a);NXb(f.a,h);++e}Cjb(a,')')||Bjb(a,A5b+a.e);(ed)&&a.a==null&&(a.a='bad number of function args: '+e);return f}\nfunction D3(a){var b,c,d,e,f,g;f=30000;d=d3b;g=30000;e=d3b;for(c=0;c!=a.ab.a.a.length;c++){b=G3(a,c);f=c4(b.nb,c4(b.ob,f));d=_3(b.nb,_3(b.ob,d));g=c4(b.pb,c4(b.qb,g));e=_3(b.pb,_3(b.qb,e))}if(f>d)return null;return new vyb(f,g,d-f,e-g)}\nfunction Qcb(a,b){_U.call(this,a,b);Ocb(this);this.i=new hmb(WT);this.j=new hmb(WT);this.k=0.5;this.p=1;this.d=s0b;this.q=0;this.b=0.15;this.e=0.05;this.a=0.02;this.c=0.15;this.g=1;this.r=0;emb(this.i,this.k,0,2);emb(this.j,this.a,0,2)}\nfunction YF(a,b,c){var d=WF,h;var e=d[a];var f=e instanceof Array?e[0]:null;if(e&&!f){_=e}else{_=(h=b&&b.prototype,!h&&(h=WF[b]),$F(h));_.hi=c;!b&&(_.ii=aG);d[a]=_}for(var g=3;g0);CQ(a.D,g>0);CQ(a.mb,b);CQ(a.ob,d);CQ(a.nb,c)}\n", +"function Ue(a,b){var c=(a.className||'').split(/\\s+/);if(!c){return}var d=c[0];var e=d.length;c[0]=b;for(var f=1,g=c.length;fe&&h.charAt(e)=='-'&&h.indexOf(d)==0&&(c[f]=b+h.substring(e))}a.className=c.join(' ')}\nfunction xQ(a){var b;this.a=a;rM.call(this,true,false,'menuPopup');this.b=(Dp(),true);YL(this,(YQ(),WQ));this.Db=false;Zh((DI(),Yh(this.Sb))).className='gwt-MenuBarPopup';b=Me(a.Sb);iTb(K_b,b)||Pe(Zh(Yh(this.Sb)),b+'Popup',true);this.Ib=true}\nfunction oS(a,b){if(!a.Nb){return}if(b<0){throw xF(new ORb('Length must be a positive integer. Length: '+b))}if(b>Jh((DI(),a.Sb),S_b).length){throw xF(new ORb('From Index: 0 To Index: '+b+' Text Length: '+Jh(a.Sb,S_b).length))}qT(a.Sb,0,b)}\nfunction Rq(a,b){var c,d,e,f,g;b&=63;c=a.h;d=(c&u$b)!=0;d&&(c|=-1048576);if(b<22){g=c>>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?t$b:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?t$b:0;f=d?s$b:0;e=c>>b-44}return zq(e&s$b,f&s$b,g&t$b)}\nfunction Qhb(a,b){var c,d,e,f,g;g=b.f;d=false;c=false;for(f=0;f!=a.g;f++){e=a.i[f];if(kr(e.c)===kr(g)||kr(e.b)===kr(g)||kr(e.a)===kr(g)){if(kr(e.a)===kr(g)&&!e.o){a.Eh();c=true}a.j.rg(f,e);e.o&&(d=true);g4(a.f)}}if(d){c||a.Eh();Nhb(a);Mhb(a)}}\nfunction rKb(a,b){_U.call(this,a,b);pKb(this);this.f=0.435;this.e=0.816;this.d=0.0294;this.c=0.0297;this.b=0.0287;this.a=1;this.g=s0b;this.v=this.q=0;this.i=0.05;this.w=rq(pr,l$b,8,2,15,1);this.p=rq(or,Z_b,8,3,15,1);this.k=rq(or,Z_b,8,5,15,1)}\nfunction Lhb(b){var c,d,e,f,g;for(f=0;f!=b.g;f++){e=b.i[f];if(!!e.s&&e.q==null){try{d=(g=Jh(ue(e.s),S_b),Whb(g));e.t=d}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}if(e.a)continue;b.j.rg(f,e);if(fr(b.j,7)){c=u3(b.f,b.j,f);!!c&&OY(c,e.t)}}g4(b.f)}\nfunction YWb(a,b){var c,d,e,f,g,h;g=b==null?0:(f=Y(b),f|0);d=(c=a.a.get(g),c==null?new Array:c);for(h=0;h0){try{h=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}this.p=Ygb(h,0);this.q=this.p.n}kgb(this)}\nfunction Vrb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.d=wSb(uSb(PHb(g)));this.c=wSb(uSb(PHb(g)));this.a=wSb(uSb(PHb(g)));this.f=wSb(uSb(PHb(g)));this.b=wSb(uSb(PHb(g)));try{this.W=uSb(PHb(g))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}this.e=100}\nfunction nNb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.i=0.1;this.f=K0b;this.g=0;this.gb=true;this.b=5;try{this.i=wSb(uSb(PHb(g)));this.f=wSb(uSb(PHb(g)));this.g=wSb(uSb(PHb(g)));this.b=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction LJb(a){var b,c,d;a.a=new $Xb;d=new CTb(a.c);for(c=0;c0&&(d+=' ');d+=Zbb(b.a)+' '+b.b+' '+b.c+' '+b.d}d+=' '+Zbb(a.j)+' '+Zbb(a.c);return d}\nfunction pL(a){var b;bL.call(this,(DI(),$doc.createElement('span')));this.c=a;this.d=$doc.createElement(j_b);Ch(this.Sb,this.c);Ch(this.Sb,this.d);b=ni($doc);this.c['id']=b;wi(this.d,b);this.b=new nN(this.d);!!this.c&&(this.c.tabIndex=0,undefined)}\nfunction jT(a,b,c,d,e){var f;f=new IG;HG(HG(HG(f,new JG('width:'+d+(jl(),XZb)+';')),new JG('height:'+e+XZb+';')),new JG('background:'+('url('+a.a+') '+'no-repeat '+(-b+'px ')+(-c+XZb))+';'));return !hT&&(hT=new lT),kT(gT,new JG((new JG(f.a.a)).a))}\nfunction DG(a,b){var c,d;c=$doc.createElement(y$b);c.innerHTML=L$b;d=c.style;d[z$b]=(Kk(),A$b);d['zIndex']='-32767';d[F$b]=-20+b.Ee();d[uZb]=10+a.Ee();d[tZb]=10+b.Ee();d[M$b]=(Gl(),C$b);Rb((fe(),ee),c,uq(nq(pE,1),XYb,249,8,[(SRb(),true)]));return c}\nfunction cR(a,b){var c,d,e,f,g,h;a.i||(b=1-b);g=0;e=0;f=0;c=0;d=lr(b*a.d);h=lr(b*a.e);switch(a.a.ub.c){case 2:f=a.e;c=d;break;case 0:g=a.d-d>>1;e=a.e-h>>1;f=e+h;c=g+d;break;case 1:Dp();f=h;c=d;}pT(ue(a.a),'rect('+g+'px, '+f+'px, '+c+'px, '+e+'px)')}\nfunction eGb(a,b,c){var d,e,f,g,h;g=WT.Fc.c;if(a.d==0){alb(b,a.A[c].A?(K7(),H7):g?a.g:a.c);return}f=-a.d*a.A[c].i/I$b;f>0&&(f=255*(1+0.2*$wnd.Math.log(f)));f>255&&(f=255);e=g?5:30;f=a.t+a.k;if(a.p&&!d){e=(b-a.t)/a.k;a.Wd((1+$wnd.Math.cos(VYb+e*VYb))/2);return a.o&&a.r==c}if(!a.p&&b>=a.t){a.p=true;a.Vd();if(!(a.o&&a.r==c)){return false}}if(d){a.o=false;a.p=false;a.Ud();return false}return true}\nfunction $R(){JL.call(this);this.b=(DI(),this.Sb);this.a=$doc.createElement(y$b);Ch(this.b,this.a);this.b.style[B$b]=(zk(),'auto');this.b.style[z$b]=(Kk(),J$b);this.a.style[z$b]=J$b;this.b.style[R_b]='1';this.a.style[R_b]='1';YR(this);!NR&&(NR=new RR)}\nfunction Spb(a){var b;if(a.j<1200){b=lr(255*(a.j-800)/400);b<0&&(b=0);return new N7(b,0,0)}if(a.j<1700){b=lr(255*(a.j-1200)/500);b<0&&(b=0);return new N7(255,b,0)}if(a.j<2400){b=lr(255*(a.j-1700)/700);b<0&&(b=0);return new N7(255,255,b)}return K7(),I7}\nfunction PHb(a){var b;if(a.c=0){if(a.d)return vTb(a.e,a.c,++a.c);while(++a.c=0);}if(a.c='))return new mjb(b,pjb(a),37);if(Cjb(a,'!='))return new mjb(b,pjb(a),40);if(Cjb(a,'<'))return new mjb(b,pjb(a),38);if(Cjb(a,'>'))return new mjb(b,pjb(a),39);return b}\nfunction zCb(a,b){a.O=(b&1)!=0;a.U=(b&2)!=0;a.P=(b&4)==0;a.N=(b&8)!=0;a.o=(b&16)!=0;a.t=(b&128)!=0;a.Q=(b&256)!=0;a.T=(b&512)!=0;a.M=(b&o$b)!=0;a.M||(a.e=null);a.p=(b&8192)!=0;a.S=(b&V$b)!=0;a.K=(b&32768)!=0;a.k=(b&W$b)!=0;a.J=(b&X$b)!=0;a.L=(b&$$b)!=0}\nfunction _Jb(a,b){_U.call(this,a,b);WJb(this);this.d=-40;this.c=150;this.f=q5b;this.g=3605;this.e=0.34;YJb(this,this.d);this.a=XJb(this);this.p=OF(CF($wnd.Math.round(this.e*(this.c-this.d)+this.d)));this.i=YJb(this,this.p);this.k='Temperature';ZJb(this)}\nfunction lW(a,b,c){var d,e,f,g;b?(TT=a):(IT=a);f='####.';d=a;for(;d>0;d--)f+='#';e=(Hp(),new _p(f,fp()));b?(UT=e):(VT=e);if(c){g=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);!!g&&vH(g.a,b?l0b:k0b,''+a)}if(!b){f='####.';d=a;for(;d>0;d--)f+='0';JT=new _p(f,fp())}}\nfunction bH(a){aH();if(!FG(YG,a)){return a}a.indexOf('&')!=-1&&(a=EG(WG,a,'&'));a.indexOf('<')!=-1&&(a=EG(ZG,a,'<'));a.indexOf('>')!=-1&&(a=EG(XG,a,'>'));a.indexOf('\"')!=-1&&(a=EG($G,a,'"'));a.indexOf(\"'\")!=-1&&(a=EG(_G,a,'''));return a}\nfunction Tpb(a){var b,c,d,e,f,g;f=a.g*a.g/a.f;g=a.j>5390?5390:a.j;a.i=f*(1.26104-4.90662*$wnd.Math.sqrt(17.1839/g-0.00318794)-7.8569/(g-187.56));b=1.57E-4*a.f;d=b*a.k/0.4;c=b*a.d/0.4;a.j+=(a.mb[0]-a.mb[1])*a.W*WT.vd/d;e=2600/a.f;a.j-=WT.vd*(a.j-300)/(c*e)}\nfunction Lp(a,b){var c,d;d=0;while(d0){b.a=b.a.substr(0,0)+''+uTb(b.a,d);a.d-=d;a.e-=d}if(a.j>a.o&&a.j>0){a.e+=a.b-1;c=a.e%a.j;c<0&&(c+=a.j);a.b=c+1;a.e-=c}else{a.e+=a.b-a.o;a.b=a.o}if(a.d==1&&eTb(b.a,0)==48){a.e=0;a.b=a.o}}\nfunction oU(a,b,c,d,e,f){var g,h;h=lr(Mf(b.a,c).width);g=b.b/2|0;b.a.save();b.c=b.b;b.a.textBaseline=E_b;if(f){b.a.textAlign=f_b;bU(a,d-(h/2|0),e-g,d+(h/2|0),e+g)}else{bU(a,d,e-g,d+h,e+g)}f&&(b.a.textAlign=f_b,undefined);Kf(b.a,c,d,e);b.a.restore();b.b=b.c}\nfunction lCb(a){var b,c;sCb(a,false);a.C[2]=a.C[3]=a.C[0]=5;a.C[1]=0.1;a.D=5;a.F=0.1;a.X=64;a.P=true;a.U=a.O=false;a.T=a.N=a.o=a.Q=a.L=false;a.M=false;a.s=false;if(!nCb(a)){for(b=0;b!=a.u.a.a.length;b++){c=TXb(a.u,b);c.u==0&&(a.U=true);c.u==1&&(a.O=true)}}}\nfunction uYb(a){var b,c,d,e,f,g,h;g=a.length;b=0;for(f=0;f=W$b?2:1;d<128?++b:d=W$b?2:1;h+=tYb(c,h,d)}return c}\nfunction lqb(a){var b;a.D=2;a.F=a.n+1;a.A=rq(Ky,XYb,9,a.n*2+1,0,1);for(b=0;b!=a.n;b++)a.A[b]=new j2(a,a.n-1-b,2,'I'+b);for(b=0;b!=a.n;b++){a.A[b+a.n]=new j2(a,a.n-1-b,3,'O');a.A[b+a.n].k=true;a.A[b+a.n].s=(a.bb&2)!=0}a.A[a.b=a.n*2]=new j2(a,a.n,2,'Ld');eU(a)}\nfunction fQ(a,b){var c,d;if(b==a.j){return}if(a.j){EQ(a.j);if(a.o){d=(DI(),Zh(ue(a.j)));if(ZJ(d)==2){c=YJ(d,1);Pe(c,M_b,false)}}}if(b){Ee(b,Me((DI(),b.Sb))+'-'+L_b,true);if(a.o){d=Zh(b.Sb);if(ZJ(d)==2){c=YJ(d,1);Pe(c,M_b,true)}}Xd();wc(a.Sb,new lc(b.Sb))}a.j=b}\nfunction X5(a,b,c,d){var e,f,g,h,i,j;for(f=0;f!=b;f++){h=c[f];i=d[h];d[h]=d[f];d[f]=i;if(i!=0)break}e=f++;for(;f=0;f--){j=d[f];for(g=f+1;g!=b;g++)j-=a[f][g]*d[g];d[f]=j/a[f][f]}}\nfunction nbb(a,b){var c,d,e,f,g,h;a.e=vSb(PHb(b),10);a.k=vSb(PHb(b),10);a.n=vSb(PHb(b),10);c=vSb(PHb(b),10);a.d=new $Xb;for(d=0;d!=c;d++){g=ccb(PHb(b));e=vSb(PHb(b),10);f=vSb(PHb(b),10);h=vSb(PHb(b),10);NXb(a.d,new Ijb(g,e,f,h))}a.j=ccb(PHb(b));a.c=ccb(PHb(b))}\nfunction _Z(b,c,d,e,f,g){var h;aV.call(this,b,c,d,e,f);this.n=2;this.n=(new ESb(PHb(g))).a;h=wSb(uSb(PHb(g)));this.gb=true;this.f=5;try{this.f=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}this.p=h>this.f*0.5;YZ(this,(f&1)!=0?1:2);eU(this);ZZ(this)}\nfunction Fnb(a){i5(WT,a.hb[1]);i5(WT,a.hb[2]);(a.bb&a.n)!=0&&(a.bb&a.k)!=0&&a.Kh()?(a.w=3):(a.w=a.R==-1?2:1);if((a.bb&a.k)!=0&&a.Kh()){if(a.R==-1){_fb(a.C,a.hb[1],a.hb[a.w]);_fb(a.D,a.hb[2],a.hb[a.w])}else{_fb(a.C,a.hb[a.w],a.hb[1]);_fb(a.D,a.hb[a.w],a.hb[2])}}}\nfunction zGb(a){var b,c,d;if(yGb(a))return;for(b=0;b!=a.b.ad.length;b++)a.b.ad[b]=null;for(b=0;b!=a.c.a.a.length;b++){d=lS(TXb(a.c,b));c=TXb(a.b.Rb,b);c.d=d;d.length>0&&(a.b.ad[HYb(0,d.length),d.charCodeAt(0)]=TXb(a.b.Qb,b))}B4(a.b);HM(a,false);p2==a&&(p2=null)}\nfunction U5(a,b){var c,d,e,f,g;f=rq(pr,l$b,8,b,15,1);W5(a,b,f);c=rq(or,Z_b,8,b,15,1);e=pq(or,[XYb,Z_b],[14,8],15,[b,b],2);for(d=0;d!=b;d++){for(g=0;g!=b;g++)c[g]=0;c[d]=1;X5(a,b,f,c);for(g=0;g!=b;g++)e[g][d]=c[g]}for(d=0;d!=b;d++)for(g=0;g!=b;g++)a[d][g]=e[d][g]}\nfunction jp(a,b,c){var d,e;d=CF(c.a.getTime());if(zF(d,0)<0){e=m$b-PF(HF(JF(d),m$b));e==m$b&&(e=0)}else{e=PF(HF(d,m$b))}if(b==1){e=$wnd.Math.min((e+50)/100|0,9);DTb(a,48+e&LZb)}else if(b==2){e=$wnd.Math.min((e+5)/10|0,99);rp(a,e,2)}else{rp(a,e,3);b>3&&rp(a,0,b-3)}}\nfunction m4(a){var b=a.toDataURL('image/png');var c=window.open('',E3b,'height=500,width=500,status=yes,location=no');c.document.title='Print Circuit';c.document.open();c.document.write('');c.document.close();setTimeout(function(){c.print()},m$b)}\nfunction Gnb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);xnb(this);this.R=(f&this.r)!=0?-1:1;this.gb=true;Enb(this);this.T=this.Jh();this.u=this.Hh();try{this.T=wSb(uSb(PHb(g)));this.u=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}vnb=this.bb&this.j;eU(this)}\nfunction aW(a){var b,c,d;XT=new okb(j0b,0,12);WT=a;ET=rq(uz,XYb,36,FT,0,1);QT=new gxb;RT=new gxb;d=(!hH&&(pH(),nH)&&(hH=new mH(P$b)),hH);IT=3;TT=1;if(d){b=rH(d.a,k0b);c=rH(d.a,l0b);b!=null&&(IT=vSb(b,10));c!=null&&(TT=vSb(c,10))}lW(IT,false,false);lW(TT,true,false)}\nfunction t9(a,b,c,d,e,f){var g;aV.call(this,a,b,c,d,e);g=PHb(f);fTb(g,yZb)==0?(this.q=fr(this,170)?0:1):fTb(g,'false')==0?(this.q=fr(this,170)?1:0):(this.q=(new ESb(g)).a);this.o=TRb((SRb(),jTb(yZb,PHb(f))));this.p=2;this.n=null;(this.bb&4)!=0&&(this.n=ccb(PHb(f)))}\nfunction mX(a){var b,c,d;a.t==5?(a.bb&=-8193):(a.bb|=8192);c=(d=a.Uf(),(d<127?String.fromCharCode(d&LZb)+' ':d+' ')+a.nb+' '+a.pb+' '+a.ob+' '+a.qb+' '+a.bb);a.Lg()&&(c+=' '+a.n);(a.bb&8192)!=0&&(c+=' '+a.t);for(b=0;b!=a.ag();b++){a.A[b].s&&(c+=' '+a.mb[b])}return c}\nfunction IXb(a,b){var c,d,e,f,g,h;f=a.a*V6b+a.b*1502;h=a.b*V6b+11;c=$wnd.Math.floor(h*W6b);f+=c;h-=c*a_b;f%=a_b;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*DXb[b])}else{e=a.a*(1<=2147483648&&(d-=4294967296);return d}}\nfunction rM(a,b,c){var d;fM.call(this,a);this.Gb=b;d=uq(nq(JE,1),XYb,2,6,[c+'Top',c+'Middle',c+'Bottom']);this.tb=new BM(d);De(this.tb,'');Qe(Zh((DI(),Yh(this.Sb))),'gwt-DecoratedPopupPanel');bM(this,this.tb);Pe(Yh(this.Sb),p_b,false);Pe(AM(this.tb),c+'Content',true)}\nfunction mDb(a,b,c,d){var e,f,g,h,i,j;j=a.t;a.t=b;a.s!=c&&(j=0);a.s=c;a.a=1-1/(1.15*a.s*a.t);i=a.p;h=a.o;a.p=rq(or,Z_b,8,a.t,15,1);a.o=rq(or,Z_b,8,a.t,15,1);if(i!=null&&!d){for(e=0;e!=a.t&&e!=j;e++){f=-e&a.t-1;g=a.r-e&j-1;a.p[f]=i[g];a.o[f]=h[g]}}else a.g=u2.td;a.r=0}\nfunction Hq(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return LSb(c)}if(b==0&&d!=0&&c==0){return LSb(d)+22}if(b!=0&&d==0&&c==0){return LSb(b)+44}return -1}\nfunction THb(a){var b,c,d,e,f;d=ue(a.d).selectedIndex;if(d==-1){$wnd.alert('Please select a subcircuit to delete.');return}e=BP(a.d,d);b=$wnd.confirm('Are you sure you want to delete '+e+'?');if(b){c=TXb(a.e,d);WTb(a.e,c,true);lbb(c,false);pUb(fbb,c.i);++gbb;FP(a.d,d)}}\nfunction G4(a){var b,c,d;d=we(wR());b=ve(wR());b=b-(a.wb?0:30);T3(a.dd)||(d=d-m2);a.Bd.c&&(b-=40);d=$wnd.Math.max(d,0);b=$wnd.Math.max(b,0);if(a.J){Ie(a.J,d+'PX');Ce(a.J,b+'PX');a.i=d;a.g=b;c=window.devicePixelRatio;yf(a.J,lr(d*c));xf(a.J,lr(b*c))}H4(a);a.Cd[0]==0&&H2(a)}\nfunction lNb(a){var b,c;c=ccb(PHb(a));b=hNb(c);b.j=(new ESb(PHb(a))).a;b.v=uSb(PHb(a));b.p=uSb(PHb(a));b.b=uSb(PHb(a));b.s=uSb(PHb(a));b.q=uSb(PHb(a));b.a=uSb(PHb(a));b.r=uSb(PHb(a));b.g=uSb(PHb(a));b.i=uSb(PHb(a));b.n=uSb(PHb(a));b.o=uSb(PHb(a));b.c=uSb(PHb(a));return b}\nfunction Vp(a,b){var c,d;d=0;c=new KTb;d+=Tp(a,b,0,c,false);a.t=c.a;d+=Wp(a,b,d,false);d+=Tp(a,b,d,c,false);a.u=c.a;if(d0?e[0]:null);a.p=new KH((d.pageX||0)|0,(d.pageY||0)|0);c=Ig();yI(a.k,a.p,c);yI(a.e,a.p,c);a.n=null;if(a.g){rVb(a.q,new AI(a.p,c));lh((dh(),a.i),2500)}a.o=new KH(SR(a.s),WR(a.s));RH(a);a.r=true}\nfunction KU(a,b,c,d,e,f){var g,h;g=b.b-a.b;h=a.a-b.a;f/=$wnd.Math.sqrt(g*g+h*h);c.a=lr($wnd.Math.floor(a.a*(1-e)+b.a*e+f*g+a0b));c.b=lr($wnd.Math.floor(a.b*(1-e)+b.b*e+f*h+a0b));d.a=lr($wnd.Math.floor(a.a*(1-e)+b.a*e-f*g+a0b));d.b=lr($wnd.Math.floor(a.b*(1-e)+b.b*e-f*h+a0b))}\nfunction q9(a){UU(a);hU(a,32);a.r=new gxb;a.s=new gxb;if((a.bb&2)!=0){a.k=QU(7);JU(a.eb,a.fb,a.k[0],0.5,8);JU(a.eb,a.fb,a.k[1],0.5,24);JU(a.eb,a.fb,a.k[2],0.4,24);JU(a.eb,a.fb,a.k[3],0.6,24);JU(a.eb,a.fb,a.k[4],0.5,19);JU(a.eb,a.fb,a.k[5],0.4,16);JU(a.eb,a.fb,a.k[6],0.5,13)}}\nfunction nEb(a,b,c){this.e=a;this.b=c;this.d=new nP;this.a=new eL((BYb(c),c)?'-':'+');Ve(this.a,new oEb(this),(sm(),sm(),rm));se(this.a,'expand-but');kP(this.d,this.a);this.c=new bN(b);ue(this.c).style['fontWeight']=(ok(),'bold');kP(this.d,this.c);jL(this.d,this.c,(iP(),fP))}\nfunction dGb(a,b,c,d){var e,f,g,h,i;a.a.beginPath();f=new gxb;g=new gxb;h=new gxb;i=new gxb;e=TSb(b.a-c.a,b.b-c.b);KU(b,c,f,g,d/e,d);KU(b,c,h,i,1-d/e,d);Nf(a.a,b.a,b.b);Lf(a.a,f.a,f.b);Lf(a.a,h.a,h.b);Lf(a.a,c.a,c.b);Lf(a.a,i.a,i.b);Lf(a.a,g.a,g.b);Lf(a.a,b.a,b.b);a.a.fill()}\nfunction gcb(a,b,c,d,e,f){var g,h;aV.call(this,a,b,c,d,e);this.A=32;this.o=wSb(uSb(PHb(f)));this.i=wSb(uSb(PHb(f)));h=PHb(f);this.j=ccb(h);this.a=(new ESb(PHb(f))).a;this.d=rq(or,Z_b,8,this.a,15,1);for(g=0;g!=this.a;g++)this.d[g]=wSb(uSb(PHb(f)));this.gb=true;dcb(this,this.j)}\nfunction Mq(a){var b,c,d,e,f;if(isNaN(a)){return $q(),Zq}if(a<-9223372036854775808){return $q(),Xq}if(a>=9223372036854775807){return $q(),Wq}e=false;if(a<0){e=true;a=-a}d=0;if(a>=w$b){d=lr(a/w$b);a-=d*w$b}c=0;if(a>=v$b){c=lr(a/v$b);a-=c*v$b}b=lr(a);f=zq(b,c,d);e&&Fq(f);return f}\nfunction l4(a){var b,c,d,e,f,g,h,i;o4(a);O4(a);h=30000;f=d3b;i=30000;g=d3b;c=R2(a);for(e=0;e!=a.ab.a.a.length;e++){b=G3(a,e);if(b.kb||c==0){h=c4(b.nb,c4(b.ob,h));f=_3(b.nb,_3(b.ob,f));i=c4(b.pb,c4(b.qb,i));g=_3(b.pb,_3(b.qb,g))}}d=new d7;d.b=(h+f)/2|0;d.c=(i+g)/2|0;d.a=c;return d}\nfunction U4(a,b){if(b){if(a.qd!=null)return;a.ed=true;aL(a.Mc,(aH(),(new RG(xRb('RUN<\\/strong> / Stop'))).a));Fe(a.Mc,V0b);yb(a.yd)}else{a.ed=false;aL(a.Mc,(aH(),(new RG(xRb('Run / STOP<\\/strong>'))).a));Fe(a.Mc,'topButton-red');wb(a.yd);y4(a)}}\nfunction yBb(a,b,c){var d;if(b==0){NXb(a.u,new rDb(c,0,0,dCb(a,0,false)));!!c&&a.V.N.c&&!(fr(c,210)||fr(c,240)||fr(c,215)||fr(c,211))&&NXb(a.u,new rDb(c,1,3,dCb(a,1,false)))}else{d=c.dg(b);NXb(a.u,new rDb(c,d,b,dCb(a,d,false)));d==0&&(a.U=true);d==1&&(a.O=true)}EBb(a);sCb(a,false)}\nfunction Xp(a,b){var c,d,e;if(a.b>a.d){while(a.da.o){e=a.b-a.o;for(c=0;c0){b.a=b.a.substr(0,0)+''+uTb(b.a,e);a.d-=e;a.b-=e}}}}\nfunction Klb(){var e={success:function(b){function d(){var a=c.responseText;o4(Jlb);p4(Jlb,a)}\ntry{if(b[0].bytesa.X/2&&(c=lr(a.X/2));a.eb=GU(a.ib,a.jb,0.5-c/a.X);a.fb=GU(a.ib,a.jb,0.5+(c+2)/a.X);a.i=GU(a.ib,a.jb,0.5+(c-2)/a.X);b=QU(3);KU(a.eb,a.fb,b[0],b[1],0,16);b[2]=GU(a.ib,a.jb,0.5+(c-5)/a.X);a.d=lU(b);a.n=EU(a,1,0.30000001192092896);TU(a,a.ib,a.jb,16)}\nfunction WGb(b){var c,d,e,f,g;for(g=0;g!=b.c;g++){c=u3(b.i,b.e,g);if(!c)continue;f=b.d[g];try{c.k=!f.e?'':lS(f.e);G5('slidertext '+c.k+' '+f.e);!!c.d&&$M(c.d,c.k);d=Whb(lS(f.j));c.f=d;d=Whb(lS(f.g));c.e=d;OY(c,f.t)}catch(a){a=wF(a);if(fr(a,15)){e=a;G5(og(e,e.we()))}else throw xF(a)}}}\nfunction eM(){JL.call(this);this.Ab=new PQ(this);this.ub=(YQ(),VQ);this.Bb='gwt-PopupPanelGlass';this.Db=false;this.Fb=-1;this.Jb=new eR(this);this.Lb=-1;Ch((DI(),this.Sb),$doc.createElement(y$b));$L(this,0,0);Zh(Yh(this.Sb)).className='gwt-PopupPanel';(null,Yh(this.Sb)).className=p_b}\nfunction EBb(a){var b,c,d,e,f;a._=new $Xb;f=0;b=0;d=0;if(a.s){for(c=0;c<2&&c0){a.u=new $Xb;NXb(a.u,new rDb(d,d.dg(b),b,dCb(a,d.dg(b),false)));NXb(a.u,new rDb(d,d.dg(c),c,dCb(a,d.dg(c),false)));return}if(e){a.u=new $Xb;NXb(a.u,new rDb(d,d.dg(b),0,dCb(a,d.dg(b),false)));NXb(a.u,new rDb(e,d.dg(c),0,dCb(a,d.dg(b),false)));return}ICb(a,b)}\nfunction PYb(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c=0){d=e+1;d=0){a.a=vTb(a.a,0,c)+''+uTb(a.a,c+1);f-=a.a.length-c}return f}\nfunction WBb(a,b){var c,d,e;alb(b,ZT);a.$=10;if(a._.a.a.length==0){a.L&&RBb(a,b);return}c=SXb(a._);a.T&&ZBb(a,c,b);a.P&&VBb(a,b,'Max='+lDb(c,a.q));if(a.Q){e=a.A.a-5;Ykb(b,'Min='+lDb(c,a.r),0,e)}a.S&&YBb(a,b);a.J&&NBb(a,b);a.K&&QBb(a,b);d=gCb(a,true);d!=null&&d!=''&&VBb(a,b,d);a.N&&UBb(a,b);a.L&&RBb(a,b)}\nfunction l3(a,b,c,d){var e,f,g,h,i;a.T==-1&&(a.T=elb(a.fc.nb,a.fc.pb,b,c)>elb(a.fc.ob,a.fc.qb,b,c)?1:0);e=b-a.P;f=c-a.Q;if(e==0&&f==0)return;if(d){for(h=0;h!=a.ab.a.a.length;h++){g=TXb(a.ab,h);if(g.nb==a.P&&g.pb==a.Q)i=0;else if(g.ob==a.P&&g.qb==a.Q)i=1;else continue;OU(g,i,e,f)}}else OU(a.fc,a.T,e,f);g4(a)}\nfunction Bkb(a){var b,c,d,e;b=FU(a,a.mb[0]);c=a.b/a.c;if(c0&&GP(a.a)}\nfunction dR(a,b,c){var d;a.c=c;$(a);if(a.g){wb(a.g);a.g=null;aR(a)}a.a.Kb=b;dM(a.a);d=!c&&a.a.Db;a.a.ub!=(YQ(),VQ)&&!b&&(d=false);a.i=b;if(d){if(b){_Q(a);ue(a.a).style[z$b]=A$b;a.a.Lb!=-1&&$L(a.a,a.a.Fb,a.a.Lb);ue(a.a).style[m_b]=n_b;KK((DR(),HR()),a.a);a.g=new iR(a);xb(a.g,1)}else{ab(a,200,Ig(),null)}}else{bR(a)}}\nfunction xtb(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.w=(new ESb(PHb(g))).a;this.d=100;try{this.s=wSb(uSb(PHb(g)));this.r=wSb(uSb(PHb(g)));this.mb[0]=0;this.mb[1]=-this.s;this.mb[2]=-this.r;this.d=wSb(uSb(PHb(g)));this.u=ccb(PHb(g))}catch(a){a=wF(a);if(fr(a,15)){this.u=F4b}else throw xF(a)}ntb=this.bb&2;wtb(this)}\nfunction Ygb(a,b){var c,d,e,f,g,h;Tgb();e=new DUb((new vUb(Fgb)).a);while(e.b){h=BUb(e);d=h.ei();if($wnd.Math.abs(d.j-a)0&&ea.b.k*16&&a==WT.O&&(a.bb&=-3);vX(a.a,(a.bb&2)!=0?1:2);Gab(a.a,(a.b.e&1)!=0?a.b.i:null);a.a.D=a.b.k;a.a.F=a.b.n;Fab(a.a,a.e);for(b=0;b!=a.e;b++){c=TXb(a.b.d,b);Hab(a.a,b,c.c,c.d,c.a)}uX(a.a);for(b=0;b!=a.e;b++)_7(a,b,rX(a.a,b))}\nfunction TBb(a,b){var c,d,e,f,g,h;e=0;d=1/(a.V.Sb*a.X*20*2);for(c=0;c<20;c++){h=a.A.b*c/20|0;if(h0){b.a.strokeStyle='#880000';b.a.fillStyle='#880000';Ukb(b,h,0,h,a.A.a)}b.a.strokeStyle=j6b;b.a.fillStyle=j6b;Ykb(b,f,h+2,a.A.a)}}\nfunction $ub(b,c,d,e,f,g){aV.call(this,b,c,d,e,f);this.f=15;this.g=-15;this.b=i0b;try{this.f=wSb(uSb(PHb(g)));this.g=wSb(uSb(PHb(g)));this.b=wSb(uSb(PHb(g)));this.mb[0]=wSb(uSb(PHb(g)));this.mb[1]=wSb(uSb(PHb(g)));this.a=wSb(uSb(PHb(g)))}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}this.gb=true;Yub(this,(f&2)!=0?1:2);Xub(this)}\nfunction cCb(a){var b,c,d,e;c=(a.O?1:0)|(a.U?2:0)|(a.P?0:4)|(a.N?8:0)|(a.o?524304:0)|(a.s?64:0)|(a.t?128:0)|(a.Q?256:0)|(a.T?512:0)|(a.M?o$b:0)|(a.p?8192:0)|(a.S?V$b:0)|(a.K?32768:0)|(a.k?W$b:0)|(a.J?X$b:0)|(a.L?$$b:0);c|=T$b;b=0;for(e=new OVb(a.u.a);e.a=1){if(e[0].size>=128000){yJ(xRb('Cannot load: That file is too large!'));return}var g=new FileReader;g.onload=function(a){var b=new Uint8Array(g.result);var c='0:';for(var d=0;d2?a.n:2;a.A=rq(Ky,XYb,9,(a.bb&4)!=0?a.n+3:a.n+2,0,1);a.A[0]=new j2(a,0,2,'');a.A[0].d=true;a.A[0].a=(a.bb&8)!=0;a.A[1]=new j2(a,a.F-1,2,'R');a.A[1].a=a.a;for(b=0;b!=a.n;b++){c=b+2;a.A[c]=new j2(a,b,3,'Q'+(a.n-b-1));a.A[c].k=a.A[c].s=true}(a.bb&4)!=0&&(a.A[a.n+2]=new j2(a,a.F-2,2,'U/D'));eU(a)}\nfunction aU(c){var b=c;c.getType=SYb(function(){return b.Of()});c.getInfo=SYb(function(){return b.Xf()});c.getVoltageDiff=SYb(function(){return b.gg()});c.getVoltage=SYb(function(a){return b.hg(a)});c.getCurrent=SYb(function(){return b.Rf()});c.getLabelName=SYb(function(){return b.Lh()});c.getPostCount=SYb(function(){return b.ag()})}\nfunction K7(){K7=ZF;I7=new N7(255,255,255);G7=new N7(192,192,192);E7=new N7(128,128,128);y7=new N7(128,128,128);D7=new N7(64,64,64);C7=new N7(64,64,64);z7=new N7(0,0,0);H7=new N7(255,0,0);new N7(255,175,175);new N7(255,200,0);J7=new N7(255,255,0);F7=new N7(0,255,0);new N7(255,0,255);B7=new N7(0,255,255);A7=new N7(0,0,255);new P7('')}\nfunction _vb(a){var b;a.a=16;a.b=a.a*2;a.d=TXb(a.w,0);b=TXb(a.w,1);b.i='max(0,min(.0001, select(i-.003, (-80000000000*(i)^5+800000000*(i)^4-3000000*(i)^3+5177.2*(i)^2+.2453*(i)-.00005)*1.04/700, (9000000*(i)^5-998113*(i)^4+42174*(i)^3-861.32*(i)^2+9.0836*(i)-.0078)*.945/700)))';k0(b);a.i=TXb(a.w,2);ttb(a.i,700);a.c=rq(or,Z_b,8,4,15,1)}\nfunction UAb(b,c,d,e,f,g){jX();var h,i;AX.call(this,b,c,d,e,f,g);this.g=new JWb;this.b=vSb(PHb(g),10);this.d=vSb(PHb(g),10);SAb(this);try{while(true){h=vSb(PHb(g),10);if(h<0)break;i=vSb(PHb(g),10);mUb(this.g,OSb(h),OSb(i));while(true){i=vSb(PHb(g),10);if(i<0)break;mUb(this.g,OSb(++h),OSb(i))}}}catch(a){a=wF(a);if(!fr(a,15))throw xF(a)}}\nfunction U$(d,e){P$();var f=e.files;var g=new (window.AudioContext||window.webkitAudioContext);d.Vg(g.sampleRate);if(f.length>=1){var h=new FileReader;h.onload=function(c){g.decodeAudioData(h.result,function(a){var b=a.getChannelData(0);d.Ug(b)},function(a){console.log('Error with decoding audio data'+a.err)})};h.readAsArrayBuffer(f[0])}}\nfunction knb(a){a.D=2;a.F=3;a.A=rq(Ky,XYb,9,5+((a.bb&2)!=0?1:0),0,1);a.A[0]=new j2(a,0,2,'J');a.A[1]=new j2(a,1,2,'');a.A[1].d=true;a.A[1].a=(a.bb&4)==0;a.A[2]=new j2(a,2,2,'K');a.A[3]=new j2(a,0,3,'Q');a.A[3].k=a.A[3].s=true;a.A[4]=new j2(a,2,3,'Q');a.A[4].k=true;a.A[4].j=true;if((a.bb&2)!=0){a.A[5]=new j2(a,1,3,'R');a.A[5].a=(a.bb&8)!=0}}\nfunction wo(b,c){var d,e,f,g,h,i;if(!c){throw xF(new ZSb('Cannot fire null event'))}try{++b.b;h=(e=zo(b,c.Ge(),null),e);d=null;i=b.c?h._h(h.Xh()):h.$h();while(b.c?i.bi():i.tf()){g=b.c?i.ci():i.uf();try{c.Fe(g)}catch(a){a=wF(a);if(fr(a,37)){f=a;!d&&(d=new NWb);mUb(d.a,f,d)}else throw xF(a)}}if(d){throw xF(new Fo(d))}}finally{--b.b;b.b==0&&Ao(b)}}\nfunction Hvb(a){var b,c,d;a.bb|=1;switch(a.f){case 0:Gvb(a);break;case 1:c=new RHb(wvb,'/');Z7(a,c,xvb,vvb);Fvb(a).d=1.0E-11/(a.k/0.55);Fvb(a).o=a.a;d=a.c/S5b;TXb(a.w,11).a/=d;ttb(TXb(a.w,9),d*100);ttb(TXb(a.w,10),d*100);ttb(TXb(a.w,12),d*100);ttb(TXb(a.w,16),d*100);break;case 2:b=new RHb(zvb,'/');Z7(a,b,Avb,yvb);}a.b=rq(or,Z_b,8,5,15,1);Ivb(a)}\nfunction GBb(a,b,c){var d,e,f,g,h,i,j,k,m;if(V2(a.V))return;if(!nyb(a.A,b,c)){a.I=-1;return}if(a.u.a.a.length==0){a.I=-1;return}i=oDb(TXb(a.u,0),a.A.b);h=b-a.A.c+i&a.G-1;k=(a.A.a-1)/2|0;e=q5b;d=-1;for(g=0;g!=a._.a.a.length;g++){m=TXb(a._,g);j=lr(m.f*(m.o[h]+m.q));f=$wnd.Math.abs(c-(a.A.d+k-j));if(f=0&&(tBb=TXb(a._,a.I).u)}\nfunction tyb(a,b){var c,d,e,f,g,h,i,j;h=a.b;j=a.a;if(GF(LF(h,j),0)){return new xyb(b)}d=b.b;f=b.a;if(GF(LF(d,f),0)){return new xyb(a)}g=a.c;i=a.d;h=yF(h,g);j=yF(j,i);c=b.c;e=b.d;d=yF(d,c);f=yF(f,e);g>c&&(g=c);i>e&&(i=e);zF(h,d)<0&&(h=d);zF(j,f)<0&&(j=f);h=MF(h,g);j=MF(j,i);zF(h,UYb)>0&&(h=UYb);zF(j,UYb)>0&&(j=UYb);return new vyb(g,i,PF(h),PF(j))}\nfunction sU(a,b,c,d,e){var f,g,h,i,j,k;g=false;if(iTb(c.substr(0,1),'/')){g=true;c=c.substr(1)}h=lr(Mf(b.a,c).width);f=b.b;b.a.save();b.c=b.b;b.a.textBaseline=E_b;i=e.a;j=e.b;if(d.b!=e.b){i-=h/2|0;j+=tW(e.b-d.b)*f}else{e.a>d.a?(i+=4):(i-=4+h)}Kf(b.a,c,i,j);bU(a,i,j-(f/2|0),i+h,j+(f/2|0));b.a.restore();b.b=b.c;if(g){k=j-(f/2|0)-1;Ukb(b,i,k,i+h,k)}}\nfunction $Lb(a){var b,c,d,e,f,g,h,i;UU(a);b=a.ab==0?tW(a._):-tW(a.ab);c=HU(a.ib,a.jb,0,-a.s*b);d=HU(a.ib,a.jb,1,-a.s*b);i=WT.tb/2|0;e=HU(a.ib,a.jb,0,-((a.s/2|0)-i)*b);f=HU(a.ib,a.jb,1,-((a.s/2|0)-i)*b);g=HU(a.ib,a.jb,0,-((a.s/2|0)+i)*b);h=HU(a.ib,a.jb,1,-((a.s/2|0)+i)*b);a.k=uq(nq(YB,1),b0b,19,0,[c,d,a.ib,a.jb]);a.g=uq(nq(YB,1),b0b,19,0,[g,h,e,f])}\nfunction SAb(a){var b,c;a.D=2;a.F=eW(a.b,a.d)+1;a.A=rq(Ky,XYb,9,2+a.b+a.d,0,1);a.A[0]=new j2(a,0,2,'WE');a.A[0].j=true;a.A[1]=new j2(a,0,3,'OE');a.A[1].j=true;a.c=2;a.e=2+a.b;a.f=2+a.b+a.d;for(b=0;b!=a.b;b++){c=b+a.c;a.A[c]=new j2(a,a.F-a.b+b,2,'A'+(a.b-b-1))}for(b=0;b!=a.d;b++){c=b+a.e;a.A[c]=new j2(a,a.F-a.d+b,3,'D'+(a.d-b-1));a.A[c].k=true}eU(a)}\nfunction xJb(a,b,c,d,e,f){var g,h,i,j,k,m;h=lr(Mf(b.a,c).width);i=lr(Mf(b.a,d).width);j=h>i?h:i;g=b.b;b.a.save();b.c=b.b;b.a.textBaseline=E_b;k=f.a;m=f.b;if(e.b!=f.b){k-=j/2|0;m+=tW(f.b-e.b)*g;f.be.a?(k+=4):(k-=4+j)}Kf(b.a,c,k+((j-h)/2|0),m);Kf(b.a,d,k+((j-i)/2|0),m+14);bU(a,k,m-(g/2|0),k+j,m+14+(g/2|0));b.a.restore();b.b=b.c}\nfunction OM(a){var b,c;rM.call(this,false,true,eZb);_e(a);this.lb=a;c=(DI(),zM(this.tb));Ch(c,KI(ue(this.lb)));vK(this,this.lb);Zh(Yh(this.Sb)).className='gwt-DialogBox';this.sb=pi($doc);this.mb=0;this.nb=0;b=new gN(this);Ve(this,b,(Sm(),Sm(),Rm));Ve(this,b,(ln(),ln(),kn));Ve(this,b,(Xm(),Xm(),Wm));Ve(this,b,(fn(),fn(),en));Ve(this,b,(an(),an(),_m))}\nfunction uU(a,b,c,d){var e,f,g,h,i,j,k;if(c==null)return;clb(b,XT);g=lr(Mf(b.a,c).width);alb(b,ZT);j=b.b/2|0;if(fr(a,47)||fr(a,239)){h=a.ob;k=a.qb}else{h=(a.ob+a.nb)/2|0;k=(a.qb+a.pb)/2|0}e=lr(a.Y*d);f=lr(a.Z*d);if(e==0)Kf(b.a,c,h-(g/2|0),k-(f<0?-f:f)-2);else{i=h+(e<0?-e:e)+2;(fr(a,48)||a.nba.qb)&&(i=h-(g+(e<0?-e:e)+2));Kf(b.a,c,i,k+f+j)}}\nfunction Rcb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);Ocb(this);this.d=s0b;this.q=0;this.k=wSb(uSb(PHb(f)));this.p=wSb(uSb(PHb(f)));this.b=wSb(uSb(PHb(f)));this.c=wSb(uSb(PHb(f)));this.a=wSb(uSb(PHb(f)));this.e=wSb(uSb(PHb(f)));this.g=wSb(uSb(PHb(f)));this.r=wSb(uSb(PHb(f)));this.i=new hmb(WT);this.j=new hmb(WT);emb(this.i,this.k,0,2);emb(this.j,this.a,0,2)}\nfunction Fyb(a,b,c,d,e,f){aV.call(this,a,b,c,d,e);Ayb(this);this.q=ccb(PHb(f));this.p=wSb(uSb(PHb(f)));this.c=wSb(uSb(PHb(f)));this.w=wSb(uSb(PHb(f)));this.f=wSb(uSb(PHb(f)));this.v=wSb(uSb(PHb(f)));this.D=uSb(PHb(f));this.H=vSb(PHb(f),10);this.B=vSb(PHb(f),10);this.C=vSb(PHb(f),10);this.gb=true;this.o=new hmb(WT);emb(this.o,this.p,this.c,2);Dyb(this);eU(this)}\nfunction HY(){var a;eM.call(this);a=(!iH&&(pH(),oH)&&(iH=new mH(Q$b)),iH);vH(a.a,'versionString','3.1.3js');this.b=new SS;bM(this,this.b);Ie(this.b,F0b);OS(this.b,new eN(' +
+
+ +
+ + + diff --git a/doc/js-interface.html b/doc/js-interface.html new file mode 100644 index 0000000..3a5adb1 --- /dev/null +++ b/doc/js-interface.html @@ -0,0 +1,276 @@ + + + + + + Circuit Simulator JavaScript Interface Documentation + + + +

Circuit Simulator JavaScript Interface Documentation

+ +

This documentation outlines how to interact with the Circuit Simulator using JavaScript when it's embedded in an HTML page, particularly focusing on the use of an iframe to host the simulator.

+ +

Overview

+

To use the JavaScript interface, the simulator and the controlling JavaScript page must be served from the same origin (domain). +This is required by the same-origin policy enforced by browsers for security reasons. +

+To run the simulator on your website, get the offline windows version, +and put the contents of the circuitjs1/resources/app/war directory on your website. +

+You can run the CircuitJS1 simulation in an iframe. The CircuitJS1 object provides methods to interact with the simulator. +

+See a running example here. +

+ +

Setup

+ +
<iframe id="circuitFrame" src="circuitjs.html?startCircuit=jsinterface.txt" width="800" height="550"></iframe>
+
+...
+
+<script>
+
+var iframe = document.getElementById("circuitFrame");
+
+// Wait for the circuit simulator to load
+iframe.contentWindow.oncircuitjsloaded = function() {
+    // Simulator is loaded, initialize your code here
+    sim = iframe.contentWindow.CircuitJS1;
+
+    // Set up callbacks for updates, analysis, and time steps (all optional)
+    sim.onupdate = didUpdate;
+    sim.ontimestep = didStep;
+    sim.onanalyze = didAnalyze;
+};
+ +

Available CircuitJS1 Methods

+ +

setSimRunning(boolean run)

+
    +
  • Description: Starts or stops the simulation.
  • +
  • Parameters: +
      +
    • run (boolean): true to start the simulation, false to stop it.
    • +
    +
  • +
  • Example: CircuitJS1.setSimRunning(true);
  • +
+ +

getTime()

+
    +
  • Description: Retrieves the current simulation time.
  • +
  • Returns: The simulation time in seconds as a number.
  • +
  • Example: var time = CircuitJS1.getTime();
  • +
+ +

getTimeStep()

+
    +
  • Description: Gets the current time step of the simulation.
  • +
  • Returns: The time step value.
  • +
  • Example: var timeStep = CircuitJS1.getTimeStep();
  • +
+ +

setTimeStep(double ts) (Deprecated)

+
    +
  • Description: Sets the time step for the simulation. Note: This method is deprecated; changes to time step should be made using setMaxTimeStep.
  • +
  • Parameters: +
      +
    • ts (double): The new time step to set.
    • +
    +
  • +
  • Example: CircuitJS1.setTimeStep(1e-6); // This is deprecated
  • +
+ +

getMaxTimeStep()

+
    +
  • Description: Returns the maximum time step allowed for the simulation.
  • +
  • Returns: The maximum time step value.
  • +
  • Example: var maxTimeStep = CircuitJS1.getMaxTimeStep();
  • +
+ +

setMaxTimeStep(double ts)

+
    +
  • Description: Sets a new maximum time step and also sets the current time step to this value.
  • +
  • Parameters: +
      +
    • ts (double): The new maximum time step to set.
    • +
    +
  • +
  • Example: CircuitJS1.setMaxTimeStep(1e-3);
  • +
+ +

isRunning()

+
    +
  • Description: Checks if the simulation is currently running.
  • +
  • Returns: true if the simulation is running, false otherwise.
  • +
  • Example: if (CircuitJS1.isRunning()) { ... }
  • +
+ +

getNodeVoltage(String n)

+
    +
  • Description: Gets the voltage at a labeled node in the circuit.
  • +
  • Parameters: +
      +
    • n (String): The name of the labeled node.
    • +
    +
  • +
  • Returns: The voltage at the node.
  • +
  • Example: var nodeVoltage = CircuitJS1.getNodeVoltage("vsense");
  • +
+ +

setExtVoltage(String n, double v)

+
    +
  • Description: Sets the voltage of an external voltage element (see Inputs and Sources, +Add External Voltage). These are different than labeled nodes, though they look the same. Labeled nodes are +passive. Their voltage is determined by the rest of the circuit. External voltage elements are voltage sources. Their +voltage is determined by javascript code.
  • +
  • Parameters: +
      +
    • n (String): The name of the external voltage element to set the voltage for.
    • +
    • v (double): The voltage value to set.
    • +
    +
  • +
  • Example: CircuitJS1.setExtVoltage("extsin", 5);
  • +
+ +

getElements()

+
    +
  • Description: Retrieves all elements currently in the circuit.
  • +
  • Returns: An array of circuit elements. See below for methods supported on these element objects.
  • +
  • Example: var elements = CircuitJS1.getElements();
  • +
+ +

getCircuitAsSVG()

+
    +
  • Description: Exports the current circuit as an SVG string.
  • +
  • Returns: The SVG representation of the circuit.
  • +
  • Example: var svgData = CircuitJS1.getCircuitAsSVG();
  • +
+ +

exportCircuit()

+
    +
  • Description: Exports the current circuit to a string format for saving or transmission.
  • +
  • Returns: A string representation of the circuit.
  • +
  • Example: var circuitExport = CircuitJS1.exportCircuit();
  • +
+ +

importCircuit(String circuit, boolean subcircuitsOnly)

+
    +
  • Description: Imports a circuit from a string, potentially only loading subcircuits.
  • +
  • Parameters: +
      +
    • circuit (String): The string representation of the circuit to import (as returned by exportCircuit()).
    • +
    • subcircuitsOnly (boolean): If true, only subcircuits are imported.
    • +
    +
  • +
  • Example: CircuitJS1.importCircuit(circuitString, false);
  • +
+ +

Circuit Element Methods

+ +

getType()

+
    +
  • Description: Retrieves the type of the circuit element.
  • +
  • Returns: A string representing the class name of the element.
  • +
  • Example: var elementType = element.getType();
  • +
+ +

getInfo()

+
    +
  • Description: Gets information about the circuit element, which might include voltage, current, or other relevant data points.
  • +
  • Returns: An array or object containing information about the element.
  • +
  • Example: var elementInfo = element.getInfo();
  • +
+ +

getVoltageDiff()

+
    +
  • Description: Returns the voltage difference across the element. This is particularly useful for two-terminal elements like resistors.
  • +
  • Returns: The voltage difference as a number.
  • +
  • Example: var voltageDiff = element.getVoltageDiff();
  • +
+ +

getVoltage(n)

+
    +
  • Description: Gets the voltage at a specific node (or post) of the element.
  • +
  • Parameters: +
      +
    • n (number): The index of the node to check.
    • +
    +
  • +
  • Returns: The voltage at the specified node.
  • +
  • Example: var nodeVoltage = element.getVoltage(0);
  • +
+ +

getCurrent()

+
    +
  • Description: Retrieves the current flowing through the element.
  • +
  • Returns: The current as a number.
  • +
  • Example: var current = element.getCurrent();
  • +
+ +

getLabelName() (For LabeledNodeElm)

+
    +
  • Description: Returns the name of the label for elements that are labeled nodes.
  • +
  • Returns: The label name as a string.
  • +
  • Example: var labelName = labelElm.getLabelName();
  • +
+ +

getPostCount()

+
    +
  • Description: Returns the number of posts (connection points) for the element.
  • +
  • Returns: The post count as a number.
  • +
  • Example: var postCount = element.getPostCount();
  • +
+

Callbacks

+
    +
  • onupdate: Called when the simulator updates its display (usually 60 times per second). +
    sim.onupdate = didUpdate;
    +...
    +function didUpdate(sim) {
    +    // Update UI with simulation data
    +}
    +
  • +
  • ontimestep: Called every time step of the simulation. +
    sim.ontimestep = didStep;
    +...
    +function didStep(sim) {
    +    // Perform actions per time step
    +}
    +
  • +
  • onanalyze: Called when the circuit is analyzed (loaded or edited). +
    sim.onanalyze = didAnalyze;
    +...
    +function didAnalyze(sim) {
    +    // React to changes in circuit
    +}
    +
  • +
+ + + diff --git a/doc/opampreal.html b/doc/opampreal.html new file mode 100644 index 0000000..a3a9ddd --- /dev/null +++ b/doc/opampreal.html @@ -0,0 +1,19 @@ + +

Real Op-Amps

+The ideal op-amp element uses an ideal approximation to op-amp behavior. It has infinite slew rate +and output current. +

+The real op-amp element uses a subcircuit to emulate a real op-amp implementation with finite slew rate and output current. Presently, +the two implementation options are LM741 and LM324. +

+You can also modify the slew rate or output current, which will modify the circuit to change these values from the default. +

+These subcircuits are complicated, so you may run problems with convergence, especially if you increase the slew rate. Try decreasing +the time step size if this happens. +

+The LM324 can act very glitchy as well if the slew rate is increased. Decreasing the time step size proportionately should fix this. + diff --git a/doc/overview.html b/doc/overview.html new file mode 100644 index 0000000..b3c6155 --- /dev/null +++ b/doc/overview.html @@ -0,0 +1,1297 @@ + + + + + + + + + + + + + + + + + + + +

+ +

+ +

Click here for a more complete tutorial.

+ +

This java applet is an electronic circuit simulator.  When the applet starts up you will see a +simple LRC circuit.  The green color +indicates positive voltage.  The gray +color indicates ground.  A red color +indicates negative voltage.  The moving +yellow dots indicate current.

+ +

To turn a switch on or off, just click on it.  If you move the mouse over any component of +the circuit, you will see a short description of that component and its current +state in the lower right corner of the window.  +To modify a component (say, to change the resistance of one of the +resistors), move the mouse over it, click the right mouse button (or +control-click, if you have a Mac) and select “Edit”.

+ +

There are three graphs at the bottom of the window; these act like +oscilloscopes, each one showing the voltage and current across a particular +component.  Voltage is shown in green, +and current is shown in yellow.  The +current may not be visible if the voltage graph is on top of it.  The peak value of the voltage in the scope +window is also shown.  Move the mouse +over one of the scope views, and the component it is graphing will be +highlighted.  To modify or remove a +scope, click the right mouse button over it.  +To view a component in the scope, click the right mouse button over the +component and select “View in Scope”.

+ +

If the simulation is moving too slowly or too quickly, you can adjust the +speed with the “Simulation Speed” slider.

+ +

+ +

The File menu allows you to load or save circuit description +files.  You can also export a circuit description +as a link so you can share a circuit with others; this link can be optionally +shortened, which is usually better.

+ +

The +Reset button resets the circuit to a reasonable state.  The Run/Stop button allows you to stop +the simulation.  The Simulation Speed +slider allows you to adjust the speed of the simulation.  If the simulation isn’t time-dependent (that +is, if there are no capacitors, inductors, or time-dependent voltage sources), +then this won’t have any effect.  The Current +Speed slider lets you adjust the speed of the dots, in case the currents +are so weak (or strong) that the dots are moving too slowly (or too quickly).

+ +

The Circuits menu can be used to view some interesting pre-defined +circuits. Once a circuit is selected, you may modify it all you want. + +

To +add a new component to the circuit, click the right mouse button on an unused +area of the window.  This will bring up a +menu that allows you to select what component you want.  Then click where you want the first terminal +of the component, and drag to where you want the other terminal.  The menu items allow you to create:

+ +

·      +wires

+ +

·      +resistors; you can adjust the resistance after +creating the resistor by clicking the right mouse button and selecting “Edit”

+ +

·      +capacitors; you can adjust the capacitance using +“Edit”

+ +

·      +inductors, switches, transistors, etc.

+ +

·      +voltage sources, in either 1-terminal or +2-terminal varieties.  The 1-terminal +versions use ground as the other terminal.  +By clicking the right mouse button and selecting “Edit”, you can modify +the voltage and the waveform of the voltage source, changing it to DC, AC (sine +wave), square wave, triangle, sawtooth, or pulse.  If it’s not a DC source, you can also change +the frequency and the DC offset.

+ +

·      +op-amps, with power supply limits of –15V and +15V assumed (not shown).  The limits can +be adjusted using “Edit”.

+ +

·      +text labels, which you can modify with the +“Edit” dialog

+ +

·      +test points; these have no effect on the +circuit, but if you select them and use the right mouse menu item “View in +Scope”, you can view the voltage difference between the terminals.

+ +

Also in the “Other” submenu, there are some items that allow you to click +and drag sections of the circuit around.

+ +

You can drag the circuit around by clicking and dragging with the Alt key +held down.  Zoom in and out with the +mouse wheel or by using the zoom commands in the Edit menu.

+ +

To edit one of the scope views, click the right mouse button on it to view a +menu.  The menu items allow you to remove +a scope view, speed up or slow down the display, adjust the scale, select what +value(s) you want to view, etc.

+ +

The time step size is the time between iterations of the simulator.  Smaller time steps make the simulation more +accurate, but slower.  A smaller time +step size is required to simulate high frequencies.  A larger time step size may be appropriate +for circuits that run in real time.  Use Edit->Other Options… to change the +time step size.

+ +

File->Recover Auto-Save lets +you recover a circuit lost when the simulator window was closed.  If this doesn’t work, try Edit->Undo instead.

+ +

File->Find DC Operating Point +is useful with circuits that take a long time to reach a useful state.  This option instantly charges all the +capacitors.

+ +

Here are some errors you might encounter when using the simulator:

+ +

·      Voltage +source loop with no resistance! – this means one of the voltage sources in +your circuit is shorted.  Make sure there +is some resistance across every voltage source.

+ +

·      Capacitor +loop with no resistance! – it’s not allowed to have any current loops +containing capacitors but no resistance.  +For example, capacitors connected in parallel are not allowed; you must +put a resistor in series with them.  +Shorted capacitors are allowed.

+ +

·      Singular +matrix! – this means that your circuit is inconsistent (two different +voltage sources connected to each other), or that the voltage at some point is +undefined.  It might mean that some +component’s terminals are unconnected; for example, if you create an op-amp but +haven’t connected anything to it yet, you will get this error. 

+ +

·      Convergence +failed! – this means the simulator can’t figure out what the state of the +circuit should be.  Just click Reset +and hopefully that should fix it.  Your +circuit might be too complicated, but this happens sometimes even with the +examples.

+ +

·      Transmission +line delay too large! – the transmission line delay is too large compared +to the timestep of the simulator, so too much memory would be required.  Make the delay smaller.

+ +

·      Need +to ground transmission line! – the bottom two wires of a transmission line +must always be grounded in this simulator.

+ +

 

+ +
+ + + + diff --git a/doc/subcircuit-pins1.png b/doc/subcircuit-pins1.png new file mode 100644 index 0000000000000000000000000000000000000000..9122c3d77b326b954a11f4a413809aa301e8a101 GIT binary patch literal 7998 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 + + + +

Subcircuits

+

+You can use subcircuits to implement custom "black box" devices. +

+Create and test your device, and then use labeled nodes (under "Outputs and Labels") to mark and label all the inputs/outputs. Here is an example circuit (a bridge rectifier). +

+Then, select File->Create Subcircuit, then rearrange the pins the way you want them, enter a model name, and click OK. This will load the subcircuit model. +Be sure to save this circuit (the subcircuit implementation), because it can't be edited later otherwise. +

+Now you can create a circuit using the subcircuit model. Click with the right mouse and select the "Active Building Blocks" menu, and the "Add Subcircuit Instance" item. Then click +and drag to create an instance. Edit the instance to select which model you want (by default it will use the one you just created). +

+Here is an example using the rectifier. When you save/load this circuit, it will also save/load the subcircuit model so you can use it in other circuits. +

+You can also use subcircuits to rearrange pins on the built-in chips. Here is an example with the 555. And here is that subcircuit model being used in a circuit. +

+If you select part of a circuit before using File->Create Subcircuit, then only the selected elements will be considered part of +the subcircuit. +

+If you want to use labeled nodes in the subcircuit definition but don't want them to be one of the inputs/outputs, then check the "Internal Node" +checkbox in those labeled nodes' edit menus. +

+ +

Pins

+

+ The arrangement and direction of the labeled nodes in your circuit will determine the initial arrangement of the pins when creating the symbol symbol. + During symbol creation, you can change the initial pin layout by dragging the pins with the mouse. +

+

+ The name of the labeled nodes can affect the look of the pin in the following ways: +

+

+ + + +

+
    +
  • Naming a node "CLK" will add a "clock marker" to the symbol at that pin and hide the text.
  • +
  • Prefixing the name with "CLK:" (as in "CLK:C1") will draw a "clock marker" on that pin in the symbol.
  • +
  • Prefixing the name with "INV:" (as in "INV:EN") will draw an "inverter circle" on that pin in the symbol, denoting logical inversion.
  • +
  • Prefixing the name with "/" (as in "/EN") will draw a horizontal line above the text in the symbol, also denoting logical negation.
  • +
  • For all prefixes, the prefix itself will not be shown in the symbol, only the text after the prefix.
  • +
  • All prefixes are purely cosmetic and do not affect the actual signal.
  • +
+ + diff --git a/doc/toc.html b/doc/toc.html new file mode 100644 index 0000000..5f9d9b5 --- /dev/null +++ b/doc/toc.html @@ -0,0 +1,40 @@ + + + + + + Table of Contents + + + +

Table of Contents

+ Overview + Sample Circuits + Audio Input + Data Input + Delayed Buffer + Custom Function for Controlled Sources + Custom Logic + Custom Transformer + JavaScript Interface + Real Op Amp + Subcircuits +

 

+Back to the applet + + + + + diff --git a/doc/welcome.html b/doc/welcome.html new file mode 100644 index 0000000..efb353f --- /dev/null +++ b/doc/welcome.html @@ -0,0 +1,2701 @@ + + + + + + + + + + + + + + + + + + + +
+ +

+ +

Click here to +go to the applet.

+ +

Click here for a more complete manual.

+ +

This java applet is an electronic circuit simulator.  When the applet starts up you will see a +simple LRC circuit.  The green color +indicates positive voltage.  The gray +color indicates ground.  A red color +indicates negative voltage.  The moving +yellow dots indicate current.

+ +

To turn a switch on or off, just click on it.  If you move the mouse over any component of +the circuit, you will see a short description of that component and its current +state in the lower right corner of the window.  +To modify a component (say, to change the resistance of one of the +resistors), move the mouse over it, click the right mouse button (or +control-click, if you have a Mac) and select “Edit”.

+ +

There are three graphs at the bottom of the window; these act like +oscilloscopes, each one showing the voltage and current across a particular +component.  Voltage is shown in green, +and current is shown in yellow.  The +current may not be visible if the voltage graph is on top of it.  The peak value of the voltage in the scope +window is also shown.  Move the mouse +over one of the scope views, and the component it is graphing will be +highlighted.  To modify or remove a +scope, click the right mouse button over it.  +To view a component in the scope, click the right mouse button over the +component and select “View in Scope”.

+ +

If the simulation is moving too slowly or too quickly, you can adjust the +speed with the “Simulation Speed” slider.

+ +

+ +

The File menu allows you to load or save circuit description +files.  You can also export a circuit description +as a link so you can share a circuit with others; this link can be optionally +shortened, which is usually better.

+ +

The +Reset button resets the circuit to a reasonable state.  The Run/Stop button allows you to stop +the simulation.  The Simulation Speed +slider allows you to adjust the speed of the simulation.  If the simulation isn’t time-dependent (that +is, if there are no capacitors, inductors, or time-dependent voltage sources), +then this won’t have any effect.  The Current +Speed slider lets you adjust the speed of the dots, in case the currents +are so weak (or strong) that the dots are moving too slowly (or too quickly).

+ +

The Circuits menu can be used to view some interesting pre-defined +circuits. Once a circuit is selected, you may modify it all you want. The +choices are:

+ +
    +
  • Basics
  • +
      +
    • Resistors: this shows some + resistors of various sizes in series and parallel.
    • +
    • Capacitor: this shows a + capacitor that you can charge and discharge by clicking on the switch.
    • +
    • Inductor: this shows an + inductor that you can charge and discharge by clicking on the switch.
    • +
    • LRC + Circuit: + this shows an oscillating circuit with an inductor, resistor, and + capacitor.  You can close the + switch to get current moving in the inductor, and then open the switch to + see the oscillation.
    • +
    • Voltage + Divider: + this shows a voltage divider, which generates a reference voltage of + 7.5V, 5V, and 2.5V from the 10V power supply.
    • +
    • Thevenin’s + Theorem states + that the circuit on top is equivalent to the circuit on the bottom.
    • +
    • Norton’s + Theorem states + that the circuit on top is equivalent to the circuit on the bottom.
    • +
    +
  • A/C Circuits
  • +
      +
    • Capacitor: this shows a + capacitor connected to an alternating voltage source.
    • +
    • Inductor
    • +
    • Caps of Various + Capacitances: + shows the response of three different capacitors to the same frequency.
    • +
    • Caps w/ Various + Frequencies: + shows the response of three equal capacitors to three different + frequencies; the higher the frequency, the larger the current.
    • +
    • Inductors of Various + Inductances: + shows the response of three different inductors to the same frequency.
    • +
    • Inductors w/ Various + Frequencies: + shows the response of three equal inductors to three different + frequencies: the lower the frequency, the larger the current.
    • +
    • Impedances of Same + Magnitude: + shows a capacitor, an inductor, and a resistor that have impedances of + equal magnitude (but different phase).  + The peak current is the same in all three cases.
    • +
    • Series + Resonance: + shows three identical LRC circuits being driven by three different + frequencies.  The middle one is + being driven at the resonance frequency (shown in the lower right corner + of the screen as “res.f”).  The top + one is being driven at a slightly lower frequency, and the bottom one has + a slightly higher frequency.  The + peak voltage in the middle circuit is very high because it is resonating + with the source.
    • +
    • Parallel + Resonance: + these three circuits have the inductor, resistor, and capacitor in + parallel instead of series.  In this + case, the middle circuit is being driven at resonance, which causes the + current there to be lower than in the other two cases (because the + impedance of the circuit is highest at resonance).
    • +
    +
  • Passive Filters
  • +
      +
    • High-Pass + Filter (RC).  The original signal is shown at the lower left, and + the filtered signal (with the low-frequency part removed) is shown to the + right.  The breakpoint (-3 dB + point) is shown at the lower right, as “f.3db”.
    • +
    • Low-Pass + Filter (RC).
    • +
    • High-Pass Filter (RL).  This high-pass filter uses an inductor + rather than a capacitor.
    • +
    • Low-Pass Filter (RL).
    • +
    • Band-Pass Filter: this filter passes a + range of frequencies close to the resonance frequency (shown at the lower + right, as “res.f”).
    • +
    • Notch Filter: Also known as a + band-stop filter, this circuit filters out a range of frequencies close + to the resonance frequency.
    • +
    • Twin-T Filter: This filter does a + very good job of filtering out 60 Hz signals.
    • +
    • Crossover:  A set of three filters; the top one + passes low frequencies, the middle one passes midrange, and the bottom + one passes high frequencies.
    • +
    +
  • Other Passive Circuits
  • +
      +
    • Series/Parallel
    • +
        +
      1. Inductors in Series.  The circuit at left is equivalent to + the circuit at right.
      2. +
      3. Inductors in Parallel.
      4. +
      5. Caps in Series.
      6. +
      7. Caps in Parallel.
      8. +
      +
    • Transformers
    • +
        +
      1. Transformer: + A + basic transformer circuit with an equal number of windings in each coil.
      2. +
      3. Transformer w/ DC: Here we try to pass a + DC current through a transformer.
      4. +
      5. Step-Up Transformer: Here we step 10 V up + to 100 V.
      6. +
      7. Step-Down Transformer: + Here + we step 120 V down to 12 V.
      8. +
      +
    • 3-Way Light Switches: shows how a light + bulb can be turned on and off from two locations.
    • +
    • 3- and 4-Way Light + Switches: + shows how a light bulb can be turned on and off from three locations.
    • +
    • Differentiator: shows how a capacitor + can act as a differentiator, reflecting changes in voltage.
    • +
    • Wheatstone Bridge: shows a balanced + Wheatstone bridge.  If the bridge + were not balanced, current would be flowing across from one leg to the other.
    • +
    • Critically Damped LRC.
    • +
    • Current Source: shows a source that + keeps the current through the circuit constant regardless of the switch + positions.
    • +
    • Inductive Kickback: In this circuit, we + have a switch that controls the supply of current to an inductor.  An inductor resists any changes in + current.  If you open the switch, + the inductor tries to maintain the same current; it does this by charging + the capacitance between the contacts of the switch.  (Any two wires in close proximity have + some parasitic capacitance between them.)  + There is a small capacitor (much larger than the actual value) + across the switch terminals to simulate this.  When you open the switch, the voltage + goes very high; in real life, this would cause arcing.
    • +
    • Blocking Inductive + Kickback: + shows how inductive kickback can be blocked with a “snubber” circuit.
      +
      +
    • +
    • Power + Factor: This + circuit shows an inductor being driven by an AC voltage.  The colors indicate power consumption; + red means that a component is consuming power, and green means that the + component is contributing power.  + The left side of the circuit represents the power company’s side, + and the right side represents a factory (with a large induction motor).
      +
      + The highly inductive load is causing the power company to work a lot + harder than normal for a given amount of power delivered.  The graph on the left indicates the + power lost in the power company’s equipment (the resistor at top + left).  The graph in the middle is + the power delivered to the factory.  + The graph on the right is the power delivered to the inductor (and + then returned, causing the time average of power delivered to be zero).
      +
      + Even though a peak power of 40 mW is being delivered to the factory, 200 + mW is being dissipated in the power company’s wires.  This is why power companies charge + extra for inductive loads.
      +
      +
    • +
    • Power + Factor Correction: Here a capacitor has been added to the circuit, + causing far less energy to be wasted in the power company’s wires (aside + from an initial spike to charge the capacitor).
    • +
    • Resistor Grid: shows current flowing + in a two-dimensional grid of resistors.
    • +
    • Resistor Grid 2.
    • +
    • Coupled LC's
    • +
    +
+ +

o   +LC Modes(2): Shows both modes of two +coupled LC circuits.

+ +

o   +Weak Coupling.

+ +

o   +LC Modes(3): Shows all 3 modes of 3 +coupled LC circuits.

+ +

o   LC +Ladder: This circuit is a simple model of a transmission line.  A pulse propagates down the length of the +ladder like a wave.  The resistor at the +end has a value equal to the characteristic impedance of the ladder (determined +by the ratio of L to C), which causes the wave to be absorbed.  A larger resistance or an open circuit will +cause the wave to be reflected; a smaller resistance or a short will cause the +wave to be reflected negatively.  See +the Feynman Lectures 22-6, 7.

+ +
    +
      +
    • Phase-Sequence Network: This circuit generates + a series of sine waves with a phase difference of 90°.
    • +
    • Lissajous Figures: + Just + for fun.
    • +
    +
  • Diodes
  • +
      +
    • Half-Wave Rectifier: This circuit removes + the negative part of an input waveform.
    • +
    • Full-Wave Rectifier: This circuit replaces + a waveform with its absolute value.
    • +
    • Full-Wave Rectifier w/ + Filter: + This circuit smoothes out the rectified waveform, doing a pretty good job + of converting AC to DC.
    • +
    • Diode I/V Curve: This demonstrates the + response of a diode to an applied voltage.  The voltage source generates a sawtooth + wave, which starts out at –800 mV and slowly rises to 800 mV, and then + immediately drops back down again.
    • +
    • Diode Limiter.
    • +
    • DC Restoration.  This takes an AC signal and adds a DC + offset, making it a positive signal.
    • +
    • Blocking Inductive + Kickback: + shows how inductive kickback can be blocked with a diode.
    • +
    • Spike Generator.
    • +
    • Voltage Multipliers
    • +
        +
      1. Voltage Doubler: Doubles the voltage + in the AC input signal (minus two diode drops), and turns it into DC.
      2. +
      3. Voltage Doubler 2
      4. +
      5. Voltage Tripler
      6. +
      7. Voltage Quadrupler
      8. +
      +
    • AM + Detector: + This is a “crystal radio”, an AM radio receiver with no amplifier.  The raw antenna feed is shown in the + first scope slot in the lower left.  + The inductor and the capacitor C1 are tuned to 3 kHz, the + frequency shown in the lower right as “res.f”.  This picks up the carrier wave shown in + the middle scope slot.  A diode is + used to rectify this, and the C2 capacitor smoothes it out to generate + the audio signal in the last scope slot (which is simply a 12 Hz sine + wave in this example).  By + experimenting with the value of C1’s capacitance, you can pick up two + other “stations” at 2.71 kHz and 2.43 kHz.
    • +
    • Triangle-to-Sine + Converter
    • +
    +
  • Transistors
  • +
      +
    • Switch.
    • +
    • Emitter + Follower.
    • +
    • Astable + Multivibrator: + A simple oscillator.  The applet + has trouble simulating this circuit, so there might be a slight delay + every time one of the transistors switches on.
    • +
    • Bistable + Multivibrator (Flip Flop): This circuit has two states; use the set/reset + switches to toggle between them.
    • +
    • Monostable + Multivibrator (One-Shot): When you hit the switch, the output will go to 1.7 V + for a short time, and then drop back down.
    • +
    • Common-Emitter + Amplifier: + This circuit amplifies the voltage of the input signal by about 10 times.
    • +
    • Unity-Gain Phase + Splitter: Outputs + two signals 180° out of phase from each other.
    • +
    • Schmitt + Trigger.
    • +
    • Current Source: The current is the + same regardless of the switch position.
    • +
    • Current Source Ramp: Uses a current source + to generate a ramp waveform every time you hit the switch.
    • +
    • Current Mirror: The current on the + right is the same as the current on the left, regardless of the position + of the right switch.
    • +
    • Differential Amplifiers
    • +
        +
      1. Differential Input: This circuit subtracts + the first signal from the second and amplifies it.
      2. +
      3. Common-Mode Input: This shows a + differential amplifier with two equal inputs.  The output should be a constant value, + but instead the input waveforms make it through to the output + (attenuated rather than amplified).  + (When both inputs change together, that is called “common-mode + input”; the “common-mode rejection ratio” is the ability of a + differential amplifier to ignore common-mode signals and amplify only + the difference between the inputs.)
      4. +
      5. Common-Mode w/Current + Source: This + is an improved differential amplifier that uses a current source as a + load.  The common-mode rejection + ratio is very good; the circuit amplifies the small differences between + the two inputs, and ignores the common-mode signal.
      6. +
      +
    • Push-Pull Follower: This is another type of + emitter follower.
    • +
    • Oscillators
    • +
        +
      1. Colpitts Oscillator
      2. +
      3. Hartley Oscillator
      4. +
      5. Emitter-Coupled LC + Oscillator
      6. +
      +
    +
  • JFETs
  • +
      +
    • JFET Current Source
    • +
    • JFET Follower: This is like an emitter + follower, except that the output is 3V more positive than the input.
    • +
    • JFET Follower w/zero + offset
    • +
    • Common-Source + Amplifier
    • +
    • Volume Control: Here the JFET is used + like a variable resistor.
    • +
    +
  • MOSFETs
  • +
      +
    • CMOS + Inverter: + The white “H” is a logic input.  + Click on it to toggle its state.  + “H” means “high” (5 V) and “L” means “low” (0 V).  The output of the inverter is shown at + right, and is the opposite of the input.  + In this (idealized) simulation, the CMOS inverter draws no current + at all.
    • +
    • CMOS Inverter + (w/capacitance): + In reality, there are two reasons that CMOS gates draw current.  This circuit demonstrates the first + reason: capacitance between the MOSFET gate and its source and + drain.  It requires current to charge + this capacitance, which consumes power.  + It also causes a short delay when changing state.
    • +
    • CMOS Inverter (slow + transition): + The other reason that CMOS gates draw current is that both transistors + will conduct at the same time when the input is halfway between high and + low.  This causes a current spike + when the input is in transition.  + In this circuit, there is a low-pass filter on the input which + causes it to transition slowly, so you can see the spike.
    • +
    • CMOS Transmission Gate: This circuit will + pass any signal, even an analog signal (as long as it stays between 0 and + 5 V) when the gate input is “H”.  + When it’s “L”, then the gate acts as an open circuit.
    • +
    • CMOS Multiplexer: This circuit uses two + transmission gates to select one of two inputs.  If the logic input is “H”, then the + output is a 40Hz triangle wave.  If + it’s “L”, then the output is a 80Hz sine wave.
    • +
    • Sample-and-Hold: Click and hold the + “sample” button to sample the input.  + When you release the button, the output level will be held + constant.
    • +
    • Delayed Buffer: This circuit delays + any changes in its input for 15 microseconds.
    • +
    • Leading-Edge Detector
    • +
    • Switchable Filter: Click the “L” to + select from two different low-pass filters.
    • +
    • Voltage Inverter
    • +
    • Inverter Amplifier: This shows how a CMOS + inverter can be used as an amplifier.
    • +
    • Inverter Oscillator
    • +
    +
  • Op-Amps
  • +
      +
    • Amplifiers
    • +
        +
      1. Inverting + Amplifier: + This one has a gain of –3.
      2. +
      3. Non-Inverting + Amplifier
      4. +
      5. Follower
      6. +
      7. Differential + Amplifier
      8. +
      9. Summing + Amplifier
      10. +
      11. Log Amplifier: output is the + (inverted) log of the input
      12. +
      13. Class D + Amplifier
      14. +
      +
    • Oscillators
    • +
        +
      1. Relaxation + Oscillator
      2. +
      3. Phase-Shift + Oscillator
      4. +
      5. Triangle + Wave Generator
      6. +
      7. Sine + Wave Generator
      8. +
      9. Sawtooth Wave + Generator
      10. +
      11. Voltage-Controlled + Oscillator: Here + the frequency of oscillation depends on the input (shown in the scope on + the left).  The oscillator outputs + a square wave and a triangle wave.
      12. +
      13. Rossler Circuit
      14. +
      +
    • Half-Wave Rectifier: An active rectifier + that works on voltages smaller than a diode drop.
    • +
    • Full-Wave Rectifier
    • +
    • Peak Detector: This circuit outputs + the peak voltage of the input.  + Whenever the input voltage is higher than the output, the output + will be adjusted upward to match.  + Press the switch marked “reset” to reset the peak voltage back to 0.
    • +
    • Integrator
    • +
    • Differentiator
    • +
    • Schmitt + Trigger
    • +
    • Negative Impedance + Converter: Converts + the resistor to a “negative” resistor.  + In the first graph, note that the current is 180° out of phase + with the voltage.
    • +
    • Gyrator: The top circuit + simulates the bottom circuit without using an inductor.
    • +
    • Capacitance Multiplier: This circuit allows + you to simulate a large capacitor with a smaller one.  The effective capacitance of the top + circuit is C1 x (R1/R2), and the effective resistance is R2.
    • +
    • Howland Current Source
    • +
    • I-to-V Converter: The output voltage + depends on the input current, which you can adjust with the switches.
    • +
    • 741 + Internals: + The implementation of a 741 op-amp.
    • +
    +
  • 555 + Timer Chip
  • +
      +
    • Square Wave Generator
    • +
    • Internals: The implementation of + a 555 chip, acting as a square wave oscillator
    • +
    • Sawtooth Oscillator
    • +
    • Low-duty-cycle Oscillator: produces short + pulses.
    • +
    • Monostable + Multivibrator: + This is a one-shot circuit that will produce a timed pulse when you click + the “H”.
    • +
    • Pulse Position + Modulator: Produces + pulses whose width is proportional to the input voltage.
    • +
    • Schmitt Trigger
    • +
    • Missing Pulse Detector: + Setting + the logic input low will turn off the square wave input.  The missing pulse detector will detect + the missing input and bring the output high.
    • +
    +
  • Active Filters
  • +
      +
    • VCVS Low-Pass Filter: An active Butterworth + low-pass filter.
    • +
    • VCVS High-Pass Filter
    • +
    • Switched-Capacitor + Filter: + A digital filter, implemented using capacitors and analog switches.
    • +
    +
  • Logic Families
  • +
      +
    • RTL Logic Family
    • +
        +
      1. RTL + Inverter: + The white “H” is a logic input.  + Click on it to toggle its state.  + “H” means “high” (3.6 V) and “L” means “low” (0 V).  The output of the inverter is shown at + right, and is the opposite of the input.
      2. +
      3. RTL + NOR: + The three inputs are at the bottom, and the output is to the right.  The output is “L” if any of the inputs + are “H”.  Otherwise it’s “H”.
      4. +
      5. RTL NAND: The output is “H” + unless all three inputs are “H”, and then it’s “L”.
      6. +
      +
    • DTL Logic Family
    • +
        +
      1. DTL + Inverter
      2. +
      3. DTL + NAND
      4. +
      5. DTL + NOR
      6. +
      +
    • TTL Logic Family
    • +
        +
      1. TTL + Inverter
      2. +
      3. TTL NAND
      4. +
      5. TTL + NOR
      6. +
      +
    • NMOS Logic Family
    • +
        +
      1. NMOS Inverter
      2. +
      3. NMOS Inverter 2: This uses a second + MOSFET instead of a resistor, to save space on a chip.
      4. +
      5. NMOS NAND
      6. +
      +
    • CMOS + Logic Family
    • +
        +
      1. CMOS Inverter
      2. +
      3. CMOS NAND
      4. +
      5. CMOS NOR
      6. +
      7. CMOS XOR
      8. +
      9. CMOS + Flip-Flop (or latch): This circuit consists of two CMOS NAND gates.
      10. +
      11. CMOS + Master-Slave Flip-Flop
      12. +
      +
    • ECL + Logic Family
    • +
        +
      1. ECL NOR/OR
      2. +
      +
    • Ternary: This demonstrates + three-valued logic, where the inputs can be 0, 1, or 2 instead of H and + L.  This logic is implemented using + MOSFETs; the threshold + voltage of each one is shown.
    • +
        +
      1. CGAND: the output is 2-X + where X is the minimum of the two inputs.
      2. +
      3. CGOR: the output is 2-X + where X is the maximum of the two inputs.
      4. +
      5. Complement.
      6. +
      7. F211: 0 becomes 2, 1 becomes + 1, 2 becomes 1.
      8. +
      9. F220
      10. +
      11. F221
      12. +
      +
    +
  • Combinational Logic
  • +
      +
    • Exclusive OR + (XOR) +
    • +
    • Half Adder
    • +
    • Full Adder
    • +
    • 1-of-4 Decoder
    • +
    • 2-to-1 + Mux: This + multiplexer uses two tri-state buffers connected to the output.
    • +
    • Majority Logic: The output is high if a + majority of the inputs are high.
    • +
    • 2-Bit Comparator: Tells you if the + two-bit input A is greater than, less than, or equal to the two-bit input + B.
    • +
    • 7-Segment LED Decoder
    • +
    +
  • Sequential Logic
  • + +
  • Analog/Digital
  • +
      +
    • Flash + ADC: + This is a direct-conversion, or “flash” analog-to-digital converter.
    • +
    • Delta-Sigma + ADC
    • +
    • Half-Flash + (Subranging) ADC: Also known as a pipeline ADC.  The first stage converts the input + voltage to a four-bit digital value.  + Then, a DAC converts these four bits to analog, and then a + comparator calculates the difference between this and the input voltage.  Another ADC converts this to digital, + giving a total of eight bits.
    • +
    • Binary-Weighted + DAC:  Converts a four-bit binary number to a + negative voltage.
    • +
    • R-2R + Ladder DAC
    • +
    • Switch Tree DAC
    • +
    • Digital Sine Wave
    • +
    +
  • Phase-Locked + Loops
  • +
      +
    • XOR Phase Detector: Shows an XOR gate + being used as a type I phase detector.  + The output is high whenever the two input signals are not in + phase.
    • +
    • Type I PLL: This phase-locked loop + circuit consists of an XOR gate (the phase detector), a low-pass filter + (the resistor and capacitor), a follower (the op-amp), and a voltage-controlled + oscillator chip.  The + voltage-controlled oscillator outputs a frequency proportional to the + input voltage.  After the PLL + circuit locks onto the input frequency, the output frequency will be the + same as the input frequency (with a small phase delay).
    • +
    • Phase Comparator (Type + II): Shows + a more sophisticated phase detector, which has no output when the inputs + are in phase, but outputs high (5V) when input 1 is leading input 2, and + low (0V) when input 2 is leading input 1.  + The phase comparator and VCO in this applet are based on the 4046 chip.
    • +
    • Phase Comparator + Internals.
    • +
    • Type II PLL: Shows a phase-locked + loop with a type II phase detector.  + If you adjust the input frequency, the output should lock onto it + in a short time.
    • +
    • Type II PLL (fast): Just a faster + simulation of the type II PLL.
    • +
    • Frequency Doubler
    • +
    +
  • Transmission + Lines
  • +
      +
    • Simple TL: A properly terminated + transmission line, showing the delay as the signal travels down the line.
    • +
    • Standing Wave: A standing wave on a + shorted transmission line.
    • +
    • Termination: The top line is + terminated properly, but the others are not, and so the incoming wave is + reflected.
    • +
    • Mismatched lines: Shows reflections + caused by the middle line having a different impedance than the other two + lines.
    • +
    • Mismatched lines 2: Shows a standing wave + on the first line, caused by the second line having a different + impedance.
    • +
    +
+

 

+

To +add a new component to the circuit, click the right mouse button on an unused +area of the window.  This will bring up a +menu that allows you to select what component you want.  Then click where you want the first terminal +of the component, and drag to where you want the other terminal.  The menu items allow you to create:

+ +

·      +wires

+ +

·      +resistors; you can adjust the resistance after +creating the resistor by clicking the right mouse button and selecting “Edit”

+ +

·      +capacitors; you can adjust the capacitance using +“Edit”

+ +

·      +inductors, switches, transistors, etc.

+ +

·      +voltage sources, in either 1-terminal or +2-terminal varieties.  The 1-terminal +versions use ground as the other terminal.  +By clicking the right mouse button and selecting “Edit”, you can modify +the voltage and the waveform of the voltage source, changing it to DC, AC (sine +wave), square wave, triangle, sawtooth, or pulse.  If it’s not a DC source, you can also change +the frequency and the DC offset.

+ +

·      +op-amps, with power supply limits of –15V and +15V assumed (not shown).  The limits can +be adjusted using “Edit”.

+ +

·      +text labels, which you can modify with the +“Edit” dialog

+ +

·      +test points; these have no effect on the +circuit, but if you select them and use the right mouse menu item “View in +Scope”, you can view the voltage difference between the terminals.

+ +

Also in the “Other” submenu, there are some items that allow you to click +and drag sections of the circuit around.

+ +

You can drag the circuit around by clicking and dragging with the Alt key +held down.  Zoom in and out with the +mouse wheel or by using the zoom commands in the Edit menu.

+ +

To edit one of the scope views, click the right mouse button on it to view a +menu.  The menu items allow you to remove +a scope view, speed up or slow down the display, adjust the scale, select what +value(s) you want to view, etc.

+ +

The time step size is the time between iterations of the simulator.  Smaller time steps make the simulation more +accurate, but slower.  A smaller time +step size is required to simulate high frequencies.  A larger time step size may be appropriate +for circuits that run in real time.  Use Edit->Other Options… to change the +time step size.

+ +

File->Recover Auto-Save lets +you recover a circuit lost when the simulator window was closed.  If this doesn’t work, try Edit->Undo instead.

+ +

File->Find DC Operating Point +is useful with circuits that take a long time to reach a useful state.  This option instantly charges all the +capacitors.

+ +

Here are some errors you might encounter when using the simulator:

+ +

·      Voltage +source loop with no resistance! – this means one of the voltage sources in +your circuit is shorted.  Make sure there +is some resistance across every voltage source.

+ +

·      Capacitor +loop with no resistance! – it’s not allowed to have any current loops +containing capacitors but no resistance.  +For example, capacitors connected in parallel are not allowed; you must +put a resistor in series with them.  +Shorted capacitors are allowed.

+ +

·      Singular +matrix! – this means that your circuit is inconsistent (two different +voltage sources connected to each other), or that the voltage at some point is +undefined.  It might mean that some +component’s terminals are unconnected; for example, if you create an op-amp but +haven’t connected anything to it yet, you will get this error. 

+ +

·      Convergence +failed! – this means the simulator can’t figure out what the state of the +circuit should be.  Just click Reset +and hopefully that should fix it.  Your +circuit might be too complicated, but this happens sometimes even with the +examples.

+ +

·      Transmission +line delay too large! – the transmission line delay is too large compared +to the timestep of the simulator, so too much memory would be required.  Make the delay smaller.

+ +

·      Need +to ground transmission line! – the bottom two wires of a transmission line +must always be grounded in this simulator.

+ +

Click here to go to the applet. +

+ +

+ +


+java@falstad.com

+ +

 

+ +
+ + + + diff --git a/font/LICENSE.txt b/font/LICENSE.txt new file mode 100644 index 0000000..8e1d29a --- /dev/null +++ b/font/LICENSE.txt @@ -0,0 +1,51 @@ +Font license info + + +## Font Awesome + + Copyright (C) 2016 by Dave Gandy + + Author: Dave Gandy + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://fortawesome.github.com/Font-Awesome/ + + +## Entypo + + Copyright (C) 2012 by Daniel Bruce + + Author: Daniel Bruce + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://www.entypo.com + + +## Modern Pictograms + + Copyright (c) 2012 by John Caserta. All rights reserved. + + Author: John Caserta + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://thedesignoffice.org/project/modern-pictograms/ + + +## Elusive + + Copyright (C) 2013 by Aristeides Stathopoulos + + Author: Aristeides Stathopoulos + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://aristeides.com/ + + + +Icon license info + + Authors: + Creaticca Creative Agency (https://www.flaticon.com/authors/creaticca-creative-agency) from www.flaticon.com + Pixel perfect (https://www.flaticon.com/authors/pixel-perfect) from www.flaticon.com + Freepik (https://www.flaticon.com/authors/freepik) from www.flaticon.com + License: Flaticon License (https://www.freepikcompany.com/legal#nav-flaticon). + + Author: Google (https://www.flaticon.com/authors/google) from www.flaticon.com + License: CC 3.0 BY (https://creativecommons.org/licenses/by/3.0/). + diff --git a/font/config.json b/font/config.json new file mode 100644 index 0000000..86a1c0a --- /dev/null +++ b/font/config.json @@ -0,0 +1,294 @@ +{ + "name": "", + "css_prefix_text": "cirjsicon-", + "css_use_suffix": false, + "hinting": true, + "units_per_em": 1000, + "ascent": 850, + "glyphs": [ + { + "uid": "6533bdc16ab201eb3f3b27ce989cab33", + "css": "folder", + "code": 61717, + "src": "fontawesome" + }, + { + "uid": "5408be43f7c42bccee419c6be53fdef5", + "css": "doc-text", + "code": 61686, + "src": "fontawesome" + }, + { + "uid": "b22fdf6cbaa9c54fbb0bc9abb0ed4098", + "css": "dropbox", + "code": 62256, + "src": "entypo" + }, + { + "uid": "f4445feb55521283572ee88bc304f928", + "css": "floppy", + "code": 59392, + "src": "fontawesome" + }, + { + "uid": "895405dfac8a3b7b2f23b183c6608ee6", + "css": "export", + "code": 59395, + "src": "fontawesome" + }, + { + "uid": "1cb3652ffb3492344fa3a675c3ff3290", + "css": "microchip", + "code": 62171, + "src": "fontawesome" + }, + { + "uid": "ff70f7b3228702e0d590e60ed3b90bea", + "css": "magic", + "code": 61648, + "src": "fontawesome" + }, + { + "uid": "89eb512cb82a1c3fe83cb16134f9876c", + "css": "back-in-time", + "code": 59393, + "src": "entypo" + }, + { + "uid": "7ssl5z5jrhu13tb13cd3gb4bdfkzbfzw", + "css": "print", + "code": 59396, + "src": "modernpics" + }, + { + "uid": "7e4164950ffa4990961958b2d6318658", + "css": "info-circled", + "code": 59401, + "src": "entypo" + }, + { + "uid": "f9c3205df26e7778abac86183aefdc99", + "css": "ccw", + "code": 59394, + "src": "fontawesome" + }, + { + "uid": "bc71f4c6e53394d5ba46b063040014f1", + "css": "cw", + "code": 59397, + "src": "fontawesome" + }, + { + "uid": "8772331a9fec983cdb5d72902a6f9e0e", + "css": "scissors", + "code": 59398, + "src": "fontawesome" + }, + { + "uid": "c8585e1e5b0467f28b70bce765d5840c", + "css": "copy", + "code": 61637, + "src": "fontawesome" + }, + { + "uid": "b429436ec5a518c78479d44ef18dbd60", + "css": "paste", + "code": 61674, + "src": "fontawesome" + }, + { + "uid": "6846d155ad5bda456569df81f3057faa", + "css": "clone", + "code": 62029, + "src": "fontawesome" + }, + { + "uid": "9f23eb7958809a08586817a99f6a6feb", + "css": "select-all", + "code": 59408, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M983.3 483.3H516.7V16.7C516.7 7.5 509.2 0 500 0S483.3 7.5 483.3 16.7V483.3H16.7C7.4 483.3 0 490.8 0 500S7.4 516.7 16.7 516.7H483.3V983.3C483.3 992.5 490.8 1000 500 1000S516.7 992.5 516.7 983.3V516.7H983.3C992.5 516.7 1000 509.2 1000 500S992.6 483.3 983.3 483.3ZM750 550H566.7C557.4 550 550 557.5 550 566.7V750C550 759.2 557.4 766.7 566.7 766.7H750C759.2 766.7 766.7 759.2 766.7 750V566.7C766.7 557.5 759.2 550 750 550ZM433.3 550H250C240.8 550 233.3 557.5 233.3 566.7V750C233.3 759.2 240.8 766.7 250 766.7H433.3C442.6 766.7 450 759.2 450 750V566.7C450 557.5 442.6 550 433.3 550ZM433.3 233.3H250C240.8 233.3 233.3 240.8 233.3 250V433.3C233.3 442.5 240.8 450 250 450H433.3C442.6 450 450 442.5 450 433.3V250C450 240.8 442.6 233.3 433.3 233.3ZM750 233.3H566.7C557.4 233.3 550 240.8 550 250V433.3C550 442.5 557.4 450 566.7 450H750C759.2 450 766.7 442.5 766.7 433.3V250C766.7 240.8 759.2 233.3 750 233.3Z", + "width": 1000 + }, + "search": [ + "select-all" + ] + }, + { + "uid": "0b2b66e526028a6972d51a6f10281b4b", + "css": "zoom-in", + "code": 59402, + "src": "fontawesome" + }, + { + "uid": "d25d10efa900f529ad1d275657cfd30e", + "css": "zoom-out", + "code": 59403, + "src": "fontawesome" + }, + { + "uid": "9cbd6e00a68a821d63f64db616672087", + "css": "zoom-11", + "code": 59399, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M405.2 0.4C345.8 4.5 291.2 19.1 239.8 44.6 112.7 107.4 24.2 229.4 4.2 369.5 0.7 393.8 0.3 400.3 0.3 432.1 0.3 463.3 0.7 469.7 3.9 493 25.4 648.3 131.2 780.9 278.2 836.4 316.1 850.8 354.4 859.3 398.2 863.1 410.4 864.2 452.6 864.2 464.8 863.1 503.2 859.7 534.3 853.5 568.2 842.2 609.8 828.4 645.6 810.4 680.7 785.8L688.2 780.5 790.1 882.9C864.5 957.6 893.3 986.2 896.7 988.5 902.6 992.6 910.5 996.3 917.1 998.1 924.3 1000.1 939.4 1000.6 946.8 999.1 971.3 994.1 989.9 977.1 997.2 952.9 998.8 947.6 999 946.4 999 935.3 999 924.9 998.8 922.9 997.6 918.1 995.8 911.5 991.5 902.5 987.8 897.1 986.2 895 939 847 882.7 790.5L780.5 687.8 782.5 685.3C783.5 683.9 787.3 678.5 790.8 673.2 831.8 612.3 855.7 544.1 862.8 468.6 864.1 453.8 864.3 412.3 863.1 398.2 859.8 360.6 853.5 329.3 842.7 296.2 815 211.7 761.5 137.6 689.5 84.2 633.2 42.5 567.1 15.1 497.4 4.5 475.5 1.2 465.2 0.5 436.3 0.3 421.2 0.3 407.2 0.3 405.2 0.4ZM465.1 132.2C519.6 138.6 569.3 158.2 612.4 190.1 634.1 206.2 658.1 230.2 674.1 251.9 702.9 290.6 722 335.7 729.8 382.8 732.8 401.7 733.4 408.5 733.4 431.8 733.4 454.5 733 459.2 730.5 476.6 723.2 525.7 703.8 572.3 674.1 612.4 658.1 634.1 634 658.1 612.4 674.1 539.8 727.9 448.1 746.4 360.1 725.1 321.6 715.7 284.2 698.1 251.9 674.1 235.3 661.8 213.8 641.5 200.8 625.8 162.2 579.3 139.4 525.9 132.1 464.5 130.5 450.8 130.5 413.5 132.1 399.8 136.5 363.1 145.7 331.3 161.3 299.3 176.1 269 194.6 243.3 218.9 218.9 249 188.9 282.3 166.9 321.4 151.5 350.3 140.1 377.5 134 412.3 131 419.8 130.3 456.6 131.2 465.1 132.2ZM256.2 293.9C242.4 303.8 231.1 312.2 231.1 312.6 231.1 313.1 233.6 323.2 236.6 335.3 240.7 351.1 242.4 357.2 243 357 243.5 356.8 250.1 351.7 257.6 345.8L271.4 334.8 271.4 427 271.4 519.2 261.2 519.2 251 519.2 251 541 251 562.7 295.5 562.7 339.9 562.7 339.9 541 339.9 519.2 331.3 519.2 322.7 519.2 322.7 397.6 322.7 275.9 302 275.9 281.4 275.9 256.2 293.9ZM550.4 293.8C536.8 303.5 525.5 311.7 525.3 311.9 524.8 312.3 535.8 356 536.6 356.9 536.8 357.2 543 352.7 550.4 346.9 557.7 341.1 564.1 336.2 564.5 335.9 565.1 335.5 565.3 354 565.3 427.3L565.3 519.2 556 519.2 546.7 519.2 546.7 541 546.7 562.7 591.5 562.7 636.4 562.7 636.4 541 636.4 519.2 626.8 519.2 617.2 519.2 617.2 397.6 617.2 275.9 596.2 276 575.2 276 550.4 293.8ZM431.1 351.7C419 354.5 409.7 363.8 406.9 375.9 404.9 384.3 405.9 393.9 409.5 401.3 411.8 406 417.9 412.3 422.4 414.7 432.4 420 444.7 420 454.7 414.7 459.3 412.3 465.4 406 467.6 401.2 475.2 385.3 470.1 364.7 456.6 356 449.7 351.7 439.2 349.9 431.1 351.7ZM432.1 495.6C423.4 497.1 414.2 503.8 409.9 511.9 402.8 525.4 405.2 543.4 415.4 553.6 421.7 559.9 428.9 562.7 438.7 562.7 454.1 562.7 466.1 553.5 469.9 538.7 474.1 522.2 467 504.9 453.2 498.4 446.4 495.2 439.9 494.4 432.1 495.6Z", + "width": 999 + }, + "search": [ + "zoom-11" + ] + }, + { + "uid": "cf772d9d1eca484c9772a98045dd39d6", + "css": "target", + "code": 59400, + "src": "elusive" + }, + { + "uid": "543093d4fa683d47a9d0ae7e1c261359", + "css": "lines", + "code": 59406, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M944.4 0H55.6C24.9 0 0 24.9 0 55.6V166.7C0 197.3 24.9 222.2 55.6 222.2H944.4C975.1 222.2 1000 197.3 1000 166.7V55.6C1000 24.9 975.1 0 944.4 0ZM944.4 0M944.4 333.3H55.6C24.9 333.3 0 358.3 0 388.9V500C0 530.6 24.9 555.6 55.6 555.6H944.4C975.1 555.6 1000 530.6 1000 500V388.9C1000 358.3 975.1 333.3 944.4 333.3ZM944.4 333.3M944.4 666.7H55.6C24.9 666.7 0 691.6 0 722.2V833.3C0 863.9 24.9 888.9 55.6 888.9H944.4C975.1 888.9 1000 863.9 1000 833.3V722.2C1000 691.6 975.1 666.7 944.4 666.7ZM944.4 666.7", + "width": 1000 + }, + "search": [ + "menu" + ] + }, + { + "uid": "0751e9283287ec810f337df91f232374", + "css": "columns", + "code": 59405, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M210.5 131.6H52.6C23.7 131.6 0 155.3 0 184.2V815.8C0 844.7 23.7 868.4 52.6 868.4H210.5C239.5 868.4 263.2 844.7 263.2 815.8V184.2C263.2 155.3 239.5 131.6 210.5 131.6ZM578.9 131.6H421.1C392.1 131.6 368.4 155.3 368.4 184.2V815.8C368.4 844.7 392.1 868.4 421.1 868.4H578.9C607.9 868.4 631.6 844.7 631.6 815.8V184.2C631.6 155.3 607.9 131.6 578.9 131.6ZM947.4 131.6H789.5C760.5 131.6 736.8 155.3 736.8 184.2V815.8C736.8 844.7 760.5 868.4 789.5 868.4H947.4C976.3 868.4 1000 844.7 1000 815.8V184.2C1000 155.3 976.3 131.6 947.4 131.6Z", + "width": 1000 + }, + "search": [ + "columns-(1)" + ] + }, + { + "uid": "7aa8cc552d9d6d19815750fc339cf090", + "css": "object-group", + "code": 62023, + "src": "fontawesome" + }, + { + "uid": "d4edf8563d5cb3b5f654808aa4fe438a", + "css": "object-ungroup", + "code": 62024, + "src": "fontawesome" + }, + { + "uid": "7184d8171b6a9b18eabbace94cca21db", + "css": "chart-line", + "code": 59404, + "src": "entypo" + }, + { + "uid": "922ab2cb66943a83de969990289ef1dc", + "css": "docsx", + "code": 59407, + "src": "entypo" + }, + { + "uid": "b013f6403e5ab0326614e68d1850fd6b", + "css": "resize-full-alt", + "code": 61618, + "src": "fontawesome" + }, + { + "uid": "744a71fe4b5ab7c4f4b7cd598e9bf75a", + "css": "window", + "code": 59409, + "src": "entypo" + }, + { + "uid": "2d60c785d26bf9c685424dd64248aaee", + "css": "none", + "code": 59410, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "", + "width": 1000 + }, + "search": [ + "none" + ] + }, + { + "uid": "9e0404ba55575a540164db9a5ad511df", + "css": "doc-new", + "code": 59411, + "src": "elusive" + }, + { + "uid": "9dd9e835aebe1060ba7190ad2b2ed951", + "css": "search", + "code": 59412, + "src": "fontawesome" + }, + { + "uid": "3c961c1a8d874815856fc6637dc5a13c", + "css": "image", + "code": 61893, + "src": "fontawesome" + }, + { + "uid": "d3b3f17bc3eb7cd809a07bbd4d178bee", + "css": "flip-y", + "code": 59413, + "src": "fontawesome" + }, + { + "uid": "3c73d058e4589b65a8d959c0fc8f153d", + "css": "flip-x", + "code": 59414, + "src": "fontawesome" + }, + { + "uid": "e594fc6e5870b4ab7e49f52571d52577", + "css": "flip-x-y", + "code": 59415, + "src": "fontawesome" + }, + { + "uid": "500f9108bd1bad36bbe1a4cef7828974", + "css": "folder", + "code": 59408, + "src": "custom_icons", + "selected": false, + "svg": { + "path": "M958.2 358.3H900V253.9C900 228.8 879.6 208.3 854.5 208.3H441.9L358.6 91.7H45.5C20.4 91.7 0 112.1 0 137.2V865.3L0.1 865.3C0 874.7 2.9 883.9 8.8 891.6 17 902.2 29.3 908.3 42.8 908.3H788.7C808 908.3 825 895.4 829.6 878.1L1000 410.8V407.9C1000 379.2 982.4 358.3 958.2 358.3ZM33.3 137.2C33.3 130.5 38.8 125 45.5 125H341.4L424.8 241.7H854.5C861.2 241.7 866.6 247.1 866.6 253.9V358.3H212.2C209.8 358.3 207.4 358.5 205.1 358.9 188.9 361.7 175.4 373.5 171.4 388.5L33.3 765V137.2ZM797.8 868.1C796.7 872.1 793 875 788.7 875H42.8C38.7 875 36.3 872.7 35.3 871.3 34.2 869.9 32.6 867 33.2 864.5L203.1 398.6C204.2 394.5 207.9 391.7 212.2 391.7H900 958.2C964.5 391.7 966.1 400.8 966.5 405.3L797.8 868.1Z", + "width": 1000 + }, + "search": [ + "folder" + ] + }, + { + "uid": "ff6c7d2e5cc1d08e8edb96d215b287de", + "css": "quote", + "code": 59409, + "src": "custom_icons", + "selected": false, + "svg": { + "path": "M261.6 292.5H226C231.4 252.9 253.3 251 263.3 250 273.4 249.1 281.1 240.7 281.1 230.6V172.1C281.1 166.8 278.9 161.6 275 157.9 271.1 154.3 265.8 152.4 260.5 152.6 198.7 156.1 125.1 187.3 125.1 316.1V417.7C125.1 434.7 138.9 448.5 155.9 448.5H261.6C278.5 448.5 292.3 434.7 292.3 417.7V323.3C292.3 306.3 278.5 292.5 261.6 292.5ZM253.3 409.4H164.2V316.1C164.2 226.2 204.2 201.1 242 194V214.6C215.9 222.5 185.8 246 185.8 312 185.8 322.8 194.5 331.6 205.3 331.6H253.3V409.4ZM868.7 500H773.6C757.3 500 744 513.3 744 529.6V614.6C744 631 757.3 644.3 773.6 644.3H803.4C798.4 676.2 780.9 677.8 771.8 678.6 761.8 679.5 754.1 687.9 754.1 698V750.7C754.1 756 756.3 761.2 760.2 764.8 763.8 768.3 768.6 770.2 773.6 770.2 774 770.2 774.3 770.2 774.7 770.2 831.1 767 898.3 738.5 898.3 621.1V529.6C898.3 513.3 885 500 868.7 500ZM859.3 621.1C859.3 698.7 825.8 721.7 793.1 728.6V713.9H793.1C817 706.2 843.8 684.3 843.8 624.7 843.8 613.9 835 605.2 824.2 605.2H783V539.1H859.3V621.1ZM687.3 500H592.2C575.9 500 562.6 513.3 562.6 529.6V614.6C562.6 631 575.9 644.3 592.2 644.3H622C617 676.2 599.6 677.8 590.5 678.6 580.4 679.5 572.7 687.9 572.7 698V750.7C572.7 756 574.9 761.2 578.8 764.8 582.5 768.3 587.3 770.2 592.3 770.2 592.6 770.2 593 770.2 593.3 770.2 649.8 767 717 738.5 717 621.1V529.6C717 513.3 703.7 500 687.3 500ZM677.9 621.1C677.9 698.7 644.4 721.7 611.8 728.6V713.9C635.6 706.2 662.4 684.3 662.4 624.7 662.4 613.9 653.7 605.2 642.9 605.2H601.7V539.1H677.9V621.1ZM883.5 372.1H821.1C810.4 372.1 801.6 380.8 801.6 391.6S810.4 411.1 821.1 411.1H883.5C926.2 411.1 960.9 445.9 960.9 488.6V779C960.9 821.7 926.2 856.4 883.5 856.4H733.1C727.9 856.4 722.9 858.5 719.3 862.2L649.1 932.3V876C649.1 865.2 640.3 856.4 629.6 856.4H577.5C534.8 856.4 500 821.7 500 779V488.6C500 445.9 534.8 411.1 577.5 411.1H650.4C661.2 411.1 669.9 402.4 669.9 391.6 669.9 380.8 661.2 372.1 650.4 372.1H577.5C543.7 372.1 513.3 386.5 492 409.5V323.3C492 306.3 478.2 292.5 461.3 292.5H425.7C431.1 252.9 452.9 251 463 250 473.1 249.1 480.8 240.7 480.8 230.6V172.1C480.8 166.8 478.6 161.6 474.7 157.9 470.8 154.3 465.5 152.3 460.1 152.6 398.4 156.1 324.8 187.3 324.8 316.1V417.7C324.8 434.7 338.6 448.5 355.6 448.5H461.3C463.7 448.5 466.1 448.2 468.4 447.6 463.6 460.4 460.9 474.2 460.9 488.6V779C460.9 843.2 513.2 895.5 577.5 895.5H610V979.5C610 987.4 614.8 994.5 622.1 997.5 624.5 998.5 627 999 629.6 999 634.6 999 639.6 997 643.4 993.3L741.2 895.5H883.5C947.7 895.5 1000 843.2 1000 779V488.6C1000 424.3 947.7 372.1 883.5 372.1ZM453 409.4H363.9V316.1C363.9 226.2 403.8 201.1 441.7 194V214.6C415.6 222.5 385.5 246 385.5 312 385.5 322.8 394.2 331.6 405 331.6H453V409.4ZM754 377.8C750.4 374.2 745.4 372.1 740.2 372.1S730.1 374.2 726.4 377.8C722.8 381.4 720.7 386.5 720.7 391.6S722.8 401.8 726.4 405.4C730.1 409 735.1 411.1 740.2 411.1S750.4 409 754 405.4C757.7 401.8 759.8 396.7 759.8 391.6S757.7 381.4 754 377.8ZM611.5 308.8C607.8 305.1 602.8 303.1 597.7 303.1 592.5 303.1 587.5 305.1 583.8 308.8 580.2 312.4 578.1 317.4 578.1 322.6 578.1 327.7 580.2 332.8 583.8 336.4 587.5 340 592.5 342.1 597.7 342.1 602.8 342.1 607.8 340 611.5 336.4 615.1 332.8 617.2 327.7 617.2 322.6 617.2 317.4 615.1 312.4 611.5 308.8ZM485.5 1H131.7C59.1 1 0 60.1 0 132.7V468.4C0 541 59.1 600.1 131.7 600.1H172.9L286.9 714.1C290.6 717.8 295.6 719.8 300.7 719.8 303.2 719.8 305.8 719.3 308.2 718.3 315.5 715.3 320.3 708.2 320.3 700.3V600.1H388.7C399.5 600.1 408.2 591.4 408.2 580.6S399.5 561 388.7 561H300.7C289.9 561 281.2 569.8 281.2 580.6V653.1L194.8 566.8C191.2 563.1 186.2 561 181 561H131.7C80.6 561 39.1 519.5 39.1 468.4V132.7C39.1 81.6 80.6 40 131.7 40H485.5C536.6 40 578.1 81.6 578.1 132.7V248.4C578.1 259.2 586.9 267.9 597.7 267.9 608.4 267.9 617.2 259.2 617.2 248.4V132.7C617.2 60.1 558.1 1 485.5 1Z", + "width": 1000 + }, + "search": [ + "quote" + ] + } + ] +} \ No newline at end of file diff --git a/font/fontello.css b/font/fontello.css new file mode 100644 index 0000000..7d78278 --- /dev/null +++ b/font/fontello.css @@ -0,0 +1,92 @@ +@font-face { + font-family: 'fontello'; + src: url('../font/fontello.eot?11951332'); + src: url('../font/fontello.eot?11951332#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?11951332') format('woff2'), + url('../font/fontello.woff?11951332') format('woff'), + url('../font/fontello.ttf?11951332') format('truetype'), + url('../font/fontello.svg?11951332#fontello') format('svg'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'fontello'; + src: url('../font/fontello.svg?11951332#fontello') format('svg'); + } +} +*/ +[class^="cirjsicon-"]:before, [class*=" cirjsicon-"]:before { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: never; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.cirjsicon-floppy:before { content: '\e800'; } /* '' */ +.cirjsicon-back-in-time:before { content: '\e801'; } /* '' */ +.cirjsicon-ccw:before { content: '\e802'; } /* '' */ +.cirjsicon-export:before { content: '\e803'; } /* '' */ +.cirjsicon-print:before { content: '\e804'; } /* '' */ +.cirjsicon-cw:before { content: '\e805'; } /* '' */ +.cirjsicon-scissors:before { content: '\e806'; } /* '' */ +.cirjsicon-zoom-11:before { content: '\e807'; } /* '' */ +.cirjsicon-target:before { content: '\e808'; } /* '' */ +.cirjsicon-info-circled:before { content: '\e809'; } /* '' */ +.cirjsicon-zoom-in:before { content: '\e80a'; } /* '' */ +.cirjsicon-zoom-out:before { content: '\e80b'; } /* '' */ +.cirjsicon-chart-line:before { content: '\e80c'; } /* '' */ +.cirjsicon-columns:before { content: '\e80d'; } /* '' */ +.cirjsicon-lines:before { content: '\e80e'; } /* '' */ +.cirjsicon-docsx:before { content: '\e80f'; } /* '' */ +.cirjsicon-select-all:before { content: '\e810'; } /* '' */ +.cirjsicon-window:before { content: '\e811'; } /* '' */ +.cirjsicon-none:before { content: '\e812'; } /* '' */ +.cirjsicon-doc-new:before { content: '\e813'; } /* '' */ +.cirjsicon-search:before { content: '\e814'; } /* '' */ +.cirjsicon-flip-y:before { content: '\e815'; } /* '' */ +.cirjsicon-flip-x:before { content: '\e816'; } /* '' */ +.cirjsicon-flip-x-y:before { content: '\e817'; } /* '' */ +.cirjsicon-resize-full-alt:before { content: '\f0b2'; } /* '' */ +.cirjsicon-copy:before { content: '\f0c5'; } /* '' */ +.cirjsicon-magic:before { content: '\f0d0'; } /* '' */ +.cirjsicon-paste:before { content: '\f0ea'; } /* '' */ +.cirjsicon-doc-text:before { content: '\f0f6'; } /* '' */ +.cirjsicon-folder:before { content: '\f115'; } /* '' */ +.cirjsicon-image:before { content: '\f1c5'; } /* '' */ +.cirjsicon-object-group:before { content: '\f247'; } /* '' */ +.cirjsicon-object-ungroup:before { content: '\f248'; } /* '' */ +.cirjsicon-clone:before { content: '\f24d'; } /* '' */ +.cirjsicon-microchip:before { content: '\f2db'; } /* '' */ +.cirjsicon-dropbox:before { content: '\f330'; } /* '' */ diff --git a/font/fontello.eot b/font/fontello.eot new file mode 100644 index 0000000000000000000000000000000000000000..77b19c54538bd10cda0236cbf983f04953f2f0c4 GIT binary patch literal 16944 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 P2Xox_qBtgzzP|qp1|C0* literal 0 HcmV?d00001 diff --git a/font/fontello.svg b/font/fontello.svg new file mode 100644 index 0000000..a737c8e --- /dev/null +++ b/font/fontello.svg @@ -0,0 +1,82 @@ + + + +Copyright (C) 2024 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/font/fontello.ttf b/font/fontello.ttf new file mode 100644 index 0000000000000000000000000000000000000000..aa30be9bd1518c0910b984437528bb8a58dfe4c8 GIT binary patch literal 16776 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 literal 0 HcmV?d00001 diff --git a/font/fontello.woff b/font/fontello.woff new file mode 100644 index 0000000000000000000000000000000000000000..d529042b99c0029dff3b1f632de50a427bd204fc GIT binary patch literal 10512 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 W`O}bJNj?7vKMNmImzn781pojh%V literal 0 HcmV?d00001 diff --git a/font/webfontlicense.html b/font/webfontlicense.html new file mode 100644 index 0000000..52d5d8d --- /dev/null +++ b/font/webfontlicense.html @@ -0,0 +1,37 @@ + + +⇐ go back + +
+

Font license info

+

Font Awesome

+

Copyright (C) 2016 by Dave Gandy

+

Author: Dave Gandy
+ License: SIL (http://scripts.sil.org/OFL)
+ Homepage: http://fortawesome.github.com/Font-Awesome/

+

Entypo

+

Copyright (C) 2012 by Daniel Bruce

+

Author: Daniel Bruce
+ License: SIL (http://scripts.sil.org/OFL)
+ Homepage: http://www.entypo.com

+

Modern Pictograms

+

Copyright (c) 2012 by John Caserta. All rights reserved.

+

Author: John Caserta
+ License: SIL (http://scripts.sil.org/OFL)
+ Homepage: http://thedesignoffice.org/project/modern-pictograms/

+

Elusive

+

Copyright (C) 2013 by Aristeides Stathopoulos

+

Author: Aristeides Stathopoulos
+ License: SIL (http://scripts.sil.org/OFL)
+ Homepage: http://aristeides.com/


+ +

Icon license info

+

+ Icons made by Freepik, Creaticca Creative Agency, Pixel perfect (Flaticon License) and Google (License CC 3.0 BY) from www.flaticon.com
+

+
diff --git a/icon1024.png b/icon1024.png new file mode 100644 index 0000000000000000000000000000000000000000..f45d9aa955dba575c2cf2ef9d807425b0ef69973 GIT binary patch literal 124558 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

ZcN-$uh2W1^#B1~&||Vn8mqDqZGV7Vh`1jIM0b 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ℑ5hLl~KHu9c4*5`GAP6 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 Qz%M}$H6E$gsM<#TA2u=N!T + + + +Insert title here + + + + \ No newline at end of file diff --git a/jsinterface.html b/jsinterface.html new file mode 100644 index 0000000..0c8f887 --- /dev/null +++ b/jsinterface.html @@ -0,0 +1,121 @@ + +Circuit Simulator Applet + + +


+ +

+Javascript Interface Example +

+You can write javascript code that interfaces with the simulator running in an iframe, as long as the +simulator code is hosted on the same website (has the same origin). Your code can get the list of circuit +elements and get information about each element (like the voltage of each node, and the current of two-terminal elements), +and set the voltage of external voltage nodes. +

+ + + + +

+extsin frequency: + +
+extsin amplitude: + +

+ + + diff --git a/lz-string.min.js b/lz-string.min.js new file mode 100644 index 0000000..2d1900a --- /dev/null +++ b/lz-string.min.js @@ -0,0 +1 @@ +var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..f8a79dc --- /dev/null +++ b/manifest.json @@ -0,0 +1,22 @@ +{ + "name": "CircuitJS1", + "short_name": "CircuitJS1", + "start_url": "/circuit/circuitjs.html", + "display": "standalone", + "background_color": "#000000", + "theme_color": "#2196f3", + "description": "Circuit Simulator", + "icons": [ + { + "src": "/circuit/icon512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "/circuit/icon1024.png", + "sizes": "128x128", + "type": "image/png" + } + ] +} + diff --git a/mosfet-beta.html b/mosfet-beta.html new file mode 100644 index 0000000..d5839dc --- /dev/null +++ b/mosfet-beta.html @@ -0,0 +1,51 @@ + +

MOSFET Beta

+We use a parameter called "beta" to describe the behavior of a MOSFET. The default value is small (20m), which is appropriate for a signal MOSFET. To simulate +a power MOSFET, use a larger value like 80. +

+In the saturation region, Ids = beta * (Vgs - Vt)2/2. +

+This worksheet will calculate the value of beta for a particular MOSFET, given Rds(on). +

+ + +

+ RDS(on) (Ω) (use typical value):
+ VGS where measured (V):
+ Threshold (V) (use typical value):
+
+
+ +
+ + diff --git a/opampreal.html b/opampreal.html new file mode 100644 index 0000000..a3a9ddd --- /dev/null +++ b/opampreal.html @@ -0,0 +1,19 @@ + +

Real Op-Amps

+The ideal op-amp element uses an ideal approximation to op-amp behavior. It has infinite slew rate +and output current. +

+The real op-amp element uses a subcircuit to emulate a real op-amp implementation with finite slew rate and output current. Presently, +the two implementation options are LM741 and LM324. +

+You can also modify the slew rate or output current, which will modify the circuit to change these values from the default. +

+These subcircuits are complicated, so you may run problems with convergence, especially if you increase the slew rate. Try decreasing +the time step size if this happens. +

+The LM324 can act very glitchy as well if the slew rate is increased. Decreasing the time step size proportionately should fix this. + diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 0000000..b7af0a8 --- /dev/null +++ b/service-worker.js @@ -0,0 +1,74 @@ +const CACHE_NAME = 'circuitjs1-app-cache-v1'; +const urlsToCache = [ + '/circuit/about.html', + '/circuit/canvas2svg.js', + '/circuit/circuitjs.html', + '/circuit/crystal.html', + '/circuit/customfunction.html', + '/circuit/customlogic.html', + '/circuit/customtransformer.html', + '/circuit/diodecalc.html', + '/circuit/icon512.png', + '/circuit/icon128.png', + '/circuit/iframe.html', + '/circuit/lz-string.min.js', + '/circuit/manifest.json', + '/circuit/mexle.html', + '/circuit/mosfet-beta.html', + '/circuit/opampreal.html', + '/circuit/split.js', + '/circuit/subcircuits.html', + // put everything else here +]; + +self.addEventListener('install', event => { + event.waitUntil( + caches.open(CACHE_NAME) + .then(cache => cache.addAll(urlsToCache)) + ); +}); + +self.addEventListener('fetch', (event) => { + event.respondWith( + caches.match(event.request).then((cachedResponse) => { + if (cachedResponse) { + // If the resource is already cached, return it + return cachedResponse; + } + + // Otherwise, fetch it from the network and add it to the cache + return fetch(event.request).then((networkResponse) => { + // Only cache non-GET requests and responses that aren't errors + if ( + event.request.method === 'GET' && + networkResponse.status === 200 + ) { + const responseClone = networkResponse.clone(); + caches.open(CACHE_NAME).then((cache) => { + cache.put(event.request, responseClone); + }); + } + + return networkResponse; + }); + }) + ); +}); + + +// Activate event: cleans up old caches +self.addEventListener('activate', (event) => { + const cacheWhitelist = [CACHE_NAME]; // List of cache versions you want to keep + + event.waitUntil( + caches.keys().then((cacheNames) => { + return Promise.all( + cacheNames.map((cacheName) => { + if (!cacheWhitelist.includes(cacheName)) { + return caches.delete(cacheName); // Delete old caches that aren't in whitelist + } + }) + ); + }) + ); +}); diff --git a/shortrelay.php b/shortrelay.php new file mode 100644 index 0000000..fab69a2 --- /dev/null +++ b/shortrelay.php @@ -0,0 +1,19 @@ + diff --git a/subcircuits.html b/subcircuits.html new file mode 100644 index 0000000..c6b65a9 --- /dev/null +++ b/subcircuits.html @@ -0,0 +1,54 @@ + + + + +

Subcircuits

+

+You can use subcircuits to implement custom "black box" devices. +

+Create and test your device, and then use labeled nodes (under "Outputs and Labels") to mark and label all the inputs/outputs. Here is an example circuit (a bridge rectifier). +

+Then, select File->Create Subcircuit, then rearrange the pins the way you want them, enter a model name, and click OK. This will load the subcircuit model. +Be sure to save this circuit (the subcircuit implementation), because it can't be edited later otherwise. +

+Now you can create a circuit using the subcircuit model. Click with the right mouse and select the "Active Building Blocks" menu, and the "Add Subcircuit Instance" item. Then click +and drag to create an instance. Edit the instance to select which model you want (by default it will use the one you just created). +

+Here is an example using the rectifier. When you save/load this circuit, it will also save/load the subcircuit model so you can use it in other circuits. +

+You can also use subcircuits to rearrange pins on the built-in chips. Here is an example with the 555. And here is that subcircuit model being used in a circuit. +

+If you select part of a circuit before using File->Create Subcircuit, then only the selected elements will be considered part of +the subcircuit. +

+If you want to use labeled nodes in the subcircuit definition but don't want them to be one of the inputs/outputs, then check the "Internal Node" +checkbox in those labeled nodes' edit menus. +

+ +

Pins

+

+ The arrangement and direction of the labeled nodes in your circuit will determine the initial arrangement of the pins when creating the symbol symbol. + During symbol creation, you can change the initial pin layout by dragging the pins with the mouse. +

+

+ The name of the labeled nodes can affect the look of the pin in the following ways: +

+

+ + + +

+
    +
  • Naming a node "CLK" will add a "clock marker" to the symbol at that pin and hide the text.
  • +
  • Prefixing the name with "CLK:" (as in "CLK:C1") will draw a "clock marker" on that pin in the symbol.
  • +
  • Prefixing the name with "INV:" (as in "INV:EN") will draw an "inverter circle" on that pin in the symbol, denoting logical inversion.
  • +
  • Prefixing the name with "/" (as in "/EN") will draw a horizontal line above the text in the symbol, also denoting logical negation.
  • +
  • For all prefixes, the prefix itself will not be shown in the symbol, only the text after the prefix.
  • +
  • All prefixes are purely cosmetic and do not affect the actual signal.
  • +
+ +