/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 4481 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 3 ms] (6) AND (7) JBCTerminationSCC (8) SCCToIRSProof [SOUND, 315 ms] (9) IRSwT (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (11) IRSwT (12) IRSwTTerminationDigraphProof [EQUIVALENT, 61 ms] (13) IRSwT (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] (15) IRSwT (16) TempFilterProof [SOUND, 119 ms] (17) IntTRS (18) PolynomialOrderProcessor [EQUIVALENT, 32 ms] (19) IntTRS (20) RankingReductionPairProof [EQUIVALENT, 0 ms] (21) YES (22) JBCTerminationSCC (23) SCCToIRSProof [SOUND, 256 ms] (24) IRSwT (25) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (26) IRSwT (27) IRSwTTerminationDigraphProof [EQUIVALENT, 253 ms] (28) IRSwT (29) IntTRSCompressionProof [EQUIVALENT, 0 ms] (30) IRSwT (31) TempFilterProof [SOUND, 37 ms] (32) IntTRS (33) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (34) IntTRS (35) RankingReductionPairProof [EQUIVALENT, 0 ms] (36) YES (37) JBCTerminationSCC (38) SCCToIRSProof [SOUND, 280 ms] (39) IRSwT (40) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (41) IRSwT (42) IRSwTTerminationDigraphProof [EQUIVALENT, 249 ms] (43) IRSwT (44) IntTRSCompressionProof [EQUIVALENT, 0 ms] (45) IRSwT (46) TempFilterProof [SOUND, 27 ms] (47) IntTRS (48) RankingReductionPairProof [EQUIVALENT, 0 ms] (49) YES (50) JBCTerminationSCC (51) SCCToIRSProof [SOUND, 190 ms] (52) IRSwT (53) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (54) IRSwT (55) IRSwTTerminationDigraphProof [EQUIVALENT, 46 ms] (56) IRSwT (57) IntTRSCompressionProof [EQUIVALENT, 0 ms] (58) IRSwT (59) TempFilterProof [SOUND, 27 ms] (60) IntTRS (61) PolynomialOrderProcessor [EQUIVALENT, 8 ms] (62) IntTRS (63) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (64) YES (65) JBCTerminationSCC (66) SCCToIRSProof [SOUND, 158 ms] (67) IRSwT (68) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (69) IRSwT (70) IRSwTTerminationDigraphProof [EQUIVALENT, 31 ms] (71) IRSwT (72) IntTRSCompressionProof [EQUIVALENT, 0 ms] (73) IRSwT (74) TempFilterProof [SOUND, 14 ms] (75) IntTRS (76) RankingReductionPairProof [EQUIVALENT, 0 ms] (77) YES (78) JBCTerminationSCC (79) SCCToIRSProof [SOUND, 120 ms] (80) IRSwT (81) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (82) IRSwT (83) IRSwTTerminationDigraphProof [EQUIVALENT, 204 ms] (84) IRSwT (85) IntTRSCompressionProof [EQUIVALENT, 0 ms] (86) IRSwT (87) TempFilterProof [SOUND, 40 ms] (88) IntTRS (89) RankingReductionPairProof [EQUIVALENT, 0 ms] (90) YES (91) JBCTerminationSCC (92) SCCToIRSProof [SOUND, 114 ms] (93) IRSwT (94) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (95) IRSwT (96) IRSwTTerminationDigraphProof [EQUIVALENT, 239 ms] (97) IRSwT (98) IntTRSCompressionProof [EQUIVALENT, 0 ms] (99) IRSwT (100) TempFilterProof [SOUND, 42 ms] (101) IntTRS (102) RankingReductionPairProof [EQUIVALENT, 0 ms] (103) YES (104) JBCTerminationSCC (105) SCCToIRSProof [SOUND, 296 ms] (106) IRSwT (107) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (108) IRSwT (109) IRSwTTerminationDigraphProof [EQUIVALENT, 220 ms] (110) IRSwT (111) IntTRSCompressionProof [EQUIVALENT, 0 ms] (112) IRSwT (113) TempFilterProof [SOUND, 29 ms] (114) IntTRS (115) RankingReductionPairProof [EQUIVALENT, 0 ms] (116) YES (117) JBCTerminationSCC (118) SCCToIRSProof [SOUND, 302 ms] (119) IRSwT (120) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (121) IRSwT (122) IRSwTTerminationDigraphProof [EQUIVALENT, 215 ms] (123) IRSwT (124) IntTRSCompressionProof [EQUIVALENT, 0 ms] (125) IRSwT (126) TempFilterProof [SOUND, 17 ms] (127) IntTRS (128) RankingReductionPairProof [EQUIVALENT, 0 ms] (129) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This class provides a skeletal implementation of the Collection * interface, to minimize the effort required to implement this interface.

* * To implement an unmodifiable collection, the programmer needs only to * extend this class and provide implementations for the iterator and * size methods. (The iterator returned by the iterator * method must implement hasNext and next.)

* * To implement a modifiable collection, the programmer must additionally * override this class's add method (which otherwise throws an * UnsupportedOperationException), and the iterator returned by the * iterator method must additionally implement its remove * method.

* * The programmer should generally provide a void (no argument) and * Collection constructor, as per the recommendation in the * Collection interface specification.

* * The documentation for each non-abstract method in this class describes its * implementation in detail. Each of these methods may be overridden if * the collection being implemented admits a more efficient implementation.

* * This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Collection * @since 1.2 */ public abstract class AbstractCollection implements Collection { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ protected AbstractCollection() { } // Query Operations /** * Returns an iterator over the elements contained in this collection. * * @return an iterator over the elements contained in this collection */ public abstract Iterator iterator(); public abstract int size(); /** * {@inheritDoc} * *

This implementation returns size() == 0. */ public boolean isEmpty() { return size() == 0; } /** * {@inheritDoc} * *

This implementation iterates over the elements in the collection, * checking each element in turn for equality with the specified element. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public boolean contains(Object o) { Iterator e = iterator(); if (o==null) { while (e.hasNext()) if (e.next()==null) return true; } else { while (e.hasNext()) if (o.equals(e.next())) return true; } return false; } // Modification Operations /** * {@inheritDoc} * *

This implementation always throws an * UnsupportedOperationException. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public boolean add(E e) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

This implementation iterates over the collection looking for the * specified element. If it finds the element, it removes the element * from the collection using the iterator's remove method. * *

Note that this implementation throws an * UnsupportedOperationException if the iterator returned by this * collection's iterator method does not implement the remove * method and this collection contains the specified object. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public boolean remove(Object o) { Iterator e = iterator(); if (o==null) { while (e.hasNext()) { if (e.next()==null) { e.remove(); return true; } } } else { while (e.hasNext()) { if (o.equals(e.next())) { e.remove(); return true; } } } return false; } // Bulk Operations /** * {@inheritDoc} * *

This implementation iterates over the specified collection, * checking each element returned by the iterator in turn to see * if it's contained in this collection. If all elements are so * contained true is returned, otherwise false. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @see #contains(Object) */ public boolean containsAll(Collection c) { Iterator e = c.iterator(); while (e.hasNext()) if (!contains(e.next())) return false; return true; } /** * {@inheritDoc} * *

This implementation iterates over the specified collection, and adds * each object returned by the iterator to this collection, in turn. * *

Note that this implementation will throw an * UnsupportedOperationException unless add is * overridden (assuming the specified collection is non-empty). * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} * * @see #add(Object) */ public boolean addAll(Collection c) { boolean modified = false; Iterator e = c.iterator(); while (e.hasNext()) { if (add(e.next())) modified = true; } return modified; } /** * {@inheritDoc} * *

This implementation iterates over this collection, checking each * element returned by the iterator in turn to see if it's contained * in the specified collection. If it's so contained, it's removed from * this collection with the iterator's remove method. * *

Note that this implementation will throw an * UnsupportedOperationException if the iterator returned by the * iterator method does not implement the remove method * and this collection contains one or more elements in common with the * specified collection. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * * @see #remove(Object) * @see #contains(Object) */ public boolean removeAll(Collection c) { boolean modified = false; Iterator e = iterator(); while (e.hasNext()) { if (c.contains(e.next())) { e.remove(); modified = true; } } return modified; } /** * {@inheritDoc} * *

This implementation iterates over this collection, checking each * element returned by the iterator in turn to see if it's contained * in the specified collection. If it's not so contained, it's removed * from this collection with the iterator's remove method. * *

Note that this implementation will throw an * UnsupportedOperationException if the iterator returned by the * iterator method does not implement the remove method * and this collection contains one or more elements not present in the * specified collection. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * * @see #remove(Object) * @see #contains(Object) */ public boolean retainAll(Collection c) { boolean modified = false; Iterator e = iterator(); while (e.hasNext()) { if (!c.contains(e.next())) { e.remove(); modified = true; } } return modified; } /** * {@inheritDoc} * *

This implementation iterates over this collection, removing each * element using the Iterator.remove operation. Most * implementations will probably choose to override this method for * efficiency. * *

Note that this implementation will throw an * UnsupportedOperationException if the iterator returned by this * collection's iterator method does not implement the * remove method and this collection is non-empty. * * @throws UnsupportedOperationException {@inheritDoc} */ public void clear() { Iterator e = iterator(); while (e.hasNext()) { e.next(); e.remove(); } } // String conversion /** * Returns a string representation of this collection. The string * representation consists of a list of the collection's elements in the * order they are returned by its iterator, enclosed in square brackets * ("[]"). Adjacent elements are separated by the characters * ", " (comma and space). Elements are converted to strings as * by {@link String#valueOf(Object)}. * * @return a string representation of this collection */ public String toString() { Iterator i = iterator(); if (! i.hasNext()) return "[]"; String sb = ""; sb = sb + "["; for (;;) { E e = i.next(); sb = sb + (e == this ? "(this Collection)" : e); if (! i.hasNext()) { sb = sb + "]"; return sb; } sb = sb + ", "; } } } /* * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This class provides a skeletal implementation of the {@link List} * interface to minimize the effort required to implement this interface * backed by a "random access" data store (such as an array). For sequential * access data (such as a linked list), {@link AbstractSequentialList} should * be used in preference to this class. * *

To implement an unmodifiable list, the programmer needs only to extend * this class and provide implementations for the {@link #get(int)} and * {@link List#size() size()} methods. * *

To implement a modifiable list, the programmer must additionally * override the {@link #set(int, Object) set(int, E)} method (which otherwise * throws an {@code UnsupportedOperationException}). If the list is * variable-size the programmer must additionally override the * {@link #add(int, Object) add(int, E)} and {@link #remove(int)} methods. * *

The programmer should generally provide a void (no argument) and collection * constructor, as per the recommendation in the {@link Collection} interface * specification. * *

Unlike the other abstract collection implementations, the programmer does * not have to provide an iterator implementation; the iterator and * list iterator are implemented by this class, on top of the "random access" * methods: * {@link #get(int)}, * {@link #set(int, Object) set(int, E)}, * {@link #add(int, Object) add(int, E)} and * {@link #remove(int)}. * *

The documentation for each non-abstract method in this class describes its * implementation in detail. Each of these methods may be overridden if the * collection being implemented admits a more efficient implementation. * *

This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @since 1.2 */ public abstract class AbstractList extends AbstractCollection implements List { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ protected AbstractList() { } /** * Appends the specified element to the end of this list (optional * operation). * *

Lists that support this operation may place limitations on what * elements may be added to this list. In particular, some * lists will refuse to add null elements, and others will impose * restrictions on the type of elements that may be added. List * classes should clearly specify in their documentation any restrictions * on what elements may be added. * *

This implementation calls {@code add(size(), e)}. * *

Note that this implementation throws an * {@code UnsupportedOperationException} unless * {@link #add(int, Object) add(int, E)} is overridden. * * @param e element to be appended to this list * @return {@code true} (as specified by {@link Collection#add}) * @throws UnsupportedOperationException if the {@code add} operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and this * list does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this list */ public boolean add(E e) { add(size(), e); return true; } /** * {@inheritDoc} * * @throws IndexOutOfBoundsException {@inheritDoc} */ abstract public E get(int index); /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public void add(int index, E element) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { throw new UnsupportedOperationException(); } // Search Operations /** * {@inheritDoc} * *

This implementation first gets a list iterator (with * {@code listIterator()}). Then, it iterates over the list until the * specified element is found or the end of the list is reached. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public int indexOf(Object o) { ListIterator e = listIterator(); if (o==null) { while (e.hasNext()) if (e.next()==null) return e.previousIndex(); } else { while (e.hasNext()) if (o.equals(e.next())) return e.previousIndex(); } return -1; } /** * {@inheritDoc} * *

This implementation first gets a list iterator that points to the end * of the list (with {@code listIterator(size())}). Then, it iterates * backwards over the list until the specified element is found, or the * beginning of the list is reached. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public int lastIndexOf(Object o) { ListIterator e = listIterator(size()); if (o==null) { while (e.hasPrevious()) if (e.previous()==null) return e.nextIndex(); } else { while (e.hasPrevious()) if (o.equals(e.previous())) return e.nextIndex(); } return -1; } // Bulk Operations /** * Removes all of the elements from this list (optional operation). * The list will be empty after this call returns. * *

This implementation calls {@code removeRange(0, size())}. * *

Note that this implementation throws an * {@code UnsupportedOperationException} unless {@code remove(int * index)} or {@code removeRange(int fromIndex, int toIndex)} is * overridden. * * @throws UnsupportedOperationException if the {@code clear} operation * is not supported by this list */ public void clear() { removeRange(0, size()); } /** * {@inheritDoc} * *

This implementation gets an iterator over the specified collection * and iterates over it, inserting the elements obtained from the * iterator into this list at the appropriate position, one at a time, * using {@code add(int, E)}. * Many implementations will override this method for efficiency. * *

Note that this implementation throws an * {@code UnsupportedOperationException} unless * {@link #add(int, Object) add(int, E)} is overridden. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public boolean addAll(int index, Collection c) { rangeCheckForAdd(index); boolean modified = false; Iterator e = c.iterator(); while (e.hasNext()) { add(index++, e.next()); modified = true; } return modified; } // Iterators /** * Returns an iterator over the elements in this list in proper sequence. * *

This implementation returns a straightforward implementation of the * iterator interface, relying on the backing list's {@code size()}, * {@code get(int)}, and {@code remove(int)} methods. * *

Note that the iterator returned by this method will throw an * {@link UnsupportedOperationException} in response to its * {@code remove} method unless the list's {@code remove(int)} method is * overridden. * *

This implementation can be made to throw runtime exceptions in the * face of concurrent modification, as described in the specification * for the (protected) {@link #modCount} field. * * @return an iterator over the elements in this list in proper sequence */ public Iterator iterator() { return new Itr(); } /** * {@inheritDoc} * *

This implementation returns {@code listIterator(0)}. * * @see #listIterator(int) */ public ListIterator listIterator() { return listIterator(0); } /** * {@inheritDoc} * *

This implementation returns a straightforward implementation of the * {@code ListIterator} interface that extends the implementation of the * {@code Iterator} interface returned by the {@code iterator()} method. * The {@code ListIterator} implementation relies on the backing list's * {@code get(int)}, {@code set(int, E)}, {@code add(int, E)} * and {@code remove(int)} methods. * *

Note that the list iterator returned by this implementation will * throw an {@link UnsupportedOperationException} in response to its * {@code remove}, {@code set} and {@code add} methods unless the * list's {@code remove(int)}, {@code set(int, E)}, and * {@code add(int, E)} methods are overridden. * *

This implementation can be made to throw runtime exceptions in the * face of concurrent modification, as described in the specification for * the (protected) {@link #modCount} field. * * @throws IndexOutOfBoundsException {@inheritDoc} */ public ListIterator listIterator(final int index) { rangeCheckForAdd(index); return new ListItr(index); } private class Itr implements Iterator { /** * Index of element to be returned by subsequent call to next. */ int cursor = 0; /** * Index of element returned by most recent call to next or * previous. Reset to -1 if this element is deleted by a call * to remove. */ int lastRet = -1; /** * The modCount value that the iterator believes that the backing * List should have. If this expectation is violated, the iterator * has detected concurrent modification. */ int expectedModCount = modCount; public boolean hasNext() { return cursor != size(); } public E next() { checkForComodification(); try { int i = cursor; E next = get(i); lastRet = i; cursor = i + 1; return next; } catch (IndexOutOfBoundsException e) { checkForComodification(); throw new NoSuchElementException(); } } public void remove() { if (lastRet < 0) throw new IllegalStateException(); checkForComodification(); try { AbstractList.this.remove(lastRet); if (lastRet < cursor) cursor--; lastRet = -1; expectedModCount = modCount; } catch (IndexOutOfBoundsException e) { throw new ConcurrentModificationException(); } } final void checkForComodification() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); } } private class ListItr extends Itr implements ListIterator { ListItr(int index) { cursor = index; } public boolean hasPrevious() { return cursor != 0; } public E previous() { checkForComodification(); try { int i = cursor - 1; E previous = get(i); lastRet = cursor = i; return previous; } catch (IndexOutOfBoundsException e) { checkForComodification(); throw new NoSuchElementException(); } } public int nextIndex() { return cursor; } public int previousIndex() { return cursor-1; } public void set(E e) { if (lastRet < 0) throw new IllegalStateException(); checkForComodification(); try { AbstractList.this.set(lastRet, e); expectedModCount = modCount; } catch (IndexOutOfBoundsException ex) { throw new ConcurrentModificationException(); } } public void add(E e) { checkForComodification(); try { int i = cursor; AbstractList.this.add(i, e); lastRet = -1; cursor = i + 1; expectedModCount = modCount; } catch (IndexOutOfBoundsException ex) { throw new ConcurrentModificationException(); } } } /** * {@inheritDoc} * *

This implementation returns a list that subclasses * {@code AbstractList}. The subclass stores, in private fields, the * offset of the subList within the backing list, the size of the subList * (which can change over its lifetime), and the expected * {@code modCount} value of the backing list. There are two variants * of the subclass, one of which implements {@code RandomAccess}. * If this list implements {@code RandomAccess} the returned list will * be an instance of the subclass that implements {@code RandomAccess}. * *

The subclass's {@code set(int, E)}, {@code get(int)}, * {@code add(int, E)}, {@code remove(int)}, {@code addAll(int, * Collection)} and {@code removeRange(int, int)} methods all * delegate to the corresponding methods on the backing abstract list, * after bounds-checking the index and adjusting for the offset. The * {@code addAll(Collection c)} method merely returns {@code addAll(size, * c)}. * *

The {@code listIterator(int)} method returns a "wrapper object" * over a list iterator on the backing list, which is created with the * corresponding method on the backing list. The {@code iterator} method * merely returns {@code listIterator()}, and the {@code size} method * merely returns the subclass's {@code size} field. * *

All methods first check to see if the actual {@code modCount} of * the backing list is equal to its expected value, and throw a * {@code ConcurrentModificationException} if it is not. * * @throws IndexOutOfBoundsException if an endpoint index value is out of range * {@code (fromIndex < 0 || toIndex > size)} * @throws IllegalArgumentException if the endpoint indices are out of order * {@code (fromIndex > toIndex)} */ public List subList(int fromIndex, int toIndex) { return (this instanceof RandomAccess ? new RandomAccessSubList(this, fromIndex, toIndex) : new SubList(this, fromIndex, toIndex)); } // Comparison and hashing /** * Compares the specified object with this list for equality. Returns * {@code true} if and only if the specified object is also a list, both * lists have the same size, and all corresponding pairs of elements in * the two lists are equal. (Two elements {@code e1} and * {@code e2} are equal if {@code (e1==null ? e2==null : * e1.equals(e2))}.) In other words, two lists are defined to be * equal if they contain the same elements in the same order.

* * This implementation first checks if the specified object is this * list. If so, it returns {@code true}; if not, it checks if the * specified object is a list. If not, it returns {@code false}; if so, * it iterates over both lists, comparing corresponding pairs of elements. * If any comparison returns {@code false}, this method returns * {@code false}. If either iterator runs out of elements before the * other it returns {@code false} (as the lists are of unequal length); * otherwise it returns {@code true} when the iterations complete. * * @param o the object to be compared for equality with this list * @return {@code true} if the specified object is equal to this list */ public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof List)) return false; ListIterator e1 = listIterator(); ListIterator e2 = ((List) o).listIterator(); while(e1.hasNext() && e2.hasNext()) { E o1 = e1.next(); Object o2 = e2.next(); if (!(o1==null ? o2==null : o1.equals(o2))) return false; } return !(e1.hasNext() || e2.hasNext()); } /** * Returns the hash code value for this list. * *

This implementation uses exactly the code that is used to define the * list hash function in the documentation for the {@link List#hashCode} * method. * * @return the hash code value for this list */ public int hashCode() { int hashCode = 1; Iterator it = this.iterator(); while (it.hasNext()) { E e = it.next(); hashCode = 31*hashCode + (e==null ? 0 : e.hashCode()); } return hashCode; } /** * Removes from this list all of the elements whose index is between * {@code fromIndex}, inclusive, and {@code toIndex}, exclusive. * Shifts any succeeding elements to the left (reduces their index). * This call shortens the list by {@code (toIndex - fromIndex)} elements. * (If {@code toIndex==fromIndex}, this operation has no effect.) * *

This method is called by the {@code clear} operation on this list * and its subLists. Overriding this method to take advantage of * the internals of the list implementation can substantially * improve the performance of the {@code clear} operation on this list * and its subLists. * *

This implementation gets a list iterator positioned before * {@code fromIndex}, and repeatedly calls {@code ListIterator.next} * followed by {@code ListIterator.remove} until the entire range has * been removed. Note: if {@code ListIterator.remove} requires linear * time, this implementation requires quadratic time. * * @param fromIndex index of first element to be removed * @param toIndex index after last element to be removed */ protected void removeRange(int fromIndex, int toIndex) { ListIterator it = listIterator(fromIndex); for (int i=0, n=toIndex-fromIndex; istructurally modified. * Structural modifications are those that change the size of the * list, or otherwise perturb it in such a fashion that iterations in * progress may yield incorrect results. * *

This field is used by the iterator and list iterator implementation * returned by the {@code iterator} and {@code listIterator} methods. * If the value of this field changes unexpectedly, the iterator (or list * iterator) will throw a {@code ConcurrentModificationException} in * response to the {@code next}, {@code remove}, {@code previous}, * {@code set} or {@code add} operations. This provides * fail-fast behavior, rather than non-deterministic behavior in * the face of concurrent modification during iteration. * *

Use of this field by subclasses is optional. If a subclass * wishes to provide fail-fast iterators (and list iterators), then it * merely has to increment this field in its {@code add(int, E)} and * {@code remove(int)} methods (and any other methods that it overrides * that result in structural modifications to the list). A single call to * {@code add(int, E)} or {@code remove(int)} must add no more than * one to this field, or the iterators (and list iterators) will throw * bogus {@code ConcurrentModificationExceptions}. If an implementation * does not wish to provide fail-fast iterators, this field may be * ignored. */ protected transient int modCount = 0; private void rangeCheckForAdd(int index) { if (index < 0 || index > size()) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); } private String outOfBoundsMsg(int index) { return ""; } } class SubList extends AbstractList { private final AbstractList l; private final int offset; private int size; SubList(AbstractList list, int fromIndex, int toIndex) { if (fromIndex < 0) throw new IndexOutOfBoundsException(); if (toIndex > list.size()) throw new IndexOutOfBoundsException(); if (fromIndex > toIndex) throw new IllegalArgumentException(); l = list; offset = fromIndex; size = toIndex - fromIndex; this.modCount = l.modCount; } public E set(int index, E element) { rangeCheck(index); checkForComodification(); return l.set(index+offset, element); } public E get(int index) { rangeCheck(index); checkForComodification(); return l.get(index+offset); } public int size() { checkForComodification(); return size; } public void add(int index, E element) { rangeCheckForAdd(index); checkForComodification(); l.add(index+offset, element); this.modCount = l.modCount; size++; } public E remove(int index) { rangeCheck(index); checkForComodification(); E result = l.remove(index+offset); this.modCount = l.modCount; size--; return result; } protected void removeRange(int fromIndex, int toIndex) { checkForComodification(); l.removeRange(fromIndex+offset, toIndex+offset); this.modCount = l.modCount; size -= (toIndex-fromIndex); } public boolean addAll(Collection c) { return addAll(size, c); } public boolean addAll(int index, Collection c) { rangeCheckForAdd(index); int cSize = c.size(); if (cSize==0) return false; checkForComodification(); l.addAll(offset+index, c); this.modCount = l.modCount; size += cSize; return true; } public Iterator iterator() { return listIterator(); } public ListIterator listIterator(final int index) { checkForComodification(); rangeCheckForAdd(index); return new ListIterator() { private final ListIterator i = l.listIterator(index+offset); public boolean hasNext() { return nextIndex() < size; } public E next() { if (hasNext()) return i.next(); else throw new NoSuchElementException(); } public boolean hasPrevious() { return previousIndex() >= 0; } public E previous() { if (hasPrevious()) return i.previous(); else throw new NoSuchElementException(); } public int nextIndex() { return i.nextIndex() - offset; } public int previousIndex() { return i.previousIndex() - offset; } public void remove() { i.remove(); SubList.this.modCount = l.modCount; size--; } public void set(E e) { i.set(e); } public void add(E e) { i.add(e); SubList.this.modCount = l.modCount; size++; } }; } public List subList(int fromIndex, int toIndex) { return new SubList(this, fromIndex, toIndex); } private void rangeCheck(int index) { if (index < 0 || index >= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); } private void rangeCheckForAdd(int index) { if (index < 0 || index > size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); } private String outOfBoundsMsg(int index) { return ""; } private void checkForComodification() { if (this.modCount != l.modCount) throw new ConcurrentModificationException(); } } class RandomAccessSubList extends SubList implements RandomAccess { RandomAccessSubList(AbstractList list, int fromIndex, int toIndex) { super(list, fromIndex, toIndex); } public List subList(int fromIndex, int toIndex) { return new RandomAccessSubList(this, fromIndex, toIndex); } } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This class provides a skeletal implementation of the List * interface to minimize the effort required to implement this interface * backed by a "sequential access" data store (such as a linked list). For * random access data (such as an array), AbstractList should be used * in preference to this class.

* * This class is the opposite of the AbstractList class in the sense * that it implements the "random access" methods (get(int index), * set(int index, E element), add(int index, E element) and * remove(int index)) on top of the list's list iterator, instead of * the other way around.

* * To implement a list the programmer needs only to extend this class and * provide implementations for the listIterator and size * methods. For an unmodifiable list, the programmer need only implement the * list iterator's hasNext, next, hasPrevious, * previous and index methods.

* * For a modifiable list the programmer should additionally implement the list * iterator's set method. For a variable-size list the programmer * should additionally implement the list iterator's remove and * add methods.

* * The programmer should generally provide a void (no argument) and collection * constructor, as per the recommendation in the Collection interface * specification.

* * This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Collection * @see List * @see AbstractList * @see AbstractCollection * @since 1.2 */ public abstract class AbstractSequentialList extends AbstractList { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ protected AbstractSequentialList() { } /** * Returns the element at the specified position in this list. * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it gets * the element using ListIterator.next and returns it. * * @throws IndexOutOfBoundsException {@inheritDoc} */ public E get(int index) { try { return listIterator(index).next(); } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } /** * Replaces the element at the specified position in this list with the * specified element (optional operation). * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it gets * the current element using ListIterator.next and replaces it * with ListIterator.set. * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator does not * implement the set operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { try { ListIterator e = listIterator(index); E oldVal = e.next(); e.set(element); return oldVal; } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } /** * Inserts the specified element at the specified position in this list * (optional operation). Shifts the element currently at that position * (if any) and any subsequent elements to the right (adds one to their * indices). * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it * inserts the specified element with ListIterator.add. * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator does not * implement the add operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public void add(int index, E element) { try { listIterator(index).add(element); } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } /** * Removes the element at the specified position in this list (optional * operation). Shifts any subsequent elements to the left (subtracts one * from their indices). Returns the element that was removed from the * list. * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it removes * the element with ListIterator.remove. * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator does not * implement the remove operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { try { ListIterator e = listIterator(index); E outCast = e.next(); e.remove(); return outCast; } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } // Bulk Operations /** * Inserts all of the elements in the specified collection into this * list at the specified position (optional operation). Shifts the * element currently at that position (if any) and any subsequent * elements to the right (increases their indices). The new elements * will appear in this list in the order that they are returned by the * specified collection's iterator. The behavior of this operation is * undefined if the specified collection is modified while the * operation is in progress. (Note that this will occur if the specified * collection is this list, and it's nonempty.) * *

This implementation gets an iterator over the specified collection and * a list iterator over this list pointing to the indexed element (with * listIterator(index)). Then, it iterates over the specified * collection, inserting the elements obtained from the iterator into this * list, one at a time, using ListIterator.add followed by * ListIterator.next (to skip over the added element). * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator returned by * the listIterator method does not implement the add * operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public boolean addAll(int index, Collection c) { try { boolean modified = false; ListIterator e1 = listIterator(index); Iterator e2 = c.iterator(); while (e2.hasNext()) { e1.add(e2.next()); modified = true; } return modified; } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } // Iterators /** * Returns an iterator over the elements in this list (in proper * sequence).

* * This implementation merely returns a list iterator over the list. * * @return an iterator over the elements in this list (in proper sequence) */ public Iterator iterator() { return listIterator(); } /** * Returns a list iterator over the elements in this list (in proper * sequence). * * @param index index of first element to be returned from the list * iterator (by a call to the next method) * @return a list iterator over the elements in this list (in proper * sequence) * @throws IndexOutOfBoundsException {@inheritDoc} */ public abstract ListIterator listIterator(int index); } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * The root interface in the collection hierarchy. A collection * represents a group of objects, known as its elements. Some * collections allow duplicate elements and others do not. Some are ordered * and others unordered. The JDK does not provide any direct * implementations of this interface: it provides implementations of more * specific subinterfaces like Set and List. This interface * is typically used to pass collections around and manipulate them where * maximum generality is desired. * *

Bags or multisets (unordered collections that may contain * duplicate elements) should implement this interface directly. * *

All general-purpose Collection implementation classes (which * typically implement Collection indirectly through one of its * subinterfaces) should provide two "standard" constructors: a void (no * arguments) constructor, which creates an empty collection, and a * constructor with a single argument of type Collection, which * creates a new collection with the same elements as its argument. In * effect, the latter constructor allows the user to copy any collection, * producing an equivalent collection of the desired implementation type. * There is no way to enforce this convention (as interfaces cannot contain * constructors) but all of the general-purpose Collection * implementations in the Java platform libraries comply. * *

The "destructive" methods contained in this interface, that is, the * methods that modify the collection on which they operate, are specified to * throw UnsupportedOperationException if this collection does not * support the operation. If this is the case, these methods may, but are not * required to, throw an UnsupportedOperationException if the * invocation would have no effect on the collection. For example, invoking * the {@link #addAll(Collection)} method on an unmodifiable collection may, * but is not required to, throw the exception if the collection to be added * is empty. * *

Some collection implementations have restrictions on the elements that * they may contain. For example, some implementations prohibit null elements, * and some have restrictions on the types of their elements. Attempting to * add an ineligible element throws an unchecked exception, typically * NullPointerException or ClassCastException. Attempting * to query the presence of an ineligible element may throw an exception, * or it may simply return false; some implementations will exhibit the former * behavior and some will exhibit the latter. More generally, attempting an * operation on an ineligible element whose completion would not result in * the insertion of an ineligible element into the collection may throw an * exception or it may succeed, at the option of the implementation. * Such exceptions are marked as "optional" in the specification for this * interface. * *

It is up to each collection to determine its own synchronization * policy. In the absence of a stronger guarantee by the * implementation, undefined behavior may result from the invocation * of any method on a collection that is being mutated by another * thread; this includes direct invocations, passing the collection to * a method that might perform invocations, and using an existing * iterator to examine the collection. * *

Many methods in Collections Framework interfaces are defined in * terms of the {@link Object#equals(Object) equals} method. For example, * the specification for the {@link #contains(Object) contains(Object o)} * method says: "returns true if and only if this collection * contains at least one element e such that * (o==null ? e==null : o.equals(e))." This specification should * not be construed to imply that invoking Collection.contains * with a non-null argument o will cause o.equals(e) to be * invoked for any element e. Implementations are free to implement * optimizations whereby the equals invocation is avoided, for * example, by first comparing the hash codes of the two elements. (The * {@link Object#hashCode()} specification guarantees that two objects with * unequal hash codes cannot be equal.) More generally, implementations of * the various Collections Framework interfaces are free to take advantage of * the specified behavior of underlying {@link Object} methods wherever the * implementor deems it appropriate. * *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Set * @see List * @see Map * @see SortedSet * @see SortedMap * @see HashSet * @see TreeSet * @see ArrayList * @see LinkedList * @see Vector * @see Collections * @see Arrays * @see AbstractCollection * @since 1.2 */ public interface Collection { // Query Operations /** * Returns the number of elements in this collection. If this collection * contains more than Integer.MAX_VALUE elements, returns * Integer.MAX_VALUE. * * @return the number of elements in this collection */ int size(); /** * Returns true if this collection contains no elements. * * @return true if this collection contains no elements */ boolean isEmpty(); /** * Returns true if this collection contains the specified element. * More formally, returns true if and only if this collection * contains at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this collection is to be tested * @return true if this collection contains the specified * element * @throws ClassCastException if the type of the specified element * is incompatible with this collection (optional) * @throws NullPointerException if the specified element is null and this * collection does not permit null elements (optional) */ boolean contains(Object o); /** * Returns an iterator over the elements in this collection. There are no * guarantees concerning the order in which the elements are returned * (unless this collection is an instance of some class that provides a * guarantee). * * @return an Iterator over the elements in this collection */ Iterator iterator(); // Modification Operations /** * Ensures that this collection contains the specified element (optional * operation). Returns true if this collection changed as a * result of the call. (Returns false if this collection does * not permit duplicates and already contains the specified element.)

* * Collections that support this operation may place limitations on what * elements may be added to this collection. In particular, some * collections will refuse to add null elements, and others will * impose restrictions on the type of elements that may be added. * Collection classes should clearly specify in their documentation any * restrictions on what elements may be added.

* * If a collection refuses to add a particular element for any reason * other than that it already contains the element, it must throw * an exception (rather than returning false). This preserves * the invariant that a collection always contains the specified element * after this call returns. * * @param e element whose presence in this collection is to be ensured * @return true if this collection changed as a result of the * call * @throws UnsupportedOperationException if the add operation * is not supported by this collection * @throws ClassCastException if the class of the specified element * prevents it from being added to this collection * @throws NullPointerException if the specified element is null and this * collection does not permit null elements * @throws IllegalArgumentException if some property of the element * prevents it from being added to this collection * @throws IllegalStateException if the element cannot be added at this * time due to insertion restrictions */ boolean add(E e); /** * Removes a single instance of the specified element from this * collection, if it is present (optional operation). More formally, * removes an element e such that * (o==null ? e==null : o.equals(e)), if * this collection contains one or more such elements. Returns * true if this collection contained the specified element (or * equivalently, if this collection changed as a result of the call). * * @param o element to be removed from this collection, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the type of the specified element * is incompatible with this collection (optional) * @throws NullPointerException if the specified element is null and this * collection does not permit null elements (optional) * @throws UnsupportedOperationException if the remove operation * is not supported by this collection */ boolean remove(Object o); // Bulk Operations /** * Returns true if this collection contains all of the elements * in the specified collection. * * @param c collection to be checked for containment in this collection * @return true if this collection contains all of the elements * in the specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this * collection (optional) * @throws NullPointerException if the specified collection contains one * or more null elements and this collection does not permit null * elements (optional), or if the specified collection is null * @see #contains(Object) */ boolean containsAll(Collection c); /** * Adds all of the elements in the specified collection to this collection * (optional operation). The behavior of this operation is undefined if * the specified collection is modified while the operation is in progress. * (This implies that the behavior of this call is undefined if the * specified collection is this collection, and this collection is * nonempty.) * * @param c collection containing elements to be added to this collection * @return true if this collection changed as a result of the call * @throws UnsupportedOperationException if the addAll operation * is not supported by this collection * @throws ClassCastException if the class of an element of the specified * collection prevents it from being added to this collection * @throws NullPointerException if the specified collection contains a * null element and this collection does not permit null elements, * or if the specified collection is null * @throws IllegalArgumentException if some property of an element of the * specified collection prevents it from being added to this * collection * @throws IllegalStateException if not all the elements can be added at * this time due to insertion restrictions * @see #add(Object) */ boolean addAll(Collection c); /** * Removes all of this collection's elements that are also contained in the * specified collection (optional operation). After this call returns, * this collection will contain no elements in common with the specified * collection. * * @param c collection containing elements to be removed from this collection * @return true if this collection changed as a result of the * call * @throws UnsupportedOperationException if the removeAll method * is not supported by this collection * @throws ClassCastException if the types of one or more elements * in this collection are incompatible with the specified * collection (optional) * @throws NullPointerException if this collection contains one or more * null elements and the specified collection does not support * null elements (optional), or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean removeAll(Collection c); /** * Retains only the elements in this collection that are contained in the * specified collection (optional operation). In other words, removes from * this collection all of its elements that are not contained in the * specified collection. * * @param c collection containing elements to be retained in this collection * @return true if this collection changed as a result of the call * @throws UnsupportedOperationException if the retainAll operation * is not supported by this collection * @throws ClassCastException if the types of one or more elements * in this collection are incompatible with the specified * collection (optional) * @throws NullPointerException if this collection contains one or more * null elements and the specified collection does not permit null * elements (optional), or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean retainAll(Collection c); /** * Removes all of the elements from this collection (optional operation). * The collection will be empty after this method returns. * * @throws UnsupportedOperationException if the clear operation * is not supported by this collection */ void clear(); // Comparison and hashing /** * Compares the specified object with this collection for equality.

* * While the Collection interface adds no stipulations to the * general contract for the Object.equals, programmers who * implement the Collection interface "directly" (in other words, * create a class that is a Collection but is not a Set * or a List) must exercise care if they choose to override the * Object.equals. It is not necessary to do so, and the simplest * course of action is to rely on Object's implementation, but * the implementor may wish to implement a "value comparison" in place of * the default "reference comparison." (The List and * Set interfaces mandate such value comparisons.)

* * The general contract for the Object.equals method states that * equals must be symmetric (in other words, a.equals(b) if and * only if b.equals(a)). The contracts for List.equals * and Set.equals state that lists are only equal to other lists, * and sets to other sets. Thus, a custom equals method for a * collection class that implements neither the List nor * Set interface must return false when this collection * is compared to any list or set. (By the same logic, it is not possible * to write a class that correctly implements both the Set and * List interfaces.) * * @param o object to be compared for equality with this collection * @return true if the specified object is equal to this * collection * * @see Object#equals(Object) * @see Set#equals(Object) * @see List#equals(Object) */ boolean equals(Object o); /** * Returns the hash code value for this collection. While the * Collection interface adds no stipulations to the general * contract for the Object.hashCode method, programmers should * take note that any class that overrides the Object.equals * method must also override the Object.hashCode method in order * to satisfy the general contract for the Object.hashCodemethod. * In particular, c1.equals(c2) implies that * c1.hashCode()==c2.hashCode(). * * @return the hash code value for this collection * * @see Object#hashCode() * @see Object#equals(Object) */ int hashCode(); } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This exception may be thrown by methods that have detected concurrent * modification of an object when such modification is not permissible. *

* For example, it is not generally permissible for one thread to modify a Collection * while another thread is iterating over it. In general, the results of the * iteration are undefined under these circumstances. Some Iterator * implementations (including those of all the general purpose collection implementations * provided by the JRE) may choose to throw this exception if this behavior is * detected. Iterators that do this are known as fail-fast iterators, * as they fail quickly and cleanly, rather that risking arbitrary, * non-deterministic behavior at an undetermined time in the future. *

* Note that this exception does not always indicate that an object has * been concurrently modified by a different thread. If a single * thread issues a sequence of method invocations that violates the * contract of an object, the object may throw this exception. For * example, if a thread modifies a collection directly while it is * iterating over the collection with a fail-fast iterator, the iterator * will throw this exception. * *

Note that fail-fast behavior cannot be guaranteed as it is, generally * speaking, impossible to make any hard guarantees in the presence of * unsynchronized concurrent modification. Fail-fast operations * throw ConcurrentModificationException on a best-effort basis. * Therefore, it would be wrong to write a program that depended on this * exception for its correctness: ConcurrentModificationException * should be used only to detect bugs. * * @author Josh Bloch * @see Collection * @see Iterator * @see ListIterator * @see Vector * @see LinkedList * @see HashSet * @see Hashtable * @see TreeMap * @see AbstractList * @since 1.2 */ public class ConcurrentModificationException extends RuntimeException { /** * Constructs a ConcurrentModificationException with no * detail message. */ public ConcurrentModificationException() { } /** * Constructs a ConcurrentModificationException with the * specified detail message. * * @param message the detail message pertaining to this exception. */ public ConcurrentModificationException(String message) { super(message); } } /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ /* * This file is available under and governed by the GNU General Public * License version 2 only, as published by the Free Software Foundation. * However, the following notice accompanied the original version of this * file: * * Written by Doug Lea and Josh Bloch with assistance from members of * JCP JSR-166 Expert Group and released to the public domain, as explained * at http://creativecommons.org/licenses/publicdomain */ package javaUtilEx; /** * A linear collection that supports element insertion and removal at * both ends. The name deque is short for "double ended queue" * and is usually pronounced "deck". Most Deque * implementations place no fixed limits on the number of elements * they may contain, but this interface supports capacity-restricted * deques as well as those with no fixed size limit. * *

This interface defines methods to access the elements at both * ends of the deque. Methods are provided to insert, remove, and * examine the element. Each of these methods exists in two forms: * one throws an exception if the operation fails, the other returns a * special value (either null or false, depending on * the operation). The latter form of the insert operation is * designed specifically for use with capacity-restricted * Deque implementations; in most implementations, insert * operations cannot fail. * *

The twelve methods described above are summarized in the * following table: * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
First Element (Head) Last Element (Tail)
Throws exceptionSpecial valueThrows exceptionSpecial value
Insert{@link #addFirst addFirst(e)}{@link #offerFirst offerFirst(e)}{@link #addLast addLast(e)}{@link #offerLast offerLast(e)}
Remove{@link #removeFirst removeFirst()}{@link #pollFirst pollFirst()}{@link #removeLast removeLast()}{@link #pollLast pollLast()}
Examine{@link #getFirst getFirst()}{@link #peekFirst peekFirst()}{@link #getLast getLast()}{@link #peekLast peekLast()}
* *

This interface extends the {@link Queue} interface. When a deque is * used as a queue, FIFO (First-In-First-Out) behavior results. Elements are * added at the end of the deque and removed from the beginning. The methods * inherited from the Queue interface are precisely equivalent to * Deque methods as indicated in the following table: * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Queue Method Equivalent Deque Method
{@link java.util.Queue#add add(e)}{@link #addLast addLast(e)}
{@link java.util.Queue#offer offer(e)}{@link #offerLast offerLast(e)}
{@link java.util.Queue#remove remove()}{@link #removeFirst removeFirst()}
{@link java.util.Queue#poll poll()}{@link #pollFirst pollFirst()}
{@link java.util.Queue#element element()}{@link #getFirst getFirst()}
{@link java.util.Queue#peek peek()}{@link #peek peekFirst()}
* *

Deques can also be used as LIFO (Last-In-First-Out) stacks. This * interface should be used in preference to the legacy {@link Stack} class. * When a deque is used as a stack, elements are pushed and popped from the * beginning of the deque. Stack methods are precisely equivalent to * Deque methods as indicated in the table below: * *

* * * * * * * * * * * * * * * * * *
Stack Method Equivalent Deque Method
{@link #push push(e)}{@link #addFirst addFirst(e)}
{@link #pop pop()}{@link #removeFirst removeFirst()}
{@link #peek peek()}{@link #peekFirst peekFirst()}
* *

Note that the {@link #peek peek} method works equally well when * a deque is used as a queue or a stack; in either case, elements are * drawn from the beginning of the deque. * *

This interface provides two methods to remove interior * elements, {@link #removeFirstOccurrence removeFirstOccurrence} and * {@link #removeLastOccurrence removeLastOccurrence}. * *

Unlike the {@link List} interface, this interface does not * provide support for indexed access to elements. * *

While Deque implementations are not strictly required * to prohibit the insertion of null elements, they are strongly * encouraged to do so. Users of any Deque implementations * that do allow null elements are strongly encouraged not to * take advantage of the ability to insert nulls. This is so because * null is used as a special return value by various methods * to indicated that the deque is empty. * *

Deque implementations generally do not define * element-based versions of the equals and hashCode * methods, but instead inherit the identity-based versions from class * Object. * *

This interface is a member of the Java Collections * Framework. * * @author Doug Lea * @author Josh Bloch * @since 1.6 * @param the type of elements held in this collection */ public interface Deque extends Queue { /** * Inserts the specified element at the front of this deque if it is * possible to do so immediately without violating capacity restrictions. * When using a capacity-restricted deque, it is generally preferable to * use method {@link #offerFirst}. * * @param e the element to add * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ void addFirst(E e); /** * Inserts the specified element at the end of this deque if it is * possible to do so immediately without violating capacity restrictions. * When using a capacity-restricted deque, it is generally preferable to * use method {@link #offerLast}. * *

This method is equivalent to {@link #add}. * * @param e the element to add * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ void addLast(E e); /** * Inserts the specified element at the front of this deque unless it would * violate capacity restrictions. When using a capacity-restricted deque, * this method is generally preferable to the {@link #addFirst} method, * which can fail to insert an element only by throwing an exception. * * @param e the element to add * @return true if the element was added to this deque, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean offerFirst(E e); /** * Inserts the specified element at the end of this deque unless it would * violate capacity restrictions. When using a capacity-restricted deque, * this method is generally preferable to the {@link #addLast} method, * which can fail to insert an element only by throwing an exception. * * @param e the element to add * @return true if the element was added to this deque, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean offerLast(E e); /** * Retrieves and removes the first element of this deque. This method * differs from {@link #pollFirst pollFirst} only in that it throws an * exception if this deque is empty. * * @return the head of this deque * @throws NoSuchElementException if this deque is empty */ E removeFirst(); /** * Retrieves and removes the last element of this deque. This method * differs from {@link #pollLast pollLast} only in that it throws an * exception if this deque is empty. * * @return the tail of this deque * @throws NoSuchElementException if this deque is empty */ E removeLast(); /** * Retrieves and removes the first element of this deque, * or returns null if this deque is empty. * * @return the head of this deque, or null if this deque is empty */ E pollFirst(); /** * Retrieves and removes the last element of this deque, * or returns null if this deque is empty. * * @return the tail of this deque, or null if this deque is empty */ E pollLast(); /** * Retrieves, but does not remove, the first element of this deque. * * This method differs from {@link #peekFirst peekFirst} only in that it * throws an exception if this deque is empty. * * @return the head of this deque * @throws NoSuchElementException if this deque is empty */ E getFirst(); /** * Retrieves, but does not remove, the last element of this deque. * This method differs from {@link #peekLast peekLast} only in that it * throws an exception if this deque is empty. * * @return the tail of this deque * @throws NoSuchElementException if this deque is empty */ E getLast(); /** * Retrieves, but does not remove, the first element of this deque, * or returns null if this deque is empty. * * @return the head of this deque, or null if this deque is empty */ E peekFirst(); /** * Retrieves, but does not remove, the last element of this deque, * or returns null if this deque is empty. * * @return the tail of this deque, or null if this deque is empty */ E peekLast(); /** * Removes the first occurrence of the specified element from this deque. * If the deque does not contain the element, it is unchanged. * More formally, removes the first element e such that * (o==null ? e==null : o.equals(e)) * (if such an element exists). * Returns true if this deque contained the specified element * (or equivalently, if this deque changed as a result of the call). * * @param o element to be removed from this deque, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean removeFirstOccurrence(Object o); /** * Removes the last occurrence of the specified element from this deque. * If the deque does not contain the element, it is unchanged. * More formally, removes the last element e such that * (o==null ? e==null : o.equals(e)) * (if such an element exists). * Returns true if this deque contained the specified element * (or equivalently, if this deque changed as a result of the call). * * @param o element to be removed from this deque, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean removeLastOccurrence(Object o); // *** Queue methods *** /** * Inserts the specified element into the queue represented by this deque * (in other words, at the tail of this deque) if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and throwing an * IllegalStateException if no space is currently available. * When using a capacity-restricted deque, it is generally preferable to * use {@link #offer(Object) offer}. * *

This method is equivalent to {@link #addLast}. * * @param e the element to add * @return true (as specified by {@link Collection#add}) * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean add(E e); /** * Inserts the specified element into the queue represented by this deque * (in other words, at the tail of this deque) if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and false if no space is currently * available. When using a capacity-restricted deque, this method is * generally preferable to the {@link #add} method, which can fail to * insert an element only by throwing an exception. * *

This method is equivalent to {@link #offerLast}. * * @param e the element to add * @return true if the element was added to this deque, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean offer(E e); /** * Retrieves and removes the head of the queue represented by this deque * (in other words, the first element of this deque). * This method differs from {@link #poll poll} only in that it throws an * exception if this deque is empty. * *

This method is equivalent to {@link #removeFirst()}. * * @return the head of the queue represented by this deque * @throws NoSuchElementException if this deque is empty */ E remove(); /** * Retrieves and removes the head of the queue represented by this deque * (in other words, the first element of this deque), or returns * null if this deque is empty. * *

This method is equivalent to {@link #pollFirst()}. * * @return the first element of this deque, or null if * this deque is empty */ E poll(); /** * Retrieves, but does not remove, the head of the queue represented by * this deque (in other words, the first element of this deque). * This method differs from {@link #peek peek} only in that it throws an * exception if this deque is empty. * *

This method is equivalent to {@link #getFirst()}. * * @return the head of the queue represented by this deque * @throws NoSuchElementException if this deque is empty */ E element(); /** * Retrieves, but does not remove, the head of the queue represented by * this deque (in other words, the first element of this deque), or * returns null if this deque is empty. * *

This method is equivalent to {@link #peekFirst()}. * * @return the head of the queue represented by this deque, or * null if this deque is empty */ E peek(); // *** Stack methods *** /** * Pushes an element onto the stack represented by this deque (in other * words, at the head of this deque) if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and throwing an * IllegalStateException if no space is currently available. * *

This method is equivalent to {@link #addFirst}. * * @param e the element to push * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ void push(E e); /** * Pops an element from the stack represented by this deque. In other * words, removes and returns the first element of this deque. * *

This method is equivalent to {@link #removeFirst()}. * * @return the element at the front of this deque (which is the top * of the stack represented by this deque) * @throws NoSuchElementException if this deque is empty */ E pop(); // *** Collection methods *** /** * Removes the first occurrence of the specified element from this deque. * If the deque does not contain the element, it is unchanged. * More formally, removes the first element e such that * (o==null ? e==null : o.equals(e)) * (if such an element exists). * Returns true if this deque contained the specified element * (or equivalently, if this deque changed as a result of the call). * *

This method is equivalent to {@link #removeFirstOccurrence}. * * @param o element to be removed from this deque, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean remove(Object o); /** * Returns true if this deque contains the specified element. * More formally, returns true if and only if this deque contains * at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this deque is to be tested * @return true if this deque contains the specified element * @throws ClassCastException if the type of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean contains(Object o); /** * Returns the number of elements in this deque. * * @return the number of elements in this deque */ public int size(); /** * Returns an iterator over the elements in this deque in proper sequence. * The elements will be returned in order from first (head) to last (tail). * * @return an iterator over the elements in this deque in proper sequence */ Iterator iterator(); /** * Returns an iterator over the elements in this deque in reverse * sequential order. The elements will be returned in order from * last (tail) to first (head). * * @return an iterator over the elements in this deque in reverse * sequence */ Iterator descendingIterator(); } /* * Copyright 1994-2003 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Thrown to indicate that a method has been passed an illegal or * inappropriate argument. * * @author unascribed * @see java.lang.Thread#setPriority(int) * @since JDK1.0 */ public class IllegalArgumentException extends RuntimeException { /** * Constructs an IllegalArgumentException with no * detail message. */ public IllegalArgumentException() { super(); } /** * Constructs an IllegalArgumentException with the * specified detail message. * * @param s the detail message. */ public IllegalArgumentException(String s) { super(s); } /** * Constructs a new exception with the specified detail message and * cause. * *

Note that the detail message associated with cause is * not automatically incorporated in this exception's detail * message. * * @param message the detail message (which is saved for later retrieval * by the {@link Throwable#getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value * is permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalArgumentException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of cause). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalArgumentException(Throwable cause) { super(cause); } private static final long serialVersionUID = -5365630128856068164L; } /* * Copyright 1996-2003 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Signals that a method has been invoked at an illegal or * inappropriate time. In other words, the Java environment or * Java application is not in an appropriate state for the requested * operation. * * @author Jonni Kanerva * @since JDK1.1 */ public class IllegalStateException extends RuntimeException { /** * Constructs an IllegalStateException with no detail message. * A detail message is a String that describes this particular exception. */ public IllegalStateException() { super(); } /** * Constructs an IllegalStateException with the specified detail * message. A detail message is a String that describes this particular * exception. * * @param s the String that contains a detailed message */ public IllegalStateException(String s) { super(s); } /** * Constructs a new exception with the specified detail message and * cause. * *

Note that the detail message associated with cause is * not automatically incorporated in this exception's detail * message. * * @param message the detail message (which is saved for later retrieval * by the {@link Throwable#getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value * is permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalStateException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of cause). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalStateException(Throwable cause) { super(cause); } static final long serialVersionUID = -1848914673093119416L; } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * An iterator over a collection. {@code Iterator} takes the place of * {@link Enumeration} in the Java Collections Framework. Iterators * differ from enumerations in two ways: * *

* *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @see Collection * @see ListIterator * @see Iterable * @since 1.2 */ public interface Iterator { /** * Returns {@code true} if the iteration has more elements. * (In other words, returns {@code true} if {@link #next} would * return an element rather than throwing an exception.) * * @return {@code true} if the iteration has more elements */ boolean hasNext(); /** * Returns the next element in the iteration. * * @return the next element in the iteration * @throws NoSuchElementException if the iteration has no more elements */ E next(); /** * Removes from the underlying collection the last element returned * by this iterator (optional operation). This method can be called * only once per call to {@link #next}. The behavior of an iterator * is unspecified if the underlying collection is modified while the * iteration is in progress in any way other than by calling this * method. * * @throws UnsupportedOperationException if the {@code remove} * operation is not supported by this iterator * * @throws IllegalStateException if the {@code next} method has not * yet been called, or the {@code remove} method has already * been called after the last call to the {@code next} * method */ void remove(); } package javaUtilEx; public class juLinkedListCreateRemoveLastOccurrence { public static void main(String[] args) { Random.args = args; LinkedList l = createList(Random.random()); Content c = new Content(Random.random()); if (Random.random() > 42) { c = l.get(Random.random()); } l.removeLastOccurrence(c); } public static LinkedList createList(int n) { LinkedList l = new LinkedList(); while (n > 0) { l.addLast(new Content(Random.random())); n--; } return l; } } final class Content { int val; public Content(int v) { this.val = v; } public int hashCode() { return val^31; } public boolean equals(Object o) { if (o instanceof Content) { return this.val == ((Content) o).val; } return false; } } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Linked list implementation of the List interface. Implements all * optional list operations, and permits all elements (including * null). In addition to implementing the List interface, * the LinkedList class provides uniformly named methods to * get, remove and insert an element at the * beginning and end of the list. These operations allow linked lists to be * used as a stack, {@linkplain Queue queue}, or {@linkplain Deque * double-ended queue}.

* * The class implements the Deque interface, providing * first-in-first-out queue operations for add, * poll, along with other stack and deque operations.

* * All of the operations perform as could be expected for a doubly-linked * list. Operations that index into the list will traverse the list from * the beginning or the end, whichever is closer to the specified index.

* *

Note that this implementation is not synchronized. * If multiple threads access a linked list concurrently, and at least * one of the threads modifies the list structurally, it must be * synchronized externally. (A structural modification is any operation * that adds or deletes one or more elements; merely setting the value of * an element is not a structural modification.) This is typically * accomplished by synchronizing on some object that naturally * encapsulates the list. * * If no such object exists, the list should be "wrapped" using the * {@link Collections#synchronizedList Collections.synchronizedList} * method. This is best done at creation time, to prevent accidental * unsynchronized access to the list:

 *   List list = Collections.synchronizedList(new LinkedList(...));
* *

The iterators returned by this class's iterator and * listIterator methods are fail-fast: if the list is * structurally modified at any time after the iterator is created, in * any way except through the Iterator's own remove or * add methods, the iterator will throw a {@link * ConcurrentModificationException}. Thus, in the face of concurrent * modification, the iterator fails quickly and cleanly, rather than * risking arbitrary, non-deterministic behavior at an undetermined * time in the future. * *

Note that the fail-fast behavior of an iterator cannot be guaranteed * as it is, generally speaking, impossible to make any hard guarantees in the * presence of unsynchronized concurrent modification. Fail-fast iterators * throw ConcurrentModificationException on a best-effort basis. * Therefore, it would be wrong to write a program that depended on this * exception for its correctness: the fail-fast behavior of iterators * should be used only to detect bugs. * *

This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @see List * @see ArrayList * @see Vector * @since 1.2 * @param the type of elements held in this collection */ public class LinkedList extends AbstractSequentialList implements List, Deque { private transient Entry header = new Entry(null, null, null); private transient int size = 0; /** * Constructs an empty list. */ public LinkedList() { header.next = header.previous = header; } /** * Constructs a list containing the elements of the specified * collection, in the order they are returned by the collection's * iterator. * * @param c the collection whose elements are to be placed into this list * @throws NullPointerException if the specified collection is null */ public LinkedList(Collection c) { this(); addAll(c); } /** * Returns the first element in this list. * * @return the first element in this list * @throws NoSuchElementException if this list is empty */ public E getFirst() { if (size==0) throw new NoSuchElementException(); return header.next.element; } /** * Returns the last element in this list. * * @return the last element in this list * @throws NoSuchElementException if this list is empty */ public E getLast() { if (size==0) throw new NoSuchElementException(); return header.previous.element; } /** * Removes and returns the first element from this list. * * @return the first element from this list * @throws NoSuchElementException if this list is empty */ public E removeFirst() { return remove(header.next); } /** * Removes and returns the last element from this list. * * @return the last element from this list * @throws NoSuchElementException if this list is empty */ public E removeLast() { return remove(header.previous); } /** * Inserts the specified element at the beginning of this list. * * @param e the element to add */ public void addFirst(E e) { addBefore(e, header.next); } /** * Appends the specified element to the end of this list. * *

This method is equivalent to {@link #add}. * * @param e the element to add */ public void addLast(E e) { addBefore(e, header); } /** * Returns true if this list contains the specified element. * More formally, returns true if and only if this list contains * at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this list is to be tested * @return true if this list contains the specified element */ public boolean contains(Object o) { return indexOf(o) != -1; } /** * Returns the number of elements in this list. * * @return the number of elements in this list */ public int size() { return size; } /** * Appends the specified element to the end of this list. * *

This method is equivalent to {@link #addLast}. * * @param e element to be appended to this list * @return true (as specified by {@link Collection#add}) */ public boolean add(E e) { addBefore(e, header); return true; } /** * Removes the first occurrence of the specified element from this list, * if it is present. If this list does not contain the element, it is * unchanged. More formally, removes the element with the lowest index * i such that * (o==null ? get(i)==null : o.equals(get(i))) * (if such an element exists). Returns true if this list * contained the specified element (or equivalently, if this list * changed as a result of the call). * * @param o element to be removed from this list, if present * @return true if this list contained the specified element */ public boolean remove(Object o) { if (o==null) { for (Entry e = header.next; e != header; e = e.next) { if (e.element==null) { remove(e); return true; } } } else { for (Entry e = header.next; e != header; e = e.next) { if (o.equals(e.element)) { remove(e); return true; } } } return false; } /** * Removes all of the elements from this list. */ public void clear() { Entry e = header.next; while (e != header) { Entry next = e.next; e.next = e.previous = null; e.element = null; e = next; } header.next = header.previous = header; size = 0; modCount++; } // Positional Access Operations /** * Returns the element at the specified position in this list. * * @param index index of the element to return * @return the element at the specified position in this list * @throws IndexOutOfBoundsException {@inheritDoc} */ public E get(int index) { return entry(index).element; } /** * Replaces the element at the specified position in this list with the * specified element. * * @param index index of the element to replace * @param element element to be stored at the specified position * @return the element previously at the specified position * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { Entry e = entry(index); E oldVal = e.element; e.element = element; return oldVal; } /** * Inserts the specified element at the specified position in this list. * Shifts the element currently at that position (if any) and any * subsequent elements to the right (adds one to their indices). * * @param index index at which the specified element is to be inserted * @param element element to be inserted * @throws IndexOutOfBoundsException {@inheritDoc} */ public void add(int index, E element) { addBefore(element, (index==size ? header : entry(index))); } /** * Removes the element at the specified position in this list. Shifts any * subsequent elements to the left (subtracts one from their indices). * Returns the element that was removed from the list. * * @param index the index of the element to be removed * @return the element previously at the specified position * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { return remove(entry(index)); } /** * Returns the indexed entry. */ private Entry entry(int index) { if (index < 0 || index >= size) throw new IndexOutOfBoundsException(); Entry e = header; if (index < (size >> 1)) { for (int i = 0; i <= index; i++) e = e.next; } else { for (int i = size; i > index; i--) e = e.previous; } return e; } // Search Operations /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the lowest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the first occurrence of the specified element in * this list, or -1 if this list does not contain the element */ public int indexOf(Object o) { int index = 0; if (o==null) { for (Entry e = header.next; e != header; e = e.next) { if (e.element==null) return index; index++; } } else { for (Entry e = header.next; e != header; e = e.next) { if (o.equals(e.element)) return index; index++; } } return -1; } /** * Returns the index of the last occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the highest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the last occurrence of the specified element in * this list, or -1 if this list does not contain the element */ public int lastIndexOf(Object o) { int index = size; if (o==null) { for (Entry e = header.previous; e != header; e = e.previous) { index--; if (e.element==null) return index; } } else { for (Entry e = header.previous; e != header; e = e.previous) { index--; if (o.equals(e.element)) return index; } } return -1; } // Queue operations. /** * Retrieves, but does not remove, the head (first element) of this list. * @return the head of this list, or null if this list is empty * @since 1.5 */ public E peek() { if (size==0) return null; return getFirst(); } /** * Retrieves, but does not remove, the head (first element) of this list. * @return the head of this list * @throws NoSuchElementException if this list is empty * @since 1.5 */ public E element() { return getFirst(); } /** * Retrieves and removes the head (first element) of this list * @return the head of this list, or null if this list is empty * @since 1.5 */ public E poll() { if (size==0) return null; return removeFirst(); } /** * Retrieves and removes the head (first element) of this list. * * @return the head of this list * @throws NoSuchElementException if this list is empty * @since 1.5 */ public E remove() { return removeFirst(); } /** * Adds the specified element as the tail (last element) of this list. * * @param e the element to add * @return true (as specified by {@link Queue#offer}) * @since 1.5 */ public boolean offer(E e) { return add(e); } // Deque operations /** * Inserts the specified element at the front of this list. * * @param e the element to insert * @return true (as specified by {@link Deque#offerFirst}) * @since 1.6 */ public boolean offerFirst(E e) { addFirst(e); return true; } /** * Inserts the specified element at the end of this list. * * @param e the element to insert * @return true (as specified by {@link Deque#offerLast}) * @since 1.6 */ public boolean offerLast(E e) { addLast(e); return true; } /** * Retrieves, but does not remove, the first element of this list, * or returns null if this list is empty. * * @return the first element of this list, or null * if this list is empty * @since 1.6 */ public E peekFirst() { if (size==0) return null; return getFirst(); } /** * Retrieves, but does not remove, the last element of this list, * or returns null if this list is empty. * * @return the last element of this list, or null * if this list is empty * @since 1.6 */ public E peekLast() { if (size==0) return null; return getLast(); } /** * Retrieves and removes the first element of this list, * or returns null if this list is empty. * * @return the first element of this list, or null if * this list is empty * @since 1.6 */ public E pollFirst() { if (size==0) return null; return removeFirst(); } /** * Retrieves and removes the last element of this list, * or returns null if this list is empty. * * @return the last element of this list, or null if * this list is empty * @since 1.6 */ public E pollLast() { if (size==0) return null; return removeLast(); } /** * Pushes an element onto the stack represented by this list. In other * words, inserts the element at the front of this list. * *

This method is equivalent to {@link #addFirst}. * * @param e the element to push * @since 1.6 */ public void push(E e) { addFirst(e); } /** * Pops an element from the stack represented by this list. In other * words, removes and returns the first element of this list. * *

This method is equivalent to {@link #removeFirst()}. * * @return the element at the front of this list (which is the top * of the stack represented by this list) * @throws NoSuchElementException if this list is empty * @since 1.6 */ public E pop() { return removeFirst(); } /** * Removes the first occurrence of the specified element in this * list (when traversing the list from head to tail). If the list * does not contain the element, it is unchanged. * * @param o element to be removed from this list, if present * @return true if the list contained the specified element * @since 1.6 */ public boolean removeFirstOccurrence(Object o) { return remove(o); } /** * Removes the last occurrence of the specified element in this * list (when traversing the list from head to tail). If the list * does not contain the element, it is unchanged. * * @param o element to be removed from this list, if present * @return true if the list contained the specified element * @since 1.6 */ public boolean removeLastOccurrence(Object o) { if (o==null) { for (Entry e = header.previous; e != header; e = e.previous) { if (e.element==null) { remove(e); return true; } } } else { for (Entry e = header.previous; e != header; e = e.previous) { if (o.equals(e.element)) { remove(e); return true; } } } return false; } /** * Returns a list-iterator of the elements in this list (in proper * sequence), starting at the specified position in the list. * Obeys the general contract of List.listIterator(int).

* * The list-iterator is fail-fast: if the list is structurally * modified at any time after the Iterator is created, in any way except * through the list-iterator's own remove or add * methods, the list-iterator will throw a * ConcurrentModificationException. Thus, in the face of * concurrent modification, the iterator fails quickly and cleanly, rather * than risking arbitrary, non-deterministic behavior at an undetermined * time in the future. * * @param index index of the first element to be returned from the * list-iterator (by a call to next) * @return a ListIterator of the elements in this list (in proper * sequence), starting at the specified position in the list * @throws IndexOutOfBoundsException {@inheritDoc} * @see List#listIterator(int) */ public ListIterator listIterator(int index) { return new ListItr(index); } private class ListItr implements ListIterator { private Entry lastReturned = header; private Entry next; private int nextIndex; private int expectedModCount = modCount; ListItr(int index) { if (index < 0 || index > size) throw new IndexOutOfBoundsException(); if (index < (size >> 1)) { next = header.next; for (nextIndex=0; nextIndexindex; nextIndex--) next = next.previous; } } public boolean hasNext() { return nextIndex != size; } public E next() { checkForComodification(); if (nextIndex == size) throw new NoSuchElementException(); lastReturned = next; next = next.next; nextIndex++; return lastReturned.element; } public boolean hasPrevious() { return nextIndex != 0; } public E previous() { if (nextIndex == 0) throw new NoSuchElementException(); lastReturned = next = next.previous; nextIndex--; checkForComodification(); return lastReturned.element; } public int nextIndex() { return nextIndex; } public int previousIndex() { return nextIndex-1; } public void remove() { checkForComodification(); Entry lastNext = lastReturned.next; try { LinkedList.this.remove(lastReturned); } catch (NoSuchElementException e) { throw new IllegalStateException(); } if (next==lastReturned) next = lastNext; else nextIndex--; lastReturned = header; expectedModCount++; } public void set(E e) { if (lastReturned == header) throw new IllegalStateException(); checkForComodification(); lastReturned.element = e; } public void add(E e) { checkForComodification(); lastReturned = header; addBefore(e, next); nextIndex++; expectedModCount++; } final void checkForComodification() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); } } private static class Entry { E element; Entry next; Entry previous; Entry(E element, Entry next, Entry previous) { this.element = element; this.next = next; this.previous = previous; } } private Entry addBefore(E e, Entry entry) { Entry newEntry = new Entry(e, entry, entry.previous); newEntry.previous.next = newEntry; newEntry.next.previous = newEntry; size++; modCount++; return newEntry; } private E remove(Entry e) { if (e == header) throw new NoSuchElementException(); E result = e.element; e.previous.next = e.next; e.next.previous = e.previous; e.next = e.previous = null; e.element = null; size--; modCount++; return result; } /** * @since 1.6 */ public Iterator descendingIterator() { return new DescendingIterator(); } /** Adapter to provide descending iterators via ListItr.previous */ private class DescendingIterator implements Iterator { final ListItr itr = new ListItr(size()); public boolean hasNext() { return itr.hasPrevious(); } public E next() { return itr.previous(); } public void remove() { itr.remove(); } } /** * Returns an array containing all of the elements in this list * in proper sequence (from first to last element). * *

The returned array will be "safe" in that no references to it are * maintained by this list. (In other words, this method must allocate * a new array). The caller is thus free to modify the returned array. * *

This method acts as bridge between array-based and collection-based * APIs. * * @return an array containing all of the elements in this list * in proper sequence */ public Object[] toArray() { Object[] result = new Object[size]; int i = 0; for (Entry e = header.next; e != header; e = e.next) result[i++] = e.element; return result; } private static final long serialVersionUID = 876323262645176354L; } /* * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * An iterator for lists that allows the programmer * to traverse the list in either direction, modify * the list during iteration, and obtain the iterator's * current position in the list. A {@code ListIterator} * has no current element; its cursor position always * lies between the element that would be returned by a call * to {@code previous()} and the element that would be * returned by a call to {@code next()}. * An iterator for a list of length {@code n} has {@code n+1} possible * cursor positions, as illustrated by the carets ({@code ^}) below: *

 *                      Element(0)   Element(1)   Element(2)   ... Element(n-1)
 * cursor positions:  ^            ^            ^            ^                  ^
 * 
* Note that the {@link #remove} and {@link #set(Object)} methods are * not defined in terms of the cursor position; they are defined to * operate on the last element returned by a call to {@link #next} or * {@link #previous()}. * *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @see Collection * @see List * @see Iterator * @see Enumeration * @see List#listIterator() * @since 1.2 */ public interface ListIterator extends Iterator { // Query Operations /** * Returns {@code true} if this list iterator has more elements when * traversing the list in the forward direction. (In other words, * returns {@code true} if {@link #next} would return an element rather * than throwing an exception.) * * @return {@code true} if the list iterator has more elements when * traversing the list in the forward direction */ boolean hasNext(); /** * Returns the next element in the list and advances the cursor position. * This method may be called repeatedly to iterate through the list, * or intermixed with calls to {@link #previous} to go back and forth. * (Note that alternating calls to {@code next} and {@code previous} * will return the same element repeatedly.) * * @return the next element in the list * @throws NoSuchElementException if the iteration has no next element */ E next(); /** * Returns {@code true} if this list iterator has more elements when * traversing the list in the reverse direction. (In other words, * returns {@code true} if {@link #previous} would return an element * rather than throwing an exception.) * * @return {@code true} if the list iterator has more elements when * traversing the list in the reverse direction */ boolean hasPrevious(); /** * Returns the previous element in the list and moves the cursor * position backwards. This method may be called repeatedly to * iterate through the list backwards, or intermixed with calls to * {@link #next} to go back and forth. (Note that alternating calls * to {@code next} and {@code previous} will return the same * element repeatedly.) * * @return the previous element in the list * @throws NoSuchElementException if the iteration has no previous * element */ E previous(); /** * Returns the index of the element that would be returned by a * subsequent call to {@link #next}. (Returns list size if the list * iterator is at the end of the list.) * * @return the index of the element that would be returned by a * subsequent call to {@code next}, or list size if the list * iterator is at the end of the list */ int nextIndex(); /** * Returns the index of the element that would be returned by a * subsequent call to {@link #previous}. (Returns -1 if the list * iterator is at the beginning of the list.) * * @return the index of the element that would be returned by a * subsequent call to {@code previous}, or -1 if the list * iterator is at the beginning of the list */ int previousIndex(); // Modification Operations /** * Removes from the list the last element that was returned by {@link * #next} or {@link #previous} (optional operation). This call can * only be made once per call to {@code next} or {@code previous}. * It can be made only if {@link #add} has not been * called after the last call to {@code next} or {@code previous}. * * @throws UnsupportedOperationException if the {@code remove} * operation is not supported by this list iterator * @throws IllegalStateException if neither {@code next} nor * {@code previous} have been called, or {@code remove} or * {@code add} have been called after the last call to * {@code next} or {@code previous} */ void remove(); /** * Replaces the last element returned by {@link #next} or * {@link #previous} with the specified element (optional operation). * This call can be made only if neither {@link #remove} nor {@link * #add} have been called after the last call to {@code next} or * {@code previous}. * * @param e the element with which to replace the last element returned by * {@code next} or {@code previous} * @throws UnsupportedOperationException if the {@code set} operation * is not supported by this list iterator * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws IllegalArgumentException if some aspect of the specified * element prevents it from being added to this list * @throws IllegalStateException if neither {@code next} nor * {@code previous} have been called, or {@code remove} or * {@code add} have been called after the last call to * {@code next} or {@code previous} */ void set(E e); /** * Inserts the specified element into the list (optional operation). * The element is inserted immediately before the next element that * would be returned by {@link #next}, if any, and after the next * element that would be returned by {@link #previous}, if any. (If the * list contains no elements, the new element becomes the sole element * on the list.) The new element is inserted before the implicit * cursor: a subsequent call to {@code next} would be unaffected, and a * subsequent call to {@code previous} would return the new element. * (This call increases by one the value that would be returned by a * call to {@code nextIndex} or {@code previousIndex}.) * * @param e the element to insert * @throws UnsupportedOperationException if the {@code add} method is * not supported by this list iterator * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws IllegalArgumentException if some aspect of this element * prevents it from being added to this list */ void add(E e); } /* * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * An ordered collection (also known as a sequence). The user of this * interface has precise control over where in the list each element is * inserted. The user can access elements by their integer index (position in * the list), and search for elements in the list.

* * Unlike sets, lists typically allow duplicate elements. More formally, * lists typically allow pairs of elements e1 and e2 * such that e1.equals(e2), and they typically allow multiple * null elements if they allow null elements at all. It is not inconceivable * that someone might wish to implement a list that prohibits duplicates, by * throwing runtime exceptions when the user attempts to insert them, but we * expect this usage to be rare.

* * The List interface places additional stipulations, beyond those * specified in the Collection interface, on the contracts of the * iterator, add, remove, equals, and * hashCode methods. Declarations for other inherited methods are * also included here for convenience.

* * The List interface provides four methods for positional (indexed) * access to list elements. Lists (like Java arrays) are zero based. Note * that these operations may execute in time proportional to the index value * for some implementations (the LinkedList class, for * example). Thus, iterating over the elements in a list is typically * preferable to indexing through it if the caller does not know the * implementation.

* * The List interface provides a special iterator, called a * ListIterator, that allows element insertion and replacement, and * bidirectional access in addition to the normal operations that the * Iterator interface provides. A method is provided to obtain a * list iterator that starts at a specified position in the list.

* * The List interface provides two methods to search for a specified * object. From a performance standpoint, these methods should be used with * caution. In many implementations they will perform costly linear * searches.

* * The List interface provides two methods to efficiently insert and * remove multiple elements at an arbitrary point in the list.

* * Note: While it is permissible for lists to contain themselves as elements, * extreme caution is advised: the equals and hashCode * methods are no longer well defined on such a list. * *

Some list implementations have restrictions on the elements that * they may contain. For example, some implementations prohibit null elements, * and some have restrictions on the types of their elements. Attempting to * add an ineligible element throws an unchecked exception, typically * NullPointerException or ClassCastException. Attempting * to query the presence of an ineligible element may throw an exception, * or it may simply return false; some implementations will exhibit the former * behavior and some will exhibit the latter. More generally, attempting an * operation on an ineligible element whose completion would not result in * the insertion of an ineligible element into the list may throw an * exception or it may succeed, at the option of the implementation. * Such exceptions are marked as "optional" in the specification for this * interface. * *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Collection * @see Set * @see ArrayList * @see LinkedList * @see Vector * @see Arrays#asList(Object[]) * @see Collections#nCopies(int, Object) * @see Collections#EMPTY_LIST * @see AbstractList * @see AbstractSequentialList * @since 1.2 */ public interface List extends Collection { // Query Operations /** * Returns the number of elements in this list. If this list contains * more than Integer.MAX_VALUE elements, returns * Integer.MAX_VALUE. * * @return the number of elements in this list */ int size(); /** * Returns true if this list contains no elements. * * @return true if this list contains no elements */ boolean isEmpty(); /** * Returns true if this list contains the specified element. * More formally, returns true if and only if this list contains * at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this list is to be tested * @return true if this list contains the specified element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) */ boolean contains(Object o); /** * Returns an iterator over the elements in this list in proper sequence. * * @return an iterator over the elements in this list in proper sequence */ Iterator iterator(); // Modification Operations /** * Appends the specified element to the end of this list (optional * operation). * *

Lists that support this operation may place limitations on what * elements may be added to this list. In particular, some * lists will refuse to add null elements, and others will impose * restrictions on the type of elements that may be added. List * classes should clearly specify in their documentation any restrictions * on what elements may be added. * * @param e element to be appended to this list * @return true (as specified by {@link Collection#add}) * @throws UnsupportedOperationException if the add operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and this * list does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this list */ boolean add(E e); /** * Removes the first occurrence of the specified element from this list, * if it is present (optional operation). If this list does not contain * the element, it is unchanged. More formally, removes the element with * the lowest index i such that * (o==null ? get(i)==null : o.equals(get(i))) * (if such an element exists). Returns true if this list * contained the specified element (or equivalently, if this list changed * as a result of the call). * * @param o element to be removed from this list, if present * @return true if this list contained the specified element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) * @throws UnsupportedOperationException if the remove operation * is not supported by this list */ boolean remove(Object o); // Bulk Modification Operations /** * Returns true if this list contains all of the elements of the * specified collection. * * @param c collection to be checked for containment in this list * @return true if this list contains all of the elements of the * specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this * list (optional) * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null * elements (optional), or if the specified collection is null * @see #contains(Object) */ boolean containsAll(Collection c); /** * Appends all of the elements in the specified collection to the end of * this list, in the order that they are returned by the specified * collection's iterator (optional operation). The behavior of this * operation is undefined if the specified collection is modified while * the operation is in progress. (Note that this will occur if the * specified collection is this list, and it's nonempty.) * * @param c collection containing elements to be added to this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the addAll operation * is not supported by this list * @throws ClassCastException if the class of an element of the specified * collection prevents it from being added to this list * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null * elements, or if the specified collection is null * @throws IllegalArgumentException if some property of an element of the * specified collection prevents it from being added to this list * @see #add(Object) */ boolean addAll(Collection c); /** * Inserts all of the elements in the specified collection into this * list at the specified position (optional operation). Shifts the * element currently at that position (if any) and any subsequent * elements to the right (increases their indices). The new elements * will appear in this list in the order that they are returned by the * specified collection's iterator. The behavior of this operation is * undefined if the specified collection is modified while the * operation is in progress. (Note that this will occur if the specified * collection is this list, and it's nonempty.) * * @param index index at which to insert the first element from the * specified collection * @param c collection containing elements to be added to this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the addAll operation * is not supported by this list * @throws ClassCastException if the class of an element of the specified * collection prevents it from being added to this list * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null * elements, or if the specified collection is null * @throws IllegalArgumentException if some property of an element of the * specified collection prevents it from being added to this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index > size()) */ boolean addAll(int index, Collection c); /** * Removes from this list all of its elements that are contained in the * specified collection (optional operation). * * @param c collection containing elements to be removed from this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the removeAll operation * is not supported by this list * @throws ClassCastException if the class of an element of this list * is incompatible with the specified collection (optional) * @throws NullPointerException if this list contains a null element and the * specified collection does not permit null elements (optional), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean removeAll(Collection c); /** * Retains only the elements in this list that are contained in the * specified collection (optional operation). In other words, removes * from this list all of its elements that are not contained in the * specified collection. * * @param c collection containing elements to be retained in this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the retainAll operation * is not supported by this list * @throws ClassCastException if the class of an element of this list * is incompatible with the specified collection (optional) * @throws NullPointerException if this list contains a null element and the * specified collection does not permit null elements (optional), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean retainAll(Collection c); /** * Removes all of the elements from this list (optional operation). * The list will be empty after this call returns. * * @throws UnsupportedOperationException if the clear operation * is not supported by this list */ void clear(); // Comparison and hashing /** * Compares the specified object with this list for equality. Returns * true if and only if the specified object is also a list, both * lists have the same size, and all corresponding pairs of elements in * the two lists are equal. (Two elements e1 and * e2 are equal if (e1==null ? e2==null : * e1.equals(e2)).) In other words, two lists are defined to be * equal if they contain the same elements in the same order. This * definition ensures that the equals method works properly across * different implementations of the List interface. * * @param o the object to be compared for equality with this list * @return true if the specified object is equal to this list */ boolean equals(Object o); /** * Returns the hash code value for this list. The hash code of a list * is defined to be the result of the following calculation: *

     *  int hashCode = 1;
     *  for (E e : list)
     *      hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
     * 
* This ensures that list1.equals(list2) implies that * list1.hashCode()==list2.hashCode() for any two lists, * list1 and list2, as required by the general * contract of {@link Object#hashCode}. * * @return the hash code value for this list * @see Object#equals(Object) * @see #equals(Object) */ int hashCode(); // Positional Access Operations /** * Returns the element at the specified position in this list. * * @param index index of the element to return * @return the element at the specified position in this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index >= size()) */ E get(int index); /** * Replaces the element at the specified position in this list with the * specified element (optional operation). * * @param index index of the element to replace * @param element element to be stored at the specified position * @return the element previously at the specified position * @throws UnsupportedOperationException if the set operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and * this list does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index >= size()) */ E set(int index, E element); /** * Inserts the specified element at the specified position in this list * (optional operation). Shifts the element currently at that position * (if any) and any subsequent elements to the right (adds one to their * indices). * * @param index index at which the specified element is to be inserted * @param element element to be inserted * @throws UnsupportedOperationException if the add operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and * this list does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index > size()) */ void add(int index, E element); /** * Removes the element at the specified position in this list (optional * operation). Shifts any subsequent elements to the left (subtracts one * from their indices). Returns the element that was removed from the * list. * * @param index the index of the element to be removed * @return the element previously at the specified position * @throws UnsupportedOperationException if the remove operation * is not supported by this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index >= size()) */ E remove(int index); // Search Operations /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the lowest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the first occurrence of the specified element in * this list, or -1 if this list does not contain the element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) */ int indexOf(Object o); /** * Returns the index of the last occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the highest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the last occurrence of the specified element in * this list, or -1 if this list does not contain the element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) */ int lastIndexOf(Object o); // List Iterators /** * Returns a list iterator over the elements in this list (in proper * sequence). * * @return a list iterator over the elements in this list (in proper * sequence) */ ListIterator listIterator(); /** * Returns a list iterator over the elements in this list (in proper * sequence), starting at the specified position in the list. * The specified index indicates the first element that would be * returned by an initial call to {@link ListIterator#next next}. * An initial call to {@link ListIterator#previous previous} would * return the element with the specified index minus one. * * @param index index of the first element to be returned from the * list iterator (by a call to {@link ListIterator#next next}) * @return a list iterator over the elements in this list (in proper * sequence), starting at the specified position in the list * @throws IndexOutOfBoundsException if the index is out of range * ({@code index < 0 || index > size()}) */ ListIterator listIterator(int index); // View /** * Returns a view of the portion of this list between the specified * fromIndex, inclusive, and toIndex, exclusive. (If * fromIndex and toIndex are equal, the returned list is * empty.) The returned list is backed by this list, so non-structural * changes in the returned list are reflected in this list, and vice-versa. * The returned list supports all of the optional list operations supported * by this list.

* * This method eliminates the need for explicit range operations (of * the sort that commonly exist for arrays). Any operation that expects * a list can be used as a range operation by passing a subList view * instead of a whole list. For example, the following idiom * removes a range of elements from a list: *

     *      list.subList(from, to).clear();
     * 
* Similar idioms may be constructed for indexOf and * lastIndexOf, and all of the algorithms in the * Collections class can be applied to a subList.

* * The semantics of the list returned by this method become undefined if * the backing list (i.e., this list) is structurally modified in * any way other than via the returned list. (Structural modifications are * those that change the size of this list, or otherwise perturb it in such * a fashion that iterations in progress may yield incorrect results.) * * @param fromIndex low endpoint (inclusive) of the subList * @param toIndex high endpoint (exclusive) of the subList * @return a view of the specified range within this list * @throws IndexOutOfBoundsException for an illegal endpoint index value * (fromIndex < 0 || toIndex > size || * fromIndex > toIndex) */ List subList(int fromIndex, int toIndex); } /* * Copyright 1994-1998 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Thrown by the nextElement method of an * Enumeration to indicate that there are no more * elements in the enumeration. * * @author unascribed * @see java.util.Enumeration * @see java.util.Enumeration#nextElement() * @since JDK1.0 */ public class NoSuchElementException extends RuntimeException { /** * Constructs a NoSuchElementException with null * as its error message string. */ public NoSuchElementException() { super(); } /** * Constructs a NoSuchElementException, saving a reference * to the error message string s for later retrieval by the * getMessage method. * * @param s the detail message. */ public NoSuchElementException(String s) { super(s); } } /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ /* * This file is available under and governed by the GNU General Public * License version 2 only, as published by the Free Software Foundation. * However, the following notice accompanied the original version of this * file: * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at * http://creativecommons.org/licenses/publicdomain */ package javaUtilEx; /** * A collection designed for holding elements prior to processing. * Besides basic {@link java.util.Collection Collection} operations, * queues provide additional insertion, extraction, and inspection * operations. Each of these methods exists in two forms: one throws * an exception if the operation fails, the other returns a special * value (either null or false, depending on the * operation). The latter form of the insert operation is designed * specifically for use with capacity-restricted Queue * implementations; in most implementations, insert operations cannot * fail. * *

* * * * * * * * * * * * * * * * * * * * * *
Throws exceptionReturns special value
Insert{@link #add add(e)}{@link #offer offer(e)}
Remove{@link #remove remove()}{@link #poll poll()}
Examine{@link #element element()}{@link #peek peek()}
* *

Queues typically, but do not necessarily, order elements in a * FIFO (first-in-first-out) manner. Among the exceptions are * priority queues, which order elements according to a supplied * comparator, or the elements' natural ordering, and LIFO queues (or * stacks) which order the elements LIFO (last-in-first-out). * Whatever the ordering used, the head of the queue is that * element which would be removed by a call to {@link #remove() } or * {@link #poll()}. In a FIFO queue, all new elements are inserted at * the tail of the queue. Other kinds of queues may use * different placement rules. Every Queue implementation * must specify its ordering properties. * *

The {@link #offer offer} method inserts an element if possible, * otherwise returning false. This differs from the {@link * java.util.Collection#add Collection.add} method, which can fail to * add an element only by throwing an unchecked exception. The * offer method is designed for use when failure is a normal, * rather than exceptional occurrence, for example, in fixed-capacity * (or "bounded") queues. * *

The {@link #remove()} and {@link #poll()} methods remove and * return the head of the queue. * Exactly which element is removed from the queue is a * function of the queue's ordering policy, which differs from * implementation to implementation. The remove() and * poll() methods differ only in their behavior when the * queue is empty: the remove() method throws an exception, * while the poll() method returns null. * *

The {@link #element()} and {@link #peek()} methods return, but do * not remove, the head of the queue. * *

The Queue interface does not define the blocking queue * methods, which are common in concurrent programming. These methods, * which wait for elements to appear or for space to become available, are * defined in the {@link java.util.concurrent.BlockingQueue} interface, which * extends this interface. * *

Queue implementations generally do not allow insertion * of null elements, although some implementations, such as * {@link LinkedList}, do not prohibit insertion of null. * Even in the implementations that permit it, null should * not be inserted into a Queue, as null is also * used as a special return value by the poll method to * indicate that the queue contains no elements. * *

Queue implementations generally do not define * element-based versions of methods equals and * hashCode but instead inherit the identity based versions * from class Object, because element-based equality is not * always well-defined for queues with the same elements but different * ordering properties. * * *

This interface is a member of the * * Java Collections Framework. * * @see java.util.Collection * @see LinkedList * @see PriorityQueue * @see java.util.concurrent.LinkedBlockingQueue * @see java.util.concurrent.BlockingQueue * @see java.util.concurrent.ArrayBlockingQueue * @see java.util.concurrent.LinkedBlockingQueue * @see java.util.concurrent.PriorityBlockingQueue * @since 1.5 * @author Doug Lea * @param the type of elements held in this collection */ public interface Queue extends Collection { /** * Inserts the specified element into this queue if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and throwing an IllegalStateException * if no space is currently available. * * @param e the element to add * @return true (as specified by {@link Collection#add}) * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this queue * @throws NullPointerException if the specified element is null and * this queue does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this queue */ boolean add(E e); /** * Inserts the specified element into this queue if it is possible to do * so immediately without violating capacity restrictions. * When using a capacity-restricted queue, this method is generally * preferable to {@link #add}, which can fail to insert an element only * by throwing an exception. * * @param e the element to add * @return true if the element was added to this queue, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this queue * @throws NullPointerException if the specified element is null and * this queue does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this queue */ boolean offer(E e); /** * Retrieves and removes the head of this queue. This method differs * from {@link #poll poll} only in that it throws an exception if this * queue is empty. * * @return the head of this queue * @throws NoSuchElementException if this queue is empty */ E remove(); /** * Retrieves and removes the head of this queue, * or returns null if this queue is empty. * * @return the head of this queue, or null if this queue is empty */ E poll(); /** * Retrieves, but does not remove, the head of this queue. This method * differs from {@link #peek peek} only in that it throws an exception * if this queue is empty. * * @return the head of this queue * @throws NoSuchElementException if this queue is empty */ E element(); /** * Retrieves, but does not remove, the head of this queue, * or returns null if this queue is empty. * * @return the head of this queue, or null if this queue is empty */ E peek(); } /* * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Marker interface used by List implementations to indicate that * they support fast (generally constant time) random access. The primary * purpose of this interface is to allow generic algorithms to alter their * behavior to provide good performance when applied to either random or * sequential access lists. * *

The best algorithms for manipulating random access lists (such as * ArrayList) can produce quadratic behavior when applied to * sequential access lists (such as LinkedList). Generic list * algorithms are encouraged to check whether the given list is an * instanceof this interface before applying an algorithm that would * provide poor performance if it were applied to a sequential access list, * and to alter their behavior if necessary to guarantee acceptable * performance. * *

It is recognized that the distinction between random and sequential * access is often fuzzy. For example, some List implementations * provide asymptotically linear access times if they get huge, but constant * access times in practice. Such a List implementation * should generally implement this interface. As a rule of thumb, a * List implementation should implement this interface if, * for typical instances of the class, this loop: *

 *     for (int i=0, n=list.size(); i < n; i++)
 *         list.get(i);
 * 
* runs faster than this loop: *
 *     for (Iterator i=list.iterator(); i.hasNext(); )
 *         i.next();
 * 
* *

This interface is a member of the * * Java Collections Framework. * * @since 1.4 */ public interface RandomAccess { } package javaUtilEx; public class Random { static String[] args; static int index = 0; public static int random() { String string = args[index]; index++; return string.length(); } } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Thrown to indicate that the requested operation is not supported.

* * This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @since 1.2 */ public class UnsupportedOperationException extends RuntimeException { /** * Constructs an UnsupportedOperationException with no detail message. */ public UnsupportedOperationException() { } /** * Constructs an UnsupportedOperationException with the specified * detail message. * * @param message the detail message */ public UnsupportedOperationException(String message) { super(message); } /** * Constructs a new exception with the specified detail message and * cause. * *

Note that the detail message associated with cause is * not automatically incorporated in this exception's detail * message. * * @param message the detail message (which is saved for later retrieval * by the {@link Throwable#getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value * is permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public UnsupportedOperationException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of cause). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public UnsupportedOperationException(Throwable cause) { super(cause); } static final long serialVersionUID = -1242599979055084673L; } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This class provides a skeletal implementation of the Collection * interface, to minimize the effort required to implement this interface.

* * To implement an unmodifiable collection, the programmer needs only to * extend this class and provide implementations for the iterator and * size methods. (The iterator returned by the iterator * method must implement hasNext and next.)

* * To implement a modifiable collection, the programmer must additionally * override this class's add method (which otherwise throws an * UnsupportedOperationException), and the iterator returned by the * iterator method must additionally implement its remove * method.

* * The programmer should generally provide a void (no argument) and * Collection constructor, as per the recommendation in the * Collection interface specification.

* * The documentation for each non-abstract method in this class describes its * implementation in detail. Each of these methods may be overridden if * the collection being implemented admits a more efficient implementation.

* * This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Collection * @since 1.2 */ public abstract class AbstractCollection implements Collection { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ protected AbstractCollection() { } // Query Operations /** * Returns an iterator over the elements contained in this collection. * * @return an iterator over the elements contained in this collection */ public abstract Iterator iterator(); public abstract int size(); /** * {@inheritDoc} * *

This implementation returns size() == 0. */ public boolean isEmpty() { return size() == 0; } /** * {@inheritDoc} * *

This implementation iterates over the elements in the collection, * checking each element in turn for equality with the specified element. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public boolean contains(Object o) { Iterator e = iterator(); if (o==null) { while (e.hasNext()) if (e.next()==null) return true; } else { while (e.hasNext()) if (o.equals(e.next())) return true; } return false; } // Modification Operations /** * {@inheritDoc} * *

This implementation always throws an * UnsupportedOperationException. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public boolean add(E e) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

This implementation iterates over the collection looking for the * specified element. If it finds the element, it removes the element * from the collection using the iterator's remove method. * *

Note that this implementation throws an * UnsupportedOperationException if the iterator returned by this * collection's iterator method does not implement the remove * method and this collection contains the specified object. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public boolean remove(Object o) { Iterator e = iterator(); if (o==null) { while (e.hasNext()) { if (e.next()==null) { e.remove(); return true; } } } else { while (e.hasNext()) { if (o.equals(e.next())) { e.remove(); return true; } } } return false; } // Bulk Operations /** * {@inheritDoc} * *

This implementation iterates over the specified collection, * checking each element returned by the iterator in turn to see * if it's contained in this collection. If all elements are so * contained true is returned, otherwise false. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @see #contains(Object) */ public boolean containsAll(Collection c) { Iterator e = c.iterator(); while (e.hasNext()) if (!contains(e.next())) return false; return true; } /** * {@inheritDoc} * *

This implementation iterates over the specified collection, and adds * each object returned by the iterator to this collection, in turn. * *

Note that this implementation will throw an * UnsupportedOperationException unless add is * overridden (assuming the specified collection is non-empty). * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} * * @see #add(Object) */ public boolean addAll(Collection c) { boolean modified = false; Iterator e = c.iterator(); while (e.hasNext()) { if (add(e.next())) modified = true; } return modified; } /** * {@inheritDoc} * *

This implementation iterates over this collection, checking each * element returned by the iterator in turn to see if it's contained * in the specified collection. If it's so contained, it's removed from * this collection with the iterator's remove method. * *

Note that this implementation will throw an * UnsupportedOperationException if the iterator returned by the * iterator method does not implement the remove method * and this collection contains one or more elements in common with the * specified collection. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * * @see #remove(Object) * @see #contains(Object) */ public boolean removeAll(Collection c) { boolean modified = false; Iterator e = iterator(); while (e.hasNext()) { if (c.contains(e.next())) { e.remove(); modified = true; } } return modified; } /** * {@inheritDoc} * *

This implementation iterates over this collection, checking each * element returned by the iterator in turn to see if it's contained * in the specified collection. If it's not so contained, it's removed * from this collection with the iterator's remove method. * *

Note that this implementation will throw an * UnsupportedOperationException if the iterator returned by the * iterator method does not implement the remove method * and this collection contains one or more elements not present in the * specified collection. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * * @see #remove(Object) * @see #contains(Object) */ public boolean retainAll(Collection c) { boolean modified = false; Iterator e = iterator(); while (e.hasNext()) { if (!c.contains(e.next())) { e.remove(); modified = true; } } return modified; } /** * {@inheritDoc} * *

This implementation iterates over this collection, removing each * element using the Iterator.remove operation. Most * implementations will probably choose to override this method for * efficiency. * *

Note that this implementation will throw an * UnsupportedOperationException if the iterator returned by this * collection's iterator method does not implement the * remove method and this collection is non-empty. * * @throws UnsupportedOperationException {@inheritDoc} */ public void clear() { Iterator e = iterator(); while (e.hasNext()) { e.next(); e.remove(); } } // String conversion /** * Returns a string representation of this collection. The string * representation consists of a list of the collection's elements in the * order they are returned by its iterator, enclosed in square brackets * ("[]"). Adjacent elements are separated by the characters * ", " (comma and space). Elements are converted to strings as * by {@link String#valueOf(Object)}. * * @return a string representation of this collection */ public String toString() { Iterator i = iterator(); if (! i.hasNext()) return "[]"; String sb = ""; sb = sb + "["; for (;;) { E e = i.next(); sb = sb + (e == this ? "(this Collection)" : e); if (! i.hasNext()) { sb = sb + "]"; return sb; } sb = sb + ", "; } } } /* * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This class provides a skeletal implementation of the {@link List} * interface to minimize the effort required to implement this interface * backed by a "random access" data store (such as an array). For sequential * access data (such as a linked list), {@link AbstractSequentialList} should * be used in preference to this class. * *

To implement an unmodifiable list, the programmer needs only to extend * this class and provide implementations for the {@link #get(int)} and * {@link List#size() size()} methods. * *

To implement a modifiable list, the programmer must additionally * override the {@link #set(int, Object) set(int, E)} method (which otherwise * throws an {@code UnsupportedOperationException}). If the list is * variable-size the programmer must additionally override the * {@link #add(int, Object) add(int, E)} and {@link #remove(int)} methods. * *

The programmer should generally provide a void (no argument) and collection * constructor, as per the recommendation in the {@link Collection} interface * specification. * *

Unlike the other abstract collection implementations, the programmer does * not have to provide an iterator implementation; the iterator and * list iterator are implemented by this class, on top of the "random access" * methods: * {@link #get(int)}, * {@link #set(int, Object) set(int, E)}, * {@link #add(int, Object) add(int, E)} and * {@link #remove(int)}. * *

The documentation for each non-abstract method in this class describes its * implementation in detail. Each of these methods may be overridden if the * collection being implemented admits a more efficient implementation. * *

This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @since 1.2 */ public abstract class AbstractList extends AbstractCollection implements List { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ protected AbstractList() { } /** * Appends the specified element to the end of this list (optional * operation). * *

Lists that support this operation may place limitations on what * elements may be added to this list. In particular, some * lists will refuse to add null elements, and others will impose * restrictions on the type of elements that may be added. List * classes should clearly specify in their documentation any restrictions * on what elements may be added. * *

This implementation calls {@code add(size(), e)}. * *

Note that this implementation throws an * {@code UnsupportedOperationException} unless * {@link #add(int, Object) add(int, E)} is overridden. * * @param e element to be appended to this list * @return {@code true} (as specified by {@link Collection#add}) * @throws UnsupportedOperationException if the {@code add} operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and this * list does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this list */ public boolean add(E e) { add(size(), e); return true; } /** * {@inheritDoc} * * @throws IndexOutOfBoundsException {@inheritDoc} */ abstract public E get(int index); /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public void add(int index, E element) { throw new UnsupportedOperationException(); } /** * {@inheritDoc} * *

This implementation always throws an * {@code UnsupportedOperationException}. * * @throws UnsupportedOperationException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { throw new UnsupportedOperationException(); } // Search Operations /** * {@inheritDoc} * *

This implementation first gets a list iterator (with * {@code listIterator()}). Then, it iterates over the list until the * specified element is found or the end of the list is reached. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public int indexOf(Object o) { ListIterator e = listIterator(); if (o==null) { while (e.hasNext()) if (e.next()==null) return e.previousIndex(); } else { while (e.hasNext()) if (o.equals(e.next())) return e.previousIndex(); } return -1; } /** * {@inheritDoc} * *

This implementation first gets a list iterator that points to the end * of the list (with {@code listIterator(size())}). Then, it iterates * backwards over the list until the specified element is found, or the * beginning of the list is reached. * * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ public int lastIndexOf(Object o) { ListIterator e = listIterator(size()); if (o==null) { while (e.hasPrevious()) if (e.previous()==null) return e.nextIndex(); } else { while (e.hasPrevious()) if (o.equals(e.previous())) return e.nextIndex(); } return -1; } // Bulk Operations /** * Removes all of the elements from this list (optional operation). * The list will be empty after this call returns. * *

This implementation calls {@code removeRange(0, size())}. * *

Note that this implementation throws an * {@code UnsupportedOperationException} unless {@code remove(int * index)} or {@code removeRange(int fromIndex, int toIndex)} is * overridden. * * @throws UnsupportedOperationException if the {@code clear} operation * is not supported by this list */ public void clear() { removeRange(0, size()); } /** * {@inheritDoc} * *

This implementation gets an iterator over the specified collection * and iterates over it, inserting the elements obtained from the * iterator into this list at the appropriate position, one at a time, * using {@code add(int, E)}. * Many implementations will override this method for efficiency. * *

Note that this implementation throws an * {@code UnsupportedOperationException} unless * {@link #add(int, Object) add(int, E)} is overridden. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public boolean addAll(int index, Collection c) { rangeCheckForAdd(index); boolean modified = false; Iterator e = c.iterator(); while (e.hasNext()) { add(index++, e.next()); modified = true; } return modified; } // Iterators /** * Returns an iterator over the elements in this list in proper sequence. * *

This implementation returns a straightforward implementation of the * iterator interface, relying on the backing list's {@code size()}, * {@code get(int)}, and {@code remove(int)} methods. * *

Note that the iterator returned by this method will throw an * {@link UnsupportedOperationException} in response to its * {@code remove} method unless the list's {@code remove(int)} method is * overridden. * *

This implementation can be made to throw runtime exceptions in the * face of concurrent modification, as described in the specification * for the (protected) {@link #modCount} field. * * @return an iterator over the elements in this list in proper sequence */ public Iterator iterator() { return new Itr(); } /** * {@inheritDoc} * *

This implementation returns {@code listIterator(0)}. * * @see #listIterator(int) */ public ListIterator listIterator() { return listIterator(0); } /** * {@inheritDoc} * *

This implementation returns a straightforward implementation of the * {@code ListIterator} interface that extends the implementation of the * {@code Iterator} interface returned by the {@code iterator()} method. * The {@code ListIterator} implementation relies on the backing list's * {@code get(int)}, {@code set(int, E)}, {@code add(int, E)} * and {@code remove(int)} methods. * *

Note that the list iterator returned by this implementation will * throw an {@link UnsupportedOperationException} in response to its * {@code remove}, {@code set} and {@code add} methods unless the * list's {@code remove(int)}, {@code set(int, E)}, and * {@code add(int, E)} methods are overridden. * *

This implementation can be made to throw runtime exceptions in the * face of concurrent modification, as described in the specification for * the (protected) {@link #modCount} field. * * @throws IndexOutOfBoundsException {@inheritDoc} */ public ListIterator listIterator(final int index) { rangeCheckForAdd(index); return new ListItr(index); } private class Itr implements Iterator { /** * Index of element to be returned by subsequent call to next. */ int cursor = 0; /** * Index of element returned by most recent call to next or * previous. Reset to -1 if this element is deleted by a call * to remove. */ int lastRet = -1; /** * The modCount value that the iterator believes that the backing * List should have. If this expectation is violated, the iterator * has detected concurrent modification. */ int expectedModCount = modCount; public boolean hasNext() { return cursor != size(); } public E next() { checkForComodification(); try { int i = cursor; E next = get(i); lastRet = i; cursor = i + 1; return next; } catch (IndexOutOfBoundsException e) { checkForComodification(); throw new NoSuchElementException(); } } public void remove() { if (lastRet < 0) throw new IllegalStateException(); checkForComodification(); try { AbstractList.this.remove(lastRet); if (lastRet < cursor) cursor--; lastRet = -1; expectedModCount = modCount; } catch (IndexOutOfBoundsException e) { throw new ConcurrentModificationException(); } } final void checkForComodification() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); } } private class ListItr extends Itr implements ListIterator { ListItr(int index) { cursor = index; } public boolean hasPrevious() { return cursor != 0; } public E previous() { checkForComodification(); try { int i = cursor - 1; E previous = get(i); lastRet = cursor = i; return previous; } catch (IndexOutOfBoundsException e) { checkForComodification(); throw new NoSuchElementException(); } } public int nextIndex() { return cursor; } public int previousIndex() { return cursor-1; } public void set(E e) { if (lastRet < 0) throw new IllegalStateException(); checkForComodification(); try { AbstractList.this.set(lastRet, e); expectedModCount = modCount; } catch (IndexOutOfBoundsException ex) { throw new ConcurrentModificationException(); } } public void add(E e) { checkForComodification(); try { int i = cursor; AbstractList.this.add(i, e); lastRet = -1; cursor = i + 1; expectedModCount = modCount; } catch (IndexOutOfBoundsException ex) { throw new ConcurrentModificationException(); } } } /** * {@inheritDoc} * *

This implementation returns a list that subclasses * {@code AbstractList}. The subclass stores, in private fields, the * offset of the subList within the backing list, the size of the subList * (which can change over its lifetime), and the expected * {@code modCount} value of the backing list. There are two variants * of the subclass, one of which implements {@code RandomAccess}. * If this list implements {@code RandomAccess} the returned list will * be an instance of the subclass that implements {@code RandomAccess}. * *

The subclass's {@code set(int, E)}, {@code get(int)}, * {@code add(int, E)}, {@code remove(int)}, {@code addAll(int, * Collection)} and {@code removeRange(int, int)} methods all * delegate to the corresponding methods on the backing abstract list, * after bounds-checking the index and adjusting for the offset. The * {@code addAll(Collection c)} method merely returns {@code addAll(size, * c)}. * *

The {@code listIterator(int)} method returns a "wrapper object" * over a list iterator on the backing list, which is created with the * corresponding method on the backing list. The {@code iterator} method * merely returns {@code listIterator()}, and the {@code size} method * merely returns the subclass's {@code size} field. * *

All methods first check to see if the actual {@code modCount} of * the backing list is equal to its expected value, and throw a * {@code ConcurrentModificationException} if it is not. * * @throws IndexOutOfBoundsException if an endpoint index value is out of range * {@code (fromIndex < 0 || toIndex > size)} * @throws IllegalArgumentException if the endpoint indices are out of order * {@code (fromIndex > toIndex)} */ public List subList(int fromIndex, int toIndex) { return (this instanceof RandomAccess ? new RandomAccessSubList(this, fromIndex, toIndex) : new SubList(this, fromIndex, toIndex)); } // Comparison and hashing /** * Compares the specified object with this list for equality. Returns * {@code true} if and only if the specified object is also a list, both * lists have the same size, and all corresponding pairs of elements in * the two lists are equal. (Two elements {@code e1} and * {@code e2} are equal if {@code (e1==null ? e2==null : * e1.equals(e2))}.) In other words, two lists are defined to be * equal if they contain the same elements in the same order.

* * This implementation first checks if the specified object is this * list. If so, it returns {@code true}; if not, it checks if the * specified object is a list. If not, it returns {@code false}; if so, * it iterates over both lists, comparing corresponding pairs of elements. * If any comparison returns {@code false}, this method returns * {@code false}. If either iterator runs out of elements before the * other it returns {@code false} (as the lists are of unequal length); * otherwise it returns {@code true} when the iterations complete. * * @param o the object to be compared for equality with this list * @return {@code true} if the specified object is equal to this list */ public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof List)) return false; ListIterator e1 = listIterator(); ListIterator e2 = ((List) o).listIterator(); while(e1.hasNext() && e2.hasNext()) { E o1 = e1.next(); Object o2 = e2.next(); if (!(o1==null ? o2==null : o1.equals(o2))) return false; } return !(e1.hasNext() || e2.hasNext()); } /** * Returns the hash code value for this list. * *

This implementation uses exactly the code that is used to define the * list hash function in the documentation for the {@link List#hashCode} * method. * * @return the hash code value for this list */ public int hashCode() { int hashCode = 1; Iterator it = this.iterator(); while (it.hasNext()) { E e = it.next(); hashCode = 31*hashCode + (e==null ? 0 : e.hashCode()); } return hashCode; } /** * Removes from this list all of the elements whose index is between * {@code fromIndex}, inclusive, and {@code toIndex}, exclusive. * Shifts any succeeding elements to the left (reduces their index). * This call shortens the list by {@code (toIndex - fromIndex)} elements. * (If {@code toIndex==fromIndex}, this operation has no effect.) * *

This method is called by the {@code clear} operation on this list * and its subLists. Overriding this method to take advantage of * the internals of the list implementation can substantially * improve the performance of the {@code clear} operation on this list * and its subLists. * *

This implementation gets a list iterator positioned before * {@code fromIndex}, and repeatedly calls {@code ListIterator.next} * followed by {@code ListIterator.remove} until the entire range has * been removed. Note: if {@code ListIterator.remove} requires linear * time, this implementation requires quadratic time. * * @param fromIndex index of first element to be removed * @param toIndex index after last element to be removed */ protected void removeRange(int fromIndex, int toIndex) { ListIterator it = listIterator(fromIndex); for (int i=0, n=toIndex-fromIndex; istructurally modified. * Structural modifications are those that change the size of the * list, or otherwise perturb it in such a fashion that iterations in * progress may yield incorrect results. * *

This field is used by the iterator and list iterator implementation * returned by the {@code iterator} and {@code listIterator} methods. * If the value of this field changes unexpectedly, the iterator (or list * iterator) will throw a {@code ConcurrentModificationException} in * response to the {@code next}, {@code remove}, {@code previous}, * {@code set} or {@code add} operations. This provides * fail-fast behavior, rather than non-deterministic behavior in * the face of concurrent modification during iteration. * *

Use of this field by subclasses is optional. If a subclass * wishes to provide fail-fast iterators (and list iterators), then it * merely has to increment this field in its {@code add(int, E)} and * {@code remove(int)} methods (and any other methods that it overrides * that result in structural modifications to the list). A single call to * {@code add(int, E)} or {@code remove(int)} must add no more than * one to this field, or the iterators (and list iterators) will throw * bogus {@code ConcurrentModificationExceptions}. If an implementation * does not wish to provide fail-fast iterators, this field may be * ignored. */ protected transient int modCount = 0; private void rangeCheckForAdd(int index) { if (index < 0 || index > size()) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); } private String outOfBoundsMsg(int index) { return ""; } } class SubList extends AbstractList { private final AbstractList l; private final int offset; private int size; SubList(AbstractList list, int fromIndex, int toIndex) { if (fromIndex < 0) throw new IndexOutOfBoundsException(); if (toIndex > list.size()) throw new IndexOutOfBoundsException(); if (fromIndex > toIndex) throw new IllegalArgumentException(); l = list; offset = fromIndex; size = toIndex - fromIndex; this.modCount = l.modCount; } public E set(int index, E element) { rangeCheck(index); checkForComodification(); return l.set(index+offset, element); } public E get(int index) { rangeCheck(index); checkForComodification(); return l.get(index+offset); } public int size() { checkForComodification(); return size; } public void add(int index, E element) { rangeCheckForAdd(index); checkForComodification(); l.add(index+offset, element); this.modCount = l.modCount; size++; } public E remove(int index) { rangeCheck(index); checkForComodification(); E result = l.remove(index+offset); this.modCount = l.modCount; size--; return result; } protected void removeRange(int fromIndex, int toIndex) { checkForComodification(); l.removeRange(fromIndex+offset, toIndex+offset); this.modCount = l.modCount; size -= (toIndex-fromIndex); } public boolean addAll(Collection c) { return addAll(size, c); } public boolean addAll(int index, Collection c) { rangeCheckForAdd(index); int cSize = c.size(); if (cSize==0) return false; checkForComodification(); l.addAll(offset+index, c); this.modCount = l.modCount; size += cSize; return true; } public Iterator iterator() { return listIterator(); } public ListIterator listIterator(final int index) { checkForComodification(); rangeCheckForAdd(index); return new ListIterator() { private final ListIterator i = l.listIterator(index+offset); public boolean hasNext() { return nextIndex() < size; } public E next() { if (hasNext()) return i.next(); else throw new NoSuchElementException(); } public boolean hasPrevious() { return previousIndex() >= 0; } public E previous() { if (hasPrevious()) return i.previous(); else throw new NoSuchElementException(); } public int nextIndex() { return i.nextIndex() - offset; } public int previousIndex() { return i.previousIndex() - offset; } public void remove() { i.remove(); SubList.this.modCount = l.modCount; size--; } public void set(E e) { i.set(e); } public void add(E e) { i.add(e); SubList.this.modCount = l.modCount; size++; } }; } public List subList(int fromIndex, int toIndex) { return new SubList(this, fromIndex, toIndex); } private void rangeCheck(int index) { if (index < 0 || index >= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); } private void rangeCheckForAdd(int index) { if (index < 0 || index > size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index)); } private String outOfBoundsMsg(int index) { return ""; } private void checkForComodification() { if (this.modCount != l.modCount) throw new ConcurrentModificationException(); } } class RandomAccessSubList extends SubList implements RandomAccess { RandomAccessSubList(AbstractList list, int fromIndex, int toIndex) { super(list, fromIndex, toIndex); } public List subList(int fromIndex, int toIndex) { return new RandomAccessSubList(this, fromIndex, toIndex); } } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This class provides a skeletal implementation of the List * interface to minimize the effort required to implement this interface * backed by a "sequential access" data store (such as a linked list). For * random access data (such as an array), AbstractList should be used * in preference to this class.

* * This class is the opposite of the AbstractList class in the sense * that it implements the "random access" methods (get(int index), * set(int index, E element), add(int index, E element) and * remove(int index)) on top of the list's list iterator, instead of * the other way around.

* * To implement a list the programmer needs only to extend this class and * provide implementations for the listIterator and size * methods. For an unmodifiable list, the programmer need only implement the * list iterator's hasNext, next, hasPrevious, * previous and index methods.

* * For a modifiable list the programmer should additionally implement the list * iterator's set method. For a variable-size list the programmer * should additionally implement the list iterator's remove and * add methods.

* * The programmer should generally provide a void (no argument) and collection * constructor, as per the recommendation in the Collection interface * specification.

* * This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Collection * @see List * @see AbstractList * @see AbstractCollection * @since 1.2 */ public abstract class AbstractSequentialList extends AbstractList { /** * Sole constructor. (For invocation by subclass constructors, typically * implicit.) */ protected AbstractSequentialList() { } /** * Returns the element at the specified position in this list. * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it gets * the element using ListIterator.next and returns it. * * @throws IndexOutOfBoundsException {@inheritDoc} */ public E get(int index) { try { return listIterator(index).next(); } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } /** * Replaces the element at the specified position in this list with the * specified element (optional operation). * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it gets * the current element using ListIterator.next and replaces it * with ListIterator.set. * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator does not * implement the set operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { try { ListIterator e = listIterator(index); E oldVal = e.next(); e.set(element); return oldVal; } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } /** * Inserts the specified element at the specified position in this list * (optional operation). Shifts the element currently at that position * (if any) and any subsequent elements to the right (adds one to their * indices). * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it * inserts the specified element with ListIterator.add. * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator does not * implement the add operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public void add(int index, E element) { try { listIterator(index).add(element); } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } /** * Removes the element at the specified position in this list (optional * operation). Shifts any subsequent elements to the left (subtracts one * from their indices). Returns the element that was removed from the * list. * *

This implementation first gets a list iterator pointing to the * indexed element (with listIterator(index)). Then, it removes * the element with ListIterator.remove. * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator does not * implement the remove operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { try { ListIterator e = listIterator(index); E outCast = e.next(); e.remove(); return outCast; } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } // Bulk Operations /** * Inserts all of the elements in the specified collection into this * list at the specified position (optional operation). Shifts the * element currently at that position (if any) and any subsequent * elements to the right (increases their indices). The new elements * will appear in this list in the order that they are returned by the * specified collection's iterator. The behavior of this operation is * undefined if the specified collection is modified while the * operation is in progress. (Note that this will occur if the specified * collection is this list, and it's nonempty.) * *

This implementation gets an iterator over the specified collection and * a list iterator over this list pointing to the indexed element (with * listIterator(index)). Then, it iterates over the specified * collection, inserting the elements obtained from the iterator into this * list, one at a time, using ListIterator.add followed by * ListIterator.next (to skip over the added element). * *

Note that this implementation will throw an * UnsupportedOperationException if the list iterator returned by * the listIterator method does not implement the add * operation. * * @throws UnsupportedOperationException {@inheritDoc} * @throws ClassCastException {@inheritDoc} * @throws NullPointerException {@inheritDoc} * @throws IllegalArgumentException {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public boolean addAll(int index, Collection c) { try { boolean modified = false; ListIterator e1 = listIterator(index); Iterator e2 = c.iterator(); while (e2.hasNext()) { e1.add(e2.next()); modified = true; } return modified; } catch (NoSuchElementException exc) { throw new IndexOutOfBoundsException(); } } // Iterators /** * Returns an iterator over the elements in this list (in proper * sequence).

* * This implementation merely returns a list iterator over the list. * * @return an iterator over the elements in this list (in proper sequence) */ public Iterator iterator() { return listIterator(); } /** * Returns a list iterator over the elements in this list (in proper * sequence). * * @param index index of first element to be returned from the list * iterator (by a call to the next method) * @return a list iterator over the elements in this list (in proper * sequence) * @throws IndexOutOfBoundsException {@inheritDoc} */ public abstract ListIterator listIterator(int index); } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * The root interface in the collection hierarchy. A collection * represents a group of objects, known as its elements. Some * collections allow duplicate elements and others do not. Some are ordered * and others unordered. The JDK does not provide any direct * implementations of this interface: it provides implementations of more * specific subinterfaces like Set and List. This interface * is typically used to pass collections around and manipulate them where * maximum generality is desired. * *

Bags or multisets (unordered collections that may contain * duplicate elements) should implement this interface directly. * *

All general-purpose Collection implementation classes (which * typically implement Collection indirectly through one of its * subinterfaces) should provide two "standard" constructors: a void (no * arguments) constructor, which creates an empty collection, and a * constructor with a single argument of type Collection, which * creates a new collection with the same elements as its argument. In * effect, the latter constructor allows the user to copy any collection, * producing an equivalent collection of the desired implementation type. * There is no way to enforce this convention (as interfaces cannot contain * constructors) but all of the general-purpose Collection * implementations in the Java platform libraries comply. * *

The "destructive" methods contained in this interface, that is, the * methods that modify the collection on which they operate, are specified to * throw UnsupportedOperationException if this collection does not * support the operation. If this is the case, these methods may, but are not * required to, throw an UnsupportedOperationException if the * invocation would have no effect on the collection. For example, invoking * the {@link #addAll(Collection)} method on an unmodifiable collection may, * but is not required to, throw the exception if the collection to be added * is empty. * *

Some collection implementations have restrictions on the elements that * they may contain. For example, some implementations prohibit null elements, * and some have restrictions on the types of their elements. Attempting to * add an ineligible element throws an unchecked exception, typically * NullPointerException or ClassCastException. Attempting * to query the presence of an ineligible element may throw an exception, * or it may simply return false; some implementations will exhibit the former * behavior and some will exhibit the latter. More generally, attempting an * operation on an ineligible element whose completion would not result in * the insertion of an ineligible element into the collection may throw an * exception or it may succeed, at the option of the implementation. * Such exceptions are marked as "optional" in the specification for this * interface. * *

It is up to each collection to determine its own synchronization * policy. In the absence of a stronger guarantee by the * implementation, undefined behavior may result from the invocation * of any method on a collection that is being mutated by another * thread; this includes direct invocations, passing the collection to * a method that might perform invocations, and using an existing * iterator to examine the collection. * *

Many methods in Collections Framework interfaces are defined in * terms of the {@link Object#equals(Object) equals} method. For example, * the specification for the {@link #contains(Object) contains(Object o)} * method says: "returns true if and only if this collection * contains at least one element e such that * (o==null ? e==null : o.equals(e))." This specification should * not be construed to imply that invoking Collection.contains * with a non-null argument o will cause o.equals(e) to be * invoked for any element e. Implementations are free to implement * optimizations whereby the equals invocation is avoided, for * example, by first comparing the hash codes of the two elements. (The * {@link Object#hashCode()} specification guarantees that two objects with * unequal hash codes cannot be equal.) More generally, implementations of * the various Collections Framework interfaces are free to take advantage of * the specified behavior of underlying {@link Object} methods wherever the * implementor deems it appropriate. * *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Set * @see List * @see Map * @see SortedSet * @see SortedMap * @see HashSet * @see TreeSet * @see ArrayList * @see LinkedList * @see Vector * @see Collections * @see Arrays * @see AbstractCollection * @since 1.2 */ public interface Collection { // Query Operations /** * Returns the number of elements in this collection. If this collection * contains more than Integer.MAX_VALUE elements, returns * Integer.MAX_VALUE. * * @return the number of elements in this collection */ int size(); /** * Returns true if this collection contains no elements. * * @return true if this collection contains no elements */ boolean isEmpty(); /** * Returns true if this collection contains the specified element. * More formally, returns true if and only if this collection * contains at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this collection is to be tested * @return true if this collection contains the specified * element * @throws ClassCastException if the type of the specified element * is incompatible with this collection (optional) * @throws NullPointerException if the specified element is null and this * collection does not permit null elements (optional) */ boolean contains(Object o); /** * Returns an iterator over the elements in this collection. There are no * guarantees concerning the order in which the elements are returned * (unless this collection is an instance of some class that provides a * guarantee). * * @return an Iterator over the elements in this collection */ Iterator iterator(); // Modification Operations /** * Ensures that this collection contains the specified element (optional * operation). Returns true if this collection changed as a * result of the call. (Returns false if this collection does * not permit duplicates and already contains the specified element.)

* * Collections that support this operation may place limitations on what * elements may be added to this collection. In particular, some * collections will refuse to add null elements, and others will * impose restrictions on the type of elements that may be added. * Collection classes should clearly specify in their documentation any * restrictions on what elements may be added.

* * If a collection refuses to add a particular element for any reason * other than that it already contains the element, it must throw * an exception (rather than returning false). This preserves * the invariant that a collection always contains the specified element * after this call returns. * * @param e element whose presence in this collection is to be ensured * @return true if this collection changed as a result of the * call * @throws UnsupportedOperationException if the add operation * is not supported by this collection * @throws ClassCastException if the class of the specified element * prevents it from being added to this collection * @throws NullPointerException if the specified element is null and this * collection does not permit null elements * @throws IllegalArgumentException if some property of the element * prevents it from being added to this collection * @throws IllegalStateException if the element cannot be added at this * time due to insertion restrictions */ boolean add(E e); /** * Removes a single instance of the specified element from this * collection, if it is present (optional operation). More formally, * removes an element e such that * (o==null ? e==null : o.equals(e)), if * this collection contains one or more such elements. Returns * true if this collection contained the specified element (or * equivalently, if this collection changed as a result of the call). * * @param o element to be removed from this collection, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the type of the specified element * is incompatible with this collection (optional) * @throws NullPointerException if the specified element is null and this * collection does not permit null elements (optional) * @throws UnsupportedOperationException if the remove operation * is not supported by this collection */ boolean remove(Object o); // Bulk Operations /** * Returns true if this collection contains all of the elements * in the specified collection. * * @param c collection to be checked for containment in this collection * @return true if this collection contains all of the elements * in the specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this * collection (optional) * @throws NullPointerException if the specified collection contains one * or more null elements and this collection does not permit null * elements (optional), or if the specified collection is null * @see #contains(Object) */ boolean containsAll(Collection c); /** * Adds all of the elements in the specified collection to this collection * (optional operation). The behavior of this operation is undefined if * the specified collection is modified while the operation is in progress. * (This implies that the behavior of this call is undefined if the * specified collection is this collection, and this collection is * nonempty.) * * @param c collection containing elements to be added to this collection * @return true if this collection changed as a result of the call * @throws UnsupportedOperationException if the addAll operation * is not supported by this collection * @throws ClassCastException if the class of an element of the specified * collection prevents it from being added to this collection * @throws NullPointerException if the specified collection contains a * null element and this collection does not permit null elements, * or if the specified collection is null * @throws IllegalArgumentException if some property of an element of the * specified collection prevents it from being added to this * collection * @throws IllegalStateException if not all the elements can be added at * this time due to insertion restrictions * @see #add(Object) */ boolean addAll(Collection c); /** * Removes all of this collection's elements that are also contained in the * specified collection (optional operation). After this call returns, * this collection will contain no elements in common with the specified * collection. * * @param c collection containing elements to be removed from this collection * @return true if this collection changed as a result of the * call * @throws UnsupportedOperationException if the removeAll method * is not supported by this collection * @throws ClassCastException if the types of one or more elements * in this collection are incompatible with the specified * collection (optional) * @throws NullPointerException if this collection contains one or more * null elements and the specified collection does not support * null elements (optional), or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean removeAll(Collection c); /** * Retains only the elements in this collection that are contained in the * specified collection (optional operation). In other words, removes from * this collection all of its elements that are not contained in the * specified collection. * * @param c collection containing elements to be retained in this collection * @return true if this collection changed as a result of the call * @throws UnsupportedOperationException if the retainAll operation * is not supported by this collection * @throws ClassCastException if the types of one or more elements * in this collection are incompatible with the specified * collection (optional) * @throws NullPointerException if this collection contains one or more * null elements and the specified collection does not permit null * elements (optional), or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean retainAll(Collection c); /** * Removes all of the elements from this collection (optional operation). * The collection will be empty after this method returns. * * @throws UnsupportedOperationException if the clear operation * is not supported by this collection */ void clear(); // Comparison and hashing /** * Compares the specified object with this collection for equality.

* * While the Collection interface adds no stipulations to the * general contract for the Object.equals, programmers who * implement the Collection interface "directly" (in other words, * create a class that is a Collection but is not a Set * or a List) must exercise care if they choose to override the * Object.equals. It is not necessary to do so, and the simplest * course of action is to rely on Object's implementation, but * the implementor may wish to implement a "value comparison" in place of * the default "reference comparison." (The List and * Set interfaces mandate such value comparisons.)

* * The general contract for the Object.equals method states that * equals must be symmetric (in other words, a.equals(b) if and * only if b.equals(a)). The contracts for List.equals * and Set.equals state that lists are only equal to other lists, * and sets to other sets. Thus, a custom equals method for a * collection class that implements neither the List nor * Set interface must return false when this collection * is compared to any list or set. (By the same logic, it is not possible * to write a class that correctly implements both the Set and * List interfaces.) * * @param o object to be compared for equality with this collection * @return true if the specified object is equal to this * collection * * @see Object#equals(Object) * @see Set#equals(Object) * @see List#equals(Object) */ boolean equals(Object o); /** * Returns the hash code value for this collection. While the * Collection interface adds no stipulations to the general * contract for the Object.hashCode method, programmers should * take note that any class that overrides the Object.equals * method must also override the Object.hashCode method in order * to satisfy the general contract for the Object.hashCodemethod. * In particular, c1.equals(c2) implies that * c1.hashCode()==c2.hashCode(). * * @return the hash code value for this collection * * @see Object#hashCode() * @see Object#equals(Object) */ int hashCode(); } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * This exception may be thrown by methods that have detected concurrent * modification of an object when such modification is not permissible. *

* For example, it is not generally permissible for one thread to modify a Collection * while another thread is iterating over it. In general, the results of the * iteration are undefined under these circumstances. Some Iterator * implementations (including those of all the general purpose collection implementations * provided by the JRE) may choose to throw this exception if this behavior is * detected. Iterators that do this are known as fail-fast iterators, * as they fail quickly and cleanly, rather that risking arbitrary, * non-deterministic behavior at an undetermined time in the future. *

* Note that this exception does not always indicate that an object has * been concurrently modified by a different thread. If a single * thread issues a sequence of method invocations that violates the * contract of an object, the object may throw this exception. For * example, if a thread modifies a collection directly while it is * iterating over the collection with a fail-fast iterator, the iterator * will throw this exception. * *

Note that fail-fast behavior cannot be guaranteed as it is, generally * speaking, impossible to make any hard guarantees in the presence of * unsynchronized concurrent modification. Fail-fast operations * throw ConcurrentModificationException on a best-effort basis. * Therefore, it would be wrong to write a program that depended on this * exception for its correctness: ConcurrentModificationException * should be used only to detect bugs. * * @author Josh Bloch * @see Collection * @see Iterator * @see ListIterator * @see Vector * @see LinkedList * @see HashSet * @see Hashtable * @see TreeMap * @see AbstractList * @since 1.2 */ public class ConcurrentModificationException extends RuntimeException { /** * Constructs a ConcurrentModificationException with no * detail message. */ public ConcurrentModificationException() { } /** * Constructs a ConcurrentModificationException with the * specified detail message. * * @param message the detail message pertaining to this exception. */ public ConcurrentModificationException(String message) { super(message); } } /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ /* * This file is available under and governed by the GNU General Public * License version 2 only, as published by the Free Software Foundation. * However, the following notice accompanied the original version of this * file: * * Written by Doug Lea and Josh Bloch with assistance from members of * JCP JSR-166 Expert Group and released to the public domain, as explained * at http://creativecommons.org/licenses/publicdomain */ package javaUtilEx; /** * A linear collection that supports element insertion and removal at * both ends. The name deque is short for "double ended queue" * and is usually pronounced "deck". Most Deque * implementations place no fixed limits on the number of elements * they may contain, but this interface supports capacity-restricted * deques as well as those with no fixed size limit. * *

This interface defines methods to access the elements at both * ends of the deque. Methods are provided to insert, remove, and * examine the element. Each of these methods exists in two forms: * one throws an exception if the operation fails, the other returns a * special value (either null or false, depending on * the operation). The latter form of the insert operation is * designed specifically for use with capacity-restricted * Deque implementations; in most implementations, insert * operations cannot fail. * *

The twelve methods described above are summarized in the * following table: * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
First Element (Head) Last Element (Tail)
Throws exceptionSpecial valueThrows exceptionSpecial value
Insert{@link #addFirst addFirst(e)}{@link #offerFirst offerFirst(e)}{@link #addLast addLast(e)}{@link #offerLast offerLast(e)}
Remove{@link #removeFirst removeFirst()}{@link #pollFirst pollFirst()}{@link #removeLast removeLast()}{@link #pollLast pollLast()}
Examine{@link #getFirst getFirst()}{@link #peekFirst peekFirst()}{@link #getLast getLast()}{@link #peekLast peekLast()}
* *

This interface extends the {@link Queue} interface. When a deque is * used as a queue, FIFO (First-In-First-Out) behavior results. Elements are * added at the end of the deque and removed from the beginning. The methods * inherited from the Queue interface are precisely equivalent to * Deque methods as indicated in the following table: * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Queue Method Equivalent Deque Method
{@link java.util.Queue#add add(e)}{@link #addLast addLast(e)}
{@link java.util.Queue#offer offer(e)}{@link #offerLast offerLast(e)}
{@link java.util.Queue#remove remove()}{@link #removeFirst removeFirst()}
{@link java.util.Queue#poll poll()}{@link #pollFirst pollFirst()}
{@link java.util.Queue#element element()}{@link #getFirst getFirst()}
{@link java.util.Queue#peek peek()}{@link #peek peekFirst()}
* *

Deques can also be used as LIFO (Last-In-First-Out) stacks. This * interface should be used in preference to the legacy {@link Stack} class. * When a deque is used as a stack, elements are pushed and popped from the * beginning of the deque. Stack methods are precisely equivalent to * Deque methods as indicated in the table below: * *

* * * * * * * * * * * * * * * * * *
Stack Method Equivalent Deque Method
{@link #push push(e)}{@link #addFirst addFirst(e)}
{@link #pop pop()}{@link #removeFirst removeFirst()}
{@link #peek peek()}{@link #peekFirst peekFirst()}
* *

Note that the {@link #peek peek} method works equally well when * a deque is used as a queue or a stack; in either case, elements are * drawn from the beginning of the deque. * *

This interface provides two methods to remove interior * elements, {@link #removeFirstOccurrence removeFirstOccurrence} and * {@link #removeLastOccurrence removeLastOccurrence}. * *

Unlike the {@link List} interface, this interface does not * provide support for indexed access to elements. * *

While Deque implementations are not strictly required * to prohibit the insertion of null elements, they are strongly * encouraged to do so. Users of any Deque implementations * that do allow null elements are strongly encouraged not to * take advantage of the ability to insert nulls. This is so because * null is used as a special return value by various methods * to indicated that the deque is empty. * *

Deque implementations generally do not define * element-based versions of the equals and hashCode * methods, but instead inherit the identity-based versions from class * Object. * *

This interface is a member of the Java Collections * Framework. * * @author Doug Lea * @author Josh Bloch * @since 1.6 * @param the type of elements held in this collection */ public interface Deque extends Queue { /** * Inserts the specified element at the front of this deque if it is * possible to do so immediately without violating capacity restrictions. * When using a capacity-restricted deque, it is generally preferable to * use method {@link #offerFirst}. * * @param e the element to add * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ void addFirst(E e); /** * Inserts the specified element at the end of this deque if it is * possible to do so immediately without violating capacity restrictions. * When using a capacity-restricted deque, it is generally preferable to * use method {@link #offerLast}. * *

This method is equivalent to {@link #add}. * * @param e the element to add * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ void addLast(E e); /** * Inserts the specified element at the front of this deque unless it would * violate capacity restrictions. When using a capacity-restricted deque, * this method is generally preferable to the {@link #addFirst} method, * which can fail to insert an element only by throwing an exception. * * @param e the element to add * @return true if the element was added to this deque, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean offerFirst(E e); /** * Inserts the specified element at the end of this deque unless it would * violate capacity restrictions. When using a capacity-restricted deque, * this method is generally preferable to the {@link #addLast} method, * which can fail to insert an element only by throwing an exception. * * @param e the element to add * @return true if the element was added to this deque, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean offerLast(E e); /** * Retrieves and removes the first element of this deque. This method * differs from {@link #pollFirst pollFirst} only in that it throws an * exception if this deque is empty. * * @return the head of this deque * @throws NoSuchElementException if this deque is empty */ E removeFirst(); /** * Retrieves and removes the last element of this deque. This method * differs from {@link #pollLast pollLast} only in that it throws an * exception if this deque is empty. * * @return the tail of this deque * @throws NoSuchElementException if this deque is empty */ E removeLast(); /** * Retrieves and removes the first element of this deque, * or returns null if this deque is empty. * * @return the head of this deque, or null if this deque is empty */ E pollFirst(); /** * Retrieves and removes the last element of this deque, * or returns null if this deque is empty. * * @return the tail of this deque, or null if this deque is empty */ E pollLast(); /** * Retrieves, but does not remove, the first element of this deque. * * This method differs from {@link #peekFirst peekFirst} only in that it * throws an exception if this deque is empty. * * @return the head of this deque * @throws NoSuchElementException if this deque is empty */ E getFirst(); /** * Retrieves, but does not remove, the last element of this deque. * This method differs from {@link #peekLast peekLast} only in that it * throws an exception if this deque is empty. * * @return the tail of this deque * @throws NoSuchElementException if this deque is empty */ E getLast(); /** * Retrieves, but does not remove, the first element of this deque, * or returns null if this deque is empty. * * @return the head of this deque, or null if this deque is empty */ E peekFirst(); /** * Retrieves, but does not remove, the last element of this deque, * or returns null if this deque is empty. * * @return the tail of this deque, or null if this deque is empty */ E peekLast(); /** * Removes the first occurrence of the specified element from this deque. * If the deque does not contain the element, it is unchanged. * More formally, removes the first element e such that * (o==null ? e==null : o.equals(e)) * (if such an element exists). * Returns true if this deque contained the specified element * (or equivalently, if this deque changed as a result of the call). * * @param o element to be removed from this deque, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean removeFirstOccurrence(Object o); /** * Removes the last occurrence of the specified element from this deque. * If the deque does not contain the element, it is unchanged. * More formally, removes the last element e such that * (o==null ? e==null : o.equals(e)) * (if such an element exists). * Returns true if this deque contained the specified element * (or equivalently, if this deque changed as a result of the call). * * @param o element to be removed from this deque, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean removeLastOccurrence(Object o); // *** Queue methods *** /** * Inserts the specified element into the queue represented by this deque * (in other words, at the tail of this deque) if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and throwing an * IllegalStateException if no space is currently available. * When using a capacity-restricted deque, it is generally preferable to * use {@link #offer(Object) offer}. * *

This method is equivalent to {@link #addLast}. * * @param e the element to add * @return true (as specified by {@link Collection#add}) * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean add(E e); /** * Inserts the specified element into the queue represented by this deque * (in other words, at the tail of this deque) if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and false if no space is currently * available. When using a capacity-restricted deque, this method is * generally preferable to the {@link #add} method, which can fail to * insert an element only by throwing an exception. * *

This method is equivalent to {@link #offerLast}. * * @param e the element to add * @return true if the element was added to this deque, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ boolean offer(E e); /** * Retrieves and removes the head of the queue represented by this deque * (in other words, the first element of this deque). * This method differs from {@link #poll poll} only in that it throws an * exception if this deque is empty. * *

This method is equivalent to {@link #removeFirst()}. * * @return the head of the queue represented by this deque * @throws NoSuchElementException if this deque is empty */ E remove(); /** * Retrieves and removes the head of the queue represented by this deque * (in other words, the first element of this deque), or returns * null if this deque is empty. * *

This method is equivalent to {@link #pollFirst()}. * * @return the first element of this deque, or null if * this deque is empty */ E poll(); /** * Retrieves, but does not remove, the head of the queue represented by * this deque (in other words, the first element of this deque). * This method differs from {@link #peek peek} only in that it throws an * exception if this deque is empty. * *

This method is equivalent to {@link #getFirst()}. * * @return the head of the queue represented by this deque * @throws NoSuchElementException if this deque is empty */ E element(); /** * Retrieves, but does not remove, the head of the queue represented by * this deque (in other words, the first element of this deque), or * returns null if this deque is empty. * *

This method is equivalent to {@link #peekFirst()}. * * @return the head of the queue represented by this deque, or * null if this deque is empty */ E peek(); // *** Stack methods *** /** * Pushes an element onto the stack represented by this deque (in other * words, at the head of this deque) if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and throwing an * IllegalStateException if no space is currently available. * *

This method is equivalent to {@link #addFirst}. * * @param e the element to push * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this deque * @throws NullPointerException if the specified element is null and this * deque does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this deque */ void push(E e); /** * Pops an element from the stack represented by this deque. In other * words, removes and returns the first element of this deque. * *

This method is equivalent to {@link #removeFirst()}. * * @return the element at the front of this deque (which is the top * of the stack represented by this deque) * @throws NoSuchElementException if this deque is empty */ E pop(); // *** Collection methods *** /** * Removes the first occurrence of the specified element from this deque. * If the deque does not contain the element, it is unchanged. * More formally, removes the first element e such that * (o==null ? e==null : o.equals(e)) * (if such an element exists). * Returns true if this deque contained the specified element * (or equivalently, if this deque changed as a result of the call). * *

This method is equivalent to {@link #removeFirstOccurrence}. * * @param o element to be removed from this deque, if present * @return true if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean remove(Object o); /** * Returns true if this deque contains the specified element. * More formally, returns true if and only if this deque contains * at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this deque is to be tested * @return true if this deque contains the specified element * @throws ClassCastException if the type of the specified element * is incompatible with this deque (optional) * @throws NullPointerException if the specified element is null and this * deque does not permit null elements (optional) */ boolean contains(Object o); /** * Returns the number of elements in this deque. * * @return the number of elements in this deque */ public int size(); /** * Returns an iterator over the elements in this deque in proper sequence. * The elements will be returned in order from first (head) to last (tail). * * @return an iterator over the elements in this deque in proper sequence */ Iterator iterator(); /** * Returns an iterator over the elements in this deque in reverse * sequential order. The elements will be returned in order from * last (tail) to first (head). * * @return an iterator over the elements in this deque in reverse * sequence */ Iterator descendingIterator(); } /* * Copyright 1994-2003 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Thrown to indicate that a method has been passed an illegal or * inappropriate argument. * * @author unascribed * @see java.lang.Thread#setPriority(int) * @since JDK1.0 */ public class IllegalArgumentException extends RuntimeException { /** * Constructs an IllegalArgumentException with no * detail message. */ public IllegalArgumentException() { super(); } /** * Constructs an IllegalArgumentException with the * specified detail message. * * @param s the detail message. */ public IllegalArgumentException(String s) { super(s); } /** * Constructs a new exception with the specified detail message and * cause. * *

Note that the detail message associated with cause is * not automatically incorporated in this exception's detail * message. * * @param message the detail message (which is saved for later retrieval * by the {@link Throwable#getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value * is permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalArgumentException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of cause). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalArgumentException(Throwable cause) { super(cause); } private static final long serialVersionUID = -5365630128856068164L; } /* * Copyright 1996-2003 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Signals that a method has been invoked at an illegal or * inappropriate time. In other words, the Java environment or * Java application is not in an appropriate state for the requested * operation. * * @author Jonni Kanerva * @since JDK1.1 */ public class IllegalStateException extends RuntimeException { /** * Constructs an IllegalStateException with no detail message. * A detail message is a String that describes this particular exception. */ public IllegalStateException() { super(); } /** * Constructs an IllegalStateException with the specified detail * message. A detail message is a String that describes this particular * exception. * * @param s the String that contains a detailed message */ public IllegalStateException(String s) { super(s); } /** * Constructs a new exception with the specified detail message and * cause. * *

Note that the detail message associated with cause is * not automatically incorporated in this exception's detail * message. * * @param message the detail message (which is saved for later retrieval * by the {@link Throwable#getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value * is permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalStateException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of cause). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public IllegalStateException(Throwable cause) { super(cause); } static final long serialVersionUID = -1848914673093119416L; } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * An iterator over a collection. {@code Iterator} takes the place of * {@link Enumeration} in the Java Collections Framework. Iterators * differ from enumerations in two ways: * *

* *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @see Collection * @see ListIterator * @see Iterable * @since 1.2 */ public interface Iterator { /** * Returns {@code true} if the iteration has more elements. * (In other words, returns {@code true} if {@link #next} would * return an element rather than throwing an exception.) * * @return {@code true} if the iteration has more elements */ boolean hasNext(); /** * Returns the next element in the iteration. * * @return the next element in the iteration * @throws NoSuchElementException if the iteration has no more elements */ E next(); /** * Removes from the underlying collection the last element returned * by this iterator (optional operation). This method can be called * only once per call to {@link #next}. The behavior of an iterator * is unspecified if the underlying collection is modified while the * iteration is in progress in any way other than by calling this * method. * * @throws UnsupportedOperationException if the {@code remove} * operation is not supported by this iterator * * @throws IllegalStateException if the {@code next} method has not * yet been called, or the {@code remove} method has already * been called after the last call to the {@code next} * method */ void remove(); } package javaUtilEx; public class juLinkedListCreateRemoveLastOccurrence { public static void main(String[] args) { Random.args = args; LinkedList l = createList(Random.random()); Content c = new Content(Random.random()); if (Random.random() > 42) { c = l.get(Random.random()); } l.removeLastOccurrence(c); } public static LinkedList createList(int n) { LinkedList l = new LinkedList(); while (n > 0) { l.addLast(new Content(Random.random())); n--; } return l; } } final class Content { int val; public Content(int v) { this.val = v; } public int hashCode() { return val^31; } public boolean equals(Object o) { if (o instanceof Content) { return this.val == ((Content) o).val; } return false; } } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Linked list implementation of the List interface. Implements all * optional list operations, and permits all elements (including * null). In addition to implementing the List interface, * the LinkedList class provides uniformly named methods to * get, remove and insert an element at the * beginning and end of the list. These operations allow linked lists to be * used as a stack, {@linkplain Queue queue}, or {@linkplain Deque * double-ended queue}.

* * The class implements the Deque interface, providing * first-in-first-out queue operations for add, * poll, along with other stack and deque operations.

* * All of the operations perform as could be expected for a doubly-linked * list. Operations that index into the list will traverse the list from * the beginning or the end, whichever is closer to the specified index.

* *

Note that this implementation is not synchronized. * If multiple threads access a linked list concurrently, and at least * one of the threads modifies the list structurally, it must be * synchronized externally. (A structural modification is any operation * that adds or deletes one or more elements; merely setting the value of * an element is not a structural modification.) This is typically * accomplished by synchronizing on some object that naturally * encapsulates the list. * * If no such object exists, the list should be "wrapped" using the * {@link Collections#synchronizedList Collections.synchronizedList} * method. This is best done at creation time, to prevent accidental * unsynchronized access to the list:

 *   List list = Collections.synchronizedList(new LinkedList(...));
* *

The iterators returned by this class's iterator and * listIterator methods are fail-fast: if the list is * structurally modified at any time after the iterator is created, in * any way except through the Iterator's own remove or * add methods, the iterator will throw a {@link * ConcurrentModificationException}. Thus, in the face of concurrent * modification, the iterator fails quickly and cleanly, rather than * risking arbitrary, non-deterministic behavior at an undetermined * time in the future. * *

Note that the fail-fast behavior of an iterator cannot be guaranteed * as it is, generally speaking, impossible to make any hard guarantees in the * presence of unsynchronized concurrent modification. Fail-fast iterators * throw ConcurrentModificationException on a best-effort basis. * Therefore, it would be wrong to write a program that depended on this * exception for its correctness: the fail-fast behavior of iterators * should be used only to detect bugs. * *

This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @see List * @see ArrayList * @see Vector * @since 1.2 * @param the type of elements held in this collection */ public class LinkedList extends AbstractSequentialList implements List, Deque { private transient Entry header = new Entry(null, null, null); private transient int size = 0; /** * Constructs an empty list. */ public LinkedList() { header.next = header.previous = header; } /** * Constructs a list containing the elements of the specified * collection, in the order they are returned by the collection's * iterator. * * @param c the collection whose elements are to be placed into this list * @throws NullPointerException if the specified collection is null */ public LinkedList(Collection c) { this(); addAll(c); } /** * Returns the first element in this list. * * @return the first element in this list * @throws NoSuchElementException if this list is empty */ public E getFirst() { if (size==0) throw new NoSuchElementException(); return header.next.element; } /** * Returns the last element in this list. * * @return the last element in this list * @throws NoSuchElementException if this list is empty */ public E getLast() { if (size==0) throw new NoSuchElementException(); return header.previous.element; } /** * Removes and returns the first element from this list. * * @return the first element from this list * @throws NoSuchElementException if this list is empty */ public E removeFirst() { return remove(header.next); } /** * Removes and returns the last element from this list. * * @return the last element from this list * @throws NoSuchElementException if this list is empty */ public E removeLast() { return remove(header.previous); } /** * Inserts the specified element at the beginning of this list. * * @param e the element to add */ public void addFirst(E e) { addBefore(e, header.next); } /** * Appends the specified element to the end of this list. * *

This method is equivalent to {@link #add}. * * @param e the element to add */ public void addLast(E e) { addBefore(e, header); } /** * Returns true if this list contains the specified element. * More formally, returns true if and only if this list contains * at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this list is to be tested * @return true if this list contains the specified element */ public boolean contains(Object o) { return indexOf(o) != -1; } /** * Returns the number of elements in this list. * * @return the number of elements in this list */ public int size() { return size; } /** * Appends the specified element to the end of this list. * *

This method is equivalent to {@link #addLast}. * * @param e element to be appended to this list * @return true (as specified by {@link Collection#add}) */ public boolean add(E e) { addBefore(e, header); return true; } /** * Removes the first occurrence of the specified element from this list, * if it is present. If this list does not contain the element, it is * unchanged. More formally, removes the element with the lowest index * i such that * (o==null ? get(i)==null : o.equals(get(i))) * (if such an element exists). Returns true if this list * contained the specified element (or equivalently, if this list * changed as a result of the call). * * @param o element to be removed from this list, if present * @return true if this list contained the specified element */ public boolean remove(Object o) { if (o==null) { for (Entry e = header.next; e != header; e = e.next) { if (e.element==null) { remove(e); return true; } } } else { for (Entry e = header.next; e != header; e = e.next) { if (o.equals(e.element)) { remove(e); return true; } } } return false; } /** * Removes all of the elements from this list. */ public void clear() { Entry e = header.next; while (e != header) { Entry next = e.next; e.next = e.previous = null; e.element = null; e = next; } header.next = header.previous = header; size = 0; modCount++; } // Positional Access Operations /** * Returns the element at the specified position in this list. * * @param index index of the element to return * @return the element at the specified position in this list * @throws IndexOutOfBoundsException {@inheritDoc} */ public E get(int index) { return entry(index).element; } /** * Replaces the element at the specified position in this list with the * specified element. * * @param index index of the element to replace * @param element element to be stored at the specified position * @return the element previously at the specified position * @throws IndexOutOfBoundsException {@inheritDoc} */ public E set(int index, E element) { Entry e = entry(index); E oldVal = e.element; e.element = element; return oldVal; } /** * Inserts the specified element at the specified position in this list. * Shifts the element currently at that position (if any) and any * subsequent elements to the right (adds one to their indices). * * @param index index at which the specified element is to be inserted * @param element element to be inserted * @throws IndexOutOfBoundsException {@inheritDoc} */ public void add(int index, E element) { addBefore(element, (index==size ? header : entry(index))); } /** * Removes the element at the specified position in this list. Shifts any * subsequent elements to the left (subtracts one from their indices). * Returns the element that was removed from the list. * * @param index the index of the element to be removed * @return the element previously at the specified position * @throws IndexOutOfBoundsException {@inheritDoc} */ public E remove(int index) { return remove(entry(index)); } /** * Returns the indexed entry. */ private Entry entry(int index) { if (index < 0 || index >= size) throw new IndexOutOfBoundsException(); Entry e = header; if (index < (size >> 1)) { for (int i = 0; i <= index; i++) e = e.next; } else { for (int i = size; i > index; i--) e = e.previous; } return e; } // Search Operations /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the lowest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the first occurrence of the specified element in * this list, or -1 if this list does not contain the element */ public int indexOf(Object o) { int index = 0; if (o==null) { for (Entry e = header.next; e != header; e = e.next) { if (e.element==null) return index; index++; } } else { for (Entry e = header.next; e != header; e = e.next) { if (o.equals(e.element)) return index; index++; } } return -1; } /** * Returns the index of the last occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the highest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the last occurrence of the specified element in * this list, or -1 if this list does not contain the element */ public int lastIndexOf(Object o) { int index = size; if (o==null) { for (Entry e = header.previous; e != header; e = e.previous) { index--; if (e.element==null) return index; } } else { for (Entry e = header.previous; e != header; e = e.previous) { index--; if (o.equals(e.element)) return index; } } return -1; } // Queue operations. /** * Retrieves, but does not remove, the head (first element) of this list. * @return the head of this list, or null if this list is empty * @since 1.5 */ public E peek() { if (size==0) return null; return getFirst(); } /** * Retrieves, but does not remove, the head (first element) of this list. * @return the head of this list * @throws NoSuchElementException if this list is empty * @since 1.5 */ public E element() { return getFirst(); } /** * Retrieves and removes the head (first element) of this list * @return the head of this list, or null if this list is empty * @since 1.5 */ public E poll() { if (size==0) return null; return removeFirst(); } /** * Retrieves and removes the head (first element) of this list. * * @return the head of this list * @throws NoSuchElementException if this list is empty * @since 1.5 */ public E remove() { return removeFirst(); } /** * Adds the specified element as the tail (last element) of this list. * * @param e the element to add * @return true (as specified by {@link Queue#offer}) * @since 1.5 */ public boolean offer(E e) { return add(e); } // Deque operations /** * Inserts the specified element at the front of this list. * * @param e the element to insert * @return true (as specified by {@link Deque#offerFirst}) * @since 1.6 */ public boolean offerFirst(E e) { addFirst(e); return true; } /** * Inserts the specified element at the end of this list. * * @param e the element to insert * @return true (as specified by {@link Deque#offerLast}) * @since 1.6 */ public boolean offerLast(E e) { addLast(e); return true; } /** * Retrieves, but does not remove, the first element of this list, * or returns null if this list is empty. * * @return the first element of this list, or null * if this list is empty * @since 1.6 */ public E peekFirst() { if (size==0) return null; return getFirst(); } /** * Retrieves, but does not remove, the last element of this list, * or returns null if this list is empty. * * @return the last element of this list, or null * if this list is empty * @since 1.6 */ public E peekLast() { if (size==0) return null; return getLast(); } /** * Retrieves and removes the first element of this list, * or returns null if this list is empty. * * @return the first element of this list, or null if * this list is empty * @since 1.6 */ public E pollFirst() { if (size==0) return null; return removeFirst(); } /** * Retrieves and removes the last element of this list, * or returns null if this list is empty. * * @return the last element of this list, or null if * this list is empty * @since 1.6 */ public E pollLast() { if (size==0) return null; return removeLast(); } /** * Pushes an element onto the stack represented by this list. In other * words, inserts the element at the front of this list. * *

This method is equivalent to {@link #addFirst}. * * @param e the element to push * @since 1.6 */ public void push(E e) { addFirst(e); } /** * Pops an element from the stack represented by this list. In other * words, removes and returns the first element of this list. * *

This method is equivalent to {@link #removeFirst()}. * * @return the element at the front of this list (which is the top * of the stack represented by this list) * @throws NoSuchElementException if this list is empty * @since 1.6 */ public E pop() { return removeFirst(); } /** * Removes the first occurrence of the specified element in this * list (when traversing the list from head to tail). If the list * does not contain the element, it is unchanged. * * @param o element to be removed from this list, if present * @return true if the list contained the specified element * @since 1.6 */ public boolean removeFirstOccurrence(Object o) { return remove(o); } /** * Removes the last occurrence of the specified element in this * list (when traversing the list from head to tail). If the list * does not contain the element, it is unchanged. * * @param o element to be removed from this list, if present * @return true if the list contained the specified element * @since 1.6 */ public boolean removeLastOccurrence(Object o) { if (o==null) { for (Entry e = header.previous; e != header; e = e.previous) { if (e.element==null) { remove(e); return true; } } } else { for (Entry e = header.previous; e != header; e = e.previous) { if (o.equals(e.element)) { remove(e); return true; } } } return false; } /** * Returns a list-iterator of the elements in this list (in proper * sequence), starting at the specified position in the list. * Obeys the general contract of List.listIterator(int).

* * The list-iterator is fail-fast: if the list is structurally * modified at any time after the Iterator is created, in any way except * through the list-iterator's own remove or add * methods, the list-iterator will throw a * ConcurrentModificationException. Thus, in the face of * concurrent modification, the iterator fails quickly and cleanly, rather * than risking arbitrary, non-deterministic behavior at an undetermined * time in the future. * * @param index index of the first element to be returned from the * list-iterator (by a call to next) * @return a ListIterator of the elements in this list (in proper * sequence), starting at the specified position in the list * @throws IndexOutOfBoundsException {@inheritDoc} * @see List#listIterator(int) */ public ListIterator listIterator(int index) { return new ListItr(index); } private class ListItr implements ListIterator { private Entry lastReturned = header; private Entry next; private int nextIndex; private int expectedModCount = modCount; ListItr(int index) { if (index < 0 || index > size) throw new IndexOutOfBoundsException(); if (index < (size >> 1)) { next = header.next; for (nextIndex=0; nextIndexindex; nextIndex--) next = next.previous; } } public boolean hasNext() { return nextIndex != size; } public E next() { checkForComodification(); if (nextIndex == size) throw new NoSuchElementException(); lastReturned = next; next = next.next; nextIndex++; return lastReturned.element; } public boolean hasPrevious() { return nextIndex != 0; } public E previous() { if (nextIndex == 0) throw new NoSuchElementException(); lastReturned = next = next.previous; nextIndex--; checkForComodification(); return lastReturned.element; } public int nextIndex() { return nextIndex; } public int previousIndex() { return nextIndex-1; } public void remove() { checkForComodification(); Entry lastNext = lastReturned.next; try { LinkedList.this.remove(lastReturned); } catch (NoSuchElementException e) { throw new IllegalStateException(); } if (next==lastReturned) next = lastNext; else nextIndex--; lastReturned = header; expectedModCount++; } public void set(E e) { if (lastReturned == header) throw new IllegalStateException(); checkForComodification(); lastReturned.element = e; } public void add(E e) { checkForComodification(); lastReturned = header; addBefore(e, next); nextIndex++; expectedModCount++; } final void checkForComodification() { if (modCount != expectedModCount) throw new ConcurrentModificationException(); } } private static class Entry { E element; Entry next; Entry previous; Entry(E element, Entry next, Entry previous) { this.element = element; this.next = next; this.previous = previous; } } private Entry addBefore(E e, Entry entry) { Entry newEntry = new Entry(e, entry, entry.previous); newEntry.previous.next = newEntry; newEntry.next.previous = newEntry; size++; modCount++; return newEntry; } private E remove(Entry e) { if (e == header) throw new NoSuchElementException(); E result = e.element; e.previous.next = e.next; e.next.previous = e.previous; e.next = e.previous = null; e.element = null; size--; modCount++; return result; } /** * @since 1.6 */ public Iterator descendingIterator() { return new DescendingIterator(); } /** Adapter to provide descending iterators via ListItr.previous */ private class DescendingIterator implements Iterator { final ListItr itr = new ListItr(size()); public boolean hasNext() { return itr.hasPrevious(); } public E next() { return itr.previous(); } public void remove() { itr.remove(); } } /** * Returns an array containing all of the elements in this list * in proper sequence (from first to last element). * *

The returned array will be "safe" in that no references to it are * maintained by this list. (In other words, this method must allocate * a new array). The caller is thus free to modify the returned array. * *

This method acts as bridge between array-based and collection-based * APIs. * * @return an array containing all of the elements in this list * in proper sequence */ public Object[] toArray() { Object[] result = new Object[size]; int i = 0; for (Entry e = header.next; e != header; e = e.next) result[i++] = e.element; return result; } private static final long serialVersionUID = 876323262645176354L; } /* * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * An iterator for lists that allows the programmer * to traverse the list in either direction, modify * the list during iteration, and obtain the iterator's * current position in the list. A {@code ListIterator} * has no current element; its cursor position always * lies between the element that would be returned by a call * to {@code previous()} and the element that would be * returned by a call to {@code next()}. * An iterator for a list of length {@code n} has {@code n+1} possible * cursor positions, as illustrated by the carets ({@code ^}) below: *

 *                      Element(0)   Element(1)   Element(2)   ... Element(n-1)
 * cursor positions:  ^            ^            ^            ^                  ^
 * 
* Note that the {@link #remove} and {@link #set(Object)} methods are * not defined in terms of the cursor position; they are defined to * operate on the last element returned by a call to {@link #next} or * {@link #previous()}. * *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @see Collection * @see List * @see Iterator * @see Enumeration * @see List#listIterator() * @since 1.2 */ public interface ListIterator extends Iterator { // Query Operations /** * Returns {@code true} if this list iterator has more elements when * traversing the list in the forward direction. (In other words, * returns {@code true} if {@link #next} would return an element rather * than throwing an exception.) * * @return {@code true} if the list iterator has more elements when * traversing the list in the forward direction */ boolean hasNext(); /** * Returns the next element in the list and advances the cursor position. * This method may be called repeatedly to iterate through the list, * or intermixed with calls to {@link #previous} to go back and forth. * (Note that alternating calls to {@code next} and {@code previous} * will return the same element repeatedly.) * * @return the next element in the list * @throws NoSuchElementException if the iteration has no next element */ E next(); /** * Returns {@code true} if this list iterator has more elements when * traversing the list in the reverse direction. (In other words, * returns {@code true} if {@link #previous} would return an element * rather than throwing an exception.) * * @return {@code true} if the list iterator has more elements when * traversing the list in the reverse direction */ boolean hasPrevious(); /** * Returns the previous element in the list and moves the cursor * position backwards. This method may be called repeatedly to * iterate through the list backwards, or intermixed with calls to * {@link #next} to go back and forth. (Note that alternating calls * to {@code next} and {@code previous} will return the same * element repeatedly.) * * @return the previous element in the list * @throws NoSuchElementException if the iteration has no previous * element */ E previous(); /** * Returns the index of the element that would be returned by a * subsequent call to {@link #next}. (Returns list size if the list * iterator is at the end of the list.) * * @return the index of the element that would be returned by a * subsequent call to {@code next}, or list size if the list * iterator is at the end of the list */ int nextIndex(); /** * Returns the index of the element that would be returned by a * subsequent call to {@link #previous}. (Returns -1 if the list * iterator is at the beginning of the list.) * * @return the index of the element that would be returned by a * subsequent call to {@code previous}, or -1 if the list * iterator is at the beginning of the list */ int previousIndex(); // Modification Operations /** * Removes from the list the last element that was returned by {@link * #next} or {@link #previous} (optional operation). This call can * only be made once per call to {@code next} or {@code previous}. * It can be made only if {@link #add} has not been * called after the last call to {@code next} or {@code previous}. * * @throws UnsupportedOperationException if the {@code remove} * operation is not supported by this list iterator * @throws IllegalStateException if neither {@code next} nor * {@code previous} have been called, or {@code remove} or * {@code add} have been called after the last call to * {@code next} or {@code previous} */ void remove(); /** * Replaces the last element returned by {@link #next} or * {@link #previous} with the specified element (optional operation). * This call can be made only if neither {@link #remove} nor {@link * #add} have been called after the last call to {@code next} or * {@code previous}. * * @param e the element with which to replace the last element returned by * {@code next} or {@code previous} * @throws UnsupportedOperationException if the {@code set} operation * is not supported by this list iterator * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws IllegalArgumentException if some aspect of the specified * element prevents it from being added to this list * @throws IllegalStateException if neither {@code next} nor * {@code previous} have been called, or {@code remove} or * {@code add} have been called after the last call to * {@code next} or {@code previous} */ void set(E e); /** * Inserts the specified element into the list (optional operation). * The element is inserted immediately before the next element that * would be returned by {@link #next}, if any, and after the next * element that would be returned by {@link #previous}, if any. (If the * list contains no elements, the new element becomes the sole element * on the list.) The new element is inserted before the implicit * cursor: a subsequent call to {@code next} would be unaffected, and a * subsequent call to {@code previous} would return the new element. * (This call increases by one the value that would be returned by a * call to {@code nextIndex} or {@code previousIndex}.) * * @param e the element to insert * @throws UnsupportedOperationException if the {@code add} method is * not supported by this list iterator * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws IllegalArgumentException if some aspect of this element * prevents it from being added to this list */ void add(E e); } /* * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * An ordered collection (also known as a sequence). The user of this * interface has precise control over where in the list each element is * inserted. The user can access elements by their integer index (position in * the list), and search for elements in the list.

* * Unlike sets, lists typically allow duplicate elements. More formally, * lists typically allow pairs of elements e1 and e2 * such that e1.equals(e2), and they typically allow multiple * null elements if they allow null elements at all. It is not inconceivable * that someone might wish to implement a list that prohibits duplicates, by * throwing runtime exceptions when the user attempts to insert them, but we * expect this usage to be rare.

* * The List interface places additional stipulations, beyond those * specified in the Collection interface, on the contracts of the * iterator, add, remove, equals, and * hashCode methods. Declarations for other inherited methods are * also included here for convenience.

* * The List interface provides four methods for positional (indexed) * access to list elements. Lists (like Java arrays) are zero based. Note * that these operations may execute in time proportional to the index value * for some implementations (the LinkedList class, for * example). Thus, iterating over the elements in a list is typically * preferable to indexing through it if the caller does not know the * implementation.

* * The List interface provides a special iterator, called a * ListIterator, that allows element insertion and replacement, and * bidirectional access in addition to the normal operations that the * Iterator interface provides. A method is provided to obtain a * list iterator that starts at a specified position in the list.

* * The List interface provides two methods to search for a specified * object. From a performance standpoint, these methods should be used with * caution. In many implementations they will perform costly linear * searches.

* * The List interface provides two methods to efficiently insert and * remove multiple elements at an arbitrary point in the list.

* * Note: While it is permissible for lists to contain themselves as elements, * extreme caution is advised: the equals and hashCode * methods are no longer well defined on such a list. * *

Some list implementations have restrictions on the elements that * they may contain. For example, some implementations prohibit null elements, * and some have restrictions on the types of their elements. Attempting to * add an ineligible element throws an unchecked exception, typically * NullPointerException or ClassCastException. Attempting * to query the presence of an ineligible element may throw an exception, * or it may simply return false; some implementations will exhibit the former * behavior and some will exhibit the latter. More generally, attempting an * operation on an ineligible element whose completion would not result in * the insertion of an ineligible element into the list may throw an * exception or it may succeed, at the option of the implementation. * Such exceptions are marked as "optional" in the specification for this * interface. * *

This interface is a member of the * * Java Collections Framework. * * @author Josh Bloch * @author Neal Gafter * @see Collection * @see Set * @see ArrayList * @see LinkedList * @see Vector * @see Arrays#asList(Object[]) * @see Collections#nCopies(int, Object) * @see Collections#EMPTY_LIST * @see AbstractList * @see AbstractSequentialList * @since 1.2 */ public interface List extends Collection { // Query Operations /** * Returns the number of elements in this list. If this list contains * more than Integer.MAX_VALUE elements, returns * Integer.MAX_VALUE. * * @return the number of elements in this list */ int size(); /** * Returns true if this list contains no elements. * * @return true if this list contains no elements */ boolean isEmpty(); /** * Returns true if this list contains the specified element. * More formally, returns true if and only if this list contains * at least one element e such that * (o==null ? e==null : o.equals(e)). * * @param o element whose presence in this list is to be tested * @return true if this list contains the specified element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) */ boolean contains(Object o); /** * Returns an iterator over the elements in this list in proper sequence. * * @return an iterator over the elements in this list in proper sequence */ Iterator iterator(); // Modification Operations /** * Appends the specified element to the end of this list (optional * operation). * *

Lists that support this operation may place limitations on what * elements may be added to this list. In particular, some * lists will refuse to add null elements, and others will impose * restrictions on the type of elements that may be added. List * classes should clearly specify in their documentation any restrictions * on what elements may be added. * * @param e element to be appended to this list * @return true (as specified by {@link Collection#add}) * @throws UnsupportedOperationException if the add operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and this * list does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this list */ boolean add(E e); /** * Removes the first occurrence of the specified element from this list, * if it is present (optional operation). If this list does not contain * the element, it is unchanged. More formally, removes the element with * the lowest index i such that * (o==null ? get(i)==null : o.equals(get(i))) * (if such an element exists). Returns true if this list * contained the specified element (or equivalently, if this list changed * as a result of the call). * * @param o element to be removed from this list, if present * @return true if this list contained the specified element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) * @throws UnsupportedOperationException if the remove operation * is not supported by this list */ boolean remove(Object o); // Bulk Modification Operations /** * Returns true if this list contains all of the elements of the * specified collection. * * @param c collection to be checked for containment in this list * @return true if this list contains all of the elements of the * specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this * list (optional) * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null * elements (optional), or if the specified collection is null * @see #contains(Object) */ boolean containsAll(Collection c); /** * Appends all of the elements in the specified collection to the end of * this list, in the order that they are returned by the specified * collection's iterator (optional operation). The behavior of this * operation is undefined if the specified collection is modified while * the operation is in progress. (Note that this will occur if the * specified collection is this list, and it's nonempty.) * * @param c collection containing elements to be added to this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the addAll operation * is not supported by this list * @throws ClassCastException if the class of an element of the specified * collection prevents it from being added to this list * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null * elements, or if the specified collection is null * @throws IllegalArgumentException if some property of an element of the * specified collection prevents it from being added to this list * @see #add(Object) */ boolean addAll(Collection c); /** * Inserts all of the elements in the specified collection into this * list at the specified position (optional operation). Shifts the * element currently at that position (if any) and any subsequent * elements to the right (increases their indices). The new elements * will appear in this list in the order that they are returned by the * specified collection's iterator. The behavior of this operation is * undefined if the specified collection is modified while the * operation is in progress. (Note that this will occur if the specified * collection is this list, and it's nonempty.) * * @param index index at which to insert the first element from the * specified collection * @param c collection containing elements to be added to this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the addAll operation * is not supported by this list * @throws ClassCastException if the class of an element of the specified * collection prevents it from being added to this list * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null * elements, or if the specified collection is null * @throws IllegalArgumentException if some property of an element of the * specified collection prevents it from being added to this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index > size()) */ boolean addAll(int index, Collection c); /** * Removes from this list all of its elements that are contained in the * specified collection (optional operation). * * @param c collection containing elements to be removed from this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the removeAll operation * is not supported by this list * @throws ClassCastException if the class of an element of this list * is incompatible with the specified collection (optional) * @throws NullPointerException if this list contains a null element and the * specified collection does not permit null elements (optional), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean removeAll(Collection c); /** * Retains only the elements in this list that are contained in the * specified collection (optional operation). In other words, removes * from this list all of its elements that are not contained in the * specified collection. * * @param c collection containing elements to be retained in this list * @return true if this list changed as a result of the call * @throws UnsupportedOperationException if the retainAll operation * is not supported by this list * @throws ClassCastException if the class of an element of this list * is incompatible with the specified collection (optional) * @throws NullPointerException if this list contains a null element and the * specified collection does not permit null elements (optional), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ boolean retainAll(Collection c); /** * Removes all of the elements from this list (optional operation). * The list will be empty after this call returns. * * @throws UnsupportedOperationException if the clear operation * is not supported by this list */ void clear(); // Comparison and hashing /** * Compares the specified object with this list for equality. Returns * true if and only if the specified object is also a list, both * lists have the same size, and all corresponding pairs of elements in * the two lists are equal. (Two elements e1 and * e2 are equal if (e1==null ? e2==null : * e1.equals(e2)).) In other words, two lists are defined to be * equal if they contain the same elements in the same order. This * definition ensures that the equals method works properly across * different implementations of the List interface. * * @param o the object to be compared for equality with this list * @return true if the specified object is equal to this list */ boolean equals(Object o); /** * Returns the hash code value for this list. The hash code of a list * is defined to be the result of the following calculation: *

     *  int hashCode = 1;
     *  for (E e : list)
     *      hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());
     * 
* This ensures that list1.equals(list2) implies that * list1.hashCode()==list2.hashCode() for any two lists, * list1 and list2, as required by the general * contract of {@link Object#hashCode}. * * @return the hash code value for this list * @see Object#equals(Object) * @see #equals(Object) */ int hashCode(); // Positional Access Operations /** * Returns the element at the specified position in this list. * * @param index index of the element to return * @return the element at the specified position in this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index >= size()) */ E get(int index); /** * Replaces the element at the specified position in this list with the * specified element (optional operation). * * @param index index of the element to replace * @param element element to be stored at the specified position * @return the element previously at the specified position * @throws UnsupportedOperationException if the set operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and * this list does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index >= size()) */ E set(int index, E element); /** * Inserts the specified element at the specified position in this list * (optional operation). Shifts the element currently at that position * (if any) and any subsequent elements to the right (adds one to their * indices). * * @param index index at which the specified element is to be inserted * @param element element to be inserted * @throws UnsupportedOperationException if the add operation * is not supported by this list * @throws ClassCastException if the class of the specified element * prevents it from being added to this list * @throws NullPointerException if the specified element is null and * this list does not permit null elements * @throws IllegalArgumentException if some property of the specified * element prevents it from being added to this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index > size()) */ void add(int index, E element); /** * Removes the element at the specified position in this list (optional * operation). Shifts any subsequent elements to the left (subtracts one * from their indices). Returns the element that was removed from the * list. * * @param index the index of the element to be removed * @return the element previously at the specified position * @throws UnsupportedOperationException if the remove operation * is not supported by this list * @throws IndexOutOfBoundsException if the index is out of range * (index < 0 || index >= size()) */ E remove(int index); // Search Operations /** * Returns the index of the first occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the lowest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the first occurrence of the specified element in * this list, or -1 if this list does not contain the element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) */ int indexOf(Object o); /** * Returns the index of the last occurrence of the specified element * in this list, or -1 if this list does not contain the element. * More formally, returns the highest index i such that * (o==null ? get(i)==null : o.equals(get(i))), * or -1 if there is no such index. * * @param o element to search for * @return the index of the last occurrence of the specified element in * this list, or -1 if this list does not contain the element * @throws ClassCastException if the type of the specified element * is incompatible with this list (optional) * @throws NullPointerException if the specified element is null and this * list does not permit null elements (optional) */ int lastIndexOf(Object o); // List Iterators /** * Returns a list iterator over the elements in this list (in proper * sequence). * * @return a list iterator over the elements in this list (in proper * sequence) */ ListIterator listIterator(); /** * Returns a list iterator over the elements in this list (in proper * sequence), starting at the specified position in the list. * The specified index indicates the first element that would be * returned by an initial call to {@link ListIterator#next next}. * An initial call to {@link ListIterator#previous previous} would * return the element with the specified index minus one. * * @param index index of the first element to be returned from the * list iterator (by a call to {@link ListIterator#next next}) * @return a list iterator over the elements in this list (in proper * sequence), starting at the specified position in the list * @throws IndexOutOfBoundsException if the index is out of range * ({@code index < 0 || index > size()}) */ ListIterator listIterator(int index); // View /** * Returns a view of the portion of this list between the specified * fromIndex, inclusive, and toIndex, exclusive. (If * fromIndex and toIndex are equal, the returned list is * empty.) The returned list is backed by this list, so non-structural * changes in the returned list are reflected in this list, and vice-versa. * The returned list supports all of the optional list operations supported * by this list.

* * This method eliminates the need for explicit range operations (of * the sort that commonly exist for arrays). Any operation that expects * a list can be used as a range operation by passing a subList view * instead of a whole list. For example, the following idiom * removes a range of elements from a list: *

     *      list.subList(from, to).clear();
     * 
* Similar idioms may be constructed for indexOf and * lastIndexOf, and all of the algorithms in the * Collections class can be applied to a subList.

* * The semantics of the list returned by this method become undefined if * the backing list (i.e., this list) is structurally modified in * any way other than via the returned list. (Structural modifications are * those that change the size of this list, or otherwise perturb it in such * a fashion that iterations in progress may yield incorrect results.) * * @param fromIndex low endpoint (inclusive) of the subList * @param toIndex high endpoint (exclusive) of the subList * @return a view of the specified range within this list * @throws IndexOutOfBoundsException for an illegal endpoint index value * (fromIndex < 0 || toIndex > size || * fromIndex > toIndex) */ List subList(int fromIndex, int toIndex); } /* * Copyright 1994-1998 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Thrown by the nextElement method of an * Enumeration to indicate that there are no more * elements in the enumeration. * * @author unascribed * @see java.util.Enumeration * @see java.util.Enumeration#nextElement() * @since JDK1.0 */ public class NoSuchElementException extends RuntimeException { /** * Constructs a NoSuchElementException with null * as its error message string. */ public NoSuchElementException() { super(); } /** * Constructs a NoSuchElementException, saving a reference * to the error message string s for later retrieval by the * getMessage method. * * @param s the detail message. */ public NoSuchElementException(String s) { super(s); } } /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ /* * This file is available under and governed by the GNU General Public * License version 2 only, as published by the Free Software Foundation. * However, the following notice accompanied the original version of this * file: * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at * http://creativecommons.org/licenses/publicdomain */ package javaUtilEx; /** * A collection designed for holding elements prior to processing. * Besides basic {@link java.util.Collection Collection} operations, * queues provide additional insertion, extraction, and inspection * operations. Each of these methods exists in two forms: one throws * an exception if the operation fails, the other returns a special * value (either null or false, depending on the * operation). The latter form of the insert operation is designed * specifically for use with capacity-restricted Queue * implementations; in most implementations, insert operations cannot * fail. * *

* * * * * * * * * * * * * * * * * * * * * *
Throws exceptionReturns special value
Insert{@link #add add(e)}{@link #offer offer(e)}
Remove{@link #remove remove()}{@link #poll poll()}
Examine{@link #element element()}{@link #peek peek()}
* *

Queues typically, but do not necessarily, order elements in a * FIFO (first-in-first-out) manner. Among the exceptions are * priority queues, which order elements according to a supplied * comparator, or the elements' natural ordering, and LIFO queues (or * stacks) which order the elements LIFO (last-in-first-out). * Whatever the ordering used, the head of the queue is that * element which would be removed by a call to {@link #remove() } or * {@link #poll()}. In a FIFO queue, all new elements are inserted at * the tail of the queue. Other kinds of queues may use * different placement rules. Every Queue implementation * must specify its ordering properties. * *

The {@link #offer offer} method inserts an element if possible, * otherwise returning false. This differs from the {@link * java.util.Collection#add Collection.add} method, which can fail to * add an element only by throwing an unchecked exception. The * offer method is designed for use when failure is a normal, * rather than exceptional occurrence, for example, in fixed-capacity * (or "bounded") queues. * *

The {@link #remove()} and {@link #poll()} methods remove and * return the head of the queue. * Exactly which element is removed from the queue is a * function of the queue's ordering policy, which differs from * implementation to implementation. The remove() and * poll() methods differ only in their behavior when the * queue is empty: the remove() method throws an exception, * while the poll() method returns null. * *

The {@link #element()} and {@link #peek()} methods return, but do * not remove, the head of the queue. * *

The Queue interface does not define the blocking queue * methods, which are common in concurrent programming. These methods, * which wait for elements to appear or for space to become available, are * defined in the {@link java.util.concurrent.BlockingQueue} interface, which * extends this interface. * *

Queue implementations generally do not allow insertion * of null elements, although some implementations, such as * {@link LinkedList}, do not prohibit insertion of null. * Even in the implementations that permit it, null should * not be inserted into a Queue, as null is also * used as a special return value by the poll method to * indicate that the queue contains no elements. * *

Queue implementations generally do not define * element-based versions of methods equals and * hashCode but instead inherit the identity based versions * from class Object, because element-based equality is not * always well-defined for queues with the same elements but different * ordering properties. * * *

This interface is a member of the * * Java Collections Framework. * * @see java.util.Collection * @see LinkedList * @see PriorityQueue * @see java.util.concurrent.LinkedBlockingQueue * @see java.util.concurrent.BlockingQueue * @see java.util.concurrent.ArrayBlockingQueue * @see java.util.concurrent.LinkedBlockingQueue * @see java.util.concurrent.PriorityBlockingQueue * @since 1.5 * @author Doug Lea * @param the type of elements held in this collection */ public interface Queue extends Collection { /** * Inserts the specified element into this queue if it is possible to do so * immediately without violating capacity restrictions, returning * true upon success and throwing an IllegalStateException * if no space is currently available. * * @param e the element to add * @return true (as specified by {@link Collection#add}) * @throws IllegalStateException if the element cannot be added at this * time due to capacity restrictions * @throws ClassCastException if the class of the specified element * prevents it from being added to this queue * @throws NullPointerException if the specified element is null and * this queue does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this queue */ boolean add(E e); /** * Inserts the specified element into this queue if it is possible to do * so immediately without violating capacity restrictions. * When using a capacity-restricted queue, this method is generally * preferable to {@link #add}, which can fail to insert an element only * by throwing an exception. * * @param e the element to add * @return true if the element was added to this queue, else * false * @throws ClassCastException if the class of the specified element * prevents it from being added to this queue * @throws NullPointerException if the specified element is null and * this queue does not permit null elements * @throws IllegalArgumentException if some property of this element * prevents it from being added to this queue */ boolean offer(E e); /** * Retrieves and removes the head of this queue. This method differs * from {@link #poll poll} only in that it throws an exception if this * queue is empty. * * @return the head of this queue * @throws NoSuchElementException if this queue is empty */ E remove(); /** * Retrieves and removes the head of this queue, * or returns null if this queue is empty. * * @return the head of this queue, or null if this queue is empty */ E poll(); /** * Retrieves, but does not remove, the head of this queue. This method * differs from {@link #peek peek} only in that it throws an exception * if this queue is empty. * * @return the head of this queue * @throws NoSuchElementException if this queue is empty */ E element(); /** * Retrieves, but does not remove, the head of this queue, * or returns null if this queue is empty. * * @return the head of this queue, or null if this queue is empty */ E peek(); } /* * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Marker interface used by List implementations to indicate that * they support fast (generally constant time) random access. The primary * purpose of this interface is to allow generic algorithms to alter their * behavior to provide good performance when applied to either random or * sequential access lists. * *

The best algorithms for manipulating random access lists (such as * ArrayList) can produce quadratic behavior when applied to * sequential access lists (such as LinkedList). Generic list * algorithms are encouraged to check whether the given list is an * instanceof this interface before applying an algorithm that would * provide poor performance if it were applied to a sequential access list, * and to alter their behavior if necessary to guarantee acceptable * performance. * *

It is recognized that the distinction between random and sequential * access is often fuzzy. For example, some List implementations * provide asymptotically linear access times if they get huge, but constant * access times in practice. Such a List implementation * should generally implement this interface. As a rule of thumb, a * List implementation should implement this interface if, * for typical instances of the class, this loop: *

 *     for (int i=0, n=list.size(); i < n; i++)
 *         list.get(i);
 * 
* runs faster than this loop: *
 *     for (Iterator i=list.iterator(); i.hasNext(); )
 *         i.next();
 * 
* *

This interface is a member of the * * Java Collections Framework. * * @since 1.4 */ public interface RandomAccess { } package javaUtilEx; public class Random { static String[] args; static int index = 0; public static int random() { String string = args[index]; index++; return string.length(); } } /* * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package javaUtilEx; /** * Thrown to indicate that the requested operation is not supported.

* * This class is a member of the * * Java Collections Framework. * * @author Josh Bloch * @since 1.2 */ public class UnsupportedOperationException extends RuntimeException { /** * Constructs an UnsupportedOperationException with no detail message. */ public UnsupportedOperationException() { } /** * Constructs an UnsupportedOperationException with the specified * detail message. * * @param message the detail message */ public UnsupportedOperationException(String message) { super(message); } /** * Constructs a new exception with the specified detail message and * cause. * *

Note that the detail message associated with cause is * not automatically incorporated in this exception's detail * message. * * @param message the detail message (which is saved for later retrieval * by the {@link Throwable#getMessage()} method). * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value * is permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public UnsupportedOperationException(String message, Throwable cause) { super(message, cause); } /** * Constructs a new exception with the specified cause and a detail * message of (cause==null ? null : cause.toString()) (which * typically contains the class and detail message of cause). * This constructor is useful for exceptions that are little more than * wrappers for other throwables (for example, {@link * java.security.PrivilegedActionException}). * * @param cause the cause (which is saved for later retrieval by the * {@link Throwable#getCause()} method). (A null value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.5 */ public UnsupportedOperationException(Throwable cause) { super(cause); } static final long serialVersionUID = -1242599979055084673L; } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V: Graph of 1397 nodes with 8 SCCs. javaUtilEx.juLinkedListCreateRemoveLastOccurrence.createList(I)LjavaUtilEx/LinkedList;: Graph of 250 nodes with 1 SCC. javaUtilEx.Content.equals(Ljava/lang/Object;)Z: Graph of 32 nodes with 0 SCCs. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 9 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.createList(I)LjavaUtilEx/LinkedList; SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *java.lang.String: [count] *javaUtilEx.LinkedList: [header, size] *javaUtilEx.LinkedList$Entry: [previous, next] *javaUtilEx.AbstractList: [modCount] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 118 IRulesP rules: f7531_0_createList_LE(EOS(STATIC_7531(java.lang.Object(o12307sub), i3543)), i3565, i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7538_0_createList_LE(EOS(STATIC_7538(java.lang.Object(o12307sub), i3543)), i3565, i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7538_0_createList_LE(EOS(STATIC_7538(java.lang.Object(o12307sub), i3543)), i3565, i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7547_0_createList_Load(EOS(STATIC_7547(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: i3565 > 0 f7547_0_createList_Load(EOS(STATIC_7547(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7558_0_createList_New(EOS(STATIC_7558(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7558_0_createList_New(EOS(STATIC_7558(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7566_0_createList_Duplicate(EOS(STATIC_7566(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7566_0_createList_Duplicate(EOS(STATIC_7566(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7573_0_createList_InvokeMethod(EOS(STATIC_7573(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7573_0_createList_InvokeMethod(EOS(STATIC_7573(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7581_0_random_FieldAccess(EOS(STATIC_7581(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7581_0_random_FieldAccess(EOS(STATIC_7581(java.lang.Object(o12307sub), i3543)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7594_0_random_FieldAccess(EOS(STATIC_7594(java.lang.Object(o12307sub), i3543)), i3565, java.lang.Object(o12307sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7594_0_random_FieldAccess(EOS(STATIC_7594(java.lang.Object(o12307sub), i3543)), i3565, java.lang.Object(o12307sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7603_0_random_ArrayAccess(EOS(STATIC_7603(java.lang.Object(o12307sub), i3543)), i3565, java.lang.Object(o12307sub), i3543, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7603_0_random_ArrayAccess(EOS(STATIC_7603(java.lang.Object(ARRAY(i3627)), i3543)), i3565, java.lang.Object(ARRAY(i3627)), i3543, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7609_0_random_ArrayAccess(EOS(STATIC_7609(java.lang.Object(ARRAY(i3627)), i3543)), i3565, java.lang.Object(ARRAY(i3627)), i3543, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: i3627 >= 0 f7609_0_random_ArrayAccess(EOS(STATIC_7609(java.lang.Object(ARRAY(i3627)), i3635)), i3565, java.lang.Object(ARRAY(i3627)), i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7616_0_random_ArrayAccess(EOS(STATIC_7616(java.lang.Object(ARRAY(i3627)), i3635)), i3565, java.lang.Object(ARRAY(i3627)), i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7616_0_random_ArrayAccess(EOS(STATIC_7616(java.lang.Object(ARRAY(i3627)), i3635)), i3565, java.lang.Object(ARRAY(i3627)), i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7623_0_random_ArrayAccess(EOS(STATIC_7623(java.lang.Object(ARRAY(i3627)), i3635)), i3565, java.lang.Object(ARRAY(i3627)), i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7623_0_random_ArrayAccess(EOS(STATIC_7623(java.lang.Object(ARRAY(i3627)), i3635)), i3565, java.lang.Object(ARRAY(i3627)), i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7631_0_random_Store(EOS(STATIC_7631(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: i3635 < i3627 f7631_0_random_Store(EOS(STATIC_7631(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7641_0_random_FieldAccess(EOS(STATIC_7641(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7641_0_random_FieldAccess(EOS(STATIC_7641(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7648_0_random_ConstantStackPush(EOS(STATIC_7648(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7648_0_random_ConstantStackPush(EOS(STATIC_7648(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, i3635, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7654_0_random_IntArithmetic(EOS(STATIC_7654(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, i3635, 1, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7654_0_random_IntArithmetic(EOS(STATIC_7654(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, i3635, matching1, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7664_0_random_FieldAccess(EOS(STATIC_7664(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, i3635 + 1, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: i3635 >= 0 && matching1 = 1 f7664_0_random_FieldAccess(EOS(STATIC_7664(java.lang.Object(ARRAY(i3627)), i3635)), i3565, o12865, i3658, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7673_0_random_Load(EOS(STATIC_7673(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7673_0_random_Load(EOS(STATIC_7673(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7682_0_random_InvokeMethod(EOS(STATIC_7682(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12865, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7682_0_random_InvokeMethod(EOS(STATIC_7682(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12968sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7692_0_random_InvokeMethod(EOS(STATIC_7692(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12968sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7692_0_random_InvokeMethod(EOS(STATIC_7692(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12972sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7703_0_random_InvokeMethod(EOS(STATIC_7703(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12972sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7703_0_random_InvokeMethod(EOS(STATIC_7703(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12972sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7716_0_length_Load(EOS(STATIC_7716(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12972sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7716_0_length_Load(EOS(STATIC_7716(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12972sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7742_0_length_FieldAccess(EOS(STATIC_7742(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(o12972sub), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7742_0_length_FieldAccess(EOS(STATIC_7742(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(java.lang.String(EOC, i3674)), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7759_0_length_FieldAccess(EOS(STATIC_7759(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(java.lang.String(EOC, i3674)), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7759_0_length_FieldAccess(EOS(STATIC_7759(java.lang.Object(ARRAY(i3627)), i3658)), i3565, java.lang.Object(java.lang.String(EOC, i3674)), o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7771_0_length_Return(EOS(STATIC_7771(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7771_0_length_Return(EOS(STATIC_7771(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7783_0_random_Return(EOS(STATIC_7783(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7783_0_random_Return(EOS(STATIC_7783(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7794_0_createList_InvokeMethod(EOS(STATIC_7794(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7794_0_createList_InvokeMethod(EOS(STATIC_7794(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7804_0__init__Load(EOS(STATIC_7804(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7804_0__init__Load(EOS(STATIC_7804(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7825_0__init__InvokeMethod(EOS(STATIC_7825(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7825_0__init__InvokeMethod(EOS(STATIC_7825(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7839_0__init__Load(EOS(STATIC_7839(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7839_0__init__Load(EOS(STATIC_7839(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7857_0__init__Load(EOS(STATIC_7857(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7857_0__init__Load(EOS(STATIC_7857(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7874_0__init__FieldAccess(EOS(STATIC_7874(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7874_0__init__FieldAccess(EOS(STATIC_7874(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7894_0__init__Return(EOS(STATIC_7894(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7894_0__init__Return(EOS(STATIC_7894(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7916_0_createList_InvokeMethod(EOS(STATIC_7916(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7916_0_createList_InvokeMethod(EOS(STATIC_7916(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7941_0_addLast_Load(EOS(STATIC_7941(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7941_0_addLast_Load(EOS(STATIC_7941(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7985_0_addLast_Load(EOS(STATIC_7985(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f7985_0_addLast_Load(EOS(STATIC_7985(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8004_0_addLast_Load(EOS(STATIC_8004(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8004_0_addLast_Load(EOS(STATIC_8004(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8016_0_addLast_FieldAccess(EOS(STATIC_8016(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8016_0_addLast_FieldAccess(EOS(STATIC_8016(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8029_0_addLast_InvokeMethod(EOS(STATIC_8029(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8029_0_addLast_InvokeMethod(EOS(STATIC_8029(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8049_0_addBefore_New(EOS(STATIC_8049(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8049_0_addBefore_New(EOS(STATIC_8049(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8076_0_addBefore_Duplicate(EOS(STATIC_8076(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8076_0_addBefore_Duplicate(EOS(STATIC_8076(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8096_0_addBefore_Load(EOS(STATIC_8096(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8096_0_addBefore_Load(EOS(STATIC_8096(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8115_0_addBefore_Load(EOS(STATIC_8115(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8115_0_addBefore_Load(EOS(STATIC_8115(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8134_0_addBefore_Load(EOS(STATIC_8134(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8134_0_addBefore_Load(EOS(STATIC_8134(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8145_0_addBefore_FieldAccess(EOS(STATIC_8145(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8145_0_addBefore_FieldAccess(EOS(STATIC_8145(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8152_0_addBefore_FieldAccess(EOS(STATIC_8152(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: o12312[LinkedList$Entry.next]o12312 > 0 && o12312[LinkedList$Entry.next]o12310 > 0 && o12312[LinkedList$Entry.previous]o12310 > 0 && o12312[LinkedList$Entry.previous]o12312 > 0 f8152_0_addBefore_FieldAccess(EOS(STATIC_8152(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8167_0_addBefore_FieldAccess(EOS(STATIC_8167(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: o12311[LinkedList$Entry.previous]o12311 > 0 && o12311[LinkedList$Entry.previous]o12310 > 0 f8167_0_addBefore_FieldAccess(EOS(STATIC_8167(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8184_0_addBefore_FieldAccess(EOS(STATIC_8184(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: o12313[LinkedList$Entry.previous]o12310 > 0 && o12313[LinkedList$Entry.previous]o12313 > 0 f8184_0_addBefore_FieldAccess(EOS(STATIC_8184(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8201_0_addBefore_InvokeMethod(EOS(STATIC_8201(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8201_0_addBefore_InvokeMethod(EOS(STATIC_8201(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8218_0__init__Load(EOS(STATIC_8218(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8218_0__init__Load(EOS(STATIC_8218(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8253_0__init__InvokeMethod(EOS(STATIC_8253(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8253_0__init__InvokeMethod(EOS(STATIC_8253(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8274_0__init__Load(EOS(STATIC_8274(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8274_0__init__Load(EOS(STATIC_8274(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8295_0__init__Load(EOS(STATIC_8295(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8295_0__init__Load(EOS(STATIC_8295(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8312_0__init__FieldAccess(EOS(STATIC_8312(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8312_0__init__FieldAccess(EOS(STATIC_8312(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8324_0__init__Load(EOS(STATIC_8324(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8324_0__init__Load(EOS(STATIC_8324(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8338_0__init__Load(EOS(STATIC_8338(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8338_0__init__Load(EOS(STATIC_8338(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8353_0__init__FieldAccess(EOS(STATIC_8353(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8353_0__init__FieldAccess(EOS(STATIC_8353(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8369_0__init__Load(EOS(STATIC_8369(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8369_0__init__Load(EOS(STATIC_8369(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8384_0__init__Load(EOS(STATIC_8384(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8384_0__init__Load(EOS(STATIC_8384(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8401_0__init__FieldAccess(EOS(STATIC_8401(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8401_0__init__FieldAccess(EOS(STATIC_8401(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8417_0__init__Return(EOS(STATIC_8417(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8417_0__init__Return(EOS(STATIC_8417(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8430_0_addBefore_Store(EOS(STATIC_8430(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8430_0_addBefore_Store(EOS(STATIC_8430(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8445_0_addBefore_Load(EOS(STATIC_8445(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8445_0_addBefore_Load(EOS(STATIC_8445(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8461_0_addBefore_FieldAccess(EOS(STATIC_8461(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8461_0_addBefore_FieldAccess(EOS(STATIC_8461(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8481_0_addBefore_Load(EOS(STATIC_8481(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8481_0_addBefore_Load(EOS(STATIC_8481(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8501_0_addBefore_FieldAccess(EOS(STATIC_8501(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8501_0_addBefore_FieldAccess(EOS(STATIC_8501(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f8520_0_addBefore_FieldAccess(EOS(STATIC_8520(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: o12312[LinkedList$Entry.next]o12312 > 0 && o12313[LinkedList$Entry.previous]o12312 > 0 && o12312[LinkedList$Entry.previous]o12312 > 0 && o12312[LinkedList$Entry.next]o12313 > 0 && o12312[LinkedList$Entry.previous]o12313 > 0 && o12313[LinkedList$Entry.previous]o12313 > 0 f8501_0_addBefore_FieldAccess(EOS(STATIC_8501(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.next]o12311, o17419[LinkedList$Entry.previous]o12311, o17419[LinkedList$Entry.previous]o12311, o17419[LinkedList$Entry.next]o17419, o17419[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.next]o17419, o17419[LinkedList$Entry.previous]o17419, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8521_0_addBefore_FieldAccess(EOS(STATIC_8521(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8520_0_addBefore_FieldAccess(EOS(STATIC_8520(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8534_0_addBefore_FieldAccess(EOS(STATIC_8534(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: o12313[LinkedList$Entry.previous]o12311 > 0 && o12311[LinkedList$Entry.previous]o12311 > 0 && o12311[LinkedList$Entry.previous]o12313 > 0 && o12313[LinkedList$Entry.previous]o12313 > 0 f8534_0_addBefore_FieldAccess(EOS(STATIC_8534(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8549_0_addBefore_Load(EOS(STATIC_8549(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8549_0_addBefore_Load(EOS(STATIC_8549(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8568_0_addBefore_FieldAccess(EOS(STATIC_8568(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8568_0_addBefore_FieldAccess(EOS(STATIC_8568(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8592_0_addBefore_Load(EOS(STATIC_8592(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8592_0_addBefore_Load(EOS(STATIC_8592(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8610_0_addBefore_FieldAccess(EOS(STATIC_8610(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8610_0_addBefore_FieldAccess(EOS(STATIC_8610(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8629_0_addBefore_Load(EOS(STATIC_8629(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8629_0_addBefore_Load(EOS(STATIC_8629(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8646_0_addBefore_Duplicate(EOS(STATIC_8646(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8646_0_addBefore_Duplicate(EOS(STATIC_8646(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8664_0_addBefore_FieldAccess(EOS(STATIC_8664(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8664_0_addBefore_FieldAccess(EOS(STATIC_8664(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8678_0_addBefore_ConstantStackPush(EOS(STATIC_8678(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8678_0_addBefore_ConstantStackPush(EOS(STATIC_8678(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8692_0_addBefore_IntArithmetic(EOS(STATIC_8692(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8692_0_addBefore_IntArithmetic(EOS(STATIC_8692(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8705_0_addBefore_FieldAccess(EOS(STATIC_8705(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8705_0_addBefore_FieldAccess(EOS(STATIC_8705(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8717_0_addBefore_Load(EOS(STATIC_8717(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8717_0_addBefore_Load(EOS(STATIC_8717(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8732_0_addBefore_Duplicate(EOS(STATIC_8732(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8732_0_addBefore_Duplicate(EOS(STATIC_8732(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8749_0_addBefore_FieldAccess(EOS(STATIC_8749(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8749_0_addBefore_FieldAccess(EOS(STATIC_8749(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8762_0_addBefore_ConstantStackPush(EOS(STATIC_8762(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8762_0_addBefore_ConstantStackPush(EOS(STATIC_8762(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8773_0_addBefore_IntArithmetic(EOS(STATIC_8773(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8773_0_addBefore_IntArithmetic(EOS(STATIC_8773(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8784_0_addBefore_FieldAccess(EOS(STATIC_8784(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8784_0_addBefore_FieldAccess(EOS(STATIC_8784(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8797_0_addBefore_Load(EOS(STATIC_8797(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8797_0_addBefore_Load(EOS(STATIC_8797(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8810_0_addBefore_Return(EOS(STATIC_8810(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8810_0_addBefore_Return(EOS(STATIC_8810(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8823_0_addLast_StackPop(EOS(STATIC_8823(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8823_0_addLast_StackPop(EOS(STATIC_8823(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8836_0_addLast_Return(EOS(STATIC_8836(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8836_0_addLast_Return(EOS(STATIC_8836(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8851_0_createList_Inc(EOS(STATIC_8851(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8851_0_createList_Inc(EOS(STATIC_8851(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8866_0_createList_JMP(EOS(STATIC_8866(java.lang.Object(ARRAY(i3627)), i3658)), i3565 + -1, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8866_0_createList_JMP(EOS(STATIC_8866(java.lang.Object(ARRAY(i3627)), i3658)), i5013, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f8880_0_createList_Load(EOS(STATIC_8880(java.lang.Object(ARRAY(i3627)), i3658)), i5013, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) :|: TRUE f8880_0_createList_Load(EOS(STATIC_8880(java.lang.Object(ARRAY(i3627)), i3658)), i5013, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313, o12312[LinkedList$Entry.previous]o12313) -> f7524_0_createList_Load(EOS(STATIC_7524(java.lang.Object(ARRAY(i3627)), i3658)), i5013, o12312[LinkedList$Entry.next]o12311, o14827[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o14827[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o14827[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o14827, o12312[LinkedList$Entry.previous]o14827, o12311[LinkedList$Entry.previous]o14827, o14827[LinkedList$Entry.previous]o14827) :|: TRUE f7524_0_createList_Load(EOS(STATIC_7524(java.lang.Object(o12307sub), i3543)), i3545, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) -> f7531_0_createList_LE(EOS(STATIC_7531(java.lang.Object(o12307sub), i3543)), i3545, i3545, o12312[LinkedList$Entry.next]o12311, o12313[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.previous]o12311, o12312[LinkedList$Entry.next]o12312, o12312[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o12313[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o12312, o12313[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.previous]o12310, o12312[LinkedList$Entry.previous]o12312, o12312[LinkedList$Entry.next]o12313, o12312[LinkedList$Entry.previous]o12313, o12311[LinkedList$Entry.previous]o12313, o12313[LinkedList$Entry.previous]o12313) :|: TRUE f8521_0_addBefore_FieldAccess(EOS(STATIC_8521(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8536_0_addBefore_FieldAccess(EOS(STATIC_8536(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: o17419[LinkedList$Entry.previous]o12311 > 0 && o12311[LinkedList$Entry.previous]o12311 > 0 && o12311[LinkedList$Entry.previous]o17419 > 0 && o17419[LinkedList$Entry.previous]o17419 > 0 f8536_0_addBefore_FieldAccess(EOS(STATIC_8536(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8550_0_addBefore_Load(EOS(STATIC_8550(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8550_0_addBefore_Load(EOS(STATIC_8550(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8569_0_addBefore_FieldAccess(EOS(STATIC_8569(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8569_0_addBefore_FieldAccess(EOS(STATIC_8569(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8593_0_addBefore_Load(EOS(STATIC_8593(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8593_0_addBefore_Load(EOS(STATIC_8593(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8611_0_addBefore_FieldAccess(EOS(STATIC_8611(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8611_0_addBefore_FieldAccess(EOS(STATIC_8611(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8630_0_addBefore_Load(EOS(STATIC_8630(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8630_0_addBefore_Load(EOS(STATIC_8630(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8647_0_addBefore_Duplicate(EOS(STATIC_8647(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8647_0_addBefore_Duplicate(EOS(STATIC_8647(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8665_0_addBefore_FieldAccess(EOS(STATIC_8665(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8665_0_addBefore_FieldAccess(EOS(STATIC_8665(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8679_0_addBefore_ConstantStackPush(EOS(STATIC_8679(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8679_0_addBefore_ConstantStackPush(EOS(STATIC_8679(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8693_0_addBefore_IntArithmetic(EOS(STATIC_8693(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8693_0_addBefore_IntArithmetic(EOS(STATIC_8693(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8706_0_addBefore_FieldAccess(EOS(STATIC_8706(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8706_0_addBefore_FieldAccess(EOS(STATIC_8706(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8718_0_addBefore_Load(EOS(STATIC_8718(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8718_0_addBefore_Load(EOS(STATIC_8718(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8733_0_addBefore_Duplicate(EOS(STATIC_8733(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8733_0_addBefore_Duplicate(EOS(STATIC_8733(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8750_0_addBefore_FieldAccess(EOS(STATIC_8750(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8750_0_addBefore_FieldAccess(EOS(STATIC_8750(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8763_0_addBefore_ConstantStackPush(EOS(STATIC_8763(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8763_0_addBefore_ConstantStackPush(EOS(STATIC_8763(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8774_0_addBefore_IntArithmetic(EOS(STATIC_8774(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8774_0_addBefore_IntArithmetic(EOS(STATIC_8774(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8785_0_addBefore_FieldAccess(EOS(STATIC_8785(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8785_0_addBefore_FieldAccess(EOS(STATIC_8785(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8798_0_addBefore_Load(EOS(STATIC_8798(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8798_0_addBefore_Load(EOS(STATIC_8798(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8811_0_addBefore_Return(EOS(STATIC_8811(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8811_0_addBefore_Return(EOS(STATIC_8811(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8824_0_addLast_StackPop(EOS(STATIC_8824(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8824_0_addLast_StackPop(EOS(STATIC_8824(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8837_0_addLast_Return(EOS(STATIC_8837(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8837_0_addLast_Return(EOS(STATIC_8837(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8852_0_createList_Inc(EOS(STATIC_8852(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8852_0_createList_Inc(EOS(STATIC_8852(java.lang.Object(ARRAY(i3627)), i3658)), i3565, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8867_0_createList_JMP(EOS(STATIC_8867(java.lang.Object(ARRAY(i3627)), i3658)), i3565 + -1, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8867_0_createList_JMP(EOS(STATIC_8867(java.lang.Object(ARRAY(i3627)), i3658)), i5014, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f8881_0_createList_Load(EOS(STATIC_8881(java.lang.Object(ARRAY(i3627)), i3658)), i5014, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) :|: TRUE f8881_0_createList_Load(EOS(STATIC_8881(java.lang.Object(ARRAY(i3627)), i3658)), i5014, o17419[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o17419) -> f7524_0_createList_Load(EOS(STATIC_7524(java.lang.Object(ARRAY(i3627)), i3658)), i5014, o17419[LinkedList$Entry.next]o12311, o14827[LinkedList$Entry.previous]o12311, o17419[LinkedList$Entry.previous]o12311, o17419[LinkedList$Entry.next]o17419, o17419[LinkedList$Entry.next]o12310, o12311[LinkedList$Entry.previous]o12311, o12311[LinkedList$Entry.previous]o12310, o14827[LinkedList$Entry.previous]o12310, o12311[LinkedList$Entry.previous]o17419, o14827[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.previous]o12310, o17419[LinkedList$Entry.previous]o17419, o17419[LinkedList$Entry.next]o14827, o17419[LinkedList$Entry.previous]o14827, o12311[LinkedList$Entry.previous]o14827, o14827[LinkedList$Entry.previous]o14827) :|: o17419[LinkedList$Entry.next]o17419 = 4 && o14827[LinkedList$Entry.previous]o17419 = 1 && o17419[LinkedList$Entry.next]o14827 = 1 Combined rules. Obtained 2 IRulesP rules: f7531_0_createList_LE(EOS(STATIC_7531(java.lang.Object(ARRAY(i3627:0)), i3543:0)), i3565:0, i3565:0, o12312[LinkedList$Entry.next]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0) -> f7531_0_createList_LE(EOS(STATIC_7531(java.lang.Object(ARRAY(i3627:0)), i3543:0 + 1)), i3565:0 - 1, i3565:0 - 1, o17419[LinkedList$Entry.next]o12311:0, o14827[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, 4, o17419[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, 1, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, 1, o17419[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0) :|: i3565:0 > 0 && i3627:0 > -1 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12312:0 > 0 f7531_0_createList_LE(EOS(STATIC_7531(java.lang.Object(ARRAY(i3627:0)), i3543:0)), i3565:0, i3565:0, o12312[LinkedList$Entry.next]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.previous]o12310:0, o12312[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12313:0, o12312[LinkedList$Entry.previous]o12313:0, o12311[LinkedList$Entry.previous]o12313:0, o12313[LinkedList$Entry.previous]o12313:0) -> f7531_0_createList_LE(EOS(STATIC_7531(java.lang.Object(ARRAY(i3627:0)), i3543:0 + 1)), i3565:0 - 1, i3565:0 - 1, o12312[LinkedList$Entry.next]o12311:0, o14827[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o14827[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.previous]o12310:0, o12312[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o14827:0, o12312[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0) :|: i3565:0 > 0 && i3627:0 > -1 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12312[LinkedList$Entry.previous]o12310:0 > 0 && o12312[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12313[LinkedList$Entry.previous]o12313:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12312[LinkedList$Entry.next]o12313:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 && o12312[LinkedList$Entry.previous]o12313:0 > 0 && o12311[LinkedList$Entry.previous]o12313:0 > 0 Filtered duplicate arguments: f7531_0_createList_LE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) -> f7531_0_createList_LE(x1, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19) Filtered unneeded arguments: f7531_0_createList_LE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) -> f7531_0_createList_LE(x1, x2, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18) Finished conversion. Obtained 2 rules.P rules: f7531_0_createList_LE(i3565:0, o12313[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, i3627:0, i3543:0) -> f7531_0_createList_LE(i3565:0 - 1, o14827[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, 4, o17419[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, 1, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, 1, o17419[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0, i3627:0, i3543:0 + 1) :|: i3627:0 > -1 && i3565:0 > 0 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 f7531_0_createList_LE(i3565:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.previous]o12310:0, o12312[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12313:0, o12312[LinkedList$Entry.previous]o12313:0, o12311[LinkedList$Entry.previous]o12313:0, o12313[LinkedList$Entry.previous]o12313:0, i3627:0, i3543:0) -> f7531_0_createList_LE(i3565:0 - 1, o14827[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o14827[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.previous]o12310:0, o12312[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o14827:0, o12312[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0, i3627:0, i3543:0 + 1) :|: i3627:0 > -1 && i3565:0 > 0 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12312[LinkedList$Entry.previous]o12310:0 > 0 && o12312[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12313[LinkedList$Entry.previous]o12313:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12312[LinkedList$Entry.next]o12313:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12313:0 > 0 && o12312[LinkedList$Entry.previous]o12313:0 > 0 ---------------------------------------- (9) Obligation: Rules: f7531_0_createList_LE(i3565:0, o12313[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, i3627:0, i3543:0) -> f7531_0_createList_LE(i3565:0 - 1, o14827[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, 4, o17419[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, 1, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, 1, o17419[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0, i3627:0, i3543:0 + 1) :|: i3627:0 > -1 && i3565:0 > 0 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 f7531_0_createList_LE(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17) -> f7531_0_createList_LE(x - 1, x18, x2, x3, x4, x5, x6, x19, x8, x20, x10, x11, x21, x22, x23, x24, x16, x17 + 1) :|: x16 > -1 && x > 0 && x16 > x17 && x17 > -1 && x4 > 0 && x3 > 0 && x10 > 0 && x11 > 0 && x6 > 0 && x5 > 0 && x15 > 0 && x7 > 0 && x9 > 0 && x12 > 0 && x1 > 0 && x14 > 0 && x13 > 0 ---------------------------------------- (10) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (11) Obligation: Rules: f7531_0_createList_LE(i3565:0, o12313[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, i3627:0, i3543:0) -> f7531_0_createList_LE(arith, o14827[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, 4, o17419[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, 1, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, 1, o17419[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0, i3627:0, arith1) :|: i3627:0 > -1 && i3565:0 > 0 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 && arith = i3565:0 - 1 && arith1 = i3543:0 + 1 f7531_0_createList_LE(x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42) -> f7531_0_createList_LE(x43, x44, x27, x28, x29, x30, x31, x45, x33, x46, x35, x36, x47, x48, x49, x50, x41, x51) :|: x41 > -1 && x25 > 0 && x41 > x42 && x42 > -1 && x29 > 0 && x28 > 0 && x35 > 0 && x36 > 0 && x31 > 0 && x30 > 0 && x40 > 0 && x32 > 0 && x34 > 0 && x37 > 0 && x26 > 0 && x39 > 0 && x38 > 0 && x43 = x25 - 1 && x51 = x42 + 1 ---------------------------------------- (12) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f7531_0_createList_LE(i3565:0, o12313[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, i3627:0, i3543:0) -> f7531_0_createList_LE(arith, o14827[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, 4, o17419[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, 1, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, 1, o17419[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0, i3627:0, arith1) :|: i3627:0 > -1 && i3565:0 > 0 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 && arith = i3565:0 - 1 && arith1 = i3543:0 + 1 (2) f7531_0_createList_LE(x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42) -> f7531_0_createList_LE(x43, x44, x27, x28, x29, x30, x31, x45, x33, x46, x35, x36, x47, x48, x49, x50, x41, x51) :|: x41 > -1 && x25 > 0 && x41 > x42 && x42 > -1 && x29 > 0 && x28 > 0 && x35 > 0 && x36 > 0 && x31 > 0 && x30 > 0 && x40 > 0 && x32 > 0 && x34 > 0 && x37 > 0 && x26 > 0 && x39 > 0 && x38 > 0 && x43 = x25 - 1 && x51 = x42 + 1 Arcs: (1) -> (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (13) Obligation: Termination digraph: Nodes: (1) f7531_0_createList_LE(i3565:0, o12313[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, o12312[LinkedList$Entry.next]o12312:0, o12312[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, o12312[LinkedList$Entry.next]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, o12311[LinkedList$Entry.previous]o12312:0, o12313[LinkedList$Entry.previous]o12312:0, i3627:0, i3543:0) -> f7531_0_createList_LE(arith, o14827[LinkedList$Entry.previous]o12311:0, o12313[LinkedList$Entry.previous]o12311:0, 4, o17419[LinkedList$Entry.next]o12310:0, o12311[LinkedList$Entry.previous]o12311:0, o12311[LinkedList$Entry.previous]o12310:0, o14827[LinkedList$Entry.previous]o12310:0, o12311[LinkedList$Entry.previous]o12312:0, 1, o12313[LinkedList$Entry.previous]o12310:0, o12313[LinkedList$Entry.previous]o12312:0, 1, o17419[LinkedList$Entry.previous]o14827:0, o12311[LinkedList$Entry.previous]o14827:0, o14827[LinkedList$Entry.previous]o14827:0, i3627:0, arith1) :|: i3627:0 > -1 && i3565:0 > 0 && i3627:0 > i3543:0 && i3543:0 > -1 && o12312[LinkedList$Entry.next]o12310:0 > 0 && o12312[LinkedList$Entry.next]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0 > 0 && o12311[LinkedList$Entry.previous]o12312:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0 > 0 && arith = i3565:0 - 1 && arith1 = i3543:0 + 1 (2) f7531_0_createList_LE(x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42) -> f7531_0_createList_LE(x43, x44, x27, x28, x29, x30, x31, x45, x33, x46, x35, x36, x47, x48, x49, x50, x41, x51) :|: x41 > -1 && x25 > 0 && x41 > x42 && x42 > -1 && x29 > 0 && x28 > 0 && x35 > 0 && x36 > 0 && x31 > 0 && x30 > 0 && x40 > 0 && x32 > 0 && x34 > 0 && x37 > 0 && x26 > 0 && x39 > 0 && x38 > 0 && x43 = x25 - 1 && x51 = x42 + 1 Arcs: (1) -> (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (14) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (15) Obligation: Rules: f7531_0_createList_LE(i3565:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12312[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, i3627:0:0, i3543:0:0) -> f7531_0_createList_LE(i3565:0:0 - 1, o14827[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, 4, o17419[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o14827[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, 1, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, 1, o17419[LinkedList$Entry.previous]o14827:0:0, o12311[LinkedList$Entry.previous]o14827:0:0, o14827[LinkedList$Entry.previous]o14827:0:0, i3627:0:0, i3543:0:0 + 1) :|: o12311[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0:0 > 0 && o12312[LinkedList$Entry.next]o12312:0:0 > 0 && o12312[LinkedList$Entry.next]o12310:0:0 > 0 && i3543:0:0 > -1 && i3627:0:0 > i3543:0:0 && i3565:0:0 > 0 && i3627:0:0 > -1 f7531_0_createList_LE(x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0, x33:0, x34:0, x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x42:0) -> f7531_0_createList_LE(x25:0 - 1, x44:0, x27:0, x28:0, x29:0, x30:0, x31:0, x45:0, x33:0, x46:0, x35:0, x36:0, x47:0, x48:0, x49:0, x50:0, x41:0, x42:0 + 1) :|: x39:0 > 0 && x38:0 > 0 && x26:0 > 0 && x37:0 > 0 && x34:0 > 0 && x32:0 > 0 && x40:0 > 0 && x30:0 > 0 && x31:0 > 0 && x36:0 > 0 && x35:0 > 0 && x28:0 > 0 && x29:0 > 0 && x42:0 > -1 && x42:0 < x41:0 && x25:0 > 0 && x41:0 > -1 ---------------------------------------- (16) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f7531_0_createList_LE(INTEGER, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (17) Obligation: Rules: f7531_0_createList_LE(i3565:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12312[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, i3627:0:0, i3543:0:0) -> f7531_0_createList_LE(c, o14827[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, c1, o17419[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o14827[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, c2, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, c3, o17419[LinkedList$Entry.previous]o14827:0:0, o12311[LinkedList$Entry.previous]o14827:0:0, o14827[LinkedList$Entry.previous]o14827:0:0, i3627:0:0, c4) :|: c4 = i3543:0:0 + 1 && (c3 = 1 && (c2 = 1 && (c1 = 4 && c = i3565:0:0 - 1))) && (o12311[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0:0 > 0 && o12312[LinkedList$Entry.next]o12312:0:0 > 0 && o12312[LinkedList$Entry.next]o12310:0:0 > 0 && i3543:0:0 > -1 && i3627:0:0 > i3543:0:0 && i3565:0:0 > 0 && i3627:0:0 > -1) f7531_0_createList_LE(x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0, x33:0, x34:0, x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x42:0) -> f7531_0_createList_LE(c5, x44:0, x27:0, x28:0, x29:0, x30:0, x31:0, x45:0, x33:0, x46:0, x35:0, x36:0, x47:0, x48:0, x49:0, x50:0, x41:0, c6) :|: c6 = x42:0 + 1 && c5 = x25:0 - 1 && (x39:0 > 0 && x38:0 > 0 && x26:0 > 0 && x37:0 > 0 && x34:0 > 0 && x32:0 > 0 && x40:0 > 0 && x30:0 > 0 && x31:0 > 0 && x36:0 > 0 && x35:0 > 0 && x28:0 > 0 && x29:0 > 0 && x42:0 > -1 && x42:0 < x41:0 && x25:0 > 0 && x41:0 > -1) ---------------------------------------- (18) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f7531_0_createList_LE(x, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)] = -5 + 3*x + x3 + x5 The following rules are decreasing: f7531_0_createList_LE(x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0, x33:0, x34:0, x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x42:0) -> f7531_0_createList_LE(c5, x44:0, x27:0, x28:0, x29:0, x30:0, x31:0, x45:0, x33:0, x46:0, x35:0, x36:0, x47:0, x48:0, x49:0, x50:0, x41:0, c6) :|: c6 = x42:0 + 1 && c5 = x25:0 - 1 && (x39:0 > 0 && x38:0 > 0 && x26:0 > 0 && x37:0 > 0 && x34:0 > 0 && x32:0 > 0 && x40:0 > 0 && x30:0 > 0 && x31:0 > 0 && x36:0 > 0 && x35:0 > 0 && x28:0 > 0 && x29:0 > 0 && x42:0 > -1 && x42:0 < x41:0 && x25:0 > 0 && x41:0 > -1) The following rules are bounded: f7531_0_createList_LE(i3565:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12312[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, i3627:0:0, i3543:0:0) -> f7531_0_createList_LE(c, o14827[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, c1, o17419[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o14827[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, c2, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, c3, o17419[LinkedList$Entry.previous]o14827:0:0, o12311[LinkedList$Entry.previous]o14827:0:0, o14827[LinkedList$Entry.previous]o14827:0:0, i3627:0:0, c4) :|: c4 = i3543:0:0 + 1 && (c3 = 1 && (c2 = 1 && (c1 = 4 && c = i3565:0:0 - 1))) && (o12311[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0:0 > 0 && o12312[LinkedList$Entry.next]o12312:0:0 > 0 && o12312[LinkedList$Entry.next]o12310:0:0 > 0 && i3543:0:0 > -1 && i3627:0:0 > i3543:0:0 && i3565:0:0 > 0 && i3627:0:0 > -1) f7531_0_createList_LE(x25:0, x26:0, x27:0, x28:0, x29:0, x30:0, x31:0, x32:0, x33:0, x34:0, x35:0, x36:0, x37:0, x38:0, x39:0, x40:0, x41:0, x42:0) -> f7531_0_createList_LE(c5, x44:0, x27:0, x28:0, x29:0, x30:0, x31:0, x45:0, x33:0, x46:0, x35:0, x36:0, x47:0, x48:0, x49:0, x50:0, x41:0, c6) :|: c6 = x42:0 + 1 && c5 = x25:0 - 1 && (x39:0 > 0 && x38:0 > 0 && x26:0 > 0 && x37:0 > 0 && x34:0 > 0 && x32:0 > 0 && x40:0 > 0 && x30:0 > 0 && x31:0 > 0 && x36:0 > 0 && x35:0 > 0 && x28:0 > 0 && x29:0 > 0 && x42:0 > -1 && x42:0 < x41:0 && x25:0 > 0 && x41:0 > -1) ---------------------------------------- (19) Obligation: Rules: f7531_0_createList_LE(i3565:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12312[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, i3627:0:0, i3543:0:0) -> f7531_0_createList_LE(c, o14827[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, c1, o17419[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o14827[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, c2, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, c3, o17419[LinkedList$Entry.previous]o14827:0:0, o12311[LinkedList$Entry.previous]o14827:0:0, o14827[LinkedList$Entry.previous]o14827:0:0, i3627:0:0, c4) :|: c4 = i3543:0:0 + 1 && (c3 = 1 && (c2 = 1 && (c1 = 4 && c = i3565:0:0 - 1))) && (o12311[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0:0 > 0 && o12312[LinkedList$Entry.next]o12312:0:0 > 0 && o12312[LinkedList$Entry.next]o12310:0:0 > 0 && i3543:0:0 > -1 && i3627:0:0 > i3543:0:0 && i3565:0:0 > 0 && i3627:0:0 > -1) ---------------------------------------- (20) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7531_0_createList_LE ] = f7531_0_createList_LE_1 The following rules are decreasing: f7531_0_createList_LE(i3565:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12312[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, i3627:0:0, i3543:0:0) -> f7531_0_createList_LE(c, o14827[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, c1, o17419[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o14827[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, c2, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, c3, o17419[LinkedList$Entry.previous]o14827:0:0, o12311[LinkedList$Entry.previous]o14827:0:0, o14827[LinkedList$Entry.previous]o14827:0:0, i3627:0:0, c4) :|: c4 = i3543:0:0 + 1 && (c3 = 1 && (c2 = 1 && (c1 = 4 && c = i3565:0:0 - 1))) && (o12311[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0:0 > 0 && o12312[LinkedList$Entry.next]o12312:0:0 > 0 && o12312[LinkedList$Entry.next]o12310:0:0 > 0 && i3543:0:0 > -1 && i3627:0:0 > i3543:0:0 && i3565:0:0 > 0 && i3627:0:0 > -1) The following rules are bounded: f7531_0_createList_LE(i3565:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12312[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12312[LinkedList$Entry.next]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, i3627:0:0, i3543:0:0) -> f7531_0_createList_LE(c, o14827[LinkedList$Entry.previous]o12311:0:0, o12313[LinkedList$Entry.previous]o12311:0:0, c1, o17419[LinkedList$Entry.next]o12310:0:0, o12311[LinkedList$Entry.previous]o12311:0:0, o12311[LinkedList$Entry.previous]o12310:0:0, o14827[LinkedList$Entry.previous]o12310:0:0, o12311[LinkedList$Entry.previous]o12312:0:0, c2, o12313[LinkedList$Entry.previous]o12310:0:0, o12313[LinkedList$Entry.previous]o12312:0:0, c3, o17419[LinkedList$Entry.previous]o14827:0:0, o12311[LinkedList$Entry.previous]o14827:0:0, o14827[LinkedList$Entry.previous]o14827:0:0, i3627:0:0, c4) :|: c4 = i3543:0:0 + 1 && (c3 = 1 && (c2 = 1 && (c1 = 4 && c = i3565:0:0 - 1))) && (o12311[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12311:0:0 > 0 && o12311[LinkedList$Entry.previous]o12310:0:0 > 0 && o12313[LinkedList$Entry.previous]o12312:0:0 > 0 && o12313[LinkedList$Entry.previous]o12310:0:0 > 0 && o12312[LinkedList$Entry.next]o12312:0:0 > 0 && o12312[LinkedList$Entry.next]o12310:0:0 > 0 && i3543:0:0 > -1 && i3627:0:0 > i3543:0:0 && i3565:0:0 > 0 && i3627:0:0 > -1) ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: javaUtilEx.Content.equals(Ljava/lang/Object;)Z Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [element, previous] *javaUtilEx.LinkedList: [header] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (23) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 65 IRulesP rules: f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) -> f8756_0_removeLastOccurrence_Load(EOS(STATIC_8756), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) :|: TRUE f8756_0_removeLastOccurrence_Load(EOS(STATIC_8756), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) -> f8768_0_removeLastOccurrence_Load(EOS(STATIC_8768), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18845sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) :|: TRUE f8768_0_removeLastOccurrence_Load(EOS(STATIC_8768), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18845sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) -> f8779_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8779), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) :|: TRUE f8779_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8779), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) -> f8791_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8791), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) :|: o18844[LinkedList$Entry.previous]o18846 > 0 && o18846[LinkedList$Entry.previous]o18844 > 0 f8779_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8779), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o19804sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o19804sub0), java.lang.Object(o18845sub0), java.lang.Object(o19804sub0), o19804[LinkedList$Entry.previous]o19804, o19804[LinkedList$Entry.previous]o18842, o19804[LinkedList$Entry.previous]o19804, o19804[LinkedList$Entry.previous]o18842) -> f8792_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8792), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o19804sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o19804sub0), java.lang.Object(o18845sub0), java.lang.Object(o19804sub0), o19804[LinkedList$Entry.previous]o18842, o19804[LinkedList$Entry.previous]o19804) :|: TRUE f8791_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8791), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), o18844[LinkedList$Entry.previous]o19858, o18844[LinkedList$Entry.previous]o18842, o19858[LinkedList$Entry.previous]o18842, o19858[LinkedList$Entry.previous]o18844) -> f8804_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8804), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: o19861[LinkedList$Entry.previous]o18842 < o19858[LinkedList$Entry.previous]o18842 && o19858[LinkedList$Entry.previous]o18842 >= 0 && o19861[LinkedList$Entry.previous]o18844 < o19858[LinkedList$Entry.previous]o18844 && o19858[LinkedList$Entry.previous]o18844 >= 0 f8804_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8804), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8817_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8817), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE f8817_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8817), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8830_0_equals_Load(EOS(STATIC_8830), java.lang.Object(o18845sub0), o198590, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), java.lang.Object(o18844sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o19861sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: i4645 > 1 && i3292 >= 1 f8817_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8817), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8830_1_equals_Load(EOS(STATIC_8830), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: i4645 > 1 && i3292 >= 1 f8830_0_equals_Load(EOS(STATIC_8830), java.lang.Object(o18845sub0), o198590, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), java.lang.Object(o18844sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o19861sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f9375_0_equals_Load(EOS(STATIC_9375), java.lang.Object(o18845sub0), o198590, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), java.lang.Object(o18844sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560, java.lang.Object(o19861sub1708887560))), java.lang.Object(o19861sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), o198590, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE f8905_0_equals_Return(EOS(STATIC_8905), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20622sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19861sub1708887560))), matching1, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8907_0_equals_Return(EOS(STATIC_8907), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20622sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19861sub1708887560))), 0, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE && matching1 = 0 f8907_0_equals_Return(EOS(STATIC_8907), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), matching1, o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) -> f8925_0_removeLastOccurrence_EQ(EOS(STATIC_8925), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), 0, o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) :|: TRUE && matching1 = 0 f8925_0_removeLastOccurrence_EQ(EOS(STATIC_8925), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), matching1, o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) -> f8937_0_removeLastOccurrence_Load(EOS(STATIC_8937), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) :|: TRUE && matching1 = 0 f8937_0_removeLastOccurrence_Load(EOS(STATIC_8937), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) -> f8952_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8952), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) :|: TRUE f8952_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8952), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208741729206789, java.lang.Object(o20876sub1729206789))), o20871[LinkedList$Entry.previous]o20869, o20871[LinkedList$Entry.previous]o20873, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) -> f8967_0_removeLastOccurrence_Store(EOS(STATIC_8967), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871, o20871[LinkedList$Entry.previous]o20876) :|: o20871[LinkedList$Entry.previous]o20876 > o20871[LinkedList$Entry.previous]o20873 && o20871[LinkedList$Entry.previous]o20873 >= 0 f8967_0_removeLastOccurrence_Store(EOS(STATIC_8967), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871, o20871[LinkedList$Entry.previous]o20876) -> f8982_0_removeLastOccurrence_JMP(EOS(STATIC_8982), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871, o20871[LinkedList$Entry.previous]o20876) :|: TRUE f8982_0_removeLastOccurrence_JMP(EOS(STATIC_8982), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871, o20871[LinkedList$Entry.previous]o20876) -> f8999_0_removeLastOccurrence_Load(EOS(STATIC_8999), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871, o20871[LinkedList$Entry.previous]o20876) :|: TRUE f8999_0_removeLastOccurrence_Load(EOS(STATIC_8999), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871, o20871[LinkedList$Entry.previous]o20876) -> f8687_0_removeLastOccurrence_Load(EOS(STATIC_8687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20870-836555299, java.lang.Object(o20871sub-836555299)))))))), java.lang.Object(o20872sub0), java.lang.Object(o20876sub0), o20871[LinkedList$Entry.previous]o20876, o20871[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20869, o20876[LinkedList$Entry.previous]o20871) :|: TRUE f8687_0_removeLastOccurrence_Load(EOS(STATIC_8687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) -> f8700_0_removeLastOccurrence_Load(EOS(STATIC_8700), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) :|: TRUE f8700_0_removeLastOccurrence_Load(EOS(STATIC_8700), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) -> f8712_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8712), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) :|: TRUE f8712_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8712), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) -> f8727_0_removeLastOccurrence_EQ(EOS(STATIC_8727), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) :|: TRUE f8727_0_removeLastOccurrence_EQ(EOS(STATIC_8727), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o18845sub0), java.lang.Object(o18846sub0), java.lang.Object(o18846sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(o18844sub1707962892))), o18844[LinkedList$Entry.previous]o18846, o18844[LinkedList$Entry.previous]o18842, o18846[LinkedList$Entry.previous]o18844, o18846[LinkedList$Entry.previous]o18842) :|: o18846[LinkedList$Entry.previous]o18842 > 0 f8906_0_equals_Return(EOS(STATIC_8906), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20635sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20637sub1708887560), java.lang.Object(o19861sub1708887560))), matching1, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8907_0_equals_Return(EOS(STATIC_8907), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20635sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20637sub1708887560), java.lang.Object(o19861sub1708887560))), 0, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE && matching1 = 0 f8908_0_equals_Return(EOS(STATIC_8908), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), matching1, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8910_0_equals_Return(EOS(STATIC_8910), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), 0, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE && matching1 = 0 f8910_0_equals_Return(EOS(STATIC_8910), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), i5127, o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) -> f8926_0_removeLastOccurrence_EQ(EOS(STATIC_8926), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), i5127, o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) :|: TRUE f8926_0_removeLastOccurrence_EQ(EOS(STATIC_8926), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), matching1, o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) -> f8939_0_removeLastOccurrence_EQ(EOS(STATIC_8939), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), 0, o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) :|: TRUE && matching1 = 0 f8939_0_removeLastOccurrence_EQ(EOS(STATIC_8939), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), matching1, o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) -> f8954_0_removeLastOccurrence_Load(EOS(STATIC_8954), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) :|: TRUE && matching1 = 0 f8954_0_removeLastOccurrence_Load(EOS(STATIC_8954), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) -> f8969_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8969), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) :|: TRUE f8969_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8969), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub1729230039))), o20907[LinkedList$Entry.previous]o20905, o20907[LinkedList$Entry.previous]o20909, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) -> f8984_0_removeLastOccurrence_Store(EOS(STATIC_8984), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907, o20907[LinkedList$Entry.previous]o20912) :|: o20907[LinkedList$Entry.previous]o20912 > o20907[LinkedList$Entry.previous]o20909 && o20907[LinkedList$Entry.previous]o20909 >= 0 f8984_0_removeLastOccurrence_Store(EOS(STATIC_8984), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907, o20907[LinkedList$Entry.previous]o20912) -> f9001_0_removeLastOccurrence_JMP(EOS(STATIC_9001), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907, o20907[LinkedList$Entry.previous]o20912) :|: TRUE f9001_0_removeLastOccurrence_JMP(EOS(STATIC_9001), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907, o20907[LinkedList$Entry.previous]o20912) -> f9012_0_removeLastOccurrence_Load(EOS(STATIC_9012), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907, o20907[LinkedList$Entry.previous]o20912) :|: TRUE f9012_0_removeLastOccurrence_Load(EOS(STATIC_9012), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907, o20907[LinkedList$Entry.previous]o20912) -> f8687_0_removeLastOccurrence_Load(EOS(STATIC_8687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20906-836507497, java.lang.Object(o20907sub-836507497)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0), o20907[LinkedList$Entry.previous]o20912, o20907[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20905, o20912[LinkedList$Entry.previous]o20907) :|: TRUE f8909_0_equals_Return(EOS(STATIC_8909), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), matching1, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8910_0_equals_Return(EOS(STATIC_8910), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), 1, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE && matching1 = 1 f8792_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8792), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), o19862[LinkedList$Entry.previous]o18842, o19862[LinkedList$Entry.previous]o19862) -> f8805_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8805), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: o19865[LinkedList$Entry.previous]o18842 < o19862[LinkedList$Entry.previous]o18842 && o19862[LinkedList$Entry.previous]o18842 >= 0 && o19865[LinkedList$Entry.previous]o19862 < o19862[LinkedList$Entry.previous]o19862 && o19862[LinkedList$Entry.previous]o19862 >= 0 f8805_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8805), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8818_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8818), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE f8818_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8818), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8831_0_equals_Load(EOS(STATIC_8831), java.lang.Object(o18845sub0), o198630, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863-878116069, java.lang.Object(o19865sub-878116069))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o19865sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: i4645 > 1 && i3292 >= 1 f8818_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8818), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8831_1_equals_Load(EOS(STATIC_8831), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: i4645 > 1 && i3292 >= 1 f8831_0_equals_Load(EOS(STATIC_8831), java.lang.Object(o18845sub0), o198630, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863-878116069, java.lang.Object(o19865sub-878116069))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o19865sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f9455_0_equals_Load(EOS(STATIC_9455), java.lang.Object(o18845sub0), o198630, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863-878116069, java.lang.Object(o19865sub-878116069))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335, java.lang.Object(o19865sub1708888335))), java.lang.Object(o19865sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o18845sub0), o198630, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE f8912_0_equals_Return(EOS(STATIC_8912), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20703sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub1708888335))), matching1, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8914_0_equals_Return(EOS(STATIC_8914), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20703sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub1708888335))), 0, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE && matching1 = 0 f8914_0_equals_Return(EOS(STATIC_8914), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), matching1, o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f8927_0_removeLastOccurrence_EQ(EOS(STATIC_8927), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), 0, o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: TRUE && matching1 = 0 f8927_0_removeLastOccurrence_EQ(EOS(STATIC_8927), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), matching1, o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f8940_0_removeLastOccurrence_Load(EOS(STATIC_8940), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: TRUE && matching1 = 0 f8940_0_removeLastOccurrence_Load(EOS(STATIC_8940), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f8955_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8955), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: TRUE f8955_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8955), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o209421729233635, java.lang.Object(o20944sub1729233635))), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f8970_0_removeLastOccurrence_Store(EOS(STATIC_8970), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: TRUE f8970_0_removeLastOccurrence_Store(EOS(STATIC_8970), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f8985_0_removeLastOccurrence_JMP(EOS(STATIC_8985), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: TRUE f8985_0_removeLastOccurrence_JMP(EOS(STATIC_8985), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f9002_0_removeLastOccurrence_Load(EOS(STATIC_9002), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: TRUE f9002_0_removeLastOccurrence_Load(EOS(STATIC_9002), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) -> f8687_0_removeLastOccurrence_Load(EOS(STATIC_8687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20940-836501483, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20942892732152, java.lang.Object(o20944sub892732152)))))))))), java.lang.Object(o20945sub0), java.lang.Object(o20944sub0), o20941[LinkedList$Entry.previous]o20944, o20941[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20939, o20944[LinkedList$Entry.previous]o20941) :|: o20941[LinkedList$Entry.previous]o20944 = 1 f8913_0_equals_Return(EOS(STATIC_8913), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub829846792), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20715sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub1708888335), java.lang.Object(o19865sub1708888335))), matching1, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8914_0_equals_Return(EOS(STATIC_8914), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub829846792), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20715sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub1708888335), java.lang.Object(o19865sub1708888335))), 0, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE && matching1 = 0 f8915_0_equals_Return(EOS(STATIC_8915), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), matching1, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8917_0_equals_Return(EOS(STATIC_8917), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), 0, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE && matching1 = 0 f8917_0_equals_Return(EOS(STATIC_8917), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), i5147, o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f8928_0_removeLastOccurrence_EQ(EOS(STATIC_8928), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), i5147, o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE f8928_0_removeLastOccurrence_EQ(EOS(STATIC_8928), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), matching1, o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f8942_0_removeLastOccurrence_EQ(EOS(STATIC_8942), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), 0, o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE && matching1 = 0 f8942_0_removeLastOccurrence_EQ(EOS(STATIC_8942), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), matching1, o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f8957_0_removeLastOccurrence_Load(EOS(STATIC_8957), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE && matching1 = 0 f8957_0_removeLastOccurrence_Load(EOS(STATIC_8957), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f8972_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8972), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE f8972_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8972), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub1729236487))), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f8987_0_removeLastOccurrence_Store(EOS(STATIC_8987), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE f8987_0_removeLastOccurrence_Store(EOS(STATIC_8987), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f9004_0_removeLastOccurrence_JMP(EOS(STATIC_9004), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE f9004_0_removeLastOccurrence_JMP(EOS(STATIC_9004), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f9013_0_removeLastOccurrence_Load(EOS(STATIC_9013), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: TRUE f9013_0_removeLastOccurrence_Load(EOS(STATIC_9013), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) -> f8687_0_removeLastOccurrence_Load(EOS(STATIC_8687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20969-836495779, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub892740708)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0), o20970[LinkedList$Entry.previous]o20973, o20970[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20968, o20973[LinkedList$Entry.previous]o20970) :|: o20970[LinkedList$Entry.previous]o20973 = 1 f8916_0_equals_Return(EOS(STATIC_8916), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), matching1, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8917_0_equals_Return(EOS(STATIC_8917), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), 1, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE && matching1 = 1 f8830_1_equals_Load(EOS(STATIC_8830), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20622sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19861sub1708887560))), java.lang.Object(o20622sub0), NULL, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8905_0_equals_Return(EOS(STATIC_8905), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20622sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19861sub1708887560))), 0, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE f8830_1_equals_Load(EOS(STATIC_8830), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20635sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20637sub1708887560), java.lang.Object(o19861sub1708887560))), java.lang.Object(o20635sub0), java.lang.Object(o20637sub0), o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8906_0_equals_Return(EOS(STATIC_8906), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(o20635sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20637sub1708887560), java.lang.Object(o19861sub1708887560))), 0, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE f8830_1_equals_Load(EOS(STATIC_8830), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8908_0_equals_Return(EOS(STATIC_8908), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), 0, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE f8830_1_equals_Load(EOS(STATIC_8830), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) -> f8909_0_equals_Return(EOS(STATIC_8909), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(o18844sub-879041543)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560))), 1, o18844[LinkedList$Entry.previous]o18842, o18844[LinkedList$Entry.previous]o19858, o19861[LinkedList$Entry.previous]o18842, o19861[LinkedList$Entry.previous]o18844) :|: TRUE f8831_1_equals_Load(EOS(STATIC_8831), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20703sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub1708888335))), java.lang.Object(o20703sub0), NULL, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8912_0_equals_Return(EOS(STATIC_8912), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20703sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub1708888335))), 0, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE f8831_1_equals_Load(EOS(STATIC_8831), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub829846792), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20715sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub1708888335), java.lang.Object(o19865sub1708888335))), java.lang.Object(o20715sub0), java.lang.Object(o20717sub0), o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8913_0_equals_Return(EOS(STATIC_8913), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub829846792), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(o20715sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub1708888335), java.lang.Object(o19865sub1708888335))), 0, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE f8831_1_equals_Load(EOS(STATIC_8831), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8915_0_equals_Return(EOS(STATIC_8915), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), 0, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE f8831_1_equals_Load(EOS(STATIC_8831), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) -> f8916_0_equals_Return(EOS(STATIC_8916), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335))), 1, o19865[LinkedList$Entry.previous]o18842, o19865[LinkedList$Entry.previous]o19862) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), java.lang.Object(o20944sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0) :|: o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && o19865[LinkedList$Entry.previous]o18842:0 > 0 && i4645:0 > 1 f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20912sub0:0), java.lang.Object(o20912sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), o20907[LinkedList$Entry.previous]o20912:0, o18844[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0, o19861[LinkedList$Entry.previous]o18842:0) :|: o18846[LinkedList$Entry.previous]o18844:0 > 0 && o18844[LinkedList$Entry.previous]o18846:0 > 0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && o20907[LinkedList$Entry.previous]o20912:0 > o18844[LinkedList$Entry.previous]o18846:0 && i3292:0 > 0 && o19861[LinkedList$Entry.previous]o18842:0 > 0 && i4645:0 > 1 f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20876sub0:0), java.lang.Object(o20876sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), o20871[LinkedList$Entry.previous]o20876:0, o18844[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0, o19861[LinkedList$Entry.previous]o18842:0) :|: o18846[LinkedList$Entry.previous]o18844:0 > 0 && o18844[LinkedList$Entry.previous]o18846:0 > 0 && o20871[LinkedList$Entry.previous]o20876:0 > o18844[LinkedList$Entry.previous]o18846:0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && i3292:0 > 0 && o19861[LinkedList$Entry.previous]o18842:0 > 0 && i4645:0 > 1 f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20637sub1708887560:0), java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20637sub1708887560:0), java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20876sub0:0), java.lang.Object(o20876sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), o20871[LinkedList$Entry.previous]o20876:0, o18844[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0, o19861[LinkedList$Entry.previous]o18842:0) :|: o18846[LinkedList$Entry.previous]o18844:0 > 0 && o18844[LinkedList$Entry.previous]o18846:0 > 0 && o20871[LinkedList$Entry.previous]o20876:0 > o18844[LinkedList$Entry.previous]o18846:0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && i3292:0 > 0 && o19861[LinkedList$Entry.previous]o18842:0 > 0 && i4645:0 > 1 f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), java.lang.Object(o20944sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0) :|: o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && o19865[LinkedList$Entry.previous]o18842:0 > 0 && i4645:0 > 1 f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0) -> f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20973sub0:0), java.lang.Object(o20973sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), 1, o20970[LinkedList$Entry.previous]o20968:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0) :|: o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && o19865[LinkedList$Entry.previous]o18842:0 > 0 && i4645:0 > 1 Removed following non-SCC rules: f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560:0, java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560:0, java.lang.Object(o19861sub1708887560:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0) -> f9375_0_equals_Load(EOS(STATIC_9375), java.lang.Object(o18845sub0:0), o198590:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(o18844sub1707962892:1))), java.lang.Object(o18844sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198591708887560:0, java.lang.Object(o19861sub1708887560:0))), java.lang.Object(o19861sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), o198590:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o19861[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0) :|: o18846[LinkedList$Entry.previous]o18844:0 > 0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && o18844[LinkedList$Entry.previous]o18846:0 > 0 && i4645:0 > 1 && i3292:0 > 0 f8743_0_removeLastOccurrence_EQ(EOS(STATIC_8743), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792:0, java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335:0, java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335:0, java.lang.Object(o19865sub1708888335:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:0, java.lang.Object(o18844sub1707962892:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0) -> f9455_0_equals_Load(EOS(STATIC_9455), java.lang.Object(o18845sub0:0), o198630:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o188431707962892:1, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863-878116069:0, java.lang.Object(o19865sub-878116069:0))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198631708888335:0, java.lang.Object(o19865sub1708888335:0))), java.lang.Object(o19865sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19863829846792:0, java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), o198630:0, o19865[LinkedList$Entry.previous]o18842:0, o19865[LinkedList$Entry.previous]o19862:0) :|: o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i4645:0 > 1 && i3292:0 > 0 Filtered constant ground arguments: f8743_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f8743_0_removeLastOccurrence_EQ(x2, x3, x4, x5, x6, x7, x8, x9, x10) EOS(x1) -> EOS javaUtilEx.LinkedList$Entry(x1, x2, x3) -> javaUtilEx.LinkedList$Entry(x2, x3) javaUtilEx.Content(x1) -> javaUtilEx.Content javaUtilEx.LinkedList(x1, x2) -> javaUtilEx.LinkedList(x2) Filtered duplicate arguments: f8743_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f8743_0_removeLastOccurrence_EQ(x1, x2, x4, x5, x6, x7, x8, x9) Filtered unneeded arguments: f8743_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8) -> f8743_0_removeLastOccurrence_EQ(x1, x2, x3, x5, x6, x7, x8) Finished conversion. Obtained 6 rules.P rules: f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19861sub1708887560:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(o20912sub0:0), o20907[LinkedList$Entry.previous]o20912:0, o18844[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0, o19861[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o18844[LinkedList$Entry.previous]o18846:0 > 0 && o18846[LinkedList$Entry.previous]o18844:0 > 0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && o20907[LinkedList$Entry.previous]o20912:0 > o18844[LinkedList$Entry.previous]o18846:0 && i3292:0 > 0 && i4645:0 > 1 && o19861[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19861sub1708887560:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20876sub0:0), o20871[LinkedList$Entry.previous]o20876:0, o18844[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0, o19861[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o18844[LinkedList$Entry.previous]o18846:0 > 0 && o18846[LinkedList$Entry.previous]o18844:0 > 0 && o20871[LinkedList$Entry.previous]o20876:0 > o18844[LinkedList$Entry.previous]o18846:0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && i3292:0 > 0 && i4645:0 > 1 && o19861[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20637sub1708887560:0), java.lang.Object(o19861sub1708887560:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18846[LinkedList$Entry.previous]o18844:0, o18846[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(o18844sub-879041543:0)))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20876sub0:0), o20871[LinkedList$Entry.previous]o20876:0, o18844[LinkedList$Entry.previous]o18842:0, o19861[LinkedList$Entry.previous]o18844:0, o19861[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o18844[LinkedList$Entry.previous]o18846:0 > 0 && o18846[LinkedList$Entry.previous]o18844:0 > 0 && o20871[LinkedList$Entry.previous]o20876:0 > o18844[LinkedList$Entry.previous]o18846:0 && o18846[LinkedList$Entry.previous]o18842:0 > -1 && o19861[LinkedList$Entry.previous]o18842:0 < o18846[LinkedList$Entry.previous]o18842:0 && o19861[LinkedList$Entry.previous]o18844:0 < o18846[LinkedList$Entry.previous]o18844:0 && i3292:0 > 0 && i4645:0 > 1 && o19861[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(o20973sub0:0), 1, o20970[LinkedList$Entry.previous]o20968:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 ---------------------------------------- (24) Obligation: Rules: f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x16))), x17, x18, x19, x20, x13) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(x21), x22, x18, x23, x24, x13) :|: x17 > 0 && x19 > 0 && x22 > x17 && x20 > -1 && x24 < x20 && x23 < x19 && x25 > 0 && x26 > 1 && x24 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x30), java.lang.Object(x31))), x32, x33, x34, x35, x27) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(x36), x37, x33, x38, x39, x27) :|: x32 > 0 && x34 > 0 && x37 > x32 && x35 > -1 && x39 < x35 && x38 < x34 && x40 > 0 && x41 > 1 && x39 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x45))), x46, x47, x46, x47, x42) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(x48), 1, x49, x50, x51, x42) :|: x51 < x47 && x47 > -1 && x50 < x46 && x46 > -1 && x52 > 0 && x53 > 1 && x51 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x56))), x57, x58, x57, x58, x54) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x59), 1, x60, x61, x62, x54) :|: x62 < x58 && x58 > -1 && x61 < x57 && x57 > -1 && x63 > 0 && x64 > 1 && x62 > 0 ---------------------------------------- (25) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (26) Obligation: Rules: f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x16))), x17, x18, x19, x20, x13) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(x21), x22, x18, x23, x24, x13) :|: x17 > 0 && x19 > 0 && x22 > x17 && x20 > -1 && x24 < x20 && x23 < x19 && x25 > 0 && x26 > 1 && x24 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x30), java.lang.Object(x31))), x32, x33, x34, x35, x27) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(x36), x37, x33, x38, x39, x27) :|: x32 > 0 && x34 > 0 && x37 > x32 && x35 > -1 && x39 < x35 && x38 < x34 && x40 > 0 && x41 > 1 && x39 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x45))), x46, x47, x46, x47, x42) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(x48), 1, x49, x50, x51, x42) :|: x51 < x47 && x47 > -1 && x50 < x46 && x46 > -1 && x52 > 0 && x53 > 1 && x51 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x56))), x57, x58, x57, x58, x54) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x59), 1, x60, x61, x62, x54) :|: x62 < x58 && x58 > -1 && x61 < x57 && x57 > -1 && x63 > 0 && x64 > 1 && x62 > 0 ---------------------------------------- (27) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 (2) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 (3) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x16))), x17, x18, x19, x20, x13) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(x21), x22, x18, x23, x24, x13) :|: x17 > 0 && x19 > 0 && x22 > x17 && x20 > -1 && x24 < x20 && x23 < x19 && x25 > 0 && x26 > 1 && x24 > 0 (4) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x30), java.lang.Object(x31))), x32, x33, x34, x35, x27) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(x36), x37, x33, x38, x39, x27) :|: x32 > 0 && x34 > 0 && x37 > x32 && x35 > -1 && x39 < x35 && x38 < x34 && x40 > 0 && x41 > 1 && x39 > 0 (5) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x45))), x46, x47, x46, x47, x42) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(x48), 1, x49, x50, x51, x42) :|: x51 < x47 && x47 > -1 && x50 < x46 && x46 > -1 && x52 > 0 && x53 > 1 && x51 > 0 (6) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x56))), x57, x58, x57, x58, x54) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x59), 1, x60, x61, x62, x54) :|: x62 < x58 && x58 > -1 && x61 < x57 && x57 > -1 && x63 > 0 && x64 > 1 && x62 > 0 Arcs: (1) -> (1), (2), (3), (4), (6) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (4), (5), (6) (4) -> (1), (2), (3), (4), (5), (6) (5) -> (2), (3), (4), (5) (6) -> (1), (2), (3), (4), (6) This digraph is fully evaluated! ---------------------------------------- (28) Obligation: Termination digraph: Nodes: (1) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub1708888335:0), java.lang.Object(o19865sub1708888335:0))), o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18844[LinkedList$Entry.previous]o18846:0, o18844[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0), java.lang.Object(o19865sub829846792:0)))))))))), java.lang.Object(o18845sub0:0), java.lang.Object(o20944sub0:0), 1, o20941[LinkedList$Entry.previous]o20939:0, o19865[LinkedList$Entry.previous]o19862:0, o19865[LinkedList$Entry.previous]o18842:0, o18843-879041543:0) :|: o19865[LinkedList$Entry.previous]o18842:0 < o18844[LinkedList$Entry.previous]o18842:0 && o18844[LinkedList$Entry.previous]o18842:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0 < o18844[LinkedList$Entry.previous]o18846:0 && o18844[LinkedList$Entry.previous]o18846:0 > -1 && i3292:0 > 0 && i4645:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0 > 0 (2) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 (3) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x16))), x17, x18, x19, x20, x13) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(x14)))))))), java.lang.Object(x15), java.lang.Object(x21), x22, x18, x23, x24, x13) :|: x17 > 0 && x19 > 0 && x22 > x17 && x20 > -1 && x24 < x20 && x23 < x19 && x25 > 0 && x26 > 1 && x24 > 0 (4) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x30), java.lang.Object(x31))), x32, x33, x34, x35, x27) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(x28)))))))), java.lang.Object(x29), java.lang.Object(x36), x37, x33, x38, x39, x27) :|: x32 > 0 && x34 > 0 && x37 > x32 && x35 > -1 && x39 < x35 && x38 < x34 && x40 > 0 && x41 > 1 && x39 > 0 (5) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x56))), x57, x58, x57, x58, x54) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x59), 1, x60, x61, x62, x54) :|: x62 < x58 && x58 > -1 && x61 < x57 && x57 > -1 && x63 > 0 && x64 > 1 && x62 > 0 (6) f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x45))), x46, x47, x46, x47, x42) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43)))))))))), java.lang.Object(x44), java.lang.Object(x48), 1, x49, x50, x51, x42) :|: x51 < x47 && x47 > -1 && x50 < x46 && x46 > -1 && x52 > 0 && x53 > 1 && x51 > 0 Arcs: (1) -> (1), (2), (3), (4), (5) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (4), (5), (6) (4) -> (1), (2), (3), (4), (5), (6) (5) -> (1), (2), (3), (4), (5) (6) -> (2), (3), (4), (6) This digraph is fully evaluated! ---------------------------------------- (29) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (30) Obligation: Rules: f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x56:0))), x57:0, x58:0, x57:0, x58:0, x54:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x54:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x55:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x59:0), 1, x60:0, x61:0, x62:0, x54:0) :|: x64:0 > 1 && x62:0 > 0 && x63:0 > 0 && x57:0 > -1 && x61:0 < x57:0 && x58:0 > -1 && x62:0 < x58:0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43:0)))))))))), java.lang.Object(x44:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x45:0))), x46:0, x47:0, x46:0, x47:0, x42:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x42:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x43:0)))))))))), java.lang.Object(x44:0), java.lang.Object(x48:0), 1, x49:0, x50:0, x51:0, x42:0) :|: x53:0 > 1 && x51:0 > 0 && x52:0 > 0 && x46:0 > -1 && x50:0 < x46:0 && x47:0 > -1 && x51:0 < x47:0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27:0, java.lang.Object(x28:0)))))))), java.lang.Object(x29:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x30:0), java.lang.Object(x31:0))), x32:0, x33:0, x34:0, x35:0, x27:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27:0, java.lang.Object(x28:0)))))))), java.lang.Object(x29:0), java.lang.Object(x36:0), x37:0, x33:0, x38:0, x39:0, x27:0) :|: x41:0 > 1 && x39:0 > 0 && x40:0 > 0 && x38:0 < x34:0 && x39:0 < x35:0 && x35:0 > -1 && x37:0 > x32:0 && x34:0 > 0 && x32:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13:0, java.lang.Object(x14:0)))))))), java.lang.Object(x15:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x16:0))), x17:0, x18:0, x19:0, x20:0, x13:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13:0, java.lang.Object(x14:0)))))))), java.lang.Object(x15:0), java.lang.Object(x21:0), x22:0, x18:0, x23:0, x24:0, x13:0) :|: x26:0 > 1 && x24:0 > 0 && x25:0 > 0 && x23:0 < x19:0 && x24:0 < x20:0 && x20:0 > -1 && x22:0 > x17:0 && x19:0 > 0 && x17:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2:0))), x3:0, x4:0, x5:0, x6:0, x:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7:0), x8:0, x4:0, x9:0, x10:0, x:0) :|: x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0 f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0:0), java.lang.Object(o19865sub829846792:0:0)))))))))), java.lang.Object(o18845sub0:0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub1708888335:0:0), java.lang.Object(o19865sub1708888335:0:0))), o18844[LinkedList$Entry.previous]o18846:0:0, o18844[LinkedList$Entry.previous]o18842:0:0, o18844[LinkedList$Entry.previous]o18846:0:0, o18844[LinkedList$Entry.previous]o18842:0:0, o18843-879041543:0:0) -> f8743_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18843-879041543:0:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20717sub829846792:0:0), java.lang.Object(o19865sub829846792:0:0)))))))))), java.lang.Object(o18845sub0:0:0), java.lang.Object(o20944sub0:0:0), 1, o20941[LinkedList$Entry.previous]o20939:0:0, o19865[LinkedList$Entry.previous]o19862:0:0, o19865[LinkedList$Entry.previous]o18842:0:0, o18843-879041543:0:0) :|: i4645:0:0 > 1 && o19865[LinkedList$Entry.previous]o18842:0:0 > 0 && i3292:0:0 > 0 && o18844[LinkedList$Entry.previous]o18846:0:0 > -1 && o19865[LinkedList$Entry.previous]o19862:0:0 < o18844[LinkedList$Entry.previous]o18846:0:0 && o18844[LinkedList$Entry.previous]o18842:0:0 > -1 && o19865[LinkedList$Entry.previous]o18842:0:0 < o18844[LinkedList$Entry.previous]o18842:0:0 ---------------------------------------- (31) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f8743_0_removeLastOccurrence_EQ(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE) java.lang.Object(VARIABLE) javaUtilEx.AbstractCollection(VARIABLE) javaUtilEx.AbstractList(VARIABLE) javaUtilEx.AbstractSequentialList(VARIABLE) javaUtilEx.LinkedList(VARIABLE) javaUtilEx.LinkedList$Entry(VARIABLE, VARIABLE) javaUtilEx.Content() NULL() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (32) Obligation: Rules: f8743_0_removeLastOccurrence_EQ(c, c1, c2, x57:0, x58:0, x57:0, x58:0, x54:0) -> f8743_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x60:0, x61:0, x62:0, x54:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x64:0 > 1 && x62:0 > 0 && x63:0 > 0 && x57:0 > -1 && x61:0 < x57:0 && x58:0 > -1 && x62:0 < x58:0) f8743_0_removeLastOccurrence_EQ(c14, c15, c16, x32:0, x33:0, x34:0, x35:0, x27:0) -> f8743_0_removeLastOccurrence_EQ(c17, c18, c19, x37:0, x33:0, x38:0, x39:0, x27:0) :|: c19 = 0 && (c18 = 0 && (c17 = 0 && (c16 = 0 && (c15 = 0 && c14 = 0)))) && (x41:0 > 1 && x39:0 > 0 && x40:0 > 0 && x38:0 < x34:0 && x39:0 < x35:0 && x35:0 > -1 && x37:0 > x32:0 && x34:0 > 0 && x32:0 > 0) f8743_0_removeLastOccurrence_EQ(c26, c27, c28, x3:0, x4:0, x5:0, x6:0, x:0) -> f8743_0_removeLastOccurrence_EQ(c29, c30, c31, x8:0, x4:0, x9:0, x10:0, x:0) :|: c31 = 0 && (c30 = 0 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0) ---------------------------------------- (33) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8743_0_removeLastOccurrence_EQ(x, x1, x2, x3, x4, x5, x6, x7)] = -1 + c*x + c1*x1 + c2*x2 + 2*x5 The following rules are decreasing: f8743_0_removeLastOccurrence_EQ(c, c1, c2, x57:0, x58:0, x57:0, x58:0, x54:0) -> f8743_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x60:0, x61:0, x62:0, x54:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x64:0 > 1 && x62:0 > 0 && x63:0 > 0 && x57:0 > -1 && x61:0 < x57:0 && x58:0 > -1 && x62:0 < x58:0) f8743_0_removeLastOccurrence_EQ(c14, c15, c16, x32:0, x33:0, x34:0, x35:0, x27:0) -> f8743_0_removeLastOccurrence_EQ(c17, c18, c19, x37:0, x33:0, x38:0, x39:0, x27:0) :|: c19 = 0 && (c18 = 0 && (c17 = 0 && (c16 = 0 && (c15 = 0 && c14 = 0)))) && (x41:0 > 1 && x39:0 > 0 && x40:0 > 0 && x38:0 < x34:0 && x39:0 < x35:0 && x35:0 > -1 && x37:0 > x32:0 && x34:0 > 0 && x32:0 > 0) f8743_0_removeLastOccurrence_EQ(c26, c27, c28, x3:0, x4:0, x5:0, x6:0, x:0) -> f8743_0_removeLastOccurrence_EQ(c29, c30, c31, x8:0, x4:0, x9:0, x10:0, x:0) :|: c31 = 0 && (c30 = 0 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0) The following rules are bounded: f8743_0_removeLastOccurrence_EQ(c14, c15, c16, x32:0, x33:0, x34:0, x35:0, x27:0) -> f8743_0_removeLastOccurrence_EQ(c17, c18, c19, x37:0, x33:0, x38:0, x39:0, x27:0) :|: c19 = 0 && (c18 = 0 && (c17 = 0 && (c16 = 0 && (c15 = 0 && c14 = 0)))) && (x41:0 > 1 && x39:0 > 0 && x40:0 > 0 && x38:0 < x34:0 && x39:0 < x35:0 && x35:0 > -1 && x37:0 > x32:0 && x34:0 > 0 && x32:0 > 0) f8743_0_removeLastOccurrence_EQ(c26, c27, c28, x3:0, x4:0, x5:0, x6:0, x:0) -> f8743_0_removeLastOccurrence_EQ(c29, c30, c31, x8:0, x4:0, x9:0, x10:0, x:0) :|: c31 = 0 && (c30 = 0 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0) ---------------------------------------- (34) Obligation: Rules: f8743_0_removeLastOccurrence_EQ(c, c1, c2, x57:0, x58:0, x57:0, x58:0, x54:0) -> f8743_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x60:0, x61:0, x62:0, x54:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x64:0 > 1 && x62:0 > 0 && x63:0 > 0 && x57:0 > -1 && x61:0 < x57:0 && x58:0 > -1 && x62:0 < x58:0) ---------------------------------------- (35) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8743_0_removeLastOccurrence_EQ ] = f8743_0_removeLastOccurrence_EQ_7 The following rules are decreasing: f8743_0_removeLastOccurrence_EQ(c, c1, c2, x57:0, x58:0, x57:0, x58:0, x54:0) -> f8743_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x60:0, x61:0, x62:0, x54:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x64:0 > 1 && x62:0 > 0 && x63:0 > 0 && x57:0 > -1 && x61:0 < x57:0 && x58:0 > -1 && x62:0 < x58:0) The following rules are bounded: f8743_0_removeLastOccurrence_EQ(c, c1, c2, x57:0, x58:0, x57:0, x58:0, x54:0) -> f8743_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x60:0, x61:0, x62:0, x54:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x64:0 > 1 && x62:0 > 0 && x63:0 > 0 && x57:0 > -1 && x61:0 < x57:0 && x58:0 > -1 && x62:0 < x58:0) ---------------------------------------- (36) YES ---------------------------------------- (37) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: javaUtilEx.Content.equals(Ljava/lang/Object;)Z Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [element, previous] *javaUtilEx.LinkedList: [header] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (38) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 65 IRulesP rules: f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) -> f8754_0_removeLastOccurrence_Load(EOS(STATIC_8754), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) :|: TRUE f8754_0_removeLastOccurrence_Load(EOS(STATIC_8754), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) -> f8767_0_removeLastOccurrence_Load(EOS(STATIC_8767), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18691sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) :|: TRUE f8767_0_removeLastOccurrence_Load(EOS(STATIC_8767), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18691sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) -> f8778_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8778), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) :|: TRUE f8778_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8778), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) -> f8789_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8789), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) :|: o18690[LinkedList$Entry.previous]o18692 > 0 && o18692[LinkedList$Entry.previous]o18690 > 0 f8778_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8778), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o19801sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o19801sub0), java.lang.Object(o18691sub0), java.lang.Object(o19801sub0), o19801[LinkedList$Entry.previous]o19801, o18689[LinkedList$Entry.next]o18687, o19801[LinkedList$Entry.previous]o18687, o19801[LinkedList$Entry.previous]o19801, o19801[LinkedList$Entry.previous]o18687) -> f8790_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8790), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o19801sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o19801sub0), java.lang.Object(o18691sub0), java.lang.Object(o19801sub0), o18689[LinkedList$Entry.next]o18687, o19801[LinkedList$Entry.previous]o18687, o19801[LinkedList$Entry.previous]o19801) :|: TRUE f8789_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8789), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), o18690[LinkedList$Entry.previous]o19850, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o19850[LinkedList$Entry.previous]o18687, o19850[LinkedList$Entry.previous]o18690) -> f8802_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8802), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: o19853[LinkedList$Entry.previous]o18687 < o19850[LinkedList$Entry.previous]o18687 && o19850[LinkedList$Entry.previous]o18687 >= 0 && o19853[LinkedList$Entry.previous]o18690 < o19850[LinkedList$Entry.previous]o18690 && o19850[LinkedList$Entry.previous]o18690 >= 0 f8802_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8802), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8815_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8815), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE f8815_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8815), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8828_0_equals_Load(EOS(STATIC_8828), java.lang.Object(o18691sub0), o198510, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), java.lang.Object(o18690sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o19853sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: i4612 > 1 && i3292 >= 1 f8815_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8815), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8828_1_equals_Load(EOS(STATIC_8828), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: i4612 > 1 && i3292 >= 1 f8828_0_equals_Load(EOS(STATIC_8828), java.lang.Object(o18691sub0), o198510, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), java.lang.Object(o18690sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o19853sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f9599_0_equals_Load(EOS(STATIC_9599), java.lang.Object(o18691sub0), o198510, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), java.lang.Object(o18690sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312, java.lang.Object(o19853sub1708887312))), java.lang.Object(o19853sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), o198510, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE f8891_0_equals_Return(EOS(STATIC_8891), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20455sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19853sub1708887312))), matching1, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8893_0_equals_Return(EOS(STATIC_8893), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20455sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19853sub1708887312))), 0, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE && matching1 = 0 f8893_0_equals_Return(EOS(STATIC_8893), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), matching1, o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) -> f8921_0_removeLastOccurrence_EQ(EOS(STATIC_8921), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), 0, o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) :|: TRUE && matching1 = 0 f8921_0_removeLastOccurrence_EQ(EOS(STATIC_8921), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), matching1, o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) -> f8931_0_removeLastOccurrence_Load(EOS(STATIC_8931), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) :|: TRUE && matching1 = 0 f8931_0_removeLastOccurrence_Load(EOS(STATIC_8931), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) -> f8946_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8946), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) :|: TRUE f8946_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8946), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208021729200000, java.lang.Object(o20804sub1729200000))), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20799[LinkedList$Entry.previous]o20801, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) -> f8961_0_removeLastOccurrence_Store(EOS(STATIC_8961), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799, o20799[LinkedList$Entry.previous]o20804) :|: o20799[LinkedList$Entry.previous]o20804 > o20799[LinkedList$Entry.previous]o20801 && o20799[LinkedList$Entry.previous]o20801 >= 0 f8961_0_removeLastOccurrence_Store(EOS(STATIC_8961), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799, o20799[LinkedList$Entry.previous]o20804) -> f8976_0_removeLastOccurrence_JMP(EOS(STATIC_8976), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799, o20799[LinkedList$Entry.previous]o20804) :|: TRUE f8976_0_removeLastOccurrence_JMP(EOS(STATIC_8976), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799, o20799[LinkedList$Entry.previous]o20804) -> f8993_0_removeLastOccurrence_Load(EOS(STATIC_8993), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799, o20799[LinkedList$Entry.previous]o20804) :|: TRUE f8993_0_removeLastOccurrence_Load(EOS(STATIC_8993), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799, o20799[LinkedList$Entry.previous]o20804) -> f8685_0_removeLastOccurrence_Load(EOS(STATIC_8685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20797-836609301, java.lang.Object(o20799sub-836609301)))))))), java.lang.Object(o20800sub0), java.lang.Object(o20804sub0), o20799[LinkedList$Entry.previous]o20804, o20798[LinkedList$Entry.next]o20796, o20799[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20796, o20804[LinkedList$Entry.previous]o20799) :|: TRUE f8685_0_removeLastOccurrence_Load(EOS(STATIC_8685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) -> f8699_0_removeLastOccurrence_Load(EOS(STATIC_8699), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) :|: TRUE f8699_0_removeLastOccurrence_Load(EOS(STATIC_8699), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) -> f8711_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8711), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) :|: TRUE f8711_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8711), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) -> f8726_0_removeLastOccurrence_EQ(EOS(STATIC_8726), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) :|: TRUE f8726_0_removeLastOccurrence_EQ(EOS(STATIC_8726), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o18691sub0), java.lang.Object(o18692sub0), java.lang.Object(o18692sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(o18690sub1707907309))), o18690[LinkedList$Entry.previous]o18692, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18692[LinkedList$Entry.previous]o18690, o18692[LinkedList$Entry.previous]o18687) :|: o18692[LinkedList$Entry.previous]o18687 > 0 f8892_0_equals_Return(EOS(STATIC_8892), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20469sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20471sub1708887312), java.lang.Object(o19853sub1708887312))), matching1, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8893_0_equals_Return(EOS(STATIC_8893), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20469sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20471sub1708887312), java.lang.Object(o19853sub1708887312))), 0, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE && matching1 = 0 f8894_0_equals_Return(EOS(STATIC_8894), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), matching1, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8896_0_equals_Return(EOS(STATIC_8896), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), 0, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE && matching1 = 0 f8896_0_equals_Return(EOS(STATIC_8896), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), i5104, o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) -> f8922_0_removeLastOccurrence_EQ(EOS(STATIC_8922), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), i5104, o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) :|: TRUE f8922_0_removeLastOccurrence_EQ(EOS(STATIC_8922), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), matching1, o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) -> f8933_0_removeLastOccurrence_EQ(EOS(STATIC_8933), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), 0, o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) :|: TRUE && matching1 = 0 f8933_0_removeLastOccurrence_EQ(EOS(STATIC_8933), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), matching1, o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) -> f8948_0_removeLastOccurrence_Load(EOS(STATIC_8948), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) :|: TRUE && matching1 = 0 f8948_0_removeLastOccurrence_Load(EOS(STATIC_8948), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) -> f8963_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8963), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) :|: TRUE f8963_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8963), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub1729201209))), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20817[LinkedList$Entry.previous]o20819, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) -> f8978_0_removeLastOccurrence_Store(EOS(STATIC_8978), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817, o20817[LinkedList$Entry.previous]o20822) :|: o20817[LinkedList$Entry.previous]o20822 > o20817[LinkedList$Entry.previous]o20819 && o20817[LinkedList$Entry.previous]o20819 >= 0 f8978_0_removeLastOccurrence_Store(EOS(STATIC_8978), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817, o20817[LinkedList$Entry.previous]o20822) -> f8995_0_removeLastOccurrence_JMP(EOS(STATIC_8995), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817, o20817[LinkedList$Entry.previous]o20822) :|: TRUE f8995_0_removeLastOccurrence_JMP(EOS(STATIC_8995), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817, o20817[LinkedList$Entry.previous]o20822) -> f9010_0_removeLastOccurrence_Load(EOS(STATIC_9010), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817, o20817[LinkedList$Entry.previous]o20822) :|: TRUE f9010_0_removeLastOccurrence_Load(EOS(STATIC_9010), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817, o20817[LinkedList$Entry.previous]o20822) -> f8685_0_removeLastOccurrence_Load(EOS(STATIC_8685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20815-836565219, java.lang.Object(o20817sub-836565219)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0), o20817[LinkedList$Entry.previous]o20822, o20816[LinkedList$Entry.next]o20814, o20817[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20814, o20822[LinkedList$Entry.previous]o20817) :|: TRUE f8895_0_equals_Return(EOS(STATIC_8895), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), matching1, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8896_0_equals_Return(EOS(STATIC_8896), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), 1, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE && matching1 = 1 f8790_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8790), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), o18689[LinkedList$Entry.next]o18687, o19854[LinkedList$Entry.previous]o18687, o19854[LinkedList$Entry.previous]o19854) -> f8803_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8803), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: o19857[LinkedList$Entry.previous]o18687 < o19854[LinkedList$Entry.previous]o18687 && o19854[LinkedList$Entry.previous]o18687 >= 0 && o19857[LinkedList$Entry.previous]o19854 < o19854[LinkedList$Entry.previous]o19854 && o19854[LinkedList$Entry.previous]o19854 >= 0 f8803_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8803), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8816_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8816), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE f8816_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8816), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8829_0_equals_Load(EOS(STATIC_8829), java.lang.Object(o18691sub0), o198550, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855-878172551, java.lang.Object(o19857sub-878172551))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o19857sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: i4612 > 1 && i3292 >= 1 f8816_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_8816), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8829_1_equals_Load(EOS(STATIC_8829), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: i4612 > 1 && i3292 >= 1 f8829_0_equals_Load(EOS(STATIC_8829), java.lang.Object(o18691sub0), o198550, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855-878172551, java.lang.Object(o19857sub-878172551))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o19857sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f9679_0_equals_Load(EOS(STATIC_9679), java.lang.Object(o18691sub0), o198550, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855-878172551, java.lang.Object(o19857sub-878172551))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436, java.lang.Object(o19857sub1708887436))), java.lang.Object(o19857sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o18691sub0), o198550, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE f8898_0_equals_Return(EOS(STATIC_8898), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20540sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub1708887436))), matching1, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8900_0_equals_Return(EOS(STATIC_8900), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20540sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub1708887436))), 0, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE && matching1 = 0 f8900_0_equals_Return(EOS(STATIC_8900), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), matching1, o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8923_0_removeLastOccurrence_EQ(EOS(STATIC_8923), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), 0, o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: TRUE && matching1 = 0 f8923_0_removeLastOccurrence_EQ(EOS(STATIC_8923), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), matching1, o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8934_0_removeLastOccurrence_Load(EOS(STATIC_8934), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: TRUE && matching1 = 0 f8934_0_removeLastOccurrence_Load(EOS(STATIC_8934), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8949_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8949), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: TRUE f8949_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8949), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o208341729202945, java.lang.Object(o20836sub1729202945))), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8964_0_removeLastOccurrence_Store(EOS(STATIC_8964), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: TRUE f8964_0_removeLastOccurrence_Store(EOS(STATIC_8964), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8979_0_removeLastOccurrence_JMP(EOS(STATIC_8979), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: TRUE f8979_0_removeLastOccurrence_JMP(EOS(STATIC_8979), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8996_0_removeLastOccurrence_Load(EOS(STATIC_8996), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: TRUE f8996_0_removeLastOccurrence_Load(EOS(STATIC_8996), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20832[LinkedList$Entry.next]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) -> f8685_0_removeLastOccurrence_Load(EOS(STATIC_8685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20831-836562274, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20834892640671, java.lang.Object(o20836sub892640671)))))))))), java.lang.Object(o20837sub0), java.lang.Object(o20836sub0), o20833[LinkedList$Entry.previous]o20836, o20832[LinkedList$Entry.next]o20830, o20833[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20830, o20836[LinkedList$Entry.previous]o20833) :|: o20833[LinkedList$Entry.previous]o20836 = 1 f8899_0_equals_Return(EOS(STATIC_8899), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub829734727), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20553sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub1708887436), java.lang.Object(o19857sub1708887436))), matching1, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8900_0_equals_Return(EOS(STATIC_8900), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub829734727), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20553sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub1708887436), java.lang.Object(o19857sub1708887436))), 0, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE && matching1 = 0 f8901_0_equals_Return(EOS(STATIC_8901), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), matching1, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8903_0_equals_Return(EOS(STATIC_8903), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), 0, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE && matching1 = 0 f8903_0_equals_Return(EOS(STATIC_8903), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), i5114, o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8924_0_removeLastOccurrence_EQ(EOS(STATIC_8924), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), i5114, o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE f8924_0_removeLastOccurrence_EQ(EOS(STATIC_8924), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), matching1, o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8936_0_removeLastOccurrence_EQ(EOS(STATIC_8936), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), 0, o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE && matching1 = 0 f8936_0_removeLastOccurrence_EQ(EOS(STATIC_8936), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), matching1, o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8951_0_removeLastOccurrence_Load(EOS(STATIC_8951), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE && matching1 = 0 f8951_0_removeLastOccurrence_Load(EOS(STATIC_8951), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8966_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8966), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE f8966_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8966), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub1729204836))), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8981_0_removeLastOccurrence_Store(EOS(STATIC_8981), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE f8981_0_removeLastOccurrence_Store(EOS(STATIC_8981), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8998_0_removeLastOccurrence_JMP(EOS(STATIC_8998), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE f8998_0_removeLastOccurrence_JMP(EOS(STATIC_8998), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f9011_0_removeLastOccurrence_Load(EOS(STATIC_9011), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: TRUE f9011_0_removeLastOccurrence_Load(EOS(STATIC_9011), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20851[LinkedList$Entry.next]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) -> f8685_0_removeLastOccurrence_Load(EOS(STATIC_8685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o20850-836559143, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub892645693)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0), o20852[LinkedList$Entry.previous]o20855, o20851[LinkedList$Entry.next]o20849, o20852[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20849, o20855[LinkedList$Entry.previous]o20852) :|: o20852[LinkedList$Entry.previous]o20855 = 1 f8902_0_equals_Return(EOS(STATIC_8902), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), matching1, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8903_0_equals_Return(EOS(STATIC_8903), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), 1, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE && matching1 = 1 f8828_1_equals_Load(EOS(STATIC_8828), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20455sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19853sub1708887312))), java.lang.Object(o20455sub0), NULL, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8891_0_equals_Return(EOS(STATIC_8891), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20455sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19853sub1708887312))), 0, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE f8828_1_equals_Load(EOS(STATIC_8828), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20469sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20471sub1708887312), java.lang.Object(o19853sub1708887312))), java.lang.Object(o20469sub0), java.lang.Object(o20471sub0), o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8892_0_equals_Return(EOS(STATIC_8892), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(o20469sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20471sub1708887312), java.lang.Object(o19853sub1708887312))), 0, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE f8828_1_equals_Load(EOS(STATIC_8828), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8894_0_equals_Return(EOS(STATIC_8894), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), 0, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE f8828_1_equals_Load(EOS(STATIC_8828), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) -> f8895_0_equals_Return(EOS(STATIC_8895), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(o18690sub-879152709)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312))), 1, o18689[LinkedList$Entry.next]o18687, o18690[LinkedList$Entry.previous]o18687, o18690[LinkedList$Entry.previous]o19850, o19853[LinkedList$Entry.previous]o18687, o19853[LinkedList$Entry.previous]o18690) :|: TRUE f8829_1_equals_Load(EOS(STATIC_8829), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20540sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub1708887436))), java.lang.Object(o20540sub0), NULL, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8898_0_equals_Return(EOS(STATIC_8898), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20540sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub1708887436))), 0, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE f8829_1_equals_Load(EOS(STATIC_8829), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub829734727), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20553sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub1708887436), java.lang.Object(o19857sub1708887436))), java.lang.Object(o20553sub0), java.lang.Object(o20555sub0), o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8899_0_equals_Return(EOS(STATIC_8899), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub829734727), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(o20553sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub1708887436), java.lang.Object(o19857sub1708887436))), 0, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE f8829_1_equals_Load(EOS(STATIC_8829), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8901_0_equals_Return(EOS(STATIC_8901), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), 0, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE f8829_1_equals_Load(EOS(STATIC_8829), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) -> f8902_0_equals_Return(EOS(STATIC_8902), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436))), 1, o18689[LinkedList$Entry.next]o18687, o19857[LinkedList$Entry.previous]o18687, o19857[LinkedList$Entry.previous]o19854) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), java.lang.Object(o20804sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), o20799[LinkedList$Entry.previous]o20804:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0) :|: o18692[LinkedList$Entry.previous]o18690:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && o19853[LinkedList$Entry.previous]o18687:0 > 0 && i4612:0 > 1 f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20822sub0:0), java.lang.Object(o20822sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), o20817[LinkedList$Entry.previous]o20822:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0) :|: o18692[LinkedList$Entry.previous]o18690:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && o20817[LinkedList$Entry.previous]o20822:0 > o18690[LinkedList$Entry.previous]o18692:0 && i3292:0 > 0 && o19853[LinkedList$Entry.previous]o18687:0 > 0 && i4612:0 > 1 f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub829734727:0), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub1708887436:0), java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub1708887436:0), java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o20555sub829734727:0), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20836sub0:0), java.lang.Object(o20836sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), 1, o18689[LinkedList$Entry.next]o18687:0, o20833[LinkedList$Entry.previous]o20830:0, o19857[LinkedList$Entry.previous]o19854:0, o19857[LinkedList$Entry.previous]o18687:0) :|: o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i3292:0 > 0 && o19857[LinkedList$Entry.previous]o18687:0 > 0 && i4612:0 > 1 f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o20855sub0:0), java.lang.Object(o20855sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), 1, o18689[LinkedList$Entry.next]o18687:0, o20852[LinkedList$Entry.previous]o20849:0, o19857[LinkedList$Entry.previous]o19854:0, o19857[LinkedList$Entry.previous]o18687:0) :|: o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i3292:0 > 0 && o19857[LinkedList$Entry.previous]o18687:0 > 0 && i4612:0 > 1 f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20836sub0:0), java.lang.Object(o20836sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), 1, o18689[LinkedList$Entry.next]o18687:0, o20833[LinkedList$Entry.previous]o20830:0, o19857[LinkedList$Entry.previous]o19854:0, o19857[LinkedList$Entry.previous]o18687:0) :|: o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i3292:0 > 0 && o19857[LinkedList$Entry.previous]o18687:0 > 0 && i4612:0 > 1 f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0) -> f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), java.lang.Object(o20804sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), o20799[LinkedList$Entry.previous]o20804:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0) :|: o18692[LinkedList$Entry.previous]o18690:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && o19853[LinkedList$Entry.previous]o18687:0 > 0 && i4612:0 > 1 Removed following non-SCC rules: f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312:0, java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312:0, java.lang.Object(o19853sub1708887312:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0) -> f9599_0_equals_Load(EOS(STATIC_9599), java.lang.Object(o18691sub0:0), o198510:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(o18690sub1707907309:1))), java.lang.Object(o18690sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198511708887312:0, java.lang.Object(o19853sub1708887312:0))), java.lang.Object(o19853sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), o198510:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o19853[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0) :|: o18692[LinkedList$Entry.previous]o18690:0 > 0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && o18690[LinkedList$Entry.previous]o18692:0 > 0 && i4612:0 > 1 && i3292:0 > 0 f8741_0_removeLastOccurrence_EQ(EOS(STATIC_8741), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727:0, java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436:0, java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436:0, java.lang.Object(o19857sub1708887436:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:0, java.lang.Object(o18690sub1707907309:0))), o18690[LinkedList$Entry.previous]o18692:0, o18689[LinkedList$Entry.next]o18687:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0) -> f9679_0_equals_Load(EOS(STATIC_9679), java.lang.Object(o18691sub0:0), o198550:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o186881707907309:1, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855-878172551:0, java.lang.Object(o19857sub-878172551:0))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o198551708887436:0, java.lang.Object(o19857sub1708887436:0))), java.lang.Object(o19857sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o19855829734727:0, java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), o198550:0, o18689[LinkedList$Entry.next]o18687:0, o19857[LinkedList$Entry.previous]o18687:0, o19857[LinkedList$Entry.previous]o19854:0) :|: o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i4612:0 > 1 && i3292:0 > 0 Filtered constant ground arguments: f8741_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f8741_0_removeLastOccurrence_EQ(x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) EOS(x1) -> EOS javaUtilEx.LinkedList$Entry(x1, x2, x3) -> javaUtilEx.LinkedList$Entry(x2, x3) javaUtilEx.Content(x1) -> javaUtilEx.Content javaUtilEx.LinkedList(x1, x2) -> javaUtilEx.LinkedList(x2) Filtered duplicate arguments: f8741_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f8741_0_removeLastOccurrence_EQ(x1, x2, x4, x5, x6, x7, x8, x9, x10) Filtered unneeded arguments: f8741_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f8741_0_removeLastOccurrence_EQ(x1, x2, x3, x5, x7, x8, x9) Finished conversion. Obtained 6 rules.P rules: f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), o20799[LinkedList$Entry.previous]o20804:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(o20822sub0:0), o20817[LinkedList$Entry.previous]o20822:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && o20817[LinkedList$Entry.previous]o20822:0 > o18690[LinkedList$Entry.previous]o18692:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20555sub829734727:0), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20555sub1708887436:0), java.lang.Object(o19857sub1708887436:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20555sub829734727:0), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20836sub0:0), 1, o20833[LinkedList$Entry.previous]o20830:0, o19857[LinkedList$Entry.previous]o19854:0, o19857[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i3292:0 > 0 && i4612:0 > 1 && o19857[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19857sub1708887436:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(o20855sub0:0), 1, o20852[LinkedList$Entry.previous]o20849:0, o19857[LinkedList$Entry.previous]o19854:0, o19857[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i3292:0 > 0 && i4612:0 > 1 && o19857[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19857sub1708887436:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19857sub829734727:0)))))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20836sub0:0), 1, o20833[LinkedList$Entry.previous]o20830:0, o19857[LinkedList$Entry.previous]o19854:0, o19857[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o19857[LinkedList$Entry.previous]o18687:0 < o18690[LinkedList$Entry.previous]o18687:0 && o18690[LinkedList$Entry.previous]o18687:0 > -1 && o19857[LinkedList$Entry.previous]o19854:0 < o18690[LinkedList$Entry.previous]o18692:0 && o18690[LinkedList$Entry.previous]o18692:0 > -1 && i3292:0 > 0 && i4612:0 > 1 && o19857[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), o20799[LinkedList$Entry.previous]o20804:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 ---------------------------------------- (39) Obligation: Rules: f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), o20799[LinkedList$Entry.previous]o20804:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x17), java.lang.Object(x18))), x19, x20, x19, x20, x13) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(x21), 1, x22, x23, x24, x13) :|: x24 < x20 && x20 > -1 && x23 < x19 && x19 > -1 && x25 > 0 && x26 > 1 && x24 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x29))), x30, x31, x30, x31, x27) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x32), 1, x33, x34, x35, x27) :|: x35 < x31 && x31 > -1 && x34 < x30 && x30 > -1 && x36 > 0 && x37 > 1 && x35 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x41))), x42, x43, x42, x43, x38) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(x44), 1, x45, x46, x47, x38) :|: x47 < x43 && x43 > -1 && x46 < x42 && x42 > -1 && x48 > 0 && x49 > 1 && x47 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x53))), x54, x55, x56, x57, x50) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(x58), x59, x55, x60, x61, x50) :|: x54 > 0 && x56 > 0 && x59 > x54 && x57 > -1 && x61 < x57 && x60 < x56 && x62 > 0 && x63 > 1 && x61 > 0 ---------------------------------------- (40) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (41) Obligation: Rules: f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), o20799[LinkedList$Entry.previous]o20804:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x17), java.lang.Object(x18))), x19, x20, x19, x20, x13) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(x21), 1, x22, x23, x24, x13) :|: x24 < x20 && x20 > -1 && x23 < x19 && x19 > -1 && x25 > 0 && x26 > 1 && x24 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x29))), x30, x31, x30, x31, x27) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x32), 1, x33, x34, x35, x27) :|: x35 < x31 && x31 > -1 && x34 < x30 && x30 > -1 && x36 > 0 && x37 > 1 && x35 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x41))), x42, x43, x42, x43, x38) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(x44), 1, x45, x46, x47, x38) :|: x47 < x43 && x43 > -1 && x46 < x42 && x42 > -1 && x48 > 0 && x49 > 1 && x47 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x53))), x54, x55, x56, x57, x50) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(x58), x59, x55, x60, x61, x50) :|: x54 > 0 && x56 > 0 && x59 > x54 && x57 > -1 && x61 < x57 && x60 < x56 && x62 > 0 && x63 > 1 && x61 > 0 ---------------------------------------- (42) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), o20799[LinkedList$Entry.previous]o20804:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 (2) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 (3) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x17), java.lang.Object(x18))), x19, x20, x19, x20, x13) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(x21), 1, x22, x23, x24, x13) :|: x24 < x20 && x20 > -1 && x23 < x19 && x19 > -1 && x25 > 0 && x26 > 1 && x24 > 0 (4) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x29))), x30, x31, x30, x31, x27) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x32), 1, x33, x34, x35, x27) :|: x35 < x31 && x31 > -1 && x34 < x30 && x30 > -1 && x36 > 0 && x37 > 1 && x35 > 0 (5) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x41))), x42, x43, x42, x43, x38) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(x44), 1, x45, x46, x47, x38) :|: x47 < x43 && x43 > -1 && x46 < x42 && x42 > -1 && x48 > 0 && x49 > 1 && x47 > 0 (6) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x53))), x54, x55, x56, x57, x50) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(x58), x59, x55, x60, x61, x50) :|: x54 > 0 && x56 > 0 && x59 > x54 && x57 > -1 && x61 < x57 && x60 < x56 && x62 > 0 && x63 > 1 && x61 > 0 Arcs: (1) -> (1), (2), (3), (4), (5), (6) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (4), (6) (4) -> (1), (2), (3), (4), (6) (5) -> (1), (2), (5), (6) (6) -> (1), (2), (3), (4), (5), (6) This digraph is fully evaluated! ---------------------------------------- (43) Obligation: Termination digraph: Nodes: (1) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20471sub1708887312:0), java.lang.Object(o19853sub1708887312:0))), o18690[LinkedList$Entry.previous]o18692:0, o18690[LinkedList$Entry.previous]o18687:0, o18692[LinkedList$Entry.previous]o18690:0, o18692[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0, java.lang.Object(o18690sub-879152709:0)))))))), java.lang.Object(o18691sub0:0), java.lang.Object(o20804sub0:0), o20799[LinkedList$Entry.previous]o20804:0, o18690[LinkedList$Entry.previous]o18687:0, o19853[LinkedList$Entry.previous]o18690:0, o19853[LinkedList$Entry.previous]o18687:0, o18688-879152709:0) :|: o18690[LinkedList$Entry.previous]o18692:0 > 0 && o18692[LinkedList$Entry.previous]o18690:0 > 0 && o20799[LinkedList$Entry.previous]o20804:0 > o18690[LinkedList$Entry.previous]o18692:0 && o18692[LinkedList$Entry.previous]o18687:0 > -1 && o19853[LinkedList$Entry.previous]o18687:0 < o18692[LinkedList$Entry.previous]o18687:0 && o19853[LinkedList$Entry.previous]o18690:0 < o18692[LinkedList$Entry.previous]o18690:0 && i3292:0 > 0 && i4612:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0 > 0 (2) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2))), x3, x4, x5, x6, x) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7), x8, x4, x9, x10, x) :|: x3 > 0 && x5 > 0 && x6 > -1 && x10 < x6 && x9 < x5 && x8 > x3 && x11 > 0 && x12 > 1 && x10 > 0 (3) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x17), java.lang.Object(x18))), x19, x20, x19, x20, x13) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15)))))))))), java.lang.Object(x16), java.lang.Object(x21), 1, x22, x23, x24, x13) :|: x24 < x20 && x20 > -1 && x23 < x19 && x19 > -1 && x25 > 0 && x26 > 1 && x24 > 0 (4) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x29))), x30, x31, x30, x31, x27) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x32), 1, x33, x34, x35, x27) :|: x35 < x31 && x31 > -1 && x34 < x30 && x30 > -1 && x36 > 0 && x37 > 1 && x35 > 0 (5) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x53))), x54, x55, x56, x57, x50) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50, java.lang.Object(x51)))))))), java.lang.Object(x52), java.lang.Object(x58), x59, x55, x60, x61, x50) :|: x54 > 0 && x56 > 0 && x59 > x54 && x57 > -1 && x61 < x57 && x60 < x56 && x62 > 0 && x63 > 1 && x61 > 0 (6) f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x41))), x42, x43, x42, x43, x38) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39)))))))))), java.lang.Object(x40), java.lang.Object(x44), 1, x45, x46, x47, x38) :|: x47 < x43 && x43 > -1 && x46 < x42 && x42 > -1 && x48 > 0 && x49 > 1 && x47 > 0 Arcs: (1) -> (1), (2), (3), (4), (5), (6) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (4), (5) (4) -> (1), (2), (3), (4), (5) (5) -> (1), (2), (3), (4), (5), (6) (6) -> (1), (2), (5), (6) This digraph is fully evaluated! ---------------------------------------- (44) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (45) Obligation: Rules: f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39:0)))))))))), java.lang.Object(x40:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x41:0))), x42:0, x43:0, x42:0, x43:0, x38:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x38:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x39:0)))))))))), java.lang.Object(x40:0), java.lang.Object(x44:0), 1, x45:0, x46:0, x47:0, x38:0) :|: x49:0 > 1 && x47:0 > 0 && x48:0 > 0 && x42:0 > -1 && x46:0 < x42:0 && x43:0 > -1 && x47:0 < x43:0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0:0, java.lang.Object(o18690sub-879152709:0:0)))))))), java.lang.Object(o18691sub0:0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o20471sub1708887312:0:0), java.lang.Object(o19853sub1708887312:0:0))), o18690[LinkedList$Entry.previous]o18692:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o18692[LinkedList$Entry.previous]o18690:0:0, o18692[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o18688-879152709:0:0, java.lang.Object(o18690sub-879152709:0:0)))))))), java.lang.Object(o18691sub0:0:0), java.lang.Object(o20804sub0:0:0), o20799[LinkedList$Entry.previous]o20804:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o19853[LinkedList$Entry.previous]o18690:0:0, o19853[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) :|: i4612:0:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0:0 > 0 && i3292:0:0 > 0 && o19853[LinkedList$Entry.previous]o18690:0:0 < o18692[LinkedList$Entry.previous]o18690:0:0 && o19853[LinkedList$Entry.previous]o18687:0:0 < o18692[LinkedList$Entry.previous]o18687:0:0 && o18692[LinkedList$Entry.previous]o18687:0:0 > -1 && o20799[LinkedList$Entry.previous]o20804:0:0 > o18690[LinkedList$Entry.previous]o18692:0:0 && o18692[LinkedList$Entry.previous]o18690:0:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50:0, java.lang.Object(x51:0)))))))), java.lang.Object(x52:0), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x53:0))), x54:0, x55:0, x56:0, x57:0, x50:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x50:0, java.lang.Object(x51:0)))))))), java.lang.Object(x52:0), java.lang.Object(x58:0), x59:0, x55:0, x60:0, x61:0, x50:0) :|: x63:0 > 1 && x61:0 > 0 && x62:0 > 0 && x60:0 < x56:0 && x61:0 < x57:0 && x57:0 > -1 && x59:0 > x54:0 && x56:0 > 0 && x54:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x29:0))), x30:0, x31:0, x30:0, x31:0, x27:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x27:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x28:0)))))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x32:0), 1, x33:0, x34:0, x35:0, x27:0) :|: x37:0 > 1 && x35:0 > 0 && x36:0 > 0 && x30:0 > -1 && x34:0 < x30:0 && x31:0 > -1 && x35:0 < x31:0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x2:0))), x3:0, x4:0, x5:0, x6:0, x:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(javaUtilEx.Content), java.lang.Object(x7:0), x8:0, x4:0, x9:0, x10:0, x:0) :|: x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0 f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14:0), java.lang.Object(x15:0)))))))))), java.lang.Object(x16:0), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x17:0), java.lang.Object(x18:0))), x19:0, x20:0, x19:0, x20:0, x13:0) -> f8741_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14:0), java.lang.Object(x15:0)))))))))), java.lang.Object(x16:0), java.lang.Object(x21:0), 1, x22:0, x23:0, x24:0, x13:0) :|: x26:0 > 1 && x24:0 > 0 && x25:0 > 0 && x19:0 > -1 && x23:0 < x19:0 && x20:0 > -1 && x24:0 < x20:0 ---------------------------------------- (46) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f8741_0_removeLastOccurrence_EQ(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE) java.lang.Object(VARIABLE) javaUtilEx.AbstractCollection(VARIABLE) javaUtilEx.AbstractList(VARIABLE) javaUtilEx.AbstractSequentialList(VARIABLE) javaUtilEx.LinkedList(VARIABLE) javaUtilEx.LinkedList$Entry(VARIABLE, VARIABLE) NULL() javaUtilEx.Content() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (47) Obligation: Rules: f8741_0_removeLastOccurrence_EQ(c, c1, c2, x42:0, x43:0, x42:0, x43:0, x38:0) -> f8741_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x45:0, x46:0, x47:0, x38:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x49:0 > 1 && x47:0 > 0 && x48:0 > 0 && x42:0 > -1 && x46:0 < x42:0 && x43:0 > -1 && x47:0 < x43:0) f8741_0_removeLastOccurrence_EQ(c7, c8, c9, o18690[LinkedList$Entry.previous]o18692:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o18692[LinkedList$Entry.previous]o18690:0:0, o18692[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) -> f8741_0_removeLastOccurrence_EQ(c10, c11, c12, o20799[LinkedList$Entry.previous]o20804:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o19853[LinkedList$Entry.previous]o18690:0:0, o19853[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) :|: c12 = 0 && (c11 = 0 && (c10 = 0 && (c9 = 0 && (c8 = 0 && c7 = 0)))) && (i4612:0:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0:0 > 0 && i3292:0:0 > 0 && o19853[LinkedList$Entry.previous]o18690:0:0 < o18692[LinkedList$Entry.previous]o18690:0:0 && o19853[LinkedList$Entry.previous]o18687:0:0 < o18692[LinkedList$Entry.previous]o18687:0:0 && o18692[LinkedList$Entry.previous]o18687:0:0 > -1 && o20799[LinkedList$Entry.previous]o20804:0:0 > o18690[LinkedList$Entry.previous]o18692:0:0 && o18692[LinkedList$Entry.previous]o18690:0:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0:0 > 0) f8741_0_removeLastOccurrence_EQ(c26, c27, c28, x3:0, x4:0, x5:0, x6:0, x:0) -> f8741_0_removeLastOccurrence_EQ(c29, c30, c31, x8:0, x4:0, x9:0, x10:0, x:0) :|: c31 = 0 && (c30 = 0 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0) ---------------------------------------- (48) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8741_0_removeLastOccurrence_EQ ] = f8741_0_removeLastOccurrence_EQ_7 The following rules are decreasing: f8741_0_removeLastOccurrence_EQ(c, c1, c2, x42:0, x43:0, x42:0, x43:0, x38:0) -> f8741_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x45:0, x46:0, x47:0, x38:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x49:0 > 1 && x47:0 > 0 && x48:0 > 0 && x42:0 > -1 && x46:0 < x42:0 && x43:0 > -1 && x47:0 < x43:0) f8741_0_removeLastOccurrence_EQ(c7, c8, c9, o18690[LinkedList$Entry.previous]o18692:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o18692[LinkedList$Entry.previous]o18690:0:0, o18692[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) -> f8741_0_removeLastOccurrence_EQ(c10, c11, c12, o20799[LinkedList$Entry.previous]o20804:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o19853[LinkedList$Entry.previous]o18690:0:0, o19853[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) :|: c12 = 0 && (c11 = 0 && (c10 = 0 && (c9 = 0 && (c8 = 0 && c7 = 0)))) && (i4612:0:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0:0 > 0 && i3292:0:0 > 0 && o19853[LinkedList$Entry.previous]o18690:0:0 < o18692[LinkedList$Entry.previous]o18690:0:0 && o19853[LinkedList$Entry.previous]o18687:0:0 < o18692[LinkedList$Entry.previous]o18687:0:0 && o18692[LinkedList$Entry.previous]o18687:0:0 > -1 && o20799[LinkedList$Entry.previous]o20804:0:0 > o18690[LinkedList$Entry.previous]o18692:0:0 && o18692[LinkedList$Entry.previous]o18690:0:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0:0 > 0) f8741_0_removeLastOccurrence_EQ(c26, c27, c28, x3:0, x4:0, x5:0, x6:0, x:0) -> f8741_0_removeLastOccurrence_EQ(c29, c30, c31, x8:0, x4:0, x9:0, x10:0, x:0) :|: c31 = 0 && (c30 = 0 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0) The following rules are bounded: f8741_0_removeLastOccurrence_EQ(c, c1, c2, x42:0, x43:0, x42:0, x43:0, x38:0) -> f8741_0_removeLastOccurrence_EQ(c3, c4, c5, c6, x45:0, x46:0, x47:0, x38:0) :|: c6 = 1 && (c5 = 0 && (c4 = 0 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))))) && (x49:0 > 1 && x47:0 > 0 && x48:0 > 0 && x42:0 > -1 && x46:0 < x42:0 && x43:0 > -1 && x47:0 < x43:0) f8741_0_removeLastOccurrence_EQ(c7, c8, c9, o18690[LinkedList$Entry.previous]o18692:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o18692[LinkedList$Entry.previous]o18690:0:0, o18692[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) -> f8741_0_removeLastOccurrence_EQ(c10, c11, c12, o20799[LinkedList$Entry.previous]o20804:0:0, o18690[LinkedList$Entry.previous]o18687:0:0, o19853[LinkedList$Entry.previous]o18690:0:0, o19853[LinkedList$Entry.previous]o18687:0:0, o18688-879152709:0:0) :|: c12 = 0 && (c11 = 0 && (c10 = 0 && (c9 = 0 && (c8 = 0 && c7 = 0)))) && (i4612:0:0 > 1 && o19853[LinkedList$Entry.previous]o18687:0:0 > 0 && i3292:0:0 > 0 && o19853[LinkedList$Entry.previous]o18690:0:0 < o18692[LinkedList$Entry.previous]o18690:0:0 && o19853[LinkedList$Entry.previous]o18687:0:0 < o18692[LinkedList$Entry.previous]o18687:0:0 && o18692[LinkedList$Entry.previous]o18687:0:0 > -1 && o20799[LinkedList$Entry.previous]o20804:0:0 > o18690[LinkedList$Entry.previous]o18692:0:0 && o18692[LinkedList$Entry.previous]o18690:0:0 > 0 && o18690[LinkedList$Entry.previous]o18692:0:0 > 0) f8741_0_removeLastOccurrence_EQ(c26, c27, c28, x3:0, x4:0, x5:0, x6:0, x:0) -> f8741_0_removeLastOccurrence_EQ(c29, c30, c31, x8:0, x4:0, x9:0, x10:0, x:0) :|: c31 = 0 && (c30 = 0 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x12:0 > 1 && x10:0 > 0 && x11:0 > 0 && x8:0 > x3:0 && x9:0 < x5:0 && x6:0 > x10:0 && x6:0 > -1 && x5:0 > 0 && x3:0 > 0) ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [element, previous] *javaUtilEx.LinkedList: [header] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (51) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 26 IRulesP rules: f8470_0_removeLastOccurrence_EQ(EOS(STATIC_8470), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818, java.lang.Object(o16888sub1706119818))), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888, o16889[LinkedList$Entry.previous]o16886) -> f8491_0_removeLastOccurrence_Load(EOS(STATIC_8491), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888, o16889[LinkedList$Entry.previous]o16886) :|: TRUE f8491_0_removeLastOccurrence_Load(EOS(STATIC_8491), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888, o16889[LinkedList$Entry.previous]o16886) -> f8511_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8511), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888, o16889[LinkedList$Entry.previous]o16886) :|: TRUE f8511_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8511), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888, o16889[LinkedList$Entry.previous]o16886) -> f8532_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8532), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) :|: o16888[LinkedList$Entry.previous]o16889 > 0 && o16889[LinkedList$Entry.previous]o16888 > 0 f8511_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8511), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o17448sub-882727691)))))))), java.lang.Object(o17448sub0), java.lang.Object(o17448sub0), o17448[LinkedList$Entry.previous]o17448, o17448[LinkedList$Entry.previous]o16886, o17448[LinkedList$Entry.previous]o17448, o17448[LinkedList$Entry.previous]o16886) -> f8533_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8533), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o17448sub-882727691)))))))), java.lang.Object(o17448sub0), java.lang.Object(o17448sub0), o17448[LinkedList$Entry.previous]o16886, o17448[LinkedList$Entry.previous]o17448) :|: TRUE f8532_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8532), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o17566, o16888[LinkedList$Entry.previous]o16886, o17566[LinkedList$Entry.previous]o16886, o17566[LinkedList$Entry.previous]o16888) -> f8547_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8547), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) :|: o17569[LinkedList$Entry.previous]o16886 < o17566[LinkedList$Entry.previous]o16886 && o17566[LinkedList$Entry.previous]o16886 >= 0 && o17569[LinkedList$Entry.previous]o16888 < o17566[LinkedList$Entry.previous]o16888 && o17566[LinkedList$Entry.previous]o16888 >= 0 f8547_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8547), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) -> f8566_0_removeLastOccurrence_NONNULL(EOS(STATIC_8566), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175671706952044, java.lang.Object(o17569sub1706952044))), o175670, o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) :|: TRUE f8566_0_removeLastOccurrence_NONNULL(EOS(STATIC_8566), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), java.lang.Object(o18020sub0), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) -> f8588_0_removeLastOccurrence_NONNULL(EOS(STATIC_8588), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), java.lang.Object(o18020sub0), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) :|: TRUE f8588_0_removeLastOccurrence_NONNULL(EOS(STATIC_8588), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), java.lang.Object(o18020sub0), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) -> f8606_0_removeLastOccurrence_Load(EOS(STATIC_8606), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) :|: TRUE f8606_0_removeLastOccurrence_Load(EOS(STATIC_8606), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) -> f8625_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) :|: TRUE f8625_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044), java.lang.Object(o17569sub1706952044))), o16888[LinkedList$Entry.previous]o16886, o16888[LinkedList$Entry.previous]o17566, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) -> f8642_0_removeLastOccurrence_Store(EOS(STATIC_8642), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888, o16888[LinkedList$Entry.previous]o17569) :|: o16888[LinkedList$Entry.previous]o17569 > o16888[LinkedList$Entry.previous]o17566 && o16888[LinkedList$Entry.previous]o17566 >= 0 f8642_0_removeLastOccurrence_Store(EOS(STATIC_8642), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888, o16888[LinkedList$Entry.previous]o17569) -> f8660_0_removeLastOccurrence_JMP(EOS(STATIC_8660), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888, o16888[LinkedList$Entry.previous]o17569) :|: TRUE f8660_0_removeLastOccurrence_JMP(EOS(STATIC_8660), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888, o16888[LinkedList$Entry.previous]o17569) -> f8676_0_removeLastOccurrence_Load(EOS(STATIC_8676), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888, o16888[LinkedList$Entry.previous]o17569) :|: TRUE f8676_0_removeLastOccurrence_Load(EOS(STATIC_8676), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888, o16888[LinkedList$Entry.previous]o17569) -> f8413_0_removeLastOccurrence_Load(EOS(STATIC_8413), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o17569sub0), o16888[LinkedList$Entry.previous]o17569, o16888[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16886, o17569[LinkedList$Entry.previous]o16888) :|: TRUE f8413_0_removeLastOccurrence_Load(EOS(STATIC_8413), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) -> f8424_0_removeLastOccurrence_Load(EOS(STATIC_8424), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) :|: TRUE f8424_0_removeLastOccurrence_Load(EOS(STATIC_8424), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) -> f8437_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8437), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) :|: TRUE f8437_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8437), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) -> f8452_0_removeLastOccurrence_EQ(EOS(STATIC_8452), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818, java.lang.Object(o16888sub1706119818))), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) :|: TRUE f8452_0_removeLastOccurrence_EQ(EOS(STATIC_8452), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818, java.lang.Object(o16888sub1706119818))), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888) -> f8470_0_removeLastOccurrence_EQ(EOS(STATIC_8470), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(o16888sub-882727691)))))))), java.lang.Object(o16889sub0), java.lang.Object(o16889sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818, java.lang.Object(o16888sub1706119818))), o16888[LinkedList$Entry.previous]o16889, o16888[LinkedList$Entry.previous]o16886, o16889[LinkedList$Entry.previous]o16888, o16889[LinkedList$Entry.previous]o16886) :|: o16889[LinkedList$Entry.previous]o16886 > 0 f8533_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8533), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17571824225128, java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), o17570[LinkedList$Entry.previous]o16886, o17570[LinkedList$Entry.previous]o17570) -> f8548_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8548), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17571824225128, java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: o17573[LinkedList$Entry.previous]o16886 < o17570[LinkedList$Entry.previous]o16886 && o17570[LinkedList$Entry.previous]o16886 >= 0 && o17573[LinkedList$Entry.previous]o17570 < o17570[LinkedList$Entry.previous]o17570 && o17570[LinkedList$Entry.previous]o17570 >= 0 f8548_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8548), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17571824225128, java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8567_0_removeLastOccurrence_NONNULL(EOS(STATIC_8567), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17571824225128, java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175711706952819, java.lang.Object(o17573sub1706952819))), o175710, o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8567_0_removeLastOccurrence_NONNULL(EOS(STATIC_8567), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), java.lang.Object(o18021sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8590_0_removeLastOccurrence_NONNULL(EOS(STATIC_8590), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), java.lang.Object(o18021sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8590_0_removeLastOccurrence_NONNULL(EOS(STATIC_8590), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), java.lang.Object(o18021sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8608_0_removeLastOccurrence_Load(EOS(STATIC_8608), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8608_0_removeLastOccurrence_Load(EOS(STATIC_8608), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8627_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8627_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819), java.lang.Object(o17573sub1706952819))), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8644_0_removeLastOccurrence_Store(EOS(STATIC_8644), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8644_0_removeLastOccurrence_Store(EOS(STATIC_8644), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8662_0_removeLastOccurrence_JMP(EOS(STATIC_8662), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8662_0_removeLastOccurrence_JMP(EOS(STATIC_8662), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8677_0_removeLastOccurrence_Load(EOS(STATIC_8677), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: TRUE f8677_0_removeLastOccurrence_Load(EOS(STATIC_8677), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) -> f8413_0_removeLastOccurrence_Load(EOS(STATIC_8413), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128), java.lang.Object(o17573sub824225128)))))))))), java.lang.Object(o17573sub0), o17570[LinkedList$Entry.previous]o17573, o17570[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o16886, o17573[LinkedList$Entry.previous]o17570) :|: o17570[LinkedList$Entry.previous]o17573 = 1 Combined rules. Obtained 2 IRulesP rules: f8470_0_removeLastOccurrence_EQ(EOS(STATIC_8470), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818:0, java.lang.Object(o16888sub1706119818:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16889[LinkedList$Entry.previous]o16888:0, o16889[LinkedList$Entry.previous]o16886:0) -> f8470_0_removeLastOccurrence_EQ(EOS(STATIC_8470), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(o17569sub0:0), java.lang.Object(o17569sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818:1, java.lang.Object(o16888sub1706119818:1))), o16888[LinkedList$Entry.previous]o17569:0, o16888[LinkedList$Entry.previous]o16886:0, o17569[LinkedList$Entry.previous]o16888:0, o17569[LinkedList$Entry.previous]o16886:0) :|: o16889[LinkedList$Entry.previous]o16888:0 > 0 && o16888[LinkedList$Entry.previous]o16889:0 > 0 && o16889[LinkedList$Entry.previous]o16886:0 > -1 && o17569[LinkedList$Entry.previous]o16886:0 < o16889[LinkedList$Entry.previous]o16886:0 && o17569[LinkedList$Entry.previous]o16888:0 < o16889[LinkedList$Entry.previous]o16888:0 && o17569[LinkedList$Entry.previous]o16886:0 > 0 && o16888[LinkedList$Entry.previous]o17569:0 > o16888[LinkedList$Entry.previous]o16889:0 f8470_0_removeLastOccurrence_EQ(EOS(STATIC_8470), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128:0), java.lang.Object(o17573sub824225128:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819:0), java.lang.Object(o17573sub1706952819:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub1706952819:0), java.lang.Object(o17573sub1706952819:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818:0, java.lang.Object(o16888sub1706119818:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0) -> f8470_0_removeLastOccurrence_EQ(EOS(STATIC_8470), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16887-882727691:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18021sub824225128:0), java.lang.Object(o17573sub824225128:0)))))))))), java.lang.Object(o17573sub0:0), java.lang.Object(o17573sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168871706119818:1, java.lang.Object(o16888sub1706119818:1))), 1, o17570[LinkedList$Entry.previous]o16886:0, o17573[LinkedList$Entry.previous]o17570:0, o17573[LinkedList$Entry.previous]o16886:0) :|: o16888[LinkedList$Entry.previous]o16886:0 > -1 && o17573[LinkedList$Entry.previous]o16886:0 < o16888[LinkedList$Entry.previous]o16886:0 && o17573[LinkedList$Entry.previous]o17570:0 < o16888[LinkedList$Entry.previous]o16889:0 && o17573[LinkedList$Entry.previous]o16886:0 > 0 && o16888[LinkedList$Entry.previous]o16889:0 > -1 Filtered constant ground arguments: f8470_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f8470_0_removeLastOccurrence_EQ(x2, x3, x4, x5, x6, x7, x8, x9) EOS(x1) -> EOS javaUtilEx.LinkedList$Entry(x1, x2, x3) -> javaUtilEx.LinkedList$Entry(x2, x3) javaUtilEx.LinkedList(x1, x2) -> javaUtilEx.LinkedList(x2) Filtered duplicate arguments: f8470_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8) -> f8470_0_removeLastOccurrence_EQ(x1, x3, x4, x5, x6, x7, x8) Filtered unneeded arguments: f8470_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7) -> f8470_0_removeLastOccurrence_EQ(x1, x2, x4, x5, x6, x7) Finished conversion. Obtained 2 rules.P rules: f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16889[LinkedList$Entry.previous]o16888:0, o16889[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(o17569sub0:0), o16888[LinkedList$Entry.previous]o17569:0, o16888[LinkedList$Entry.previous]o16886:0, o17569[LinkedList$Entry.previous]o16888:0, o17569[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) :|: o16888[LinkedList$Entry.previous]o16889:0 > 0 && o16889[LinkedList$Entry.previous]o16888:0 > 0 && o16889[LinkedList$Entry.previous]o16886:0 > -1 && o17569[LinkedList$Entry.previous]o16886:0 < o16889[LinkedList$Entry.previous]o16886:0 && o17569[LinkedList$Entry.previous]o16888:0 < o16889[LinkedList$Entry.previous]o16888:0 && o16888[LinkedList$Entry.previous]o17569:0 > o16888[LinkedList$Entry.previous]o16889:0 && o17569[LinkedList$Entry.previous]o16886:0 > 0 f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18021sub824225128:0), java.lang.Object(o17573sub824225128:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18021sub1706952819:0), java.lang.Object(o17573sub1706952819:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18021sub824225128:0), java.lang.Object(o17573sub824225128:0)))))))))), java.lang.Object(o17573sub0:0), 1, o17570[LinkedList$Entry.previous]o16886:0, o17573[LinkedList$Entry.previous]o17570:0, o17573[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) :|: o17573[LinkedList$Entry.previous]o16886:0 < o16888[LinkedList$Entry.previous]o16886:0 && o16888[LinkedList$Entry.previous]o16886:0 > -1 && o17573[LinkedList$Entry.previous]o17570:0 < o16888[LinkedList$Entry.previous]o16889:0 && o16888[LinkedList$Entry.previous]o16889:0 > -1 && o17573[LinkedList$Entry.previous]o16886:0 > 0 ---------------------------------------- (52) Obligation: Rules: f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16889[LinkedList$Entry.previous]o16888:0, o16889[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(o17569sub0:0), o16888[LinkedList$Entry.previous]o17569:0, o16888[LinkedList$Entry.previous]o16886:0, o17569[LinkedList$Entry.previous]o16888:0, o17569[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) :|: o16888[LinkedList$Entry.previous]o16889:0 > 0 && o16889[LinkedList$Entry.previous]o16888:0 > 0 && o16889[LinkedList$Entry.previous]o16886:0 > -1 && o17569[LinkedList$Entry.previous]o16886:0 < o16889[LinkedList$Entry.previous]o16886:0 && o17569[LinkedList$Entry.previous]o16888:0 < o16889[LinkedList$Entry.previous]o16888:0 && o16888[LinkedList$Entry.previous]o17569:0 > o16888[LinkedList$Entry.previous]o16889:0 && o17569[LinkedList$Entry.previous]o16886:0 > 0 f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 ---------------------------------------- (53) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (54) Obligation: Rules: f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16889[LinkedList$Entry.previous]o16888:0, o16889[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(o17569sub0:0), o16888[LinkedList$Entry.previous]o17569:0, o16888[LinkedList$Entry.previous]o16886:0, o17569[LinkedList$Entry.previous]o16888:0, o17569[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) :|: o16888[LinkedList$Entry.previous]o16889:0 > 0 && o16889[LinkedList$Entry.previous]o16888:0 > 0 && o16889[LinkedList$Entry.previous]o16886:0 > -1 && o17569[LinkedList$Entry.previous]o16886:0 < o16889[LinkedList$Entry.previous]o16886:0 && o17569[LinkedList$Entry.previous]o16888:0 < o16889[LinkedList$Entry.previous]o16888:0 && o16888[LinkedList$Entry.previous]o17569:0 > o16888[LinkedList$Entry.previous]o16889:0 && o17569[LinkedList$Entry.previous]o16886:0 > 0 f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 ---------------------------------------- (55) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16889[LinkedList$Entry.previous]o16888:0, o16889[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(o17569sub0:0), o16888[LinkedList$Entry.previous]o17569:0, o16888[LinkedList$Entry.previous]o16886:0, o17569[LinkedList$Entry.previous]o16888:0, o17569[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) :|: o16888[LinkedList$Entry.previous]o16889:0 > 0 && o16889[LinkedList$Entry.previous]o16888:0 > 0 && o16889[LinkedList$Entry.previous]o16886:0 > -1 && o17569[LinkedList$Entry.previous]o16886:0 < o16889[LinkedList$Entry.previous]o16886:0 && o17569[LinkedList$Entry.previous]o16888:0 < o16889[LinkedList$Entry.previous]o16888:0 && o16888[LinkedList$Entry.previous]o17569:0 > o16888[LinkedList$Entry.previous]o16889:0 && o17569[LinkedList$Entry.previous]o16886:0 > 0 (2) f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (56) Obligation: Termination digraph: Nodes: (1) f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18020sub1706952044:0), java.lang.Object(o17569sub1706952044:0))), o16888[LinkedList$Entry.previous]o16889:0, o16888[LinkedList$Entry.previous]o16886:0, o16889[LinkedList$Entry.previous]o16888:0, o16889[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0, java.lang.Object(o16888sub-882727691:0)))))))), java.lang.Object(o17569sub0:0), o16888[LinkedList$Entry.previous]o17569:0, o16888[LinkedList$Entry.previous]o16886:0, o17569[LinkedList$Entry.previous]o16888:0, o17569[LinkedList$Entry.previous]o16886:0, o16887-882727691:0) :|: o16888[LinkedList$Entry.previous]o16889:0 > 0 && o16889[LinkedList$Entry.previous]o16888:0 > 0 && o16889[LinkedList$Entry.previous]o16886:0 > -1 && o17569[LinkedList$Entry.previous]o16886:0 < o16889[LinkedList$Entry.previous]o16886:0 && o17569[LinkedList$Entry.previous]o16888:0 < o16889[LinkedList$Entry.previous]o16888:0 && o16888[LinkedList$Entry.previous]o17569:0 > o16888[LinkedList$Entry.previous]o16889:0 && o17569[LinkedList$Entry.previous]o16886:0 > 0 (2) f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (57) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (58) Obligation: Rules: f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1:0), java.lang.Object(x2:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3:0), java.lang.Object(x4:0))), x5:0, x6:0, x5:0, x6:0, x:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1:0), java.lang.Object(x2:0)))))))))), java.lang.Object(x7:0), 1, x8:0, x9:0, x10:0, x:0) :|: x5:0 > -1 && x10:0 > 0 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0 f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0:0, java.lang.Object(o16888sub-882727691:0:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18020sub1706952044:0:0), java.lang.Object(o17569sub1706952044:0:0))), o16888[LinkedList$Entry.previous]o16889:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o16889[LinkedList$Entry.previous]o16888:0:0, o16889[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) -> f8470_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16887-882727691:0:0, java.lang.Object(o16888sub-882727691:0:0)))))))), java.lang.Object(o17569sub0:0:0), o16888[LinkedList$Entry.previous]o17569:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o17569[LinkedList$Entry.previous]o16888:0:0, o17569[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) :|: o16888[LinkedList$Entry.previous]o17569:0:0 > o16888[LinkedList$Entry.previous]o16889:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 > 0 && o17569[LinkedList$Entry.previous]o16888:0:0 < o16889[LinkedList$Entry.previous]o16888:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 < o16889[LinkedList$Entry.previous]o16886:0:0 && o16889[LinkedList$Entry.previous]o16886:0:0 > -1 && o16889[LinkedList$Entry.previous]o16888:0:0 > 0 && o16888[LinkedList$Entry.previous]o16889:0:0 > 0 ---------------------------------------- (59) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f8470_0_removeLastOccurrence_EQ(VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE) java.lang.Object(VARIABLE) javaUtilEx.AbstractCollection(VARIABLE) javaUtilEx.AbstractList(VARIABLE) javaUtilEx.AbstractSequentialList(VARIABLE) javaUtilEx.LinkedList(VARIABLE) javaUtilEx.LinkedList$Entry(VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (60) Obligation: Rules: f8470_0_removeLastOccurrence_EQ(c, c1, x5:0, x6:0, x5:0, x6:0, x:0) -> f8470_0_removeLastOccurrence_EQ(c2, c3, c4, x8:0, x9:0, x10:0, x:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x5:0 > -1 && x10:0 > 0 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) f8470_0_removeLastOccurrence_EQ(c5, c6, o16888[LinkedList$Entry.previous]o16889:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o16889[LinkedList$Entry.previous]o16888:0:0, o16889[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) -> f8470_0_removeLastOccurrence_EQ(c7, c8, o16888[LinkedList$Entry.previous]o17569:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o17569[LinkedList$Entry.previous]o16888:0:0, o17569[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) :|: c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0)) && (o16888[LinkedList$Entry.previous]o17569:0:0 > o16888[LinkedList$Entry.previous]o16889:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 > 0 && o17569[LinkedList$Entry.previous]o16888:0:0 < o16889[LinkedList$Entry.previous]o16888:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 < o16889[LinkedList$Entry.previous]o16886:0:0 && o16889[LinkedList$Entry.previous]o16886:0:0 > -1 && o16889[LinkedList$Entry.previous]o16888:0:0 > 0 && o16888[LinkedList$Entry.previous]o16889:0:0 > 0) ---------------------------------------- (61) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8470_0_removeLastOccurrence_EQ(x, x1, x2, x3, x4, x5, x6)] = -1 + c*x + c1*x1 + 2*x4 The following rules are decreasing: f8470_0_removeLastOccurrence_EQ(c, c1, x5:0, x6:0, x5:0, x6:0, x:0) -> f8470_0_removeLastOccurrence_EQ(c2, c3, c4, x8:0, x9:0, x10:0, x:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x5:0 > -1 && x10:0 > 0 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) f8470_0_removeLastOccurrence_EQ(c5, c6, o16888[LinkedList$Entry.previous]o16889:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o16889[LinkedList$Entry.previous]o16888:0:0, o16889[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) -> f8470_0_removeLastOccurrence_EQ(c7, c8, o16888[LinkedList$Entry.previous]o17569:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o17569[LinkedList$Entry.previous]o16888:0:0, o17569[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) :|: c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0)) && (o16888[LinkedList$Entry.previous]o17569:0:0 > o16888[LinkedList$Entry.previous]o16889:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 > 0 && o17569[LinkedList$Entry.previous]o16888:0:0 < o16889[LinkedList$Entry.previous]o16888:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 < o16889[LinkedList$Entry.previous]o16886:0:0 && o16889[LinkedList$Entry.previous]o16886:0:0 > -1 && o16889[LinkedList$Entry.previous]o16888:0:0 > 0 && o16888[LinkedList$Entry.previous]o16889:0:0 > 0) The following rules are bounded: f8470_0_removeLastOccurrence_EQ(c5, c6, o16888[LinkedList$Entry.previous]o16889:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o16889[LinkedList$Entry.previous]o16888:0:0, o16889[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) -> f8470_0_removeLastOccurrence_EQ(c7, c8, o16888[LinkedList$Entry.previous]o17569:0:0, o16888[LinkedList$Entry.previous]o16886:0:0, o17569[LinkedList$Entry.previous]o16888:0:0, o17569[LinkedList$Entry.previous]o16886:0:0, o16887-882727691:0:0) :|: c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0)) && (o16888[LinkedList$Entry.previous]o17569:0:0 > o16888[LinkedList$Entry.previous]o16889:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 > 0 && o17569[LinkedList$Entry.previous]o16888:0:0 < o16889[LinkedList$Entry.previous]o16888:0:0 && o17569[LinkedList$Entry.previous]o16886:0:0 < o16889[LinkedList$Entry.previous]o16886:0:0 && o16889[LinkedList$Entry.previous]o16886:0:0 > -1 && o16889[LinkedList$Entry.previous]o16888:0:0 > 0 && o16888[LinkedList$Entry.previous]o16889:0:0 > 0) ---------------------------------------- (62) Obligation: Rules: f8470_0_removeLastOccurrence_EQ(c, c1, x5:0, x6:0, x5:0, x6:0, x:0) -> f8470_0_removeLastOccurrence_EQ(c2, c3, c4, x8:0, x9:0, x10:0, x:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x5:0 > -1 && x10:0 > 0 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) ---------------------------------------- (63) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8470_0_removeLastOccurrence_EQ(x, x1, x2, x3, x4, x5, x6)] = c*x + c1*x1 + x4 The following rules are decreasing: f8470_0_removeLastOccurrence_EQ(c, c1, x5:0, x6:0, x5:0, x6:0, x:0) -> f8470_0_removeLastOccurrence_EQ(c2, c3, c4, x8:0, x9:0, x10:0, x:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x5:0 > -1 && x10:0 > 0 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) The following rules are bounded: f8470_0_removeLastOccurrence_EQ(c, c1, x5:0, x6:0, x5:0, x6:0, x:0) -> f8470_0_removeLastOccurrence_EQ(c2, c3, c4, x8:0, x9:0, x10:0, x:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x5:0 > -1 && x10:0 > 0 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) ---------------------------------------- (64) YES ---------------------------------------- (65) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [element, previous] *javaUtilEx.LinkedList: [header] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (66) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 26 IRulesP rules: f8468_0_removeLastOccurrence_EQ(EOS(STATIC_8468), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068, java.lang.Object(o16807sub1706112068))), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807, o16808[LinkedList$Entry.previous]o16804) -> f8489_0_removeLastOccurrence_Load(EOS(STATIC_8489), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807, o16808[LinkedList$Entry.previous]o16804) :|: TRUE f8489_0_removeLastOccurrence_Load(EOS(STATIC_8489), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807, o16808[LinkedList$Entry.previous]o16804) -> f8510_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8510), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807, o16808[LinkedList$Entry.previous]o16804) :|: TRUE f8510_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8510), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807, o16808[LinkedList$Entry.previous]o16804) -> f8530_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8530), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) :|: o16807[LinkedList$Entry.previous]o16808 > 0 && o16808[LinkedList$Entry.previous]o16807 > 0 f8510_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8510), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o17445sub-882743191)))))))), java.lang.Object(o17445sub0), java.lang.Object(o17445sub0), o17445[LinkedList$Entry.previous]o17445, o16806[LinkedList$Entry.next]o16804, o17445[LinkedList$Entry.previous]o16804, o17445[LinkedList$Entry.previous]o17445, o17445[LinkedList$Entry.previous]o16804) -> f8531_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8531), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o17445sub-882743191)))))))), java.lang.Object(o17445sub0), java.lang.Object(o17445sub0), o16806[LinkedList$Entry.next]o16804, o17445[LinkedList$Entry.previous]o16804, o17445[LinkedList$Entry.previous]o17445) :|: TRUE f8530_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8530), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), o16807[LinkedList$Entry.previous]o17558, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17558[LinkedList$Entry.previous]o16804, o17558[LinkedList$Entry.previous]o16807) -> f8545_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8545), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) :|: o17561[LinkedList$Entry.previous]o16804 < o17558[LinkedList$Entry.previous]o16804 && o17558[LinkedList$Entry.previous]o16804 >= 0 && o17561[LinkedList$Entry.previous]o16807 < o17558[LinkedList$Entry.previous]o16807 && o17558[LinkedList$Entry.previous]o16807 >= 0 f8545_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8545), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) -> f8564_0_removeLastOccurrence_NONNULL(EOS(STATIC_8564), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175591706951145, java.lang.Object(o17561sub1706951145))), o175590, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) :|: TRUE f8564_0_removeLastOccurrence_NONNULL(EOS(STATIC_8564), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), java.lang.Object(o18018sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) -> f8584_0_removeLastOccurrence_NONNULL(EOS(STATIC_8584), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), java.lang.Object(o18018sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) :|: TRUE f8584_0_removeLastOccurrence_NONNULL(EOS(STATIC_8584), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), java.lang.Object(o18018sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) -> f8602_0_removeLastOccurrence_Load(EOS(STATIC_8602), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) :|: TRUE f8602_0_removeLastOccurrence_Load(EOS(STATIC_8602), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) -> f8621_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8621), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) :|: TRUE f8621_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8621), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145), java.lang.Object(o17561sub1706951145))), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16807[LinkedList$Entry.previous]o17558, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) -> f8638_0_removeLastOccurrence_Store(EOS(STATIC_8638), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807, o16807[LinkedList$Entry.previous]o17561) :|: o16807[LinkedList$Entry.previous]o17561 > o16807[LinkedList$Entry.previous]o17558 && o16807[LinkedList$Entry.previous]o17558 >= 0 f8638_0_removeLastOccurrence_Store(EOS(STATIC_8638), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807, o16807[LinkedList$Entry.previous]o17561) -> f8656_0_removeLastOccurrence_JMP(EOS(STATIC_8656), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807, o16807[LinkedList$Entry.previous]o17561) :|: TRUE f8656_0_removeLastOccurrence_JMP(EOS(STATIC_8656), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807, o16807[LinkedList$Entry.previous]o17561) -> f8674_0_removeLastOccurrence_Load(EOS(STATIC_8674), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807, o16807[LinkedList$Entry.previous]o17561) :|: TRUE f8674_0_removeLastOccurrence_Load(EOS(STATIC_8674), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807, o16807[LinkedList$Entry.previous]o17561) -> f8411_0_removeLastOccurrence_Load(EOS(STATIC_8411), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o17561sub0), o16807[LinkedList$Entry.previous]o17561, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16804, o17561[LinkedList$Entry.previous]o16807) :|: TRUE f8411_0_removeLastOccurrence_Load(EOS(STATIC_8411), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) -> f8423_0_removeLastOccurrence_Load(EOS(STATIC_8423), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) :|: TRUE f8423_0_removeLastOccurrence_Load(EOS(STATIC_8423), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) -> f8436_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8436), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) :|: TRUE f8436_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8436), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) -> f8451_0_removeLastOccurrence_EQ(EOS(STATIC_8451), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068, java.lang.Object(o16807sub1706112068))), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) :|: TRUE f8451_0_removeLastOccurrence_EQ(EOS(STATIC_8451), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068, java.lang.Object(o16807sub1706112068))), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807) -> f8468_0_removeLastOccurrence_EQ(EOS(STATIC_8468), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(o16807sub-882743191)))))))), java.lang.Object(o16808sub0), java.lang.Object(o16808sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068, java.lang.Object(o16807sub1706112068))), o16807[LinkedList$Entry.previous]o16808, o16806[LinkedList$Entry.next]o16804, o16807[LinkedList$Entry.previous]o16804, o16808[LinkedList$Entry.previous]o16807, o16808[LinkedList$Entry.previous]o16804) :|: o16808[LinkedList$Entry.previous]o16804 > 0 f8531_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8531), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17563824208729, java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17562[LinkedList$Entry.previous]o16804, o17562[LinkedList$Entry.previous]o17562) -> f8546_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8546), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17563824208729, java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: o17565[LinkedList$Entry.previous]o16804 < o17562[LinkedList$Entry.previous]o16804 && o17562[LinkedList$Entry.previous]o16804 >= 0 && o17565[LinkedList$Entry.previous]o17562 < o17562[LinkedList$Entry.previous]o17562 && o17562[LinkedList$Entry.previous]o17562 >= 0 f8546_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8546), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17563824208729, java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8565_0_removeLastOccurrence_NONNULL(EOS(STATIC_8565), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o17563824208729, java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o175631706951920, java.lang.Object(o17565sub1706951920))), o175630, o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8565_0_removeLastOccurrence_NONNULL(EOS(STATIC_8565), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), java.lang.Object(o18019sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8586_0_removeLastOccurrence_NONNULL(EOS(STATIC_8586), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), java.lang.Object(o18019sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8586_0_removeLastOccurrence_NONNULL(EOS(STATIC_8586), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), java.lang.Object(o18019sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8604_0_removeLastOccurrence_Load(EOS(STATIC_8604), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8604_0_removeLastOccurrence_Load(EOS(STATIC_8604), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8623_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8623), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8623_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8623), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920), java.lang.Object(o17565sub1706951920))), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8640_0_removeLastOccurrence_Store(EOS(STATIC_8640), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8640_0_removeLastOccurrence_Store(EOS(STATIC_8640), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8658_0_removeLastOccurrence_JMP(EOS(STATIC_8658), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8658_0_removeLastOccurrence_JMP(EOS(STATIC_8658), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8675_0_removeLastOccurrence_Load(EOS(STATIC_8675), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: TRUE f8675_0_removeLastOccurrence_Load(EOS(STATIC_8675), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o16806[LinkedList$Entry.next]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) -> f8411_0_removeLastOccurrence_Load(EOS(STATIC_8411), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729), java.lang.Object(o17565sub824208729)))))))))), java.lang.Object(o17565sub0), o17562[LinkedList$Entry.previous]o17565, o16806[LinkedList$Entry.next]o16804, o17562[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o16804, o17565[LinkedList$Entry.previous]o17562) :|: o17562[LinkedList$Entry.previous]o17565 = 1 Combined rules. Obtained 2 IRulesP rules: f8468_0_removeLastOccurrence_EQ(EOS(STATIC_8468), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068:0, java.lang.Object(o16807sub1706112068:0))), o16807[LinkedList$Entry.previous]o16808:0, o16806[LinkedList$Entry.next]o16804:0, o16807[LinkedList$Entry.previous]o16804:0, o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0) -> f8468_0_removeLastOccurrence_EQ(EOS(STATIC_8468), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(o17565sub0:0), java.lang.Object(o17565sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068:1, java.lang.Object(o16807sub1706112068:1))), 1, o16806[LinkedList$Entry.next]o16804:0, o17562[LinkedList$Entry.previous]o16804:0, o17565[LinkedList$Entry.previous]o17562:0, o17565[LinkedList$Entry.previous]o16804:0) :|: o16807[LinkedList$Entry.previous]o16804:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0 < o16807[LinkedList$Entry.previous]o16804:0 && o17565[LinkedList$Entry.previous]o17562:0 < o16807[LinkedList$Entry.previous]o16808:0 && o17565[LinkedList$Entry.previous]o16804:0 > 0 && o16807[LinkedList$Entry.previous]o16808:0 > -1 f8468_0_removeLastOccurrence_EQ(EOS(STATIC_8468), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191:0, java.lang.Object(o16807sub-882743191:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145:0), java.lang.Object(o17561sub1706951145:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o18018sub1706951145:0), java.lang.Object(o17561sub1706951145:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068:0, java.lang.Object(o16807sub1706112068:0))), o16807[LinkedList$Entry.previous]o16808:0, o16806[LinkedList$Entry.next]o16804:0, o16807[LinkedList$Entry.previous]o16804:0, o16808[LinkedList$Entry.previous]o16807:0, o16808[LinkedList$Entry.previous]o16804:0) -> f8468_0_removeLastOccurrence_EQ(EOS(STATIC_8468), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o16805-882743191:0, java.lang.Object(o16807sub-882743191:0)))))))), java.lang.Object(o17561sub0:0), java.lang.Object(o17561sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o168051706112068:1, java.lang.Object(o16807sub1706112068:1))), o16807[LinkedList$Entry.previous]o17561:0, o16806[LinkedList$Entry.next]o16804:0, o16807[LinkedList$Entry.previous]o16804:0, o17561[LinkedList$Entry.previous]o16807:0, o17561[LinkedList$Entry.previous]o16804:0) :|: o16808[LinkedList$Entry.previous]o16807:0 > 0 && o16807[LinkedList$Entry.previous]o16808:0 > 0 && o16808[LinkedList$Entry.previous]o16804:0 > -1 && o17561[LinkedList$Entry.previous]o16804:0 < o16808[LinkedList$Entry.previous]o16804:0 && o17561[LinkedList$Entry.previous]o16807:0 < o16808[LinkedList$Entry.previous]o16807:0 && o17561[LinkedList$Entry.previous]o16804:0 > 0 && o16807[LinkedList$Entry.previous]o17561:0 > o16807[LinkedList$Entry.previous]o16808:0 Filtered constant ground arguments: f8468_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f8468_0_removeLastOccurrence_EQ(x2, x3, x4, x5, x6, x7, x8, x9, x10) EOS(x1) -> EOS javaUtilEx.LinkedList$Entry(x1, x2, x3) -> javaUtilEx.LinkedList$Entry(x2, x3) javaUtilEx.LinkedList(x1, x2) -> javaUtilEx.LinkedList(x2) Filtered duplicate arguments: f8468_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f8468_0_removeLastOccurrence_EQ(x1, x3, x4, x5, x6, x7, x8, x9) Filtered unneeded arguments: f8468_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8) -> f8468_0_removeLastOccurrence_EQ(x1, x2, x4, x6, x7, x8) Finished conversion. Obtained 2 rules.P rules: f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(o17565sub0:0), 1, o17562[LinkedList$Entry.previous]o16804:0, o17565[LinkedList$Entry.previous]o17562:0, o17565[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) :|: o17565[LinkedList$Entry.previous]o16804:0 < o16807[LinkedList$Entry.previous]o16804:0 && o16807[LinkedList$Entry.previous]o16804:0 > -1 && o17565[LinkedList$Entry.previous]o17562:0 < o16807[LinkedList$Entry.previous]o16808:0 && o16807[LinkedList$Entry.previous]o16808:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0 > 0 f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(o16807sub-882743191:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18018sub1706951145:0), java.lang.Object(o17561sub1706951145:0))), o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16808[LinkedList$Entry.previous]o16807:0, o16808[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(o16807sub-882743191:0)))))))), java.lang.Object(o17561sub0:0), o16807[LinkedList$Entry.previous]o17561:0, o16807[LinkedList$Entry.previous]o16804:0, o17561[LinkedList$Entry.previous]o16807:0, o17561[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) :|: o16807[LinkedList$Entry.previous]o16808:0 > 0 && o16808[LinkedList$Entry.previous]o16807:0 > 0 && o16808[LinkedList$Entry.previous]o16804:0 > -1 && o17561[LinkedList$Entry.previous]o16804:0 < o16808[LinkedList$Entry.previous]o16804:0 && o17561[LinkedList$Entry.previous]o16807:0 < o16808[LinkedList$Entry.previous]o16807:0 && o16807[LinkedList$Entry.previous]o17561:0 > o16807[LinkedList$Entry.previous]o16808:0 && o17561[LinkedList$Entry.previous]o16804:0 > 0 ---------------------------------------- (67) Obligation: Rules: f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(o17565sub0:0), 1, o17562[LinkedList$Entry.previous]o16804:0, o17565[LinkedList$Entry.previous]o17562:0, o17565[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) :|: o17565[LinkedList$Entry.previous]o16804:0 < o16807[LinkedList$Entry.previous]o16804:0 && o16807[LinkedList$Entry.previous]o16804:0 > -1 && o17565[LinkedList$Entry.previous]o17562:0 < o16807[LinkedList$Entry.previous]o16808:0 && o16807[LinkedList$Entry.previous]o16808:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0 > 0 f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x7 > -1 && x11 < x7 && x10 < x6 && x9 > x4 && x11 > 0 ---------------------------------------- (68) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (69) Obligation: Rules: f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(o17565sub0:0), 1, o17562[LinkedList$Entry.previous]o16804:0, o17565[LinkedList$Entry.previous]o17562:0, o17565[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) :|: o17565[LinkedList$Entry.previous]o16804:0 < o16807[LinkedList$Entry.previous]o16804:0 && o16807[LinkedList$Entry.previous]o16804:0 > -1 && o17565[LinkedList$Entry.previous]o17562:0 < o16807[LinkedList$Entry.previous]o16808:0 && o16807[LinkedList$Entry.previous]o16808:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0 > 0 f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x7 > -1 && x11 < x7 && x10 < x6 && x9 > x4 && x11 > 0 ---------------------------------------- (70) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(o17565sub0:0), 1, o17562[LinkedList$Entry.previous]o16804:0, o17565[LinkedList$Entry.previous]o17562:0, o17565[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) :|: o17565[LinkedList$Entry.previous]o16804:0 < o16807[LinkedList$Entry.previous]o16804:0 && o16807[LinkedList$Entry.previous]o16804:0 > -1 && o17565[LinkedList$Entry.previous]o17562:0 < o16807[LinkedList$Entry.previous]o16808:0 && o16807[LinkedList$Entry.previous]o16808:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0 > 0 (2) f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x7 > -1 && x11 < x7 && x10 < x6 && x9 > x4 && x11 > 0 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (71) Obligation: Termination digraph: Nodes: (1) f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub1706951920:0), java.lang.Object(o17565sub1706951920:0))), o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16807[LinkedList$Entry.previous]o16808:0, o16807[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0), java.lang.Object(o17565sub824208729:0)))))))))), java.lang.Object(o17565sub0:0), 1, o17562[LinkedList$Entry.previous]o16804:0, o17565[LinkedList$Entry.previous]o17562:0, o17565[LinkedList$Entry.previous]o16804:0, o16805-882743191:0) :|: o17565[LinkedList$Entry.previous]o16804:0 < o16807[LinkedList$Entry.previous]o16804:0 && o16807[LinkedList$Entry.previous]o16804:0 > -1 && o17565[LinkedList$Entry.previous]o17562:0 < o16807[LinkedList$Entry.previous]o16808:0 && o16807[LinkedList$Entry.previous]o16808:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0 > 0 (2) f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x7 > -1 && x11 < x7 && x10 < x6 && x9 > x4 && x11 > 0 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (72) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (73) Obligation: Rules: f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0:0), java.lang.Object(o17565sub824208729:0:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub1706951920:0:0), java.lang.Object(o17565sub1706951920:0:0))), o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o16805-882743191:0:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o18019sub824208729:0:0), java.lang.Object(o17565sub824208729:0:0)))))))))), java.lang.Object(o17565sub0:0:0), 1, o17562[LinkedList$Entry.previous]o16804:0:0, o17565[LinkedList$Entry.previous]o17562:0:0, o17565[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) :|: o16807[LinkedList$Entry.previous]o16808:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 > 0 && o17565[LinkedList$Entry.previous]o17562:0:0 < o16807[LinkedList$Entry.previous]o16808:0:0 && o16807[LinkedList$Entry.previous]o16804:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 < o16807[LinkedList$Entry.previous]o16804:0:0 f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2:0), java.lang.Object(x3:0))), x4:0, x5:0, x6:0, x7:0, x:0) -> f8468_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(x8:0), x9:0, x5:0, x10:0, x11:0, x:0) :|: x9:0 > x4:0 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x6:0 > 0 && x4:0 > 0 ---------------------------------------- (74) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f8468_0_removeLastOccurrence_EQ(VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE) java.lang.Object(VARIABLE) javaUtilEx.AbstractCollection(VARIABLE) javaUtilEx.AbstractList(VARIABLE) javaUtilEx.AbstractSequentialList(VARIABLE) javaUtilEx.LinkedList(VARIABLE) javaUtilEx.LinkedList$Entry(VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (75) Obligation: Rules: f8468_0_removeLastOccurrence_EQ(c, c1, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) -> f8468_0_removeLastOccurrence_EQ(c2, c3, c4, o17562[LinkedList$Entry.previous]o16804:0:0, o17565[LinkedList$Entry.previous]o17562:0:0, o17565[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (o16807[LinkedList$Entry.previous]o16808:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 > 0 && o17565[LinkedList$Entry.previous]o17562:0:0 < o16807[LinkedList$Entry.previous]o16808:0:0 && o16807[LinkedList$Entry.previous]o16804:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 < o16807[LinkedList$Entry.previous]o16804:0:0) f8468_0_removeLastOccurrence_EQ(c5, c6, x4:0, x5:0, x6:0, x7:0, x:0) -> f8468_0_removeLastOccurrence_EQ(c7, c8, x9:0, x5:0, x10:0, x11:0, x:0) :|: c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0)) && (x9:0 > x4:0 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x6:0 > 0 && x4:0 > 0) ---------------------------------------- (76) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8468_0_removeLastOccurrence_EQ ] = f8468_0_removeLastOccurrence_EQ_5 The following rules are decreasing: f8468_0_removeLastOccurrence_EQ(c, c1, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) -> f8468_0_removeLastOccurrence_EQ(c2, c3, c4, o17562[LinkedList$Entry.previous]o16804:0:0, o17565[LinkedList$Entry.previous]o17562:0:0, o17565[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (o16807[LinkedList$Entry.previous]o16808:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 > 0 && o17565[LinkedList$Entry.previous]o17562:0:0 < o16807[LinkedList$Entry.previous]o16808:0:0 && o16807[LinkedList$Entry.previous]o16804:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 < o16807[LinkedList$Entry.previous]o16804:0:0) f8468_0_removeLastOccurrence_EQ(c5, c6, x4:0, x5:0, x6:0, x7:0, x:0) -> f8468_0_removeLastOccurrence_EQ(c7, c8, x9:0, x5:0, x10:0, x11:0, x:0) :|: c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0)) && (x9:0 > x4:0 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x6:0 > 0 && x4:0 > 0) The following rules are bounded: f8468_0_removeLastOccurrence_EQ(c, c1, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16807[LinkedList$Entry.previous]o16808:0:0, o16807[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) -> f8468_0_removeLastOccurrence_EQ(c2, c3, c4, o17562[LinkedList$Entry.previous]o16804:0:0, o17565[LinkedList$Entry.previous]o17562:0:0, o17565[LinkedList$Entry.previous]o16804:0:0, o16805-882743191:0:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (o16807[LinkedList$Entry.previous]o16808:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 > 0 && o17565[LinkedList$Entry.previous]o17562:0:0 < o16807[LinkedList$Entry.previous]o16808:0:0 && o16807[LinkedList$Entry.previous]o16804:0:0 > -1 && o17565[LinkedList$Entry.previous]o16804:0:0 < o16807[LinkedList$Entry.previous]o16804:0:0) f8468_0_removeLastOccurrence_EQ(c5, c6, x4:0, x5:0, x6:0, x7:0, x:0) -> f8468_0_removeLastOccurrence_EQ(c7, c8, x9:0, x5:0, x10:0, x11:0, x:0) :|: c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0)) && (x9:0 > x4:0 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x6:0 > 0 && x4:0 > 0) ---------------------------------------- (77) YES ---------------------------------------- (78) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [next] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (79) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 40 IRulesP rules: f8352_0_entry_GT(EOS(STATIC_8352), i3527, i4334, i4334, i3527, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) -> f8368_0_entry_Load(EOS(STATIC_8368), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) :|: i4334 <= i3527 f8368_0_entry_Load(EOS(STATIC_8368), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) -> f8383_0_entry_FieldAccess(EOS(STATIC_8383), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) :|: TRUE f8383_0_entry_FieldAccess(EOS(STATIC_8383), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) -> f8399_0_entry_FieldAccess(EOS(STATIC_8399), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16230) :|: o16230[LinkedList$Entry.next]o16230 > 0 && o16230[LinkedList$Entry.previous]o16230 > 0 && o16228[LinkedList$Entry.next]o16230 > 0 && o16230[LinkedList$Entry.next]o16228 > 0 && o16228[LinkedList$Entry.next]o16228 > 0 f8383_0_entry_FieldAccess(EOS(STATIC_8383), i3527, i4334, o16723[LinkedList$Entry.next]o16723, o16723[LinkedList$Entry.previous]o16723, o16723[LinkedList$Entry.next]o16723, o16723[LinkedList$Entry.next]o16723, o16723[LinkedList$Entry.next]o16723) -> f8400_0_entry_FieldAccess(EOS(STATIC_8400), i3527, i4334, o16723[LinkedList$Entry.next]o16723, o16723[LinkedList$Entry.previous]o16723) :|: TRUE f8399_0_entry_FieldAccess(EOS(STATIC_8399), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16230[LinkedList$Entry.next]o16937, o16937[LinkedList$Entry.next]o16937, o16937[LinkedList$Entry.next]o16230) -> f8415_0_entry_FieldAccess(EOS(STATIC_8415), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16230[LinkedList$Entry.next]o16937, o16939[LinkedList$Entry.next]o16230, o16939[LinkedList$Entry.next]o16937) :|: o16939[LinkedList$Entry.next]o16937 < o16937[LinkedList$Entry.next]o16937 && o16937[LinkedList$Entry.next]o16937 >= 0 && o16939[LinkedList$Entry.next]o16230 < o16937[LinkedList$Entry.next]o16230 && o16937[LinkedList$Entry.next]o16230 >= 0 f8415_0_entry_FieldAccess(EOS(STATIC_8415), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16230[LinkedList$Entry.next]o16937, o16939[LinkedList$Entry.next]o16230, o16939[LinkedList$Entry.next]o16937) -> f8427_0_entry_Store(EOS(STATIC_8427), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) :|: o16230[LinkedList$Entry.next]o16939 > o16230[LinkedList$Entry.next]o16937 && o16230[LinkedList$Entry.next]o16937 >= 0 && o16939[LinkedList$Entry.next]o16939 > o16939[LinkedList$Entry.next]o16937 && o16939[LinkedList$Entry.next]o16937 >= 0 f8427_0_entry_Store(EOS(STATIC_8427), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) -> f8440_0_entry_Inc(EOS(STATIC_8440), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) :|: TRUE f8440_0_entry_Inc(EOS(STATIC_8440), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) -> f8456_0_entry_JMP(EOS(STATIC_8456), i3527, i4334 + 1, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) :|: TRUE f8456_0_entry_JMP(EOS(STATIC_8456), i3527, i4428, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) -> f8476_0_entry_Load(EOS(STATIC_8476), i3527, i4428, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) :|: TRUE f8476_0_entry_Load(EOS(STATIC_8476), i3527, i4428, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) -> f8311_0_entry_Load(EOS(STATIC_8311), i3527, i4428, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16939[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16939, o16939[LinkedList$Entry.next]o16939) :|: TRUE f8311_0_entry_Load(EOS(STATIC_8311), i3527, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) -> f8323_0_entry_Load(EOS(STATIC_8323), i3527, i4334, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) :|: TRUE f8323_0_entry_Load(EOS(STATIC_8323), i3527, i4334, i4334, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) -> f8337_0_entry_GT(EOS(STATIC_8337), i3527, i4334, i4334, i3527, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) :|: TRUE f8337_0_entry_GT(EOS(STATIC_8337), i3527, i4334, i4334, i3527, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) -> f8352_0_entry_GT(EOS(STATIC_8352), i3527, i4334, i4334, i3527, o16230[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.previous]o16230, o16228[LinkedList$Entry.next]o16230, o16230[LinkedList$Entry.next]o16228, o16228[LinkedList$Entry.next]o16228) :|: i4334 <= i3527 f8400_0_entry_FieldAccess(EOS(STATIC_8400), i3527, i4334, o16941[LinkedList$Entry.next]o16941, o16941[LinkedList$Entry.previous]o16941) -> f8416_0_entry_FieldAccess(EOS(STATIC_8416), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) :|: o16943[LinkedList$Entry.next]o16941 < o16941[LinkedList$Entry.next]o16941 && o16941[LinkedList$Entry.next]o16941 >= 0 && o16944[LinkedList$Entry.previous]o16941 < o16941[LinkedList$Entry.previous]o16941 && o16941[LinkedList$Entry.previous]o16941 >= 0 f8416_0_entry_FieldAccess(EOS(STATIC_8416), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) -> f8428_0_entry_FieldAccess(EOS(STATIC_8428), i3527, i4334, o16944[LinkedList$Entry.previous]o16941, o16943[LinkedList$Entry.next]o16941) :|: o16943[LinkedList$Entry.next]o16941 > 0 f8416_0_entry_FieldAccess(EOS(STATIC_8416), i3527, i4334, o16943[LinkedList$Entry.next]o17040, o16944[LinkedList$Entry.previous]o17040) -> f8429_0_entry_FieldAccess(EOS(STATIC_8429), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) :|: TRUE f8428_0_entry_FieldAccess(EOS(STATIC_8428), i3527, i4334, o16944[LinkedList$Entry.previous]o16941, o16943[LinkedList$Entry.next]o16941) -> f8441_0_entry_FieldAccess(EOS(STATIC_8441), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) :|: o16944[LinkedList$Entry.previous]o16941 > 0 f8428_0_entry_FieldAccess(EOS(STATIC_8428), i3527, i4334, o16944[LinkedList$Entry.previous]o17088, o16943[LinkedList$Entry.next]o17088) -> f8442_0_entry_FieldAccess(EOS(STATIC_8442), i3527, i4334, o16943[LinkedList$Entry.next]o17088) :|: TRUE f8441_0_entry_FieldAccess(EOS(STATIC_8441), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) -> f8457_0_entry_Store(EOS(STATIC_8457), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) :|: TRUE f8457_0_entry_Store(EOS(STATIC_8457), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) -> f8477_0_entry_Inc(EOS(STATIC_8477), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) :|: TRUE f8477_0_entry_Inc(EOS(STATIC_8477), i3527, i4334, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) -> f8497_0_entry_JMP(EOS(STATIC_8497), i3527, i4334 + 1, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) :|: TRUE f8497_0_entry_JMP(EOS(STATIC_8497), i3527, i4436, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) -> f8516_0_entry_Load(EOS(STATIC_8516), i3527, i4436, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) :|: TRUE f8516_0_entry_Load(EOS(STATIC_8516), i3527, i4436, o16943[LinkedList$Entry.next]o16941, o16944[LinkedList$Entry.previous]o16941) -> f8311_0_entry_Load(EOS(STATIC_8311), i3527, i4436, o16941[LinkedList$Entry.next]o16941, o16941[LinkedList$Entry.previous]o16941, o16943[LinkedList$Entry.next]o16941, o16941[LinkedList$Entry.next]o16943, o16943[LinkedList$Entry.next]o16943) :|: o16941[LinkedList$Entry.next]o16943 = 1 f8442_0_entry_FieldAccess(EOS(STATIC_8442), i3527, i4334, o16943[LinkedList$Entry.next]o17088) -> f8458_0_entry_Store(EOS(STATIC_8458), i3527, i4334, o16943[LinkedList$Entry.next]o17088) :|: TRUE f8458_0_entry_Store(EOS(STATIC_8458), i3527, i4334, o16943[LinkedList$Entry.next]o17088) -> f8478_0_entry_Inc(EOS(STATIC_8478), i3527, i4334, o16943[LinkedList$Entry.next]o17088) :|: TRUE f8478_0_entry_Inc(EOS(STATIC_8478), i3527, i4334, o16943[LinkedList$Entry.next]o17088) -> f8498_0_entry_JMP(EOS(STATIC_8498), i3527, i4334 + 1, o16943[LinkedList$Entry.next]o17088) :|: TRUE f8498_0_entry_JMP(EOS(STATIC_8498), i3527, i4438, o16943[LinkedList$Entry.next]o17088) -> f8517_0_entry_Load(EOS(STATIC_8517), i3527, i4438, o16943[LinkedList$Entry.next]o17088) :|: TRUE f8517_0_entry_Load(EOS(STATIC_8517), i3527, i4438, o16943[LinkedList$Entry.next]o17088) -> f8311_0_entry_Load(EOS(STATIC_8311), i3527, i4438, o17088[LinkedList$Entry.next]o17088, o17088[LinkedList$Entry.previous]o17088, o16943[LinkedList$Entry.next]o17088, o17088[LinkedList$Entry.next]o16943, o16943[LinkedList$Entry.next]o16943) :|: o17088[LinkedList$Entry.previous]o17088 = 1 && o17088[LinkedList$Entry.next]o16943 = 1 f8429_0_entry_FieldAccess(EOS(STATIC_8429), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) -> f8443_0_entry_FieldAccess(EOS(STATIC_8443), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) :|: o16944[LinkedList$Entry.previous]o17040 > 0 f8429_0_entry_FieldAccess(EOS(STATIC_8429), i3527, i4334, o16944[LinkedList$Entry.previous]o17091) -> f8444_0_entry_FieldAccess(EOS(STATIC_8444), i3527, i4334) :|: TRUE f8443_0_entry_FieldAccess(EOS(STATIC_8443), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) -> f8459_0_entry_Store(EOS(STATIC_8459), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) :|: TRUE f8459_0_entry_Store(EOS(STATIC_8459), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) -> f8479_0_entry_Inc(EOS(STATIC_8479), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) :|: TRUE f8479_0_entry_Inc(EOS(STATIC_8479), i3527, i4334, o16944[LinkedList$Entry.previous]o17040) -> f8499_0_entry_JMP(EOS(STATIC_8499), i3527, i4334 + 1, o16944[LinkedList$Entry.previous]o17040) :|: TRUE f8499_0_entry_JMP(EOS(STATIC_8499), i3527, i4441, o16944[LinkedList$Entry.previous]o17040) -> f8518_0_entry_Load(EOS(STATIC_8518), i3527, i4441, o16944[LinkedList$Entry.previous]o17040) :|: TRUE f8518_0_entry_Load(EOS(STATIC_8518), i3527, i4441, o16944[LinkedList$Entry.previous]o17040) -> f8311_0_entry_Load(EOS(STATIC_8311), i3527, i4441, o17040[LinkedList$Entry.next]o17040, o17040[LinkedList$Entry.previous]o17040, o17040[LinkedList$Entry.next]o17040, o17040[LinkedList$Entry.next]o17040, o17040[LinkedList$Entry.next]o17040) :|: o17040[LinkedList$Entry.next]o17040 = 1 && o17040[LinkedList$Entry.next]o17040 = 1 && o17040[LinkedList$Entry.next]o17040 = 1 && o17040[LinkedList$Entry.next]o17040 = 1 f8444_0_entry_FieldAccess(EOS(STATIC_8444), i3527, i4334) -> f8460_0_entry_Store(EOS(STATIC_8460), i3527, i4334) :|: TRUE f8460_0_entry_Store(EOS(STATIC_8460), i3527, i4334) -> f8480_0_entry_Inc(EOS(STATIC_8480), i3527, i4334) :|: TRUE f8480_0_entry_Inc(EOS(STATIC_8480), i3527, i4334) -> f8500_0_entry_JMP(EOS(STATIC_8500), i3527, i4334 + 1) :|: TRUE f8500_0_entry_JMP(EOS(STATIC_8500), i3527, i4442) -> f8519_0_entry_Load(EOS(STATIC_8519), i3527, i4442) :|: TRUE f8519_0_entry_Load(EOS(STATIC_8519), i3527, i4442) -> f8311_0_entry_Load(EOS(STATIC_8311), i3527, i4442, o17091[LinkedList$Entry.next]o17091, o17091[LinkedList$Entry.previous]o17091, o17091[LinkedList$Entry.next]o17091, o17091[LinkedList$Entry.next]o17091, o17091[LinkedList$Entry.next]o17091) :|: o17091[LinkedList$Entry.next]o17091 = 1 && o17091[LinkedList$Entry.previous]o17091 = 1 && o17091[LinkedList$Entry.next]o17091 = 1 && o17091[LinkedList$Entry.next]o17091 = 1 && o17091[LinkedList$Entry.next]o17091 = 1 Combined rules. Obtained 5 IRulesP rules: f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0, i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0 + 1, i4334:0 + 1, i3527:0, 1, o17040[LinkedList$Entry.previous]o17040:0, 1, 1, 1) :|: i4334:0 + 1 <= i3527:0 && o16230[LinkedList$Entry.next]o16230:0 > -1 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 > 0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0, i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0 + 1, i4334:0 + 1, i3527:0, 1, 1, 1, 1, 1) :|: i4334:0 + 1 <= i3527:0 && o16230[LinkedList$Entry.next]o16230:0 > -1 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0, i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16228[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16228:0, o16228[LinkedList$Entry.next]o16228:0) -> f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0 + 1, i4334:0 + 1, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16939[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16939:0, o16939[LinkedList$Entry.next]o16939:0) :|: o16228[LinkedList$Entry.next]o16230:0 > 0 && o16230[LinkedList$Entry.next]o16228:0 > 0 && o16228[LinkedList$Entry.next]o16228:0 > 0 && i4334:0 + 1 <= i3527:0 && o16230[LinkedList$Entry.previous]o16230:0 > 0 && o16230[LinkedList$Entry.next]o16230:0 > 0 && o16939[LinkedList$Entry.next]o16937:0 < o16228[LinkedList$Entry.next]o16228:0 && o16230[LinkedList$Entry.next]o16939:0 > o16230[LinkedList$Entry.next]o16228:0 && o16939[LinkedList$Entry.next]o16230:0 < o16228[LinkedList$Entry.next]o16230:0 && o16939[LinkedList$Entry.next]o16937:0 > -1 && o16939[LinkedList$Entry.next]o16939:0 > o16939[LinkedList$Entry.next]o16937:0 f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0, i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0 + 1, i4334:0 + 1, i3527:0, o16941[LinkedList$Entry.next]o16941:0, o16941[LinkedList$Entry.previous]o16941:0, o16943[LinkedList$Entry.next]o16941:0, 1, o16943[LinkedList$Entry.next]o16943:0) :|: i4334:0 + 1 <= i3527:0 && o16230[LinkedList$Entry.next]o16230:0 > -1 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 > 0 && o16943[LinkedList$Entry.next]o16941:0 > 0 f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0, i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(EOS(STATIC_8352), i3527:0, i4334:0 + 1, i4334:0 + 1, i3527:0, o17088[LinkedList$Entry.next]o17088:0, 1, o16943[LinkedList$Entry.next]o16941:0, 1, o16943[LinkedList$Entry.next]o16943:0) :|: i4334:0 + 1 <= i3527:0 && o16230[LinkedList$Entry.next]o16230:0 > -1 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16943[LinkedList$Entry.next]o16941:0 > 0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 Filtered constant ground arguments: f8352_0_entry_GT(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f8352_0_entry_GT(x2, x3, x4, x5, x6, x7, x8, x9, x10) EOS(x1) -> EOS Filtered duplicate arguments: f8352_0_entry_GT(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f8352_0_entry_GT(x3, x4, x5, x6, x7, x8, x9) Finished conversion. Obtained 5 rules.P rules: f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(i4334:0 + 1, i3527:0, 1, o17040[LinkedList$Entry.previous]o17040:0, 1, 1, 1) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 > 0 f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(i4334:0 + 1, i3527:0, 1, 1, 1, 1, 1) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16228[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16228:0, o16228[LinkedList$Entry.next]o16228:0) -> f8352_0_entry_GT(i4334:0 + 1, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16939[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16939:0, o16939[LinkedList$Entry.next]o16939:0) :|: o16230[LinkedList$Entry.next]o16228:0 > 0 && o16228[LinkedList$Entry.next]o16230:0 > 0 && o16228[LinkedList$Entry.next]o16228:0 > 0 && i4334:0 + 1 <= i3527:0 && o16230[LinkedList$Entry.previous]o16230:0 > 0 && o16230[LinkedList$Entry.next]o16230:0 > 0 && o16939[LinkedList$Entry.next]o16937:0 < o16228[LinkedList$Entry.next]o16228:0 && o16230[LinkedList$Entry.next]o16939:0 > o16230[LinkedList$Entry.next]o16228:0 && o16939[LinkedList$Entry.next]o16230:0 < o16228[LinkedList$Entry.next]o16230:0 && o16939[LinkedList$Entry.next]o16939:0 > o16939[LinkedList$Entry.next]o16937:0 && o16939[LinkedList$Entry.next]o16937:0 > -1 f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(i4334:0 + 1, i3527:0, o16941[LinkedList$Entry.next]o16941:0, o16941[LinkedList$Entry.previous]o16941:0, o16943[LinkedList$Entry.next]o16941:0, 1, o16943[LinkedList$Entry.next]o16943:0) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16943[LinkedList$Entry.next]o16941:0 > 0 && o16944[LinkedList$Entry.previous]o16941:0 > 0 f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(i4334:0 + 1, i3527:0, o17088[LinkedList$Entry.next]o17088:0, 1, o16943[LinkedList$Entry.next]o16941:0, 1, o16943[LinkedList$Entry.next]o16943:0) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16943[LinkedList$Entry.next]o16941:0 > 0 ---------------------------------------- (80) Obligation: Rules: f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(i4334:0 + 1, i3527:0, 1, o17040[LinkedList$Entry.previous]o17040:0, 1, 1, 1) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 > 0 f8352_0_entry_GT(x, x1, x2, x3, x2, x2, x2) -> f8352_0_entry_GT(x + 1, x1, 1, 1, 1, 1, 1) :|: x2 > -1 && x + 1 <= x1 && x4 < x2 && x5 < x3 && x3 > -1 f8352_0_entry_GT(x6, x7, x8, x9, x10, x11, x12) -> f8352_0_entry_GT(x6 + 1, x7, x8, x9, x13, x14, x15) :|: x11 > 0 && x10 > 0 && x12 > 0 && x6 + 1 <= x7 && x9 > 0 && x8 > 0 && x16 < x12 && x14 > x11 && x13 < x10 && x15 > x16 && x16 > -1 f8352_0_entry_GT(x17, x18, x19, x20, x19, x19, x19) -> f8352_0_entry_GT(x17 + 1, x18, x21, x22, x23, 1, x24) :|: x19 > -1 && x17 + 1 <= x18 && x23 < x19 && x25 < x20 && x20 > -1 && x23 > 0 && x25 > 0 f8352_0_entry_GT(x26, x27, x28, x29, x28, x28, x28) -> f8352_0_entry_GT(x26 + 1, x27, x30, 1, x31, 1, x32) :|: x28 > -1 && x26 + 1 <= x27 && x31 < x28 && x33 < x29 && x29 > -1 && x31 > 0 ---------------------------------------- (81) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (82) Obligation: Rules: f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(arith, i3527:0, 1, o17040[LinkedList$Entry.previous]o17040:0, 1, 1, 1) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 > 0 && arith = i4334:0 + 1 f8352_0_entry_GT(x34, x35, x36, x37, x36, x36, x36) -> f8352_0_entry_GT(x38, x35, 1, 1, 1, 1, 1) :|: x36 > -1 && x34 + 1 <= x35 && x39 < x36 && x40 < x37 && x37 > -1 && x38 = x34 + 1 f8352_0_entry_GT(x41, x42, x43, x44, x45, x46, x47) -> f8352_0_entry_GT(x48, x42, x43, x44, x49, x50, x51) :|: x46 > 0 && x45 > 0 && x47 > 0 && x41 + 1 <= x42 && x44 > 0 && x43 > 0 && x52 < x47 && x50 > x46 && x49 < x45 && x51 > x52 && x52 > -1 && x48 = x41 + 1 f8352_0_entry_GT(x53, x54, x55, x56, x55, x55, x55) -> f8352_0_entry_GT(x57, x54, x58, x59, x60, 1, x61) :|: x55 > -1 && x53 + 1 <= x54 && x60 < x55 && x62 < x56 && x56 > -1 && x60 > 0 && x62 > 0 && x57 = x53 + 1 f8352_0_entry_GT(x63, x64, x65, x66, x65, x65, x65) -> f8352_0_entry_GT(x67, x64, x68, 1, x69, 1, x70) :|: x65 > -1 && x63 + 1 <= x64 && x69 < x65 && x71 < x66 && x66 > -1 && x69 > 0 && x67 = x63 + 1 ---------------------------------------- (83) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(arith, i3527:0, 1, o17040[LinkedList$Entry.previous]o17040:0, 1, 1, 1) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 > 0 && arith = i4334:0 + 1 (2) f8352_0_entry_GT(x34, x35, x36, x37, x36, x36, x36) -> f8352_0_entry_GT(x38, x35, 1, 1, 1, 1, 1) :|: x36 > -1 && x34 + 1 <= x35 && x39 < x36 && x40 < x37 && x37 > -1 && x38 = x34 + 1 (3) f8352_0_entry_GT(x41, x42, x43, x44, x45, x46, x47) -> f8352_0_entry_GT(x48, x42, x43, x44, x49, x50, x51) :|: x46 > 0 && x45 > 0 && x47 > 0 && x41 + 1 <= x42 && x44 > 0 && x43 > 0 && x52 < x47 && x50 > x46 && x49 < x45 && x51 > x52 && x52 > -1 && x48 = x41 + 1 (4) f8352_0_entry_GT(x53, x54, x55, x56, x55, x55, x55) -> f8352_0_entry_GT(x57, x54, x58, x59, x60, 1, x61) :|: x55 > -1 && x53 + 1 <= x54 && x60 < x55 && x62 < x56 && x56 > -1 && x60 > 0 && x62 > 0 && x57 = x53 + 1 (5) f8352_0_entry_GT(x63, x64, x65, x66, x65, x65, x65) -> f8352_0_entry_GT(x67, x64, x68, 1, x69, 1, x70) :|: x65 > -1 && x63 + 1 <= x64 && x69 < x65 && x71 < x66 && x66 > -1 && x69 > 0 && x67 = x63 + 1 Arcs: (1) -> (1), (2), (3) (2) -> (2), (3) (3) -> (1), (2), (3), (4), (5) (4) -> (1), (2), (3) (5) -> (2), (3) This digraph is fully evaluated! ---------------------------------------- (84) Obligation: Termination digraph: Nodes: (1) f8352_0_entry_GT(i4334:0, i3527:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.previous]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0, o16230[LinkedList$Entry.next]o16230:0) -> f8352_0_entry_GT(arith, i3527:0, 1, o17040[LinkedList$Entry.previous]o17040:0, 1, 1, 1) :|: o16230[LinkedList$Entry.next]o16230:0 > -1 && i4334:0 + 1 <= i3527:0 && o16943[LinkedList$Entry.next]o16941:0 < o16230[LinkedList$Entry.next]o16230:0 && o16944[LinkedList$Entry.previous]o16941:0 < o16230[LinkedList$Entry.previous]o16230:0 && o16230[LinkedList$Entry.previous]o16230:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0 > 0 && arith = i4334:0 + 1 (2) f8352_0_entry_GT(x41, x42, x43, x44, x45, x46, x47) -> f8352_0_entry_GT(x48, x42, x43, x44, x49, x50, x51) :|: x46 > 0 && x45 > 0 && x47 > 0 && x41 + 1 <= x42 && x44 > 0 && x43 > 0 && x52 < x47 && x50 > x46 && x49 < x45 && x51 > x52 && x52 > -1 && x48 = x41 + 1 (3) f8352_0_entry_GT(x34, x35, x36, x37, x36, x36, x36) -> f8352_0_entry_GT(x38, x35, 1, 1, 1, 1, 1) :|: x36 > -1 && x34 + 1 <= x35 && x39 < x36 && x40 < x37 && x37 > -1 && x38 = x34 + 1 (4) f8352_0_entry_GT(x63, x64, x65, x66, x65, x65, x65) -> f8352_0_entry_GT(x67, x64, x68, 1, x69, 1, x70) :|: x65 > -1 && x63 + 1 <= x64 && x69 < x65 && x71 < x66 && x66 > -1 && x69 > 0 && x67 = x63 + 1 (5) f8352_0_entry_GT(x53, x54, x55, x56, x55, x55, x55) -> f8352_0_entry_GT(x57, x54, x58, x59, x60, 1, x61) :|: x55 > -1 && x53 + 1 <= x54 && x60 < x55 && x62 < x56 && x56 > -1 && x60 > 0 && x62 > 0 && x57 = x53 + 1 Arcs: (1) -> (1), (2), (3) (2) -> (1), (2), (3), (4), (5) (3) -> (2), (3) (4) -> (2), (3) (5) -> (1), (2), (3) This digraph is fully evaluated! ---------------------------------------- (85) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (86) Obligation: Rules: f8352_0_entry_GT(x41:0, x42:0, x43:0, x44:0, x45:0, x46:0, x47:0) -> f8352_0_entry_GT(x41:0 + 1, x42:0, x43:0, x44:0, x49:0, x50:0, x51:0) :|: x52:0 < x51:0 && x52:0 > -1 && x49:0 < x45:0 && x50:0 > x46:0 && x52:0 < x47:0 && x43:0 > 0 && x44:0 > 0 && x42:0 >= x41:0 + 1 && x47:0 > 0 && x45:0 > 0 && x46:0 > 0 f8352_0_entry_GT(x63:0, x64:0, x65:0, x66:0, x65:0, x65:0, x65:0) -> f8352_0_entry_GT(x63:0 + 1, x64:0, x68:0, 1, x69:0, 1, x70:0) :|: x66:0 > -1 && x69:0 > 0 && x71:0 < x66:0 && x69:0 < x65:0 && x64:0 >= x63:0 + 1 && x65:0 > -1 f8352_0_entry_GT(i4334:0:0, i3527:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.previous]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0) -> f8352_0_entry_GT(i4334:0:0 + 1, i3527:0:0, 1, o17040[LinkedList$Entry.previous]o17040:0:0, 1, 1, 1) :|: o16230[LinkedList$Entry.previous]o16230:0:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0:0 > 0 && o16944[LinkedList$Entry.previous]o16941:0:0 < o16230[LinkedList$Entry.previous]o16230:0:0 && o16943[LinkedList$Entry.next]o16941:0:0 < o16230[LinkedList$Entry.next]o16230:0:0 && i4334:0:0 + 1 <= i3527:0:0 && o16230[LinkedList$Entry.next]o16230:0:0 > -1 f8352_0_entry_GT(x53:0, x54:0, x55:0, x56:0, x55:0, x55:0, x55:0) -> f8352_0_entry_GT(x53:0 + 1, x54:0, x58:0, x59:0, x60:0, 1, x61:0) :|: x60:0 > 0 && x62:0 > 0 && x56:0 > -1 && x62:0 < x56:0 && x60:0 < x55:0 && x54:0 >= x53:0 + 1 && x55:0 > -1 f8352_0_entry_GT(x34:0, x35:0, x36:0, x37:0, x36:0, x36:0, x36:0) -> f8352_0_entry_GT(x34:0 + 1, x35:0, 1, 1, 1, 1, 1) :|: x40:0 < x37:0 && x37:0 > -1 && x39:0 < x36:0 && x35:0 >= x34:0 + 1 && x36:0 > -1 ---------------------------------------- (87) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f8352_0_entry_GT(INTEGER, INTEGER, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (88) Obligation: Rules: f8352_0_entry_GT(x41:0, x42:0, x43:0, x44:0, x45:0, x46:0, x47:0) -> f8352_0_entry_GT(c, x42:0, x43:0, x44:0, x49:0, x50:0, x51:0) :|: c = x41:0 + 1 && (x52:0 < x51:0 && x52:0 > -1 && x49:0 < x45:0 && x50:0 > x46:0 && x52:0 < x47:0 && x43:0 > 0 && x44:0 > 0 && x42:0 >= x41:0 + 1 && x47:0 > 0 && x45:0 > 0 && x46:0 > 0) f8352_0_entry_GT(x63:0, x64:0, x65:0, x66:0, x65:0, x65:0, x65:0) -> f8352_0_entry_GT(c1, x64:0, x68:0, c2, x69:0, c3, x70:0) :|: c3 = 1 && (c2 = 1 && c1 = x63:0 + 1) && (x66:0 > -1 && x69:0 > 0 && x71:0 < x66:0 && x69:0 < x65:0 && x64:0 >= x63:0 + 1 && x65:0 > -1) f8352_0_entry_GT(i4334:0:0, i3527:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.previous]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0) -> f8352_0_entry_GT(c4, i3527:0:0, c5, o17040[LinkedList$Entry.previous]o17040:0:0, c6, c7, c8) :|: c8 = 1 && (c7 = 1 && (c6 = 1 && (c5 = 1 && c4 = i4334:0:0 + 1))) && (o16230[LinkedList$Entry.previous]o16230:0:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0:0 > 0 && o16944[LinkedList$Entry.previous]o16941:0:0 < o16230[LinkedList$Entry.previous]o16230:0:0 && o16943[LinkedList$Entry.next]o16941:0:0 < o16230[LinkedList$Entry.next]o16230:0:0 && i4334:0:0 + 1 <= i3527:0:0 && o16230[LinkedList$Entry.next]o16230:0:0 > -1) f8352_0_entry_GT(x53:0, x54:0, x55:0, x56:0, x55:0, x55:0, x55:0) -> f8352_0_entry_GT(c9, x54:0, x58:0, x59:0, x60:0, c10, x61:0) :|: c10 = 1 && c9 = x53:0 + 1 && (x60:0 > 0 && x62:0 > 0 && x56:0 > -1 && x62:0 < x56:0 && x60:0 < x55:0 && x54:0 >= x53:0 + 1 && x55:0 > -1) f8352_0_entry_GT(x34:0, x35:0, x36:0, x37:0, x36:0, x36:0, x36:0) -> f8352_0_entry_GT(c11, x35:0, c12, c13, c14, c15, c16) :|: c16 = 1 && (c15 = 1 && (c14 = 1 && (c13 = 1 && (c12 = 1 && c11 = x34:0 + 1)))) && (x40:0 < x37:0 && x37:0 > -1 && x39:0 < x36:0 && x35:0 >= x34:0 + 1 && x36:0 > -1) ---------------------------------------- (89) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8352_0_entry_GT ] = f8352_0_entry_GT_2 + -1*f8352_0_entry_GT_1 The following rules are decreasing: f8352_0_entry_GT(x41:0, x42:0, x43:0, x44:0, x45:0, x46:0, x47:0) -> f8352_0_entry_GT(c, x42:0, x43:0, x44:0, x49:0, x50:0, x51:0) :|: c = x41:0 + 1 && (x52:0 < x51:0 && x52:0 > -1 && x49:0 < x45:0 && x50:0 > x46:0 && x52:0 < x47:0 && x43:0 > 0 && x44:0 > 0 && x42:0 >= x41:0 + 1 && x47:0 > 0 && x45:0 > 0 && x46:0 > 0) f8352_0_entry_GT(x63:0, x64:0, x65:0, x66:0, x65:0, x65:0, x65:0) -> f8352_0_entry_GT(c1, x64:0, x68:0, c2, x69:0, c3, x70:0) :|: c3 = 1 && (c2 = 1 && c1 = x63:0 + 1) && (x66:0 > -1 && x69:0 > 0 && x71:0 < x66:0 && x69:0 < x65:0 && x64:0 >= x63:0 + 1 && x65:0 > -1) f8352_0_entry_GT(i4334:0:0, i3527:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.previous]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0) -> f8352_0_entry_GT(c4, i3527:0:0, c5, o17040[LinkedList$Entry.previous]o17040:0:0, c6, c7, c8) :|: c8 = 1 && (c7 = 1 && (c6 = 1 && (c5 = 1 && c4 = i4334:0:0 + 1))) && (o16230[LinkedList$Entry.previous]o16230:0:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0:0 > 0 && o16944[LinkedList$Entry.previous]o16941:0:0 < o16230[LinkedList$Entry.previous]o16230:0:0 && o16943[LinkedList$Entry.next]o16941:0:0 < o16230[LinkedList$Entry.next]o16230:0:0 && i4334:0:0 + 1 <= i3527:0:0 && o16230[LinkedList$Entry.next]o16230:0:0 > -1) f8352_0_entry_GT(x53:0, x54:0, x55:0, x56:0, x55:0, x55:0, x55:0) -> f8352_0_entry_GT(c9, x54:0, x58:0, x59:0, x60:0, c10, x61:0) :|: c10 = 1 && c9 = x53:0 + 1 && (x60:0 > 0 && x62:0 > 0 && x56:0 > -1 && x62:0 < x56:0 && x60:0 < x55:0 && x54:0 >= x53:0 + 1 && x55:0 > -1) f8352_0_entry_GT(x34:0, x35:0, x36:0, x37:0, x36:0, x36:0, x36:0) -> f8352_0_entry_GT(c11, x35:0, c12, c13, c14, c15, c16) :|: c16 = 1 && (c15 = 1 && (c14 = 1 && (c13 = 1 && (c12 = 1 && c11 = x34:0 + 1)))) && (x40:0 < x37:0 && x37:0 > -1 && x39:0 < x36:0 && x35:0 >= x34:0 + 1 && x36:0 > -1) The following rules are bounded: f8352_0_entry_GT(x41:0, x42:0, x43:0, x44:0, x45:0, x46:0, x47:0) -> f8352_0_entry_GT(c, x42:0, x43:0, x44:0, x49:0, x50:0, x51:0) :|: c = x41:0 + 1 && (x52:0 < x51:0 && x52:0 > -1 && x49:0 < x45:0 && x50:0 > x46:0 && x52:0 < x47:0 && x43:0 > 0 && x44:0 > 0 && x42:0 >= x41:0 + 1 && x47:0 > 0 && x45:0 > 0 && x46:0 > 0) f8352_0_entry_GT(x63:0, x64:0, x65:0, x66:0, x65:0, x65:0, x65:0) -> f8352_0_entry_GT(c1, x64:0, x68:0, c2, x69:0, c3, x70:0) :|: c3 = 1 && (c2 = 1 && c1 = x63:0 + 1) && (x66:0 > -1 && x69:0 > 0 && x71:0 < x66:0 && x69:0 < x65:0 && x64:0 >= x63:0 + 1 && x65:0 > -1) f8352_0_entry_GT(i4334:0:0, i3527:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.previous]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0, o16230[LinkedList$Entry.next]o16230:0:0) -> f8352_0_entry_GT(c4, i3527:0:0, c5, o17040[LinkedList$Entry.previous]o17040:0:0, c6, c7, c8) :|: c8 = 1 && (c7 = 1 && (c6 = 1 && (c5 = 1 && c4 = i4334:0:0 + 1))) && (o16230[LinkedList$Entry.previous]o16230:0:0 > -1 && o16944[LinkedList$Entry.previous]o16941:0:0 > 0 && o16944[LinkedList$Entry.previous]o16941:0:0 < o16230[LinkedList$Entry.previous]o16230:0:0 && o16943[LinkedList$Entry.next]o16941:0:0 < o16230[LinkedList$Entry.next]o16230:0:0 && i4334:0:0 + 1 <= i3527:0:0 && o16230[LinkedList$Entry.next]o16230:0:0 > -1) f8352_0_entry_GT(x53:0, x54:0, x55:0, x56:0, x55:0, x55:0, x55:0) -> f8352_0_entry_GT(c9, x54:0, x58:0, x59:0, x60:0, c10, x61:0) :|: c10 = 1 && c9 = x53:0 + 1 && (x60:0 > 0 && x62:0 > 0 && x56:0 > -1 && x62:0 < x56:0 && x60:0 < x55:0 && x54:0 >= x53:0 + 1 && x55:0 > -1) f8352_0_entry_GT(x34:0, x35:0, x36:0, x37:0, x36:0, x36:0, x36:0) -> f8352_0_entry_GT(c11, x35:0, c12, c13, c14, c15, c16) :|: c16 = 1 && (c15 = 1 && (c14 = 1 && (c13 = 1 && (c12 = 1 && c11 = x34:0 + 1)))) && (x40:0 < x37:0 && x37:0 > -1 && x39:0 < x36:0 && x35:0 >= x34:0 + 1 && x36:0 > -1) ---------------------------------------- (90) YES ---------------------------------------- (91) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [previous] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (92) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 40 IRulesP rules: f7820_0_entry_LE(EOS(STATIC_7820), i3527, i3685, i3685, i3527, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) -> f7833_0_entry_Load(EOS(STATIC_7833), i3527, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) :|: i3685 > i3527 f7833_0_entry_Load(EOS(STATIC_7833), i3527, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) -> f7852_0_entry_FieldAccess(EOS(STATIC_7852), i3527, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) :|: TRUE f7852_0_entry_FieldAccess(EOS(STATIC_7852), i3527, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) -> f7866_0_entry_FieldAccess(EOS(STATIC_7866), i3527, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) :|: o13247[LinkedList$Entry.previous]o13245 > 0 && o13247[LinkedList$Entry.next]o13247 > 0 && o13245[LinkedList$Entry.previous]o13247 > 0 && o13247[LinkedList$Entry.previous]o13247 > 0 && o13245[LinkedList$Entry.previous]o13245 > 0 f7852_0_entry_FieldAccess(EOS(STATIC_7852), i3527, i3685, o13563[LinkedList$Entry.previous]o13563, o13563[LinkedList$Entry.next]o13563, o13563[LinkedList$Entry.previous]o13563, o13563[LinkedList$Entry.previous]o13563, o13563[LinkedList$Entry.previous]o13563) -> f7867_0_entry_FieldAccess(EOS(STATIC_7867), i3527, i3685, o13563[LinkedList$Entry.next]o13563, o13563[LinkedList$Entry.previous]o13563) :|: TRUE f7866_0_entry_FieldAccess(EOS(STATIC_7866), i3527, i3685, o13247[LinkedList$Entry.previous]o13614, o13247[LinkedList$Entry.next]o13247, o13614[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13614[LinkedList$Entry.previous]o13614) -> f7884_0_entry_FieldAccess(EOS(STATIC_7884), i3527, i3685, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13614, o13617[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13614) :|: o13617[LinkedList$Entry.previous]o13247 < o13614[LinkedList$Entry.previous]o13247 && o13614[LinkedList$Entry.previous]o13247 >= 0 && o13617[LinkedList$Entry.previous]o13614 < o13614[LinkedList$Entry.previous]o13614 && o13614[LinkedList$Entry.previous]o13614 >= 0 f7884_0_entry_FieldAccess(EOS(STATIC_7884), i3527, i3685, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13614, o13617[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13614) -> f7904_0_entry_Store(EOS(STATIC_7904), i3527, i3685, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) :|: o13247[LinkedList$Entry.previous]o13617 > o13247[LinkedList$Entry.previous]o13614 && o13247[LinkedList$Entry.previous]o13614 >= 0 && o13617[LinkedList$Entry.previous]o13617 > o13617[LinkedList$Entry.previous]o13614 && o13617[LinkedList$Entry.previous]o13614 >= 0 f7904_0_entry_Store(EOS(STATIC_7904), i3527, i3685, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) -> f7928_0_entry_Inc(EOS(STATIC_7928), i3527, i3685, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) :|: TRUE f7928_0_entry_Inc(EOS(STATIC_7928), i3527, i3685, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) -> f7954_0_entry_JMP(EOS(STATIC_7954), i3527, i3685 + -1, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) :|: TRUE f7954_0_entry_JMP(EOS(STATIC_7954), i3527, i3764, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) -> f7975_0_entry_Load(EOS(STATIC_7975), i3527, i3764, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) :|: TRUE f7975_0_entry_Load(EOS(STATIC_7975), i3527, i3764, o13247[LinkedList$Entry.next]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13617, o13617[LinkedList$Entry.previous]o13617) -> f7790_0_entry_Load(EOS(STATIC_7790), i3527, i3764, o13247[LinkedList$Entry.previous]o13617, o13247[LinkedList$Entry.next]o13247, o13617[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13617[LinkedList$Entry.previous]o13617) :|: TRUE f7790_0_entry_Load(EOS(STATIC_7790), i3527, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) -> f7799_0_entry_Load(EOS(STATIC_7799), i3527, i3685, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) :|: TRUE f7799_0_entry_Load(EOS(STATIC_7799), i3527, i3685, i3685, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) -> f7810_0_entry_LE(EOS(STATIC_7810), i3527, i3685, i3685, i3527, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) :|: TRUE f7810_0_entry_LE(EOS(STATIC_7810), i3527, i3685, i3685, i3527, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) -> f7820_0_entry_LE(EOS(STATIC_7820), i3527, i3685, i3685, i3527, o13247[LinkedList$Entry.previous]o13245, o13247[LinkedList$Entry.next]o13247, o13245[LinkedList$Entry.previous]o13247, o13247[LinkedList$Entry.previous]o13247, o13245[LinkedList$Entry.previous]o13245) :|: i3685 > i3527 f7867_0_entry_FieldAccess(EOS(STATIC_7867), i3527, i3685, o13618[LinkedList$Entry.next]o13618, o13618[LinkedList$Entry.previous]o13618) -> f7885_0_entry_FieldAccess(EOS(STATIC_7885), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) :|: o13620[LinkedList$Entry.next]o13618 < o13618[LinkedList$Entry.next]o13618 && o13618[LinkedList$Entry.next]o13618 >= 0 && o13621[LinkedList$Entry.previous]o13618 < o13618[LinkedList$Entry.previous]o13618 && o13618[LinkedList$Entry.previous]o13618 >= 0 f7885_0_entry_FieldAccess(EOS(STATIC_7885), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) -> f7905_0_entry_FieldAccess(EOS(STATIC_7905), i3527, i3685, o13621[LinkedList$Entry.previous]o13618, o13620[LinkedList$Entry.next]o13618) :|: o13620[LinkedList$Entry.next]o13618 > 0 f7885_0_entry_FieldAccess(EOS(STATIC_7885), i3527, i3685, o13620[LinkedList$Entry.next]o13686, o13621[LinkedList$Entry.previous]o13686) -> f7906_0_entry_FieldAccess(EOS(STATIC_7906), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) :|: TRUE f7905_0_entry_FieldAccess(EOS(STATIC_7905), i3527, i3685, o13621[LinkedList$Entry.previous]o13618, o13620[LinkedList$Entry.next]o13618) -> f7929_0_entry_FieldAccess(EOS(STATIC_7929), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) :|: o13621[LinkedList$Entry.previous]o13618 > 0 f7905_0_entry_FieldAccess(EOS(STATIC_7905), i3527, i3685, o13621[LinkedList$Entry.previous]o13745, o13620[LinkedList$Entry.next]o13745) -> f7930_0_entry_FieldAccess(EOS(STATIC_7930), i3527, i3685, o13620[LinkedList$Entry.next]o13745) :|: TRUE f7929_0_entry_FieldAccess(EOS(STATIC_7929), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) -> f7955_0_entry_Store(EOS(STATIC_7955), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) :|: TRUE f7955_0_entry_Store(EOS(STATIC_7955), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) -> f7976_0_entry_Inc(EOS(STATIC_7976), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) :|: TRUE f7976_0_entry_Inc(EOS(STATIC_7976), i3527, i3685, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) -> f7994_0_entry_JMP(EOS(STATIC_7994), i3527, i3685 + -1, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) :|: TRUE f7994_0_entry_JMP(EOS(STATIC_7994), i3527, i3778, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) -> f8008_0_entry_Load(EOS(STATIC_8008), i3527, i3778, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) :|: TRUE f8008_0_entry_Load(EOS(STATIC_8008), i3527, i3778, o13620[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618) -> f7790_0_entry_Load(EOS(STATIC_7790), i3527, i3778, o13618[LinkedList$Entry.previous]o13621, o13618[LinkedList$Entry.next]o13618, o13621[LinkedList$Entry.previous]o13618, o13618[LinkedList$Entry.previous]o13618, o13621[LinkedList$Entry.previous]o13621) :|: o13618[LinkedList$Entry.previous]o13621 = 1 f7930_0_entry_FieldAccess(EOS(STATIC_7930), i3527, i3685, o13620[LinkedList$Entry.next]o13745) -> f7956_0_entry_Store(EOS(STATIC_7956), i3527, i3685, o13620[LinkedList$Entry.next]o13745) :|: TRUE f7956_0_entry_Store(EOS(STATIC_7956), i3527, i3685, o13620[LinkedList$Entry.next]o13745) -> f7977_0_entry_Inc(EOS(STATIC_7977), i3527, i3685, o13620[LinkedList$Entry.next]o13745) :|: TRUE f7977_0_entry_Inc(EOS(STATIC_7977), i3527, i3685, o13620[LinkedList$Entry.next]o13745) -> f7995_0_entry_JMP(EOS(STATIC_7995), i3527, i3685 + -1, o13620[LinkedList$Entry.next]o13745) :|: TRUE f7995_0_entry_JMP(EOS(STATIC_7995), i3527, i3780, o13620[LinkedList$Entry.next]o13745) -> f8009_0_entry_Load(EOS(STATIC_8009), i3527, i3780, o13620[LinkedList$Entry.next]o13745) :|: TRUE f8009_0_entry_Load(EOS(STATIC_8009), i3527, i3780, o13620[LinkedList$Entry.next]o13745) -> f7790_0_entry_Load(EOS(STATIC_7790), i3527, i3780, o13745[LinkedList$Entry.previous]o13745, o13745[LinkedList$Entry.next]o13745, o13745[LinkedList$Entry.previous]o13745, o13745[LinkedList$Entry.previous]o13745, o13745[LinkedList$Entry.previous]o13745) :|: o13745[LinkedList$Entry.previous]o13745 = 1 && o13745[LinkedList$Entry.previous]o13745 = 1 && o13745[LinkedList$Entry.previous]o13745 = 1 && o13745[LinkedList$Entry.previous]o13745 = 1 f7906_0_entry_FieldAccess(EOS(STATIC_7906), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) -> f7931_0_entry_FieldAccess(EOS(STATIC_7931), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) :|: o13621[LinkedList$Entry.previous]o13686 > 0 f7906_0_entry_FieldAccess(EOS(STATIC_7906), i3527, i3685, o13621[LinkedList$Entry.previous]o13748) -> f7932_0_entry_FieldAccess(EOS(STATIC_7932), i3527, i3685) :|: TRUE f7931_0_entry_FieldAccess(EOS(STATIC_7931), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) -> f7957_0_entry_Store(EOS(STATIC_7957), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) :|: TRUE f7957_0_entry_Store(EOS(STATIC_7957), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) -> f7978_0_entry_Inc(EOS(STATIC_7978), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) :|: TRUE f7978_0_entry_Inc(EOS(STATIC_7978), i3527, i3685, o13621[LinkedList$Entry.previous]o13686) -> f7996_0_entry_JMP(EOS(STATIC_7996), i3527, i3685 + -1, o13621[LinkedList$Entry.previous]o13686) :|: TRUE f7996_0_entry_JMP(EOS(STATIC_7996), i3527, i3781, o13621[LinkedList$Entry.previous]o13686) -> f8010_0_entry_Load(EOS(STATIC_8010), i3527, i3781, o13621[LinkedList$Entry.previous]o13686) :|: TRUE f8010_0_entry_Load(EOS(STATIC_8010), i3527, i3781, o13621[LinkedList$Entry.previous]o13686) -> f7790_0_entry_Load(EOS(STATIC_7790), i3527, i3781, o13686[LinkedList$Entry.previous]o13621, o13686[LinkedList$Entry.next]o13686, o13621[LinkedList$Entry.previous]o13686, o13686[LinkedList$Entry.previous]o13686, o13621[LinkedList$Entry.previous]o13621) :|: o13686[LinkedList$Entry.previous]o13621 = 1 && o13686[LinkedList$Entry.next]o13686 = 1 f7932_0_entry_FieldAccess(EOS(STATIC_7932), i3527, i3685) -> f7958_0_entry_Store(EOS(STATIC_7958), i3527, i3685) :|: TRUE f7958_0_entry_Store(EOS(STATIC_7958), i3527, i3685) -> f7979_0_entry_Inc(EOS(STATIC_7979), i3527, i3685) :|: TRUE f7979_0_entry_Inc(EOS(STATIC_7979), i3527, i3685) -> f7997_0_entry_JMP(EOS(STATIC_7997), i3527, i3685 + -1) :|: TRUE f7997_0_entry_JMP(EOS(STATIC_7997), i3527, i3785) -> f8011_0_entry_Load(EOS(STATIC_8011), i3527, i3785) :|: TRUE f8011_0_entry_Load(EOS(STATIC_8011), i3527, i3785) -> f7790_0_entry_Load(EOS(STATIC_7790), i3527, i3785, o13748[LinkedList$Entry.previous]o13748, o13748[LinkedList$Entry.next]o13748, o13748[LinkedList$Entry.previous]o13748, o13748[LinkedList$Entry.previous]o13748, o13748[LinkedList$Entry.previous]o13748) :|: o13748[LinkedList$Entry.previous]o13748 = 1 && o13748[LinkedList$Entry.next]o13748 = 1 && o13748[LinkedList$Entry.previous]o13748 = 1 && o13748[LinkedList$Entry.previous]o13748 = 1 && o13748[LinkedList$Entry.previous]o13748 = 1 Combined rules. Obtained 5 IRulesP rules: f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0, i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0 - 1, i3685:0 - 1, i3527:0, 1, o13618[LinkedList$Entry.next]o13618:0, o13621[LinkedList$Entry.previous]o13618:0, o13618[LinkedList$Entry.previous]o13618:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13247[LinkedList$Entry.next]o13247:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && i3685:0 - 1 > i3527:0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0, i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0 - 1, i3685:0 - 1, i3527:0, 1, 1, o13621[LinkedList$Entry.previous]o13618:0, o13686[LinkedList$Entry.previous]o13686:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13247[LinkedList$Entry.next]o13247:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && i3685:0 - 1 > i3527:0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0, i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0 - 1, i3685:0 - 1, i3527:0, 1, 1, 1, 1, 1) :|: o13247[LinkedList$Entry.next]o13247:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && i3685:0 - 1 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0, i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0 - 1, i3685:0 - 1, i3527:0, 1, o13745[LinkedList$Entry.next]o13745:0, 1, 1, 1) :|: o13247[LinkedList$Entry.next]o13247:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && i3685:0 - 1 > i3527:0 && o13620[LinkedList$Entry.next]o13618:0 > 0 f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0, i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13245[LinkedList$Entry.previous]o13247:0, o13247[LinkedList$Entry.previous]o13247:0, o13245[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(EOS(STATIC_7820), i3527:0, i3685:0 - 1, i3685:0 - 1, i3527:0, o13247[LinkedList$Entry.previous]o13617:0, o13247[LinkedList$Entry.next]o13247:0, o13617[LinkedList$Entry.previous]o13247:0, o13247[LinkedList$Entry.previous]o13247:0, o13617[LinkedList$Entry.previous]o13617:0) :|: o13247[LinkedList$Entry.previous]o13245:0 > 0 && o13245[LinkedList$Entry.previous]o13247:0 > 0 && o13245[LinkedList$Entry.previous]o13245:0 > 0 && o13247[LinkedList$Entry.next]o13247:0 > 0 && o13617[LinkedList$Entry.previous]o13247:0 < o13245[LinkedList$Entry.previous]o13247:0 && o13247[LinkedList$Entry.previous]o13247:0 > 0 && o13247[LinkedList$Entry.previous]o13617:0 > o13247[LinkedList$Entry.previous]o13245:0 && o13617[LinkedList$Entry.previous]o13614:0 < o13245[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13617[LinkedList$Entry.previous]o13617:0 > o13617[LinkedList$Entry.previous]o13614:0 && i3685:0 - 1 > i3527:0 && o13617[LinkedList$Entry.previous]o13614:0 > -1 Filtered constant ground arguments: f7820_0_entry_LE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f7820_0_entry_LE(x2, x3, x4, x5, x6, x7, x8, x9, x10) EOS(x1) -> EOS Filtered duplicate arguments: f7820_0_entry_LE(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f7820_0_entry_LE(x3, x4, x5, x6, x7, x8, x9) Finished conversion. Obtained 5 rules.P rules: f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(i3685:0 - 1, i3527:0, 1, o13618[LinkedList$Entry.next]o13618:0, o13621[LinkedList$Entry.previous]o13618:0, o13618[LinkedList$Entry.previous]o13618:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 && i3685:0 - 1 > i3527:0 f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(i3685:0 - 1, i3527:0, 1, 1, o13621[LinkedList$Entry.previous]o13618:0, o13686[LinkedList$Entry.previous]o13686:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 > 0 && i3685:0 - 1 > i3527:0 f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(i3685:0 - 1, i3527:0, 1, 1, 1, 1, 1) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && i3685:0 - 1 > i3527:0 f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(i3685:0 - 1, i3527:0, 1, o13745[LinkedList$Entry.next]o13745:0, 1, 1, 1) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && i3685:0 - 1 > i3527:0 f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13245[LinkedList$Entry.previous]o13247:0, o13247[LinkedList$Entry.previous]o13247:0, o13245[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(i3685:0 - 1, i3527:0, o13247[LinkedList$Entry.previous]o13617:0, o13247[LinkedList$Entry.next]o13247:0, o13617[LinkedList$Entry.previous]o13247:0, o13247[LinkedList$Entry.previous]o13247:0, o13617[LinkedList$Entry.previous]o13617:0) :|: o13245[LinkedList$Entry.previous]o13247:0 > 0 && o13247[LinkedList$Entry.previous]o13245:0 > 0 && o13245[LinkedList$Entry.previous]o13245:0 > 0 && o13247[LinkedList$Entry.next]o13247:0 > 0 && o13617[LinkedList$Entry.previous]o13247:0 < o13245[LinkedList$Entry.previous]o13247:0 && o13247[LinkedList$Entry.previous]o13247:0 > 0 && o13247[LinkedList$Entry.previous]o13617:0 > o13247[LinkedList$Entry.previous]o13245:0 && o13617[LinkedList$Entry.previous]o13614:0 < o13245[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13617[LinkedList$Entry.previous]o13617:0 > o13617[LinkedList$Entry.previous]o13614:0 && o13617[LinkedList$Entry.previous]o13614:0 > -1 && i3685:0 - 1 > i3527:0 ---------------------------------------- (93) Obligation: Rules: f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(i3685:0 - 1, i3527:0, 1, o13618[LinkedList$Entry.next]o13618:0, o13621[LinkedList$Entry.previous]o13618:0, o13618[LinkedList$Entry.previous]o13618:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 && i3685:0 - 1 > i3527:0 f7820_0_entry_LE(x, x1, x2, x3, x2, x2, x2) -> f7820_0_entry_LE(x - 1, x1, 1, 1, x4, x5, x6) :|: x7 < x3 && x3 > -1 && x4 < x2 && x > x1 && x2 > -1 && x4 > 0 && x - 1 > x1 f7820_0_entry_LE(x8, x9, x10, x11, x10, x10, x10) -> f7820_0_entry_LE(x8 - 1, x9, 1, 1, 1, 1, 1) :|: x12 < x11 && x11 > -1 && x13 < x10 && x8 > x9 && x10 > -1 && x8 - 1 > x9 f7820_0_entry_LE(x14, x15, x16, x17, x16, x16, x16) -> f7820_0_entry_LE(x14 - 1, x15, 1, x18, 1, 1, 1) :|: x19 < x17 && x17 > -1 && x20 < x16 && x14 > x15 && x16 > -1 && x19 > 0 && x14 - 1 > x15 f7820_0_entry_LE(x21, x22, x23, x24, x25, x26, x27) -> f7820_0_entry_LE(x21 - 1, x22, x28, x24, x29, x26, x30) :|: x25 > 0 && x23 > 0 && x27 > 0 && x24 > 0 && x29 < x25 && x26 > 0 && x28 > x23 && x31 < x27 && x21 > x22 && x30 > x31 && x31 > -1 && x21 - 1 > x22 ---------------------------------------- (94) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (95) Obligation: Rules: f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(arith, i3527:0, 1, o13618[LinkedList$Entry.next]o13618:0, o13621[LinkedList$Entry.previous]o13618:0, o13618[LinkedList$Entry.previous]o13618:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 && i3685:0 - 1 > i3527:0 && arith = i3685:0 - 1 f7820_0_entry_LE(x32, x33, x34, x35, x34, x34, x34) -> f7820_0_entry_LE(x36, x33, 1, 1, x37, x38, x39) :|: x40 < x35 && x35 > -1 && x37 < x34 && x32 > x33 && x34 > -1 && x37 > 0 && x32 - 1 > x33 && x36 = x32 - 1 f7820_0_entry_LE(x41, x42, x43, x44, x43, x43, x43) -> f7820_0_entry_LE(x45, x42, 1, 1, 1, 1, 1) :|: x46 < x44 && x44 > -1 && x47 < x43 && x41 > x42 && x43 > -1 && x41 - 1 > x42 && x45 = x41 - 1 f7820_0_entry_LE(x48, x49, x50, x51, x50, x50, x50) -> f7820_0_entry_LE(x52, x49, 1, x53, 1, 1, 1) :|: x54 < x51 && x51 > -1 && x55 < x50 && x48 > x49 && x50 > -1 && x54 > 0 && x48 - 1 > x49 && x52 = x48 - 1 f7820_0_entry_LE(x56, x57, x58, x59, x60, x61, x62) -> f7820_0_entry_LE(x63, x57, x64, x59, x65, x61, x66) :|: x60 > 0 && x58 > 0 && x62 > 0 && x59 > 0 && x65 < x60 && x61 > 0 && x64 > x58 && x67 < x62 && x56 > x57 && x66 > x67 && x67 > -1 && x56 - 1 > x57 && x63 = x56 - 1 ---------------------------------------- (96) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(arith, i3527:0, 1, o13618[LinkedList$Entry.next]o13618:0, o13621[LinkedList$Entry.previous]o13618:0, o13618[LinkedList$Entry.previous]o13618:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 && i3685:0 - 1 > i3527:0 && arith = i3685:0 - 1 (2) f7820_0_entry_LE(x32, x33, x34, x35, x34, x34, x34) -> f7820_0_entry_LE(x36, x33, 1, 1, x37, x38, x39) :|: x40 < x35 && x35 > -1 && x37 < x34 && x32 > x33 && x34 > -1 && x37 > 0 && x32 - 1 > x33 && x36 = x32 - 1 (3) f7820_0_entry_LE(x41, x42, x43, x44, x43, x43, x43) -> f7820_0_entry_LE(x45, x42, 1, 1, 1, 1, 1) :|: x46 < x44 && x44 > -1 && x47 < x43 && x41 > x42 && x43 > -1 && x41 - 1 > x42 && x45 = x41 - 1 (4) f7820_0_entry_LE(x48, x49, x50, x51, x50, x50, x50) -> f7820_0_entry_LE(x52, x49, 1, x53, 1, 1, 1) :|: x54 < x51 && x51 > -1 && x55 < x50 && x48 > x49 && x50 > -1 && x54 > 0 && x48 - 1 > x49 && x52 = x48 - 1 (5) f7820_0_entry_LE(x56, x57, x58, x59, x60, x61, x62) -> f7820_0_entry_LE(x63, x57, x64, x59, x65, x61, x66) :|: x60 > 0 && x58 > 0 && x62 > 0 && x59 > 0 && x65 < x60 && x61 > 0 && x64 > x58 && x67 < x62 && x56 > x57 && x66 > x67 && x67 > -1 && x56 - 1 > x57 && x63 = x56 - 1 Arcs: (1) -> (3), (4), (5) (2) -> (3), (5) (3) -> (3), (5) (4) -> (3), (4), (5) (5) -> (1), (2), (3), (4), (5) This digraph is fully evaluated! ---------------------------------------- (97) Obligation: Termination digraph: Nodes: (1) f7820_0_entry_LE(i3685:0, i3527:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.next]o13247:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0, o13247[LinkedList$Entry.previous]o13245:0) -> f7820_0_entry_LE(arith, i3527:0, 1, o13618[LinkedList$Entry.next]o13618:0, o13621[LinkedList$Entry.previous]o13618:0, o13618[LinkedList$Entry.previous]o13618:0, o13621[LinkedList$Entry.previous]o13621:0) :|: o13620[LinkedList$Entry.next]o13618:0 < o13247[LinkedList$Entry.next]o13247:0 && o13247[LinkedList$Entry.next]o13247:0 > -1 && o13621[LinkedList$Entry.previous]o13618:0 < o13247[LinkedList$Entry.previous]o13245:0 && i3685:0 > i3527:0 && o13247[LinkedList$Entry.previous]o13245:0 > -1 && o13620[LinkedList$Entry.next]o13618:0 > 0 && o13621[LinkedList$Entry.previous]o13618:0 > 0 && i3685:0 - 1 > i3527:0 && arith = i3685:0 - 1 (2) f7820_0_entry_LE(x56, x57, x58, x59, x60, x61, x62) -> f7820_0_entry_LE(x63, x57, x64, x59, x65, x61, x66) :|: x60 > 0 && x58 > 0 && x62 > 0 && x59 > 0 && x65 < x60 && x61 > 0 && x64 > x58 && x67 < x62 && x56 > x57 && x66 > x67 && x67 > -1 && x56 - 1 > x57 && x63 = x56 - 1 (3) f7820_0_entry_LE(x41, x42, x43, x44, x43, x43, x43) -> f7820_0_entry_LE(x45, x42, 1, 1, 1, 1, 1) :|: x46 < x44 && x44 > -1 && x47 < x43 && x41 > x42 && x43 > -1 && x41 - 1 > x42 && x45 = x41 - 1 (4) f7820_0_entry_LE(x48, x49, x50, x51, x50, x50, x50) -> f7820_0_entry_LE(x52, x49, 1, x53, 1, 1, 1) :|: x54 < x51 && x51 > -1 && x55 < x50 && x48 > x49 && x50 > -1 && x54 > 0 && x48 - 1 > x49 && x52 = x48 - 1 (5) f7820_0_entry_LE(x32, x33, x34, x35, x34, x34, x34) -> f7820_0_entry_LE(x36, x33, 1, 1, x37, x38, x39) :|: x40 < x35 && x35 > -1 && x37 < x34 && x32 > x33 && x34 > -1 && x37 > 0 && x32 - 1 > x33 && x36 = x32 - 1 Arcs: (1) -> (2), (3), (4) (2) -> (1), (2), (3), (4), (5) (3) -> (2), (3) (4) -> (2), (3), (4) (5) -> (2), (3) This digraph is fully evaluated! ---------------------------------------- (98) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (99) Obligation: Rules: f7820_0_entry_LE(x48:0, x49:0, x50:0, x51:0, x50:0, x50:0, x50:0) -> f7820_0_entry_LE(x48:0 - 1, x49:0, 1, x53:0, 1, 1, 1) :|: x54:0 > 0 && x49:0 < x48:0 - 1 && x50:0 > -1 && x49:0 < x48:0 && x55:0 < x50:0 && x51:0 > -1 && x54:0 < x51:0 f7820_0_entry_LE(x32:0, x33:0, x34:0, x35:0, x34:0, x34:0, x34:0) -> f7820_0_entry_LE(x32:0 - 1, x33:0, 1, 1, x37:0, x38:0, x39:0) :|: x37:0 > 0 && x33:0 < x32:0 - 1 && x34:0 > -1 && x33:0 < x32:0 && x37:0 < x34:0 && x35:0 > -1 && x40:0 < x35:0 f7820_0_entry_LE(i3685:0:0, i3527:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.next]o13247:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0) -> f7820_0_entry_LE(i3685:0:0 - 1, i3527:0:0, 1, o13618[LinkedList$Entry.next]o13618:0:0, o13621[LinkedList$Entry.previous]o13618:0:0, o13618[LinkedList$Entry.previous]o13618:0:0, o13621[LinkedList$Entry.previous]o13621:0:0) :|: o13621[LinkedList$Entry.previous]o13618:0:0 > 0 && i3685:0:0 - 1 > i3527:0:0 && o13620[LinkedList$Entry.next]o13618:0:0 > 0 && o13247[LinkedList$Entry.previous]o13245:0:0 > -1 && i3685:0:0 > i3527:0:0 && o13621[LinkedList$Entry.previous]o13618:0:0 < o13247[LinkedList$Entry.previous]o13245:0:0 && o13247[LinkedList$Entry.next]o13247:0:0 > -1 && o13620[LinkedList$Entry.next]o13618:0:0 < o13247[LinkedList$Entry.next]o13247:0:0 f7820_0_entry_LE(x56:0, x57:0, x58:0, x59:0, x60:0, x61:0, x62:0) -> f7820_0_entry_LE(x56:0 - 1, x57:0, x64:0, x59:0, x65:0, x61:0, x66:0) :|: x67:0 > -1 && x57:0 < x56:0 - 1 && x67:0 < x66:0 && x57:0 < x56:0 && x67:0 < x62:0 && x64:0 > x58:0 && x61:0 > 0 && x65:0 < x60:0 && x59:0 > 0 && x62:0 > 0 && x58:0 > 0 && x60:0 > 0 f7820_0_entry_LE(x41:0, x42:0, x43:0, x44:0, x43:0, x43:0, x43:0) -> f7820_0_entry_LE(x41:0 - 1, x42:0, 1, 1, 1, 1, 1) :|: x43:0 > -1 && x42:0 < x41:0 - 1 && x42:0 < x41:0 && x47:0 < x43:0 && x44:0 > -1 && x46:0 < x44:0 ---------------------------------------- (100) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f7820_0_entry_LE(INTEGER, INTEGER, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (101) Obligation: Rules: f7820_0_entry_LE(x48:0, x49:0, x50:0, x51:0, x50:0, x50:0, x50:0) -> f7820_0_entry_LE(c, x49:0, c1, x53:0, c2, c3, c4) :|: c4 = 1 && (c3 = 1 && (c2 = 1 && (c1 = 1 && c = x48:0 - 1))) && (x54:0 > 0 && x49:0 < x48:0 - 1 && x50:0 > -1 && x49:0 < x48:0 && x55:0 < x50:0 && x51:0 > -1 && x54:0 < x51:0) f7820_0_entry_LE(x32:0, x33:0, x34:0, x35:0, x34:0, x34:0, x34:0) -> f7820_0_entry_LE(c5, x33:0, c6, c7, x37:0, x38:0, x39:0) :|: c7 = 1 && (c6 = 1 && c5 = x32:0 - 1) && (x37:0 > 0 && x33:0 < x32:0 - 1 && x34:0 > -1 && x33:0 < x32:0 && x37:0 < x34:0 && x35:0 > -1 && x40:0 < x35:0) f7820_0_entry_LE(i3685:0:0, i3527:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.next]o13247:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0) -> f7820_0_entry_LE(c8, i3527:0:0, c9, o13618[LinkedList$Entry.next]o13618:0:0, o13621[LinkedList$Entry.previous]o13618:0:0, o13618[LinkedList$Entry.previous]o13618:0:0, o13621[LinkedList$Entry.previous]o13621:0:0) :|: c9 = 1 && c8 = i3685:0:0 - 1 && (o13621[LinkedList$Entry.previous]o13618:0:0 > 0 && i3685:0:0 - 1 > i3527:0:0 && o13620[LinkedList$Entry.next]o13618:0:0 > 0 && o13247[LinkedList$Entry.previous]o13245:0:0 > -1 && i3685:0:0 > i3527:0:0 && o13621[LinkedList$Entry.previous]o13618:0:0 < o13247[LinkedList$Entry.previous]o13245:0:0 && o13247[LinkedList$Entry.next]o13247:0:0 > -1 && o13620[LinkedList$Entry.next]o13618:0:0 < o13247[LinkedList$Entry.next]o13247:0:0) f7820_0_entry_LE(x56:0, x57:0, x58:0, x59:0, x60:0, x61:0, x62:0) -> f7820_0_entry_LE(c10, x57:0, x64:0, x59:0, x65:0, x61:0, x66:0) :|: c10 = x56:0 - 1 && (x67:0 > -1 && x57:0 < x56:0 - 1 && x67:0 < x66:0 && x57:0 < x56:0 && x67:0 < x62:0 && x64:0 > x58:0 && x61:0 > 0 && x65:0 < x60:0 && x59:0 > 0 && x62:0 > 0 && x58:0 > 0 && x60:0 > 0) f7820_0_entry_LE(x41:0, x42:0, x43:0, x44:0, x43:0, x43:0, x43:0) -> f7820_0_entry_LE(c11, x42:0, c12, c13, c14, c15, c16) :|: c16 = 1 && (c15 = 1 && (c14 = 1 && (c13 = 1 && (c12 = 1 && c11 = x41:0 - 1)))) && (x43:0 > -1 && x42:0 < x41:0 - 1 && x42:0 < x41:0 && x47:0 < x43:0 && x44:0 > -1 && x46:0 < x44:0) ---------------------------------------- (102) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7820_0_entry_LE ] = -1*f7820_0_entry_LE_2 + f7820_0_entry_LE_1 The following rules are decreasing: f7820_0_entry_LE(x48:0, x49:0, x50:0, x51:0, x50:0, x50:0, x50:0) -> f7820_0_entry_LE(c, x49:0, c1, x53:0, c2, c3, c4) :|: c4 = 1 && (c3 = 1 && (c2 = 1 && (c1 = 1 && c = x48:0 - 1))) && (x54:0 > 0 && x49:0 < x48:0 - 1 && x50:0 > -1 && x49:0 < x48:0 && x55:0 < x50:0 && x51:0 > -1 && x54:0 < x51:0) f7820_0_entry_LE(x32:0, x33:0, x34:0, x35:0, x34:0, x34:0, x34:0) -> f7820_0_entry_LE(c5, x33:0, c6, c7, x37:0, x38:0, x39:0) :|: c7 = 1 && (c6 = 1 && c5 = x32:0 - 1) && (x37:0 > 0 && x33:0 < x32:0 - 1 && x34:0 > -1 && x33:0 < x32:0 && x37:0 < x34:0 && x35:0 > -1 && x40:0 < x35:0) f7820_0_entry_LE(i3685:0:0, i3527:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.next]o13247:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0) -> f7820_0_entry_LE(c8, i3527:0:0, c9, o13618[LinkedList$Entry.next]o13618:0:0, o13621[LinkedList$Entry.previous]o13618:0:0, o13618[LinkedList$Entry.previous]o13618:0:0, o13621[LinkedList$Entry.previous]o13621:0:0) :|: c9 = 1 && c8 = i3685:0:0 - 1 && (o13621[LinkedList$Entry.previous]o13618:0:0 > 0 && i3685:0:0 - 1 > i3527:0:0 && o13620[LinkedList$Entry.next]o13618:0:0 > 0 && o13247[LinkedList$Entry.previous]o13245:0:0 > -1 && i3685:0:0 > i3527:0:0 && o13621[LinkedList$Entry.previous]o13618:0:0 < o13247[LinkedList$Entry.previous]o13245:0:0 && o13247[LinkedList$Entry.next]o13247:0:0 > -1 && o13620[LinkedList$Entry.next]o13618:0:0 < o13247[LinkedList$Entry.next]o13247:0:0) f7820_0_entry_LE(x56:0, x57:0, x58:0, x59:0, x60:0, x61:0, x62:0) -> f7820_0_entry_LE(c10, x57:0, x64:0, x59:0, x65:0, x61:0, x66:0) :|: c10 = x56:0 - 1 && (x67:0 > -1 && x57:0 < x56:0 - 1 && x67:0 < x66:0 && x57:0 < x56:0 && x67:0 < x62:0 && x64:0 > x58:0 && x61:0 > 0 && x65:0 < x60:0 && x59:0 > 0 && x62:0 > 0 && x58:0 > 0 && x60:0 > 0) f7820_0_entry_LE(x41:0, x42:0, x43:0, x44:0, x43:0, x43:0, x43:0) -> f7820_0_entry_LE(c11, x42:0, c12, c13, c14, c15, c16) :|: c16 = 1 && (c15 = 1 && (c14 = 1 && (c13 = 1 && (c12 = 1 && c11 = x41:0 - 1)))) && (x43:0 > -1 && x42:0 < x41:0 - 1 && x42:0 < x41:0 && x47:0 < x43:0 && x44:0 > -1 && x46:0 < x44:0) The following rules are bounded: f7820_0_entry_LE(x48:0, x49:0, x50:0, x51:0, x50:0, x50:0, x50:0) -> f7820_0_entry_LE(c, x49:0, c1, x53:0, c2, c3, c4) :|: c4 = 1 && (c3 = 1 && (c2 = 1 && (c1 = 1 && c = x48:0 - 1))) && (x54:0 > 0 && x49:0 < x48:0 - 1 && x50:0 > -1 && x49:0 < x48:0 && x55:0 < x50:0 && x51:0 > -1 && x54:0 < x51:0) f7820_0_entry_LE(x32:0, x33:0, x34:0, x35:0, x34:0, x34:0, x34:0) -> f7820_0_entry_LE(c5, x33:0, c6, c7, x37:0, x38:0, x39:0) :|: c7 = 1 && (c6 = 1 && c5 = x32:0 - 1) && (x37:0 > 0 && x33:0 < x32:0 - 1 && x34:0 > -1 && x33:0 < x32:0 && x37:0 < x34:0 && x35:0 > -1 && x40:0 < x35:0) f7820_0_entry_LE(i3685:0:0, i3527:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.next]o13247:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0, o13247[LinkedList$Entry.previous]o13245:0:0) -> f7820_0_entry_LE(c8, i3527:0:0, c9, o13618[LinkedList$Entry.next]o13618:0:0, o13621[LinkedList$Entry.previous]o13618:0:0, o13618[LinkedList$Entry.previous]o13618:0:0, o13621[LinkedList$Entry.previous]o13621:0:0) :|: c9 = 1 && c8 = i3685:0:0 - 1 && (o13621[LinkedList$Entry.previous]o13618:0:0 > 0 && i3685:0:0 - 1 > i3527:0:0 && o13620[LinkedList$Entry.next]o13618:0:0 > 0 && o13247[LinkedList$Entry.previous]o13245:0:0 > -1 && i3685:0:0 > i3527:0:0 && o13621[LinkedList$Entry.previous]o13618:0:0 < o13247[LinkedList$Entry.previous]o13245:0:0 && o13247[LinkedList$Entry.next]o13247:0:0 > -1 && o13620[LinkedList$Entry.next]o13618:0:0 < o13247[LinkedList$Entry.next]o13247:0:0) f7820_0_entry_LE(x56:0, x57:0, x58:0, x59:0, x60:0, x61:0, x62:0) -> f7820_0_entry_LE(c10, x57:0, x64:0, x59:0, x65:0, x61:0, x66:0) :|: c10 = x56:0 - 1 && (x67:0 > -1 && x57:0 < x56:0 - 1 && x67:0 < x66:0 && x57:0 < x56:0 && x67:0 < x62:0 && x64:0 > x58:0 && x61:0 > 0 && x65:0 < x60:0 && x59:0 > 0 && x62:0 > 0 && x58:0 > 0 && x60:0 > 0) f7820_0_entry_LE(x41:0, x42:0, x43:0, x44:0, x43:0, x43:0, x43:0) -> f7820_0_entry_LE(c11, x42:0, c12, c13, c14, c15, c16) :|: c16 = 1 && (c15 = 1 && (c14 = 1 && (c13 = 1 && (c12 = 1 && c11 = x41:0 - 1)))) && (x43:0 > -1 && x42:0 < x41:0 - 1 && x42:0 < x41:0 && x47:0 < x43:0 && x44:0 > -1 && x46:0 < x44:0) ---------------------------------------- (103) YES ---------------------------------------- (104) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: javaUtilEx.Content.equals(Ljava/lang/Object;)Z Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [element, previous] *javaUtilEx.LinkedList: [header] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (105) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 61 IRulesP rules: f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) -> f7635_0_removeLastOccurrence_Load(EOS(STATIC_7635), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) :|: TRUE f7635_0_removeLastOccurrence_Load(EOS(STATIC_7635), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) -> f7643_0_removeLastOccurrence_Load(EOS(STATIC_7643), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.Content(EOC)), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) :|: TRUE f7643_0_removeLastOccurrence_Load(EOS(STATIC_7643), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.Content(EOC)), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) -> f7651_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7651), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) :|: TRUE f7651_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7651), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) -> f7658_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7658), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) :|: o12627[LinkedList$Entry.previous]o12629 > 0 && o12629[LinkedList$Entry.previous]o12627 > 0 f7651_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7651), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12907sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12907sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12907sub0), o12907[LinkedList$Entry.previous]o12907, o12907[LinkedList$Entry.previous]o12625, o12907[LinkedList$Entry.previous]o12907, o12907[LinkedList$Entry.previous]o12625) -> f7659_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7659), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12907sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12907sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12907sub0), o12907[LinkedList$Entry.previous]o12625, o12907[LinkedList$Entry.previous]o12907) :|: TRUE f7658_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7658), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), o12627[LinkedList$Entry.previous]o12916, o12627[LinkedList$Entry.previous]o12625, o12916[LinkedList$Entry.previous]o12625, o12916[LinkedList$Entry.previous]o12627) -> f7667_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7667), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: o12919[LinkedList$Entry.previous]o12625 < o12916[LinkedList$Entry.previous]o12625 && o12916[LinkedList$Entry.previous]o12625 >= 0 && o12919[LinkedList$Entry.previous]o12627 < o12916[LinkedList$Entry.previous]o12627 && o12916[LinkedList$Entry.previous]o12627 >= 0 f7667_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7667), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f7677_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7677), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE f7677_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7677), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f7686_0_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.Content(EOC)), o129170, java.lang.Object(o12627sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(o12919sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: i3614 > 1 f7677_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7677), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f7686_1_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: i3614 > 1 f7686_0_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.Content(EOC)), o129170, java.lang.Object(o12627sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(o12919sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f10087_0_equals_Load(EOS(STATIC_10087), java.lang.Object(javaUtilEx.Content(EOC)), o129170, java.lang.Object(o12627sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798, java.lang.Object(o12919sub1702448798))), java.lang.Object(o12919sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129170, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE f8560_0_equals_Return(EOS(STATIC_8560), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12919sub1702448798))), matching1, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f7848_0_equals_Return(EOS(STATIC_7848), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12919sub1702448798))), 0, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE && matching1 = 0 f7848_0_equals_Return(EOS(STATIC_7848), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), matching1, o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) -> f7863_0_removeLastOccurrence_EQ(EOS(STATIC_7863), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), 0, o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) :|: TRUE && matching1 = 0 f7863_0_removeLastOccurrence_EQ(EOS(STATIC_7863), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), matching1, o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) -> f7880_0_removeLastOccurrence_Load(EOS(STATIC_7880), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) :|: TRUE && matching1 = 0 f7880_0_removeLastOccurrence_Load(EOS(STATIC_7880), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) -> f7900_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7900), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) :|: TRUE f7900_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7900), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134371703225286, java.lang.Object(o13439sub1703225286))), o13434[LinkedList$Entry.previous]o13432, o13434[LinkedList$Entry.previous]o13436, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) -> f7923_0_removeLastOccurrence_Store(EOS(STATIC_7923), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434, o13434[LinkedList$Entry.previous]o13439) :|: o13434[LinkedList$Entry.previous]o13439 > o13434[LinkedList$Entry.previous]o13436 && o13434[LinkedList$Entry.previous]o13436 >= 0 f7923_0_removeLastOccurrence_Store(EOS(STATIC_7923), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434, o13434[LinkedList$Entry.previous]o13439) -> f7948_0_removeLastOccurrence_JMP(EOS(STATIC_7948), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434, o13434[LinkedList$Entry.previous]o13439) :|: TRUE f7948_0_removeLastOccurrence_JMP(EOS(STATIC_7948), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434, o13434[LinkedList$Entry.previous]o13439) -> f7969_0_removeLastOccurrence_Load(EOS(STATIC_7969), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434, o13434[LinkedList$Entry.previous]o13439) :|: TRUE f7969_0_removeLastOccurrence_Load(EOS(STATIC_7969), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434, o13434[LinkedList$Entry.previous]o13439) -> f7600_0_removeLastOccurrence_Load(EOS(STATIC_7600), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13433-888517003, java.lang.Object(o13434sub-888517003)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0), o13434[LinkedList$Entry.previous]o13439, o13434[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13432, o13439[LinkedList$Entry.previous]o13434) :|: TRUE f7600_0_removeLastOccurrence_Load(EOS(STATIC_7600), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) -> f7607_0_removeLastOccurrence_Load(EOS(STATIC_7607), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) :|: TRUE f7607_0_removeLastOccurrence_Load(EOS(STATIC_7607), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) -> f7612_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7612), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) :|: TRUE f7612_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7612), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) -> f7618_0_removeLastOccurrence_EQ(EOS(STATIC_7618), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) :|: TRUE f7618_0_removeLastOccurrence_EQ(EOS(STATIC_7618), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12629sub0), java.lang.Object(o12629sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(o12627sub1702360355))), o12627[LinkedList$Entry.previous]o12629, o12627[LinkedList$Entry.previous]o12625, o12629[LinkedList$Entry.previous]o12627, o12629[LinkedList$Entry.previous]o12625) :|: o12629[LinkedList$Entry.previous]o12625 > 0 f8578_0_equals_Return(EOS(STATIC_8578), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17667sub1702448798), java.lang.Object(o12919sub1702448798))), matching1, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f7848_0_equals_Return(EOS(STATIC_7848), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17667sub1702448798), java.lang.Object(o12919sub1702448798))), 0, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE && matching1 = 0 f8724_0_equals_Return(EOS(STATIC_8724), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), matching1, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f8040_0_equals_Return(EOS(STATIC_8040), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), 0, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE && matching1 = 0 f8040_0_equals_Return(EOS(STATIC_8040), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), i3920, o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) -> f8054_0_removeLastOccurrence_EQ(EOS(STATIC_8054), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), i3920, o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) :|: TRUE f8054_0_removeLastOccurrence_EQ(EOS(STATIC_8054), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), matching1, o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) -> f8066_0_removeLastOccurrence_EQ(EOS(STATIC_8066), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), 0, o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) :|: TRUE && matching1 = 0 f8066_0_removeLastOccurrence_EQ(EOS(STATIC_8066), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), matching1, o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) -> f8083_0_removeLastOccurrence_Load(EOS(STATIC_8083), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) :|: TRUE && matching1 = 0 f8083_0_removeLastOccurrence_Load(EOS(STATIC_8083), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) -> f8102_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8102), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) :|: TRUE f8102_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8102), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub1704117869))), o14318[LinkedList$Entry.previous]o14316, o14318[LinkedList$Entry.previous]o14320, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318) -> f8122_0_removeLastOccurrence_Store(EOS(STATIC_8122), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub0), o14318[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318, o14318[LinkedList$Entry.previous]o14323) :|: o14318[LinkedList$Entry.previous]o14323 > o14318[LinkedList$Entry.previous]o14320 && o14318[LinkedList$Entry.previous]o14320 >= 0 f8122_0_removeLastOccurrence_Store(EOS(STATIC_8122), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub0), o14318[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318, o14318[LinkedList$Entry.previous]o14323) -> f7923_0_removeLastOccurrence_Store(EOS(STATIC_7923), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14317-886733139, java.lang.Object(o14318sub-886733139)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub0), o14318[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14316, o14323[LinkedList$Entry.previous]o14318, o14318[LinkedList$Entry.previous]o14323) :|: TRUE f8739_0_equals_Return(EOS(STATIC_8739), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), matching1, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f8040_0_equals_Return(EOS(STATIC_8040), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), 1, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE && matching1 = 1 f7659_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7659), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), o12920[LinkedList$Entry.previous]o12625, o12920[LinkedList$Entry.previous]o12920) -> f7668_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7668), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: o12923[LinkedList$Entry.previous]o12625 < o12920[LinkedList$Entry.previous]o12625 && o12920[LinkedList$Entry.previous]o12625 >= 0 && o12923[LinkedList$Entry.previous]o12920 < o12920[LinkedList$Entry.previous]o12920 && o12920[LinkedList$Entry.previous]o12920 >= 0 f7668_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7668), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f7678_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7678), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE f7678_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7678), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f7687_0_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.Content(EOC)), o129210, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921-890157368, java.lang.Object(o12923sub-890157368))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(o12923sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: i3614 > 1 f7678_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7678), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f7687_1_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: i3614 > 1 f7687_0_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.Content(EOC)), o129210, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921-890157368, java.lang.Object(o12923sub-890157368))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(o12923sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f10163_0_equals_Load(EOS(STATIC_10163), java.lang.Object(javaUtilEx.Content(EOC)), o129210, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921-890157368, java.lang.Object(o12923sub-890157368))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573, java.lang.Object(o12923sub1702449573))), java.lang.Object(o12923sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129210, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE f8561_0_equals_Return(EOS(STATIC_8561), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub1702449573))), matching1, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f7850_0_equals_Return(EOS(STATIC_7850), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub1702449573))), 0, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE && matching1 = 0 f7850_0_equals_Return(EOS(STATIC_7850), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), matching1, o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) -> f7864_0_removeLastOccurrence_EQ(EOS(STATIC_7864), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), 0, o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) :|: TRUE && matching1 = 0 f7864_0_removeLastOccurrence_EQ(EOS(STATIC_7864), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), matching1, o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) -> f7881_0_removeLastOccurrence_Load(EOS(STATIC_7881), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) :|: TRUE && matching1 = 0 f7881_0_removeLastOccurrence_Load(EOS(STATIC_7881), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) -> f7901_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7901), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) :|: TRUE f7901_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7901), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134761703229099, java.lang.Object(o13478sub1703229099))), o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) -> f7924_0_removeLastOccurrence_Store(EOS(STATIC_7924), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13478sub0), o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) :|: TRUE f7924_0_removeLastOccurrence_Store(EOS(STATIC_7924), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13478sub0), o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475) -> f8122_0_removeLastOccurrence_Store(EOS(STATIC_8122), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13474-888509253, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13476814719846, java.lang.Object(o13478sub814719846)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13478sub0), o13475[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13473, o13478[LinkedList$Entry.previous]o13475, o13475[LinkedList$Entry.previous]o13478) :|: o13475[LinkedList$Entry.previous]o13478 = 1 f8579_0_equals_Return(EOS(STATIC_8579), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub812202956), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub1702449573), java.lang.Object(o12923sub1702449573))), matching1, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f7850_0_equals_Return(EOS(STATIC_7850), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub812202956), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub1702449573), java.lang.Object(o12923sub1702449573))), 0, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE && matching1 = 0 f8725_0_equals_Return(EOS(STATIC_8725), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), matching1, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f8042_0_equals_Return(EOS(STATIC_8042), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), 0, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE && matching1 = 0 f8042_0_equals_Return(EOS(STATIC_8042), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), i3934, o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8055_0_removeLastOccurrence_EQ(EOS(STATIC_8055), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), i3934, o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE f8055_0_removeLastOccurrence_EQ(EOS(STATIC_8055), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), matching1, o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8068_0_removeLastOccurrence_EQ(EOS(STATIC_8068), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), 0, o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE && matching1 = 0 f8068_0_removeLastOccurrence_EQ(EOS(STATIC_8068), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), matching1, o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8085_0_removeLastOccurrence_Load(EOS(STATIC_8085), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE && matching1 = 0 f8085_0_removeLastOccurrence_Load(EOS(STATIC_8085), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8104_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8104), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE f8104_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8104), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub1704120008))), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8124_0_removeLastOccurrence_Store(EOS(STATIC_8124), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE f8124_0_removeLastOccurrence_Store(EOS(STATIC_8124), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8140_0_removeLastOccurrence_JMP(EOS(STATIC_8140), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE f8140_0_removeLastOccurrence_JMP(EOS(STATIC_8140), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f8147_0_removeLastOccurrence_Load(EOS(STATIC_8147), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: TRUE f8147_0_removeLastOccurrence_Load(EOS(STATIC_8147), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) -> f7600_0_removeLastOccurrence_Load(EOS(STATIC_7600), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14346-886727435, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub817392573)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0), o14347[LinkedList$Entry.previous]o14350, o14347[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14345, o14350[LinkedList$Entry.previous]o14347) :|: o14347[LinkedList$Entry.previous]o14350 = 1 f8740_0_equals_Return(EOS(STATIC_8740), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), matching1, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f8042_0_equals_Return(EOS(STATIC_8042), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), 1, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE && matching1 = 1 f7686_1_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), NULL, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f8560_0_equals_Return(EOS(STATIC_8560), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12919sub1702448798))), 0, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE f7686_1_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17667sub1702448798), java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o17667sub0), o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f8578_0_equals_Return(EOS(STATIC_8578), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17667sub1702448798), java.lang.Object(o12919sub1702448798))), 0, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE f7686_1_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f8724_0_equals_Return(EOS(STATIC_8724), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), 0, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE f7686_1_equals_Load(EOS(STATIC_7686), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) -> f8739_0_equals_Return(EOS(STATIC_8739), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(o12627sub-890246617)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798))), 1, o12627[LinkedList$Entry.previous]o12625, o12627[LinkedList$Entry.previous]o12916, o12919[LinkedList$Entry.previous]o12625, o12919[LinkedList$Entry.previous]o12627) :|: TRUE f7687_1_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), NULL, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f8561_0_equals_Return(EOS(STATIC_8561), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub1702449573))), 0, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE f7687_1_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub812202956), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub1702449573), java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o17681sub0), o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f8579_0_equals_Return(EOS(STATIC_8579), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub812202956), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub1702449573), java.lang.Object(o12923sub1702449573))), 0, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE f7687_1_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f8725_0_equals_Return(EOS(STATIC_8725), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), 0, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE f7687_1_equals_Load(EOS(STATIC_7687), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) -> f8740_0_equals_Return(EOS(STATIC_8740), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573))), 1, o12923[LinkedList$Entry.previous]o12625, o12923[LinkedList$Entry.previous]o12920) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0:0), java.lang.Object(o13439sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0) :|: o12629[LinkedList$Entry.previous]o12627:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && o12919[LinkedList$Entry.previous]o12625:0 > 0 && i3614:0 > 1 f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17667sub1702448798:0), java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17667sub1702448798:0), java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13439sub0:0), java.lang.Object(o13439sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0) :|: o12629[LinkedList$Entry.previous]o12627:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && o12919[LinkedList$Entry.previous]o12625:0 > 0 && i3614:0 > 1 f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14350sub0:0), java.lang.Object(o14350sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), 1, o14347[LinkedList$Entry.previous]o14345:0, o12923[LinkedList$Entry.previous]o12920:0, o12923[LinkedList$Entry.previous]o12625:0) :|: o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && o12627[LinkedList$Entry.previous]o12629:0 > -1 && i3614:0 > 1 && o12923[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13478sub0:0), java.lang.Object(o13478sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), 1, o13475[LinkedList$Entry.previous]o13473:0, o12923[LinkedList$Entry.previous]o12920:0, o12923[LinkedList$Entry.previous]o12625:0) :|: o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && o12627[LinkedList$Entry.previous]o12629:0 > -1 && i3614:0 > 1 && o12923[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14323sub0:0), java.lang.Object(o14323sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), o14318[LinkedList$Entry.previous]o14323:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0) :|: o12629[LinkedList$Entry.previous]o12627:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && o14318[LinkedList$Entry.previous]o14323:0 > o12627[LinkedList$Entry.previous]o12629:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub812202956:0), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub1702449573:0), java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub1702449573:0), java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0) -> f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17681sub812202956:0), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13478sub0:0), java.lang.Object(o13478sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), 1, o13475[LinkedList$Entry.previous]o13473:0, o12923[LinkedList$Entry.previous]o12920:0, o12923[LinkedList$Entry.previous]o12625:0) :|: o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && o12627[LinkedList$Entry.previous]o12629:0 > -1 && i3614:0 > 1 && o12923[LinkedList$Entry.previous]o12625:0 > 0 Removed following non-SCC rules: f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956:0, java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573:0, java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573:0, java.lang.Object(o12923sub1702449573:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0) -> f10163_0_equals_Load(EOS(STATIC_10163), java.lang.Object(javaUtilEx.Content(EOC)), o129210:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921-890157368:0, java.lang.Object(o12923sub-890157368:0))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129211702449573:0, java.lang.Object(o12923sub1702449573:0))), java.lang.Object(o12923sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12921812202956:0, java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129210:0, o12923[LinkedList$Entry.previous]o12625:0, o12923[LinkedList$Entry.previous]o12920:0) :|: o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && i3614:0 > 1 && o12627[LinkedList$Entry.previous]o12629:0 > -1 f7627_0_removeLastOccurrence_EQ(EOS(STATIC_7627), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798:0, java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798:0, java.lang.Object(o12919sub1702448798:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:0, java.lang.Object(o12627sub1702360355:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0) -> f10087_0_equals_Load(EOS(STATIC_10087), java.lang.Object(javaUtilEx.Content(EOC)), o129170:0, java.lang.Object(o12627sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o126261702360355:1, java.lang.Object(o12627sub1702360355:1))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129171702448798:0, java.lang.Object(o12919sub1702448798:0))), java.lang.Object(o12919sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129170:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12919[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0) :|: o12629[LinkedList$Entry.previous]o12627:0 > 0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12627[LinkedList$Entry.previous]o12629:0 > 0 Filtered constant ground arguments: f7627_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f7627_0_removeLastOccurrence_EQ(x2, x4, x5, x6, x7, x8, x9, x10) EOS(x1) -> EOS javaUtilEx.Content(x1) -> javaUtilEx.Content javaUtilEx.LinkedList$Entry(x1, x2, x3) -> javaUtilEx.LinkedList$Entry(x2, x3) javaUtilEx.LinkedList(x1, x2) -> javaUtilEx.LinkedList(x2) Filtered duplicate arguments: f7627_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8) -> f7627_0_removeLastOccurrence_EQ(x1, x3, x4, x5, x6, x7, x8) Filtered unneeded arguments: f7627_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7) -> f7627_0_removeLastOccurrence_EQ(x1, x2, x4, x5, x6, x7) Finished conversion. Obtained 6 rules.P rules: f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o13439sub0:0), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17667sub1702448798:0), java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o13439sub0:0), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12923sub1702449573:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(o14350sub0:0), 1, o14347[LinkedList$Entry.previous]o14345:0, o12923[LinkedList$Entry.previous]o12920:0, o12923[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && o12627[LinkedList$Entry.previous]o12629:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 > 0 && i3614:0 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12923sub1702449573:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(o13478sub0:0), 1, o13475[LinkedList$Entry.previous]o13473:0, o12923[LinkedList$Entry.previous]o12920:0, o12923[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && o12627[LinkedList$Entry.previous]o12629:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 > 0 && i3614:0 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o14323sub0:0), o14318[LinkedList$Entry.previous]o14323:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && o14318[LinkedList$Entry.previous]o14323:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12919[LinkedList$Entry.previous]o12625:0 > 0 && i3614:0 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17681sub812202956:0), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17681sub1702449573:0), java.lang.Object(o12923sub1702449573:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17681sub812202956:0), java.lang.Object(o12923sub812202956:0)))))))))), java.lang.Object(o13478sub0:0), 1, o13475[LinkedList$Entry.previous]o13473:0, o12923[LinkedList$Entry.previous]o12920:0, o12923[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12923[LinkedList$Entry.previous]o12625:0 < o12627[LinkedList$Entry.previous]o12625:0 && o12627[LinkedList$Entry.previous]o12625:0 > -1 && o12923[LinkedList$Entry.previous]o12920:0 < o12627[LinkedList$Entry.previous]o12629:0 && o12627[LinkedList$Entry.previous]o12629:0 > -1 && o12923[LinkedList$Entry.previous]o12625:0 > 0 && i3614:0 > 1 ---------------------------------------- (106) Obligation: Rules: f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o13439sub0:0), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x9 > x4 && x7 > -1 && x11 < x7 && x10 < x6 && x12 > 1 && x11 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x15))), x16, x17, x16, x17, x13) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(x18), 1, x19, x20, x21, x13) :|: x21 < x17 && x17 > -1 && x20 < x16 && x16 > -1 && x21 > 0 && x22 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x25))), x26, x27, x26, x27, x23) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(x28), 1, x29, x30, x31, x23) :|: x31 < x27 && x27 > -1 && x30 < x26 && x26 > -1 && x31 > 0 && x32 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x35))), x36, x37, x38, x39, x33) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(x40), x41, x37, x42, x43, x33) :|: x36 > 0 && x38 > 0 && x39 > -1 && x43 < x39 && x42 < x38 && x41 > x36 && x43 > 0 && x44 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x48), java.lang.Object(x49))), x50, x51, x50, x51, x45) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(x52), 1, x53, x54, x55, x45) :|: x55 < x51 && x51 > -1 && x54 < x50 && x50 > -1 && x55 > 0 && x56 > 1 ---------------------------------------- (107) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (108) Obligation: Rules: f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o13439sub0:0), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x9 > x4 && x7 > -1 && x11 < x7 && x10 < x6 && x12 > 1 && x11 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x15))), x16, x17, x16, x17, x13) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(x18), 1, x19, x20, x21, x13) :|: x21 < x17 && x17 > -1 && x20 < x16 && x16 > -1 && x21 > 0 && x22 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x25))), x26, x27, x26, x27, x23) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(x28), 1, x29, x30, x31, x23) :|: x31 < x27 && x27 > -1 && x30 < x26 && x26 > -1 && x31 > 0 && x32 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x35))), x36, x37, x38, x39, x33) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(x40), x41, x37, x42, x43, x33) :|: x36 > 0 && x38 > 0 && x39 > -1 && x43 < x39 && x42 < x38 && x41 > x36 && x43 > 0 && x44 > 1 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x48), java.lang.Object(x49))), x50, x51, x50, x51, x45) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(x52), 1, x53, x54, x55, x45) :|: x55 < x51 && x51 > -1 && x54 < x50 && x50 > -1 && x55 > 0 && x56 > 1 ---------------------------------------- (109) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o13439sub0:0), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 (2) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x9 > x4 && x7 > -1 && x11 < x7 && x10 < x6 && x12 > 1 && x11 > 0 (3) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x15))), x16, x17, x16, x17, x13) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(x18), 1, x19, x20, x21, x13) :|: x21 < x17 && x17 > -1 && x20 < x16 && x16 > -1 && x21 > 0 && x22 > 1 (4) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x25))), x26, x27, x26, x27, x23) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(x28), 1, x29, x30, x31, x23) :|: x31 < x27 && x27 > -1 && x30 < x26 && x26 > -1 && x31 > 0 && x32 > 1 (5) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x35))), x36, x37, x38, x39, x33) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(x40), x41, x37, x42, x43, x33) :|: x36 > 0 && x38 > 0 && x39 > -1 && x43 < x39 && x42 < x38 && x41 > x36 && x43 > 0 && x44 > 1 (6) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x48), java.lang.Object(x49))), x50, x51, x50, x51, x45) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(x52), 1, x53, x54, x55, x45) :|: x55 < x51 && x51 > -1 && x54 < x50 && x50 > -1 && x55 > 0 && x56 > 1 Arcs: (1) -> (1), (2), (3), (4), (5), (6) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (5), (6) (4) -> (1), (2), (4), (5) (5) -> (1), (2), (3), (4), (5), (6) (6) -> (1), (2), (3), (5), (6) This digraph is fully evaluated! ---------------------------------------- (110) Obligation: Termination digraph: Nodes: (1) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12919sub1702448798:0))), o12627[LinkedList$Entry.previous]o12629:0, o12627[LinkedList$Entry.previous]o12625:0, o12629[LinkedList$Entry.previous]o12627:0, o12629[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0, java.lang.Object(o12627sub-890246617:0)))))))), java.lang.Object(o13439sub0:0), o13434[LinkedList$Entry.previous]o13439:0, o12627[LinkedList$Entry.previous]o12625:0, o12919[LinkedList$Entry.previous]o12627:0, o12919[LinkedList$Entry.previous]o12625:0, o12626-890246617:0) :|: o12627[LinkedList$Entry.previous]o12629:0 > 0 && o12629[LinkedList$Entry.previous]o12627:0 > 0 && o13434[LinkedList$Entry.previous]o13439:0 > o12627[LinkedList$Entry.previous]o12629:0 && o12629[LinkedList$Entry.previous]o12625:0 > -1 && o12919[LinkedList$Entry.previous]o12625:0 < o12629[LinkedList$Entry.previous]o12625:0 && o12919[LinkedList$Entry.previous]o12627:0 < o12629[LinkedList$Entry.previous]o12627:0 && i3614:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0 > 0 (2) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2), java.lang.Object(x3))), x4, x5, x6, x7, x) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(x1)))))))), java.lang.Object(x8), x9, x5, x10, x11, x) :|: x4 > 0 && x6 > 0 && x9 > x4 && x7 > -1 && x11 < x7 && x10 < x6 && x12 > 1 && x11 > 0 (3) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x15))), x16, x17, x16, x17, x13) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14)))))))))), java.lang.Object(x18), 1, x19, x20, x21, x13) :|: x21 < x17 && x17 > -1 && x20 < x16 && x16 > -1 && x21 > 0 && x22 > 1 (4) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x35))), x36, x37, x38, x39, x33) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33, java.lang.Object(x34)))))))), java.lang.Object(x40), x41, x37, x42, x43, x33) :|: x36 > 0 && x38 > 0 && x39 > -1 && x43 < x39 && x42 < x38 && x41 > x36 && x43 > 0 && x44 > 1 (5) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x48), java.lang.Object(x49))), x50, x51, x50, x51, x45) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46), java.lang.Object(x47)))))))))), java.lang.Object(x52), 1, x53, x54, x55, x45) :|: x55 < x51 && x51 > -1 && x54 < x50 && x50 > -1 && x55 > 0 && x56 > 1 (6) f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x25))), x26, x27, x26, x27, x23) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24)))))))))), java.lang.Object(x28), 1, x29, x30, x31, x23) :|: x31 < x27 && x27 > -1 && x30 < x26 && x26 > -1 && x31 > 0 && x32 > 1 Arcs: (1) -> (1), (2), (3), (4), (5), (6) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (4), (5) (4) -> (1), (2), (3), (4), (5), (6) (5) -> (1), (2), (3), (4), (5) (6) -> (1), (2), (4), (6) This digraph is fully evaluated! ---------------------------------------- (111) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (112) Obligation: Rules: f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33:0, java.lang.Object(x34:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x35:0))), x36:0, x37:0, x38:0, x39:0, x33:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x33:0, java.lang.Object(x34:0)))))))), java.lang.Object(x40:0), x41:0, x37:0, x42:0, x43:0, x33:0) :|: x43:0 > 0 && x44:0 > 1 && x41:0 > x36:0 && x42:0 < x38:0 && x43:0 < x39:0 && x39:0 > -1 && x38:0 > 0 && x36:0 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x25:0))), x26:0, x27:0, x26:0, x27:0, x23:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x23:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x24:0)))))))))), java.lang.Object(x28:0), 1, x29:0, x30:0, x31:0, x23:0) :|: x31:0 > 0 && x32:0 > 1 && x26:0 > -1 && x30:0 < x26:0 && x27:0 > -1 && x31:0 < x27:0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46:0), java.lang.Object(x47:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x48:0), java.lang.Object(x49:0))), x50:0, x51:0, x50:0, x51:0, x45:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x45:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x46:0), java.lang.Object(x47:0)))))))))), java.lang.Object(x52:0), 1, x53:0, x54:0, x55:0, x45:0) :|: x55:0 > 0 && x56:0 > 1 && x50:0 > -1 && x54:0 < x50:0 && x51:0 > -1 && x55:0 < x51:0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x15:0))), x16:0, x17:0, x16:0, x17:0, x13:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x13:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x14:0)))))))))), java.lang.Object(x18:0), 1, x19:0, x20:0, x21:0, x13:0) :|: x21:0 > 0 && x22:0 > 1 && x16:0 > -1 && x20:0 < x16:0 && x17:0 > -1 && x21:0 < x17:0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0:0, java.lang.Object(o12627sub-890246617:0:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12919sub1702448798:0:0))), o12627[LinkedList$Entry.previous]o12629:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12629[LinkedList$Entry.previous]o12627:0:0, o12629[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12626-890246617:0:0, java.lang.Object(o12627sub-890246617:0:0)))))))), java.lang.Object(o13439sub0:0:0), o13434[LinkedList$Entry.previous]o13439:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12919[LinkedList$Entry.previous]o12627:0:0, o12919[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) :|: i3614:0:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0:0 > 0 && o12919[LinkedList$Entry.previous]o12627:0:0 < o12629[LinkedList$Entry.previous]o12627:0:0 && o12919[LinkedList$Entry.previous]o12625:0:0 < o12629[LinkedList$Entry.previous]o12625:0:0 && o12629[LinkedList$Entry.previous]o12625:0:0 > -1 && o13434[LinkedList$Entry.previous]o13439:0:0 > o12627[LinkedList$Entry.previous]o12629:0:0 && o12629[LinkedList$Entry.previous]o12627:0:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0:0 > 0 f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x2:0), java.lang.Object(x3:0))), x4:0, x5:0, x6:0, x7:0, x:0) -> f7627_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(x1:0)))))))), java.lang.Object(x8:0), x9:0, x5:0, x10:0, x11:0, x:0) :|: x12:0 > 1 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x9:0 > x4:0 && x6:0 > 0 && x4:0 > 0 ---------------------------------------- (113) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f7627_0_removeLastOccurrence_EQ(VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE) java.lang.Object(VARIABLE) javaUtilEx.AbstractCollection(VARIABLE) javaUtilEx.AbstractList(VARIABLE) javaUtilEx.AbstractSequentialList(VARIABLE) javaUtilEx.LinkedList(VARIABLE) javaUtilEx.LinkedList$Entry(VARIABLE, VARIABLE) javaUtilEx.Content() NULL() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (114) Obligation: Rules: f7627_0_removeLastOccurrence_EQ(c, c1, x36:0, x37:0, x38:0, x39:0, x33:0) -> f7627_0_removeLastOccurrence_EQ(c2, c3, x41:0, x37:0, x42:0, x43:0, x33:0) :|: c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)) && (x43:0 > 0 && x44:0 > 1 && x41:0 > x36:0 && x42:0 < x38:0 && x43:0 < x39:0 && x39:0 > -1 && x38:0 > 0 && x36:0 > 0) f7627_0_removeLastOccurrence_EQ(c4, c5, x26:0, x27:0, x26:0, x27:0, x23:0) -> f7627_0_removeLastOccurrence_EQ(c6, c7, c8, x29:0, x30:0, x31:0, x23:0) :|: c8 = 1 && (c7 = 0 && (c6 = 0 && (c5 = 0 && c4 = 0))) && (x31:0 > 0 && x32:0 > 1 && x26:0 > -1 && x30:0 < x26:0 && x27:0 > -1 && x31:0 < x27:0) f7627_0_removeLastOccurrence_EQ(c19, c20, o12627[LinkedList$Entry.previous]o12629:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12629[LinkedList$Entry.previous]o12627:0:0, o12629[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) -> f7627_0_removeLastOccurrence_EQ(c21, c22, o13434[LinkedList$Entry.previous]o13439:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12919[LinkedList$Entry.previous]o12627:0:0, o12919[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) :|: c22 = 0 && (c21 = 0 && (c20 = 0 && c19 = 0)) && (i3614:0:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0:0 > 0 && o12919[LinkedList$Entry.previous]o12627:0:0 < o12629[LinkedList$Entry.previous]o12627:0:0 && o12919[LinkedList$Entry.previous]o12625:0:0 < o12629[LinkedList$Entry.previous]o12625:0:0 && o12629[LinkedList$Entry.previous]o12625:0:0 > -1 && o13434[LinkedList$Entry.previous]o13439:0:0 > o12627[LinkedList$Entry.previous]o12629:0:0 && o12629[LinkedList$Entry.previous]o12627:0:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0:0 > 0) f7627_0_removeLastOccurrence_EQ(c23, c24, x4:0, x5:0, x6:0, x7:0, x:0) -> f7627_0_removeLastOccurrence_EQ(c25, c26, x9:0, x5:0, x10:0, x11:0, x:0) :|: c26 = 0 && (c25 = 0 && (c24 = 0 && c23 = 0)) && (x12:0 > 1 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x9:0 > x4:0 && x6:0 > 0 && x4:0 > 0) ---------------------------------------- (115) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7627_0_removeLastOccurrence_EQ ] = f7627_0_removeLastOccurrence_EQ_6 The following rules are decreasing: f7627_0_removeLastOccurrence_EQ(c, c1, x36:0, x37:0, x38:0, x39:0, x33:0) -> f7627_0_removeLastOccurrence_EQ(c2, c3, x41:0, x37:0, x42:0, x43:0, x33:0) :|: c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)) && (x43:0 > 0 && x44:0 > 1 && x41:0 > x36:0 && x42:0 < x38:0 && x43:0 < x39:0 && x39:0 > -1 && x38:0 > 0 && x36:0 > 0) f7627_0_removeLastOccurrence_EQ(c4, c5, x26:0, x27:0, x26:0, x27:0, x23:0) -> f7627_0_removeLastOccurrence_EQ(c6, c7, c8, x29:0, x30:0, x31:0, x23:0) :|: c8 = 1 && (c7 = 0 && (c6 = 0 && (c5 = 0 && c4 = 0))) && (x31:0 > 0 && x32:0 > 1 && x26:0 > -1 && x30:0 < x26:0 && x27:0 > -1 && x31:0 < x27:0) f7627_0_removeLastOccurrence_EQ(c19, c20, o12627[LinkedList$Entry.previous]o12629:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12629[LinkedList$Entry.previous]o12627:0:0, o12629[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) -> f7627_0_removeLastOccurrence_EQ(c21, c22, o13434[LinkedList$Entry.previous]o13439:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12919[LinkedList$Entry.previous]o12627:0:0, o12919[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) :|: c22 = 0 && (c21 = 0 && (c20 = 0 && c19 = 0)) && (i3614:0:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0:0 > 0 && o12919[LinkedList$Entry.previous]o12627:0:0 < o12629[LinkedList$Entry.previous]o12627:0:0 && o12919[LinkedList$Entry.previous]o12625:0:0 < o12629[LinkedList$Entry.previous]o12625:0:0 && o12629[LinkedList$Entry.previous]o12625:0:0 > -1 && o13434[LinkedList$Entry.previous]o13439:0:0 > o12627[LinkedList$Entry.previous]o12629:0:0 && o12629[LinkedList$Entry.previous]o12627:0:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0:0 > 0) f7627_0_removeLastOccurrence_EQ(c23, c24, x4:0, x5:0, x6:0, x7:0, x:0) -> f7627_0_removeLastOccurrence_EQ(c25, c26, x9:0, x5:0, x10:0, x11:0, x:0) :|: c26 = 0 && (c25 = 0 && (c24 = 0 && c23 = 0)) && (x12:0 > 1 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x9:0 > x4:0 && x6:0 > 0 && x4:0 > 0) The following rules are bounded: f7627_0_removeLastOccurrence_EQ(c, c1, x36:0, x37:0, x38:0, x39:0, x33:0) -> f7627_0_removeLastOccurrence_EQ(c2, c3, x41:0, x37:0, x42:0, x43:0, x33:0) :|: c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)) && (x43:0 > 0 && x44:0 > 1 && x41:0 > x36:0 && x42:0 < x38:0 && x43:0 < x39:0 && x39:0 > -1 && x38:0 > 0 && x36:0 > 0) f7627_0_removeLastOccurrence_EQ(c4, c5, x26:0, x27:0, x26:0, x27:0, x23:0) -> f7627_0_removeLastOccurrence_EQ(c6, c7, c8, x29:0, x30:0, x31:0, x23:0) :|: c8 = 1 && (c7 = 0 && (c6 = 0 && (c5 = 0 && c4 = 0))) && (x31:0 > 0 && x32:0 > 1 && x26:0 > -1 && x30:0 < x26:0 && x27:0 > -1 && x31:0 < x27:0) f7627_0_removeLastOccurrence_EQ(c19, c20, o12627[LinkedList$Entry.previous]o12629:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12629[LinkedList$Entry.previous]o12627:0:0, o12629[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) -> f7627_0_removeLastOccurrence_EQ(c21, c22, o13434[LinkedList$Entry.previous]o13439:0:0, o12627[LinkedList$Entry.previous]o12625:0:0, o12919[LinkedList$Entry.previous]o12627:0:0, o12919[LinkedList$Entry.previous]o12625:0:0, o12626-890246617:0:0) :|: c22 = 0 && (c21 = 0 && (c20 = 0 && c19 = 0)) && (i3614:0:0 > 1 && o12919[LinkedList$Entry.previous]o12625:0:0 > 0 && o12919[LinkedList$Entry.previous]o12627:0:0 < o12629[LinkedList$Entry.previous]o12627:0:0 && o12919[LinkedList$Entry.previous]o12625:0:0 < o12629[LinkedList$Entry.previous]o12625:0:0 && o12629[LinkedList$Entry.previous]o12625:0:0 > -1 && o13434[LinkedList$Entry.previous]o13439:0:0 > o12627[LinkedList$Entry.previous]o12629:0:0 && o12629[LinkedList$Entry.previous]o12627:0:0 > 0 && o12627[LinkedList$Entry.previous]o12629:0:0 > 0) f7627_0_removeLastOccurrence_EQ(c23, c24, x4:0, x5:0, x6:0, x7:0, x:0) -> f7627_0_removeLastOccurrence_EQ(c25, c26, x9:0, x5:0, x10:0, x11:0, x:0) :|: c26 = 0 && (c25 = 0 && (c24 = 0 && c23 = 0)) && (x12:0 > 1 && x11:0 > 0 && x6:0 > x10:0 && x7:0 > x11:0 && x7:0 > -1 && x9:0 > x4:0 && x6:0 > 0 && x4:0 > 0) ---------------------------------------- (116) YES ---------------------------------------- (117) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: javaUtilEx.juLinkedListCreateRemoveLastOccurrence.main([Ljava/lang/String;)V SCC calls the following helper methods: javaUtilEx.Content.equals(Ljava/lang/Object;)Z Performed SCC analyses: *Used field analysis yielded the following read fields: *javaUtilEx.LinkedList$Entry: [element, previous] *javaUtilEx.LinkedList: [header] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (118) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 61 IRulesP rules: f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) -> f7633_0_removeLastOccurrence_Load(EOS(STATIC_7633), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) :|: TRUE f7633_0_removeLastOccurrence_Load(EOS(STATIC_7633), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) -> f7642_0_removeLastOccurrence_Load(EOS(STATIC_7642), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.Content(EOC)), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) :|: TRUE f7642_0_removeLastOccurrence_Load(EOS(STATIC_7642), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.Content(EOC)), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) -> f7650_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7650), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) :|: TRUE f7650_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7650), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) -> f7656_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7656), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) :|: o12525[LinkedList$Entry.previous]o12527 > 0 && o12527[LinkedList$Entry.previous]o12525 > 0 f7650_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7650), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12904sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12904sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12904sub0), o12904[LinkedList$Entry.previous]o12904, o12524[LinkedList$Entry.next]o12522, o12904[LinkedList$Entry.previous]o12522, o12904[LinkedList$Entry.previous]o12904, o12904[LinkedList$Entry.previous]o12522) -> f7657_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7657), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12904sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12904sub0), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12904sub0), o12524[LinkedList$Entry.next]o12522, o12904[LinkedList$Entry.previous]o12522, o12904[LinkedList$Entry.previous]o12904) :|: TRUE f7656_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7656), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), o12525[LinkedList$Entry.previous]o12908, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12908[LinkedList$Entry.previous]o12522, o12908[LinkedList$Entry.previous]o12525) -> f7665_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7665), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: o12911[LinkedList$Entry.previous]o12522 < o12908[LinkedList$Entry.previous]o12522 && o12908[LinkedList$Entry.previous]o12522 >= 0 && o12911[LinkedList$Entry.previous]o12525 < o12908[LinkedList$Entry.previous]o12525 && o12908[LinkedList$Entry.previous]o12525 >= 0 f7665_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7665), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f7675_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7675), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE f7675_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7675), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f7684_0_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.Content(EOC)), o129090, java.lang.Object(o12525sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(o12911sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: i3599 > 1 f7675_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7675), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f7684_1_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: i3599 > 1 f7684_0_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.Content(EOC)), o129090, java.lang.Object(o12525sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(o12911sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f10303_0_equals_Load(EOS(STATIC_10303), java.lang.Object(javaUtilEx.Content(EOC)), o129090, java.lang.Object(o12525sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899, java.lang.Object(o12911sub1702447899))), java.lang.Object(o12911sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129090, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE f8558_0_equals_Return(EOS(STATIC_8558), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12911sub1702447899))), matching1, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f7844_0_equals_Return(EOS(STATIC_7844), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12911sub1702447899))), 0, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE && matching1 = 0 f7844_0_equals_Return(EOS(STATIC_7844), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), matching1, o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) -> f7861_0_removeLastOccurrence_EQ(EOS(STATIC_7861), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), 0, o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) :|: TRUE && matching1 = 0 f7861_0_removeLastOccurrence_EQ(EOS(STATIC_7861), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), matching1, o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) -> f7878_0_removeLastOccurrence_Load(EOS(STATIC_7878), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) :|: TRUE && matching1 = 0 f7878_0_removeLastOccurrence_Load(EOS(STATIC_7878), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) -> f7898_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7898), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) :|: TRUE f7898_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7898), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o133881703200331, java.lang.Object(o13390sub1703200331))), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13385[LinkedList$Entry.previous]o13387, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) -> f7921_0_removeLastOccurrence_Store(EOS(STATIC_7921), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385, o13385[LinkedList$Entry.previous]o13390) :|: o13385[LinkedList$Entry.previous]o13390 > o13385[LinkedList$Entry.previous]o13387 && o13385[LinkedList$Entry.previous]o13387 >= 0 f7921_0_removeLastOccurrence_Store(EOS(STATIC_7921), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385, o13385[LinkedList$Entry.previous]o13390) -> f7946_0_removeLastOccurrence_JMP(EOS(STATIC_7946), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385, o13385[LinkedList$Entry.previous]o13390) :|: TRUE f7946_0_removeLastOccurrence_JMP(EOS(STATIC_7946), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385, o13385[LinkedList$Entry.previous]o13390) -> f7967_0_removeLastOccurrence_Load(EOS(STATIC_7967), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385, o13385[LinkedList$Entry.previous]o13390) :|: TRUE f7967_0_removeLastOccurrence_Load(EOS(STATIC_7967), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385, o13385[LinkedList$Entry.previous]o13390) -> f7598_0_removeLastOccurrence_Load(EOS(STATIC_7598), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13383-888566975, java.lang.Object(o13385sub-888566975)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0), o13385[LinkedList$Entry.previous]o13390, o13384[LinkedList$Entry.next]o13382, o13385[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13382, o13390[LinkedList$Entry.previous]o13385) :|: TRUE f7598_0_removeLastOccurrence_Load(EOS(STATIC_7598), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) -> f7606_0_removeLastOccurrence_Load(EOS(STATIC_7606), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) :|: TRUE f7606_0_removeLastOccurrence_Load(EOS(STATIC_7606), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) -> f7611_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7611), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) :|: TRUE f7611_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7611), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) -> f7617_0_removeLastOccurrence_EQ(EOS(STATIC_7617), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) :|: TRUE f7617_0_removeLastOccurrence_EQ(EOS(STATIC_7617), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12527sub0), java.lang.Object(o12527sub0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(o12525sub1702330471))), o12525[LinkedList$Entry.previous]o12527, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12527[LinkedList$Entry.previous]o12525, o12527[LinkedList$Entry.previous]o12522) :|: o12527[LinkedList$Entry.previous]o12522 > 0 f8576_0_equals_Return(EOS(STATIC_8576), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17637sub1702447899), java.lang.Object(o12911sub1702447899))), matching1, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f7844_0_equals_Return(EOS(STATIC_7844), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17637sub1702447899), java.lang.Object(o12911sub1702447899))), 0, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE && matching1 = 0 f8722_0_equals_Return(EOS(STATIC_8722), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), matching1, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f8036_0_equals_Return(EOS(STATIC_8036), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), 0, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE && matching1 = 0 f8036_0_equals_Return(EOS(STATIC_8036), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), i3906, o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) -> f8052_0_removeLastOccurrence_EQ(EOS(STATIC_8052), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), i3906, o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) :|: TRUE f8052_0_removeLastOccurrence_EQ(EOS(STATIC_8052), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), matching1, o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) -> f8062_0_removeLastOccurrence_EQ(EOS(STATIC_8062), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), 0, o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) :|: TRUE && matching1 = 0 f8062_0_removeLastOccurrence_EQ(EOS(STATIC_8062), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), matching1, o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) -> f8079_0_removeLastOccurrence_Load(EOS(STATIC_8079), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) :|: TRUE && matching1 = 0 f8079_0_removeLastOccurrence_Load(EOS(STATIC_8079), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) -> f8098_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8098), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) :|: TRUE f8098_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8098), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub1704095053))), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14296[LinkedList$Entry.previous]o14298, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296) -> f8118_0_removeLastOccurrence_Store(EOS(STATIC_8118), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub0), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296, o14296[LinkedList$Entry.previous]o14301) :|: o14296[LinkedList$Entry.previous]o14301 > o14296[LinkedList$Entry.previous]o14298 && o14296[LinkedList$Entry.previous]o14298 >= 0 f8118_0_removeLastOccurrence_Store(EOS(STATIC_8118), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub0), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296, o14296[LinkedList$Entry.previous]o14301) -> f7921_0_removeLastOccurrence_Store(EOS(STATIC_7921), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14294-886777531, java.lang.Object(o14296sub-886777531)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub0), o14295[LinkedList$Entry.next]o14293, o14296[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14293, o14301[LinkedList$Entry.previous]o14296, o14296[LinkedList$Entry.previous]o14301) :|: TRUE f8737_0_equals_Return(EOS(STATIC_8737), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), matching1, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f8036_0_equals_Return(EOS(STATIC_8036), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), 1, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE && matching1 = 1 f7657_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7657), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), o12524[LinkedList$Entry.next]o12522, o12912[LinkedList$Entry.previous]o12522, o12912[LinkedList$Entry.previous]o12912) -> f7666_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7666), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: o12915[LinkedList$Entry.previous]o12522 < o12912[LinkedList$Entry.previous]o12522 && o12912[LinkedList$Entry.previous]o12522 >= 0 && o12915[LinkedList$Entry.previous]o12912 < o12912[LinkedList$Entry.previous]o12912 && o12912[LinkedList$Entry.previous]o12912 >= 0 f7666_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7666), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f7676_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7676), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE f7676_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7676), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f7685_0_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.Content(EOC)), o129130, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913-890188151, java.lang.Object(o12915sub-890188151))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(o12915sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: i3599 > 1 f7676_0_removeLastOccurrence_InvokeMethod(EOS(STATIC_7676), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f7685_1_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: i3599 > 1 f7685_0_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.Content(EOC)), o129130, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913-890188151, java.lang.Object(o12915sub-890188151))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(o12915sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f10379_0_equals_Load(EOS(STATIC_10379), java.lang.Object(javaUtilEx.Content(EOC)), o129130, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913-890188151, java.lang.Object(o12915sub-890188151))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674, java.lang.Object(o12915sub1702448674))), java.lang.Object(o12915sub0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129130, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE f8559_0_equals_Return(EOS(STATIC_8559), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub1702448674))), matching1, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f7846_0_equals_Return(EOS(STATIC_7846), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub1702448674))), 0, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE && matching1 = 0 f7846_0_equals_Return(EOS(STATIC_7846), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), matching1, o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) -> f7862_0_removeLastOccurrence_EQ(EOS(STATIC_7862), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), 0, o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) :|: TRUE && matching1 = 0 f7862_0_removeLastOccurrence_EQ(EOS(STATIC_7862), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), matching1, o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) -> f7879_0_removeLastOccurrence_Load(EOS(STATIC_7879), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) :|: TRUE && matching1 = 0 f7879_0_removeLastOccurrence_Load(EOS(STATIC_7879), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) -> f7899_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7899), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) :|: TRUE f7899_0_removeLastOccurrence_FieldAccess(EOS(STATIC_7899), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o134101703222496, java.lang.Object(o13412sub1703222496))), o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) -> f7922_0_removeLastOccurrence_Store(EOS(STATIC_7922), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13412sub0), o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) :|: TRUE f7922_0_removeLastOccurrence_Store(EOS(STATIC_7922), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13412sub0), o13408[LinkedList$Entry.next]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409) -> f8118_0_removeLastOccurrence_Store(EOS(STATIC_8118), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13407-888522521, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o13410814699975, java.lang.Object(o13412sub814699975)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13412sub0), o13408[LinkedList$Entry.next]o13406, o13409[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13406, o13412[LinkedList$Entry.previous]o13409, o13409[LinkedList$Entry.previous]o13412) :|: o13409[LinkedList$Entry.previous]o13412 = 1 f8577_0_equals_Return(EOS(STATIC_8577), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub812142289), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub1702448674), java.lang.Object(o12915sub1702448674))), matching1, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f7846_0_equals_Return(EOS(STATIC_7846), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub812142289), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub1702448674), java.lang.Object(o12915sub1702448674))), 0, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE && matching1 = 0 f8723_0_equals_Return(EOS(STATIC_8723), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), matching1, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f8038_0_equals_Return(EOS(STATIC_8038), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), 0, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE && matching1 = 0 f8038_0_equals_Return(EOS(STATIC_8038), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), i3912, o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8053_0_removeLastOccurrence_EQ(EOS(STATIC_8053), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), i3912, o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE f8053_0_removeLastOccurrence_EQ(EOS(STATIC_8053), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), matching1, o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8064_0_removeLastOccurrence_EQ(EOS(STATIC_8064), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), 0, o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE && matching1 = 0 f8064_0_removeLastOccurrence_EQ(EOS(STATIC_8064), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), matching1, o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8081_0_removeLastOccurrence_Load(EOS(STATIC_8081), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE && matching1 = 0 f8081_0_removeLastOccurrence_Load(EOS(STATIC_8081), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8100_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8100), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE f8100_0_removeLastOccurrence_FieldAccess(EOS(STATIC_8100), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub1704116133))), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8120_0_removeLastOccurrence_Store(EOS(STATIC_8120), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE f8120_0_removeLastOccurrence_Store(EOS(STATIC_8120), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8137_0_removeLastOccurrence_JMP(EOS(STATIC_8137), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE f8137_0_removeLastOccurrence_JMP(EOS(STATIC_8137), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f8146_0_removeLastOccurrence_Load(EOS(STATIC_8146), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: TRUE f8146_0_removeLastOccurrence_Load(EOS(STATIC_8146), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14305[LinkedList$Entry.next]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) -> f7598_0_removeLastOccurrence_Load(EOS(STATIC_7598), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o14304-886735247, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub817380886)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0), o14306[LinkedList$Entry.previous]o14309, o14305[LinkedList$Entry.next]o14303, o14306[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14303, o14309[LinkedList$Entry.previous]o14306) :|: o14306[LinkedList$Entry.previous]o14309 = 1 f8738_0_equals_Return(EOS(STATIC_8738), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), matching1, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f8038_0_equals_Return(EOS(STATIC_8038), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), 1, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE && matching1 = 1 f7684_1_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), NULL, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f8558_0_equals_Return(EOS(STATIC_8558), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12911sub1702447899))), 0, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE f7684_1_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17637sub1702447899), java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o17637sub0), o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f8576_0_equals_Return(EOS(STATIC_8576), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17637sub1702447899), java.lang.Object(o12911sub1702447899))), 0, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE f7684_1_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f8722_0_equals_Return(EOS(STATIC_8722), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), 0, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE f7684_1_equals_Load(EOS(STATIC_7684), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) -> f8737_0_equals_Return(EOS(STATIC_8737), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(o12525sub-890306385)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899))), 1, o12524[LinkedList$Entry.next]o12522, o12525[LinkedList$Entry.previous]o12522, o12525[LinkedList$Entry.previous]o12908, o12911[LinkedList$Entry.previous]o12522, o12911[LinkedList$Entry.previous]o12525) :|: TRUE f7685_1_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), NULL, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f8559_0_equals_Return(EOS(STATIC_8559), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub1702448674))), 0, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE f7685_1_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub812142289), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub1702448674), java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o17652sub0), o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f8577_0_equals_Return(EOS(STATIC_8577), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub812142289), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub1702448674), java.lang.Object(o12915sub1702448674))), 0, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE f7685_1_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f8723_0_equals_Return(EOS(STATIC_8723), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), 0, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE f7685_1_equals_Load(EOS(STATIC_7685), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.Content(EOC)), o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) -> f8738_0_equals_Return(EOS(STATIC_8738), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674))), 1, o12524[LinkedList$Entry.next]o12522, o12915[LinkedList$Entry.previous]o12522, o12915[LinkedList$Entry.previous]o12912) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13412sub0:0), java.lang.Object(o13412sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), 1, o12524[LinkedList$Entry.next]o12522:0, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0) :|: o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && i3599:0 > 1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub812142289:0), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub1702448674:0), java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub1702448674:0), java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17652sub812142289:0), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13412sub0:0), java.lang.Object(o13412sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), 1, o12524[LinkedList$Entry.next]o12522:0, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0) :|: o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && i3599:0 > 1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17637sub1702447899:0), java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(o17637sub1702447899:0), java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0:0), java.lang.Object(o13390sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), o13385[LinkedList$Entry.previous]o13390:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0, o12911[LinkedList$Entry.previous]o12522:0) :|: o12527[LinkedList$Entry.previous]o12525:0 > 0 && o12525[LinkedList$Entry.previous]o12527:0 > 0 && o13385[LinkedList$Entry.previous]o13390:0 > o12525[LinkedList$Entry.previous]o12527:0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && o12911[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14309sub0:0), java.lang.Object(o14309sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), 1, o12524[LinkedList$Entry.next]o12522:0, o14306[LinkedList$Entry.previous]o14303:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0) :|: o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && i3599:0 > 1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, NULL, java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o13390sub0:0), java.lang.Object(o13390sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), o13385[LinkedList$Entry.previous]o13390:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0, o12911[LinkedList$Entry.previous]o12522:0) :|: o12527[LinkedList$Entry.previous]o12525:0 > 0 && o12525[LinkedList$Entry.previous]o12527:0 > 0 && o13385[LinkedList$Entry.previous]o13390:0 > o12525[LinkedList$Entry.previous]o12527:0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && o12911[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0) -> f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(o14301sub0:0), java.lang.Object(o14301sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), o14296[LinkedList$Entry.previous]o14301:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0, o12911[LinkedList$Entry.previous]o12522:0) :|: o12527[LinkedList$Entry.previous]o12525:0 > 0 && o12525[LinkedList$Entry.previous]o12527:0 > 0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && o14296[LinkedList$Entry.previous]o14301:0 > o12525[LinkedList$Entry.previous]o12527:0 && i3599:0 > 1 && o12911[LinkedList$Entry.previous]o12522:0 > 0 Removed following non-SCC rules: f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899:0, java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899:0, java.lang.Object(o12911sub1702447899:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0) -> f10303_0_equals_Load(EOS(STATIC_10303), java.lang.Object(javaUtilEx.Content(EOC)), o129090:0, java.lang.Object(o12525sub0:0), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(o12525sub1702330471:1))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129091702447899:0, java.lang.Object(o12911sub1702447899:0))), java.lang.Object(o12911sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129090:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12911[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0) :|: o12527[LinkedList$Entry.previous]o12525:0 > 0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && i3599:0 > 1 && o12525[LinkedList$Entry.previous]o12527:0 > 0 f7625_0_removeLastOccurrence_EQ(EOS(STATIC_7625), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289:0, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674:0, java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674:0, java.lang.Object(o12915sub1702448674:0))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:0, java.lang.Object(o12525sub1702330471:0))), o12525[LinkedList$Entry.previous]o12527:0, o12524[LinkedList$Entry.next]o12522:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0) -> f10379_0_equals_Load(EOS(STATIC_10379), java.lang.Object(javaUtilEx.Content(EOC)), o129130:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o125231702330471:1, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913-890188151:0, java.lang.Object(o12915sub-890188151:0))))), java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o129131702448674:0, java.lang.Object(o12915sub1702448674:0))), java.lang.Object(o12915sub0:0), java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(EOC, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(EOC, o12913812142289:0, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.Content(EOC)), o129130:0, o12524[LinkedList$Entry.next]o12522:0, o12915[LinkedList$Entry.previous]o12522:0, o12915[LinkedList$Entry.previous]o12912:0) :|: o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && i3599:0 > 1 && o12525[LinkedList$Entry.previous]o12527:0 > -1 Filtered constant ground arguments: f7625_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f7625_0_removeLastOccurrence_EQ(x2, x4, x5, x6, x7, x8, x9, x10, x11) EOS(x1) -> EOS javaUtilEx.Content(x1) -> javaUtilEx.Content javaUtilEx.LinkedList$Entry(x1, x2, x3) -> javaUtilEx.LinkedList$Entry(x2, x3) javaUtilEx.LinkedList(x1, x2) -> javaUtilEx.LinkedList(x2) Filtered duplicate arguments: f7625_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8, x9) -> f7625_0_removeLastOccurrence_EQ(x1, x3, x4, x5, x6, x7, x8, x9) Filtered unneeded arguments: f7625_0_removeLastOccurrence_EQ(x1, x2, x3, x4, x5, x6, x7, x8) -> f7625_0_removeLastOccurrence_EQ(x1, x2, x4, x6, x7, x8) Finished conversion. Obtained 6 rules.P rules: f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o13412sub0:0), 1, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17652sub812142289:0), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17652sub1702448674:0), java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17652sub812142289:0), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o13412sub0:0), 1, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(o17637sub1702447899:0), java.lang.Object(o12911sub1702447899:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(o13390sub0:0), o13385[LinkedList$Entry.previous]o13390:0, o12525[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0, o12911[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12525[LinkedList$Entry.previous]o12527:0 > 0 && o12527[LinkedList$Entry.previous]o12525:0 > 0 && o13385[LinkedList$Entry.previous]o13390:0 > o12525[LinkedList$Entry.previous]o12527:0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && i3599:0 > 1 && o12911[LinkedList$Entry.previous]o12522:0 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o14309sub0:0), 1, o14306[LinkedList$Entry.previous]o14303:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12911sub1702447899:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(o13390sub0:0), o13385[LinkedList$Entry.previous]o13390:0, o12525[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0, o12911[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12525[LinkedList$Entry.previous]o12527:0 > 0 && o12527[LinkedList$Entry.previous]o12525:0 > 0 && o13385[LinkedList$Entry.previous]o13390:0 > o12525[LinkedList$Entry.previous]o12527:0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && i3599:0 > 1 && o12911[LinkedList$Entry.previous]o12522:0 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(o12911sub1702447899:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12527[LinkedList$Entry.previous]o12525:0, o12527[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(o12525sub-890306385:0)))))))), java.lang.Object(o14301sub0:0), o14296[LinkedList$Entry.previous]o14301:0, o12525[LinkedList$Entry.previous]o12522:0, o12911[LinkedList$Entry.previous]o12525:0, o12911[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12525[LinkedList$Entry.previous]o12527:0 > 0 && o12527[LinkedList$Entry.previous]o12525:0 > 0 && o12527[LinkedList$Entry.previous]o12522:0 > -1 && o12911[LinkedList$Entry.previous]o12522:0 < o12527[LinkedList$Entry.previous]o12522:0 && o12911[LinkedList$Entry.previous]o12525:0 < o12527[LinkedList$Entry.previous]o12525:0 && o14296[LinkedList$Entry.previous]o14301:0 > o12525[LinkedList$Entry.previous]o12527:0 && o12911[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 ---------------------------------------- (119) Obligation: Rules: f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o13412sub0:0), 1, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 && x11 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15))), x16, x17, x18, x19, x12) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(x20), x21, x17, x22, x23, x12) :|: x16 > 0 && x18 > 0 && x21 > x16 && x19 > -1 && x23 < x19 && x22 < x18 && x24 > 1 && x23 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x27))), x28, x29, x28, x29, x25) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(x30), 1, x31, x32, x33, x25) :|: x33 < x29 && x29 > -1 && x32 < x28 && x28 > -1 && x33 > 0 && x34 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x37))), x38, x39, x40, x41, x35) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(x42), x43, x39, x44, x45, x35) :|: x38 > 0 && x40 > 0 && x43 > x38 && x41 > -1 && x45 < x41 && x44 < x40 && x46 > 1 && x45 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x49))), x50, x51, x52, x53, x47) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(x54), x55, x51, x56, x57, x47) :|: x50 > 0 && x52 > 0 && x53 > -1 && x57 < x53 && x56 < x52 && x55 > x50 && x57 > 0 && x58 > 1 ---------------------------------------- (120) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (121) Obligation: Rules: f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o13412sub0:0), 1, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 && x11 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15))), x16, x17, x18, x19, x12) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(x20), x21, x17, x22, x23, x12) :|: x16 > 0 && x18 > 0 && x21 > x16 && x19 > -1 && x23 < x19 && x22 < x18 && x24 > 1 && x23 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x27))), x28, x29, x28, x29, x25) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(x30), 1, x31, x32, x33, x25) :|: x33 < x29 && x29 > -1 && x32 < x28 && x28 > -1 && x33 > 0 && x34 > 1 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x37))), x38, x39, x40, x41, x35) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(x42), x43, x39, x44, x45, x35) :|: x38 > 0 && x40 > 0 && x43 > x38 && x41 > -1 && x45 < x41 && x44 < x40 && x46 > 1 && x45 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x49))), x50, x51, x52, x53, x47) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(x54), x55, x51, x56, x57, x47) :|: x50 > 0 && x52 > 0 && x53 > -1 && x57 < x53 && x56 < x52 && x55 > x50 && x57 > 0 && x58 > 1 ---------------------------------------- (122) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o13412sub0:0), 1, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 (2) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 && x11 > 1 (3) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15))), x16, x17, x18, x19, x12) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(x20), x21, x17, x22, x23, x12) :|: x16 > 0 && x18 > 0 && x21 > x16 && x19 > -1 && x23 < x19 && x22 < x18 && x24 > 1 && x23 > 0 (4) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x27))), x28, x29, x28, x29, x25) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(x30), 1, x31, x32, x33, x25) :|: x33 < x29 && x29 > -1 && x32 < x28 && x28 > -1 && x33 > 0 && x34 > 1 (5) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x37))), x38, x39, x40, x41, x35) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(x42), x43, x39, x44, x45, x35) :|: x38 > 0 && x40 > 0 && x43 > x38 && x41 > -1 && x45 < x41 && x44 < x40 && x46 > 1 && x45 > 0 (6) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x49))), x50, x51, x52, x53, x47) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(x54), x55, x51, x56, x57, x47) :|: x50 > 0 && x52 > 0 && x53 > -1 && x57 < x53 && x56 < x52 && x55 > x50 && x57 > 0 && x58 > 1 Arcs: (1) -> (1), (3), (5), (6) (2) -> (2), (3), (4), (5), (6) (3) -> (1), (2), (3), (4), (5), (6) (4) -> (2), (3), (4), (5), (6) (5) -> (1), (2), (3), (4), (5), (6) (6) -> (1), (2), (3), (4), (5), (6) This digraph is fully evaluated! ---------------------------------------- (123) Obligation: Termination digraph: Nodes: (1) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub1702448674:0))), o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12525[LinkedList$Entry.previous]o12527:0, o12525[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0)))))))))), java.lang.Object(o13412sub0:0), 1, o13409[LinkedList$Entry.previous]o13406:0, o12915[LinkedList$Entry.previous]o12912:0, o12915[LinkedList$Entry.previous]o12522:0, o12523-890306385:0) :|: o12915[LinkedList$Entry.previous]o12522:0 < o12525[LinkedList$Entry.previous]o12522:0 && o12525[LinkedList$Entry.previous]o12522:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0 < o12525[LinkedList$Entry.previous]o12527:0 && o12525[LinkedList$Entry.previous]o12527:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0 > 0 && i3599:0 > 1 (2) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14), java.lang.Object(x15))), x16, x17, x18, x19, x12) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12, java.lang.Object(x13)))))))), java.lang.Object(x20), x21, x17, x22, x23, x12) :|: x16 > 0 && x18 > 0 && x21 > x16 && x19 > -1 && x23 < x19 && x22 < x18 && x24 > 1 && x23 > 0 (3) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3), java.lang.Object(x4))), x5, x6, x5, x6, x) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1), java.lang.Object(x2)))))))))), java.lang.Object(x7), 1, x8, x9, x10, x) :|: x10 < x6 && x6 > -1 && x9 < x5 && x5 > -1 && x10 > 0 && x11 > 1 (4) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x27))), x28, x29, x28, x29, x25) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26)))))))))), java.lang.Object(x30), 1, x31, x32, x33, x25) :|: x33 < x29 && x29 > -1 && x32 < x28 && x28 > -1 && x33 > 0 && x34 > 1 (5) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x37))), x38, x39, x40, x41, x35) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35, java.lang.Object(x36)))))))), java.lang.Object(x42), x43, x39, x44, x45, x35) :|: x38 > 0 && x40 > 0 && x43 > x38 && x41 > -1 && x45 < x41 && x44 < x40 && x46 > 1 && x45 > 0 (6) f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x49))), x50, x51, x52, x53, x47) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47, java.lang.Object(x48)))))))), java.lang.Object(x54), x55, x51, x56, x57, x47) :|: x50 > 0 && x52 > 0 && x53 > -1 && x57 < x53 && x56 < x52 && x55 > x50 && x57 > 0 && x58 > 1 Arcs: (1) -> (1), (2), (5), (6) (2) -> (1), (2), (3), (4), (5), (6) (3) -> (2), (3), (4), (5), (6) (4) -> (2), (3), (4), (5), (6) (5) -> (1), (2), (3), (4), (5), (6) (6) -> (1), (2), (3), (4), (5), (6) This digraph is fully evaluated! ---------------------------------------- (124) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (125) Obligation: Rules: f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x27:0))), x28:0, x29:0, x28:0, x29:0, x25:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x25:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x26:0)))))))))), java.lang.Object(x30:0), 1, x31:0, x32:0, x33:0, x25:0) :|: x33:0 > 0 && x34:0 > 1 && x28:0 > -1 && x32:0 < x28:0 && x29:0 > -1 && x33:0 < x29:0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1:0), java.lang.Object(x2:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x3:0), java.lang.Object(x4:0))), x5:0, x6:0, x5:0, x6:0, x:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x:0, java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x1:0), java.lang.Object(x2:0)))))))))), java.lang.Object(x7:0), 1, x8:0, x9:0, x10:0, x:0) :|: x10:0 > 0 && x11:0 > 1 && x5:0 > -1 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35:0, java.lang.Object(x36:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(x37:0))), x38:0, x39:0, x40:0, x41:0, x35:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x35:0, java.lang.Object(x36:0)))))))), java.lang.Object(x42:0), x43:0, x39:0, x44:0, x45:0, x35:0) :|: x46:0 > 1 && x45:0 > 0 && x44:0 < x40:0 && x45:0 < x41:0 && x41:0 > -1 && x43:0 > x38:0 && x40:0 > 0 && x38:0 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12:0, java.lang.Object(x13:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(x14:0), java.lang.Object(x15:0))), x16:0, x17:0, x18:0, x19:0, x12:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x12:0, java.lang.Object(x13:0)))))))), java.lang.Object(x20:0), x21:0, x17:0, x22:0, x23:0, x12:0) :|: x24:0 > 1 && x23:0 > 0 && x22:0 < x18:0 && x23:0 < x19:0 && x19:0 > -1 && x21:0 > x16:0 && x18:0 > 0 && x16:0 > 0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0:0)))))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub1702448674:0:0))), o12525[LinkedList$Entry.previous]o12527:0:0, o12525[LinkedList$Entry.previous]o12522:0:0, o12525[LinkedList$Entry.previous]o12527:0:0, o12525[LinkedList$Entry.previous]o12522:0:0, o12523-890306385:0:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(o12523-890306385:0:0, java.lang.Object(javaUtilEx.LinkedList$Entry(NULL, java.lang.Object(o12915sub812142289:0:0)))))))))), java.lang.Object(o13412sub0:0:0), 1, o13409[LinkedList$Entry.previous]o13406:0:0, o12915[LinkedList$Entry.previous]o12912:0:0, o12915[LinkedList$Entry.previous]o12522:0:0, o12523-890306385:0:0) :|: o12915[LinkedList$Entry.previous]o12522:0:0 > 0 && i3599:0:0 > 1 && o12525[LinkedList$Entry.previous]o12527:0:0 > -1 && o12915[LinkedList$Entry.previous]o12912:0:0 < o12525[LinkedList$Entry.previous]o12527:0:0 && o12525[LinkedList$Entry.previous]o12522:0:0 > -1 && o12915[LinkedList$Entry.previous]o12522:0:0 < o12525[LinkedList$Entry.previous]o12522:0:0 f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47:0, java.lang.Object(x48:0)))))))), java.lang.Object(javaUtilEx.LinkedList$Entry(java.lang.Object(javaUtilEx.Content), java.lang.Object(x49:0))), x50:0, x51:0, x52:0, x53:0, x47:0) -> f7625_0_removeLastOccurrence_EQ(java.lang.Object(javaUtilEx.AbstractCollection(javaUtilEx.AbstractList(javaUtilEx.AbstractSequentialList(javaUtilEx.LinkedList(java.lang.Object(javaUtilEx.LinkedList$Entry(x47:0, java.lang.Object(x48:0)))))))), java.lang.Object(x54:0), x55:0, x51:0, x56:0, x57:0, x47:0) :|: x57:0 > 0 && x58:0 > 1 && x55:0 > x50:0 && x56:0 < x52:0 && x57:0 < x53:0 && x53:0 > -1 && x52:0 > 0 && x50:0 > 0 ---------------------------------------- (126) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f7625_0_removeLastOccurrence_EQ(VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, INTEGER, VARIABLE) java.lang.Object(VARIABLE) javaUtilEx.AbstractCollection(VARIABLE) javaUtilEx.AbstractList(VARIABLE) javaUtilEx.AbstractSequentialList(VARIABLE) javaUtilEx.LinkedList(VARIABLE) javaUtilEx.LinkedList$Entry(VARIABLE, VARIABLE) javaUtilEx.Content() NULL() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (127) Obligation: Rules: f7625_0_removeLastOccurrence_EQ(c, c1, x28:0, x29:0, x28:0, x29:0, x25:0) -> f7625_0_removeLastOccurrence_EQ(c2, c3, c4, x31:0, x32:0, x33:0, x25:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x33:0 > 0 && x34:0 > 1 && x28:0 > -1 && x32:0 < x28:0 && x29:0 > -1 && x33:0 < x29:0) f7625_0_removeLastOccurrence_EQ(c5, c6, x5:0, x6:0, x5:0, x6:0, x:0) -> f7625_0_removeLastOccurrence_EQ(c7, c8, c9, x8:0, x9:0, x10:0, x:0) :|: c9 = 1 && (c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0))) && (x10:0 > 0 && x11:0 > 1 && x5:0 > -1 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) f7625_0_removeLastOccurrence_EQ(c10, c11, x38:0, x39:0, x40:0, x41:0, x35:0) -> f7625_0_removeLastOccurrence_EQ(c12, c13, x43:0, x39:0, x44:0, x45:0, x35:0) :|: c13 = 0 && (c12 = 0 && (c11 = 0 && c10 = 0)) && (x46:0 > 1 && x45:0 > 0 && x44:0 < x40:0 && x45:0 < x41:0 && x41:0 > -1 && x43:0 > x38:0 && x40:0 > 0 && x38:0 > 0) f7625_0_removeLastOccurrence_EQ(c23, c24, x50:0, x51:0, x52:0, x53:0, x47:0) -> f7625_0_removeLastOccurrence_EQ(c25, c26, x55:0, x51:0, x56:0, x57:0, x47:0) :|: c26 = 0 && (c25 = 0 && (c24 = 0 && c23 = 0)) && (x57:0 > 0 && x58:0 > 1 && x55:0 > x50:0 && x56:0 < x52:0 && x57:0 < x53:0 && x53:0 > -1 && x52:0 > 0 && x50:0 > 0) ---------------------------------------- (128) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7625_0_removeLastOccurrence_EQ ] = f7625_0_removeLastOccurrence_EQ_6 The following rules are decreasing: f7625_0_removeLastOccurrence_EQ(c, c1, x28:0, x29:0, x28:0, x29:0, x25:0) -> f7625_0_removeLastOccurrence_EQ(c2, c3, c4, x31:0, x32:0, x33:0, x25:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x33:0 > 0 && x34:0 > 1 && x28:0 > -1 && x32:0 < x28:0 && x29:0 > -1 && x33:0 < x29:0) f7625_0_removeLastOccurrence_EQ(c5, c6, x5:0, x6:0, x5:0, x6:0, x:0) -> f7625_0_removeLastOccurrence_EQ(c7, c8, c9, x8:0, x9:0, x10:0, x:0) :|: c9 = 1 && (c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0))) && (x10:0 > 0 && x11:0 > 1 && x5:0 > -1 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) f7625_0_removeLastOccurrence_EQ(c10, c11, x38:0, x39:0, x40:0, x41:0, x35:0) -> f7625_0_removeLastOccurrence_EQ(c12, c13, x43:0, x39:0, x44:0, x45:0, x35:0) :|: c13 = 0 && (c12 = 0 && (c11 = 0 && c10 = 0)) && (x46:0 > 1 && x45:0 > 0 && x44:0 < x40:0 && x45:0 < x41:0 && x41:0 > -1 && x43:0 > x38:0 && x40:0 > 0 && x38:0 > 0) f7625_0_removeLastOccurrence_EQ(c23, c24, x50:0, x51:0, x52:0, x53:0, x47:0) -> f7625_0_removeLastOccurrence_EQ(c25, c26, x55:0, x51:0, x56:0, x57:0, x47:0) :|: c26 = 0 && (c25 = 0 && (c24 = 0 && c23 = 0)) && (x57:0 > 0 && x58:0 > 1 && x55:0 > x50:0 && x56:0 < x52:0 && x57:0 < x53:0 && x53:0 > -1 && x52:0 > 0 && x50:0 > 0) The following rules are bounded: f7625_0_removeLastOccurrence_EQ(c, c1, x28:0, x29:0, x28:0, x29:0, x25:0) -> f7625_0_removeLastOccurrence_EQ(c2, c3, c4, x31:0, x32:0, x33:0, x25:0) :|: c4 = 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x33:0 > 0 && x34:0 > 1 && x28:0 > -1 && x32:0 < x28:0 && x29:0 > -1 && x33:0 < x29:0) f7625_0_removeLastOccurrence_EQ(c5, c6, x5:0, x6:0, x5:0, x6:0, x:0) -> f7625_0_removeLastOccurrence_EQ(c7, c8, c9, x8:0, x9:0, x10:0, x:0) :|: c9 = 1 && (c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0))) && (x10:0 > 0 && x11:0 > 1 && x5:0 > -1 && x9:0 < x5:0 && x6:0 > -1 && x6:0 > x10:0) f7625_0_removeLastOccurrence_EQ(c10, c11, x38:0, x39:0, x40:0, x41:0, x35:0) -> f7625_0_removeLastOccurrence_EQ(c12, c13, x43:0, x39:0, x44:0, x45:0, x35:0) :|: c13 = 0 && (c12 = 0 && (c11 = 0 && c10 = 0)) && (x46:0 > 1 && x45:0 > 0 && x44:0 < x40:0 && x45:0 < x41:0 && x41:0 > -1 && x43:0 > x38:0 && x40:0 > 0 && x38:0 > 0) f7625_0_removeLastOccurrence_EQ(c23, c24, x50:0, x51:0, x52:0, x53:0, x47:0) -> f7625_0_removeLastOccurrence_EQ(c25, c26, x55:0, x51:0, x56:0, x57:0, x47:0) :|: c26 = 0 && (c25 = 0 && (c24 = 0 && c23 = 0)) && (x57:0 > 0 && x58:0 > 1 && x55:0 > x50:0 && x56:0 < x52:0 && x57:0 < x53:0 && x53:0 > -1 && x52:0 > 0 && x50:0 > 0) ---------------------------------------- (129) YES