ĐĎॹá>ţ˙ ƒţ˙˙˙€˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ěĽÁM đżgbjbjâ=â= "œ€W€Wc˙˙˙˙˙˙lp2p2p2p2„2¤1;ś4343434343434343°:˛:˛:˛:˛:˛:˛:$ç; >ŒÖ:4343434343Ö:434343ë:434343434343°:4343°:43|43°:°:43(3 Đĺ+HööĂX1p243°:°:;01;°:“>43“>°:43ŮData Races in Jython 2.1: org.python.core.PyJavaClass.constructorsInitialized read by: org.python.core.PyJavaClass.__call__(org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__(org.python.core.PyObject) org.python.pycode._pyx26.f$0(org.python.core.PyFrame)(:70) org.python.pycode._pyx26.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) public PyObject __call__(PyObject[] args, String[] keywords) { if (!constructorsInitialized) initConstructors(); PyInstance inst = new PyJavaInstance(this); inst.__init__(args, keywords); if (proxyClass != null && PyObject.class.isAssignableFrom(proxyClass)) { // It would be better if we didn't have to create a PyInstance // in the first place. ((PyObject)inst.javaProxy).__class__ = this; return (PyObject)inst.javaProxy; } return inst; } while written to by: org.python.core.PyJavaClass.initConstructors() org.python.core.PyJavaClass.__call_(org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__(org.python.core.PyObject) org.python.pycode._pyx24.f$0(org.python.core.PyFrame)(:44) org.python.pycode._pyx24.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, private boolean constructorsInitialized=false; synchronized void initConstructors() { if (constructorsInitialized) return; initialize(); setConstructors(proxyClass); constructorsInitialized = true; } org.python.core.PyJavaClass.__init__ read by: org.python.core.PyJavaInstance.__init__(org.python.core.PyObject[], String[]) org.python.core.PyJavaClass.__call(org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__(org.python.core.PyObject) org.python.pycode._pyx19.f$0(org.python.core.PyFrame)(:45) org.python.pycode._pyx19.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) public void __init__(PyObject[] args, String[] keywords) { //javaProxies = new Object[1]; Class pc = __class__.proxyClass; if (pc != null) { int mods = pc.getModifiers(); if (Modifier.isInterface(mods)) { throw Py.TypeError("can't instantiate interface ("+ __class__.__name__+")"); } else if (Modifier.isAbstract(mods)) { throw Py.TypeError("can't instantiate abstract class ("+ __class__.__name__+")"); } } PyReflectedConstructor init = ((PyJavaClass)__class__).__init__; if (init == null) { throw Py.TypeError("no public constructors for "+ __class__.__name__); } init.__call__(this, args, keywords); } while written to by: org.python.core.PyJavaClass.setConstructors(Class) org.python.core.PyJavaClass.initConstructors() org.python.core.PyJavaClass.__call__(org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__(org.python.core.PyObject) org.python.core._pyx24.f$0(org.python.core.PyFrame)(:44) org.python.core._pyx24.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) //called from synchronized method initConstructors() private void setConstructors(Class c) { if (Modifier.isInterface(c.getModifiers())) { __init__ = null; } else { Constructor[] constructors = getAccessibleConstructors(c); for (int i = 0; i < constructors.length; i++) { if (ignoreConstructor(constructors[i])) { continue; } if (__init__ == null) { __init__ = new PyReflectedConstructor(constructors[i]); } else { __init__.addConstructor(constructors[i]); } } if (__init__ != null) { __dict__.__setitem__("__init__", __init__); } } } org.python.core.PyReflectedConstructor.argslist[] read by: org.python.core.PyReflectedConstructor.__call__(org.python.core.PyObject, org.python.corePyObject[], String[]) org.python.core.PyJavaInstance.__init__(org.python.core.PyObject[], String[]) org.python.core.PyJavaClass._call__( org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__( org.python.core.PyObject) org.python.pycode._pyx19.f$0(org.python.core.PyFrame)(:45) org.python.pycode._pyx19.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) public PyObject __call__(PyObject self, PyObject[] args, String[] keywords) { ReflectedArgs[] argsl = argslist; if (self == null || !(self instanceof PyInstance)) { throw Py.TypeError("invalid self argument to constructor"); } ….. return Py.None; } while written to by: org.python.core.PyReflectedConstructor.(String) org.python.core.PyReflectedConstructor.(relfect.Constructor) org.python.core.PyJavaClass.setConstructors(Class) org.python.core.PyJavaClass.initConstructors() org.python.core.PyJavaClass.__call__( org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__( org.python.core.PyObject) org.python.pycode._pyx24.f$0(org.python.core.PyFrame)(:44) org.python.pycode._pyx24.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) //called from synchronized method initConstructors() public PyReflectedConstructor(String name) { super(name, __class__); __name__ = name; argslist = new ReflectedArgs[1]; nargs = 0; } org.python.core.PyJavaClass.__bases__ read by: org.python.core.__builtin__.issubclass(org.python.core.PyClass, org.python.core.PyClass) org.python.core.__buildint__.isinstance(org.python.core.PyObject, org.python.core.PyClass) org.python.core.Py.matchException(org.python.core.PyException, org.python.core.PyObject) public static boolean issubclass(PyClass subClass, PyClass superClass) { if (subClass == null || superClass == null) throw Py.TypeError("arguments must be classes"); if (subClass == superClass) return true; if (subClass.proxyClass != null && superClass.proxyClass != null) { if (superClass.proxyClass.isAssignableFrom(subClass.proxyClass)) return true; } if (subClass.__bases__ == null || superClass.__bases__ == null) return false; PyObject[] bases = subClass.__bases__.list; int n = bases.length; for(int i=0; i(Class) org.python.core.PyJavaClass.lookup(Class) org.python.core.PyJavaClass.init__Bases__(Class) org.python.core.PyJavaClass.initialize() org.python.core.PyJavaClass.init__bases__(Class) org.python.core.PyJavaClass.initialize() org.python.core.PyJavaClass.initConstructors() org.python.core.PyJavaClass.__call__( org.python.core.PyObject[], String[]) org.python.core.PyObject.__call__( org.python.core.PyObject) org.python.pycode._pyx24.f$0(org.python.core.PyFrame)(:44) org.python.pycode._pyx24.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) //called from synchronized methods initConstructors(), init__bases__(), and lookup() private void init(Class c) { init__class__(c); proxyClass = c; __name__ = c.getName(); } org.python.core.Py.nameindex read by: org.python.core.Py.getName() org.python.core.Py.compile_flags(java.io.InputStream, String, String, org.python.core.CompilerFlags) org.python.core.Py.compile_falgs(String, String, String, org.python.core.CompilerFlags) org.python.core private static int nameindex=0; public static synchronized String getName() { String name = "org.python.pycode._pyx"+nameindex; nameindex += 1; return name; } while written to by: org.python.core.Py.getName() org.python.core.Py.compile_flags(java.io.InputStream, String, String, org.python.core.CompilerFlags) org.python.core.Py.compile_flags(String, String, String, org.python.core.CompilerFlags) private static int nameindex=0; public static synchronized String getName() { String name = "org.python.pycode._pyx"+nameindex; nameindex += 1; return name; } org.python.core.PyStringMap.filled read by: org.python.core.PyStringMap.__setitem__(String, org.python.core.PyObject) org.python.core.PyJavaPackage.addClass(String, Class) org.python.core.PyJavaPackage.__findattr__(String) org.python.core.imp.importFromAs(String, String[], String[],org.python.core.PyFrame) org.python.core.imp.importFrom(String, String[],org.python.core.PyFrame) org.python.pycode._pyx3.f$0(org.python.core.PyFrame)(:4) org.python.pycode._pyx3.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) public synchronized void __setitem__(String key, PyObject value) { if (2*filled > keys.length) resize(keys.length+1); insertkey(key, value); } while written to by: org.python.core.PyStringMap.insertKey(String, org.python.core.PyObject) org.python.core.PyStringMap.__setitem__(String, org.python.core.PyObject) org.python.core.PyJavaPackage.addClass(String, Class) org.python.core.PyJavaPacke.__findattr__(String) org.python.core.imp.importFromAs(String, String[], String[],org.python.core.PyFrame) org.python.core.impo.importFrom(String, String[],org.python.core.PyFrame) org.python.pycode._pyx2.f$0(org.python.core.PyFrame)(:1) org.python.pycode._pyx2.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) //called from synchronized method __setitem__() private final void insertkey(String key, PyObject value) { String[] table = keys; int maxindex = table.length; int index = (System.identityHashCode(key) & 0x7fffffff) % maxindex; // Fairly aribtrary choice for stepsize... int stepsize = maxindex / 5; // Cycle through possible positions for the key; while (true) { String tkey = table[index]; if (tkey == null) { table[index] = key; values[index] = value; filled++; size++; break; } else if (tkey == key) { values[index] = value; break; } else if (tkey == "") { table[index] = key; values[index] = value; size++; break; } index = (index+stepsize) % maxindex; } } org.python.core.PyStringMap.keys[] read by: org.python.core.PyStringMap.__finditem__(String) org.python.core.PyJavaPackage.__findattr__(String) org.python.core.imp.importFromAs(String, String[], String[],org.python.core.PyFrame) org.python.core.imp.importFrom(String, String[],org.python.core.PyFrame) org.python.pycode._pyx2.f$0(org.python.core.PyFrame)(:1) org.python.pycode._pyx2.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) public synchronized PyObject __finditem__(String key) { String[] table = keys; int maxindex = table.length; int index = (System.identityHashCode(key) & 0x7fffffff) % maxindex; // Fairly aribtrary choice for stepsize... int stepsize = maxindex / 5; // Cycle through possible positions for the key; //int collisions = 0; while (true) { String tkey = table[index]; if (tkey == key) { //if (collisions > 0) { // System.err.println("key: "+key+", "+collisions+", "+ // maxindex+", "+System.identityHashCode(key)); //} return values[index]; } if (tkey == null) return values[index]; //collisions++; index = (index+stepsize) % maxindex; } } while written to by: org.python.core.PyStringMap.resize(int) org.python.core.PyStringMap.__setitem__(String, org.python.core.PyObject) org.python.core.PyJavaPackage.addClass(String, Class) org.python.core.PyJavaPackage.__findattr__(String) org.python.core.imp.importFromAs(String, String[], String[],org.python.core.PyFrame) org.python.core.imp.importFrom(String, String[],org.python.core.PyFrame) org.python.pycode._pyx3.f$0(org.python.core.PyFrame)(:7) org.python.pycode._pyx3.call_function(int, org.python.core.PyFrame) org.python.core.PyTableCode.call(org.python.core.PyFrame, org.python.core.PyObject) org.python.core.PyCode.call(org.python.core.PyFrame) org.python.core.Py.runCode(org.python.core.PyCode, org.python.core.PyObject, org.python.core.PyObject) private synchronized final void resize(int capacity) { int p = prime; for (; p= capacity) break; } if (primes[p] < capacity) { throw Py.ValueError("can't make hashtable of size: "+capacity); } capacity = primes[p]; prime = p; String[] oldKeys = keys; PyObject[] oldValues = values; keys = new String[capacity]; values = new PyObject[capacity]; size = 0; filled = 0; if (oldValues != null) { int n = oldValues.length; for (int i=0; i!Cćč!‹´ţ !1#]#K$Ě&Î&'''ý+,T,..Z/§/R1C4Š4Ş4@5X5¤5Ž6ł67h7B8g8™8Ó8ë839ć9;:đ;ý; <G<M<ť<ż?Á?ő?BBÖCEFFFĄFâI[K”KČLÉLMN¤NYP QyQżUYýůýůůýůýůůůýůýůůýůýůůůýóůýůůýůýůůýýůůýůůýůýýůůýý 5CJ\5\CJ`OXŁß_łčOP“šŮ 45WšĺAnxyŽ”•ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýgý•ŞŮ# _ š ß 3 h ľ ś ť ě  < P f ‹ ł š ß č 6  ť ö ;  Ä +ýýýýýýýýýýýýýýýýýýýýýýýýýýýýű+,k’“źÖ.rŽźî7s‹ŒŐń/cmš ĄśécýýýýýýýýýýýýýýýýýýýýýýýýýýýýýcŸŘo¤ř-”•–Ďű1N_Śâ:LtŔŮ)7[—ĽýýýýýýýýýýýýýýýýýýýýýýýýýýýýýĽŻçđ_­ř5pľ >ĽŚăCDÉÓß÷ýţIŒżýýýýýýýýýýýűýýýýýýýýýýýýýýýýýżî:w˛÷K€çč!Rr‹´ÇÍÎőţW ˛ ! !Y!!Ę!î!"S"ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýS" "˝"Ç"#)#]#{#œ#Ç#ň#$$/$5$6$K$|$Ľ$Ô$ %]%˜%Ý%1&f&Í&Î&'<'ýýýýýýýýýýýýýýýýýýýýýýýýýýýýý<'c'd''Ę'â'ń'(B(‰(ˇ(Ń(ç(ń(ň( )5)O)h)Ş)Ô)ĺ)*C*_*}*’*œ**Ĺ*ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýĹ*î*5+c+}+Ş+Č+ę+ô+ő+,#,K,T,­,-_-š-..`.”.Ń.ő./Z/§/Ä/Î/0ýýýýýýýýýýýýýýýýýýýýýýýýýýýýý000d0‚0Ł0Î0ů01 161<1=1R1z1¤1Î1˙1(2Y2‚2ą2ý2:3u3ş34C4Ş4Ť45ýýýýýýýýýýýýýýýýýýýýýýýýýýűýý5&5@5X5x5›5¤5Á5&6~6Ž66ł6ĺ6777L7R7S7h7…7ę7B8C8g8™8Ó8ë89*9ýýýýýýýýýýýýýýýýýýýýýýýýýýýýý*939}9ł9ć9;:„:˝:;U;Š;ń;ň;9<]<€<Ÿ<Ľ<Ś<ť<=M=ƒ=´= >S>Œ>Đ>$?Y?ýýýýűýýýýýýýýýýýýýýýýýýýýýýýýY?Ŕ?Á?ő?4@S@x@Ä@Ĺ@ř@AAWAnA–AśAÚABB3BJBpB—BŽBŕBC+CCCZChCýýýýýýýýýýýýýýýýýýýýýýýýýýýýýhC™CŁCÍCÖCD:DDŘDEUEŠEŢEEFFF‚FĄFĆFGGFGkGlGĽGĂGÚGH!HIH”Hýýýýýýýýýýýýýýýýýýýýýýýýýýýýý”HâHöHI*IHInIoI‹IźIĆIĚIÍIâI JTJŠJ˝JK[K”KŘK,LaLČLÉLMMBMiMýýýýýýýýýýýýýýýýýýýűýýýýýýýýýiM€MŠMŽMúMN"N5N6NWN~NN¤NÍNßNóNôNO;Ob’bÇb.cTc]c˜c­cŐcÖcýýýýűýýýýýýýýýýýýýýýýýýýýýýýýÖc÷cdUdjd’d“d´d˝d e"eQeReue~eŇeçe9f:f[fdfśfËfgýýýýýýýýýýýýýýýýýýýýýýý 1h°Đ/ °ŕ=!°"°# $ %° i8@ń˙8 NormalCJ_HaJmH sH tH <A@ň˙Ą< Default Paragraph Font.U@˘ń. Hyperlink >*B*ph˙*B`* Body TextCJcœ˙˙˙˙OXŁß_łčOP“šŮ 45WšĺAnxyŽ”•ŞŮ#_šß3hľśťě<Pf‹łšßč6ťö;  Ä + , k ’ “ ź Ö . r Ž ź î 7 s  ‹ Œ Ő ń / c m š   Ą ś é cŸŘo¤ř-”•–Ďű1N_Śâ:LtŔŮ)7[—ĽŻçđ_­ř5pľ >ĽŚăCDÉÓß÷ýţIŒżî:w˛÷K€çč!Rr‹´ÇÍÎőţW˛  YĘîS ˝Ç)]{œÇň  / 5 6 K | Ľ Ô !]!˜!Ý!1"f"Í"Î"#<#c#d##Ę#â#ń#$B$‰$ˇ$Ń$ç$ń$ň$ %5%O%h%Ş%Ô%ĺ%&C&_&}&’&œ&&Ĺ&î&5'c'}'Ş'Č'ę'ô'ő'(#(K(T(­()_)š)**`*”*Ń*ő*+Z+§+Ä+Î+,0,d,‚,Ł,Î,ů,- -6-<-=-R-z-¤-Î-˙-(.Y.‚.ą.ý.:/u/ş/0C0Ş0Ť01&1@1X1x1›1¤1Á1&2~2Ž22ł2ĺ2373L3R3S3h3…3ę3B4C4g4™4Ó4ë45*535}5ł5ć5;6„6˝67U7Š7ń7ň798]8€8Ÿ8Ľ8Ś8ť89M9ƒ9´9 :S:Œ:Đ:$;Y;Ŕ;Á;ő;4<S<x<Ä<Ĺ<ř<==W=n=–=ś=Ú=>>3>J>p>—>Ž>ŕ>?+?C?Z?h?™?Ł?Í?Ö?@:@@Ř@AUAŠAŢAEBFB‚BĄBĆBCCFCkClCĽCĂCÚCD!DID”DâDöDE*EHEnEoE‹EźEĆEĚEÍEâE FTFŠF˝FG[G”GŘG,HaHČHÉHIIBIiI€IŠIŽIúIJ"J5J6JWJ~JJ¤JÍJßJóJôJK;K^’^Ç^._T_]_˜_­_Ő_Ö_÷_`U`j`’`“`´`˝` a"aQaRaua~aŇaça9b:b[bdbśbËbcš0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€š0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€š0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€š0€€Yg7K•+cĽżS"<'Ĺ*05*9Y?hC”HiMYPqW7^Öcg8:;<=>?@ABCDEFGHIJLMg9˙˙Jonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonoC:\Documents and Settings\jmason04\Application Data\Microsoft\Word\AutoRecovery save of DataRacesInJython21.asdJonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonBC:\Documents and Settings\jmason04\Desktop\DataRacesInJython21.docJonathan MasonoC:\Documents and Settings\jmason04\Application Data\Microsoft\Word\AutoRecovery save of DataRacesInJython21.asdJonathan MasonoC:\Documents and Settings\jmason04\Application Data\Microsoft\Word\AutoRecovery save of DataRacesInJython21.asd˙@€H\H\ä+œœH\H\cđ@˙˙Unknown˙˙˙˙˙˙˙˙˙˙˙˙G‡z €˙Times New Roman5€Symbol3& ‡z €˙Arial"1ˆđĐhô!‚fhš‚†ł"‚fxVšQ)Ž!đ ´´0\d2ƒđ˙˙Data Races in Jython:Jonathan MasonJonathan Masonţ˙ŕ…ŸňůOhŤ‘+'łŮ0 ˜ ŔĚäđü (4 P \ h t€ˆ˜äData Races in Jython:9ataJonathan Masonyonaona Normal.dotsJonathan Masony27aMicrosoft Word 9.0n@Đr @ŠfŻ6ëĂ@˜Ü­ëĂ@`p@ööĂVšQţ˙ŐÍ՜.“—+,ůŽ0  hpŒ”œ¤ Ź´źÄ Ě îäHARRIS CorporationŽ)\dí Data Races in Jython: Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNţ˙˙˙PQRSTUVWXYZ[\]^_`abcdefghijklmnţ˙˙˙pqrstuvţ˙˙˙xyz{|}~ţ˙˙˙ý˙˙˙ý˙˙˙‚ţ˙˙˙ţ˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Root Entry˙˙˙˙˙˙˙˙ ŔF iAHööĂ„€1Table˙˙˙˙˙˙˙˙˙˙˙˙O“>WordDocument˙˙˙˙˙˙˙˙"œSummaryInformation(˙˙˙˙oDocumentSummaryInformation8˙˙˙˙˙˙˙˙˙˙˙˙wCompObj˙˙˙˙jObjectPool˙˙˙˙˙˙˙˙˙˙˙˙ iAHööĂ iAHööĂ˙˙˙˙˙˙˙˙˙˙˙˙ţ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ţ˙ ˙˙˙˙ ŔFMicrosoft Word Document MSWordDocWord.Document.8ô9˛q