Skip to main content

[el-spec commits] [el-spec~source-code:59] Implement assignValue for assignment operator

  • From: kchung@...
  • To: commits@...
  • Subject: [el-spec commits] [el-spec~source-code:59] Implement assignValue for assignment operator
  • Date: Fri, 23 Mar 2012 01:23:26 +0000

Project:    el-spec
Repository: source-code
Revision:   59
Author:     kchung
Date:       2012-03-23 01:23:22 UTC
Link:       

Log Message:
------------
Implement assignValue for assignment operator



Revisions:
----------
59


Modified Paths:
---------------
trunk/impl/src/main/java/com/sun/el/parser/AstDeferredExpression.java
trunk/impl/src/main/java/com/sun/el/parser/AstDynamicExpression.java
trunk/api/src/main/java/javax/el/ELResolver.java
trunk/spec/title.fm
trunk/api/src/main/java/javax/el/BeanNameResolver.java
trunk/impl/src/main/java/com/sun/el/parser/AstValue.java
trunk/spec/language.fm
trunk/spec/Changes.fm
trunk/spec/ELSpecTOC.fm
trunk/spec/linq.fm
trunk/spec/pdf/EL3.0.EDR.pdf
trunk/api/src/main/java/javax/el/BeanNameELResolver.java
trunk/impl/src/main/java/com/sun/el/parser/AstSemiColon.java
trunk/api/src/main/java/javax/el/StandardELContext.java
trunk/impl/src/main/java/com/sun/el/parser/AstAssign.java
trunk/impl/src/test/java/org/glassfish/el/test/LinqTest.java
trunk/spec/copyrlic.fm
trunk/spec/preface.fm
trunk/impl/src/main/java/com/sun/el/parser/SimpleNode.java
trunk/spec/ELSpec.book
trunk/impl/src/main/java/com/sun/el/parser/Node.java
trunk/impl/src/main/java/com/sun/el/parser/AstIdentifier.java


Diffs:
------
Index: trunk/impl/src/test/java/org/glassfish/el/test/LinqTest.java
===================================================================
--- trunk/impl/src/test/java/org/glassfish/el/test/LinqTest.java        
(revision 58)
+++ trunk/impl/src/test/java/org/glassfish/el/test/LinqTest.java        
(revision 59)
@@ -344,7 +344,8 @@
 
     @Test
     public void testForEach() {
-        elp.defineBean("lst", new java.util.ArrayList());
+ //       elp.defineBean("lst", new java.util.ArrayList());
+        elp.eval("lst = []");
         testIterable("forEach",
             "products.forEach(p->lst.add(p.name)); lst", exp2);
     }
Index: trunk/impl/src/main/java/com/sun/el/parser/SimpleNode.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/SimpleNode.java  (revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/SimpleNode.java  (revision 59)
@@ -168,6 +168,11 @@
         throw new 
PropertyNotWritableException(MessageFactory.get("error.syntax.set"));
     }
 
+    public void assignValue(EvaluationContext ctx, Object value)
+            throws ELException {
+        throw new UnsupportedOperationException();
+    }
+
     public void accept(NodeVisitor visitor) throws ELException {
         visitor.visit(this);
         if (this.children != null && this.children.length > 0) {
Index: trunk/impl/src/main/java/com/sun/el/parser/AstSemiColon.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/AstSemiColon.java        
(revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/AstSemiColon.java        
(revision 59)
@@ -63,4 +63,10 @@
         this.children[0].getValue(ctx);
         this.children[1].setValue(ctx, value);
     }
+
+    public void assignValue(EvaluationContext ctx, Object value)
+            throws ELException {
+        this.children[0].getValue(ctx);
+        this.children[1].assignValue(ctx, value);
+    }
 }
Index: trunk/impl/src/main/java/com/sun/el/parser/AstDynamicExpression.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/AstDynamicExpression.java      
  (revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/AstDynamicExpression.java      
  (revision 59)
@@ -72,4 +72,9 @@
             throws ELException {
         this.children[0].setValue(ctx, value);
     }
+
+    public void assignValue(EvaluationContext ctx, Object value)
+            throws ELException {
+        this.children[0].assignValue(ctx, value);
+    }
 }
Index: trunk/impl/src/main/java/com/sun/el/parser/Node.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/Node.java        (revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/Node.java        (revision 59)
@@ -84,6 +84,7 @@
   
   public Object getValue(EvaluationContext ctx) throws ELException;
   public void setValue(EvaluationContext ctx, Object value) throws 
ELException;
+  public void assignValue(EvaluationContext ctx, Object value) throws 
ELException;
   public Class getType(EvaluationContext ctx) throws ELException;
   public ValueReference getValueReference(EvaluationContext ctx)
              throws ELException;
Index: trunk/impl/src/main/java/com/sun/el/parser/AstIdentifier.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/AstIdentifier.java       
(revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/AstIdentifier.java       
(revision 59)
@@ -168,6 +168,34 @@
         }
     }
 
+    public void assignValue(EvaluationContext ctx, Object value)
+            throws ELException {
+        // First check if this is a lambda argument
+        Object argValue = ctx.getELContext().getLambdaArgument(this.image);
+        if (argValue != null) {
+            // Lambda arguments are read only
+            return;
+        }
+        VariableMapper varMapper = ctx.getVariableMapper();
+        if (varMapper != null) {
+            ValueExpression expr = varMapper.resolveVariable(this.image);
+            if (expr != null) {
+                expr.setValue(ctx.getELContext(), value);
+                return;
+            }
+        }
+        ctx.setPropertyResolved(false);
+        ELResolver elResolver = ctx.getELResolver();
+        if (value != null) {
+            value = ELSupport.coerceToType(value,
+                        elResolver.getType(ctx, null, this.image));
+        }
+        elResolver.assignValue(ctx, null, this.image, value);
+        if (! ctx.isPropertyResolved()) {
+            ELSupport.throwUnhandled(null, this.image);
+        }
+    }
+
     private final Object invokeTarget(EvaluationContext ctx, Object target,
             Object[] paramValues) throws ELException {
         if (target instanceof MethodExpression) {
Index: trunk/impl/src/main/java/com/sun/el/parser/AstDeferredExpression.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/AstDeferredExpression.java     
  (revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/AstDeferredExpression.java     
  (revision 59)
@@ -72,4 +72,9 @@
             throws ELException {
         this.children[0].setValue(ctx, value);
     }
+
+    public void assignValue(EvaluationContext ctx, Object value)
+            throws ELException {
+        this.children[0].assignValue(ctx, value);
+    }
 }
Index: trunk/impl/src/main/java/com/sun/el/parser/AstValue.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/AstValue.java    (revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/AstValue.java    (revision 59)
@@ -220,6 +220,26 @@
         }
     }
 
+    public void assignValue(EvaluationContext ctx, Object value)
+            throws ELException {
+        Target t = getTarget(ctx);
+        if (t.isMethodCall()) {
+            throw new PropertyNotWritableException(
+                        MessageFactory.get("error.syntax.set"));
+        }
+        Object property = t.suffixNode.getValue(ctx);
+        ctx.setPropertyResolved(false);
+        ELResolver elResolver = ctx.getELResolver();
+        if (value != null) {
+            value = ELSupport.coerceToType(value,
+                        elResolver.getType(ctx, t.base, property));
+        }
+        elResolver.assignValue(ctx, t.base, property, value);
+        if (! ctx.isPropertyResolved()) {
+            ELSupport.throwUnhandled(t.base, property);
+        }
+    }
+
     public MethodInfo getMethodInfo(EvaluationContext ctx, Class[] 
paramTypes)
             throws ELException {
         Target t = getTarget(ctx);
Index: trunk/impl/src/main/java/com/sun/el/parser/AstAssign.java
===================================================================
--- trunk/impl/src/main/java/com/sun/el/parser/AstAssign.java   (revision 58)
+++ trunk/impl/src/main/java/com/sun/el/parser/AstAssign.java   (revision 59)
@@ -62,26 +62,9 @@
 
     public Object getValue(EvaluationContext ctx)
             throws ELException {
-        if (children[0] instanceof AstIdentifier) {
-            String name = ((AstIdentifier)children[0]).image;
-            if (!canResolve(ctx, name)) {
-                // If the target name cannot be resolvered by a ELResolver, 
set
-                // the the lhs expression to an EL variable with the name.
-                VariableMapper varMapper = ctx.getVariableMapper();
-                if (varMapper != null) {
-                    varMapper.setVariable(name, new ValueExpressionImpl(
-                        "assignment operator",
-                        children[1],
-                        ctx.getFunctionMapper(),
-                        varMapper,
-                        null));
-                }
-                return children[1].getValue(ctx);
-            }
-        }
-                
+
         Object value = children[1].getValue(ctx);
-        children[0].setValue(ctx, value);
+        children[0].assignValue(ctx, value);
         return value;
     }
 }
Index: trunk/api/src/main/java/javax/el/BeanNameELResolver.java
===================================================================
--- trunk/api/src/main/java/javax/el/BeanNameELResolver.java    (revision 58)
+++ trunk/api/src/main/java/javax/el/BeanNameELResolver.java    (revision 59)
@@ -143,18 +143,41 @@
         }
 
         if (base == null && property instanceof String) {
-            if (beanNameResolver.isReadOnly((String) property)) {
+            String beanName = (String) property;
+            if (beanNameResolver.isReadOnly(beanName)) {
                 throw new PropertyNotWritableException("The bean " +
-                    property + " is not writable.");
+                    beanName + " is not writable.");
             }
-            Object bean = beanNameResolver.getBean((String) property);
+            Object bean = beanNameResolver.getBean(beanName);
             if (bean != null) {
                 context.setPropertyResolved(true);
-                beanNameResolver.setBeanValue((String) property, value);
+                beanNameResolver.setBeanValue(beanName, value);
             }
         }
     }
 
+    public void assignValue(ELContext context,
+                            Object base,
+                            Object property,
+                            Object value) {
+
+        if (context == null) {
+            throw new NullPointerException();
+        }
+        if (base == null && property instanceof String) {
+            String beanName = (String) property;
+            if (beanNameResolver.isReadOnly(beanName)) {
+                throw new PropertyNotWritableException("The bean " +
+                    beanName + " is not writable.");
+            }
+            if (beanNameResolver.createBean(beanName)) {
+                context.setPropertyResolved(true);
+                beanNameResolver.setBeanValue(beanName, value);
+            }
+        }
+    }
+
+
     /**
      * If the base is null and the property is a name resolvable by
      * the BeanNameResolver, return the type of the bean.
Index: trunk/api/src/main/java/javax/el/StandardELContext.java
===================================================================
--- trunk/api/src/main/java/javax/el/StandardELContext.java     (revision 58)
+++ trunk/api/src/main/java/javax/el/StandardELContext.java     (revision 59)
@@ -331,6 +331,11 @@
         public boolean isReadOnly(String beanName) {
             return false;
         }
+
+        @Override
+        public boolean createBean(String beanName) {
+            return true;
+        }
     }
 }
   
Index: trunk/api/src/main/java/javax/el/ELResolver.java
===================================================================
--- trunk/api/src/main/java/javax/el/ELResolver.java    (revision 58)
+++ trunk/api/src/main/java/javax/el/ELResolver.java    (revision 59)
@@ -108,7 +108,8 @@
  * are combined together using {@link CompositeELResolver}s, to define
  * rich semantics for evaluating an expression.</p>
  *
- * <p>For the {@link #getValue}, {@link #getType}, {@link #setValue} and
+ * <p>For the {@link #getValue}, {@link #getType}, {@link #setValue},
+ * {@link #assignValue}, and
  * {@link #isReadOnly} methods, an <code>ELResolver</code> is not
  * responsible for resolving all possible (base, property) pairs. In fact,
  * most resolvers will only handle a <code>base</code> of a single type.
@@ -254,7 +255,6 @@
      * @return If the <code>propertyResolved</code> property of 
      *     <code>ELContext</code> was set to <code>true</code>, then
      *     the most general acceptable type; otherwise undefined.
-     * @throws NullPointerException if context is <code>null</code>
      * @throws PropertyNotFoundException if the given (base, property) pair
      *     is handled by this <code>ELResolver</code> but the specified
      *     variable or property does not exist or is not readable.
@@ -301,6 +301,50 @@
                                   Object value);
 
     /**
+     * Attempts to assign the value to the given <code>property</code> 
+     * object on the given <code>base</code> object.
+     *
+     * <p>If the (base, property) pair is handled by this
+     * <code>ELResolver</code>, and the property exists, the property
+     * is set to the given value, just like {@link #setValue}.</p>
+     *
+     * <p>If the (base, property) pair is handled by this
+     * <code>ELResolver</code>, and the property does not exists, it can
+     * support the assignment operation by "creating" the property and
+     * set it to the given value, 
+     * so that a call to <code>getValue</code> on the (base, property) will
+     * be resolved to the given value.</p>
+     *
+     * <p>If this ELResolver cannot provide the assignment operation,
+     * it should return without setting the <code>propertyResolved<code>
+     * property.</p>
+     *
+     * <p>To support the EL assignment operator, there should be one
+     * <code>ELResolver</code> in the <code>ELResolver</code> chain that
+     * supports the assignment operation.   Otherwise, a
+     * <code>ProperNotWritbleException</code> will be thrown.</p>
+     *
+     * @param context The context of this evaluation.
+     * @param base The base object whose property value is to be assigned,
+     *     or <code>null</code> to assign a top-level variable.
+     * @param property The property or variable to be assigned.
+     * @param value The value to assign the property or variable to.
+     *
+     * @throws NullPointerException if context is <code>null</code>
+     * @throws ELException if an exception was thrown while attempting to
+     *     set the property or variable. The thrown exception
+     *     must be included as the cause property of this exception, if
+     *     available.
+     *
+     * @since EL 3.0
+     */ 
+    public void assignValue(ELContext context,
+                            Object base,
+                            Object property,
+                            Object value) {
+    }
+
+    /**
      * For a given <code>base</code> and <code>property</code>, attempts to
      * determine whether a call to {@link #setValue} will always fail.
      *
Index: trunk/api/src/main/java/javax/el/BeanNameResolver.java
===================================================================
--- trunk/api/src/main/java/javax/el/BeanNameResolver.java      (revision 58)
+++ trunk/api/src/main/java/javax/el/BeanNameResolver.java      (revision 59)
@@ -62,7 +62,7 @@
     /**
      * Sets a value to an existing bean of the given name.
      * @param beanName The name of the bean
-     * @param value The new bean for the given name.
+     * @param value The value to set the bean to.
      * @throws PropertyNotWritableException if setting a new bean for the 
given
      *    name is not allowed.
      */
@@ -74,10 +74,20 @@
     /**
      * Indicates if the bean of the given name is read-only or writable
      * @param beanName The name of the bean
-     * @return <code>true</code> if a new bean can be set for the given name.
+     * @return <code>true</code> if the bean can be set to a new value.
      *    <code>false</code> otherwise.
      */
     public boolean isReadOnly(String beanName) {
         return true;
     }
+
+    /**
+     * Creates a bean of the given name if it does not exist.
+     * @param beanName The name of the bean
+     * @return <code>true</code> if bean creation is supported
+     *    <code>false</code> otherwise.
+     */
+    public boolean createBean(String beanName) {
+        return false;
+    }
 }
Index: trunk/spec/ELSpecTOC.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/title.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/ELSpec.book
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/language.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/linq.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/copyrlic.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/preface.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/Changes.fm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: trunk/spec/pdf/EL3.0.EDR.pdf
===================================================================
--- trunk/spec/pdf/EL3.0.EDR.pdf        (revision 58)
+++ trunk/spec/pdf/EL3.0.EDR.pdf        (revision 59)
@@ -1,290 +1,286 @@
 %PDF-1.6
 %����
-2662 0 obj
-<</Linearized 1/L 535586/O 2667/E 42342/N 86/T 482224/H [ 4856 1532]>>
+2632 0 obj
+<</Linearized 1/L 516600/O 2637/E 42250/N 82/T 463838/H [ 4856 1448]>>
 endobj
          
 xref
-2662 228
+2632 228
 0000000016 00000 n
-0000006388 00000 n
-0000006588 00000 n
-0000006617 00000 n
-0000006666 00000 n
-0000006703 00000 n
-0000006841 00000 n
-0000006931 00000 n
-0000007432 00000 n
-0000007536 00000 n
-0000007894 00000 n
-0000008557 00000 n
-0000011883 00000 n
-0000011945 00000 n
-0000012179 00000 n
-0000012274 00000 n
-0000012403 00000 n
-0000012517 00000 n
-0000012709 00000 n
-0000012906 00000 n
-0000013010 00000 n
-0000013195 00000 n
-0000013382 00000 n
-0000013523 00000 n
-0000013645 00000 n
-0000013787 00000 n
-0000013894 00000 n
-0000013987 00000 n
-0000014128 00000 n
-0000014261 00000 n
-0000014432 00000 n
-0000014584 00000 n
-0000014734 00000 n
-0000014941 00000 n
-0000015097 00000 n
-0000015243 00000 n
-0000015357 00000 n
-0000015497 00000 n
-0000015619 00000 n
-0000015741 00000 n
-0000015873 00000 n
-0000016015 00000 n
-0000016141 00000 n
-0000016297 00000 n
-0000016455 00000 n
-0000016623 00000 n
-0000016775 00000 n
-0000016950 00000 n
-0000017116 00000 n
-0000017270 00000 n
-0000017448 00000 n
-0000017594 00000 n
-0000017720 00000 n
-0000017910 00000 n
-0000018088 00000 n
-0000018239 00000 n
-0000018380 00000 n
-0000018517 00000 n
-0000018737 00000 n
-0000018903 00000 n
-0000019020 00000 n
-0000019187 00000 n
-0000019346 00000 n
-0000019476 00000 n
-0000019624 00000 n
-0000019766 00000 n
-0000019936 00000 n
-0000020108 00000 n
-0000020271 00000 n
-0000020434 00000 n
-0000020604 00000 n
-0000020764 00000 n
-0000020910 00000 n
-0000021060 00000 n
-0000021218 00000 n
-0000021362 00000 n
-0000021472 00000 n
-0000021644 00000 n
-0000021811 00000 n
-0000022018 00000 n
-0000022179 00000 n
-0000022340 00000 n
-0000022448 00000 n
-0000022558 00000 n
-0000022735 00000 n
-0000022843 00000 n
-0000022953 00000 n
-0000023061 00000 n
-0000023171 00000 n
-0000023281 00000 n
-0000023401 00000 n
-0000023578 00000 n
-0000023688 00000 n
-0000023808 00000 n
-0000023977 00000 n
-0000024087 00000 n
-0000024207 00000 n
-0000024376 00000 n
-0000024486 00000 n
-0000024606 00000 n
-0000024775 00000 n
-0000024885 00000 n
-0000025005 00000 n
-0000025178 00000 n
-0000025288 00000 n
-0000025408 00000 n
-0000025587 00000 n
-0000025697 00000 n
-0000025817 00000 n
-0000025986 00000 n
-0000026096 00000 n
-0000026216 00000 n
-0000026385 00000 n
-0000026495 00000 n
-0000026615 00000 n
-0000026806 00000 n
-0000026916 00000 n
-0000027036 00000 n
-0000027235 00000 n
-0000027345 00000 n
-0000027465 00000 n
-0000027646 00000 n
-0000027756 00000 n
-0000027876 00000 n
-0000028069 00000 n
-0000028179 00000 n
-0000028299 00000 n
-0000028474 00000 n
-0000028584 00000 n
-0000028704 00000 n
-0000028893 00000 n
-0000029003 00000 n
-0000029123 00000 n
-0000029294 00000 n
-0000029404 00000 n
-0000029524 00000 n
-0000029715 00000 n
-0000029825 00000 n
-0000029945 00000 n
-0000030118 00000 n
-0000030228 00000 n
-0000030348 00000 n
-0000030537 00000 n
-0000030647 00000 n
-0000030767 00000 n
-0000030946 00000 n
-0000031056 00000 n
-0000031168 00000 n
-0000031341 00000 n
-0000031451 00000 n
-0000031563 00000 n
-0000031738 00000 n
-0000031848 00000 n
-0000031968 00000 n
-0000032145 00000 n
-0000032255 00000 n
-0000032375 00000 n
-0000032550 00000 n
-0000032660 00000 n
-0000032772 00000 n
-0000032953 00000 n
-0000033073 00000 n
-0000033185 00000 n
-0000033358 00000 n
-0000033468 00000 n
-0000033580 00000 n
-0000033759 00000 n
-0000033869 00000 n
-0000033981 00000 n
-0000034158 00000 n
-0000034268 00000 n
-0000034380 00000 n
-0000034557 00000 n
-0000034667 00000 n
-0000034787 00000 n
-0000035062 00000 n
-0000035172 00000 n
-0000035286 00000 n
-0000035461 00000 n
-0000035571 00000 n
-0000035691 00000 n
-0000035872 00000 n
-0000035982 00000 n
-0000036094 00000 n
-0000036265 00000 n
-0000036375 00000 n
-0000036487 00000 n
-0000036668 00000 n
-0000036778 00000 n
-0000036898 00000 n
-0000037079 00000 n
-0000037189 00000 n
-0000037309 00000 n
+0000006304 00000 n
+0000006504 00000 n
+0000006533 00000 n
+0000006582 00000 n
+0000006619 00000 n
+0000006757 00000 n
+0000006847 00000 n
+0000007348 00000 n
+0000007452 00000 n
+0000007810 00000 n
+0000008473 00000 n
+0000011800 00000 n
+0000011862 00000 n
+0000012096 00000 n
+0000012191 00000 n
+0000012320 00000 n
+0000012434 00000 n
+0000012626 00000 n
+0000012823 00000 n
+0000012927 00000 n
+0000013112 00000 n
+0000013299 00000 n
+0000013440 00000 n
+0000013562 00000 n
+0000013704 00000 n
+0000013811 00000 n
+0000013904 00000 n
+0000014045 00000 n
+0000014216 00000 n
+0000014368 00000 n
+0000014518 00000 n
+0000014725 00000 n
+0000014881 00000 n
+0000015027 00000 n
+0000015141 00000 n
+0000015281 00000 n
+0000015403 00000 n
+0000015525 00000 n
+0000015657 00000 n
+0000015799 00000 n
+0000015925 00000 n
+0000016081 00000 n
+0000016239 00000 n
+0000016407 00000 n
+0000016559 00000 n
+0000016734 00000 n
+0000016900 00000 n
+0000017054 00000 n
+0000017232 00000 n
+0000017378 00000 n
+0000017504 00000 n
+0000017694 00000 n
+0000017872 00000 n
+0000018023 00000 n
+0000018164 00000 n
+0000018301 00000 n
+0000018521 00000 n
+0000018687 00000 n
+0000018804 00000 n
+0000018971 00000 n
+0000019130 00000 n
+0000019260 00000 n
+0000019408 00000 n
+0000019550 00000 n
+0000019720 00000 n
+0000019892 00000 n
+0000020055 00000 n
+0000020218 00000 n
+0000020388 00000 n
+0000020548 00000 n
+0000020694 00000 n
+0000020844 00000 n
+0000021002 00000 n
+0000021146 00000 n
+0000021256 00000 n
+0000021428 00000 n
+0000021595 00000 n
+0000021802 00000 n
+0000021963 00000 n
+0000022124 00000 n
+0000022232 00000 n
+0000022342 00000 n
+0000022519 00000 n
+0000022627 00000 n
+0000022737 00000 n
+0000022845 00000 n
+0000022955 00000 n
+0000023065 00000 n
+0000023185 00000 n
+0000023362 00000 n
+0000023472 00000 n
+0000023592 00000 n
+0000023761 00000 n
+0000023871 00000 n
+0000023991 00000 n
+0000024160 00000 n
+0000024270 00000 n
+0000024390 00000 n
+0000024559 00000 n
+0000024669 00000 n
+0000024789 00000 n
+0000024962 00000 n
+0000025072 00000 n
+0000025192 00000 n
+0000025371 00000 n
+0000025481 00000 n
+0000025601 00000 n
+0000025770 00000 n
+0000025880 00000 n
+0000026000 00000 n
+0000026169 00000 n
+0000026279 00000 n
+0000026399 00000 n
+0000026590 00000 n
+0000026700 00000 n
+0000026820 00000 n
+0000027019 00000 n
+0000027129 00000 n
+0000027249 00000 n
+0000027430 00000 n
+0000027540 00000 n
+0000027660 00000 n
+0000027853 00000 n
+0000027963 00000 n
+0000028083 00000 n
+0000028258 00000 n
+0000028368 00000 n
+0000028488 00000 n
+0000028677 00000 n
+0000028787 00000 n
+0000028907 00000 n
+0000029078 00000 n
+0000029188 00000 n
+0000029308 00000 n
+0000029499 00000 n
+0000029609 00000 n
+0000029729 00000 n
+0000029902 00000 n
+0000030012 00000 n
+0000030132 00000 n
+0000030321 00000 n
+0000030431 00000 n
+0000030551 00000 n
+0000030730 00000 n
+0000030840 00000 n
+0000030952 00000 n
+0000031125 00000 n
+0000031235 00000 n
+0000031347 00000 n
+0000031522 00000 n
+0000031632 00000 n
+0000031752 00000 n
+0000031929 00000 n
+0000032039 00000 n
+0000032159 00000 n
+0000032334 00000 n
+0000032444 00000 n
+0000032556 00000 n
+0000032737 00000 n
+0000032847 00000 n
+0000032959 00000 n
+0000033132 00000 n
+0000033242 00000 n
+0000033354 00000 n
+0000033533 00000 n
+0000033643 00000 n
+0000033755 00000 n
+0000033932 00000 n
+0000034042 00000 n
+0000034154 00000 n
+0000034331 00000 n
+0000034441 00000 n
+0000034561 00000 n
+0000034836 00000 n
+0000034946 00000 n
+0000035060 00000 n
+0000035235 00000 n
+0000035345 00000 n
+0000035465 00000 n
+0000035646 00000 n
+0000035756 00000 n
+0000035868 00000 n
+0000036039 00000 n
+0000036149 00000 n
+0000036261 00000 n
+0000036442 00000 n
+0000036552 00000 n
+0000036672 00000 n
+0000036853 00000 n
+0000036963 00000 n
+0000037083 00000 n
+0000037252 00000 n
+0000037360 00000 n
 0000037478 00000 n
-0000037586 00000 n
-0000037704 00000 n
-0000037873 00000 n
-0000037981 00000 n
-0000038091 00000 n
-0000038272 00000 n
-0000038380 00000 n
-0000038490 00000 n
-0000038663 00000 n
-0000038771 00000 n
-0000038881 00000 n
-0000039052 00000 n
-0000039160 00000 n
-0000039270 00000 n
-0000039446 00000 n
-0000039606 00000 n
-0000039760 00000 n
-0000039892 00000 n
-0000040024 00000 n
-0000040156 00000 n
-0000040288 00000 n
-0000040422 00000 n
-0000040556 00000 n
-0000040690 00000 n
-0000040824 00000 n
-0000040958 00000 n
-0000041092 00000 n
-0000041226 00000 n
-0000041360 00000 n
-0000041494 00000 n
-0000041702 00000 n
-0000041914 00000 n
-0000042132 00000 n
+0000037647 00000 n
+0000037755 00000 n
+0000037865 00000 n
+0000038046 00000 n
+0000038154 00000 n
+0000038264 00000 n
+0000038437 00000 n
+0000038545 00000 n
+0000038655 00000 n
+0000038826 00000 n
+0000038934 00000 n
+0000039044 00000 n
+0000039220 00000 n
+0000039380 00000 n
+0000039534 00000 n
+0000039666 00000 n
+0000039798 00000 n
+0000039930 00000 n
+0000040062 00000 n
+0000040196 00000 n
+0000040330 00000 n
+0000040464 00000 n
+0000040598 00000 n
+0000040732 00000 n
+0000040866 00000 n
+0000041000 00000 n
+0000041134 00000 n
+0000041268 00000 n
+0000041402 00000 n
+0000041610 00000 n
+0000041822 00000 n
+0000042040 00000 n
 0000004856 00000 n
 trailer
-<</Size 2890/Root 2663 0 R/Info 2661 0 
R/ID[<D25833563FD6501B5704CCF6CC9C7CD4><9664323907BED94DA2D63ED6939AF1CF>]/Prev
 482211>>
+<</Size 2860/Root 2633 0 R/Info 2631 0 
R/ID[<F6D512122B263EE14D0884B63B3D42C8><52F3F0FB8A89D646AA4746F7540358C1>]/Prev
 463825>>
 startxref
 0
 %%EOF
    
-2889 0 obj
-<</E 2706/Filter/FlateDecode/I 2738/L 2722/Length 1424/O 2690/S 2419>>stream
-h��V}LSW�m�WK }T]���:;�&"E(nb'݄� �2*�lPZ'G���:���f�Nd�u8�-�J�)d�
       …xb�O����8�^�N�E� 
%���T*�ZJ��<2�l�,��62������j�Y�g~%>�<.������_B~ȗ�f�����J�����R�&��xD$��E�71x1 �-X5���4�yV��l�f�k�~���N����4.;��q�'�>��-�[��š��W�S���{����Xa]�KfGMꡆ]Z���ʡ��j[omh����K���Ȇ!aഺY�/Kt������j����OfG���H��S֮�%��hi��y޶C}��~&�7�;��.�=�H�K+{w�S�P'k��LL�f����~ہkԮ`�U���f
-]hs��̴�<ɹ��0�?�{��R��*����]�qޭ 
��Φ�#��T?:��~�X��l���m��Mz��N�v;,��Mg��얨{�������n��$
-����`�1l}Q��C��LM��r1kJ�~���#ֵ�#��"\�{��1�[AG�D�`3��[t���������}-?��2�%����y�I���k�Wa[MMTH�~�}/ĝ�L,���8
��0\`����7x������J�i����t*T�7�t2��q�o�"���(;���z$�� 
-؍-P�3<���B����|��s��\Ї-8�-)��}/R�����J79�#�{�*��湳'�*�>�>���mo��˵ҵ�r7�v������D����ĕÛ}� o�S�|�<�F#-�M0��\ž��-16"�S)�hy9�D�P0G�:;�sv�B�/����/�{h�|6�uL~�7��.�V���E1���"
-E -%���ѻ
-��v��Fծ-64s��ɩ��˅q�!�*��{��;��2��s���4��q}I*G�-z���R|@�z�?�ߡI+2859
 0 obj
+<</E 2582/Filter/FlateDecode/I 2614/L 2598/Length 1340/O 2566/S 2322>>stream
+h��V{LSW>�����m�+��@D-�n"��}/�q�p_���v�MFx��o� �]ιJD��K��?Qj����V*��&W���)A-�B�$�>�a�H=���O�F2V�������r��$F�uؼ
 ӐL�m�����}ҏ���'����G��E�_E�S�
+|q+����n������8>�B�nc�^Pe����=q
+v{:��:a�1u� ��j%;�(RX(P��`���D�錇E�K-DL~��0�^�ˈu�D�+����?�S+N^\��5���D{�Q�.-`�@.�09��'WD�)Y7e��u���t�z����N4��Gmk��"ҟ=�RE:
Y4Ѵ��g��������Ŵ�D��J���X�����        
<�|���NP��*'�v�������O4{g)�������p+�ō �
+��r,�p<���/K
+�m��~.@������Ay� 
"������q0��T,�p����g�늴�ޭ[�{�II���e%�z���ׯU;K�vol 
0 6.�7�q�� �0�8���|8 �l�\����k�tIf͂��   0 endstream
 endobj
-2663 0 obj
-<</Metadata 2660 0 R/Names 2666 0 R/OpenAction[2667 0 R/XYZ null null 
null]/Outlines 2674 0 R/PageLabels 2648 0 R/PageMode/UseOutlines/Pages 2650 0 
R/Threads 2664 0 R/Type/Catalog>>
+2633 0 obj
+<</Metadata 2630 0 R/Names 2636 0 R/OpenAction[2637 0 R/XYZ null null 
null]/Outlines 2644 0 R/PageLabels 2618 0 R/PageMode/UseOutlines/Pages 2620 0 
R/Threads 2634 0 R/Type/Catalog>>
 endobj
-2664 0 obj
-[2665 0 R]
+2634 0 obj
+[2635 0 R]
 endobj
-2665 0 obj
+2635 0 obj
 <</F 5 0 R/I<</Title(�� endobj
-2666 0 obj
-<</Dests 596 0 R>>
+2636 0 obj
+<</Dests 579 0 R>>
 endobj
-2667 0 obj
-<</Contents 2672 0 R/CropBox[0 0 612 792]/MediaBox[0 0 612 792]/Parent 2651 
0 R/Resources 2668 0 R/Rotate 0/Type/Page>>
+2637 0 obj
+<</Contents 2642 0 R/CropBox[0 0 612 792]/MediaBox[0 0 612 792]/Parent 2621 
0 R/Resources 2638 0 R/Rotate 0/Type/Page>>
 endobj
-2668 0 obj
-<</ExtGState<</GS1 2670 0 R>>/Font<</F1 2669 0 R>>/ProcSet[/PDF/Text]>>
+2638 0 obj
+<</ExtGState<</GS1 2640 0 R>>/Font<</F1 2639 0 R>>/ProcSet[/PDF/Text]>>
 endobj
-2669 0 obj
-<</BaseFont/BLCDIG+Helvetica/Encoding/WinAnsiEncoding/FirstChar 
32/FontDescriptor 2671 0 R/LastChar 149/Subtype/Type1/Type/Font/Widths[278 0 
0 0 0 0 0 0 0 0 0 0 278 333 278 0 556 556 556 556 0 0 0 0 0 556 278 0 0 0 0 0 
1015 667 0 722 722 667 0 0 722 0 0 667 556 833 0 778 667 0 722 667 611 0 667 
0 0 0 0 0 0 0 0 0 0 556 556 500 556 556 278 556 556 222 222 0 222 833 556 556 
556 0 333 500 278 556 500 722 500 500 0 0 0 0 0 350 0 350 0 0 0 0 0 0 0 0 0 0 
0 350 0 350 350 0 0 0 0 350]>>
+2639 0 obj
+<</BaseFont/GFCBKC+Helvetica/Encoding/WinAnsiEncoding/FirstChar 
32/FontDescriptor 2641 0 R/LastChar 149/Subtype/Type1/Type/Font/Widths[278 0 
0 0 0 0 0 0 0 0 0 0 278 333 278 0 556 556 556 556 0 0 0 0 0 556 278 0 0 0 0 0 
1015 667 0 722 722 667 0 0 722 0 0 667 556 833 0 778 667 0 722 667 611 0 667 
0 0 0 0 0 0 0 0 0 0 556 556 500 556 556 278 556 556 222 222 0 222 833 556 556 
556 0 333 500 278 556 500 722 500 500 0 0 0 0 0 350 0 350 0 0 0 0 0 0 0 0 0 0 
0 350 0 350 350 0 0 0 0 350]>>
 endobj
-2670 0 obj
+2640 0 obj
 <</BG2/Default/OP false/OPM 1/SA false/SM 
0.02/Type/ExtGState/UCR2/Default/op false>>
 endobj
-2671 0 obj
-<</Ascent 718/CapHeight 
718/CharSet(/space/O/r/a/c/l/e/C/o/p/t/i/n/w/period/m/S/d/s/colon/u/at/hyphen/j/v/E/x/L/g/f/V/three/zero/y/D/R/K/h/comma/M/one/nine/two/bullet/P/H/A/T/b)/Descent
 -207/Flags 32/FontBBox[-166 -225 1000 931]/FontFile3 2673 0 
R/FontName/BLCDIG+Helvetica/ItalicAngle 0/StemH 88/StemV 
88/Type/FontDescriptor/XHeight 523>>
+2641 0 obj
+<</Ascent 718/CapHeight 
718/CharSet(/space/O/r/a/c/l/e/C/o/p/t/i/n/w/period/m/S/d/s/colon/u/at/hyphen/j/v/E/x/L/g/f/V/three/zero/y/D/R/K/h/comma/M/one/nine/two/bullet/H/A/P/T/b)/Descent
 -207/Flags 32/FontBBox[-166 -225 1000 931]/FontFile3 2643 0 
R/FontName/GFCBKC+Helvetica/ItalicAngle 0/StemH 88/StemV 
88/Type/FontDescriptor/XHeight 523>>
 endobj
-2672 0 obj
+2642 0 obj
 <</Filter/FlateDecode/Length 591>>stream
 hޜSMo1�ﯘ�u]���N�6 
�!��PqX�N�l�nJ����ND+n(R<��7o޼�|;gZO��Eu���i��)�y���bW)ZW�TJ��XV
�cuS��6��^4V��(����������7,�[<��(�QTA8��*�j�EW��)ؤMѴ�[�w��`3�$~JI�'�@>�k�>V�:�$��
   f���$���^���C2���������h�
���@�L�q)��)��/�}�����lQA�*���쨵65Ac�VI|mr_Xء��NY��j_�C��+��~ߏq��3}���C��4��j��+?*�D�
 �8�q^�C�<�b�O���e\�E,kj��S22��$UB�$��  ���
@@ -294,687 +290,690 @@
 ���h�7Y���#� endstream
 endobj
-2673 0 obj
-<</Filter/FlateDecode/Length 3238/Subtype/Type1C>>stream
-h�tW   Xw��f�n.�0m�.�݃AA�ȥA���#�,�
b-F}q#�GD��"qC�Ũl������{y�߾����鯪��WU���d�62����Ƅ�GGy�K^���������(�)i������ 
��s����뺋�`�h8����HQ�l(��.,=#?3�ݔlͫI�����y[��#�@�5�W�2]������N^���^��������N^9M�
        
]�F3b!K������C���/��,�N���[��V��Z��J��.=;?#Y�ѭ[铞�I%�Y�Y�+Su���Y���d9d�ld�r� %s�d�ld�2���̗�imd�2�\{Y��,��e�d3&2[KdBdoʪd穱T�
-m�a�!%G^)�J����Vk[`{���3�nj#�ǜg����Iv�v��
-��i����9���8<t\�X�x����L�\�+N�,[#'z�}2L�?���.2(\�+��������㉬� ?P�P"�/��ǒ�P���#J?�;�&�=cy=Rku��Lri6<�1<���=q�!����'g�0\0��}%��e�l%�Fwt?��a,;
     ��]P��H�m��K����G2�������" �Rlb����塿���u�8)�o)� 
����O?��ykݜⴷh���Eѳ���N��gQ2��������qϿ��J�ك
-����l�Ip�rz�
-��~��60�ę�ǐ
-�|Uui����ʳBt�Y4�n�c���� � �No��м���:@�i��Q�b�=l��p��}���Cn�``Z*>�  
  ���?��i�3�D�q�����@;D��_{�_
��S�9�����mG/�Jh|c��A^jn0L�|�H�2Q���PT��l������l�q���?P  
U=|��~P�.]���TD0�3rő,��ae�3���Lr+�*�_�
-�]}p��yz�������%������4sIj�徫`{��q�R�S��z}�;j}�-�~�s
-��?���XVJ�(�sn��>LD��Ƣ   ����0 �!
-ƀ�M������7�-���0t5D�C !�`�'�iB���X���� �m��(4u9�l���c��zH�oc2=�`�YO�
-����CL'$�G
-<�p�.c���H�3H��yHn�)m��i���&^)q*��#���� 
�>n�2����5F.̆�?�[ϳQyXT$��l��z%͐�WM ��Jx
-���    
�P�ff0��h���b4F��J�H�-��-������Xf����p����9@gO��苾Sa4�s���|��D^��T�YX�u���>�s����B�#Y����f�����G������u�S�V���` 9

�^z��-�;�H�����Ll�Sៃ3�H��B+�1�v��q�HU/�q�vQͶ�@5�xH@�ߎ{~�����.����A�{V��ѶP�|��_(w��.����>��O�B����v�[�v�=ř0+�8w.ڠ-:��+�#����C�gYs\&�C~��[#id_f^���Eºc���f��ׁ��zZ��u���۳������[{LA�A���
� ��W��x(~�4hv�b��o֚��\�����8̏�R�Q�@
-i���f��Q�G�I���������)�8L�d|����!u_��E     ��甈89��N�{����]����O�<� 
pk��+��S�V���%*,y_�_��^�K,��w�����\,@'��9�T���5\�q���N������)
-��Jz`^��/F8>��p���Z�����x��"/@08��,`PlK�L^dW�Z�+x�g%[��s-�.����;��j�@���B~����]��Q��K���-
 C8^���I��D�~��L�
-��v�3�����ǩq������g@u��E���I9��W?�F#�"���b
-S��>����7��YȠ:_ 
�Օ}��2�gX˵X쉧7w��U���(����Z��@�Ü6��Q6����?�=�!�_�u��-=l��ͥ�կ-yw�8=l��b���U`F;�#�]�O<��F����ap�$U|-Z���0��W�PT
-q��u{���n�r�\z$<'�_���)��� �   �v|q����pɒ�B4ks�R�4����Zj�
�+�BF����*��z��M����\� 
��0%U��*ՠ�0�9_��DO�adFl[9�&��ǚz�!S��V|���s�+)_Ոo���_߿x���������Y�4L�#�‚�ۑ���w�.�\���T��e ����^G-��.t#}�nd�C������dTm���S���""֣�

K�zP��Y��~-��� �O��.{�b����o���PSƬ��lZۿ5�wR��kx���,�$���Y&e��;A��|ׅkw��Lٖ��But�~A�U�V�5L�e#O�R�u���G�7^r�mN�N@6��U���O��t;��lҹ����|����
-3����d%����u��NnB�0a[m=�?c�i��ݻ��rQZ�@�fK���N�#��c�pע{������9���'�DŽ[k�����Dx���3}��[#���qy�&�T��S$C!i�(s��+2643
 0 obj
+<</Filter/FlateDecode/Length 3239/Subtype/Type1C>>stream
+h�tW   Xw��f�n�q ���2�=x@t�\D.��D��3�<@@�
+�b@�C���&�ը���
+F}q#�hD��a��Q\��VOj̾�`��������������~U��J�� �(�-6&r��H�Y�+�Rs�S���c%
+%�t�<j ŵ?�D{��8 �+��nM�4�́��"3�
+���M�վ�⣝����4t
+�_C��2
+�ڄœ��U9ڸ�)��Y�����e��ڈ�+�Cr�٩9��y�����M��굹��e����+��˵s�Wg�f�j#b�����3���D7g�!'}Y�>;=5�7}��"�l���M.s�d��l���G&�s�P2��,H&��,��(K`e�2����Q��pٛ��yj$U�@;x;ܑ��#��%��Q��s,r�F;�Y�cƕ
  dγ�l���8�$�g��� �b��\x�d�3.]���^s}����W\Q<�mT��}�� 
��Lާ����x��THb�+��+��DzJ�\(��:+er�:x,� e ��2�        
��B6���,��Z���8g�K��!�QI�^^I�Qg�<9��Q�E
+^�`&c�2\�^�uW@2$���%(���6pϧ`�EhM�c�Ld�P���N�l+���-�Rc����CMp��u�()�o�����4O?�J�k���⤷h���q�K��IZ�kS1U������QϿ��*w�ӍJ��
+ǰ\,I����U���>��l�e�,�cȅ.����F��t�Y1���Y0G��}��l m���Tx��� ��r`-����/V����� �~p�G�w��s�ȍ�LsՇ?����'1z]\V��=.ZW^^Dh��n�k�� s�
 
<���nx�om;|��XQF�k���p���ӷJD{%5p�������_��4�Qk�P������ҵ�ONF��8%/I�"\T�=�~�$�T�q�5��A�������W)�n�� �;
 
�U.��LJ�F��E�M�{����ӍK �������A�=Q�2�x����+����?��@q��@�sр|L�t��a�#��P��,&��IK&i0=@��P�X�_Ⴡ��bו��w��A+�2JmC��Z���R�[�J2Xc5����G/
�+7� �@j�
+��5L��?���sQuPT&��l��z�%퀼G
+M ��2x
+R��18_��L0q ��+�8� yU"Ɠ�a�����_.ٌ�-6J���ѐ%�n�տ0He"    
�d���TW��J$�J!���Oxa��䊦~�a�"VC>��/���M��B
+*�H3���ѝ�'���'vm�]F��W��'�$��&c��l�T ,�n�6Y��
+�Հ�Km��2��3��4�i(3_w�` 
��w��I�Yey��i���%�'�Mq���q8`�DN��n!�+���n���E�N������Y�
�q�R���H9��U=�e���ȅBv�)��u`����_��P���\Z����=-=?��|��� R
+#;���V�/�V�m��ܠ$�S�VV�A~(��2�H�<%7{�P���=�M�iW}n~�>0q'��0V��M�j[4�M�$f��W&��B�;�^��/q����G?]���1�[�RY�򝦾f[U�x�-�Sq������E�Ă;�U��^�n�t�l�#L�0$n����o֜�&+t�v\�m�oB}L���D�0�)���\�u����X?'z:o3d���7������]��C<Ͳ�#<H���|c:r�u��%�b��l[s۝���#4���=%����x����U�'j&&��,�zw�Y���[i������DL
 b]w�Il��rg�>e<� `�a}�4��"uz�,� �x�t�'飰N�$#X�dT���'�`V� 
�O����^�j2,Uk@�Fg^,��+?e��(8�^���7���+�]?�I��̩�#KV�\�VjR    
���ӱ{�v�ro��q�� 2��4;%�v�I�N{�����f�����}��v|RUyD���-L�rR��K:3䫾5AIW 
�WK�:<I2����7�2
+0��)Xt{����3GZ� d�
+��n��^ϧ>�
+�P�o'p�uz<   
�z���;R=�ku�7��%�lH�����Ó��C��#2:���OF�xɟ�a����ɳ/�Ē�!�"��TlϧvI9r���d/�n�8
��0�C#�@$n'��� gH�,"��"�0�{Q�uU�j��M�u�_�����B�1bI_�!I�S���X���X�xi���
+�;�!�W��W ��~c�F�;|K��o�`$��B�u+P�k������'( �Y+�0�&�1��.x���s
++4D���¹���*]a���G� endstream
 endobj
+2644 0 obj
+<</Count 214/First 2645 0 R/Last 2645 0 R>>
+endobj
+2645 0 obj
+<</Count 213/Dest(G1.997783)/First 2646 0 R/Last 2647 0 R/Parent 2644 0 
R/Title(��+endobj
+2646 0 obj
+<</Dest(G3.108319)/Next 2656 0 R/Parent 2645 0 R/Title(��+endobj
+2647 0 obj
+<</Count 6/Dest(G7.10196)/First 2648 0 R/Last 2649 0 R/Parent 2645 0 R/Prev 
2650 0 R/Title(��+endobj
+2648 0 obj
+<</Dest(G7.11585)/Next 2858 0 R/Parent 2647 0 R/Title(��+endobj
+2649 0 obj
+<</Dest(G7.10407)/Parent 2647 0 R/Prev 2855 0 R/Title(��+endobj
+2650 0 obj
+<</Count 150/Dest(G6.1002434)/First 2651 0 R/Last 2652 0 R/Next 2647 0 
R/Parent 2645 0 R/Prev 2653 0 R/Title(��+endobj
+2651 0 obj
+<</Dest(G6.1002439)/Next 2709 0 R/Parent 2650 0 R/Title(��+endobj
+2652 0 obj
+<</Count 138/Dest(G6.1002794)/First 2707 0 R/Last 2708 0 R/Parent 2650 0 
R/Prev 2709 0 R/Title(��+endobj
+2653 0 obj
+<</Count 49/Dest(G5.5529)/First 2654 0 R/Last 2655 0 R/Next 2650 0 R/Parent 
2645 0 R/Prev 2656 0 R/Title(��+endobj
+2654 0 obj
+<</Count 1/Dest(G5.1006174)/First 2706 0 R/Last 2706 0 R/Next 2691 0 
R/Parent 2653 0 R/Title(��+endobj
+2655 0 obj
+<</Dest(G5.1000182)/Parent 2653 0 R/Prev 2660 0 R/Title(��+endobj
+2656 0 obj
+<</Count 3/Dest(G4.2090)/First 2657 0 R/Last 2658 0 R/Next 2653 0 R/Parent 
2645 0 R/Prev 2646 0 R/Title(��+endobj
+2657 0 obj
+<</Dest(G4.3690)/Next 2659 0 R/Parent 2656 0 R/Title(��+endobj
+2658 0 obj
+<</Dest(G4.2845)/Parent 2656 0 R/Prev 2659 0 R/Title(��+endobj
+2659 0 obj
+<</Dest(G4.3430)/Next 2658 0 R/Parent 2656 0 R/Prev 2657 0 R/Title(��+endobj
+2660 0 obj
+<</Count 7/Dest(G5.1000107)/First 2661 0 R/Last 2662 0 R/Next 2655 0 
R/Parent 2653 0 R/Prev 2663 0 R/Title(��+endobj
+2661 0 obj
+<</Dest(G5.1000109)/Next 2705 0 R/Parent 2660 0 R/Title(��+endobj
+2662 0 obj
+<</Dest(G5.1000170)/Parent 2660 0 R/Prev 2701 0 R/Title(��+endobj
+2663 0 obj
+<</Count 3/Dest(G5.1006294)/First 2664 0 R/Last 2665 0 R/Next 2660 0 
R/Parent 2653 0 R/Prev 2666 0 R/Title(��+endobj
+2664 0 obj
+<</Dest(G5.1013369)/Next 2700 0 R/Parent 2663 0 R/Title(��+endobj
+2665 0 obj
+<</Dest(G5.1013556)/Parent 2663 0 R/Prev 2700 0 R/Title(��+endobj
+2666 0 obj
+<</Dest(G5.1011495)/Next 2663 0 R/Parent 2653 0 R/Prev 2667 0 
R/Title(��+endobj
+2667 0 obj
+<</Dest(G5.1012952)/Next 2666 0 R/Parent 2653 0 R/Prev 2668 0 
R/Title(��+endobj
+2668 0 obj
+<</Dest(G5.1006296)/Next 2667 0 R/Parent 2653 0 R/Prev 2669 0 
R/Title(��+endobj
+2669 0 obj
+<</Dest(G5.1008786)/Next 2668 0 R/Parent 2653 0 R/Prev 2670 0 
R/Title(��+endobj
+2670 0 obj
+<</Dest(G5.1000049)/Next 2669 0 R/Parent 2653 0 R/Prev 2671 0 
R/Title(��+endobj
+2671 0 obj
+<</Dest(G5.1000037)/Next 2670 0 R/Parent 2653 0 R/Prev 2672 0 
R/Title(��+endobj
+2672 0 obj
+<</Dest(G5.1000035)/Next 2671 0 R/Parent 2653 0 R/Prev 2673 0 
R/Title(��+endobj
+2673 0 obj
+<</Dest(G5.1012850)/Next 2672 0 R/Parent 2653 0 R/Prev 2674 0 
R/Title(��+endobj
 2674 0 obj
-<</Count 214/First 2675 0 R/Last 2675 0 R>>
+<</Dest(G5.1012724)/Next 2673 0 R/Parent 2653 0 R/Prev 2675 0 R/Title(�� 
endobj
 2675 0 obj
-<</Count 213/Dest(G1.997783)/First 2676 0 R/Last 2677 0 R/Parent 2674 0 
R/Title(��+<</Dest(G5.1000030)/Next 2674 0 R/Parent 2653 0 R/Prev 2676 0 
R/Title(�� endobj
 2676 0 obj
-<</Dest(G3.108319)/Next 2686 0 R/Parent 2675 0 
R/Title(��+<</Dest(G5.1000021)/Next 2675 0 R/Parent 2653 0 R/Prev 2677 0 
R/Title(�� endobj
 2677 0 obj
-<</Count 6/Dest(G7.10196)/First 2678 0 R/Last 2679 0 R/Parent 2675 0 R/Prev 
2680 0 R/Title(��+<</Count 2/Dest(G5.1000010)/First 2678 0 R/Last 2679 0 
R/Next 2676 0 R/Parent 2653 0 R/Prev 2680 0 R/Title(�� endobj
 2678 0 obj
-<</Dest(G7.11585)/Next 2888 0 R/Parent 2677 0 
R/Title(��+<</Dest(G5.1000016)/Next 2679 0 R/Parent 2677 0 R/Title(�� endobj
 2679 0 obj
-<</Dest(G7.10407)/Parent 2677 0 R/Prev 2885 0 
R/Title(��+<</Dest(G5.1012436)/Parent 2677 0 R/Prev 2678 0 R/Title(�� endobj
 2680 0 obj
-<</Count 149/Dest(G6.1002434)/First 2681 0 R/Last 2682 0 R/Next 2677 0 
R/Parent 2675 0 R/Prev 2683 0 R/Title(��+<</Count 2/Dest(G5.999731)/First 
2681 0 R/Last 2682 0 R/Next 2677 0 R/Parent 2653 0 R/Prev 2683 0 R/Title(�� 
endobj
 2681 0 obj
-<</Dest(G6.1002439)/Next 2740 0 R/Parent 2680 0 
R/Title(��+<</Dest(G5.1012924)/Next 2682 0 R/Parent 2680 0 R/Title(�� endobj
 2682 0 obj
-<</Count 137/Dest(G6.1002794)/First 2738 0 R/Last 2739 0 R/Parent 2680 0 
R/Prev 2740 0 R/Title(��+<</Dest(G5.1012938)/Parent 2680 0 R/Prev 2681 0 
R/Title(�� endobj
 2683 0 obj
-<</Count 49/Dest(G5.5529)/First 2684 0 R/Last 2685 0 R/Next 2680 0 R/Parent 
2675 0 R/Prev 2686 0 R/Title(��+<</Dest(G5.1012688)/Next 2680 0 R/Parent 2653 
0 R/Prev 2684 0 R/Title(�� endobj
 2684 0 obj
-<</Count 1/Dest(G5.1006174)/First 2737 0 R/Last 2737 0 R/Next 2722 0 
R/Parent 2683 0 R/Title(��+<</Count 4/Dest(G5.999423)/First 2685 0 R/Last 
2686 0 R/Next 2683 0 R/Parent 2653 0 R/Prev 2687 0 R/Title(�� endobj
 2685 0 obj
-<</Dest(G5.1000182)/Parent 2683 0 R/Prev 2691 0 
R/Title(��+<</Dest(G5.999694)/Next 2699 0 R/Parent 2684 0 R/Title(�� endobj
 2686 0 obj
-<</Count 4/Dest(G4.2090)/First 2687 0 R/Last 2688 0 R/Next 2683 0 R/Parent 
2675 0 R/Prev 2676 0 R/Title(��+<</Dest(G5.999720)/Parent 2684 0 R/Prev 2698 
0 R/Title(�� endobj
 2687 0 obj
-<</Dest(G4.3690)/Next 2690 0 R/Parent 2686 0 
R/Title(��+<</Dest(G5.999425)/Next 2684 0 R/Parent 2653 0 R/Prev 2688 0 
R/Title(�� endobj
 2688 0 obj
-<</Dest(G4.2845)/Parent 2686 0 R/Prev 2689 0 
R/Title(��+<</Dest(G5.1004982)/Next 2687 0 R/Parent 2653 0 R/Prev 2689 0 
R/Title(�� endobj
 2689 0 obj
-<</Dest(G4.3430)/Next 2688 0 R/Parent 2686 0 R/Prev 2690 0 
R/Title(��+<</Dest(G5.1006662)/Next 2688 0 R/Parent 2653 0 R/Prev 2690 0 
R/Title(�� endobj
 2690 0 obj
-<</Dest(G4.3991)/Next 2689 0 R/Parent 2686 0 R/Prev 2687 0 
R/Title(��+<</Dest(G5.999365)/Next 2689 0 R/Parent 2653 0 R/Prev 2691 0 
R/Title(�� endobj
 2691 0 obj
-<</Count 7/Dest(G5.1000107)/First 2692 0 R/Last 2693 0 R/Next 2685 0 
R/Parent 2683 0 R/Prev 2694 0 R/Title(��+<</Count 6/Dest(G5.1002409)/First 
2692 0 R/Last 2693 0 R/Next 2690 0 R/Parent 2653 0 R/Prev 2654 0 R/Title(�� 
endobj
 2692 0 obj
-<</Dest(G5.1000109)/Next 2736 0 R/Parent 2691 0 R/Title(��+<</Count 
2/Dest(G5.1003526)/First 2696 0 R/Last 2697 0 R/Next 2695 0 R/Parent 2691 0 
R/Title(�� endobj
 2693 0 obj
-<</Dest(G5.1000170)/Parent 2691 0 R/Prev 2732 0 
R/Title(��+<</Dest(G5.1004121)/Parent 2691 0 R/Prev 2694 0 R/Title(�� endobj
 2694 0 obj
-<</Count 3/Dest(G5.1006294)/First 2695 0 R/Last 2696 0 R/Next 2691 0 
R/Parent 2683 0 R/Prev 2697 0 R/Title(��+<</Dest(G5.1006602)/Next 2693 0 
R/Parent 2691 0 R/Prev 2695 0 R/Title(�� endobj
 2695 0 obj
-<</Dest(G5.1013369)/Next 2731 0 R/Parent 2694 0 
R/Title(��+<</Dest(G5.1004004)/Next 2694 0 R/Parent 2691 0 R/Prev 2692 0 
R/Title(��[truncated due to length]



[el-spec commits] [el-spec~source-code:59] Implement assignValue for assignment operator

kchung 03/23/2012
 
 
Close
loading
Please Confirm
Close