diff --git a/README.md b/README.md index 794258a6..bd9f6b35 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![wercker status](https://app.wercker.com/status/24c4765f3a0d79520ad80a1e4c20cfa2/s/master "wercker status")](https://app.wercker.com/project/bykey/24c4765f3a0d79520ad80a1e4c20cfa2) [![Coverage Status](https://coveralls.io/repos/logic-ng/LogicNG/badge.svg?branch=master&service=github)](https://coveralls.io/github/logic-ng/LogicNG?branch=master) ![License](https://img.shields.io/badge/license-Apache%202-blue.svg) ![Version](https://img.shields.io/badge/version-1.3.1-ff69b4.svg) +[![wercker status](https://app.wercker.com/status/24c4765f3a0d79520ad80a1e4c20cfa2/s/master "wercker status")](https://app.wercker.com/project/bykey/24c4765f3a0d79520ad80a1e4c20cfa2) [![Coverage Status](https://coveralls.io/repos/logic-ng/LogicNG/badge.svg?branch=master&service=github)](https://coveralls.io/github/logic-ng/LogicNG?branch=master) ![License](https://img.shields.io/badge/license-Apache%202-blue.svg) ![Version](https://img.shields.io/badge/version-1.4.0-ff69b4.svg) logo @@ -19,7 +19,7 @@ LogicNG is released in the Maven Central Repository. To include it just add org.logicng logicng - 1.3.1 + 1.4.0 ``` to you Maven POM. @@ -60,6 +60,18 @@ The library is released under the Apache License and therefore is free to use in ## Changelog +### Version 1.4.0 (Release June 2018) +* BDD package (based on Buddy) for creating, manipulating, and writing BDDs + * Creation of BDDs from LogicNG formulas + * CNF, DNF transformation of BDDs + * Restriction, existential & universal quantifier elimination + * Model counting & enumeration + * Different static variable ordering heuristics (FORCE, DFS, BFS, MinMax) + * Writing BDDs in the GraphViz .dot format +* Quine-McCluskey Implementation for minimizing canonical DNFs +* New formula transformation for anonymizing formulas +* Internal parser and IO improvements. Variables can now start with a digit. + ### Version 1.3.1 (Release January 2018) * Huge performance boost in the model enumeration of MiniSat * New formula transformation which imports formulas in another formula factory diff --git a/doc/logo/logo_big.png b/doc/logo/logo_big.png index 87613f41..f967b851 100644 Binary files a/doc/logo/logo_big.png and b/doc/logo/logo_big.png differ diff --git a/doc/logo/logo_small.png b/doc/logo/logo_small.png deleted file mode 100644 index 7f2973d3..00000000 Binary files a/doc/logo/logo_small.png and /dev/null differ diff --git a/pom.xml b/pom.xml index ca318594..ced3c534 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ 4.0.0 org.logicng logicng - 1.3.1 + 1.4.0 jar LogicNG @@ -43,10 +43,11 @@ Christoph Zengler - christoph@zengler.eu + christoph@logicng.org Steffen Hildebrandt + steffen@logicng.org Martin Siegmund @@ -69,9 +70,9 @@ **/LogicNGPropositional*.java,**/LogicNGPseudoBoolean*.java - 4.7 - 0.7.9 - 4.3.0-SNAPSHOT + 4.7.1 + 0.8.0 + 4.3.0 4.12 2.8.0 @@ -255,11 +256,4 @@ - - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - diff --git a/src/main/java/org/logicng/bdds/BDDFactory.java b/src/main/java/org/logicng/bdds/BDDFactory.java new file mode 100644 index 00000000..8d61f116 --- /dev/null +++ b/src/main/java/org/logicng/bdds/BDDFactory.java @@ -0,0 +1,557 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +/*======================================================================== + Copyright (C) 1996-2002 by Jorn Lind-Nielsen + All rights reserved + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, reproduce, prepare derivative +works, distribute, and display this software and its documentation +for any purpose, provided that (1) the above copyright notice and +the following two paragraphs appear in all copies of the source code +and (2) redistributions, including without limitation binaries, +reproduce these notices in the supporting documentation. Substantial +modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided +that the new terms are clearly indicated in all files where they apply. + +IN NO EVENT SHALL JORN LIND-NIELSEN, OR DISTRIBUTORS OF THIS +SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS +SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE +ABOVE PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +JORN LIND-NIELSEN SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +========================================================================*/ + +package org.logicng.bdds; + +import org.logicng.bdds.datastructures.BDD; +import org.logicng.bdds.datastructures.BDDConstant; +import org.logicng.bdds.datastructures.BDDInnerNode; +import org.logicng.bdds.datastructures.BDDNode; +import org.logicng.bdds.jbuddy.BDDKernel; +import org.logicng.collections.LNGVector; +import org.logicng.datastructures.Assignment; +import org.logicng.formulas.Equivalence; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Implication; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Not; +import org.logicng.formulas.Variable; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.TreeMap; +import java.util.TreeSet; + +import static org.logicng.formulas.FType.AND; + +/** + * The factory for the jBuddy implementation. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDDFactory { + + private final BDDKernel kernel; + + private final FormulaFactory f; + private final SortedMap var2idx; + private final SortedMap idx2var; + + + /** + * Constructs a new jBuddy BDD factory. + * @param numNodes the initial number of nodes in the BDD + * @param cacheSize the cache size + * @param f the formula factory + */ + public BDDFactory(final int numNodes, final int cacheSize, final FormulaFactory f) { + this.f = f; + this.kernel = new BDDKernel(numNodes, cacheSize); + this.var2idx = new TreeMap<>(); + this.idx2var = new TreeMap<>(); + } + + /** + * Builds a BDD for a given formula. BDDs support all Boolean formula types but not pseudo-Boolean constraints. + * The reason is that before converting a formula to a BDD one must specify the number of variables. In case of + * pseudo-Boolean constraints this number depends on the translation of the constraint. Therefore the caller first + * has to transform any pseudo-Boolean constraints in their respective CNF representation before converting them + * to a BDD. + * @param formula the formula + * @return the top node of the BDD + */ + public BDD build(final Formula formula) { + return new BDD(buildRec(formula), this); + } + + /** + * Recursive build procedure for the BDD. + * @param formula the formula + * @return the BDD index + */ + private int buildRec(final Formula formula) { + switch (formula.type()) { + case FALSE: + return BDDKernel.BDD_FALSE; + case TRUE: + return BDDKernel.BDD_TRUE; + case LITERAL: + final Literal lit = (Literal) formula; + Integer idx = this.var2idx.get(lit.variable()); + if (idx == null) { + idx = this.var2idx.size(); + this.var2idx.put(lit.variable(), idx); + this.idx2var.put(idx, lit.variable()); + } + return lit.phase() ? this.kernel.ithVar(idx) : this.kernel.nithVar(idx); + case NOT: + final Not not = (Not) formula; + return this.kernel.addRef(this.kernel.not(buildRec(not.operand()))); + case IMPL: + final Implication impl = (Implication) formula; + return this.kernel.addRef(this.kernel.implication(buildRec(impl.left()), buildRec(impl.right()))); + case EQUIV: + final Equivalence equiv = (Equivalence) formula; + return this.kernel.addRef(this.kernel.equivalence(buildRec(equiv.left()), buildRec(equiv.right()))); + case AND: + case OR: + final Iterator it = formula.iterator(); + int res = buildRec(it.next()); + while (it.hasNext()) + res = formula.type() == AND + ? this.kernel.addRef(this.kernel.and(res, buildRec(it.next()))) + : this.kernel.addRef(this.kernel.or(res, buildRec(it.next()))); + return res; + case PBC: + return buildRec(formula.nnf()); + default: + throw new IllegalArgumentException("Unsupported operator for BDD generation: " + formula.type()); + } + } + + /** + * Sets the variable order for this BDD. This method must be called BEFORE the BDD is generated. + * @param varOrder the variable order + */ + public void setVariableOrder(final List varOrder) { + this.setVariableOrder(varOrder.toArray(new Variable[0])); + } + + /** + * Sets the variable order for this BDD. This method must be called BEFORE the BDD is generated. + * @param varOrder the variable order + */ + public void setVariableOrder(final LNGVector varOrder) { + this.setVariableOrder(varOrder.toArray()); + } + + /** + * Sets the variable order for this factory manually. In this case the number of variables has not to be set manually. + * @param varOrder the variable order. + */ + public void setVariableOrder(final Variable... varOrder) { + this.kernel.setNumberOfVars(varOrder.length); + for (final Variable lit : varOrder) { + final int idx = this.var2idx.size(); + this.var2idx.put(lit.variable(), idx); + this.idx2var.put(idx, lit.variable()); + } + } + + /** + * Sets the number of variables for this factory. + * @param num the number of variables + */ + public void setNumberOfVars(final int num) { + this.kernel.setNumberOfVars(num); + } + + /** + * Returns whether BDD m is a tautology. + * @param m the BDD to test for the tautology test (index of root node) + * @return {@code true} if m is a tautology, {@code false} else + */ + public boolean isTautology(final BDD m) { + return m.index() == 1; + } + + /** + * Returns whether BDD m is a contradiction. + * @param m the BDD to test for the contradiction test (index of root node) + * @return {@code true} if m is a contradiction, {@code false} else + */ + public boolean isContradiction(final BDD m) { + return m.index() == 0; + } + + /** + * Returns the model count of a given BDD. + * @param bdd the BDD + * @return the model count + */ + public BigDecimal modelCount(final BDD bdd) { + return this.kernel.satCount(bdd.index()); + } + + /** + * Returns the model count of a given BDD with a given number of unimportant variables. + * @param bdd the BDD + * @param unimportantVars the number of unimportant variables + * @return the model count + */ + public BigDecimal modelCount(final BDD bdd, final int unimportantVars) { + return modelCount(bdd).divide(BigDecimal.valueOf((int) Math.pow(2, unimportantVars))); + } + + /** + * Enumerates all models of a given BDD. + * @param bdd the BDD + * @return the list of all models + */ + public List enumerateAllModels(final BDD bdd) { + return enumerateAllModels(bdd, null); + } + + /** + * Enumerates all models of a given BDD wrt. a given set of variables. + * @param bdd the BDD + * @param variables the variables + * @return the list of all models + */ + public List enumerateAllModels(final BDD bdd, final Collection variables) { + final Set res = new HashSet<>(); + final List models = this.kernel.allSat(bdd.index()); + final SortedSet temp; + if (variables == null) + temp = new TreeSet<>(this.var2idx.values()); + else { + temp = new TreeSet<>(); + for (final Map.Entry e : this.var2idx.entrySet()) + if (variables.contains(e.getKey())) + temp.add(e.getValue()); + } + final int[] relevantIndices = new int[temp.size()]; + int count = 0; + for (final Integer i : temp) + relevantIndices[count++] = i; + for (final byte[] model : models) { + final List allAssignments = new LinkedList<>(); + generateAllModels(allAssignments, model, relevantIndices, 0); + res.addAll(allAssignments); + } + return new ArrayList<>(res); + } + + private void generateAllModels(final List assignments, final byte[] model, final int[] relevantIndices, final int position) { + if (position == relevantIndices.length) { + final Assignment assignment = new Assignment(); + for (final int i : relevantIndices) + if (model[i] == 0) + assignment.addLiteral(this.idx2var.get(i).negate()); + else + assignment.addLiteral(this.idx2var.get(i)); + assignments.add(assignment); + } else if (model[relevantIndices[position]] != -1) + generateAllModels(assignments, model, relevantIndices, position + 1); + else { + model[relevantIndices[position]] = 0; + generateAllModels(assignments, model, relevantIndices, position + 1); + model[relevantIndices[position]] = 1; + generateAllModels(assignments, model, relevantIndices, position + 1); + model[relevantIndices[position]] = -1; + } + } + + /** + * Returns a CNF formula for a given BDD. + * @param bdd the node + * @return the CNF for the formula represented by the BDD + */ + public Formula cnf(final BDD bdd) { + final List unsatPaths = this.kernel.allUnsat(bdd.index()); + final List clauses = new LinkedList<>(); + List literals; + for (final byte[] path : unsatPaths) { + literals = new LinkedList<>(); + for (int i = 0; i < path.length; i++) + if (path[i] == 0) + literals.add(this.idx2var.get(i)); + else if (path[i] == 1) + literals.add(this.idx2var.get(i).negate()); + clauses.add(this.f.or(literals)); + } + return this.f.and(clauses); + } + + /** + * Returns the number of clauses for the CNF formula of the given BDD. + * @param bdd the node + * @return the number of clauses for the CNF formula of the given BDD + */ + public BigDecimal numberOfClausesCNF(final BDD bdd) { + return this.kernel.pathCountZero(bdd.index()); + } + + /** + * Returns a DNF formula for a given BDD. + * @param bdd the BDD + * @return the DNF for the formula represented by the BDD + */ + public Formula dnf(final BDD bdd) { + final List ops = new LinkedList<>(); + for (final Assignment ass : this.enumerateAllModels(bdd)) + ops.add(ass.formula(this.f)); + return ops.isEmpty() ? this.f.falsum() : this.f.or(ops); + } + + /** + * Returns an arbitrary model for a given BDD or {@code null} if there is none. + * @param bdd the BDD + * @return an arbitrary model of the BDD + */ + public Assignment model(final BDD bdd) { + final int modelBDD = this.kernel.satOne(bdd.index()); + return createAssignment(modelBDD); + } + + /** + * Returns an arbitrary model of a given BDD or {@code null} which contains at least the given variables. If a variable + * is a don't care variable, it will be assigned with the given default value. + * @param bdd the BDD + * @param vars the set of variable which has to be contained in the model + * @param defaultValue the default value for don't care variables + * @return an arbitrary model of this BDD + */ + public Assignment model(final BDD bdd, final Collection vars, final boolean defaultValue) { + final int varBDD = build(this.f.and(vars)).index(); + final int pol = defaultValue ? BDDKernel.BDD_TRUE : BDDKernel.BDD_FALSE; + final int modelBDD = this.kernel.satOneSet(bdd.index(), varBDD, pol); + return createAssignment(modelBDD); + } + + /** + * Returns a full model in all variables for the given BDD. + * @param bdd the BDD + * @return a full model of this BDD + */ + public Assignment fullModel(final BDD bdd) { + final int modelBDD = this.kernel.fullSatOne(bdd.index()); + return createAssignment(modelBDD); + } + + /** + * Returns all the variables that a given BDD depends on. + * @param bdd the BDD + * @return all the variables that the BDD depends on + */ + public SortedSet support(final BDD bdd) { + final int supportBDD = this.kernel.support(bdd.index()); + final Assignment assignment = createAssignment(supportBDD); + assert assignment == null || assignment.negativeLiterals().isEmpty(); + return assignment == null ? new TreeSet() : new TreeSet<>(assignment.positiveLiterals()); + } + + /** + * Creates an assignment from a BDD. + * @param modelBDD the BDD + * @return the assignment + * @throws IllegalStateException if the BDD does not represent a unique model + */ + private Assignment createAssignment(final int modelBDD) { + if (modelBDD == BDDKernel.BDD_FALSE) + return null; + if (modelBDD == BDDKernel.BDD_TRUE) + return new Assignment(); + final List nodes = this.kernel.allNodes(modelBDD); + final Assignment assignment = new Assignment(); + for (final int[] node : nodes) { + final Variable variable = this.idx2var.get(node[1]); + if (node[2] == BDDKernel.BDD_FALSE) + assignment.addLiteral(variable); + else if (node[3] == BDDKernel.BDD_FALSE) + assignment.addLiteral(variable.negate()); + else + throw new IllegalStateException("Expected that the model BDD has one unique path through the BDD."); + } + return assignment; + } + + /** + * Returns how often each variable occurs in the given BDD. + * @param bdd the BDD + * @return how often each variable occurs in the BDD + */ + public SortedMap variableProfile(final BDD bdd) { + final int[] varProfile = this.kernel.varProfile(bdd.index()); + final SortedMap profile = new TreeMap<>(); + for (int i = 0; i < varProfile.length; i++) { + profile.put(this.idx2var.get(i), varProfile[i]); + } + return profile; + } + + /** + * Returns a LogicNG internal BDD data structure of a given BDD. + * @param bdd the BDD + * @return the BDD as LogicNG data structure + */ + public BDDNode toLngBdd(final int bdd) { + final BDDConstant falseNode = BDDConstant.getFalsumNode(this.f); + final BDDConstant trueNode = BDDConstant.getVerumNode(this.f); + if (bdd == BDDKernel.BDD_FALSE) + return falseNode; + if (bdd == BDDKernel.BDD_TRUE) + return trueNode; + final List nodes = this.kernel.allNodes(bdd); + final Map innerNodes = new HashMap<>(); + for (final int[] node : nodes) { + final int nodenum = node[0]; + final Variable variable = this.idx2var.get(node[1]); + final BDDNode lowNode = getInnerNode(node[2], falseNode, trueNode, innerNodes); + final BDDNode highNode = getInnerNode(node[3], falseNode, trueNode, innerNodes); + if (innerNodes.get(nodenum) == null) + innerNodes.put(nodenum, new BDDInnerNode(variable, lowNode, highNode)); + } + return innerNodes.get(bdd); + } + + /** + * Returns the internal nodes of a given BDD (for e.g. writing to a DOT file) + * @param bdd the BDD + * @return the internal nodes of the BDD + */ + public List getInternalNodes(final int bdd) { + final List result = new ArrayList<>(); + for (final int[] node : this.kernel.allNodes(bdd)) + result.add(new InternalBDDNode(node[0], this.idx2var.get(node[1]).name(), node[2], node[3])); + return result; + } + + private BDDNode getInnerNode(final int index, final BDDConstant falseNode, final BDDConstant trueNode, + final Map innerNodes) { + if (index == BDDKernel.BDD_FALSE) + return falseNode; + else if (index == BDDKernel.BDD_TRUE) + return trueNode; + else { + return innerNodes.get(index); + } + } + + /** + * Returns the BDD Kernel of this factory. The Kernel should only be accessed when you know, what you are doing. + * @return the BDD Kernel + */ + public BDDKernel underlyingKernel() { + return this.kernel; + } + + /** + * Returns the formula factory for this BDD factory. + * @return the formula factory + */ + public FormulaFactory getF() { + return this.f; + } + + /** + * A internal representation of BDD nodes. Only for internal usage. + */ + public static class InternalBDDNode { + private final int nodenum; + private final String label; + private final int low; + private final int high; + + /** + * Constructs a new internal BDD node. + * @param nodeNum the node number + * @param label the label + * @param low the low node number + * @param high the high node number + */ + private InternalBDDNode(final int nodeNum, final String label, final int low, final int high) { + this.nodenum = nodeNum; + this.label = label; + this.low = low; + this.high = high; + } + + /** + * Returns the node number. + * @return the node number + */ + public int nodenum() { + return this.nodenum; + } + + /** + * Returns the label. + * @return the label + */ + public String label() { + return this.label; + } + + /** + * Returns the low node number. + * @return the low node number + */ + public int low() { + return this.low; + } + + /** + * Returns the high node number. + * @return the high node number + */ + public int high() { + return this.high; + } + } +} diff --git a/src/main/java/org/logicng/bdds/datastructures/BDD.java b/src/main/java/org/logicng/bdds/datastructures/BDD.java new file mode 100644 index 00000000..ebfe2995 --- /dev/null +++ b/src/main/java/org/logicng/bdds/datastructures/BDD.java @@ -0,0 +1,331 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.datastructures; + +import org.logicng.bdds.BDDFactory; +import org.logicng.datastructures.Assignment; +import org.logicng.formulas.Formula; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Variable; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.SortedMap; +import java.util.SortedSet; + +/** + * The internal representation of a BDD. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDD { + + private final int index; + private final BDDFactory factory; + + /** + * Constructs a new BDD with a given index. + * @param index the index + * @param factory the factory of this BDD + */ + public BDD(final int index, final BDDFactory factory) { + this.index = index; + this.factory = factory; + } + + /** + * Returns the index of this BDD. + * @return the index of this BDD + */ + public int index() { + return this.index; + } + + /** + * Returns the factory of this BDD. + * @return the factory of this BDD + */ + public BDDFactory factory() { + return this.factory; + } + + /** + * Returns {@code true} if this BDD is a tautology, {@code false} otherwise. + * @return {@code true} if this BDD is a tautology, {@code false} otherwise + */ + public boolean isTautology() { + return this.factory.isTautology(this); + } + + /** + * Returns {@code true} if this BDD is a contradiction, {@code false} otherwise. + * @return {@code true} if this BDD is a contradiction, {@code false} otherwise + */ + public boolean isContradiction() { + return this.factory.isContradiction(this); + } + + /** + * Returns the model count of this BDD. + * @return the model count + */ + public BigDecimal modelCount() { + return this.factory.modelCount(this); + } + + /** + * Returns the model count of this BDD with a given number of unimportant variables. + * @param unimportantVars the number of unimportant variables + * @return the model count + */ + public BigDecimal modelCount(final int unimportantVars) { + return this.factory.modelCount(this, unimportantVars); + } + + /** + * Enumerates all models of this BDD. + * @return the list of all models + */ + public List enumerateAllModels() { + return enumerateAllModels((Collection) null); + } + + /** + * Enumerates all models of this BDD wrt. a given set of variables. + * @param variables the variables + * @return the list of all models + */ + public List enumerateAllModels(final Variable... variables) { + return this.enumerateAllModels(Arrays.asList(variables)); + } + + /** + * Enumerates all models of this BDD wrt. a given set of variables. + * @param variables the variables + * @return the list of all models + */ + public List enumerateAllModels(final Collection variables) { + return this.factory.enumerateAllModels(this, variables); + } + + /** + * Returns a CNF formula for this BDD. + * @return the CNF for the formula represented by this BDD + */ + public Formula cnf() { + return this.factory.cnf(this); + } + + /** + * Returns the number of clauses for the CNF formula of the BDD. + * @return the number of clauses for the CNF formula of the BDD + */ + public BigDecimal numberOfClausesCNF() { + return this.factory.numberOfClausesCNF(this); + } + + /** + * Returns a DNF formula for a this BDD. + * @return the DNF for the formula represented by this BDD + */ + public Formula dnf() { + return this.factory.dnf(this); + } + + /** + * Restricts the BDD. + * @param restriction the restriction + * @return the restricted BDD + */ + public BDD restrict(final Collection restriction) { + final BDD resBDD = this.factory.build(this.factory.getF().and(restriction)); + return new BDD(this.factory.underlyingKernel().restrict(index(), resBDD.index()), this.factory); + } + + /** + * Restricts the BDD. + * @param restriction the restriction + * @return the restricted BDD + */ + public BDD restrict(final Literal... restriction) { + return restrict(Arrays.asList(restriction)); + } + + /** + * Existential quantifier elimination for a given set of variables. + * @param variables the variables to eliminate + * @return the BDD with the eliminated variables + */ + public BDD exists(final Collection variables) { + final BDD resBDD = this.factory.build(this.factory.getF().and(variables)); + return new BDD(this.factory.underlyingKernel().exists(index(), resBDD.index()), this.factory); + } + + /** + * Existential quantifier elimination for a given set of variables. + * @param variables the variables to eliminate + * @return the BDD with the eliminated variables + */ + public BDD exists(final Variable... variables) { + return exists(Arrays.asList(variables)); + } + + /** + * Universal quantifier elimination for a given set of variables. + * @param variables the variables to eliminate + * @return the BDD with the eliminated variables + */ + public BDD forall(final Collection variables) { + final BDD resBDD = this.factory.build(this.factory.getF().and(variables)); + return new BDD(this.factory.underlyingKernel().forAll(index(), resBDD.index()), this.factory); + } + + /** + * Universal quantifier elimination for a given set of variables. + * @param variables the variables to eliminate + * @return the BDD with the eliminated variables + */ + public BDD forall(final Variable... variables) { + return forall(Arrays.asList(variables)); + } + + /** + * Returns an arbitrary model of this BDD or {@code null} if there is none. + * @return an arbitrary model of this BDD + */ + public Assignment model() { + return this.factory.model(this); + } + + /** + * Returns an arbitrary model of this BDD which contains at least the given variables or {@code null} if there is + * none. If a variable is a don't care variable, it will be assigned with the given default value. + * @param defaultValue the default value for don't care variables + * @param variables the set of variable which has to be contained in the model + * @return an arbitrary model of this BDD + */ + public Assignment model(final boolean defaultValue, final Collection variables) { + return this.factory.model(this, variables, defaultValue); + } + + /** + * Returns an arbitrary model of this BDD which contains at least the given variables or {@code null} if there is + * none. If a variable is a don't care variable, it will be assigned with the given default value. + * @param defaultValue the default value for don't care variables + * @param variables the set of variable which has to be contained in the model + * @return an arbitrary model of this BDD + */ + public Assignment model(final boolean defaultValue, final Variable... variables) { + return this.factory.model(this, Arrays.asList(variables), defaultValue); + } + + /** + * Returns a full model of this BDD or {@code null} if there is none.n the model + * @return an full model of this BDD + */ + public Assignment fullModel() { + return this.factory.fullModel(this); + } + + /** + * Returns the number of paths leading to the terminal 'one' node. + * @return the number of paths leading to the terminal 'one' node + */ + public BigDecimal pathCountOne() { + return this.factory.underlyingKernel().pathCountOne(this.index); + } + + /** + * Returns the number of paths leading to the terminal 'zero' node. + * @return the number of paths leading to the terminal 'zero' node + */ + public BigDecimal pathCountZero() { + return this.factory.underlyingKernel().pathCountZero(this.index); + } + + /** + * Returns all the variables this BDD depends on. + * @return all the variables that this BDD depends on + */ + public SortedSet support() { + return this.factory.support(this); + } + + /** + * Returns the number of distinct nodes for this BDD. + * @return the number of distinct nodes + */ + public int nodeCount() { + return this.factory.underlyingKernel().nodeCount(this.index); + } + + /** + * Returns how often each variable occurs in this BDD. + * @return how often each variable occurs in the BDD + */ + public SortedMap variableProfile() { + return this.factory.variableProfile(this); + } + + /** + * Returns a LogicNG internal BDD data structure of this BDD. + * @return the BDD as LogicNG data structure + */ + public BDDNode toLngBdd() { + return this.factory.toLngBdd(this.index); + } + + /** + * Returns the internal nodes of this BDD (e.g. for writing to a DOT file). + * @return the internal nodes of this BDD + */ + public List internalNodes() { + return this.factory.getInternalNodes(this.index); + } + + @Override + public int hashCode() { + return Objects.hash(this.index, this.factory); + } + + @Override + public boolean equals(final Object other) { + return this == other || other instanceof BDD + && this.index == ((BDD) other).index + && Objects.equals(this.factory, ((BDD) other).factory); + } + + @Override + public String toString() { + return "BDD{" + this.index + "}"; + } +} diff --git a/src/main/java/org/logicng/bdds/datastructures/BDDConstant.java b/src/main/java/org/logicng/bdds/datastructures/BDDConstant.java new file mode 100644 index 00000000..1bf41beb --- /dev/null +++ b/src/main/java/org/logicng/bdds/datastructures/BDDConstant.java @@ -0,0 +1,115 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.datastructures; + +import org.logicng.formulas.Constant; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +/** + * A terminal node in a BDD. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDDConstant implements BDDNode { + + private final Constant value; + + /** + * Private constructor. + * @param value the constant value + */ + private BDDConstant(final Constant value) { + this.value = value; + } + + /** + * Returns the terminal 0 node. + * @param f the formula factory + * @return the terminal 0 node + */ + public static BDDConstant getFalsumNode(final FormulaFactory f) { + return new BDDConstant(f.falsum()); + } + + /** + * Returns the terminal 1 node. + * @param f the formula factory + * @return the terminal 1 node + */ + public static BDDConstant getVerumNode(final FormulaFactory f) { + return new BDDConstant(f.verum()); + } + + @Override + public Formula label() { + return this.value; + } + + @Override + public boolean isInnerNode() { + return false; + } + + @Override + public BDDNode low() { + return null; + } + + @Override + public BDDNode high() { + return null; + } + + @Override + public Set nodes() { + return new HashSet(Collections.singletonList(this)); + } + + @Override + public int hashCode() { + return this.value.hashCode(); + } + + @Override + public boolean equals(final Object other) { + return this == other || other instanceof BDDConstant + && Objects.equals(this.value, ((BDDConstant) other).value); + } + + @Override + public String toString() { + return "<" + this.value + ">"; + } +} diff --git a/src/main/java/org/logicng/bdds/datastructures/BDDInnerNode.java b/src/main/java/org/logicng/bdds/datastructures/BDDInnerNode.java new file mode 100644 index 00000000..37adc54e --- /dev/null +++ b/src/main/java/org/logicng/bdds/datastructures/BDDInnerNode.java @@ -0,0 +1,111 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.datastructures; + +import org.logicng.formulas.Variable; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +/** + * A node in a BDD. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDDInnerNode implements BDDNode { + + private final Variable var; + private final BDDNode low; + private final BDDNode high; + + /** + * Constructor for a new inner BDD node holding a variable. + * @param var the variable + * @param low the low child node + * @param high the high child node + */ + public BDDInnerNode(final Variable var, final BDDNode low, final BDDNode high) { + this.var = var; + this.low = low; + this.high = high; + } + + @Override + public Variable label() { + return this.var; + } + + @Override + public boolean isInnerNode() { + return true; + } + + @Override + public BDDNode low() { + return this.low; + } + + @Override + public BDDNode high() { + return this.high; + } + + @Override + public Set nodes() { + final Set res = new HashSet(Collections.singleton(this)); + res.addAll(this.low.nodes()); + res.addAll(this.high.nodes()); + return res; + } + + @Override + public int hashCode() { + return Objects.hash(this.var, this.low, this.high); + } + + @Override + public boolean equals(final Object other) { + if (this == other) + return true; + if (other instanceof BDDInnerNode) { + final BDDInnerNode o = (BDDInnerNode) other; + return Objects.equals(this.var, o.var) + && Objects.equals(this.low, o.low) + && Objects.equals(this.high, o.high); + } + return false; + } + + @Override + public String toString() { + return "<" + this.var + " | low=" + this.low + " high=" + this.high + ">"; + } +} diff --git a/src/main/java/org/logicng/bdds/datastructures/BDDNode.java b/src/main/java/org/logicng/bdds/datastructures/BDDNode.java new file mode 100644 index 00000000..783d899d --- /dev/null +++ b/src/main/java/org/logicng/bdds/datastructures/BDDNode.java @@ -0,0 +1,71 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.datastructures; + +import org.logicng.formulas.Formula; + +import java.util.Set; + +/** + * A node in a BDD. + * @version 1.4.0 + * @since 1.4.0 + */ +public interface BDDNode { + + /** + * Returns the label of the node. This can either be a variable or a constant. + * @return the label of the node + */ + Formula label(); + + /** + * Returns {@code true} if this node is an inner node, {@code false} if it is a terminal node. + * @return {@code true} if this node is an inner node, {@code false} if it is a terminal node + */ + boolean isInnerNode(); + + /** + * Returns the node of the low edge or {@code null} for a terminal node. + * @return the node of the low edge + */ + BDDNode low(); + + /** + * Returns the node of the high edge or {@code null} for a terminal node. + * @return the node of the high edge + */ + BDDNode high(); + + /** + * Returns all nodes of the sub-BDD starting at this node. + * @return all nodes of the sub-BDD starting at this node + */ + Set nodes(); +} diff --git a/src/main/java/org/logicng/bdds/io/BDDDotFileWriter.java b/src/main/java/org/logicng/bdds/io/BDDDotFileWriter.java new file mode 100644 index 00000000..217c659d --- /dev/null +++ b/src/main/java/org/logicng/bdds/io/BDDDotFileWriter.java @@ -0,0 +1,101 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.io; + +import org.logicng.bdds.BDDFactory; +import org.logicng.bdds.datastructures.BDD; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.nio.charset.Charset; + +/** + * A dot file writer for BDDs. Writes the internal data structure of a BDD to a dot file. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDDDotFileWriter { + + /** + * Private constructor. + */ + private BDDDotFileWriter() { + // Intentionally left empty. + } + + /** + * Writes a given BDD as a dot file. + * @param fileName the file name of the dot file to write + * @param bdd the BDD + * @throws IOException if there was a problem writing the file + */ + public static void write(final String fileName, final BDD bdd) throws IOException { + write(new File(fileName.endsWith(".dot") ? fileName : fileName + ".dot"), bdd); + } + + /** + * Writes a given formula's internal data structure as a dot file. + * @param file the file of the dot file to write + * @param bdd the BDD + * @throws IOException if there was a problem writing the file + */ + public static void write(final File file, final BDD bdd) throws IOException { + final StringBuilder sb = new StringBuilder("digraph G {\n"); + if (!bdd.isContradiction()) { + sb.append(" const_true [shape=box, label=\"$true\", style = bold, color = darkgreen];\n"); + } + if (!bdd.isTautology()) { + sb.append(" const_false [shape=box, label=\"$false\", style = bold, color = red];\n"); + } + for (final BDDFactory.InternalBDDNode internalNode : bdd.internalNodes()) { + sb.append(String.format(" id_%d [shape=ellipse, label=\"%s\"];%n", internalNode.nodenum(), internalNode.label())); + sb.append(String.format(" id_%d -> %s [style = dotted, color = red];%n", internalNode.nodenum(), getNodeString(internalNode.low()))); + sb.append(String.format(" id_%d -> %s [color = darkgreen];%n", internalNode.nodenum(), getNodeString(internalNode.high()))); + } + sb.append("}\n"); + try (final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), Charset.forName("UTF-8")))) { + writer.append(sb); + writer.flush(); + } + } + + private static String getNodeString(final int i) { + switch (i) { + case 0: + return "const_false"; + case 1: + return "const_true"; + default: + return "id_" + i; + } + } +} diff --git a/src/main/java/org/logicng/bdds/jbuddy/BDDCache.java b/src/main/java/org/logicng/bdds/jbuddy/BDDCache.java new file mode 100644 index 00000000..839722e5 --- /dev/null +++ b/src/main/java/org/logicng/bdds/jbuddy/BDDCache.java @@ -0,0 +1,106 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +/*======================================================================== + Copyright (C) 1996-2002 by Jorn Lind-Nielsen + All rights reserved + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, reproduce, prepare derivative +works, distribute, and display this software and its documentation +for any purpose, provided that (1) the above copyright notice and +the following two paragraphs appear in all copies of the source code +and (2) redistributions, including without limitation binaries, +reproduce these notices in the supporting documentation. Substantial +modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided +that the new terms are clearly indicated in all files where they apply. + +IN NO EVENT SHALL JORN LIND-NIELSEN, OR DISTRIBUTORS OF THIS +SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS +SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE +ABOVE PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +JORN LIND-NIELSEN SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +========================================================================*/ + +package org.logicng.bdds.jbuddy; + +/** + * BDD Cache. + * @version 1.4.0 + * @since 1.4.0 + */ +final class BDDCache { + private BDDCacheEntry[] table; + + /** + * Constructs a new BDD cache of a given size (number of entries in the cache). + * @param cs the cache size + */ + BDDCache(final int cs) { + resize(cs); + } + + /** + * Resizes the cache to a new number of entries. The old cache entries are removed in this process. + * @param ns the new number of entries + */ + private void resize(final int ns) { + final int size = BDDPrime.primeGTE(ns); + this.table = new BDDCacheEntry[size]; + for (int n = 0; n < size; n++) + this.table[n] = new BDDCacheEntry(); + } + + /** + * Resets (clears) the cache. + */ + void reset() { + for (final BDDCacheEntry ce : this.table) + ce.reset(); + } + + /** + * Looks up a given hash value in the cache and returns the respective cache entry. + *

+ * The return value is guaranteed to be non-null since every entry in the cache is always a {@link BDDCacheEntry} + * object. + * @param hash the hash value. + * @return the respective entry in the cache + */ + BDDCacheEntry lookup(final int hash) { + return this.table[Math.abs(hash % this.table.length)]; + } +} diff --git a/src/main/java/org/logicng/bdds/jbuddy/BDDCacheEntry.java b/src/main/java/org/logicng/bdds/jbuddy/BDDCacheEntry.java new file mode 100644 index 00000000..9e0e8ed5 --- /dev/null +++ b/src/main/java/org/logicng/bdds/jbuddy/BDDCacheEntry.java @@ -0,0 +1,87 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +/*======================================================================== + Copyright (C) 1996-2002 by Jorn Lind-Nielsen + All rights reserved + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, reproduce, prepare derivative +works, distribute, and display this software and its documentation +for any purpose, provided that (1) the above copyright notice and +the following two paragraphs appear in all copies of the source code +and (2) redistributions, including without limitation binaries, +reproduce these notices in the supporting documentation. Substantial +modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided +that the new terms are clearly indicated in all files where they apply. + +IN NO EVENT SHALL JORN LIND-NIELSEN, OR DISTRIBUTORS OF THIS +SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS +SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE +ABOVE PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +JORN LIND-NIELSEN SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +========================================================================*/ + +package org.logicng.bdds.jbuddy; + +import java.math.BigDecimal; + +/** + * An entry in the BDD cache. + * @version 1.4.0 + * @since 1.4.0 + */ +final class BDDCacheEntry { + int a; + int b; + int c; + BigDecimal bdres; + int res; + + /** + * Constructs a new BDD cache entry. + */ + BDDCacheEntry() { + this.reset(); + } + + /** + * Resets this BDD cache entry. + */ + void reset() { + this.a = -1; + } +} diff --git a/src/main/java/org/logicng/bdds/jbuddy/BDDKernel.java b/src/main/java/org/logicng/bdds/jbuddy/BDDKernel.java new file mode 100644 index 00000000..7d3e0dd2 --- /dev/null +++ b/src/main/java/org/logicng/bdds/jbuddy/BDDKernel.java @@ -0,0 +1,1258 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +/*======================================================================== + Copyright (C) 1996-2002 by Jorn Lind-Nielsen + All rights reserved + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, reproduce, prepare derivative +works, distribute, and display this software and its documentation +for any purpose, provided that (1) the above copyright notice and +the following two paragraphs appear in all copies of the source code +and (2) redistributions, including without limitation binaries, +reproduce these notices in the supporting documentation. Substantial +modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided +that the new terms are clearly indicated in all files where they apply. + +IN NO EVENT SHALL JORN LIND-NIELSEN, OR DISTRIBUTORS OF THIS +SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS +SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE +ABOVE PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +JORN LIND-NIELSEN SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +========================================================================*/ + +package org.logicng.bdds.jbuddy; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +/** + * The jBuddy kernel. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDDKernel { + + public static final int BDD_TRUE = 1; + public static final int BDD_FALSE = 0; + + private static final int MAXVAR = 0x1FFFFF; + private static final int MAXREF = 0x3FF; + private static final int MARKON = 0x200000; + private static final int MARKOFF = 0x1FFFFF; + + private byte[] allunsatProfile; + + private enum Operand { + AND(0, new int[]{0, 0, 0, 1}), + OR(2, new int[]{0, 1, 1, 1}), + IMP(5, new int[]{1, 1, 0, 1}), + EQUIV(6, new int[]{1, 0, 0, 1}), + NOT(10, new int[]{1, 1, 0, 0}); + + private final int v; + private final int[] tt; + + Operand(final int value, final int[] truthTable) { + this.v = value; + this.tt = truthTable; + } + } + + private static final int CACHEID_RESTRICT = 0x1; + private static final int CACHEID_SATCOU = 0x2; + private static final int CACHEID_PATHCOU_ONE = 0x4; + private static final int CACHEID_PATHCOU_ZERO = 0x8; + private static final int CACHEID_FORALL = 0x1; + + private BddNode[] nodes; // All of the bdd nodes + private int[] vars; // Set of defined BDD variables + private final int minfreenodes; // Minimal % of nodes that has to be left after a garbage collection + private int gbcollectnum; // Number of garbage collections + private final int cachesize; // Size of the operator caches + private int nodesize; // Number of allocated nodes + private final int maxnodeincrease; // Max. # of nodes used to inc. table + private int freepos; // First free node + private int freenum; // Number of free nodes + private long produced; // Number of new nodes ever produced + private int varnum; // Number of defined BDD variables + private int[] refstack; // Internal node reference stack + private int refstacktop; // Internal node reference stack top + private int[] level2var; // Level -> variable table + + private int[] quantvarset; // Current variable set for quant. + private int quantvarsetID; // Current id used in quantvarset + private int quantlast; // Current last variable to be quant. + private int supportID; // Current ID (true value) for support + private int supportMax; // Max. used level in support calc. + private int[] supportSet; // The found support set + + private BDDCache applycache; // Cache for apply results + private BDDCache itecache; // Cache for ITE results + private BDDCache quantcache; // Cache for exist/forall results + private BDDCache appexcache; // Cache for appex/appall results + private BDDCache replacecache; // Cache for replace results + private BDDCache misccache; // Cache for other results + + /** + * Constructor for the BDD kernel. + * @param initialSize the initial number of nodes in the nodetable + * @param cs the fixed size of the internal caches + */ + public BDDKernel(final int initialSize, final int cs) { + this.nodesize = BDDPrime.primeGTE(initialSize); + this.nodes = new BddNode[this.nodesize]; + this.minfreenodes = 20; + for (int n = 0; n < this.nodesize; n++) { + this.nodes[n] = new BddNode(); + this.nodes[n].refcou = 0; + this.nodes[n].low = -1; + this.nodes[n].hash = 0; + this.nodes[n].level = 0; + this.nodes[n].next = n + 1; + } + this.nodes[this.nodesize - 1].next = 0; + this.nodes[0].refcou = MAXREF; + this.nodes[1].refcou = MAXREF; + this.nodes[0].low = 0; + this.nodes[0].high = 0; + this.nodes[1].low = 1; + this.nodes[1].high = 1; + initOperators(cs); + this.freepos = 2; + this.freenum = this.nodesize - 2; + this.varnum = 0; + this.gbcollectnum = 0; + this.cachesize = cs; + this.maxnodeincrease = 50000; + // bdd_fdd_init(); + } + + /** + * Sets the number of variables to use. It may be called more than one time, but only + * to increase the number of variables. + * @param num the number of variables to use + */ + public void setNumberOfVars(final int num) { + if (this.varnum != 0) + throw new UnsupportedOperationException("Variable number is already set. Resetting it is not supported"); + if (num < 1 || num > MAXVAR) + throw new IllegalArgumentException("Invalid variable number: " + num); + this.vars = new int[num * 2]; + this.level2var = new int[num + 1]; + this.refstack = new int[num * 2 + 4]; + this.refstacktop = 0; + while (this.varnum < num) { + this.vars[this.varnum * 2] = pushRef(makeNode(this.varnum, 0, 1)); + this.vars[this.varnum * 2 + 1] = makeNode(this.varnum, 1, 0); + popref(1); + this.nodes[this.vars[this.varnum * 2]].refcou = MAXREF; + this.nodes[this.vars[this.varnum * 2 + 1]].refcou = MAXREF; + this.level2var[this.varnum] = this.varnum; + this.varnum++; + } + this.nodes[0].level = num; + this.nodes[1].level = num; + this.level2var[num] = num; + varResize(); + } + + /** + * Returns a BDD representing the i-th variable (one node with the children true and false). + * @param i the index i + * @return the BDD representing the i-th variable + * @throws IllegalArgumentException if the index is not within the range of variables + */ + public int ithVar(final int i) { + if (i < 0 || i >= this.varnum) + throw new IllegalArgumentException("Illegal variable number: " + i); + return this.vars[i * 2]; + } + + /** + * Returns a BDD representing the negation of the i-th variable (one node with the children true and false). + * @param i the index i + * @return the BDD representing the negated i-th variable + * @throws IllegalArgumentException if the index is not within the range of variables + */ + public int nithVar(final int i) { + if (i < 0 || i >= this.varnum) + throw new IllegalArgumentException("Illegal variable number: " + i); + return this.vars[i * 2 + 1]; + } + + /** + * Returns the variable index labeling the given root node. + * @param root the root node of the BDD + * @return the variable index + */ + public int bddVar(final int root) { + if (root < 2) + throw new IllegalArgumentException("Illegal node number: " + root); + return (this.level2var[level(root)]); + } + + /** + * Returns the false branch of the given root node. + * @param root the root node of the BDD + * @return the false branch + */ + public int bddLow(final int root) { + if (root < 2) + throw new IllegalArgumentException("Illegal node number: " + root); + return (low(root)); + } + + /** + * Returns the true branch of the given root node. + * @param root the root node of the BDD + * @return the true branch + */ + public int bddHigh(final int root) { + if (root < 2) + throw new IllegalArgumentException("Illegal node number: " + root); + return (high(root)); + } + + /** + * Returns the conjunction of two BDDs. + * @param l the first BDD + * @param r the second BDD + * @return the conjunction of the two BDDs + */ + public int and(final int l, final int r) { + return apply(l, r, Operand.AND); + } + + /** + * Returns the disjunction of two BDDs. + * @param l the first BDD + * @param r the second BDD + * @return the disjunction of the two BDDs + */ + public int or(final int l, final int r) { + return apply(l, r, Operand.OR); + } + + /** + * Returns the implication of two BDDs. + * @param l the first BDD + * @param r the second BDD + * @return the implication of the two BDDs + */ + public int implication(final int l, final int r) { + return apply(l, r, Operand.IMP); + } + + /** + * Returns the equivalence of two BDDs. + * @param l the first BDD + * @param r the second BDD + * @return the equivalence of the two BDDs + */ + public int equivalence(final int l, final int r) { + return apply(l, r, Operand.EQUIV); + } + + private int apply(final int l, final int r, final Operand op) { + final int res; + initRef(); + res = applyRec(l, r, op); + return res; + } + + private int applyRec(final int l, final int r, final Operand op) { + final int res; + switch (op) { + case AND: + if (l == r) + return l; + if (isZero(l) || isZero(r)) + return 0; + if (isOne(l)) + return r; + if (isOne(r)) + return l; + break; + case OR: + if (l == r) + return l; + if (isOne(l) || isOne(r)) + return 1; + if (isZero(l)) + return r; + if (isZero(r)) + return l; + break; + case IMP: + if (isZero(l)) + return 1; + if (isOne(l)) + return r; + if (isOne(r)) + return 1; + break; + } + if (isConst(l) && isConst(r)) + res = op.tt[l << 1 | r]; + else { + final BDDCacheEntry entry = this.applycache.lookup(triple(l, r, op.v)); + if (entry.a == l && entry.b == r && entry.c == op.v) + return entry.res; + if (level(l) == level(r)) { + pushRef(applyRec(low(l), low(r), op)); + pushRef(applyRec(high(l), high(r), op)); + res = makeNode(level(l), readRef(2), readRef(1)); + } else if (level(l) < level(r)) { + pushRef(applyRec(low(l), r, op)); + pushRef(applyRec(high(l), r, op)); + res = makeNode(level(l), readRef(2), readRef(1)); + } else { + pushRef(applyRec(l, low(r), op)); + pushRef(applyRec(l, high(r), op)); + res = makeNode(level(r), readRef(2), readRef(1)); + } + popref(2); + entry.a = l; + entry.b = r; + entry.c = op.v; + entry.res = res; + } + return res; + } + + /** + * Returns the negation of a BDD. + * @param r the BDD + * @return the negation of the BDD + */ + public int not(final int r) { + final int res; + initRef(); + res = notRec(r); + return res; + } + + private int notRec(final int r) { + if (isZero(r)) + return BDDKernel.BDD_TRUE; + if (isOne(r)) + return BDDKernel.BDD_FALSE; + final BDDCacheEntry entry = this.applycache.lookup(r); + if (entry.a == r && entry.c == Operand.NOT.v) + return entry.res; + pushRef(notRec(low(r))); + pushRef(notRec(high(r))); + final int res = makeNode(level(r), readRef(2), readRef(1)); + popref(2); + entry.a = r; + entry.c = Operand.NOT.v; + entry.res = res; + return res; + } + + /** + * Adds a reference for a given node. Reference counting is done on externally referenced nodes only and the count for + * a specific node {@code r} can and must be increased using this function to avoid loosing the node in the next + * garbage collection. + * @param root the node + * @return return the node + * @throws IllegalArgumentException if the root node was invalid + */ + public int addRef(final int root) { + if (root < 2) + return root; + if (root >= this.nodesize) + throw new IllegalArgumentException("Not a valid BDD root node: " + root); + if (low(root) == -1) + throw new IllegalArgumentException("Not a valid BDD root node: " + root); + incRef(root); + return root; + } + + /** + * Deletes a reference for a given node. + * @param root the node + * @throws IllegalArgumentException if the root node was invalid + */ + private void delRef(final int root) { + if (root < 2) + return; + if (root >= this.nodesize) + throw new IllegalStateException("Cannot dereference a variable > varnum"); + if (this.low(root) == -1) + throw new IllegalStateException("Cannot dereference variable -1"); + if (!this.hasref(root)) + throw new IllegalStateException("Cannot dereference a variable which has no reference"); + this.decRef(root); + } + + private void decRef(final int n) { + if (this.nodes[n].refcou != MAXREF && this.nodes[n].refcou > 0) + this.nodes[n].refcou--; + } + + private void incRef(final int n) { + if (this.nodes[n].refcou < MAXREF) + this.nodes[n].refcou++; + } + + /** + * Returns all nodes for a given root node in their internal representation. The internal representation is stored + * in an array: {@code [node number, variable, low, high]} + * @param r the BDD root node + * @return all Nodes in their internal representation + */ + public List allNodes(final int r) { + final List result = new ArrayList<>(); + if (r < 2) + return result; + mark(r); + for (int n = 0; n < this.nodesize; n++) { + if ((level(n) & MARKON) != 0) { + final BddNode node = this.nodes[n]; + node.level &= MARKOFF; + result.add(new int[]{n, this.level2var[node.level], node.low, node.high}); + } + } + return result; + } + + private int makeNode(final int level, final int low, final int high) { + final BddNode node; + if (low == high) + return low; + int hash = nodehash(level, low, high); + int res = this.nodes[hash].hash; + while (res != 0) { + if (level(res) == level && low(res) == low && high(res) == high) + return res; + res = this.nodes[res].next; + } + if (this.freepos == 0) { + gbc(); + if ((this.freenum * 100) / this.nodesize <= this.minfreenodes) { + nodeResize(); + hash = nodehash(level, low, high); + } + if (this.freepos == 0) + throw new IllegalStateException("Cannot allocate more space for more nodes."); + } + res = this.freepos; + this.freepos = this.nodes[this.freepos].next; + this.freenum--; + this.produced++; + node = this.nodes[res]; + node.level = level; + node.low = low; + node.high = high; + node.next = this.nodes[hash].hash; + this.nodes[hash].hash = res; + return res; + } + + private void unmark(final int i) { + if (i < 2) + return; + final BddNode node = this.nodes[i]; + if (!markedNode(node) || node.low == -1) + return; + unmarkNode(node); + unmark(node.low); + unmark(node.high); + } + + private int markCount(final int i) { + if (i < 2) + return 0; + final BddNode node = this.nodes[i]; + if (markedNode(node) || node.low == -1) + return 0; + setMarkNode(node); + int count = 1; + count += markCount(node.low); + count += markCount(node.high); + return count; + } + + private void gbc() { + int r; + for (r = 0; r < this.refstacktop; r++) + mark(this.refstack[r]); + for (int n = 0; n < this.nodesize; n++) { + if (this.nodes[n].refcou > 0) + mark(n); + this.nodes[n].hash = 0; + } + this.freepos = 0; + this.freenum = 0; + for (int n = this.nodesize - 1; n >= 2; n--) { + final BddNode node = this.nodes[n]; + if ((node.level & MARKON) != 0 && node.low != -1) { + node.level &= MARKOFF; + final int hash = nodehash(node.level, node.low, node.high); + node.next = this.nodes[hash].hash; + this.nodes[hash].hash = n; + } else { + node.low = -1; + node.next = this.freepos; + this.freepos = n; + this.freenum++; + } + } + resetCaches(); + this.gbcollectnum++; + } + + private void gbcRehash() { + this.freepos = 0; + this.freenum = 0; + for (int n = this.nodesize - 1; n >= 2; n--) { + final BddNode node = this.nodes[n]; + if (node.low != -1) { + final int hash = nodehash(node.level, node.low, node.high); + node.next = this.nodes[hash].hash; + this.nodes[hash].hash = n; + } else { + node.next = this.freepos; + this.freepos = n; + this.freenum++; + } + } + } + + private void mark(final int i) { + if (i < 2) + return; + if ((level(i) & MARKON) != 0 || low(i) == -1) + return; + this.nodes[i].level |= MARKON; + mark(low(i)); + mark(high(i)); + } + + private void nodeResize() { + final int oldsize = this.nodesize; + int n; + this.nodesize = this.nodesize << 1; + if (this.nodesize > oldsize + this.maxnodeincrease) + this.nodesize = oldsize + this.maxnodeincrease; + this.nodesize = BDDPrime.primeLTE(this.nodesize); + final BddNode[] newnodes = new BddNode[this.nodesize]; + System.arraycopy(this.nodes, 0, newnodes, 0, this.nodes.length); + for (int i = oldsize; i < newnodes.length; i++) + newnodes[i] = new BddNode(); + this.nodes = newnodes; + for (n = 0; n < oldsize; n++) + this.nodes[n].hash = 0; + for (n = oldsize; n < this.nodesize; n++) { + final BddNode nn = this.nodes[n]; + nn.refcou = 0; + nn.hash = 0; + nn.level = 0; + nn.low = -1; + nn.next = n + 1; + } + this.nodes[this.nodesize - 1].next = this.freepos; + this.freepos = oldsize; + this.freenum += this.nodesize - oldsize; + gbcRehash(); + } + + private void initRef() { + this.refstacktop = 0; + } + + private int pushRef(final int a) { + this.refstack[this.refstacktop++] = a; + return a; + } + + private int readRef(final int a) { + return this.refstack[this.refstacktop - a]; + } + + private void popref(final int a) { + this.refstacktop -= a; + } + + private boolean hasref(final int n) { + return this.nodes[n].refcou > 0; + } + + private boolean isConst(final int a) { + return a < 2; + } + + private boolean isOne(final int a) { + return a == 1; + } + + private boolean isZero(final int a) { + return a == 0; + } + + private int level(final int a) { + return this.nodes[a].level; + } + + private int low(final int a) { + return this.nodes[a].low; + } + + private int high(final int a) { + return this.nodes[a].high; + } + + private void setMarkNode(final BddNode p) { + p.level |= MARKON; + } + + private void unmarkNode(final BddNode p) { + p.level &= MARKOFF; + } + + private boolean markedNode(final BddNode p) { + return (p.level & MARKON) != 0; + } + + private int nodehash(final int lvl, final int l, final int h) { + return Math.abs(triple(lvl, l, h) % this.nodesize); + } + + private int pair(final int a, final int b) { + return (a + b) * (a + b + 1) / 2 + a; + } + + private int triple(final int a, final int b, final int c) { + return pair(c, pair(a, b)); + } + + private void initOperators(final int cachesize) { + this.applycache = new BDDCache(cachesize); + this.itecache = new BDDCache(cachesize); + this.quantcache = new BDDCache(cachesize); + this.appexcache = new BDDCache(cachesize); + this.replacecache = new BDDCache(cachesize); + this.misccache = new BDDCache(cachesize); + this.quantvarsetID = 0; + this.quantvarset = null; + this.supportSet = null; + } + + private void resetCaches() { + this.applycache.reset(); + this.itecache.reset(); + this.quantcache.reset(); + this.appexcache.reset(); + this.replacecache.reset(); + this.misccache.reset(); + } + + private void varResize() { + this.quantvarset = new int[this.varnum]; + this.quantvarsetID = 0; + } + + /** + * Restricts the variables in the BDD {@code r} to constants true or false. The restriction is submitted in the BDD + * {@code var}. + * @param r the BDD to be restricted + * @param var the variable mapping as a BDD + * @return the restricted BDD + */ + public int restrict(final int r, final int var) { + final int res; + if (var < 2) + return r; + varset2svartable(var); + initRef(); + res = restrictRec(r, (var << 3) | CACHEID_RESTRICT); + return res; + } + + private int restrictRec(final int r, final int miscid) { + final int res; + if (isConst(r) || level(r) > this.quantlast) + return r; + final BDDCacheEntry entry = this.misccache.lookup(pair(r, miscid)); + if (entry.a == r && entry.c == miscid) + return entry.res; + if (insvarset(level(r))) { + if (this.quantvarset[level(r)] > 0) + res = restrictRec(high(r), miscid); + else + res = restrictRec(low(r), miscid); + } else { + pushRef(restrictRec(low(r), miscid)); + pushRef(restrictRec(high(r), miscid)); + res = makeNode(level(r), readRef(2), readRef(1)); + popref(2); + } + entry.a = r; + entry.c = miscid; + entry.res = res; + return res; + } + + /** + * Existential quantifier elimination for the variables in {@code var}. + * @param r the BDD root node + * @param var the variables to eliminate + * @return the BDD with the eliminated variables + */ + public int exists(final int r, final int var) { + final int res; + if (var < 2) + return r; + varset2vartable(var); + initRef(); + res = quantRec(r, Operand.OR, var << 3); + return res; + } + + /** + * Universal quantifier elimination for the variables in {@code var}. + * @param r the BDD root node + * @param var the variables to eliminate + * @return the BDD with the eliminated variables + */ + public int forAll(final int r, final int var) { + final int res; + if (var < 2) + return r; + varset2vartable(var); + initRef(); + res = quantRec(r, Operand.AND, (var << 3) | CACHEID_FORALL); + return res; + } + + private int quantRec(final int r, final Operand op, final int quantid) { + final int res; + if (r < 2 || level(r) > this.quantlast) + return r; + final BDDCacheEntry entry = this.quantcache.lookup(r); + if (entry.a == r && entry.c == quantid) + return entry.res; + pushRef(quantRec(low(r), op, quantid)); + pushRef(quantRec(high(r), op, quantid)); + if (invarset(level(r))) + res = applyRec(readRef(2), readRef(1), op); + else + res = makeNode(level(r), readRef(2), readRef(1)); + popref(2); + entry.a = r; + entry.c = quantid; + entry.res = res; + return res; + } + + /** + * Finds one satisfying variable assignment and returns it as BDD. + * @param r the BDD root node + * @return the satisfying variable assignment of the BDD as a BDD itself + */ + public int satOne(final int r) { + if (r < 2) + return r; + initRef(); + return satOneRec(r); + } + + private int satOneRec(final int r) { + if (isConst(r)) + return r; + if (isZero(low(r))) { + final int res = satOneRec(high(r)); + return pushRef(makeNode(level(r), BDDKernel.BDD_FALSE, res)); + } else { + final int res = satOneRec(low(r)); + return pushRef(makeNode(level(r), res, BDDKernel.BDD_FALSE)); + } + } + + /** + * Returns an arbitrary model for a given BDD or {@code null} which contains at least the given variables. If a variable + * is a don't care variable, it will be assigned with the given default value. + * @param r the BDD root node + * @param var the set of variable which has to be contained in the model as a BDD + * @param pol the default value for don't care variables as a BDD + * @return an arbitrary model of this BDD + */ + public int satOneSet(final int r, final int var, final int pol) { + if (isZero(r)) + return r; + if (!isConst(pol)) + throw new IllegalArgumentException("polarity for satOneSet must be a constant"); + initRef(); + return satOneSetRec(r, var, pol); + } + + private int satOneSetRec(final int r, final int var, final int satPolarity) { + if (isConst(r) && isConst(var)) + return r; + if (level(r) < level(var)) { + if (isZero(low(r))) { + final int res = satOneSetRec(high(r), var, satPolarity); + return pushRef(makeNode(level(r), BDDKernel.BDD_FALSE, res)); + } else { + final int res = satOneSetRec(low(r), var, satPolarity); + return pushRef(makeNode(level(r), res, BDDKernel.BDD_FALSE)); + } + } else if (level(var) < level(r)) { + final int res = satOneSetRec(r, high(var), satPolarity); + if (satPolarity == BDDKernel.BDD_TRUE) + return pushRef(makeNode(level(var), BDDKernel.BDD_FALSE, res)); + else + return pushRef(makeNode(level(var), res, BDDKernel.BDD_FALSE)); + } else { + if (isZero(low(r))) { + final int res = satOneSetRec(high(r), high(var), satPolarity); + return pushRef(makeNode(level(r), BDDKernel.BDD_FALSE, res)); + } else { + final int res = satOneSetRec(low(r), high(var), satPolarity); + return pushRef(makeNode(level(r), res, BDDKernel.BDD_FALSE)); + } + } + } + + /** + * Returns a full model in all variables for the given BDD. + * @param r the BDD root node + * @return a full model of this BDD + */ + public int fullSatOne(final int r) { + if (r == 0) + return 0; + initRef(); + int res = fullSatOneRec(r); + for (int v = level(r) - 1; v >= 0; v--) + res = pushRef(makeNode(v, res, 0)); + return res; + } + + private int fullSatOneRec(final int r) { + if (r < 2) + return r; + if (low(r) != 0) { + int res = fullSatOneRec(low(r)); + for (int v = level(low(r)) - 1; v > level(r); v--) + res = pushRef(makeNode(v, res, 0)); + return pushRef(makeNode(level(r), res, 0)); + } else { + int res = fullSatOneRec(high(r)); + for (int v = level(high(r)) - 1; v > level(r); v--) + res = pushRef(makeNode(v, res, 0)); + return pushRef(makeNode(level(r), 0, res)); + } + } + + /** + * Returns all models for a given BDD. + * @param r the BDD root node + * @return all models for the BDD + */ + public List allSat(final int r) { + final byte[] allsatProfile = new byte[this.varnum]; + for (int v = level(r) - 1; v >= 0; --v) + allsatProfile[this.level2var[v]] = -1; + initRef(); + final List allSat = new LinkedList<>(); + allSatRec(r, allSat, allsatProfile); + return allSat; + } + + private void allSatRec(final int r, final List models, final byte[] allsatProfile) { + if (isOne(r)) { + models.add(Arrays.copyOf(allsatProfile, allsatProfile.length)); + return; + } + if (isZero(r)) + return; + if (!isZero(low(r))) { + allsatProfile[this.level2var[level(r)]] = 0; + for (int v = level(low(r)) - 1; v > level(r); --v) + allsatProfile[this.level2var[v]] = -1; + allSatRec(low(r), models, allsatProfile); + } + if (!isZero(high(r))) { + allsatProfile[this.level2var[level(r)]] = 1; + for (int v = level(high(r)) - 1; v > level(r); --v) { + allsatProfile[this.level2var[v]] = -1; + } + allSatRec(high(r), models, allsatProfile); + } + } + + /** + * Returns the model count for the given BDD. + * @param r the BDD root node + * @return the model count for the BDD + */ + public BigDecimal satCount(final int r) { + final BigDecimal size = new BigDecimal(2).pow(level(r)); + return satCountRec(r, CACHEID_SATCOU).multiply(size); + } + + private BigDecimal satCountRec(final int root, final int miscid) { + if (root < 2) + return new BigDecimal(root); + final BDDCacheEntry entry = this.misccache.lookup(root); + if (entry.a == root && entry.c == miscid) + return entry.bdres; + final BDDKernel.BddNode node = this.nodes[root]; + BigDecimal size = BigDecimal.ZERO; + BigDecimal s = BigDecimal.ONE; + s = s.multiply(new BigDecimal(2).pow(level(node.low) - node.level - 1)); + size = size.add(s.multiply(satCountRec(node.low, miscid))); + s = BigDecimal.ONE; + s = s.multiply(new BigDecimal(2).pow(level(node.high) - node.level - 1)); + size = size.add(s.multiply(satCountRec(node.high, miscid))); + entry.a = root; + entry.c = miscid; + entry.bdres = size; + return size; + } + + /** + * Returns the number of paths to the terminal node 'one'. + * @param r the BDD root node + * @return the number of paths to the terminal node 'one' + */ + public BigDecimal pathCountOne(final int r) { + return pathCountRecOne(r, CACHEID_PATHCOU_ONE); + } + + private BigDecimal pathCountRecOne(final int r, final int miscid) { + final BigDecimal size; + if (isZero(r)) + return BigDecimal.ZERO; + if (isOne(r)) + return BigDecimal.ONE; + final BDDCacheEntry entry = this.misccache.lookup(r); + if (entry.a == r && entry.c == miscid) + return entry.bdres; + size = pathCountRecOne(low(r), miscid).add(pathCountRecOne(high(r), miscid)); + entry.a = r; + entry.c = miscid; + entry.bdres = size; + return size; + } + + /** + * Returns the number of paths to the terminal node 'zero'. + * @param r the BDD root node + * @return the number of paths to the terminal node 'zero' + */ + public BigDecimal pathCountZero(final int r) { + return pathCountRecZero(r, CACHEID_PATHCOU_ZERO); + } + + private BigDecimal pathCountRecZero(final int r, final int miscid) { + final BigDecimal size; + if (isZero(r)) + return BigDecimal.ONE; + if (isOne(r)) + return BigDecimal.ZERO; + final BDDCacheEntry entry = this.misccache.lookup(r); + if (entry.a == r && entry.c == miscid) + return entry.bdres; + size = pathCountRecZero(low(r), miscid).add(pathCountRecZero(high(r), miscid)); + entry.a = r; + entry.c = miscid; + entry.bdres = size; + return size; + } + + /** + * Returns all unsatisfiable assignments for a given BDD. + * @param r the BDD root node + * @return all unsatisfiable assignments for the BDD + */ + public List allUnsat(final int r) { + this.allunsatProfile = new byte[this.varnum]; + for (int v = level(r) - 1; v >= 0; --v) + this.allunsatProfile[this.level2var[v]] = -1; + initRef(); + final List allUnsat = new LinkedList<>(); + allUnsatRec(r, allUnsat); + return allUnsat; + } + + private void allUnsatRec(final int r, final List models) { + if (isZero(r)) { + models.add(Arrays.copyOf(this.allunsatProfile, this.allunsatProfile.length)); + return; + } + if (isOne(r)) + return; + if (!isOne(low(r))) { + this.allunsatProfile[this.level2var[level(r)]] = 0; + for (int v = level(low(r)) - 1; v > level(r); --v) + this.allunsatProfile[this.level2var[v]] = -1; + allUnsatRec(low(r), models); + } + if (!isOne(high(r))) { + this.allunsatProfile[this.level2var[level(r)]] = 1; + for (int v = level(high(r)) - 1; v > level(r); --v) + this.allunsatProfile[this.level2var[v]] = -1; + allUnsatRec(high(r), models); + } + } + + /** + * Returns all the variables that a given BDD depends on. + * @param r the BDD root node + * @return all the variables that the BDD depends on + */ + public int support(final int r) { + final int supportSize = 0; + int res = 1; + if (r < 2) + return BDDKernel.BDD_FALSE; + if (supportSize < this.varnum) { + this.supportSet = new int[this.varnum]; + this.supportID = 0; + } + if (this.supportID == 0x0FFFFFFF) + this.supportID = 0; + ++this.supportID; + final int supportMin = level(r); + this.supportMax = supportMin; + supportRec(r, this.supportSet); + unmark(r); + + for (int n = this.supportMax; n >= supportMin; --n) + if (this.supportSet[n] == this.supportID) { + addRef(res); + final int tmp = makeNode(n, 0, res); + delRef(res); + res = tmp; + } + return res; + } + + private void supportRec(final int r, final int[] support) { + if (r < 2) + return; + final BDDKernel.BddNode node = this.nodes[r]; + if ((node.level & BDDKernel.MARKON) != 0 || node.low == -1) + return; + support[node.level] = this.supportID; + if (node.level > this.supportMax) + this.supportMax = node.level; + node.level |= BDDKernel.MARKON; + supportRec(node.low, support); + supportRec(node.high, support); + } + + /** + * Returns the number of nodes for a given BDD. + * @param r the BDD root node + * @return the number of nodes for the BDD + */ + public int nodeCount(final int r) { + final int count = markCount(r); + unmark(r); + return count; + } + + /** + * Returns how often each variable occurs in the given BDD. + * @param r the BDD root node + * @return how often each variable occurs in the BDD + */ + public int[] varProfile(final int r) { + final int[] varprofile = new int[this.varnum]; + varProfileRec(r, varprofile); + unmark(r); + return varprofile; + } + + private void varProfileRec(final int r, final int[] varprofile) { + if (r < 2) + return; + final BDDKernel.BddNode node = this.nodes[r]; + if ((node.level & BDDKernel.MARKON) != 0) + return; + varprofile[this.level2var[node.level]]++; + node.level |= BDDKernel.MARKON; + varProfileRec(node.low, varprofile); + varProfileRec(node.high, varprofile); + } + + private void varset2svartable(final int r) { + if (r < 2) + throw new IllegalArgumentException("Illegal variable: " + r); + this.quantvarsetID++; + if (this.quantvarsetID == Integer.MAX_VALUE / 2) { + this.quantvarset = new int[this.varnum]; + this.quantvarsetID = 1; + } + for (int n = r; !isConst(n); ) { + if (isZero(low(n))) { + this.quantvarset[level(n)] = this.quantvarsetID; + n = high(n); + } else { + this.quantvarset[level(n)] = -this.quantvarsetID; + n = low(n); + } + this.quantlast = level(n); + } + } + + private void varset2vartable(final int r) { + if (r < 2) + throw new IllegalArgumentException("Illegal variable: " + r); + this.quantvarsetID++; + if (this.quantvarsetID == Integer.MAX_VALUE) { + this.quantvarset = new int[this.varnum]; + this.quantvarsetID = 1; + } + for (int n = r; n > 1; n = high(n)) { + this.quantvarset[level(n)] = this.quantvarsetID; + this.quantlast = level(n); + } + } + + private boolean insvarset(final int a) { + return Math.abs(this.quantvarset[a]) == this.quantvarsetID; + } + + private boolean invarset(final int a) { + return this.quantvarset[a] == this.quantvarsetID; + } + + /** + * Returns the statistics for this BDD Kernel. + * @return the statistics + */ + public BDDStatistics statistics() { + final BDDStatistics statistics = new BDDStatistics(); + statistics.produced = this.produced; + statistics.nodesize = this.nodesize; + statistics.freenum = this.freenum; + statistics.varnum = this.varnum; + statistics.cachesize = this.cachesize; + statistics.gbcollectnum = this.gbcollectnum; + return statistics; + } + + /** + * A class for BDD statistics. + */ + public static final class BDDStatistics { + private long produced; + private int nodesize; + private int freenum; + private int varnum; + private int cachesize; + private int gbcollectnum; + + /** + * Returns the number of produced nodes. + * @return the number of produced nodes + */ + public long produced() { + return this.produced; + } + + /** + * Returns the number of allocated nodes. + * @return the number of allocated nodes + */ + public int nodesize() { + return this.nodesize; + } + + /** + * Returns the number of free nodes. + * @return the number of free nodes + */ + public int freenum() { + return this.freenum; + } + + /** + * Returns the number of variables. + * @return the number of variables + */ + public int varnum() { + return this.varnum; + } + + /** + * Returns the cache size. + * @return the cache size + */ + public int cachesize() { + return this.cachesize; + } + + /** + * Returns the number of garbage collections. + * @return the number of garbage collections + */ + public int gbcollectnum() { + return this.gbcollectnum; + } + + @Override + public String toString() { + return "BDDStatistics{" + + "produced nodes=" + this.produced + + ", allocated nodes=" + this.nodesize + + ", free nodes=" + this.freenum + + ", variables=" + this.varnum + + ", cache size=" + this.cachesize + + ", garbage collections=" + this.gbcollectnum + + '}'; + } + } + + private static final class BddNode { + int refcou = 10; + int level = 22; + int low; + int high; + int hash; + int next; + } +} diff --git a/src/main/java/org/logicng/bdds/jbuddy/BDDPrime.java b/src/main/java/org/logicng/bdds/jbuddy/BDDPrime.java new file mode 100644 index 00000000..e50dae5c --- /dev/null +++ b/src/main/java/org/logicng/bdds/jbuddy/BDDPrime.java @@ -0,0 +1,162 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +/*======================================================================== + Copyright (C) 1996-2002 by Jorn Lind-Nielsen + All rights reserved + +Permission is hereby granted, without written agreement and without +license or royalty fees, to use, reproduce, prepare derivative +works, distribute, and display this software and its documentation +for any purpose, provided that (1) the above copyright notice and +the following two paragraphs appear in all copies of the source code +and (2) redistributions, including without limitation binaries, +reproduce these notices in the supporting documentation. Substantial +modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided +that the new terms are clearly indicated in all files where they apply. + +IN NO EVENT SHALL JORN LIND-NIELSEN, OR DISTRIBUTORS OF THIS +SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, +INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS +SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE +ABOVE PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +JORN LIND-NIELSEN SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS +ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO +OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. +========================================================================*/ + +package org.logicng.bdds.jbuddy; + +import java.util.Random; + +/** + * Prime number calculations + * @version 1.4.0 + * @since 1.4.0 + */ +final class BDDPrime { + + private static final int CHECKTIMES = 20; + private static final Random rng = new Random(); + + /** + * Returns the next prime greater than the given number. + * @param num the number + * @return the next prime greater than the given number + */ + static int primeGTE(int num) { + if (isEven(num)) + ++num; + while (!isPrime(num)) + num += 2; + return num; + } + + /** + * Returns the next prime less than the given number. + * @param num the number + * @return the next prime less than the given number + */ + static int primeLTE(int num) { + if (isEven(num)) + --num; + while (!isPrime(num)) + num -= 2; + return num; + } + + private static int numberOfBits(final int src) { + int b; + if (src == 0) + return 0; + for (b = 31; b > 0; --b) + if (bitIsSet(src, b)) + return b + 1; + return 1; + } + + private static boolean isWitness(final int witness, final int src) { + final int bitNum = numberOfBits(src - 1) - 1; + int d = 1; + for (int i = bitNum; i >= 0; --i) { + final int x = d; + d = mulmod(d, d, src); + if (d == 1 && x != 1 && x != src - 1) + return true; + if (bitIsSet(src - 1, i)) + d = mulmod(d, witness, src); + } + return d != 1; + } + + private static boolean isMillerRabinPrime(final int src) { + for (int n = 0; n < CHECKTIMES; ++n) { + final int witness = random(src - 1); + if (isWitness(witness, src)) + return false; + } + return true; + } + + private static boolean hasEasyFactors(final int src) { + return hasFactor(src, 3) + || hasFactor(src, 5) + || hasFactor(src, 7) + || hasFactor(src, 11) + || hasFactor(src, 13); + } + + private static boolean isPrime(final int src) { + return !hasEasyFactors(src) && isMillerRabinPrime(src); + } + + private static boolean bitIsSet(final int src, final int b) { + return (src & (1 << b)) != 0; + } + + private static int mulmod(final int a, final int b, final int c) { + return (int) (((long) a * (long) b) % (long) c); + } + + private static int random(final int i) { + return rng.nextInt(i) + 1; + } + + private static boolean hasFactor(final int src, final int n) { + return (src != n) && (src % n == 0); + } + + private static boolean isEven(final int src) { + return (src & 0x1) == 0; + } +} diff --git a/src/main/java/org/logicng/bdds/orderings/BFSOrdering.java b/src/main/java/org/logicng/bdds/orderings/BFSOrdering.java new file mode 100644 index 00000000..98559d22 --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/BFSOrdering.java @@ -0,0 +1,94 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.logicng.formulas.BinaryOperator; +import org.logicng.formulas.Formula; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Not; +import org.logicng.formulas.PBConstraint; +import org.logicng.formulas.Variable; + +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +/** + * A breadth-first-search BDD variable ordering. Traverses the formula in a BFS manner + * and gathers all variables in the occurrence. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BFSOrdering implements VariableOrderingProvider { + + @Override + public List getOrder(final Formula formula) { + return new ArrayList<>(bfs(formula)); + } + + private LinkedHashSet bfs(final Formula formula) { + final LinkedHashSet variables = new LinkedHashSet<>(); + final Queue queue = new LinkedList<>(); + queue.add(formula); + while (!queue.isEmpty()) { + final Formula current = queue.remove(); + switch (current.type()) { + case LITERAL: + final Literal lit = (Literal) current; + if (lit.phase()) + variables.add(lit.variable()); + else + queue.add(lit.variable()); + break; + case NOT: + queue.add(((Not) current).operand()); + break; + case IMPL: + case EQUIV: + final BinaryOperator op = (BinaryOperator) current; + queue.add(op.left()); + queue.add(op.right()); + break; + case AND: + case OR: + for (final Formula operand : current) + queue.add(operand); + break; + case PBC: + final PBConstraint pbc = (PBConstraint) current; + for (final Literal literal : pbc.operands()) + variables.add(literal.variable()); + break; + } + } + return variables; + } +} diff --git a/src/main/java/org/logicng/bdds/orderings/DFSOrdering.java b/src/main/java/org/logicng/bdds/orderings/DFSOrdering.java new file mode 100644 index 00000000..36fe9562 --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/DFSOrdering.java @@ -0,0 +1,83 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.logicng.formulas.BinaryOperator; +import org.logicng.formulas.Formula; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Not; +import org.logicng.formulas.PBConstraint; +import org.logicng.formulas.Variable; + +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; + +/** + * A depth-first-search BDD variable ordering. Traverses the formula in a DFS manner + * and gathers all variables in the occurrence. + * @version 1.4.0 + * @since 1.4.0 + */ +public class DFSOrdering implements VariableOrderingProvider { + + @Override + public List getOrder(final Formula formula) { + final LinkedHashSet order = new LinkedHashSet<>(formula.variables().size()); + dfs(formula, order); + return new ArrayList<>(order); + } + + private void dfs(final Formula formula, final LinkedHashSet variables) { + switch (formula.type()) { + case LITERAL: + variables.add(((Literal) formula).variable()); + break; + case NOT: + dfs(((Not) formula).operand(), variables); + break; + case IMPL: + case EQUIV: + final BinaryOperator op = (BinaryOperator) formula; + dfs(op.left(), variables); + dfs(op.right(), variables); + break; + case AND: + case OR: + for (final Formula operand : formula) + dfs(operand, variables); + break; + case PBC: + final PBConstraint pbc = (PBConstraint) formula; + for (final Literal lit : pbc.operands()) + variables.add(lit.variable()); + break; + } + } +} diff --git a/src/main/java/org/logicng/bdds/orderings/ForceOrdering.java b/src/main/java/org/logicng/bdds/orderings/ForceOrdering.java new file mode 100644 index 00000000..eb40b68c --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/ForceOrdering.java @@ -0,0 +1,140 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.logicng.formulas.Formula; +import org.logicng.formulas.Variable; +import org.logicng.graphs.datastructures.Hypergraph; +import org.logicng.graphs.datastructures.HypergraphNode; +import org.logicng.graphs.generators.HypergraphGenerator; +import org.logicng.predicates.CNFPredicate; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * Simple implementation of the FORCE BDD variable ordering due to Aloul, Markov, and Sakallah. This ordering only + * works for CNF formulas. A formula has to be converted to CNF before this ordering is called. + * @version 1.4.0 + * @since 1.4.0 + */ +public class ForceOrdering implements VariableOrderingProvider { + + private static final Comparator, Double>> COMPARATOR = + new Comparator, Double>>() { + @Override + public int compare(final Map.Entry, Double> o1, final Map.Entry, Double> o2) { + return o1.getValue().compareTo(o2.getValue()); + } + }; + + private final DFSOrdering dfsOrdering = new DFSOrdering(); + + @Override + public List getOrder(final Formula formula) { + if (!formula.holds(new CNFPredicate())) + throw new IllegalArgumentException("FORCE variable ordering can only be applied to CNF formulas."); + final Hypergraph hypergraph = HypergraphGenerator.fromCNF(formula); + final Map> nodes = new HashMap<>(); + for (final HypergraphNode node : hypergraph.nodes()) + nodes.put(node.content(), node); + return force(formula, hypergraph, nodes); + } + + /** + * Executes the main FORCE algorithm. + * @param formula the CNF formula for the ordering + * @param hypergraph the hypergraph for this formula + * @param nodes the variable to hypergraph node mapping + * @return the variable ordering according to the FORCE algorithm + */ + private List force(final Formula formula, final Hypergraph hypergraph, + final Map> nodes) { + final LinkedHashMap, Integer> initialOrdering = createInitialOrdering(formula, nodes); + LinkedHashMap, Integer> lastOrdering; + LinkedHashMap, Integer> currentOrdering = initialOrdering; + do { + lastOrdering = currentOrdering; + final LinkedHashMap, Double> newLocations = new LinkedHashMap<>(); + for (final HypergraphNode node : hypergraph.nodes()) + newLocations.put(node, node.computeTentativeNewLocation(lastOrdering)); + currentOrdering = orderingFromTentativeNewLocations(newLocations); + } while (shouldProceed(lastOrdering, currentOrdering)); + final Variable[] ordering = new Variable[currentOrdering.size()]; + for (final Map.Entry, Integer> entry : currentOrdering.entrySet()) + ordering[entry.getValue()] = entry.getKey().content(); + return Arrays.asList(ordering); + } + + /** + * Creates an initial ordering for the variables based on a DFS. + * @param formula the CNF formula + * @param nodes the variable to hypergraph node mapping + * @return the initial variable ordering + */ + private LinkedHashMap, Integer> createInitialOrdering(final Formula formula, final Map> nodes) { + final LinkedHashMap, Integer> initialOrdering = new LinkedHashMap<>(); + final List dfsOrder = this.dfsOrdering.getOrder(formula); + for (int i = 0; i < dfsOrder.size(); i++) + initialOrdering.put(nodes.get(dfsOrder.get(i)), i); + return initialOrdering; + } + + /** + * Generates a new integer ordering from tentative new locations of nodes with the double weighting. + * @param newLocations the tentative new locations + * @return the new integer ordering + */ + private LinkedHashMap, Integer> orderingFromTentativeNewLocations(final LinkedHashMap, Double> newLocations) { + final LinkedHashMap, Integer> ordering = new LinkedHashMap<>(); + final List, Double>> list = new ArrayList<>(newLocations.entrySet()); + Collections.sort(list, COMPARATOR); + int count = 0; + for (final Map.Entry, Double> entry : list) + ordering.put(entry.getKey(), count++); + return ordering; + } + + /** + * The abortion criteria for the FORCE algorithm. + * @param lastOrdering the ordering of the last step + * @param currentOrdering the ordering of the current step + * @return {@code true} if the algorithm should proceed, {@code false} if it should stop + */ + private boolean shouldProceed(final Map, Integer> lastOrdering, final Map, Integer> currentOrdering) { + return !lastOrdering.equals(currentOrdering); + } + +} diff --git a/src/main/java/org/logicng/bdds/orderings/MaxToMinOrdering.java b/src/main/java/org/logicng/bdds/orderings/MaxToMinOrdering.java new file mode 100644 index 00000000..5f6f310f --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/MaxToMinOrdering.java @@ -0,0 +1,76 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.logicng.formulas.Formula; +import org.logicng.formulas.Variable; +import org.logicng.functions.VariableProfileFunction; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + +import static org.logicng.bdds.orderings.MinToMaxOrdering.sortProfileByOccurrence; + +/** + * A BDD variable ordering sorting the variables from maximal to minimal occurrence + * in the input formula. If two variables have the same number of occurrences, their + * ordering according to their DFS ordering will be considered. + * @version 1.4.0 + * @since 1.4.0 + */ +public class MaxToMinOrdering implements VariableOrderingProvider { + + private final VariableProfileFunction profileFunction = new VariableProfileFunction(); + private final DFSOrdering dfsOrdering = new DFSOrdering(); + + @Override + public List getOrder(final Formula formula) { + final Map profile = formula.apply(this.profileFunction); + final List dfs = this.dfsOrdering.getOrder(formula); + + final Comparator> comparator = new Comparator>() { + @Override + public int compare(final Map.Entry o1, final Map.Entry o2) { + final int occComp = o1.getValue().compareTo(o2.getValue()); + if (occComp != 0) + return occComp; + final int index1 = dfs.indexOf(o1.getKey()); + final int index2 = dfs.indexOf(o2.getKey()); + return index1 - index2; + } + }; + final Map sortedProfile = sortProfileByOccurrence(profile, comparator); + final List order = new ArrayList<>(sortedProfile.size()); + for (final Map.Entry entry : sortedProfile.entrySet()) + order.add(entry.getKey()); + return order; + } +} diff --git a/src/main/java/org/logicng/bdds/orderings/MinToMaxOrdering.java b/src/main/java/org/logicng/bdds/orderings/MinToMaxOrdering.java new file mode 100644 index 00000000..408723b1 --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/MinToMaxOrdering.java @@ -0,0 +1,85 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.logicng.formulas.Formula; +import org.logicng.formulas.Variable; +import org.logicng.functions.VariableProfileFunction; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * A BDD variable ordering sorting the variables from minimal to maximal occurrence + * in the input formula. If two variables have the same number of occurrences, their + * ordering according to their DFS ordering will be considered. + * @version 1.4.0 + * @since 1.4.0 + */ +public class MinToMaxOrdering implements VariableOrderingProvider { + + private final VariableProfileFunction profileFunction = new VariableProfileFunction(); + private final DFSOrdering dfsOrdering = new DFSOrdering(); + + @Override + public List getOrder(final Formula formula) { + final Map profile = formula.apply(this.profileFunction); + final List dfs = this.dfsOrdering.getOrder(formula); + + final Comparator> comparator = new Comparator>() { + @Override + public int compare(final Map.Entry o1, final Map.Entry o2) { + final int occComp = o1.getValue().compareTo(o2.getValue()); + if (occComp != 0) + return -occComp; + final int index1 = dfs.indexOf(o1.getKey()); + final int index2 = dfs.indexOf(o2.getKey()); + return index1 - index2; + } + }; + final Map sortedProfile = sortProfileByOccurrence(profile, comparator); + final List order = new ArrayList<>(sortedProfile.size()); + for (final Map.Entry entry : sortedProfile.entrySet()) + order.add(entry.getKey()); + return order; + } + + static Map sortProfileByOccurrence(final Map map, final Comparator> comparator) { + final List> list = new ArrayList<>(map.entrySet()); + Collections.sort(list, comparator); + final Map result = new LinkedHashMap<>(); + for (final Map.Entry entry : list) + result.put(entry.getKey(), entry.getValue()); + return result; + } +} diff --git a/src/main/java/org/logicng/bdds/orderings/VariableOrdering.java b/src/main/java/org/logicng/bdds/orderings/VariableOrdering.java new file mode 100644 index 00000000..1e191474 --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/VariableOrdering.java @@ -0,0 +1,62 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +/** + * An enumeration for the different BDD variable orderings. A variable ordering is associated + * with its own provider which can generate orderings for this ordering. + * @version 1.4.0 + * @since 1.4.0 + */ +public enum VariableOrdering { + + DFS(DFSOrdering.class), + BFS(BFSOrdering.class), + MIN2MAX(MinToMaxOrdering.class), + MAX2MIN(MaxToMinOrdering.class), + FORCE(ForceOrdering.class); + + private final Class provider; + + /** + * Constructs a new variable ordering with a given provider. + * @param provider the provider + */ + VariableOrdering(final Class provider) { + this.provider = provider; + } + + /** + * Returns the provider for this variable ordering. + * @return the provider for this variable ordering + */ + public Class provider() { + return this.provider; + } +} diff --git a/src/main/java/org/logicng/bdds/orderings/VariableOrderingProvider.java b/src/main/java/org/logicng/bdds/orderings/VariableOrderingProvider.java new file mode 100644 index 00000000..8ffb983f --- /dev/null +++ b/src/main/java/org/logicng/bdds/orderings/VariableOrderingProvider.java @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.logicng.formulas.Formula; +import org.logicng.formulas.Variable; + +import java.util.List; + +/** + * An interface for variable ordering providers for BDDs. + * @version 1.4.0 + * @since 1.4.0 + */ +public interface VariableOrderingProvider { + + /** + * Generates a variable ordering for a given formula. Such a variable ordering can then be + * used in the {@link org.logicng.bdds.BDDFactory#setVariableOrder(List)} method. + * @param formula the formula + * @return the variable ordering + */ + List getOrder(final Formula formula); +} diff --git a/src/main/java/org/logicng/collections/ImmutableFormulaList.java b/src/main/java/org/logicng/collections/ImmutableFormulaList.java index 74d35dee..955a2a2d 100644 --- a/src/main/java/org/logicng/collections/ImmutableFormulaList.java +++ b/src/main/java/org/logicng/collections/ImmutableFormulaList.java @@ -86,7 +86,7 @@ public ImmutableFormulaList(final FType operator, final Formula... formulas) { */ public ImmutableFormulaList(final Collection formulas) { this.operator = FType.NONE; - this.formulas = formulas.toArray(new Formula[formulas.size()]); + this.formulas = formulas.toArray(new Formula[0]); } /** @@ -96,7 +96,7 @@ public ImmutableFormulaList(final Collection formulas) { */ public ImmutableFormulaList(final FType operator, final Collection formulas) { this.operator = operator; - this.formulas = formulas.toArray(new Formula[formulas.size()]); + this.formulas = formulas.toArray(new Formula[0]); } /** @@ -134,7 +134,7 @@ public ImmutableFormulaList(final FType operator, final ImmutableFormulaList for * @param copy {@code true} if the input array should be copied, {@code false} otherwise * @param formulas the formulas */ - private ImmutableFormulaList(final FType operator, boolean copy, final Formula... formulas) { + private ImmutableFormulaList(final FType operator, final boolean copy, final Formula... formulas) { this.operator = operator; this.formulas = copy ? Arrays.copyOf(formulas, formulas.length) : formulas; } @@ -155,9 +155,9 @@ public FType operator() { */ public Formula formula(final FormulaFactory f) { if (this.operator != FType.AND && this.operator != FType.OR) - throw new IllegalStateException("Illegal operator for formula list formula construction: " + operator); + throw new IllegalStateException("Illegal operator for formula list formula construction: " + this.operator); if (this.formula == null) { - if (operator == FType.AND) + if (this.operator == FType.AND) this.formula = f.and(this.formulas); else this.formula = f.or(this.formulas); @@ -186,7 +186,7 @@ public boolean empty() { * @param i the index * @return the i-th formula of this formula list */ - public Formula get(int i) { + public Formula get(final int i) { if (i < 0 || i >= this.formulas.length) throw new IllegalArgumentException("Illegal formula index: " + i); return this.formulas[i]; @@ -215,7 +215,7 @@ public SortedSet variables() { for (final Formula f : this.formulas) this.variables.addAll(f.variables()); } - return variables; + return this.variables; } /** @@ -324,14 +324,14 @@ public Iterator iterator() { @Override public boolean hasNext() { - return i < formulas.length; + return this.i < ImmutableFormulaList.this.formulas.length; } @Override public Formula next() { - if (i == formulas.length) + if (this.i == ImmutableFormulaList.this.formulas.length) throw new NoSuchElementException(); - return formulas[i++]; + return ImmutableFormulaList.this.formulas[this.i++]; } @Override diff --git a/src/main/java/org/logicng/datastructures/Assignment.java b/src/main/java/org/logicng/datastructures/Assignment.java index bcb30de1..80b2f336 100644 --- a/src/main/java/org/logicng/datastructures/Assignment.java +++ b/src/main/java/org/logicng/datastructures/Assignment.java @@ -92,6 +92,21 @@ public Assignment(final Collection lits) { this(lits, false); } + /** + * Constructs a new assignment for a given array of literals (without fast evaluation). + * @param lits a new assignment for a given array of literals + */ + public Assignment(final Literal... lits) { + this(false); + for (Literal lit : lits) + if (lit.phase()) + this.pos.add((Variable) lit); + else { + this.neg.add(lit); + this.negVars.add((Variable) lit.negate()); + } + } + /** * Constructs a new assignment for a given collection of literals. * @param lits a new assignment for a given collection of literals diff --git a/src/main/java/org/logicng/datastructures/Substitution.java b/src/main/java/org/logicng/datastructures/Substitution.java index 2b80d191..d5e71046 100644 --- a/src/main/java/org/logicng/datastructures/Substitution.java +++ b/src/main/java/org/logicng/datastructures/Substitution.java @@ -55,7 +55,7 @@ public Substitution() { * @return the number of mappings in this substitution */ public int size() { - return subst.size(); + return this.subst.size(); } /** @@ -66,7 +66,7 @@ public int size() { * @param formula the formula */ public void addMapping(final Variable variable, final Formula formula) { - subst.put(variable, formula); + this.subst.put(variable, formula); } /** @@ -75,15 +75,12 @@ public void addMapping(final Variable variable, final Formula formula) { * @return an formula of {@code null} */ public Formula getSubstitution(final Variable variable) { - Formula res = subst.get(variable); - if (res == null) - return null; - return res; + return this.subst.get(variable); } @Override public int hashCode() { - return subst.hashCode(); + return this.subst.hashCode(); } @Override @@ -93,6 +90,6 @@ public boolean equals(final Object other) { @Override public String toString() { - return "Substitution" + subst; + return "Substitution" + this.subst; } } diff --git a/src/main/java/org/logicng/formulas/Formula.java b/src/main/java/org/logicng/formulas/Formula.java index 9884777c..936eb769 100644 --- a/src/main/java/org/logicng/formulas/Formula.java +++ b/src/main/java/org/logicng/formulas/Formula.java @@ -28,6 +28,10 @@ package org.logicng.formulas; +import org.logicng.bdds.BDDFactory; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.bdds.orderings.VariableOrdering; +import org.logicng.bdds.orderings.VariableOrderingProvider; import org.logicng.datastructures.Assignment; import org.logicng.datastructures.Substitution; import org.logicng.datastructures.Tristate; @@ -109,7 +113,7 @@ public FormulaFactory factory() { * @return the number of internal nodes of this formula. */ public long numberOfInternalNodes() { - return f.numberOfNodes(this); + return this.f.numberOfNodes(this); } /** @@ -179,7 +183,7 @@ public boolean containsVariable(final String variable) { * @return a new substituted formula */ public Formula substitute(final Variable variable, final Formula formula) { - Substitution subst = new Substitution(); + final Substitution subst = new Substitution(); subst.addMapping(variable, formula); return this.substitute(subst); } @@ -215,6 +219,40 @@ public Formula cnf() { return this.f.cnfEncoder().encode(this); } + /** + * Generates a BDD from this formula with a given variable ordering. This is done by generating a new BDD factory, + * generating the variable order for this formula, and building a new BDD. If more sophisticated operations should + * be performed on the BDD or more than one formula should be constructed on the BDD, an own instance of + * {@link BDDFactory} should be created and used. + * @param variableOrdering the variable ordering + * @return the BDD for this formula with the given ordering + */ + public BDD bdd(final VariableOrdering variableOrdering) { + final int varNum = this.variables().size(); + final BDDFactory factory = new BDDFactory(varNum * 30, varNum * 20, this.factory()); + if (variableOrdering == null) + factory.setNumberOfVars(varNum); + else { + try { + final VariableOrderingProvider provider = variableOrdering.provider().newInstance(); + factory.setVariableOrder(provider.getOrder(this)); + } catch (final InstantiationException | IllegalAccessException e) { + throw new IllegalStateException("Could not generate the BDD variable ordering provider", e); + } + } + return factory.build(this); + } + + /** + * Generates a BDD from this formula with no given variable ordering. This is done by generating a new BDD factory + * and building a new BDD. If more sophisticated operations should be performed on the BDD or more than one + * formula should be constructed on the BDD, an own instance of * {@link BDDFactory} should be created and used. + * @return the BDD for this formula + */ + public BDD bdd() { + return bdd(null); + } + /** * Transforms this formula with a given formula transformator and caches the result. * @param transformation the formula transformator @@ -230,7 +268,7 @@ public Formula transform(final FormulaTransformation transformation) { * @param cache indicates whether the result (and associated predicates) should be cached in this formula's cache. * @return the transformed formula */ - public Formula transform(final FormulaTransformation transformation, boolean cache) { + public Formula transform(final FormulaTransformation transformation, final boolean cache) { return transformation.apply(this, cache); } @@ -250,7 +288,7 @@ public boolean holds(final FormulaPredicate predicate) { * @param cache indicates whether the result should be cached in this formula's cache * @return {@code true} if the predicate holds, {@code false} otherwise */ - public boolean holds(final FormulaPredicate predicate, boolean cache) { + public boolean holds(final FormulaPredicate predicate, final boolean cache) { return predicate.test(this, cache); } @@ -261,7 +299,7 @@ public boolean holds(final FormulaPredicate predicate, boolean cache) { * @param the result type of the function * @return the result of the function application */ - public T apply(final FormulaFunction function, boolean cache) { + public T apply(final FormulaFunction function, final boolean cache) { return function.apply(this, cache); } @@ -310,7 +348,7 @@ public Tristate predicateCacheEntry(final CacheEntry key) { * @param key the cache key * @param value the cache value */ - public void setPredicateCacheEntry(final CacheEntry key, boolean value) { + public void setPredicateCacheEntry(final CacheEntry key, final boolean value) { this.predicateCache.put(key, Tristate.fromBool(value)); } @@ -345,12 +383,12 @@ public void setFunctionCacheEntry(final CacheEntry key, final Object value) { * Clears the transformation and function cache of the formula. */ public void clearCaches() { - transformationCache.clear(); - functionCache.clear(); + this.transformationCache.clear(); + this.functionCache.clear(); } @Override public String toString() { - return f.string(this); + return this.f.string(this); } } diff --git a/src/main/java/org/logicng/formulas/FormulaFactory.java b/src/main/java/org/logicng/formulas/FormulaFactory.java index 97a16004..d2dd7a18 100644 --- a/src/main/java/org/logicng/formulas/FormulaFactory.java +++ b/src/main/java/org/logicng/formulas/FormulaFactory.java @@ -164,7 +164,7 @@ public FormulaFactory() { * @param f the formula * @return {@code true} if a given list of formulas contains a given formula, {@code false} otherwise */ - private static boolean containsComplement(final LinkedHashSet formulas, Formula f) { + private static boolean containsComplement(final LinkedHashSet formulas, final Formula f) { return formulas.contains(f.negate()); } @@ -356,7 +356,7 @@ public CFalse falsum() { * @throws IllegalArgumentException if a wrong formula type is passed */ public Formula naryOperator(final FType type, final Collection operands) { - return this.naryOperator(type, operands.toArray(new Formula[operands.size()])); + return this.naryOperator(type, operands.toArray(new Formula[0])); } /** @@ -426,7 +426,7 @@ private Formula constructAnd(final LinkedHashSet operands) { } if (tempAnd != null) return tempAnd; - LinkedHashSet condensedOperands = operands.size() < 2 + final LinkedHashSet condensedOperands = operands.size() < 2 ? operands : this.condenseOperandsAnd(operands); if (condensedOperands == null) @@ -435,7 +435,7 @@ private Formula constructAnd(final LinkedHashSet operands) { return this.verum(); if (condensedOperands.size() == 1) return condensedOperands.iterator().next(); - And and; + final And and; Map, And> condAndMap = this.andsN; switch (condensedOperands.size()) { case 2: @@ -571,7 +571,7 @@ private Formula constructOr(final LinkedHashSet operands) { } if (tempOr != null) return tempOr; - LinkedHashSet condensedOperands = operands.size() < 2 + final LinkedHashSet condensedOperands = operands.size() < 2 ? operands : this.condenseOperandsOr(operands); if (condensedOperands == null) @@ -580,7 +580,7 @@ private Formula constructOr(final LinkedHashSet operands) { return this.falsum(); if (condensedOperands.size() == 1) return condensedOperands.iterator().next(); - Or or; + final Or or; Map, Or> condOrMap = this.orsN; switch (condensedOperands.size()) { case 2: @@ -673,7 +673,7 @@ private Formula constructClause(final LinkedHashSet literals) { * @param phase the literal phase * @return a new literal with the given name and phase */ - public Literal literal(final String name, boolean phase) { + public Literal literal(final String name, final boolean phase) { if (phase) return this.variable(name); else { @@ -709,11 +709,11 @@ public Variable variable(final String name) { * @return the pseudo-Boolean constraint * @throws IllegalArgumentException if the number of literals and coefficients do not correspond */ - public PBConstraint pbc(final CType comparator, int rhs, final List literals, final List coefficients) { - int[] cfs = new int[coefficients.size()]; + public PBConstraint pbc(final CType comparator, final int rhs, final List literals, final List coefficients) { + final int[] cfs = new int[coefficients.size()]; for (int i = 0; i < coefficients.size(); i++) cfs[i] = coefficients.get(i); - return this.constructPBC(comparator, rhs, literals.toArray(new Literal[literals.size()]), cfs); + return this.constructPBC(comparator, rhs, literals.toArray(new Literal[0]), cfs); } /** @@ -725,11 +725,11 @@ public PBConstraint pbc(final CType comparator, int rhs, final List variables) { + public PBConstraint cc(final CType comparator, final int rhs, final Collection variables) { final int[] coefficients = new int[variables.size()]; Arrays.fill(coefficients, 1); final Variable[] vars = new Variable[variables.size()]; @@ -765,7 +765,7 @@ public PBConstraint cc(final CType comparator, int rhs, final Collection condenseOperandsOr(Collection operands) { + private LinkedHashSet condenseOperandsOr(final Collection operands) { final LinkedHashSet ops = new LinkedHashSet<>(); this.cnfCheck = true; - for (Formula form : operands) + for (final Formula form : operands) if (form.type() == OR) { - for (Formula f : ((NAryOperator) form).operands) { + for (final Formula f : ((NAryOperator) form).operands) { this.addFormulaOr(ops, f); - if (!formulaAdditionResult[0]) + if (!this.formulaAdditionResult[0]) return null; - if (!formulaAdditionResult[1]) + if (!this.formulaAdditionResult[1]) this.cnfCheck = false; } } else { this.addFormulaOr(ops, form); - if (!formulaAdditionResult[0]) + if (!this.formulaAdditionResult[0]) return null; - if (!formulaAdditionResult[1]) + if (!this.formulaAdditionResult[1]) this.cnfCheck = false; } return ops; @@ -883,23 +883,23 @@ private LinkedHashSet condenseOperandsOr(Collection * @param operands the formulas * @return a condensed array of operands */ - private LinkedHashSet condenseOperandsAnd(Collection operands) { + private LinkedHashSet condenseOperandsAnd(final Collection operands) { final LinkedHashSet ops = new LinkedHashSet<>(); this.cnfCheck = true; - for (Formula form : operands) + for (final Formula form : operands) if (form.type() == AND) { - for (Formula f : ((NAryOperator) form).operands) { + for (final Formula f : ((NAryOperator) form).operands) { this.addFormulaAnd(ops, f); - if (!formulaAdditionResult[0]) + if (!this.formulaAdditionResult[0]) return null; - if (!formulaAdditionResult[1]) + if (!this.formulaAdditionResult[1]) this.cnfCheck = false; } } else { this.addFormulaAnd(ops, form); - if (!formulaAdditionResult[0]) + if (!this.formulaAdditionResult[0]) return null; - if (!formulaAdditionResult[1]) + if (!this.formulaAdditionResult[1]) this.cnfCheck = false; } return ops; @@ -930,7 +930,7 @@ public long numberOfNodes(final Formula formula) { * @throws ParserException if the parser throws an exception */ public Formula parse(final String string) throws ParserException { - return parser.parse(string); + return this.parser.parse(string); } /** @@ -944,15 +944,15 @@ public Formula parse(final String string) throws ParserException { */ private void addFormulaOr(final LinkedHashSet ops, final Formula f) { if (f.type == FALSE) { - formulaAdditionResult[0] = true; - formulaAdditionResult[1] = true; + this.formulaAdditionResult[0] = true; + this.formulaAdditionResult[1] = true; } else if (f.type == TRUE || containsComplement(ops, f)) { - formulaAdditionResult[0] = false; - formulaAdditionResult[1] = false; + this.formulaAdditionResult[0] = false; + this.formulaAdditionResult[1] = false; } else { ops.add(f); - formulaAdditionResult[0] = true; - formulaAdditionResult[1] = f.type == LITERAL; + this.formulaAdditionResult[0] = true; + this.formulaAdditionResult[1] = f.type == LITERAL; } } @@ -967,15 +967,15 @@ private void addFormulaOr(final LinkedHashSet ops, final Formula f) { */ private void addFormulaAnd(final LinkedHashSet ops, final Formula f) { if (f.type() == TRUE) { - formulaAdditionResult[0] = true; - formulaAdditionResult[1] = true; + this.formulaAdditionResult[0] = true; + this.formulaAdditionResult[1] = true; } else if (f.type == FALSE || containsComplement(ops, f)) { - formulaAdditionResult[0] = false; - formulaAdditionResult[1] = false; + this.formulaAdditionResult[0] = false; + this.formulaAdditionResult[1] = false; } else { ops.add(f); - formulaAdditionResult[0] = true; - formulaAdditionResult[1] = f.type == LITERAL || f.type == OR && ((Or) f).isCNFClause(); + this.formulaAdditionResult[0] = true; + this.formulaAdditionResult[1] = f.type == LITERAL || f.type == OR && ((Or) f).isCNFClause(); } } @@ -989,7 +989,7 @@ public Formula importFormula(final Formula formula) { if (this.importer == null) { this.importer = new FormulaFactoryImporter(this); } - return formula.transform(importer); + return formula.transform(this.importer); } /** @@ -1024,7 +1024,7 @@ public FormulaStringRepresentation stringRepresentation() { * @return the statistics for this formula factory */ public FormulaFactoryStatistics statistics() { - FormulaFactoryStatistics statistics = new FormulaFactoryStatistics(); + final FormulaFactoryStatistics statistics = new FormulaFactoryStatistics(); statistics.name = this.name; statistics.positiveLiterals = this.posLiterals.size(); statistics.negativeLiterals = this.negLiterals.size(); @@ -1061,7 +1061,7 @@ private static final class PBOperands { * @param comparator the comparator of the constraint * @param rhs the right-hand side of the constraint */ - public PBOperands(final Literal[] literals, final int[] coefficients, final CType comparator, int rhs) { + public PBOperands(final Literal[] literals, final int[] coefficients, final CType comparator, final int rhs) { this.literals = literals; this.coefficients = coefficients; this.comparator = comparator; @@ -1070,7 +1070,7 @@ public PBOperands(final Literal[] literals, final int[] coefficients, final CTyp @Override public int hashCode() { - return Objects.hash(this.rhs, this.comparator, Arrays.hashCode(coefficients), Arrays.hashCode(literals)); + return Objects.hash(this.rhs, this.comparator, Arrays.hashCode(this.coefficients), Arrays.hashCode(this.literals)); } @Override @@ -1134,7 +1134,7 @@ public static final class FormulaFactoryStatistics { * @return the name of the formula factory */ public String name() { - return name; + return this.name; } /** @@ -1142,7 +1142,7 @@ public String name() { * @return the number of positive literals in the factory */ public int positiveLiterals() { - return positiveLiterals; + return this.positiveLiterals; } /** @@ -1150,7 +1150,7 @@ public int positiveLiterals() { * @return the number of negative literals in the factory */ public int negativeLiterals() { - return negativeLiterals; + return this.negativeLiterals; } /** @@ -1158,7 +1158,7 @@ public int negativeLiterals() { * @return the number of negations in the factory */ public int negations() { - return negations; + return this.negations; } /** @@ -1166,7 +1166,7 @@ public int negations() { * @return the number of implications in the factory */ public int implications() { - return implications; + return this.implications; } /** @@ -1174,7 +1174,7 @@ public int implications() { * @return the number of equivalences in the factory */ public int equivalences() { - return equivalences; + return this.equivalences; } /** @@ -1182,7 +1182,7 @@ public int equivalences() { * @return the number of conjunctions of size 2 in the factory */ public int conjunctions2() { - return conjunctions2; + return this.conjunctions2; } /** @@ -1190,7 +1190,7 @@ public int conjunctions2() { * @return the number of conjunctions of size 3 in the factory */ public int conjunctions3() { - return conjunctions3; + return this.conjunctions3; } /** @@ -1198,7 +1198,7 @@ public int conjunctions3() { * @return the number of conjunctions of size 4 in the factory */ public int conjunctions4() { - return conjunctions4; + return this.conjunctions4; } /** @@ -1206,7 +1206,7 @@ public int conjunctions4() { * @return the number of conjunctions of a size >4 in the factory */ public int conjunctionsN() { - return conjunctionsN; + return this.conjunctionsN; } /** @@ -1214,7 +1214,7 @@ public int conjunctionsN() { * @return the number of disjunctions of size 2 in the factory */ public int disjunctions2() { - return disjunctions2; + return this.disjunctions2; } /** @@ -1222,7 +1222,7 @@ public int disjunctions2() { * @return the number of disjunctions of size 3 in the factory */ public int disjunctions3() { - return disjunctions3; + return this.disjunctions3; } /** @@ -1230,7 +1230,7 @@ public int disjunctions3() { * @return the number of disjunctions of size 4 in the factory */ public int disjunctions4() { - return disjunctions4; + return this.disjunctions4; } /** @@ -1238,7 +1238,7 @@ public int disjunctions4() { * @return the number of disjunctions of a size >4 in the factory */ public int disjunctionsN() { - return disjunctionsN; + return this.disjunctionsN; } /** @@ -1246,7 +1246,7 @@ public int disjunctionsN() { * @return the number of generated cardinality constraint auxiliary variables */ public int ccCounter() { - return ccCounter; + return this.ccCounter; } /** @@ -1254,7 +1254,7 @@ public int ccCounter() { * @return the number of generated pseudo-Boolean auxiliary variables */ public int pbCounter() { - return pbCounter; + return this.pbCounter; } /** @@ -1262,7 +1262,7 @@ public int pbCounter() { * @return the number of generated CNF auxiliary variables */ public int cnfCounter() { - return cnfCounter; + return this.cnfCounter; } /** @@ -1276,56 +1276,56 @@ public int formulas() { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (this == o) return true; if (!(o instanceof FormulaFactoryStatistics)) return false; - FormulaFactoryStatistics that = (FormulaFactoryStatistics) o; - return positiveLiterals == that.positiveLiterals && - negativeLiterals == that.negativeLiterals && - negations == that.negations && - implications == that.implications && - equivalences == that.equivalences && - conjunctions2 == that.conjunctions2 && - conjunctions3 == that.conjunctions3 && - conjunctions4 == that.conjunctions4 && - conjunctionsN == that.conjunctionsN && - disjunctions2 == that.disjunctions2 && - disjunctions3 == that.disjunctions3 && - disjunctions4 == that.disjunctions4 && - disjunctionsN == that.disjunctionsN && - ccCounter == that.ccCounter && - pbCounter == that.pbCounter && - cnfCounter == that.cnfCounter && - Objects.equals(name, that.name); + final FormulaFactoryStatistics that = (FormulaFactoryStatistics) o; + return this.positiveLiterals == that.positiveLiterals && + this.negativeLiterals == that.negativeLiterals && + this.negations == that.negations && + this.implications == that.implications && + this.equivalences == that.equivalences && + this.conjunctions2 == that.conjunctions2 && + this.conjunctions3 == that.conjunctions3 && + this.conjunctions4 == that.conjunctions4 && + this.conjunctionsN == that.conjunctionsN && + this.disjunctions2 == that.disjunctions2 && + this.disjunctions3 == that.disjunctions3 && + this.disjunctions4 == that.disjunctions4 && + this.disjunctionsN == that.disjunctionsN && + this.ccCounter == that.ccCounter && + this.pbCounter == that.pbCounter && + this.cnfCounter == that.cnfCounter && + Objects.equals(this.name, that.name); } @Override public int hashCode() { - return Objects.hash(name, positiveLiterals, negativeLiterals, negations, implications, equivalences, conjunctions2, - conjunctions3, conjunctions4, conjunctionsN, disjunctions2, disjunctions3, disjunctions4, disjunctionsN, - ccCounter, pbCounter, cnfCounter); + return Objects.hash(this.name, this.positiveLiterals, this.negativeLiterals, this.negations, this.implications, this.equivalences, this.conjunctions2, + this.conjunctions3, this.conjunctions4, this.conjunctionsN, this.disjunctions2, this.disjunctions3, this.disjunctions4, this.disjunctionsN, + this.ccCounter, this.pbCounter, this.cnfCounter); } @Override public String toString() { return "FormulaFactoryStatistics{" + - "name='" + name + '\'' + - ", positiveLiterals=" + positiveLiterals + - ", negativeLiterals=" + negativeLiterals + - ", negations=" + negations + - ", implications=" + implications + - ", equivalences=" + equivalences + - ", conjunctions2=" + conjunctions2 + - ", conjunctions3=" + conjunctions3 + - ", conjunctions4=" + conjunctions4 + - ", conjunctionsN=" + conjunctionsN + - ", disjunctions2=" + disjunctions2 + - ", disjunctions3=" + disjunctions3 + - ", disjunctions4=" + disjunctions4 + - ", disjunctionsN=" + disjunctionsN + - ", ccCounter=" + ccCounter + - ", pbCounter=" + pbCounter + - ", cnfCounter=" + cnfCounter + + "name='" + this.name + '\'' + + ", positiveLiterals=" + this.positiveLiterals + + ", negativeLiterals=" + this.negativeLiterals + + ", negations=" + this.negations + + ", implications=" + this.implications + + ", equivalences=" + this.equivalences + + ", conjunctions2=" + this.conjunctions2 + + ", conjunctions3=" + this.conjunctions3 + + ", conjunctions4=" + this.conjunctions4 + + ", conjunctionsN=" + this.conjunctionsN + + ", disjunctions2=" + this.disjunctions2 + + ", disjunctions3=" + this.disjunctions3 + + ", disjunctions4=" + this.disjunctions4 + + ", disjunctionsN=" + this.disjunctionsN + + ", ccCounter=" + this.ccCounter + + ", pbCounter=" + this.pbCounter + + ", cnfCounter=" + this.cnfCounter + '}'; } } diff --git a/src/main/java/org/logicng/formulas/NAryOperator.java b/src/main/java/org/logicng/formulas/NAryOperator.java index bc94e77c..e6cfe3e2 100644 --- a/src/main/java/org/logicng/formulas/NAryOperator.java +++ b/src/main/java/org/logicng/formulas/NAryOperator.java @@ -61,7 +61,7 @@ public abstract class NAryOperator extends Formula { */ NAryOperator(final FType type, final Collection operands, final FormulaFactory f) { super(type, f); - this.operands = operands.toArray(new Formula[operands.size()]); + this.operands = operands.toArray(new Formula[0]); this.hashCode = 0; } @@ -87,7 +87,7 @@ public long numberOfNodes() { @Override public int numberOfOperands() { - return operands.length; + return this.operands.length; } @Override @@ -127,7 +127,7 @@ public Formula restrict(final Assignment assignment) { final LinkedHashSet nops = new LinkedHashSet<>(); for (final Formula op : this.operands) nops.add(op.restrict(assignment)); - return f.naryOperator(type, nops); + return this.f.naryOperator(this.type, nops); } @Override @@ -143,7 +143,7 @@ public boolean containsNode(final Formula formula) { final List fOps = new ArrayList<>(formula.numberOfOperands()); for (final Formula op : formula) fOps.add(op); - for (Formula op : this.operands) { + for (final Formula op : this.operands) { fOps.remove(op); if (op.containsNode(formula)) return true; @@ -156,12 +156,12 @@ public Formula substitute(final Substitution substitution) { final LinkedHashSet nops = new LinkedHashSet<>(); for (final Formula op : this.operands) nops.add(op.substitute(substitution)); - return f.naryOperator(type, nops); + return this.f.naryOperator(this.type, nops); } @Override public Formula negate() { - return f.not(this); + return this.f.not(this); } @Override @@ -171,7 +171,7 @@ public Formula nnf() { final LinkedHashSet nops = new LinkedHashSet<>(); for (final Formula op : this.operands) nops.add(op.nnf()); - nnf = f.naryOperator(type, nops); + nnf = this.f.naryOperator(this.type, nops); this.transformationCache.put(NNF, nnf); } return nnf; @@ -182,10 +182,10 @@ public Formula nnf() { * @param shift shift value * @return hashcode */ - protected int hashCode(int shift) { + protected int hashCode(final int shift) { if (this.hashCode == 0) { int temp = 1; - for (Formula formula : this.operands) + for (final Formula formula : this.operands) temp += formula.hashCode(); temp *= shift; this.hashCode = temp; @@ -200,14 +200,14 @@ public Iterator iterator() { @Override public boolean hasNext() { - return i < operands.length; + return this.i < NAryOperator.this.operands.length; } @Override public Formula next() { - if (i == operands.length) + if (this.i == NAryOperator.this.operands.length) throw new NoSuchElementException(); - return operands[i++]; + return NAryOperator.this.operands[this.i++]; } @Override diff --git a/src/main/java/org/logicng/formulas/cache/TransformationCacheEntry.java b/src/main/java/org/logicng/formulas/cache/TransformationCacheEntry.java index afa7c936..2d03b84a 100644 --- a/src/main/java/org/logicng/formulas/cache/TransformationCacheEntry.java +++ b/src/main/java/org/logicng/formulas/cache/TransformationCacheEntry.java @@ -41,10 +41,12 @@ public enum TransformationCacheEntry implements CacheEntry { TSEITIN("Tseitin conjunctive normal form"), TSEITIN_VARIABLE("Tseitin variable"), FACTORIZED_CNF("factorized conjunctive normal form"), + BDD_CNF("conjunctive normal form via BDD"), FACTORIZED_DNF("factorized disjunctive normal form"), AIG("and-inverter graph"), UNIT_PROPAGATION("unit propagation"), - DISTRIBUTIVE_SIMPLIFICATION("distributive simplification"); + DISTRIBUTIVE_SIMPLIFICATION("distributive simplification"), + ANONYMIZATION("anonymization"); private final String description; @@ -58,6 +60,6 @@ public enum TransformationCacheEntry implements CacheEntry { @Override public String description() { - return "TransformationCacheEntry{description=" + description + "}"; + return "TransformationCacheEntry{description=" + this.description + "}"; } } diff --git a/src/main/java/org/logicng/graphs/datastructures/Hypergraph.java b/src/main/java/org/logicng/graphs/datastructures/Hypergraph.java new file mode 100644 index 00000000..5b3cf87b --- /dev/null +++ b/src/main/java/org/logicng/graphs/datastructures/Hypergraph.java @@ -0,0 +1,120 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.datastructures; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * A simple data structure for a hypergraph. + * @param the content type of the graph's nodes + * @version 1.4.0 + * @since 1.4.0 + */ +public class Hypergraph { + + private final LinkedHashSet> nodes; + private final LinkedHashSet> edges; + + /** + * Constructs a new hypergraph. + */ + public Hypergraph() { + this.nodes = new LinkedHashSet<>(); + this.edges = new LinkedHashSet<>(); + } + + /** + * Returns the set of nodes of the hypergraph. + * @return the set of nodes of the hypergraph + */ + public Set> nodes() { + return this.nodes; + } + + /** + * Returns the set of edges of the hypergraph. + * @return the set of edges of the hypergraph + */ + public Set> edges() { + return this.edges; + } + + /** + * Adds a node to the hypergraph. + * @param node the node + */ + void addNode(final HypergraphNode node) { + this.nodes.add(node); + } + + /** + * Adds an edge to the hypergraph. + * @param edge the edge + */ + public void addEdge(final HypergraphEdge edge) { + this.edges.add(edge); + } + + /** + * Adds an edges to the hypergraph. The edge is represented by its connected nodes. + * @param nodes the nodes of the edge + */ + public void addEdge(final Collection> nodes) { + final HypergraphEdge edge = new HypergraphEdge<>(nodes); + this.nodes.addAll(nodes); + this.edges.add(edge); + } + + /** + * Adds an edges to the hypergraph. The edge is represented by its connected nodes. + * @param nodes the nodes of the edge + */ + public void addEdge(final HypergraphNode... nodes) { + addEdge(Arrays.asList(nodes)); + } + + /** + * Adds a set of edges to the hypergraph. + * @param edges the edges + */ + public void addEdges(final Collection> edges) { + this.edges.addAll(edges); + } + + @Override + public String toString() { + return "Hypergraph{" + + "nodes=" + this.nodes + + ", edges=" + this.edges + + '}'; + } +} diff --git a/src/main/java/org/logicng/graphs/datastructures/HypergraphEdge.java b/src/main/java/org/logicng/graphs/datastructures/HypergraphEdge.java new file mode 100644 index 00000000..02d26271 --- /dev/null +++ b/src/main/java/org/logicng/graphs/datastructures/HypergraphEdge.java @@ -0,0 +1,109 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.datastructures; + +import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * An edge in a hypergraph. + * @param the content type of the graph's nodes + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphEdge { + + private final LinkedHashSet> nodes; + + /** + * Constructs a new edge for a given set of nodes. + * @param nodes the nodes connected by this edge + */ + public HypergraphEdge(final Collection> nodes) { + this.nodes = new LinkedHashSet<>(nodes); + for (final HypergraphNode node : nodes) + node.addEdge(this); + } + + /** + * Constructs a new edge for a given set of nodes. + * @param nodes the nodes connected by this edge + */ + public HypergraphEdge(HypergraphNode... nodes) { + this(Arrays.asList(nodes)); + } + + /** + * Returns the nodes connected by this edge. + * @return the nodes connected by this edge + */ + public Set> nodes() { + return this.nodes; + } + + /** + * Computes the center of gravity for this edge (see Aloul, Markov, and Sakallah). + * @param nodeOrdering the node ordering for which the COG is computed + * @return the center of gravity for this edge + */ + public double centerOfGravity(final Map, Integer> nodeOrdering) { + int cog = 0; + for (final HypergraphNode node : this.nodes) { + final Integer level = nodeOrdering.get(node); + if (level == null) + throw new IllegalStateException("Could not find node " + node + " in the node ordering."); + cog += level; + } + return (double) cog / this.nodes.size(); + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final HypergraphEdge that = (HypergraphEdge) o; + return Objects.equals(this.nodes, that.nodes); + } + + @Override + public int hashCode() { + return Objects.hash(this.nodes); + } + + @Override + public String toString() { + return "HypergraphEdge{" + + "nodes=" + this.nodes + + '}'; + } +} diff --git a/src/main/java/org/logicng/graphs/datastructures/HypergraphNode.java b/src/main/java/org/logicng/graphs/datastructures/HypergraphNode.java new file mode 100644 index 00000000..d88694c1 --- /dev/null +++ b/src/main/java/org/logicng/graphs/datastructures/HypergraphNode.java @@ -0,0 +1,124 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.datastructures; + +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +/** + * A node in an hypergraph. + * @param the content type of the graph's nodes + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphNode { + + private final Hypergraph graph; + private final T content; + private final LinkedHashSet> edges; + + /** + * Constructs a new hypergraph node for a given graph and content. + * @param graph the graph for this node + * @param content the content of this node + */ + public HypergraphNode(final Hypergraph graph, final T content) { + this.graph = graph; + this.content = content; + this.edges = new LinkedHashSet<>(); + this.graph.addNode(this); + } + + /** + * Returns the hypergraph of this node. + * @return the hypergraph of this node + */ + public Hypergraph graph() { + return this.graph; + } + + /** + * Returns the content of this node. + * @return the content of this node + */ + public T content() { + return this.content; + } + + /** + * Returns the edges which are connected with this node. + * @return the edges which are connected with this node + */ + public Set> edges() { + return this.edges; + } + + /** + * Adds an edge to this node. + * @param edge the edge + */ + public void addEdge(final HypergraphEdge edge) { + this.edges.add(edge); + } + + /** + * Computes the tentative new location for this node (see Aloul, Markov, and Sakallah). + * @param nodeOrdering the node ordering for which the COG is computed + * @return the tentative new location for this node + */ + public double computeTentativeNewLocation(final Map, Integer> nodeOrdering) { + double newLocation = 0; + for (final HypergraphEdge edge : this.edges) + newLocation += edge.centerOfGravity(nodeOrdering); + return newLocation / this.edges.size(); + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final HypergraphNode that = (HypergraphNode) o; + return Objects.equals(this.graph, that.graph) && + Objects.equals(this.content, that.content); + } + + @Override + public int hashCode() { + return Objects.hash(this.graph, this.content); + } + + @Override + public String toString() { + return "HypergraphNode{" + + "content=" + this.content + + '}'; + } +} diff --git a/src/main/java/org/logicng/graphs/generators/HypergraphGenerator.java b/src/main/java/org/logicng/graphs/generators/HypergraphGenerator.java new file mode 100644 index 00000000..68cae0aa --- /dev/null +++ b/src/main/java/org/logicng/graphs/generators/HypergraphGenerator.java @@ -0,0 +1,109 @@ +package org.logicng.graphs.generators; + +import org.logicng.formulas.FType; +import org.logicng.formulas.Formula; +import org.logicng.formulas.Variable; +import org.logicng.graphs.datastructures.Hypergraph; +import org.logicng.graphs.datastructures.HypergraphNode; +import org.logicng.predicates.CNFPredicate; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; + +/** + * A generator for hypergraphs from formulas. + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphGenerator { + + /** + * Generates a hypergraph from a CNF given as a list of clauses. Each variable is represented by a node in the + * hypergraph, each clause is represented by a hyperedge between all variables of the clause. + * @param cnf the list of clauses of the CNF for the hypergraph + * @return the hypergraph for the CNF formula + */ + public static Hypergraph fromCNF(final Formula... cnf) { + return fromCNF(Arrays.asList(cnf)); + } + + /** + * Generates a hypergraph from a CNF given as a list of clauses. Each variable is represented by a node in the + * hypergraph, each clause is represented by a hyperedge between all variables of the clause. + * @param cnf the list of clauses of the CNF for the hypergraph + * @return the hypergraph for the CNF formula + */ + public static Hypergraph fromCNF(final List cnf) { + final Hypergraph hypergraph = new Hypergraph<>(); + final Map> nodes = new HashMap<>(); + for (final Formula clause : cnf) + switch (clause.type()) { + case PBC: + case EQUIV: + case IMPL: + case NOT: + case AND: + throw new IllegalStateException("Unexpected element in clause: " + clause); + case LITERAL: + case OR: + addClause(clause, hypergraph, nodes); + break; + } + return hypergraph; + } + + /** + * Generates a hypergraph from a CNF. Each variable is represented by a node in the hypergraph, each clause + * is represented by a hyperedge between all variables of the clause. + * @param cnf the CNF formula for the hypergraph + * @return the hypergraph for the CNF formula + */ + public static Hypergraph fromCNF(final Formula cnf) { + if (!cnf.holds(new CNFPredicate())) + throw new IllegalArgumentException("Cannot generate a hypergraph from a non-cnf formula"); + final Hypergraph hypergraph = new Hypergraph<>(); + final Map> nodes = new HashMap<>(); + switch (cnf.type()) { + case PBC: + case EQUIV: + case IMPL: + case NOT: + throw new IllegalStateException("Unexpected element in CNF: " + cnf); + case LITERAL: + case OR: + addClause(cnf, hypergraph, nodes); + break; + case AND: + for (final Formula clause : cnf) + addClause(clause, hypergraph, nodes); + break; + } + return hypergraph; + } + + /** + * Adds a single clause to the given hypergraph and updates the variable to node mapping. + * @param formula the clause + * @param hypergraph the current hypergraph + * @param nodes the mapping from variables in the CNF to nodes in the hypergraph + */ + private static void addClause(final Formula formula, final Hypergraph hypergraph, final Map> nodes) { + assert formula.type() == FType.LITERAL || formula.type() == FType.OR; + final SortedSet variables = formula.variables(); + final Set> clause = new HashSet<>(); + for (final Variable variable : variables) { + HypergraphNode node = nodes.get(variable); + if (node == null) { + node = new HypergraphNode<>(hypergraph, variable); + nodes.put(variable, node); + } + clause.add(node); + } + hypergraph.addEdge(clause); + } +} diff --git a/src/main/java/org/logicng/io/parsers/FormulaParser.java b/src/main/java/org/logicng/io/parsers/FormulaParser.java index 4fa6857f..9dfcaad4 100644 --- a/src/main/java/org/logicng/io/parsers/FormulaParser.java +++ b/src/main/java/org/logicng/io/parsers/FormulaParser.java @@ -28,9 +28,18 @@ package org.logicng.io.parsers; +import org.antlr.v4.runtime.BailErrorStrategy; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.misc.ParseCancellationException; import org.logicng.formulas.Formula; import org.logicng.formulas.FormulaFactory; +import java.io.IOException; +import java.io.InputStream; + /** * Super class for a formula parser. * @version 1.2 @@ -39,22 +48,78 @@ public abstract class FormulaParser { private final FormulaFactory f; + private Lexer lexer; + private ParserWithFormula parser; /** * Constructor. * @param f the formula factory */ - public FormulaParser(FormulaFactory f) { + FormulaParser(final FormulaFactory f) { this.f = f; } + /** + * Sets the internal lexer and the parser. + * @param lexer the lexer + * @param parser the parser + */ + void setLexerAndParser(final Lexer lexer, final ParserWithFormula parser) { + this.lexer = lexer; + this.parser = parser; + this.parser.setFormulaFactory(this.f); + this.lexer.removeErrorListeners(); + this.parser.removeErrorListeners(); + this.parser.setErrorHandler(new BailErrorStrategy()); + } + + /** + * Parses and returns a given input stream. + * @param inputStream an input stream + * @return the {@link Formula} representation of this stream + * @throws ParserException if there was a problem with the input stream + */ + public Formula parse(final InputStream inputStream) throws ParserException { + if (inputStream == null) { + return this.f.verum(); + } + try { + final CharStream input = CharStreams.fromStream(inputStream); + this.lexer.setInputStream(input); + final CommonTokenStream tokens = new CommonTokenStream(this.lexer); + this.parser.setInputStream(tokens); + return this.parser.getParsedFormula(); + } catch (final IOException e) { + throw new ParserException("IO exception when parsing the formula", e); + } catch (final ParseCancellationException e) { + throw new ParserException("Parse cancellation exception when parsing the formula", e); + } catch (final LexerException e) { + throw new ParserException("Lexer exception when parsing the formula.", e); + } + } + /** * Parses and returns a given string. - * @param string the input string - * @return the {@link Formula} representation of the given string - * @throws ParserException if there was a problem parsing the string + * @param in a string + * @return the {@link Formula} representation of this string + * @throws ParserException if the string was not a valid formula */ - public abstract Formula parse(final String string) throws ParserException; + public Formula parse(final String in) throws ParserException { + if (in == null || in.isEmpty()) { + return this.f.verum(); + } + try { + final CharStream input = CharStreams.fromString(in); + this.lexer.setInputStream(input); + final CommonTokenStream tokens = new CommonTokenStream(this.lexer); + this.parser.setInputStream(tokens); + return this.parser.getParsedFormula(); + } catch (final ParseCancellationException e) { + throw new ParserException("Parse cancellation exception when parsing the formula", e); + } catch (final LexerException e) { + throw new ParserException("Lexer exception when parsing the formula.", e); + } + } /** * Returns the factory of this parser. @@ -66,6 +131,6 @@ public FormulaFactory factory() { @Override public String toString() { - return this.getClass().getSimpleName(); + return getClass().getSimpleName(); } } diff --git a/src/main/java/org/logicng/io/parsers/ParserWithFormula.java b/src/main/java/org/logicng/io/parsers/ParserWithFormula.java new file mode 100644 index 00000000..5d70ff1a --- /dev/null +++ b/src/main/java/org/logicng/io/parsers/ParserWithFormula.java @@ -0,0 +1,38 @@ +package org.logicng.io.parsers; + +import org.antlr.v4.runtime.Parser; +import org.antlr.v4.runtime.TokenStream; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; + +/** + * Abstract super class for parsers which have a formula factory and return a formula. + * @version 1.4.0 + * @since 1.4.0 + */ +public abstract class ParserWithFormula extends Parser { + + protected FormulaFactory f; + + /** + * Constructor. + * @param input the token stream (e.g. a lexer) for the parser + */ + public ParserWithFormula(final TokenStream input) { + super(input); + } + + /** + * Sets the LogicNG formula factory for this parser + * @param f the LogicNG formula factory + */ + public void setFormulaFactory(final FormulaFactory f) { + this.f = f; + } + + /** + * Returns the parsed formula. + * @return the parsed formula + */ + public abstract Formula getParsedFormula(); +} diff --git a/src/main/java/org/logicng/io/parsers/PropositionalParser.java b/src/main/java/org/logicng/io/parsers/PropositionalParser.java index d9c8f19b..cba5bdd8 100644 --- a/src/main/java/org/logicng/io/parsers/PropositionalParser.java +++ b/src/main/java/org/logicng/io/parsers/PropositionalParser.java @@ -28,12 +28,7 @@ package org.logicng.io.parsers; -import org.antlr.v4.runtime.BailErrorStrategy; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.misc.ParseCancellationException; -import org.logicng.formulas.Formula; import org.logicng.formulas.FormulaFactory; /** @@ -60,38 +55,15 @@ */ public final class PropositionalParser extends FormulaParser { - private final PropositionalLexer lexer; - private final LogicNGPropositionalParser parser; - /** * Constructs a new parser. * @param f the formula factory */ public PropositionalParser(final FormulaFactory f) { super(f); - this.lexer = new PropositionalLexer(null); - CommonTokenStream tokens = new CommonTokenStream(this.lexer); - this.parser = new LogicNGPropositionalParser(tokens); - this.parser.setFormulaFactory(f); - this.lexer.removeErrorListeners(); - this.parser.removeErrorListeners(); - this.parser.setErrorHandler(new BailErrorStrategy()); - } - - @Override - public Formula parse(final String string) throws ParserException { - if (string == null || string.isEmpty()) - return factory().verum(); - try { - CharStream input = CharStreams.fromString(string); - this.lexer.setInputStream(input); - CommonTokenStream tokens = new CommonTokenStream(this.lexer); - this.parser.setInputStream(tokens); - return this.parser.formula().f; - } catch (ParseCancellationException e) { - throw new ParserException("Parse cancellation exception when parsing the formula", e); - } catch (LexerException e) { - throw new ParserException("Lexer exception when parsing the formula.", e); - } + final PropositionalLexer lexer = new PropositionalLexer(null); + final CommonTokenStream tokens = new CommonTokenStream(lexer); + final ParserWithFormula parser = new LogicNGPropositionalParser(tokens); + setLexerAndParser(lexer, parser); } } diff --git a/src/main/java/org/logicng/io/parsers/PseudoBooleanParser.java b/src/main/java/org/logicng/io/parsers/PseudoBooleanParser.java index 19c17d85..eaf0f623 100644 --- a/src/main/java/org/logicng/io/parsers/PseudoBooleanParser.java +++ b/src/main/java/org/logicng/io/parsers/PseudoBooleanParser.java @@ -28,12 +28,7 @@ package org.logicng.io.parsers; -import org.antlr.v4.runtime.BailErrorStrategy; -import org.antlr.v4.runtime.CharStream; -import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.misc.ParseCancellationException; -import org.logicng.formulas.Formula; import org.logicng.formulas.FormulaFactory; /** @@ -70,38 +65,15 @@ */ public final class PseudoBooleanParser extends FormulaParser { - private final PseudoBooleanLexer lexer; - private final LogicNGPseudoBooleanParser parser; - /** * Constructs a new parser for pseudo boolean formulas. * @param f the formula factory */ public PseudoBooleanParser(final FormulaFactory f) { super(f); - this.lexer = new PseudoBooleanLexer(null); - CommonTokenStream tokens = new CommonTokenStream(this.lexer); - this.parser = new LogicNGPseudoBooleanParser(tokens); - this.parser.setFormulaFactory(f); - this.lexer.removeErrorListeners(); - this.parser.removeErrorListeners(); - this.parser.setErrorHandler(new BailErrorStrategy()); - } - - @Override - public Formula parse(final String string) throws ParserException { - if (string == null || string.isEmpty()) - return factory().verum(); - try { - CharStream input = CharStreams.fromString(string); - this.lexer.setInputStream(input); - CommonTokenStream tokens = new CommonTokenStream(this.lexer); - this.parser.setInputStream(tokens); - return this.parser.formula().f; - } catch (ParseCancellationException e) { - throw new ParserException("Parse cancellation exception when parsing the formula", e); - } catch (LexerException e) { - throw new ParserException("Lexer exception when parsing the formula.", e); - } + final PseudoBooleanLexer lexer = new PseudoBooleanLexer(null); + final CommonTokenStream tokens = new CommonTokenStream(lexer); + final ParserWithFormula parser = new LogicNGPseudoBooleanParser(tokens); + setLexerAndParser(lexer, parser); } } diff --git a/src/main/java/org/logicng/io/readers/DimacsReader.java b/src/main/java/org/logicng/io/readers/DimacsReader.java index 71e2f623..a8e606a2 100644 --- a/src/main/java/org/logicng/io/readers/DimacsReader.java +++ b/src/main/java/org/logicng/io/readers/DimacsReader.java @@ -31,7 +31,6 @@ import org.logicng.formulas.Formula; import org.logicng.formulas.FormulaFactory; import org.logicng.formulas.Literal; -import org.logicng.io.parsers.ParserException; import java.io.BufferedReader; import java.io.File; @@ -64,10 +63,9 @@ private DimacsReader() { * @param file the file * @param f the formula factory * @return the list of formulas (clauses) - * @throws IOException if there was a problem reading the file - * @throws ParserException if there was a problem parsing the formula + * @throws IOException if there was a problem reading the file */ - public static List readCNF(final File file, final FormulaFactory f) throws IOException, ParserException { + public static List readCNF(final File file, final FormulaFactory f) throws IOException { return readCNF(file, f, "v"); } @@ -80,17 +78,17 @@ public static List readCNF(final File file, final FormulaFactory f) thr * @throws IOException if there was a problem reading the file */ public static List readCNF(final File file, final FormulaFactory f, final String prefix) throws IOException { - List result = new ArrayList<>(); + final List result = new ArrayList<>(); try (final BufferedReader br = new BufferedReader(new FileReader(file))) { while (br.ready()) { final String line = br.readLine(); if (!line.startsWith("c") && !line.startsWith("p") && !line.trim().isEmpty()) { - String[] split = line.split("\\s+"); + final String[] split = line.split("\\s+"); if (!"0".equals(split[split.length - 1].trim())) throw new IllegalArgumentException("Line " + line + " did not end with 0."); - LinkedHashSet vars = new LinkedHashSet<>(split.length - 1); + final LinkedHashSet vars = new LinkedHashSet<>(split.length - 1); for (int i = 0; i < split.length - 1; i++) { - String lit = split[i].trim(); + final String lit = split[i].trim(); if (!lit.isEmpty()) { if (lit.startsWith("-")) vars.add(f.literal(prefix + split[i].trim().substring(1), false)); @@ -111,10 +109,9 @@ public static List readCNF(final File file, final FormulaFactory f, fin * @param fileName the file name * @param f the formula factory * @return the list of formulas (clauses) - * @throws IOException if there was a problem reading the file - * @throws ParserException if there was a problem parsing the formula + * @throws IOException if there was a problem reading the file */ - public static List readCNF(final String fileName, final FormulaFactory f) throws IOException, ParserException { + public static List readCNF(final String fileName, final FormulaFactory f) throws IOException { return readCNF(new File(fileName), f, "v"); } @@ -124,11 +121,9 @@ public static List readCNF(final String fileName, final FormulaFactory * @param f the formula factory * @param prefix the prefix for the variable names * @return the list of formulas (clauses) - * @throws IOException if there was a problem reading the file - * @throws ParserException if there was a problem parsing the formula + * @throws IOException if there was a problem reading the file */ - public static List readCNF(final String fileName, final FormulaFactory f, final String prefix) - throws IOException, ParserException { + public static List readCNF(final String fileName, final FormulaFactory f, final String prefix) throws IOException { return readCNF(new File(fileName), f, prefix); } diff --git a/src/main/java/org/logicng/solvers/MiniSat.java b/src/main/java/org/logicng/solvers/MiniSat.java index 4c7db2e5..f95f3f4a 100644 --- a/src/main/java/org/logicng/solvers/MiniSat.java +++ b/src/main/java/org/logicng/solvers/MiniSat.java @@ -87,7 +87,7 @@ private enum SolverStyle {MINISAT, GLUCOSE, MINICARD} private final SolverStyle style; private final LNGIntVector validStates; private final boolean initialPhase; - private boolean incremental; + private final boolean incremental; private int nextStateId; /** @@ -182,7 +182,7 @@ public static MiniSat miniCard(final FormulaFactory f, final MiniSatConfig confi } @Override - public void add(final Formula formula, Proposition proposition) { + public void add(final Formula formula, final Proposition proposition) { if (formula.type() == FType.PBC) { final PBConstraint constraint = (PBConstraint) formula; this.result = UNDEF; @@ -199,7 +199,7 @@ else if (constraint.comparator() == CType.EQ && constraint.rhs() == 1) { this.addClauseSet(constraint.cnf(), proposition); } else { final EncodingResult result = EncodingResult.resultForMiniSat(this.f, this); - ccEncoder.encode(constraint, result); + this.ccEncoder.encode(constraint, result); } } else this.addClauseSet(constraint.cnf(), proposition); @@ -221,11 +221,11 @@ public void addWithoutUnknown(final Formula formula) { } @Override - public CCIncrementalData addIncrementalCC(PBConstraint cc) { + public CCIncrementalData addIncrementalCC(final PBConstraint cc) { if (!cc.isCC()) throw new IllegalArgumentException("Cannot generate an incremental cardinality constraint on a pseudo-Boolean constraint"); final EncodingResult result = EncodingResult.resultForMiniSat(this.f, this); - return ccEncoder.encodeIncremental(cc, result); + return this.ccEncoder.encodeIncremental(cc, result); } @Override @@ -235,7 +235,7 @@ protected void addClause(final Formula formula, final Proposition proposition) { } @Override - protected void addClauseWithRelaxation(Variable relaxationVar, Formula formula) { + protected void addClauseWithRelaxation(final Variable relaxationVar, final Formula formula) { this.result = UNDEF; final SortedSet literals = new TreeSet<>(formula.literals()); literals.add(relaxationVar); @@ -247,7 +247,7 @@ public Tristate sat(final SATHandler handler) { if (this.result != UNDEF) return this.result; this.result = this.solver.solve(handler); - return result; + return this.result; } @Override @@ -255,10 +255,10 @@ public Tristate sat(final SATHandler handler, final Literal literal) { final LNGIntVector clauseVec = new LNGIntVector(1); int index = this.solver.idxForName(literal.name()); if (index == -1) { - index = this.solver.newVar(!initialPhase, true); + index = this.solver.newVar(!this.initialPhase, true); this.solver.addName(literal.name(), index); } - int litNum = literal.phase() ? index * 2 : (index * 2) ^ 1; + final int litNum = literal.phase() ? index * 2 : (index * 2) ^ 1; clauseVec.push(litNum); this.result = this.solver.solve(handler, clauseVec); return this.result; @@ -271,10 +271,10 @@ public Tristate sat(final SATHandler handler, final Collection variables) { throw new IllegalStateException("Cannot get a model as long as the formula is not solved. Call 'sat' first."); final LNGIntVector relevantIndices = variables == null ? null : new LNGIntVector(variables.size()); if (relevantIndices != null) { - for (Variable var : variables) { + for (final Variable var : variables) { relevantIndices.push(this.solver.idxForName(var.name())); } } @@ -306,7 +306,7 @@ public List enumerateAllModels(final Collection variables) } @Override - public List enumerateAllModels(Collection variables, Collection additionalVariables) { + public List enumerateAllModels(final Collection variables, final Collection additionalVariables) { return enumerateAllModels(variables, additionalVariables, null); } @@ -316,10 +316,10 @@ public List enumerateAllModels(final Collection literals, } @Override - public List enumerateAllModels(Collection variables, Collection additionalVariables, ModelEnumerationHandler handler) { - List models = new LinkedList<>(); + public List enumerateAllModels(final Collection variables, final Collection additionalVariables, final ModelEnumerationHandler handler) { + final List models = new LinkedList<>(); SolverState stateBeforeEnumeration = null; - if (this.style == SolverStyle.MINISAT && incremental) + if (this.style == SolverStyle.MINISAT && this.incremental) stateBeforeEnumeration = this.saveState(); boolean proceed = true; SortedSet allVariables = new TreeSet<>(); @@ -332,12 +332,12 @@ public List enumerateAllModels(Collection variables, Colle final LNGIntVector relevantIndices = variables == null ? null : new LNGIntVector(variables.size()); LNGIntVector relevantAllIndices = null; if (relevantIndices != null) { - for (Variable var : variables) { + for (final Variable var : variables) { relevantIndices.push(this.solver.idxForName(var.name())); } relevantAllIndices = additionalVariables.isEmpty() ? relevantIndices : new LNGIntVector(allVariables.size()); if (!additionalVariables.isEmpty()) { - for (Variable var : allVariables) { + for (final Variable var : allVariables) { relevantAllIndices.push(this.solver.idxForName(var.name())); } } @@ -349,14 +349,14 @@ public List enumerateAllModels(Collection variables, Colle models.add(model); proceed = handler == null || handler.foundModel(model); if (model.size() > 0) { - LNGIntVector blockingClause = generateBlockingClause(modelFromSolver, relevantIndices); + final LNGIntVector blockingClause = generateBlockingClause(modelFromSolver, relevantIndices); this.solver.addClause(blockingClause, null); this.result = UNDEF; } else { break; } } - if (this.style == SolverStyle.MINISAT && incremental) + if (this.style == SolverStyle.MINISAT && this.incremental) this.loadState(stateBeforeEnumeration); return models; } @@ -373,8 +373,10 @@ private LNGIntVector generateBlockingClause(final LNGBooleanVector modelFromSolv blockingClause = new LNGIntVector(relevantVars.size()); for (int i = 0; i < relevantVars.size(); i++) { final int varIndex = relevantVars.get(i); - final boolean varAssignment = modelFromSolver.get(varIndex); - blockingClause.push(varAssignment ? (varIndex * 2) ^ 1 : varIndex * 2); + if (varIndex != -1) { + final boolean varAssignment = modelFromSolver.get(varIndex); + blockingClause.push(varAssignment ? (varIndex * 2) ^ 1 : varIndex * 2); + } } } else { blockingClause = new LNGIntVector(modelFromSolver.size()); @@ -389,15 +391,15 @@ private LNGIntVector generateBlockingClause(final LNGBooleanVector modelFromSolv @Override public SolverState saveState() { final int id = this.nextStateId++; - validStates.push(id); + this.validStates.push(id); return new SolverState(id, this.solver.saveState()); } @Override public void loadState(final SolverState state) { int index = -1; - for (int i = validStates.size() - 1; i >= 0 && index == -1; i--) - if (validStates.get(i) == state.id()) + for (int i = this.validStates.size() - 1; i >= 0 && index == -1; i--) + if (this.validStates.get(i) == state.id()) index = i; if (index == -1) throw new IllegalArgumentException("The given solver state is not valid anymore."); @@ -430,11 +432,11 @@ public UNSATCore unsatCore() { if (this.underlyingSolver() instanceof GlucoseSyrup && this.config.incremental()) throw new IllegalStateException("Cannot compute an unsat core with Glucose in incremental mode."); - DRUPTrim trimmer = new DRUPTrim(); + final DRUPTrim trimmer = new DRUPTrim(); - Map clause2proposition = new HashMap<>(); + final Map clause2proposition = new HashMap<>(); final LNGVector clauses = new LNGVector<>(this.underlyingSolver().pgOriginalClauses().size()); - for (MiniSatStyleSolver.ProofInformation pi : this.underlyingSolver().pgOriginalClauses()) { + for (final MiniSatStyleSolver.ProofInformation pi : this.underlyingSolver().pgOriginalClauses()) { clauses.push(pi.clause()); final Formula clause = getFormulaForVector(pi.clause()); Proposition proposition = pi.proposition(); @@ -444,7 +446,7 @@ public UNSATCore unsatCore() { } if (containsEmptyClause(clauses)) { - final Proposition emptyClause = clause2proposition.get(f.falsum()); + final Proposition emptyClause = clause2proposition.get(this.f.falsum()); return new UNSATCore<>(Collections.singletonList(emptyClause), true); } @@ -452,7 +454,7 @@ public UNSATCore unsatCore() { if (result.trivialUnsat()) return handleTrivialCase(); final LinkedHashSet propositions = new LinkedHashSet<>(); - for (LNGIntVector vector : result.unsatCore()) + for (final LNGIntVector vector : result.unsatCore()) propositions.add(clause2proposition.get(getFormulaForVector(vector))); return new UNSATCore<>(new ArrayList<>(propositions), false); } @@ -464,13 +466,13 @@ public UNSATCore unsatCore() { */ private LNGIntVector generateClauseVector(final Collection literals) { final LNGIntVector clauseVec = new LNGIntVector(literals.size()); - for (Literal lit : literals) { + for (final Literal lit : literals) { int index = this.solver.idxForName(lit.name()); if (index == -1) { - index = this.solver.newVar(!initialPhase, true); + index = this.solver.newVar(!this.initialPhase, true); this.solver.addName(lit.name(), index); } - int litNum = lit.phase() ? index * 2 : (index * 2) ^ 1; + final int litNum = lit.phase() ? index * 2 : (index * 2) ^ 1; clauseVec.push(litNum); } return clauseVec; @@ -487,13 +489,13 @@ private Assignment createAssignment(final LNGBooleanVector vec, final LNGIntVect final Assignment model = new Assignment(); if (relevantIndices == null) { for (int i = 0; i < vec.size(); i++) { - model.addLiteral(f.literal(this.solver.nameForIdx(i), vec.get(i))); + model.addLiteral(this.f.literal(this.solver.nameForIdx(i), vec.get(i))); } } else { for (int i = 0; i < relevantIndices.size(); i++) { final int index = relevantIndices.get(i); if (index != -1) { - model.addLiteral(f.literal(this.solver.nameForIdx(index), vec.get(index))); + model.addLiteral(this.f.literal(this.solver.nameForIdx(index), vec.get(index))); } } } @@ -525,7 +527,7 @@ private UNSATCore handleTrivialCase() { for (int j = i + 1; j < clauses.size(); j++) { if (clauses.get(i).clause().size() == 1 && clauses.get(j).clause().size() == 1 && clauses.get(i).clause().get(0) + clauses.get(j).clause().get(0) == 0) { - LinkedHashSet propositions = new LinkedHashSet<>(); + final LinkedHashSet propositions = new LinkedHashSet<>(); final Proposition pi = clauses.get(i).proposition(); final Proposition pj = clauses.get(j).proposition(); propositions.add(pi != null ? pi : new StandardProposition(getFormulaForVector(clauses.get(i).clause()))); @@ -537,20 +539,20 @@ private UNSATCore handleTrivialCase() { } private boolean containsEmptyClause(final LNGVector clauses) { - for (LNGIntVector clause : clauses) + for (final LNGIntVector clause : clauses) if (clause.empty()) return true; return false; } - private Formula getFormulaForVector(LNGIntVector vector) { + private Formula getFormulaForVector(final LNGIntVector vector) { final List literals = new ArrayList<>(vector.size()); for (int i = 0; i < vector.size(); i++) { - int lit = vector.get(i); - String varName = this.underlyingSolver().nameForIdx(Math.abs(lit) - 1); - literals.add(f.literal(varName, lit > 0)); + final int lit = vector.get(i); + final String varName = this.underlyingSolver().nameForIdx(Math.abs(lit) - 1); + literals.add(this.f.literal(varName, lit > 0)); } - return f.or(literals); + return this.f.or(literals); } @Override diff --git a/src/main/java/org/logicng/solvers/SATSolver.java b/src/main/java/org/logicng/solvers/SATSolver.java index 509d0e8b..caf11c14 100644 --- a/src/main/java/org/logicng/solvers/SATSolver.java +++ b/src/main/java/org/logicng/solvers/SATSolver.java @@ -86,6 +86,24 @@ public void add(final Formula formula) { */ public abstract void addWithoutUnknown(final Formula formula); + /** + * Adds a given set of propositions to the solver. + * @param propositions the set of propositions + */ + public void addPropositions(final Collection propositions) { + for (final Proposition proposition : propositions) + add(proposition); + } + + /** + * Adds a given set of propositions to the solver. + * @param propositions the set of propositions + */ + public void addPropositions(final Proposition... propositions) { + for (final Proposition proposition : propositions) + add(proposition); + } + /** * Adds a proposition to the solver. The formulas of the proposition are first converted to CNF. * @param proposition the proposition @@ -181,7 +199,7 @@ void addClauseSet(final Formula formula, final Proposition proposition) { this.addClause(formula, proposition); break; case AND: - for (Formula op : formula) + for (final Formula op : formula) this.addClause(op, proposition); break; default: @@ -204,7 +222,7 @@ private void addClauseSetWithRelaxation(final Variable relaxationVar, final Form this.addClauseWithRelaxation(relaxationVar, formula); break; case AND: - for (Formula op : formula) + for (final Formula op : formula) this.addClauseWithRelaxation(relaxationVar, op); break; default: diff --git a/src/main/java/org/logicng/transformations/Anonymizer.java b/src/main/java/org/logicng/transformations/Anonymizer.java new file mode 100644 index 00000000..7aa2bb97 --- /dev/null +++ b/src/main/java/org/logicng/transformations/Anonymizer.java @@ -0,0 +1,62 @@ +package org.logicng.transformations; + +import org.logicng.datastructures.Substitution; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaTransformation; +import org.logicng.formulas.Variable; + +import static org.logicng.formulas.cache.TransformationCacheEntry.ANONYMIZATION; + +/** + * An anonymizer replaces all variables in a formula with new variables generated from a given prefix and a counter. + * @version 1.4.0 + * @since 1.4.0 + */ +public class Anonymizer implements FormulaTransformation { + + private final Substitution substitution; + private final String prefix; + private int counter; + + /** + * Constructs a new anonymizer with a given prefix for the newly introduced variables. + * @param prefix the prefix for the new variables + * @param startCounter where should the counter start + */ + public Anonymizer(final String prefix, final int startCounter) { + this.prefix = prefix; + this.substitution = new Substitution(); + this.counter = startCounter; + } + + /** + * Constructs a new anonymizer with a given prefix for the newly introduced variables. + * @param prefix the prefix for the new variables + */ + public Anonymizer(final String prefix) { + this(prefix, 0); + } + + /** + * Constructs a new anonymizer with the standard variable prefix 'v'. + */ + public Anonymizer() { + this("v"); + } + + @Override + public Formula apply(final Formula formula, final boolean cache) { + if (formula.variables().isEmpty()) + return formula; + final Formula cached = formula.transformationCacheEntry(ANONYMIZATION); + if (cache && cached != null) + return cached; + for (final Variable variable : formula.variables()) + if (this.substitution.getSubstitution(variable) == null) + this.substitution.addMapping(variable, formula.factory().variable(this.prefix + this.counter++)); + final Formula transformed = formula.substitute(this.substitution); + if (cache) + formula.setTransformationCacheEntry(ANONYMIZATION, transformed); + return transformed; + } +} diff --git a/src/main/java/org/logicng/transformations/FormulaFactoryImporter.java b/src/main/java/org/logicng/transformations/FormulaFactoryImporter.java index 9adfc452..4d5eb4d5 100644 --- a/src/main/java/org/logicng/transformations/FormulaFactoryImporter.java +++ b/src/main/java/org/logicng/transformations/FormulaFactoryImporter.java @@ -111,7 +111,7 @@ public Formula apply(final Formula formula, final boolean cache) { * @return the applied operands of the given operator */ private LinkedHashSet gatherAppliedOperands(final NAryOperator operator) { - final LinkedHashSet applied = new LinkedHashSet(); + final LinkedHashSet applied = new LinkedHashSet<>(); for (final Formula operand : operator) { applied.add(apply(operand, false)); } diff --git a/src/main/java/org/logicng/transformations/cnf/BDDCNFTransformation.java b/src/main/java/org/logicng/transformations/cnf/BDDCNFTransformation.java new file mode 100644 index 00000000..9bfe93d6 --- /dev/null +++ b/src/main/java/org/logicng/transformations/cnf/BDDCNFTransformation.java @@ -0,0 +1,103 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.transformations.cnf; + +import org.logicng.bdds.BDDFactory; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaTransformation; +import org.logicng.predicates.CNFPredicate; +import org.logicng.transformations.UnitPropagation; + +import static org.logicng.formulas.FType.LITERAL; +import static org.logicng.formulas.cache.TransformationCacheEntry.BDD_CNF; + +/** + * Transformation of a formula in CNF by converting it to a BDD. + * @version 1.4.0 + * @since 1.4.0 + */ +public final class BDDCNFTransformation implements FormulaTransformation { + + private final CNFPredicate cnfPredicate = new CNFPredicate(); + private final UnitPropagation up = new UnitPropagation(); + private BDDFactory bddFactory; + private final boolean externalFactory; + private int numNodes; + private int cacheSize; + + + /** + * Constructs a new BDD-based CNF transformation with a given BDD factory + * @param factory the BDD factory + */ + public BDDCNFTransformation(final BDDFactory factory) { + this.bddFactory = factory; + this.externalFactory = true; + } + + /** + * Constructs a new BDD-based CNF transformation with a given number of nodes and cache size for the BDD factory. + * @param numNodes the number of nodes + * @param cacheSize the cache size + */ + public BDDCNFTransformation(final int numNodes, final int cacheSize) { + this.numNodes = numNodes; + this.cacheSize = cacheSize; + this.externalFactory = false; + } + + /** + * Constructs a new BDD-based CNF transformation and determines the node size and cache size on its own. + */ + public BDDCNFTransformation() { + this(0, 0); + } + + @Override + public Formula apply(final Formula formula, final boolean cache) { + if (formula.type().precedence() >= LITERAL.precedence()) + return formula; + if (formula.holds(this.cnfPredicate)) + return formula; + final Formula cached = formula.transformationCacheEntry(BDD_CNF); + if (cache && cached != null) + return cached; + if (!this.externalFactory) { + final int numVars = formula.variables().size(); + final int nodes = this.numNodes == 0 ? numVars * 30 : this.numNodes; + final int cacheS = this.cacheSize == 0 ? numVars * 20 : this.cacheSize; + this.bddFactory = new BDDFactory(nodes, cacheS, formula.factory()); + this.bddFactory.setNumberOfVars(numVars); + } + final Formula cnf = this.bddFactory.build(formula).cnf().transform(this.up); + if (cache) + formula.setTransformationCacheEntry(BDD_CNF, cnf); + return cnf; + } +} diff --git a/src/main/java/org/logicng/transformations/cnf/CNFConfig.java b/src/main/java/org/logicng/transformations/cnf/CNFConfig.java index a6253d07..2062ea38 100644 --- a/src/main/java/org/logicng/transformations/cnf/CNFConfig.java +++ b/src/main/java/org/logicng/transformations/cnf/CNFConfig.java @@ -42,7 +42,7 @@ public final class CNFConfig extends Configuration { * The algorithm for the CNF encoding. */ public enum Algorithm { - FACTORIZATION, TSEITIN, PLAISTED_GREENBAUM, ADVANCED + FACTORIZATION, TSEITIN, PLAISTED_GREENBAUM, ADVANCED, BDD } final Algorithm algorithm; @@ -119,7 +119,7 @@ public Builder fallbackAlgorithmForAdvancedEncoding(final Algorithm fallbackAlgo * @param distributionBoundary the distribution boundary * @return the builder */ - public Builder distributionBoundary(int distributionBoundary) { + public Builder distributionBoundary(final int distributionBoundary) { this.distributionBoundary = distributionBoundary; return this; } @@ -130,7 +130,7 @@ public Builder distributionBoundary(int distributionBoundary) { * @param createdClauseBoundary the clause creation boundary * @return the builder */ - public Builder createdClauseBoundary(int createdClauseBoundary) { + public Builder createdClauseBoundary(final int createdClauseBoundary) { this.createdClauseBoundary = createdClauseBoundary; return this; } @@ -141,7 +141,7 @@ public Builder createdClauseBoundary(int createdClauseBoundary) { * @param atomBoundary the atom boundary * @return the builder */ - public Builder atomBoundary(int atomBoundary) { + public Builder atomBoundary(final int atomBoundary) { this.atomBoundary = atomBoundary; return this; } diff --git a/src/main/java/org/logicng/transformations/cnf/CNFEncoder.java b/src/main/java/org/logicng/transformations/cnf/CNFEncoder.java index d0c94e24..f8388b5c 100644 --- a/src/main/java/org/logicng/transformations/cnf/CNFEncoder.java +++ b/src/main/java/org/logicng/transformations/cnf/CNFEncoder.java @@ -51,6 +51,7 @@ public class CNFEncoder { private CNFFactorization factorization; private CNFFactorization advancedFactorization; + private BDDCNFTransformation bddCnfTransformation; private TseitinTransformation tseitin; private PlaistedGreenbaumTransformation plaistedGreenbaum; private int currentAtomBoundary; @@ -98,6 +99,10 @@ public Formula encode(final Formula formula) { this.plaistedGreenbaum = new PlaistedGreenbaumTransformation(this.config().atomBoundary); } return formula.transform(this.plaistedGreenbaum); + case BDD: + if (this.bddCnfTransformation == null) + this.bddCnfTransformation = new BDDCNFTransformation(); + return formula.transform(this.bddCnfTransformation); case ADVANCED: if (this.factorizationHandler == null) { this.factorizationHandler = new AdvancedFactorizationHandler(); @@ -159,7 +164,7 @@ private Formula singleAdvancedEncoding(final Formula formula) { public CNFConfig config() { if (this.config != null) return this.config; - Configuration cnfConfig = this.f.configurationFor(ConfigurationType.CNF); + final Configuration cnfConfig = this.f.configurationFor(ConfigurationType.CNF); return cnfConfig != null ? (CNFConfig) cnfConfig : this.defaultConfig; } @@ -178,7 +183,7 @@ private static class AdvancedFactorizationHandler implements FactorizationHandle private int currentDistributions; private int currentClauses; - private void reset(int distributionBoundary, int createdClauseBoundary) { + private void reset(final int distributionBoundary, final int createdClauseBoundary) { this.distributionBoundary = distributionBoundary; this.createdClauseBoundary = createdClauseBoundary; this.currentDistributions = 0; @@ -187,12 +192,12 @@ private void reset(int distributionBoundary, int createdClauseBoundary) { @Override public boolean performedDistribution() { - return distributionBoundary == -1 || ++currentDistributions <= distributionBoundary; + return this.distributionBoundary == -1 || ++this.currentDistributions <= this.distributionBoundary; } @Override - public boolean createdClause(Formula clause) { - return createdClauseBoundary == -1 || ++currentClauses <= createdClauseBoundary; + public boolean createdClause(final Formula clause) { + return this.createdClauseBoundary == -1 || ++this.currentClauses <= this.createdClauseBoundary; } } } diff --git a/src/main/java/org/logicng/transformations/qe/ExistentialQuantifierElimination.java b/src/main/java/org/logicng/transformations/qe/ExistentialQuantifierElimination.java index d13fab60..5bb48dcd 100644 --- a/src/main/java/org/logicng/transformations/qe/ExistentialQuantifierElimination.java +++ b/src/main/java/org/logicng/transformations/qe/ExistentialQuantifierElimination.java @@ -63,14 +63,14 @@ public ExistentialQuantifierElimination(final Variable... variables) { * @param variables the collection of variables */ public ExistentialQuantifierElimination(final Collection variables) { - this.elimination = variables.toArray(new Variable[variables.size()]); + this.elimination = variables.toArray(new Variable[0]); } @Override - public Formula apply(final Formula formula, boolean cache) { + public Formula apply(final Formula formula, final boolean cache) { Formula result = formula; final FormulaFactory f = formula.factory(); - for (final Variable var : elimination) + for (final Variable var : this.elimination) result = f.or(result.restrict(new Assignment(var)), result.restrict(new Assignment(var.negate()))); return result; } diff --git a/src/main/java/org/logicng/transformations/qe/UniversalQuantifierElimination.java b/src/main/java/org/logicng/transformations/qe/UniversalQuantifierElimination.java index 2462d2ec..0011a537 100644 --- a/src/main/java/org/logicng/transformations/qe/UniversalQuantifierElimination.java +++ b/src/main/java/org/logicng/transformations/qe/UniversalQuantifierElimination.java @@ -63,14 +63,14 @@ public UniversalQuantifierElimination(final Variable... variables) { * @param variables the collection of variables */ public UniversalQuantifierElimination(final Collection variables) { - this.elimination = variables.toArray(new Variable[variables.size()]); + this.elimination = variables.toArray(new Variable[0]); } @Override - public Formula apply(final Formula formula, boolean cache) { + public Formula apply(final Formula formula, final boolean cache) { Formula result = formula; final FormulaFactory f = formula.factory(); - for (final Variable var : elimination) + for (final Variable var : this.elimination) result = f.and(result.restrict(new Assignment(var)), result.restrict(new Assignment(var.negate()))); return result; } diff --git a/src/main/java/org/logicng/transformations/qmc/QuineMcCluskeyAlgorithm.java b/src/main/java/org/logicng/transformations/qmc/QuineMcCluskeyAlgorithm.java new file mode 100644 index 00000000..fc1d0581 --- /dev/null +++ b/src/main/java/org/logicng/transformations/qmc/QuineMcCluskeyAlgorithm.java @@ -0,0 +1,356 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// +package org.logicng.transformations.qmc; + +import org.logicng.cardinalityconstraints.CCIncrementalData; +import org.logicng.datastructures.Assignment; +import org.logicng.datastructures.Tristate; +import org.logicng.formulas.CType; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Variable; +import org.logicng.solvers.MiniSat; +import org.logicng.solvers.SATSolver; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.SortedMap; +import java.util.TreeMap; + +/** + * An implementation of the Quine-McCluskey algorithm for minimizing canonical DNFs. This implementation is fairly + * efficient but keep in mind that Quine-McCluskey can be a very expensive procedure for large canonical DNFs. So we + * would not recommend using this implementation for super large DNFs. + * @version 1.4.0 + * @since 1.4.0 + */ +public class QuineMcCluskeyAlgorithm { + + /** + * Computes a minimized DNF for a given formula projected to a given set of variables. First a projected canonical + * DNF of the formula is computed for the given variables. Then for this canonical DNF the Quine-McCluskey algorithm + * is computed. + * @param formula the formula + * @param relevantVariables the relevant formulas for the projected canonical DNF + * @return the minimized DNF due to Quine-McCluskey + */ + public static Formula compute(final Formula formula, final Collection relevantVariables) { + final FormulaFactory f = formula.factory(); + final SATSolver solver = MiniSat.miniSat(f); + solver.add(formula); + final List models = relevantVariables == null ? solver.enumerateAllModels() : solver.enumerateAllModels(relevantVariables); + return compute(models, f); + } + + /** + * Computes a minimized DNF for a given formula. First the canonical DNF of the formula is computed. Then for + * this canonical DNF the Quine-McCluskey algorithm is computed. + * @param formula the formula + * @return the minimized DNF due to Quine-McCluskey + */ + public static Formula compute(final Formula formula) { + return compute(formula, null); + } + + /** + * Computes a minimized DNF for a given set of models. These models have to represent a canonical DNF of a formula + * as computed e.g. by the projected model enumeration of a SAT solver {@link SATSolver#enumerateAllModels(Variable[])} + * or by the transformation {@link org.logicng.transformations.dnf.CanonicalDNFEnumeration}. + * @param models the models of the formula + * @param f the formula factory + * @return the minimized DNF due to Quine-McCluskey + */ + public static Formula compute(final List models, final FormulaFactory f) { + if (models.isEmpty()) + return f.falsum(); + if (models.size() == 1) + return models.get(0).formula(f); + final List varOrder = new ArrayList<>(models.get(0).positiveLiterals()); + varOrder.addAll(models.get(0).negativeVariables()); + Collections.sort(varOrder); + final List terms = transformModels2Terms(models, varOrder, f); + final LinkedHashSet primeImplicants = computePrimeImplicants(terms); + final TermTable primeTermTable = new TermTable(primeImplicants); + primeTermTable.simplifyTableByDominance(); + final List chosenTerms = chooseSatBased(primeTermTable, f); + return computeFormula(chosenTerms, varOrder); + } + + /** + * Transforms a given list of models to a term list as used in the QMC implementation. + * @param models the models + * @param varOrder the variable ordering + * @param f the formula factory + * @return the list of terms + */ + private static List transformModels2Terms(final List models, final List varOrder, + final FormulaFactory f) { + final List terms = new ArrayList<>(models.size()); + for (final Assignment model : models) { + final List minterm = new ArrayList<>(); + for (final Variable variable : varOrder) + minterm.add(model.evaluateLit(variable) ? variable : variable.negate()); + terms.add(convertToTerm(minterm, f)); + } + return terms; + } + + /** + * Computes the list of all prime implicants for a given set of terms. + * @param terms the terms + * @return all prime implicants for the given terms + */ + static LinkedHashSet computePrimeImplicants(final List terms) { + SortedMap> termsInClasses = generateInitialTermClasses(terms); + SortedMap> newTermsInClasses = combineInTermClasses(termsInClasses); + final LinkedHashSet primeImplicants = getUnusedTerms(termsInClasses); + while (!newTermsInClasses.isEmpty()) { + termsInClasses = newTermsInClasses; + newTermsInClasses = combineInTermClasses(termsInClasses); + primeImplicants.addAll(getUnusedTerms(termsInClasses)); + } + return primeImplicants; + } + + /** + * Computes the combination of all terms in two adjacent classes. + * @param termsInClasses the terms sorted in term classes + * @return the combined terms + */ + static SortedMap> combineInTermClasses(final SortedMap> termsInClasses) { + final SortedMap> newTermsInClasses = new TreeMap<>(); + for (int i = 0; i < termsInClasses.lastKey(); i++) { + final LinkedHashSet thisClass = termsInClasses.get(i); + final LinkedHashSet otherClass = termsInClasses.get(i + 1); + if (thisClass != null && otherClass != null) { + for (final Term thisTerm : thisClass) { + for (final Term otherTerm : otherClass) { + final Term combined = thisTerm.combine(otherTerm); + if (combined != null) { + thisTerm.setUsed(true); + otherTerm.setUsed(true); + LinkedHashSet foundTerms = newTermsInClasses.get(combined.termClass()); + if (foundTerms == null) { + foundTerms = new LinkedHashSet<>(); + newTermsInClasses.put(combined.termClass(), foundTerms); + } + foundTerms.add(combined); + } + } + } + } + } + return newTermsInClasses; + } + + /** + * Computes the unused terms in set of terms. These terms are the prime implicants in the QMC. + * @param termsInClasses the terms sorted in term classes + * @return the unused terms in the given set of terms + */ + private static LinkedHashSet getUnusedTerms(final SortedMap> termsInClasses) { + final LinkedHashSet unusedTerms = new LinkedHashSet<>(); + for (final Map.Entry> entry : termsInClasses.entrySet()) + for (final Term term : entry.getValue()) + if (!term.isUsed()) + unusedTerms.add(term); + return unusedTerms; + } + + /** + * Computes and returns the initial term classes for a given list of terms. + * @param terms the terms + * @return the terms sorted in term classes + */ + static SortedMap> generateInitialTermClasses(final List terms) { + final SortedMap> termsInClasses = new TreeMap<>(); + for (final Term term : terms) { + LinkedHashSet presentTerms = termsInClasses.get(term.termClass()); + if (presentTerms == null) { + presentTerms = new LinkedHashSet<>(); + termsInClasses.put(term.termClass(), presentTerms); + } + presentTerms.add(term); + } + return termsInClasses; + } + + /** + * Computes the formula for a given list of chosen terms and a variable order. + * @param chosenTerms the chosen terms + * @param varOrder the variable order + * @return the formula for this term list and variable ordering + */ + private static Formula computeFormula(final List chosenTerms, final List varOrder) { + final FormulaFactory f = varOrder.get(0).factory(); + final List operands = new ArrayList<>(chosenTerms.size()); + for (final Term term : chosenTerms) + operands.add(term.translateToFormula(varOrder)); + return f.or(operands); + } + + /** + * Converts a given minterm to a QMC internal term. + * @param minterm the minterm as list of literals + * @param f the formula factory + * @return the term for this minterm + */ + static Term convertToTerm(final List minterm, final FormulaFactory f) { + final Tristate[] bits = new Tristate[minterm.size()]; + for (int i = 0; i < minterm.size(); i++) + bits[i] = Tristate.fromBool(minterm.get(i).phase()); + return new Term(bits, Collections.singletonList(f.and(minterm))); + } + + /** + * Choose a minimal set of prime implicants from the final prime implicant table of QMC. This implementation uses + * a MaxSAT formulation for this variant of the SET COVER problem which should be more efficient than e.g. Petrick's + * method for all cases in which this Quine-McCluskey implementation yields a result in reasonable time. + * @param table the final prime term table + * @param f the formula factory + * @return the list of chosen prime implicants which are minimal wrt. to their number + */ + static List chooseSatBased(final TermTable table, final FormulaFactory f) { + final LinkedHashMap var2Term = new LinkedHashMap<>(); + final LinkedHashMap formula2VarMapping = new LinkedHashMap<>(); + final SATSolver satSolver = initializeSolver(table, f, var2Term, formula2VarMapping); + if (satSolver.sat() == Tristate.FALSE) + throw new IllegalStateException("Solver must be satisfiable after adding the initial formula."); + return minimize(satSolver, var2Term, f); + } + + /** + * Initializes the SAT solver for the SET COVER problem formulation. + * @param table the prime implicant table + * @param f the formula factory + * @param var2Term a mapping from selector variable to prime implicant + * @param formula2VarMapping a mapping form minterm to variable + * @return the initialized SAT solver + */ + private static SATSolver initializeSolver(final TermTable table, final FormulaFactory f, final LinkedHashMap var2Term, final LinkedHashMap formula2VarMapping) { + final LinkedHashMap> minterm2Variants = new LinkedHashMap<>(); + int count = 0; + String prefix = "@MINTERM_SEL_"; + for (final Formula formula : table.columnHeaders()) { + final Variable selector = f.variable(prefix + count++); + formula2VarMapping.put(formula, selector); + minterm2Variants.put(selector, new ArrayList()); + } + count = 0; + prefix = "@TERM_SEL_"; + + final SATSolver solver = MiniSat.miniSat(f); + for (final Term term : table.lineHeaders()) { + final Variable termSelector = f.variable(prefix + count); + var2Term.put(termSelector, term); + final List mintermSelectors = new ArrayList<>(); + for (final Formula formula : term.minterms()) { + final Variable mintermSelector = formula2VarMapping.get(formula); + if (mintermSelector != null) { + final Variable selectorVariant = f.variable(mintermSelector.name() + "_" + count); + minterm2Variants.get(mintermSelector).add(selectorVariant); + mintermSelectors.add(selectorVariant); + } + } + final List operands = new ArrayList<>(); + for (int i = 0; i < mintermSelectors.size(); i++) { + final Variable mintermSelector = mintermSelectors.get(i); + solver.add(f.clause(termSelector.negate(), mintermSelector)); + operands.add(mintermSelector.negate()); + for (int j = i + 1; j < mintermSelectors.size(); j++) { + final Variable mintermSelector2 = mintermSelectors.get(j); + solver.add(f.or(mintermSelector.negate(), mintermSelector2)); + solver.add(f.or(mintermSelector2.negate(), mintermSelector)); + } + } + operands.add(termSelector); + solver.add(f.clause(operands)); + count++; + } + for (final List variables : minterm2Variants.values()) + solver.add(f.clause(variables)); + return solver; + } + + /** + * Performs the minimization via incremental cardinality constraints. + * @param satSolver the SAT solver + * @param var2Term a mapping from selector variable to prime implicant + * @param f the formula factory + * @return a minimal set of prime implicants to cover all minterms + */ + private static List minimize(final SATSolver satSolver, final LinkedHashMap var2Term, final FormulaFactory f) { + final Assignment initialModel = satSolver.model(); + List currentTermVars = computeCurrentTermVars(initialModel, var2Term.keySet()); + if (currentTermVars.size() == 2) { + satSolver.add(f.amo(var2Term.keySet())); + if (satSolver.sat() == Tristate.TRUE) + currentTermVars = computeCurrentTermVars(satSolver.model(), var2Term.keySet()); + } else { + final CCIncrementalData incData = satSolver.addIncrementalCC(f.cc(CType.LE, currentTermVars.size() - 1, var2Term.keySet())); + while (satSolver.sat() == Tristate.TRUE) { + currentTermVars = computeCurrentTermVars(satSolver.model(), var2Term.keySet()); + incData.newUpperBoundForSolver(currentTermVars.size() - 1); + } + } + return computeTerms(currentTermVars, var2Term); + } + + /** + * Computes the terms from a given list of selector variables + * @param currentTermVars the list of selector variables + * @param var2Term a mapping from selector variable to prime implicant + * @return the terms for the given list + */ + private static List computeTerms(final List currentTermVars, final LinkedHashMap var2Term) { + final List terms = new ArrayList<>(currentTermVars.size()); + for (final Variable currentTermVar : currentTermVars) + terms.add(var2Term.get(currentTermVar)); + return terms; + } + + /** + * Computes the prime implicant selector variables for a given model. + * @param model the model + * @param vars the list of selector variables + * @return the selector variables in the given model + */ + private static List computeCurrentTermVars(final Assignment model, final Collection vars) { + final List result = new ArrayList<>(); + for (final Variable var : vars) + if (model.evaluateLit(var)) + result.add(var); + return result; + } +} diff --git a/src/main/java/org/logicng/transformations/qmc/Term.java b/src/main/java/org/logicng/transformations/qmc/Term.java new file mode 100644 index 00000000..29fffb61 --- /dev/null +++ b/src/main/java/org/logicng/transformations/qmc/Term.java @@ -0,0 +1,200 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.transformations.qmc; + +import org.logicng.datastructures.Tristate; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Variable; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * A term in the Quine–McCluskey algorithm. A term represents a set of + * minterms of a canonical DNF and has its own representation as a vector + * of tristates. Two minterms are considered equals if their bit representation + * is equals (independent of their associated minterms) + * @version 1.4.0 + * @since 1.4.0 + */ +class Term { + + private final Tristate[] bits; + private final List minterms; + private final int termClass; + private boolean used; + private final long undefNum; + + /** + * Constructs a new term with a given set of bits and the related minterms. + * @param bits the bits + * @param minterms the minterms + */ + Term(final Tristate[] bits, final List minterms) { + this.bits = bits; + this.minterms = minterms; + this.termClass = countNonNegativeBits(bits); + this.undefNum = computeUndefNum(bits); + } + + /** + * Counts the number of non-negative bits of a given tristate vector. + * @param bits the tristate vector + * @return the number of non-negative bits + */ + private int countNonNegativeBits(final Tristate[] bits) { + int result = 0; + for (final Tristate bit : bits) + if (bit != Tristate.FALSE) + result++; + return result; + } + + /** + * Computes a number representing the number and position of the UNDEF states in the bit array. + * @param bits the bit array + * @return the computed number + */ + private long computeUndefNum(final Tristate[] bits) { + long sum = 0; + for (int i = bits.length - 1; i >= 0; i--) + if (bits[i] == Tristate.UNDEF) + sum += Math.pow(2, bits.length - 1 - i); + return sum; + } + + /** + * Returns the bit array of this term. + * @return the bit array of this term + */ + Tristate[] bits() { + return this.bits; + } + + /** + * Returns the associated minterms for this term. + * @return the associated minterms for this term + */ + List minterms() { + return this.minterms; + } + + /** + * Returns the term class of this term. The term class is the number of non-negative bits in the bit array. + * @return the term class of this term + */ + int termClass() { + return this.termClass; + } + + /** + * Returns whether this term was used in the combination step of QMC or not. + * @return whether this term was used + */ + boolean isUsed() { + return this.used; + } + + /** + * Sets whether this term was used in the combination step of QMC or not. + * @param used whether this term was used + */ + void setUsed(final boolean used) { + this.used = used; + } + + /** + * Combines this term with another term if possible. This is only possible if their bit vectors + * differ in exactly one position. In this case a new term with the new bit vector and the + * combined minterms is returned. If no union is possible, {@code null} is returned. + * @param other the other term + * @return a new combined term or {@code null} if not possible + */ + Term combine(final Term other) { + if (this.bits.length != other.bits.length) + return null; + if (this.undefNum != other.undefNum) + return null; + int diffPosition = -1; + for (int i = 0; i < this.bits.length; i++) + if (this.bits[i] != other.bits[i]) { + if (diffPosition != -1) + return null; + else + diffPosition = i; + } + if (diffPosition == -1) + return null; + final Tristate[] newBits = Arrays.copyOf(this.bits, this.bits.length); + newBits[diffPosition] = Tristate.UNDEF; + final List newMinterms = new ArrayList<>(this.minterms); + newMinterms.addAll(other.minterms); + return new Term(newBits, newMinterms); + } + + /** + * Translates this term to a formula for a given variable ordering + * @param varOrder the variable ordering + * @return the translation of this term to a formula + */ + Formula translateToFormula(final List varOrder) { + final FormulaFactory f = varOrder.get(0).factory(); + assert this.bits.length == varOrder.size(); + final List operands = new ArrayList<>(varOrder.size()); + for (int i = 0; i < this.bits.length; i++) + if (this.bits[i] != Tristate.UNDEF) + operands.add(this.bits[i] == Tristate.TRUE ? varOrder.get(i) : varOrder.get(i).negate()); + return f.and(operands); + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final Term term = (Term) o; + return Arrays.equals(this.bits, term.bits); + } + + @Override + public int hashCode() { + return Arrays.hashCode(this.bits); + } + + @Override + public String toString() { + return "Term{" + + "bits=" + Arrays.toString(this.bits) + + ", minterms=" + this.minterms + + ", termClass=" + this.termClass + + '}'; + } +} diff --git a/src/main/java/org/logicng/transformations/qmc/TermTable.java b/src/main/java/org/logicng/transformations/qmc/TermTable.java new file mode 100644 index 00000000..030c75d7 --- /dev/null +++ b/src/main/java/org/logicng/transformations/qmc/TermTable.java @@ -0,0 +1,267 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.transformations.qmc; + +import org.logicng.datastructures.Tristate; +import org.logicng.formulas.Formula; + +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.Vector; + +/** + * A term table in the Quine–McCluskey algorithm. The term table is used + * for the line and column dominance checks. + * @version 1.4.0 + * @since 1.4.0 + */ +class TermTable { + + private final Vector columnHeaders; + private final Vector lineHeaders; + private final Vector> matrixLines; + private final Vector> matrixColumns; + + /** + * Constructs a prime term table from a given list of terms. + * @param terms the terms + */ + TermTable(final LinkedHashSet terms) { + this.lineHeaders = new Vector<>(terms.size()); + this.columnHeaders = initializeColumnHeaders(terms); + this.matrixLines = new Vector<>(terms.size()); + this.matrixColumns = new Vector<>(this.columnHeaders.size()); + final Vector matrixLineTemplate = new Vector<>(this.columnHeaders.size()); + for (int i = 0; i < this.columnHeaders.size(); i++) + matrixLineTemplate.add(false); + final Vector matrixColumnTemplate = new Vector<>(terms.size()); + for (int i = 0; i < terms.size(); i++) + matrixColumnTemplate.add(false); + for (int i = 0; i < this.columnHeaders.size(); i++) + this.matrixColumns.add(new Vector<>(matrixColumnTemplate)); + int count = 0; + for (final Term term : terms) { + this.lineHeaders.add(term); + final Vector matrixLine = new Vector<>(matrixLineTemplate); + this.matrixLines.add(matrixLine); + for (final Formula minterm : term.minterms()) { + final int index = this.columnHeaders.indexOf(minterm); + matrixLine.setElementAt(true, index); + this.matrixColumns.get(index).setElementAt(true, count); + } + count++; + } + } + + /** + * Initialize the column headers with the minterms + * @param terms the terms + * @return the column headers + */ + private Vector initializeColumnHeaders(final LinkedHashSet terms) { + final LinkedHashSet header = new LinkedHashSet<>(); + for (final Term term : terms) + header.addAll(term.minterms()); + return new Vector<>(header); + } + + /** + * Simplifies this table by using column and line dominance. + */ + void simplifyTableByDominance() { + boolean changed; + do { + final boolean eliminatedColumns = eliminateColumnDominance(); + final boolean eliminatedLines = eliminateLineDominance(); + changed = eliminatedColumns || eliminatedLines; + } while (changed); + } + + /** + * Performs elimination of columns by dominance. + * @return {@code true} if a elimination was performed, {@code false} otherwise + */ + private boolean eliminateColumnDominance() { + final SortedSet toEliminate = new TreeSet<>(); + for (int i = 0; i < this.matrixColumns.size(); i++) + for (int j = i + 1; j < this.matrixColumns.size(); j++) { + if (isSubsetOf(this.matrixColumns.get(i), this.matrixColumns.get(j))) + toEliminate.add(j); + else if (isSubsetOf(this.matrixColumns.get(j), this.matrixColumns.get(i))) + toEliminate.add(i); + } + int count = 0; + for (final Integer toDelete : toEliminate) + deleteColumn(toDelete - count++); + return !toEliminate.isEmpty(); + } + + /** + * Performs elimination of lines by dominance. + * @return {@code true} if a elimination was performed, {@code false} otherwise + */ + private boolean eliminateLineDominance() { + final SortedSet toEliminate = new TreeSet<>(); + for (int i = 0; i < this.matrixLines.size(); i++) + for (int j = i + 1; j < this.matrixLines.size(); j++) { + if (isSubsetOf(this.matrixLines.get(i), this.matrixLines.get(j))) + toEliminate.add(i); + else if (isSubsetOf(this.matrixLines.get(j), this.matrixLines.get(i))) + toEliminate.add(j); + } + int count = 0; + for (final Integer toDelete : toEliminate) + deleteLine(toDelete - count++); + return !toEliminate.isEmpty(); + } + + /** + * Returns whether vec1 is a subset of vec2. + * @param vec1 the first vector + * @param vec2 the second vector + * @return {@code true} if vec1 is a subset of vec2, {@code false} otherwise + */ + static boolean isSubsetOf(final Vector vec1, final Vector vec2) { + for (int i = 0; i < vec1.size(); i++) + if (vec1.get(i) && !vec2.get(i)) + return false; + return true; + } + + /** + * Deletes a column at a given index. + * @param colIndex the index + */ + private void deleteColumn(final int colIndex) { + this.columnHeaders.removeElementAt(colIndex); + this.matrixColumns.removeElementAt(colIndex); + for (final Vector line : this.matrixLines) + line.removeElementAt(colIndex); + } + + /** + * Deletes a line at a given index. + * @param lineIndex the index + */ + private void deleteLine(final int lineIndex) { + this.lineHeaders.removeElementAt(lineIndex); + this.matrixLines.removeElementAt(lineIndex); + for (final Vector column : this.matrixColumns) + column.removeElementAt(lineIndex); + } + + /** + * Returns the lines of this table. + * @return the lines of this table + */ + Vector> lines() { + return this.matrixLines; + } + + /** + * Returns the columns of this table. + * @return the columns of this table + */ + Vector> columns() { + return this.matrixColumns; + } + + /** + * Returns the column headers of this table. + * @return the column headers of this table + */ + Vector columnHeaders() { + return this.columnHeaders; + } + + /** + * Returns the line headers of this table. + * @return the line headers of this table + */ + Vector lineHeaders() { + return this.lineHeaders; + } + + @Override + public String toString() { + final Vector lineHeaderStrings = new Vector<>(); + for (final Term header : this.lineHeaders) + lineHeaderStrings.add(formatBits(header.bits())); + final int lineHeaderSize = lineHeaderStrings.firstElement().length(); + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < lineHeaderSize; i++) + sb.append(" "); + sb.append(" | "); + final LinkedHashMap legend = new LinkedHashMap<>(); + int columnSize = 0; + for (int i = 0; i < this.columnHeaders.size(); i++) { + final String key = "m" + i; + legend.put(key, this.columnHeaders.get(i).toString()); + if (key.length() > columnSize) + columnSize = key.length(); + } + for (final String s : legend.keySet()) + sb.append(String.format("%s | ", padRight(s, columnSize))); + sb.append(String.format("%n")); + + for (int i = 0; i < this.matrixLines.size(); i++) { + sb.append(String.format("%s | %s%n", lineHeaderStrings.get(i), formatMatrixLine(this.matrixLines.get(i), columnSize))); + } + return sb.toString(); + } + + private String formatMatrixLine(final Vector booleans, final int size) { + final StringBuilder sb = new StringBuilder(); + for (final Boolean entry : booleans) + sb.append(padRight((entry ? "X" : " "), size)).append(" | "); + return sb.toString(); + } + + private String formatBits(final Tristate[] bits) { + final StringBuilder sb = new StringBuilder(); + sb.append("["); + for (int i = 0; i < bits.length; i++) { + if (bits[i] == Tristate.TRUE) + sb.append("1"); + else if (bits[i] == Tristate.FALSE) + sb.append("0"); + else sb.append("-"); + if (i < bits.length - 1) + sb.append(", "); + } + sb.append("]"); + return sb.toString(); + } + + private static String padRight(final String s, final int n) { + return String.format("%1$-" + n + "s", s); + } +} diff --git a/src/main/resources/parser/LogicNGPropositional.g4 b/src/main/resources/parser/LogicNGPropositional.g4 index 4d1c84bf..ffa55644 100644 --- a/src/main/resources/parser/LogicNGPropositional.g4 +++ b/src/main/resources/parser/LogicNGPropositional.g4 @@ -28,25 +28,27 @@ grammar LogicNGPropositional; -@parser::header { -package org.logicng.io.parsers; - -import java.util.LinkedHashSet; -import org.logicng.formulas.*; +options { + superClass = ParserWithFormula; } -@members { -private FormulaFactory f; +@parser::header { + package org.logicng.io.parsers; -public void setFormulaFactory(final FormulaFactory f) { - this.f = f; + import java.util.LinkedHashSet; + import org.logicng.formulas.*; } + +@parser::members { + public Formula getParsedFormula() { + return formula().f; + } } @lexer::header { -package org.logicng.io.parsers; + package org.logicng.io.parsers; -import org.logicng.formulas.FormulaFactory; + import org.logicng.formulas.FormulaFactory; } formula returns [Formula f] @@ -82,7 +84,7 @@ equiv returns [Formula f] @init{Formula[] operands = new Formula[2];} : a = impl {operands[0] =$a.f;} (EQUIV b = equiv {operands[1] = $b.f;})? {$f = operands[1] == null ? operands[0] : f.equivalence(operands[0], operands[1]);}; -VARIABLE : [A-Za-z_@][A-Za-z0-9_]*; +VARIABLE : [A-Za-z0-9_@][A-Za-z0-9_]*; TRUE : '$true'; FALSE : '$false'; LBR : '('; diff --git a/src/main/resources/parser/LogicNGPseudoBoolean.g4 b/src/main/resources/parser/LogicNGPseudoBoolean.g4 index da13a39f..7f404df3 100644 --- a/src/main/resources/parser/LogicNGPseudoBoolean.g4 +++ b/src/main/resources/parser/LogicNGPseudoBoolean.g4 @@ -28,25 +28,27 @@ grammar LogicNGPseudoBoolean; -@parser::header { -package org.logicng.io.parsers; - -import java.util.LinkedHashSet; -import org.logicng.formulas.*; +options { + superClass = ParserWithFormula; } -@members { -private FormulaFactory f; +@parser::header { + package org.logicng.io.parsers; -public void setFormulaFactory(final FormulaFactory f) { - this.f = f; + import java.util.LinkedHashSet; + import org.logicng.formulas.*; } + +@parser::members { + public Formula getParsedFormula() { + return formula().f; + } } @lexer::header { -package org.logicng.io.parsers; + package org.logicng.io.parsers; -import org.logicng.formulas.FormulaFactory; + import org.logicng.formulas.FormulaFactory; } formula returns [Formula f] @@ -65,7 +67,8 @@ comparison returns [Formula f] | e = add GT n = NUMBER {$f = f.pbc(CType.GT, Integer.parseInt($n.text), $e.literals, $e.coeffs);}; simp returns [Formula f] - : LITERAL {$f = ($LITERAL.text.startsWith("~") ? f.literal($LITERAL.text.substring(1, $LITERAL.text.length()), false) : f.literal($LITERAL.text, true));} + : NUMBER {$f = ($NUMBER.text.startsWith("~") ? f.literal($NUMBER.text.substring(1, $NUMBER.text.length()), false) : f.literal($NUMBER.text, true));} + | LITERAL {$f = ($LITERAL.text.startsWith("~") ? f.literal($LITERAL.text.substring(1, $LITERAL.text.length()), false) : f.literal($LITERAL.text, true));} | constant {$f = $constant.f;} | comparison {$f = $comparison.f;} | LBR equiv RBR {$f = $equiv.f;}; @@ -92,7 +95,9 @@ equiv returns [Formula f] mul returns [Literal l, int c] : LITERAL {$l = ($LITERAL.text.startsWith("~") ? f.literal($LITERAL.text.substring(1, $LITERAL.text.length()), false) : f.literal($LITERAL.text, true)); $c = 1;} - | NUMBER MUL LITERAL {$l = ($LITERAL.text.startsWith("~") ? f.literal($LITERAL.text.substring(1, $LITERAL.text.length()), false) : f.literal($LITERAL.text, true)); $c = Integer.parseInt($NUMBER.text);}; + | NUMBER {$l = f.literal($NUMBER.text, true); $c = 1;} + | NUMBER MUL LITERAL {$l = ($LITERAL.text.startsWith("~") ? f.literal($LITERAL.text.substring(1, $LITERAL.text.length()), false) : f.literal($LITERAL.text, true)); $c = Integer.parseInt($NUMBER.text);} + | num = NUMBER MUL lt = NUMBER {$l = f.literal($lt.text, true); $c = Integer.parseInt($num.text);}; add returns [List literals, List coeffs] @init{$literals = new ArrayList<>(); $coeffs = new ArrayList<>();} @@ -100,7 +105,7 @@ add returns [List literals, List coeffs] NUMBER : [\-]?[0-9]+; -LITERAL : [~]?[A-Za-z_@][A-Za-z0-9_]*; +LITERAL : [~]?[A-Za-z0-9_@][A-Za-z0-9_]*; TRUE : '$true'; FALSE : '$false'; LBR : '('; diff --git a/src/test/java/org/logicng/bdds/BDDLowLevelTest.java b/src/test/java/org/logicng/bdds/BDDLowLevelTest.java new file mode 100644 index 00000000..598a0b70 --- /dev/null +++ b/src/test/java/org/logicng/bdds/BDDLowLevelTest.java @@ -0,0 +1,102 @@ +package org.logicng.bdds; + +import org.junit.Before; +import org.junit.Test; +import org.logicng.bdds.jbuddy.BDDKernel; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for some low level BDD kernel methods. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BDDLowLevelTest { + + private BDDFactory factory; + + @Before + public void init() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser parser = new PropositionalParser(f); + this.factory = new BDDFactory(1000, 1000, f); + this.factory.setNumberOfVars(3); + this.factory.build(f.verum()); + this.factory.build(f.falsum()); + this.factory.build(f.literal("A", true)); + this.factory.build(f.literal("A", false)); + this.factory.build(parser.parse("A => ~B")); + this.factory.build(parser.parse("A <=> ~B")); + this.factory.build(parser.parse("A | B | ~C")); + this.factory.build(parser.parse("A & B & ~C")); + } + + @Test + public void testStatistics() { + final BDDKernel.BDDStatistics statistics = this.factory.underlyingKernel().statistics(); + assertThat(statistics.cachesize()).isEqualTo(1000); + assertThat(statistics.freenum()).isEqualTo(993); + assertThat(statistics.gbcollectnum()).isEqualTo(0); + assertThat(statistics.nodesize()).isEqualTo(1009); + assertThat(statistics.produced()).isEqualTo(14); + assertThat(statistics.varnum()).isEqualTo(3); + assertThat(statistics.toString()).isEqualTo("BDDStatistics{produced nodes=14, allocated nodes=1009, free nodes=993, variables=3, cache size=1000, garbage collections=0}"); + } + + @Test + public void kernelTests() { + final BDDKernel kernel = this.factory.underlyingKernel(); + assertThat(kernel.ithVar(0)).isEqualTo(2); + assertThat(kernel.nithVar(0)).isEqualTo(3); + assertThat(kernel.bddVar(2)).isEqualTo(0); + assertThat(kernel.bddLow(2)).isEqualTo(0); + assertThat(kernel.bddHigh(2)).isEqualTo(1); + + } + + @Test(expected = IllegalArgumentException.class) + public void illegalKernel1() { + final BDDKernel kernel = this.factory.underlyingKernel(); + kernel.ithVar(-1); + } + + @Test(expected = IllegalArgumentException.class) + public void illegalKernel2() { + final BDDKernel kernel = this.factory.underlyingKernel(); + kernel.nithVar(-1); + } + + @Test(expected = IllegalArgumentException.class) + public void illegalKernel3() { + final BDDKernel kernel = this.factory.underlyingKernel(); + kernel.bddVar(1); + } + + @Test(expected = IllegalArgumentException.class) + public void illegalKernel4() { + final BDDKernel kernel = this.factory.underlyingKernel(); + kernel.bddLow(1); + } + + @Test(expected = IllegalArgumentException.class) + public void illegalKernel5() { + final BDDKernel kernel = this.factory.underlyingKernel(); + kernel.bddHigh(1); + } + + @Test(expected = UnsupportedOperationException.class) + public void testResettingVarNum() { + final BDDFactory factory = new BDDFactory(100, 100, new FormulaFactory()); + factory.setNumberOfVars(4); + factory.setNumberOfVars(5); + } + + @Test(expected = IllegalArgumentException.class) + public void testSetNegativeVarNum() { + final BDDFactory factory = new BDDFactory(100, 100, new FormulaFactory()); + factory.setNumberOfVars(-4); + } +} diff --git a/src/test/java/org/logicng/bdds/BDDModelEnumerationTest.java b/src/test/java/org/logicng/bdds/BDDModelEnumerationTest.java new file mode 100644 index 00000000..6590807e --- /dev/null +++ b/src/test/java/org/logicng/bdds/BDDModelEnumerationTest.java @@ -0,0 +1,151 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds; + +import org.junit.Assert; +import org.junit.Test; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.datastructures.Assignment; +import org.logicng.formulas.CType; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Variable; +import org.logicng.testutils.NQueensGenerator; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.SortedSet; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for the BDDs. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BDDModelEnumerationTest { + + private final FormulaFactory f; + + private final List formulas; + private final List> variables; + private final BigDecimal[] expected; + + public BDDModelEnumerationTest() { + final int[] problems = new int[]{3, 4, 5, 6, 7, 8, 9}; + this.expected = new BigDecimal[]{ + BigDecimal.valueOf(0), + BigDecimal.valueOf(2), + BigDecimal.valueOf(10), + BigDecimal.valueOf(4), + BigDecimal.valueOf(40), + BigDecimal.valueOf(92), + BigDecimal.valueOf(352) + }; + + this.f = new FormulaFactory(); + final NQueensGenerator generator = new NQueensGenerator(this.f); + this.formulas = new ArrayList<>(problems.length); + this.variables = new ArrayList<>(problems.length); + + for (final int problem : problems) { + final Formula p = generator.generate(problem); + this.formulas.add(p); + this.variables.add(p.variables()); + } + } + + @Test + public void testModelCount() { + for (int i = 0; i < this.formulas.size(); i++) { + final BDDFactory factory = new BDDFactory(10000, 10000, this.f); + factory.setNumberOfVars(this.variables.get(i).size()); + final BDD bdd = factory.build(this.formulas.get(i)); + Assert.assertEquals(this.expected[i], bdd.modelCount()); + } + } + + @Test + public void testModelEnumeration() { + for (int i = 0; i < this.formulas.size(); i++) { + final BDDFactory factory = new BDDFactory(10000, 10000, this.f); + factory.setNumberOfVars(this.variables.get(i).size()); + final BDD bdd = factory.build(this.formulas.get(i)); + final Set models = new HashSet<>(bdd.enumerateAllModels()); + Assert.assertEquals(this.expected[i].intValue(), models.size()); + for (final Assignment model : models) + Assert.assertTrue(this.formulas.get(i).evaluate(model)); + } + } + + @Test + public void testExo() { + final FormulaFactory f = new FormulaFactory(); + final Formula constraint = f.exo(generateVariables(100, f)).cnf(); + final BDDFactory factory = new BDDFactory(100000, 1000000, f); + factory.setNumberOfVars(constraint.variables().size()); + final BDD bdd = factory.build(constraint); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(100)); + assertThat(bdd.enumerateAllModels()).hasSize(100); + } + + @Test + public void testExk() { + final FormulaFactory f = new FormulaFactory(); + final Formula constraint = f.cc(CType.EQ, 8, generateVariables(15, f)).cnf(); + final BDDFactory factory = new BDDFactory(100000, 1000000, f); + factory.setNumberOfVars(constraint.variables().size()); + final BDD bdd = factory.build(constraint); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(6435)); + assertThat(bdd.enumerateAllModels()).hasSize(6435); + } + + @Test + public void testAmo() { + final FormulaFactory f = new FormulaFactory(); + final Formula constraint = f.amo(generateVariables(100, f)).cnf(); + final BDDFactory factory = new BDDFactory(100000, 1000000, f); + factory.setNumberOfVars(constraint.variables().size()); + final BDD bdd = factory.build(constraint); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(221)); + assertThat(bdd.enumerateAllModels(generateVariables(100, f))).hasSize(101); + } + + private List generateVariables(final int n, final FormulaFactory f) { + final List result = new ArrayList<>(n); + for (int i = 0; i < n; i++) { + result.add(f.variable("v" + i)); + } + return result; + } + +} diff --git a/src/test/java/org/logicng/bdds/BDDOperationsTest.java b/src/test/java/org/logicng/bdds/BDDOperationsTest.java new file mode 100644 index 00000000..bfc0b867 --- /dev/null +++ b/src/test/java/org/logicng/bdds/BDDOperationsTest.java @@ -0,0 +1,288 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds; + +import org.junit.Before; +import org.junit.Test; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.datastructures.Assignment; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Variable; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; + +import java.math.BigDecimal; +import java.util.AbstractMap; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeSet; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link BDDFactory} operations. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BDDOperationsTest { + + private FormulaFactory f; + private BDDFactory factory; + private BDD bddVerum; + private BDD bddFalsum; + private BDD bddPosLit; + private BDD bddNegLit; + private BDD bddImpl; + private BDD bddEquiv; + private BDD bddOr; + private BDD bddAnd; + private PropositionalParser parser; + + @Before + public void init() throws ParserException { + this.f = new FormulaFactory(); + this.parser = new PropositionalParser(this.f); + this.factory = new BDDFactory(1000, 1000, this.f); + this.factory.setNumberOfVars(3); + this.bddVerum = this.factory.build(this.f.verum()); + this.bddFalsum = this.factory.build(this.f.falsum()); + this.bddPosLit = this.factory.build(this.f.literal("A", true)); + this.bddNegLit = this.factory.build(this.f.literal("A", false)); + this.bddImpl = this.factory.build(this.parser.parse("A => ~B")); + this.bddEquiv = this.factory.build(this.parser.parse("A <=> ~B")); + this.bddOr = this.factory.build(this.parser.parse("A | B | ~C")); + this.bddAnd = this.factory.build(this.parser.parse("A & B & ~C")); + } + + @Test + public void testRestriction() throws ParserException { + final Literal a = this.f.literal("A", true); + final List resNotA = Collections.singletonList(this.f.literal("A", false)); + final List resAB = Arrays.asList(this.f.literal("A", true), this.f.literal("B", true)); + assertThat(this.bddVerum.restrict(a)).isEqualTo(this.bddVerum); + assertThat(this.bddVerum.restrict(resNotA)).isEqualTo(this.bddVerum); + assertThat(this.bddVerum.restrict(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddFalsum.restrict(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddFalsum.restrict(resNotA)).isEqualTo(this.bddFalsum); + assertThat(this.bddFalsum.restrict(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddPosLit.restrict(a)).isEqualTo(this.bddVerum); + assertThat(this.bddPosLit.restrict(resNotA)).isEqualTo(this.bddFalsum); + assertThat(this.bddPosLit.restrict(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddNegLit.restrict(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddNegLit.restrict(resNotA)).isEqualTo(this.bddVerum); + assertThat(this.bddNegLit.restrict(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddImpl.restrict(a)).isEqualTo(this.factory.build(this.f.literal("B", false))); + assertThat(this.bddImpl.restrict(resNotA)).isEqualTo(this.bddVerum); + assertThat(this.bddImpl.restrict(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddEquiv.restrict(a)).isEqualTo(this.factory.build(this.f.literal("B", false))); + assertThat(this.bddEquiv.restrict(resNotA)).isEqualTo(this.factory.build(this.f.literal("B", true))); + assertThat(this.bddEquiv.restrict(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddOr.restrict(a)).isEqualTo(this.bddVerum); + assertThat(this.bddOr.restrict(resNotA)).isEqualTo(this.factory.build(this.parser.parse("B | ~C"))); + assertThat(this.bddOr.restrict(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddAnd.restrict(a)).isEqualTo(this.factory.build(this.parser.parse("B & ~C"))); + assertThat(this.bddAnd.restrict(resNotA)).isEqualTo(this.bddFalsum); + assertThat(this.bddAnd.restrict(resAB)).isEqualTo(this.factory.build(this.f.literal("C", false))); + } + + @Test + public void testExistentialQuantification() throws ParserException { + final Variable a = this.f.variable("A"); + final List resAB = Arrays.asList(this.f.variable("A"), this.f.variable("B")); + assertThat(this.bddVerum.exists(a)).isEqualTo(this.bddVerum); + assertThat(this.bddVerum.exists(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddFalsum.exists(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddFalsum.exists(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddPosLit.exists(a)).isEqualTo(this.bddVerum); + assertThat(this.bddPosLit.exists(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddNegLit.exists(a)).isEqualTo(this.bddVerum); + assertThat(this.bddNegLit.exists(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddImpl.exists(a)).isEqualTo(this.bddVerum); + assertThat(this.bddImpl.exists(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddEquiv.exists(a)).isEqualTo(this.bddVerum); + assertThat(this.bddEquiv.exists(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddOr.exists(a)).isEqualTo(this.bddVerum); + assertThat(this.bddOr.exists(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddAnd.exists(a)).isEqualTo(this.factory.build(this.parser.parse("B & ~C"))); + assertThat(this.bddAnd.exists(resAB)).isEqualTo(this.factory.build(this.parser.parse("~C"))); + } + + @Test + public void testUniversalQuantification() throws ParserException { + final Variable a = this.f.variable("A"); + final List resAB = Arrays.asList(this.f.variable("A"), this.f.variable("B")); + assertThat(this.bddVerum.forall(a)).isEqualTo(this.bddVerum); + assertThat(this.bddVerum.forall(resAB)).isEqualTo(this.bddVerum); + assertThat(this.bddFalsum.forall(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddFalsum.forall(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddPosLit.forall(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddPosLit.forall(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddNegLit.forall(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddNegLit.forall(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddImpl.forall(a)).isEqualTo(this.factory.build(this.parser.parse("~B"))); + assertThat(this.bddImpl.forall(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddEquiv.forall(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddEquiv.forall(resAB)).isEqualTo(this.bddFalsum); + assertThat(this.bddOr.forall(a)).isEqualTo(this.factory.build(this.parser.parse("B | ~C"))); + assertThat(this.bddOr.forall(resAB)).isEqualTo(this.factory.build(this.parser.parse("~C"))); + assertThat(this.bddAnd.forall(a)).isEqualTo(this.bddFalsum); + assertThat(this.bddAnd.forall(resAB)).isEqualTo(this.bddFalsum); + } + + @Test + public void testModel() { + assertThat(this.bddVerum.model()).isEqualTo(new Assignment()); + assertThat(this.bddFalsum.model()).isEqualTo(null); + assertThat(this.bddPosLit.model()).isEqualTo(new Assignment(this.f.literal("A", true))); + assertThat(this.bddNegLit.model()).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddImpl.model()).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddEquiv.model()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddOr.model()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddAnd.model()).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true), this.f.literal("C", false))); + } + + @Test + public void testModelWithGivenVars() { + final Variable a = this.f.variable("A"); + final List ab = Arrays.asList(this.f.variable("A"), this.f.variable("B")); + assertThat(this.bddVerum.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", true))); + assertThat(this.bddVerum.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true))); + assertThat(this.bddVerum.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddVerum.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false))); + assertThat(this.bddFalsum.model(true, a)).isEqualTo(null); + assertThat(this.bddFalsum.model(true, ab)).isEqualTo(null); + assertThat(this.bddFalsum.model(false, a)).isEqualTo(null); + assertThat(this.bddFalsum.model(false, ab)).isEqualTo(null); + assertThat(this.bddPosLit.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", true))); + assertThat(this.bddPosLit.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true))); + assertThat(this.bddPosLit.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", true))); + assertThat(this.bddPosLit.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", false))); + assertThat(this.bddNegLit.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddNegLit.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddNegLit.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddNegLit.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false))); + assertThat(this.bddImpl.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddImpl.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddImpl.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", false))); + assertThat(this.bddImpl.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false))); + assertThat(this.bddEquiv.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddEquiv.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddEquiv.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddEquiv.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true))); + assertThat(this.bddOr.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddOr.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddOr.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddOr.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddAnd.model(true, a)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true), this.f.literal("C", false))); + assertThat(this.bddAnd.model(true, ab)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true), this.f.literal("C", false))); + assertThat(this.bddAnd.model(false, a)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true), this.f.literal("C", false))); + assertThat(this.bddAnd.model(false, ab)).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true), this.f.literal("C", false))); + } + + @Test + public void testFullModel() { + assertThat(this.bddVerum.fullModel()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddFalsum.fullModel()).isEqualTo(null); + assertThat(this.bddPosLit.fullModel()).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddNegLit.fullModel()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddImpl.fullModel()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddEquiv.fullModel()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", true), this.f.literal("C", false))); + assertThat(this.bddOr.fullModel()).isEqualTo(new Assignment(this.f.literal("A", false), this.f.literal("B", false), this.f.literal("C", false))); + assertThat(this.bddAnd.fullModel()).isEqualTo(new Assignment(this.f.literal("A", true), this.f.literal("B", true), this.f.literal("C", false))); + } + + @Test + public void testPathCount() { + assertThat(this.bddVerum.pathCountOne()).isEqualTo(BigDecimal.ONE); + assertThat(this.bddVerum.pathCountZero()).isEqualTo(BigDecimal.ZERO); + assertThat(this.bddFalsum.pathCountOne()).isEqualTo(BigDecimal.ZERO); + assertThat(this.bddFalsum.pathCountZero()).isEqualTo(BigDecimal.ONE); + assertThat(this.bddPosLit.pathCountOne()).isEqualTo(BigDecimal.ONE); + assertThat(this.bddPosLit.pathCountZero()).isEqualTo(BigDecimal.ONE); + assertThat(this.bddNegLit.pathCountOne()).isEqualTo(BigDecimal.ONE); + assertThat(this.bddNegLit.pathCountZero()).isEqualTo(BigDecimal.ONE); + assertThat(this.bddImpl.pathCountOne()).isEqualTo(new BigDecimal(2)); + assertThat(this.bddImpl.pathCountZero()).isEqualTo(new BigDecimal(1)); + assertThat(this.bddEquiv.pathCountOne()).isEqualTo(new BigDecimal(2)); + assertThat(this.bddEquiv.pathCountZero()).isEqualTo(new BigDecimal(2)); + assertThat(this.bddOr.pathCountOne()).isEqualTo(new BigDecimal(3)); + assertThat(this.bddOr.pathCountZero()).isEqualTo(new BigDecimal(1)); + assertThat(this.bddAnd.pathCountOne()).isEqualTo(new BigDecimal(1)); + assertThat(this.bddAnd.pathCountZero()).isEqualTo(new BigDecimal(3)); + } + + @Test + public void testSupport() { + assertThat(this.bddVerum.support()).isEqualTo(new TreeSet<>()); + assertThat(this.bddFalsum.support()).isEqualTo(new TreeSet<>()); + assertThat(this.bddPosLit.support()).isEqualTo(new TreeSet<>(Collections.singletonList(this.f.variable("A")))); + assertThat(this.bddNegLit.support()).isEqualTo(new TreeSet<>(Collections.singletonList(this.f.variable("A")))); + assertThat(this.bddImpl.support()).isEqualTo(new TreeSet<>(Arrays.asList(this.f.variable("A"), this.f.variable("B")))); + assertThat(this.bddEquiv.support()).isEqualTo(new TreeSet<>(Arrays.asList(this.f.variable("A"), this.f.variable("B")))); + assertThat(this.bddOr.support()).isEqualTo(new TreeSet<>(Arrays.asList(this.f.variable("A"), this.f.variable("B"), this.f.variable("C")))); + assertThat(this.bddAnd.support()).isEqualTo(new TreeSet<>(Arrays.asList(this.f.variable("A"), this.f.variable("B"), this.f.variable("C")))); + } + + @Test + public void testNodeCount() { + assertThat(this.bddVerum.nodeCount()).isEqualTo(0); + assertThat(this.bddFalsum.nodeCount()).isEqualTo(0); + assertThat(this.bddPosLit.nodeCount()).isEqualTo(1); + assertThat(this.bddNegLit.nodeCount()).isEqualTo(1); + assertThat(this.bddImpl.nodeCount()).isEqualTo(2); + assertThat(this.bddEquiv.nodeCount()).isEqualTo(3); + assertThat(this.bddOr.nodeCount()).isEqualTo(3); + assertThat(this.bddAnd.nodeCount()).isEqualTo(3); + } + + @Test + public void testVariableProfil() { + final Variable a = this.f.variable("A"); + final Variable b = this.f.variable("B"); + final Variable c = this.f.variable("C"); + final Map.Entry a0 = new AbstractMap.SimpleEntry<>(a, 0); + final Map.Entry a1 = new AbstractMap.SimpleEntry<>(a, 1); + final Map.Entry b0 = new AbstractMap.SimpleEntry<>(b, 0); + final Map.Entry b1 = new AbstractMap.SimpleEntry<>(b, 1); + final Map.Entry b2 = new AbstractMap.SimpleEntry<>(b, 2); + final Map.Entry c0 = new AbstractMap.SimpleEntry<>(c, 0); + final Map.Entry c1 = new AbstractMap.SimpleEntry<>(c, 1); + assertThat(this.bddVerum.variableProfile()).containsExactly(a0, b0, c0); + assertThat(this.bddFalsum.variableProfile()).containsExactly(a0, b0, c0); + assertThat(this.bddPosLit.variableProfile()).containsExactly(a1, b0, c0); + assertThat(this.bddNegLit.variableProfile()).containsExactly(a1, b0, c0); + assertThat(this.bddImpl.variableProfile()).containsExactly(a1, b1, c0); + assertThat(this.bddEquiv.variableProfile()).containsExactly(a1, b2, c0); + assertThat(this.bddOr.variableProfile()).containsExactly(a1, b1, c1); + assertThat(this.bddAnd.variableProfile()).containsExactly(a1, b1, c1); + } +} diff --git a/src/test/java/org/logicng/bdds/FormulaBDDTest.java b/src/test/java/org/logicng/bdds/FormulaBDDTest.java new file mode 100644 index 00000000..3f847088 --- /dev/null +++ b/src/test/java/org/logicng/bdds/FormulaBDDTest.java @@ -0,0 +1,73 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds; + +import org.junit.Test; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.bdds.orderings.VariableOrdering; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PseudoBooleanParser; +import org.logicng.predicates.satisfiability.TautologyPredicate; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for the BDD generation in the {@link org.logicng.formulas.Formula} class. + * @version 1.4.0 + * @since 1.4.0 + */ +public class FormulaBDDTest { + + @Test + public void testBDDGeneration() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Formula formula = p.parse("(A => ~B) & ((A & C) | (D & ~C)) & (A | Y | X) & (Y <=> (X | (W + A + F < 1)))"); + final BDD bddNoOrder = formula.bdd(); + final BDD bddBfs = formula.bdd(VariableOrdering.BFS); + final BDD bddDfs = formula.bdd(VariableOrdering.DFS); + final BDD bddMin2Max = formula.bdd(VariableOrdering.MIN2MAX); + final BDD bddMax2Min = formula.bdd(VariableOrdering.MAX2MIN); + + assertThat(bddNoOrder.nodeCount()).isEqualTo(13); + assertThat(bddBfs.nodeCount()).isEqualTo(14); + assertThat(bddDfs.nodeCount()).isEqualTo(13); + assertThat(bddMin2Max.nodeCount()).isEqualTo(17); + assertThat(bddMax2Min.nodeCount()).isEqualTo(24); + + final TautologyPredicate tautology = new TautologyPredicate(f); + assertThat(f.equivalence(bddNoOrder.cnf(), formula).holds(tautology)).isTrue(); + assertThat(f.equivalence(bddBfs.cnf(), formula).holds(tautology)).isTrue(); + assertThat(f.equivalence(bddDfs.cnf(), formula).holds(tautology)).isTrue(); + assertThat(f.equivalence(bddMin2Max.cnf(), formula).holds(tautology)).isTrue(); + assertThat(f.equivalence(bddMax2Min.cnf(), formula).holds(tautology)).isTrue(); + } +} diff --git a/src/test/java/org/logicng/bdds/LargeBDDTest.java b/src/test/java/org/logicng/bdds/LargeBDDTest.java new file mode 100644 index 00000000..bfd881fe --- /dev/null +++ b/src/test/java/org/logicng/bdds/LargeBDDTest.java @@ -0,0 +1,95 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds; + +import org.junit.Test; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.predicates.CNFPredicate; +import org.logicng.testutils.NQueensGenerator; +import org.logicng.testutils.PigeonHoleGenerator; + +import java.math.BigDecimal; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Some more extensive tests for BDDs + * @version 1.4.0 + * @since 1.4.0 + */ +public class LargeBDDTest { + + @Test + public void testPigeonHole() { + final FormulaFactory f = new FormulaFactory(); + final PigeonHoleGenerator generator = new PigeonHoleGenerator(f); + testPigeonHole(f, generator, 2); + testPigeonHole(f, generator, 3); + testPigeonHole(f, generator, 4); + testPigeonHole(f, generator, 5); + testPigeonHole(f, generator, 6); + testPigeonHole(f, generator, 7); + testPigeonHole(f, generator, 8); + testPigeonHole(f, generator, 9); + } + + private void testPigeonHole(final FormulaFactory f, final PigeonHoleGenerator generator, final int size) { + final Formula pigeon = generator.generate(size); + final BDDFactory bddFactory = new BDDFactory(10000, 10000, f); + bddFactory.setNumberOfVars(pigeon.variables().size()); + final BDD bdd = bddFactory.build(pigeon); + assertThat(bdd.isContradiction()).isTrue(); + } + + @Test + public void testQueens() { + final FormulaFactory f = new FormulaFactory(); + final NQueensGenerator generator = new NQueensGenerator(f); + testQueens(f, generator, 4, 2); + testQueens(f, generator, 5, 10); + testQueens(f, generator, 6, 4); + testQueens(f, generator, 7, 40); + testQueens(f, generator, 8, 92); + } + + private void testQueens(final FormulaFactory f, final NQueensGenerator generator, final int size, final int models) { + final Formula queens = generator.generate(size); + final BDDFactory bddFactory = new BDDFactory(10000, 10000, f); + bddFactory.setNumberOfVars(queens.variables().size()); + final BDD bdd = bddFactory.build(queens); + final Formula cnf = bdd.cnf(); + assertThat(cnf.holds(new CNFPredicate())).isTrue(); + final BDD cnfBDD = bddFactory.build(cnf); + assertThat(cnfBDD).isEqualTo(bdd); + assertThat(bdd.support()).isEqualTo(queens.variables()); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(models)); + } +} diff --git a/src/test/java/org/logicng/bdds/SimpleBDDTest.java b/src/test/java/org/logicng/bdds/SimpleBDDTest.java new file mode 100644 index 00000000..d810b013 --- /dev/null +++ b/src/test/java/org/logicng/bdds/SimpleBDDTest.java @@ -0,0 +1,246 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds; + +import org.junit.Test; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.bdds.datastructures.BDDConstant; +import org.logicng.collections.LNGVector; +import org.logicng.datastructures.Assignment; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; +import org.logicng.io.parsers.PseudoBooleanParser; + +import java.math.BigDecimal; +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link BDDFactory}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class SimpleBDDTest { + + @Test + public void testTrue() { + final FormulaFactory f = new FormulaFactory(); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + final BDD bdd = factory.build(f.verum()); + assertThat(bdd.isTautology()).isTrue(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(f.verum()); + assertThat(bdd.dnf()).isEqualTo(f.verum()); + assertThat(bdd.modelCount()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactly(new Assignment()); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(BigDecimal.ZERO); + assertThat(bdd.toLngBdd()).isEqualTo(BDDConstant.getVerumNode(f)); + } + + @Test + public void testFalse() { + final FormulaFactory f = new FormulaFactory(); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + final BDD bdd = factory.build(f.falsum()); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isTrue(); + assertThat(bdd.cnf()).isEqualTo(f.falsum()); + assertThat(bdd.dnf()).isEqualTo(f.falsum()); + assertThat(bdd.modelCount()).isEqualTo(BigDecimal.ZERO); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).isEmpty(); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.toLngBdd()).isEqualTo(BDDConstant.getFalsumNode(f)); + } + + @Test + public void testPositiveLiteral() { + final FormulaFactory f = new FormulaFactory(); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setNumberOfVars(1); + final BDD bdd = factory.build(f.literal("A", true)); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(f.literal("A", true)); + assertThat(bdd.dnf()).isEqualTo(f.literal("A", true)); + assertThat(bdd.modelCount()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactly(new Assignment(f.literal("A", true))); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.toLngBdd().toString()).isEqualTo(" high=<$true>>"); + } + + @Test + public void testNegativeLiteral() { + final FormulaFactory f = new FormulaFactory(); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setNumberOfVars(1); + final BDD bdd = factory.build(f.literal("A", false)); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(f.literal("A", false)); + assertThat(bdd.dnf()).isEqualTo(f.literal("A", false)); + assertThat(bdd.modelCount()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactly(new Assignment(f.literal("A", false))); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.toLngBdd().toString()).isEqualTo(" high=<$false>>"); + } + + @Test + public void testImplication() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser parser = new PropositionalParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setNumberOfVars(2); + final BDD bdd = factory.build(parser.parse("A => ~B")); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(parser.parse("~A | ~B")); + assertThat(bdd.dnf()).isEqualTo(parser.parse("~A & ~B | ~A & B | A & ~B")); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(3)); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactlyInAnyOrder( + new Assignment(f.literal("A", false), f.literal("B", false)), + new Assignment(f.literal("A", true), f.literal("B", false)), + new Assignment(f.literal("A", false), f.literal("B", true)) + ); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.toLngBdd().toString()).isEqualTo(" high= high=<$false>>>"); + } + + @Test + public void testEquivalence() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser parser = new PropositionalParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setNumberOfVars(2); + final BDD bdd = factory.build(parser.parse("A <=> ~B")); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(parser.parse("(A | B) & (~A | ~B)")); + assertThat(bdd.dnf()).isEqualTo(parser.parse("~A & B | A & ~B")); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(2)); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactlyInAnyOrder( + new Assignment(f.literal("A", true), f.literal("B", false)), + new Assignment(f.literal("A", false), f.literal("B", true)) + ); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(new BigDecimal(2)); + assertThat(bdd.toLngBdd().toString()).isEqualTo(" high=<$true>> high= high=<$false>>>"); + } + + @Test + public void testOr() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser parser = new PropositionalParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setNumberOfVars(3); + final BDD bdd = factory.build(parser.parse("A | B | ~C")); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(parser.parse("A | B | ~C")); + assertThat(bdd.dnf()).isEqualTo(parser.parse("~A & ~B & ~C | ~A & B & ~C | ~A & B & C | A & ~B & ~C | A & ~B & C | A & B & ~C | A & B & C")); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(7)); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactlyInAnyOrder( + new Assignment(f.literal("A", false), f.literal("B", false), f.literal("C", false)), + new Assignment(f.literal("A", false), f.literal("B", true), f.literal("C", false)), + new Assignment(f.literal("A", false), f.literal("B", true), f.literal("C", true)), + new Assignment(f.literal("A", true), f.literal("B", false), f.literal("C", false)), + new Assignment(f.literal("A", true), f.literal("B", false), f.literal("C", true)), + new Assignment(f.literal("A", true), f.literal("B", true), f.literal("C", false)), + new Assignment(f.literal("A", true), f.literal("B", true), f.literal("C", true)) + ); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(BigDecimal.ONE); + assertThat(bdd.toLngBdd().toString()).isEqualTo(" high=<$false>> high=<$true>> high=<$true>>"); + } + + @Test + public void testAnd() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser parser = new PropositionalParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setVariableOrder(new LNGVector<>(f.variable("A"), f.variable("B"), f.variable("C"))); + final BDD bdd = factory.build(parser.parse("A & B & ~C")); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(parser.parse("A & (~A | B) & (~A | ~B | ~C)")); + assertThat(bdd.dnf()).isEqualTo(parser.parse("A & B & ~C")); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(1)); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactlyInAnyOrder( + new Assignment(f.literal("A", true), f.literal("B", true), f.literal("C", false)) + ); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(new BigDecimal(3)); + assertThat(bdd.toLngBdd().toString()).isEqualTo(" high= high= high=<$false>>>>"); + } + + @Test + public void testFormula() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser parser = new PropositionalParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setVariableOrder(Arrays.asList(f.variable("A"), f.variable("B"), f.variable("C"))); + final BDD bdd = factory.build(parser.parse("(A => ~C) | (B & ~C)")); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(6)); + assertThat(bdd.modelCount(1)).isEqualTo(new BigDecimal(3)); + assertThat(bdd.modelCount(1)).isEqualTo(new BigDecimal(3)); + assertThat(bdd.enumerateAllModels()).hasSize(6); + assertThat(bdd.enumerateAllModels(f.variable("A"))).hasSize(2); + assertThat(bdd.hashCode()).isEqualTo(factory.build(parser.parse("(A => ~C) | (B & ~C)")).hashCode()); + assertThat(bdd.toString()).isEqualTo("BDD{8}"); + } + + @Test + public void testCC() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser parser = new PseudoBooleanParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setNumberOfVars(3); + final BDD bdd = factory.build(parser.parse("A + B + C = 1")); + assertThat(bdd.isTautology()).isFalse(); + assertThat(bdd.isContradiction()).isFalse(); + assertThat(bdd.cnf()).isEqualTo(parser.parse("(A | B | C) & (A | ~B | ~C) & (~A | B | ~C) & (~A | ~B)")); + assertThat(bdd.dnf()).isEqualTo(parser.parse("~A & ~B & C | ~A & B & ~C | A & ~B & ~C")); + assertThat(bdd.modelCount()).isEqualTo(new BigDecimal(3)); + assertThat(bdd.factory()).isSameAs(factory); + assertThat(bdd.enumerateAllModels()).containsExactlyInAnyOrder( + new Assignment(f.literal("A", true), f.literal("B", false), f.literal("C", false)), + new Assignment(f.literal("A", false), f.literal("B", true), f.literal("C", false)), + new Assignment(f.literal("A", false), f.literal("B", false), f.literal("C", true)) + ); + assertThat(bdd.numberOfClausesCNF()).isEqualTo(new BigDecimal(4)); + } +} diff --git a/src/test/java/org/logicng/bdds/datastructures/BDDNodeTest.java b/src/test/java/org/logicng/bdds/datastructures/BDDNodeTest.java new file mode 100644 index 00000000..ccf67cf5 --- /dev/null +++ b/src/test/java/org/logicng/bdds/datastructures/BDDNodeTest.java @@ -0,0 +1,108 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.datastructures; + +import org.junit.Test; +import org.logicng.formulas.FormulaFactory; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link BDDNode}, {@link BDDConstant}, and {@link BDDInnerNode}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BDDNodeTest { + + @Test + public void testSimpleMethods() { + final FormulaFactory f = new FormulaFactory(); + final BDDNode verumNode = BDDConstant.getVerumNode(f); + final BDDNode falsumNode = BDDConstant.getFalsumNode(f); + final BDDNode innerNode = new BDDInnerNode(f.variable("A"), verumNode, falsumNode); + assertThat(verumNode.isInnerNode()).isFalse(); + assertThat(falsumNode.isInnerNode()).isFalse(); + assertThat(innerNode.isInnerNode()).isTrue(); + assertThat(verumNode.label()).isEqualTo(f.verum()); + assertThat(falsumNode.label()).isEqualTo(f.falsum()); + assertThat(innerNode.label()).isEqualTo(f.variable("A")); + assertThat(verumNode.low()).isNull(); + assertThat(verumNode.high()).isNull(); + assertThat(falsumNode.low()).isNull(); + assertThat(falsumNode.high()).isNull(); + assertThat(innerNode.low()).isEqualTo(verumNode); + assertThat(innerNode.high()).isEqualTo(falsumNode); + } + + @Test + public void testNodes() { + final FormulaFactory f = new FormulaFactory(); + final BDDNode verumNode = BDDConstant.getVerumNode(f); + final BDDNode falsumNode = BDDConstant.getFalsumNode(f); + final BDDNode innerNode = new BDDInnerNode(f.variable("A"), verumNode, falsumNode); + assertThat(verumNode.nodes()).containsExactly(verumNode); + assertThat(falsumNode.nodes()).containsExactly(falsumNode); + assertThat(innerNode.nodes()).containsExactlyInAnyOrder(verumNode, falsumNode, innerNode); + } + + @Test + public void testHashCode() { + final FormulaFactory f = new FormulaFactory(); + final BDDNode verumNode = BDDConstant.getVerumNode(f); + final BDDNode falsumNode = BDDConstant.getFalsumNode(f); + final BDDNode innerNode1 = new BDDInnerNode(f.variable("A"), verumNode, falsumNode); + final BDDNode innerNode2 = new BDDInnerNode(f.variable("A"), verumNode, falsumNode); + assertThat(verumNode.hashCode()).isEqualTo(verumNode.hashCode()); + assertThat(falsumNode.hashCode()).isEqualTo(falsumNode.hashCode()); + assertThat(innerNode1.hashCode()).isEqualTo(innerNode2.hashCode()); + } + + @Test + public void testEquals() { + final FormulaFactory f = new FormulaFactory(); + final BDDNode verumNode = BDDConstant.getVerumNode(f); + final BDDNode falsumNode = BDDConstant.getFalsumNode(f); + final BDDNode innerNode1 = new BDDInnerNode(f.variable("A"), verumNode, falsumNode); + final BDDNode innerNode1a = new BDDInnerNode(f.variable("A"), verumNode, falsumNode); + final BDDNode innerNode2 = new BDDInnerNode(f.variable("A"), falsumNode, verumNode); + final BDDNode innerNode3 = new BDDInnerNode(f.variable("B"), verumNode, falsumNode); + assertThat(verumNode).isEqualTo(verumNode); + assertThat(falsumNode).isEqualTo(falsumNode); + assertThat(innerNode1).isEqualTo(innerNode1); + assertThat(innerNode1).isEqualTo(innerNode1a); + assertThat(innerNode1).isNotEqualTo(innerNode2); + assertThat(innerNode1).isNotEqualTo(innerNode3); + assertThat(innerNode1).isNotEqualTo(null); + assertThat(innerNode1).isNotEqualTo("String"); + assertThat(verumNode).isNotEqualTo(falsumNode); + assertThat(verumNode).isNotEqualTo(innerNode3); + assertThat(verumNode).isNotEqualTo(null); + assertThat(verumNode).isNotEqualTo("String"); + } +} diff --git a/src/test/java/org/logicng/bdds/io/BDDDotFileWriterTest.java b/src/test/java/org/logicng/bdds/io/BDDDotFileWriterTest.java new file mode 100644 index 00000000..2d72eb44 --- /dev/null +++ b/src/test/java/org/logicng/bdds/io/BDDDotFileWriterTest.java @@ -0,0 +1,87 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.io; + +import org.junit.Assert; +import org.junit.Test; +import org.logicng.bdds.BDDFactory; +import org.logicng.bdds.datastructures.BDD; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; + +/** + * Unit tests for the {@link BDDDotFileWriter}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BDDDotFileWriterTest { + + @Test + public void testWriter() throws IOException, ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final BDDFactory factory = new BDDFactory(1000, 1000, f); + factory.setVariableOrder(f.variable("A"), f.variable("B"), f.variable("C"), f.variable("D")); + testFiles("false", factory.build(p.parse("$false"))); + testFiles("true", factory.build(p.parse("$true"))); + testFiles("a", factory.build(p.parse("A"))); + testFiles("not_a", factory.build(p.parse("~A"))); + testFiles("impl", factory.build(p.parse("A => ~C"))); + testFiles("equiv", factory.build(p.parse("A <=> ~C"))); + testFiles("or", factory.build(p.parse("A | B | ~C"))); + testFiles("and", factory.build(p.parse("A & B & ~C"))); + testFiles("not", factory.build(p.parse("~(A & B & ~C)"))); + testFiles("formula", factory.build(p.parse("(A => (B|~C)) & (B => C & D) & (D <=> A)"))); + } + + private void testFiles(final String fileName, final BDD bdd) throws IOException { + BDDDotFileWriter.write("tests/writers/temp/" + fileName + "_bdd.dot", bdd); + final File expectedT = new File("tests/writers/bdd/" + fileName + "_bdd.dot"); + final File tempT = new File("tests/writers/temp/" + fileName + "_bdd.dot"); + assertFilesEqual(expectedT, tempT); + } + + private void assertFilesEqual(final File expected, final File actual) throws IOException { + final BufferedReader expReader = new BufferedReader(new FileReader(expected)); + final BufferedReader actReader = new BufferedReader(new FileReader(actual)); + for (int lineNumber = 1; expReader.ready() && actReader.ready(); lineNumber++) + Assert.assertEquals("Line " + lineNumber + " not equal", expReader.readLine(), actReader.readLine()); + if (expReader.ready()) + Assert.fail("Missing line(s) found, starting with \"" + expReader.readLine() + "\""); + if (actReader.ready()) + Assert.fail("Additional line(s) found, starting with \"" + actReader.readLine() + "\""); + } +} + diff --git a/src/test/java/org/logicng/bdds/orderings/BFSOrderingTest.java b/src/test/java/org/logicng/bdds/orderings/BFSOrderingTest.java new file mode 100644 index 00000000..aa91c05a --- /dev/null +++ b/src/test/java/org/logicng/bdds/orderings/BFSOrderingTest.java @@ -0,0 +1,80 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.junit.Test; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PseudoBooleanParser; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link BFSOrdering}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BFSOrderingTest { + + private final BFSOrdering ordering = new BFSOrdering(); + + @Test + public void testSimpleCases() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + assertThat(this.ordering.getOrder(p.parse("$true"))).isEmpty(); + assertThat(this.ordering.getOrder(p.parse("$false"))).isEmpty(); + assertThat(this.ordering.getOrder(p.parse("A"))).containsExactly(f.variable("A")); + assertThat(this.ordering.getOrder(p.parse("A => ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.ordering.getOrder(p.parse("A <=> ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.ordering.getOrder(p.parse("~(A <=> ~B)"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.ordering.getOrder(p.parse("A | ~C | B | D"))).containsExactly(f.variable("A"), f.variable("B"), f.variable("D"), f.variable("C")); + assertThat(this.ordering.getOrder(p.parse("A & ~C & B & D"))).containsExactly(f.variable("A"), f.variable("B"), f.variable("D"), f.variable("C")); + assertThat(this.ordering.getOrder(p.parse("A + C + B + D < 2"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + } + + @Test + public void testComplexFormula() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Formula formula = p.parse("(A => ~B) & ((A & C) | (D & ~C)) & (A | Y | X) & (Y <=> (X | (W + A + F < 1)))"); + + assertThat(this.ordering.getOrder(formula)).containsExactly( + f.variable("A"), + f.variable("Y"), + f.variable("X"), + f.variable("B"), + f.variable("C"), + f.variable("D"), + f.variable("W"), + f.variable("F") + ); + } +} diff --git a/src/test/java/org/logicng/bdds/orderings/DFSOrderingTest.java b/src/test/java/org/logicng/bdds/orderings/DFSOrderingTest.java new file mode 100644 index 00000000..80a51f2e --- /dev/null +++ b/src/test/java/org/logicng/bdds/orderings/DFSOrderingTest.java @@ -0,0 +1,79 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.junit.Test; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PseudoBooleanParser; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link DFSOrdering}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class DFSOrderingTest { + + private final DFSOrdering ordering = new DFSOrdering(); + + @Test + public void testSimpleCases() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + assertThat(this.ordering.getOrder(p.parse("$true"))).isEmpty(); + assertThat(this.ordering.getOrder(p.parse("$false"))).isEmpty(); + assertThat(this.ordering.getOrder(p.parse("A"))).containsExactly(f.variable("A")); + assertThat(this.ordering.getOrder(p.parse("A => ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.ordering.getOrder(p.parse("A <=> ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.ordering.getOrder(p.parse("~(A <=> ~B)"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.ordering.getOrder(p.parse("A | ~C | B | D"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.ordering.getOrder(p.parse("A & ~C & B & D"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.ordering.getOrder(p.parse("A + C + B + D < 2"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + } + + @Test + public void testComplexFormula() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Formula formula = p.parse("(A => ~B) & ((A & C) | (D & ~C)) & (A | Y | X) & (Y <=> (X | (W + A + F < 1)))"); + assertThat(this.ordering.getOrder(formula)).containsExactly( + f.variable("A"), + f.variable("B"), + f.variable("C"), + f.variable("D"), + f.variable("Y"), + f.variable("X"), + f.variable("W"), + f.variable("F") + ); + } +} diff --git a/src/test/java/org/logicng/bdds/orderings/ForceOrderingTest.java b/src/test/java/org/logicng/bdds/orderings/ForceOrderingTest.java new file mode 100644 index 00000000..b3299d13 --- /dev/null +++ b/src/test/java/org/logicng/bdds/orderings/ForceOrderingTest.java @@ -0,0 +1,86 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.junit.Test; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PseudoBooleanParser; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link ForceOrdering}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class ForceOrderingTest { + + private final ForceOrdering ordering = new ForceOrdering(); + + @Test + public void testSimpleCases() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + assertThat(this.ordering.getOrder(p.parse("$true"))).isEmpty(); + assertThat(this.ordering.getOrder(p.parse("$false"))).isEmpty(); + assertThat(this.ordering.getOrder(p.parse("A"))).containsExactly(f.variable("A")); + assertThat(this.ordering.getOrder(p.parse("A | ~C | B | D"))).containsExactlyInAnyOrder(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.ordering.getOrder(p.parse("A & ~C & B & D"))).containsExactlyInAnyOrder(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + } + + @Test + public void testIllegalFormula() throws ParserException { + try { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + this.ordering.getOrder(p.parse("A <=> ~B")); + } catch (final IllegalArgumentException e) { + assertThat(e).hasMessage("FORCE variable ordering can only be applied to CNF formulas."); + } + } + + @Test + public void testComplexFormula() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Formula formula = p.parse("(A => ~B) & ((A & C) | (D & ~C)) & (A | Y | X) & (Y <=> (X | (W + A + F < 1)))").cnf(); + assertThat(this.ordering.getOrder(formula)).containsExactly( + f.variable("B"), + f.variable("D"), + f.variable("C"), + f.variable("A"), + f.variable("X"), + f.variable("Y"), + f.variable("W"), + f.variable("F") + ); + } +} diff --git a/src/test/java/org/logicng/bdds/orderings/OccurrenceOrderingTest.java b/src/test/java/org/logicng/bdds/orderings/OccurrenceOrderingTest.java new file mode 100644 index 00000000..c199e8e8 --- /dev/null +++ b/src/test/java/org/logicng/bdds/orderings/OccurrenceOrderingTest.java @@ -0,0 +1,114 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.bdds.orderings; + +import org.junit.Test; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PseudoBooleanParser; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link MinToMaxOrdering} and {@link MaxToMinOrdering}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class OccurrenceOrderingTest { + + private final MinToMaxOrdering min2max = new MinToMaxOrdering(); + private final MaxToMinOrdering max2min = new MaxToMinOrdering(); + + @Test + public void testSimpleCasesMin2Max() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + assertThat(this.min2max.getOrder(p.parse("$true"))).isEmpty(); + assertThat(this.min2max.getOrder(p.parse("$false"))).isEmpty(); + assertThat(this.min2max.getOrder(p.parse("A"))).containsExactly(f.variable("A")); + assertThat(this.min2max.getOrder(p.parse("A => ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.min2max.getOrder(p.parse("A <=> ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.min2max.getOrder(p.parse("~(A <=> ~B)"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.min2max.getOrder(p.parse("A | ~C | B | D"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.min2max.getOrder(p.parse("A & ~C & B & D"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.min2max.getOrder(p.parse("A + C + B + D < 2"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + } + + @Test + public void testSimpleCasesMax2Min() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + assertThat(this.max2min.getOrder(p.parse("$true"))).isEmpty(); + assertThat(this.max2min.getOrder(p.parse("$false"))).isEmpty(); + assertThat(this.max2min.getOrder(p.parse("A"))).containsExactly(f.variable("A")); + assertThat(this.max2min.getOrder(p.parse("A => ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.max2min.getOrder(p.parse("A <=> ~B"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.max2min.getOrder(p.parse("~(A <=> ~B)"))).containsExactly(f.variable("A"), f.variable("B")); + assertThat(this.max2min.getOrder(p.parse("A | ~C | B | D"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.max2min.getOrder(p.parse("A & ~C & B & D"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + assertThat(this.max2min.getOrder(p.parse("A + C + B + D < 2"))).containsExactly(f.variable("A"), f.variable("C"), f.variable("B"), f.variable("D")); + } + + @Test + public void testComplexFormulaMin2Max() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Formula formula = p.parse("(A => ~B) & ((A & C) | (D & ~C)) & (A | Y | X) & (Y <=> (X | (X + W + A + F < 1)))"); + + assertThat(this.min2max.getOrder(formula)).containsExactly( + f.variable("A"), + f.variable("X"), + f.variable("C"), + f.variable("Y"), + f.variable("B"), + f.variable("D"), + f.variable("W"), + f.variable("F") + ); + } + + @Test + public void testComplexFormulaMax2Min() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Formula formula = p.parse("(A => ~B) & ((A & C) | (D & ~C)) & (A | Y | X) & (Y <=> (X | (X + W + A + F < 1)))"); + + assertThat(this.max2min.getOrder(formula)).containsExactly( + f.variable("B"), + f.variable("D"), + f.variable("W"), + f.variable("F"), + f.variable("C"), + f.variable("Y"), + f.variable("X"), + f.variable("A") + ); + } +} diff --git a/src/test/java/org/logicng/explanations/unsatcores/MUSGenerationTest.java b/src/test/java/org/logicng/explanations/unsatcores/MUSGenerationTest.java index b86d63b4..52707df2 100644 --- a/src/test/java/org/logicng/explanations/unsatcores/MUSGenerationTest.java +++ b/src/test/java/org/logicng/explanations/unsatcores/MUSGenerationTest.java @@ -36,7 +36,7 @@ import org.logicng.formulas.Literal; import org.logicng.propositions.StandardProposition; import org.logicng.solvers.MiniSat; -import org.logicng.solvers.sat.PigeonHoleGenerator; +import org.logicng.testutils.PigeonHoleGenerator; import java.io.BufferedReader; import java.io.FileReader; diff --git a/src/test/java/org/logicng/formulas/CacheTest.java b/src/test/java/org/logicng/formulas/CacheTest.java index 2fa736fa..350629a5 100644 --- a/src/test/java/org/logicng/formulas/CacheTest.java +++ b/src/test/java/org/logicng/formulas/CacheTest.java @@ -63,17 +63,17 @@ public void testDescription() { @Test public void testValues() { - List valuesTrans = Arrays.asList(TransformationCacheEntry.values()); - Assert.assertEquals(11, valuesTrans.size()); + final List valuesTrans = Arrays.asList(TransformationCacheEntry.values()); + Assert.assertEquals(13, valuesTrans.size()); Assert.assertTrue(valuesTrans.contains(TransformationCacheEntry.valueOf("FACTORIZED_DNF"))); Assert.assertTrue(valuesTrans.contains(TransformationCacheEntry.valueOf("PLAISTED_GREENBAUM_NEG"))); - List valuesPred = Arrays.asList(PredicateCacheEntry.values()); + final List valuesPred = Arrays.asList(PredicateCacheEntry.values()); Assert.assertEquals(5, valuesPred.size()); Assert.assertTrue(valuesPred.contains(PredicateCacheEntry.valueOf("IS_DNF"))); Assert.assertTrue(valuesPred.contains(PredicateCacheEntry.valueOf("IS_SAT"))); - List valuesFunc = Arrays.asList(FunctionCacheEntry.values()); + final List valuesFunc = Arrays.asList(FunctionCacheEntry.values()); Assert.assertEquals(3, valuesFunc.size()); Assert.assertTrue(valuesFunc.contains(FunctionCacheEntry.valueOf("LITPROFILE"))); Assert.assertTrue(valuesFunc.contains(FunctionCacheEntry.valueOf("SUBFORMULAS"))); diff --git a/src/test/java/org/logicng/formulas/ExtendedFormulaFactoryTest.java b/src/test/java/org/logicng/formulas/ExtendedFormulaFactoryTest.java index 6a0f7460..f865828a 100644 --- a/src/test/java/org/logicng/formulas/ExtendedFormulaFactoryTest.java +++ b/src/test/java/org/logicng/formulas/ExtendedFormulaFactoryTest.java @@ -34,7 +34,7 @@ import org.logicng.datastructures.Tristate; import org.logicng.formulas.cache.PredicateCacheEntry; import org.logicng.formulas.cache.TransformationCacheEntry; -import org.logicng.solvers.sat.PigeonHoleGenerator; +import org.logicng.testutils.PigeonHoleGenerator; import org.logicng.transformations.cnf.CNFFactorization; import org.logicng.transformations.dnf.DNFFactorization; diff --git a/src/test/java/org/logicng/graphs/datastructures/HypergraphEdgeTest.java b/src/test/java/org/logicng/graphs/datastructures/HypergraphEdgeTest.java new file mode 100644 index 00000000..daab2cbb --- /dev/null +++ b/src/test/java/org/logicng/graphs/datastructures/HypergraphEdgeTest.java @@ -0,0 +1,91 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.datastructures; + +import org.assertj.core.data.Offset; +import org.junit.Test; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Variable; +import org.logicng.graphs.generators.HypergraphGenerator; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link HypergraphEdge}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphEdgeTest { + + private final Offset offset = Offset.offset(0.000001); + + @Test + public void testSimpleMethods() { + final Hypergraph hypergraph = new Hypergraph<>(); + final HypergraphNode node1 = new HypergraphNode<>(hypergraph, "A"); + final HypergraphNode node2 = new HypergraphNode<>(hypergraph, "B"); + final HypergraphEdge edge1 = new HypergraphEdge<>(node1, node2); + assertThat(edge1.nodes()).containsExactlyInAnyOrder(node1, node2); + } + + @Test + public void testCenterOfGravity() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final Hypergraph hypergraph = HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("A | B | ~C | D"))); + final HypergraphEdge edge = hypergraph.edges().iterator().next(); + final Map, Integer> ordering = new HashMap<>(); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("A")), 1); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("B")), 2); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("C")), 3); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("D")), 4); + assertThat(edge.centerOfGravity(ordering)).isCloseTo(2.5, this.offset); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("A")), 2); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("B")), 4); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("C")), 6); + ordering.put(new HypergraphNode<>(hypergraph, f.variable("D")), 8); + assertThat(edge.centerOfGravity(ordering)).isCloseTo(5, this.offset); + } + + @Test(expected = IllegalStateException.class) + public void testIllegalCenterOfGravity() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final Hypergraph hypergraph = HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("A | B | ~C | D"))); + final HypergraphEdge edge = hypergraph.edges().iterator().next(); + edge.centerOfGravity(new HashMap, Integer>()); + } + +} diff --git a/src/test/java/org/logicng/graphs/datastructures/HypergraphNodeTest.java b/src/test/java/org/logicng/graphs/datastructures/HypergraphNodeTest.java new file mode 100644 index 00000000..2421c4b1 --- /dev/null +++ b/src/test/java/org/logicng/graphs/datastructures/HypergraphNodeTest.java @@ -0,0 +1,54 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.datastructures; + +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link HypergraphNode}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphNodeTest { + + @Test + public void testSimpleMethods() { + final Hypergraph hypergraph = new Hypergraph<>(); + final HypergraphNode node1 = new HypergraphNode<>(hypergraph, "A"); + final HypergraphNode node2 = new HypergraphNode<>(hypergraph, "B"); + final HypergraphEdge edge1 = new HypergraphEdge<>(node1, node2); + assertThat(node1.graph()).isEqualTo(hypergraph); + assertThat(node1.content()).isEqualTo("A"); + assertThat(node1.edges()).containsExactlyInAnyOrder(edge1); + } + + +} diff --git a/src/test/java/org/logicng/graphs/datastructures/HypergraphTest.java b/src/test/java/org/logicng/graphs/datastructures/HypergraphTest.java new file mode 100644 index 00000000..c8fb3a64 --- /dev/null +++ b/src/test/java/org/logicng/graphs/datastructures/HypergraphTest.java @@ -0,0 +1,79 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.datastructures; + +import org.junit.Test; + +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link Hypergraph}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphTest { + + @Test + public void testGraphConstruction() { + final Hypergraph hypergraph = new Hypergraph<>(); + final HypergraphNode node1 = new HypergraphNode<>(hypergraph, "A"); + final HypergraphNode node2 = new HypergraphNode<>(hypergraph, "B"); + final HypergraphEdge edge1 = new HypergraphEdge<>(Arrays.asList(node1, node2)); + + hypergraph.addEdge(edge1); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder(edge1); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(node1, node2); + + final HypergraphNode node3 = new HypergraphNode<>(hypergraph, "C"); + final HypergraphEdge edge2 = new HypergraphEdge<>(Arrays.asList(node2, node3)); + final HypergraphEdge edge3 = new HypergraphEdge<>(Arrays.asList(node1, node2, node3)); + + hypergraph.addEdges(Arrays.asList(edge2, edge3)); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder(edge1, edge2, edge3); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(node1, node2, node3); + + final HypergraphEdge edge4 = new HypergraphEdge<>(Arrays.asList(node1, node3)); + + hypergraph.addEdge(node1, node3); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder(edge1, edge2, edge3, edge4); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(node1, node2, node3); + } + + @Test + public void testToString() { + final Hypergraph hypergraph = new Hypergraph<>(); + final HypergraphNode node1 = new HypergraphNode<>(hypergraph, "A"); + final HypergraphNode node2 = new HypergraphNode<>(hypergraph, "B"); + final HypergraphEdge edge1 = new HypergraphEdge<>(Arrays.asList(node1, node2)); + hypergraph.addEdge(edge1); + assertThat(hypergraph.toString()).isEqualTo("Hypergraph{nodes=[HypergraphNode{content=A}, HypergraphNode{content=B}], edges=[HypergraphEdge{nodes=[HypergraphNode{content=A}, HypergraphNode{content=B}]}]}"); + } +} diff --git a/src/test/java/org/logicng/graphs/generators/HypergraphGeneratorTest.java b/src/test/java/org/logicng/graphs/generators/HypergraphGeneratorTest.java new file mode 100644 index 00000000..1226b926 --- /dev/null +++ b/src/test/java/org/logicng/graphs/generators/HypergraphGeneratorTest.java @@ -0,0 +1,174 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.graphs.generators; + +import org.junit.Test; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Variable; +import org.logicng.graphs.datastructures.Hypergraph; +import org.logicng.graphs.datastructures.HypergraphEdge; +import org.logicng.graphs.datastructures.HypergraphNode; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; + +import java.util.Arrays; +import java.util.Collections; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link HypergraphGenerator}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class HypergraphGeneratorTest { + + @Test + public void testCNF() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + assertThat(HypergraphGenerator.fromCNF(p.parse("$false")).nodes()).isEmpty(); + assertThat(HypergraphGenerator.fromCNF(p.parse("$false")).edges()).isEmpty(); + assertThat(HypergraphGenerator.fromCNF(p.parse("$true")).nodes()).isEmpty(); + assertThat(HypergraphGenerator.fromCNF(p.parse("$true")).edges()).isEmpty(); + + Hypergraph hypergraph = HypergraphGenerator.fromCNF(p.parse("A")); + HypergraphNode nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + assertThat(hypergraph.nodes()).containsExactly(nodeA); + assertThat(hypergraph.edges()).containsExactly(new HypergraphEdge<>(Collections.singletonList(nodeA))); + + hypergraph = HypergraphGenerator.fromCNF(p.parse("A | B | ~C")); + nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + HypergraphNode nodeB = new HypergraphNode<>(hypergraph, f.variable("B")); + HypergraphNode nodeC = new HypergraphNode<>(hypergraph, f.variable("C")); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(nodeA, nodeB, nodeC); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder(new HypergraphEdge<>(Arrays.asList(nodeA, nodeB, nodeC))); + + hypergraph = HypergraphGenerator.fromCNF(p.parse("(A | B | ~C) & (B | ~D) & (C | ~E) & (~B | ~D | E) & X & ~Y")); + nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + nodeB = new HypergraphNode<>(hypergraph, f.variable("B")); + nodeC = new HypergraphNode<>(hypergraph, f.variable("C")); + final HypergraphNode nodeD = new HypergraphNode<>(hypergraph, f.variable("D")); + final HypergraphNode nodeE = new HypergraphNode<>(hypergraph, f.variable("E")); + final HypergraphNode nodeX = new HypergraphNode<>(hypergraph, f.variable("X")); + final HypergraphNode nodeY = new HypergraphNode<>(hypergraph, f.variable("Y")); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(nodeA, nodeB, nodeC, nodeD, nodeE, nodeX, nodeY); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder( + new HypergraphEdge<>(Arrays.asList(nodeA, nodeB, nodeC)), + new HypergraphEdge<>(Arrays.asList(nodeB, nodeD)), + new HypergraphEdge<>(Arrays.asList(nodeC, nodeE)), + new HypergraphEdge<>(Arrays.asList(nodeB, nodeD, nodeE)), + new HypergraphEdge<>(Collections.singletonList(nodeX)), + new HypergraphEdge<>(Collections.singletonList(nodeY)) + ); + } + + @Test + public void testCNFFromList() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + assertThat(HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("$false"))).nodes()).isEmpty(); + assertThat(HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("$false"))).edges()).isEmpty(); + assertThat(HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("$true"))).nodes()).isEmpty(); + assertThat(HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("$true"))).edges()).isEmpty(); + + Hypergraph hypergraph = HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("A"))); + HypergraphNode nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + assertThat(hypergraph.nodes()).containsExactly(nodeA); + assertThat(hypergraph.edges()).containsExactly(new HypergraphEdge<>(Collections.singletonList(nodeA))); + + hypergraph = HypergraphGenerator.fromCNF(Collections.singletonList(p.parse("A | B | ~C"))); + nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + HypergraphNode nodeB = new HypergraphNode<>(hypergraph, f.variable("B")); + HypergraphNode nodeC = new HypergraphNode<>(hypergraph, f.variable("C")); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(nodeA, nodeB, nodeC); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder(new HypergraphEdge<>(Arrays.asList(nodeA, nodeB, nodeC))); + + hypergraph = HypergraphGenerator.fromCNF(Arrays.asList( + p.parse("(A | B | ~C)"), + p.parse("(B | ~D)"), + p.parse("(C | ~E)"), + p.parse("(~B | ~D | E)"), + p.parse("X"), + p.parse("~Y") + )); + nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + nodeB = new HypergraphNode<>(hypergraph, f.variable("B")); + nodeC = new HypergraphNode<>(hypergraph, f.variable("C")); + HypergraphNode nodeD = new HypergraphNode<>(hypergraph, f.variable("D")); + HypergraphNode nodeE = new HypergraphNode<>(hypergraph, f.variable("E")); + HypergraphNode nodeX = new HypergraphNode<>(hypergraph, f.variable("X")); + HypergraphNode nodeY = new HypergraphNode<>(hypergraph, f.variable("Y")); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(nodeA, nodeB, nodeC, nodeD, nodeE, nodeX, nodeY); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder( + new HypergraphEdge<>(Arrays.asList(nodeA, nodeB, nodeC)), + new HypergraphEdge<>(Arrays.asList(nodeB, nodeD)), + new HypergraphEdge<>(Arrays.asList(nodeC, nodeE)), + new HypergraphEdge<>(Arrays.asList(nodeB, nodeD, nodeE)), + new HypergraphEdge<>(Collections.singletonList(nodeX)), + new HypergraphEdge<>(Collections.singletonList(nodeY)) + ); + + hypergraph = HypergraphGenerator.fromCNF( + p.parse("(A | B | ~C)"), + p.parse("(B | ~D)"), + p.parse("(C | ~E)"), + p.parse("(~B | ~D | E)"), + p.parse("X"), + p.parse("~Y") + ); + nodeA = new HypergraphNode<>(hypergraph, f.variable("A")); + nodeB = new HypergraphNode<>(hypergraph, f.variable("B")); + nodeC = new HypergraphNode<>(hypergraph, f.variable("C")); + nodeD = new HypergraphNode<>(hypergraph, f.variable("D")); + nodeE = new HypergraphNode<>(hypergraph, f.variable("E")); + nodeX = new HypergraphNode<>(hypergraph, f.variable("X")); + nodeY = new HypergraphNode<>(hypergraph, f.variable("Y")); + assertThat(hypergraph.nodes()).containsExactlyInAnyOrder(nodeA, nodeB, nodeC, nodeD, nodeE, nodeX, nodeY); + assertThat(hypergraph.edges()).containsExactlyInAnyOrder( + new HypergraphEdge<>(Arrays.asList(nodeA, nodeB, nodeC)), + new HypergraphEdge<>(Arrays.asList(nodeB, nodeD)), + new HypergraphEdge<>(Arrays.asList(nodeC, nodeE)), + new HypergraphEdge<>(Arrays.asList(nodeB, nodeD, nodeE)), + new HypergraphEdge<>(Collections.singletonList(nodeX)), + new HypergraphEdge<>(Collections.singletonList(nodeY)) + ); + } + + @Test + public void testNonCNF() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + try { + HypergraphGenerator.fromCNF(p.parse("A => B")); + } catch (final IllegalArgumentException e) { + assertThat(e).hasMessage("Cannot generate a hypergraph from a non-cnf formula"); + } + } +} diff --git a/src/test/java/org/logicng/io/parsers/PropositionalParserTest.java b/src/test/java/org/logicng/io/parsers/PropositionalParserTest.java index 6acba4cb..5118368d 100644 --- a/src/test/java/org/logicng/io/parsers/PropositionalParserTest.java +++ b/src/test/java/org/logicng/io/parsers/PropositionalParserTest.java @@ -32,6 +32,12 @@ import org.junit.Test; import org.logicng.formulas.F; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +import static org.assertj.core.api.Assertions.assertThat; + /** * Unit Tests for the class {@link PropositionalParser}. * @version 1.1 @@ -41,22 +47,22 @@ public class PropositionalParserTest { @Test public void testExceptions() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse("")); - String s = null; + final String s = null; Assert.assertEquals(F.f.verum(), parser.parse(s)); } @Test public void testParseConstants() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse("$true")); Assert.assertEquals(F.f.falsum(), parser.parse("$false")); } @Test public void testParseLiterals() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.variable("A"), parser.parse("A")); Assert.assertEquals(F.f.variable("a"), parser.parse("a")); Assert.assertEquals(F.f.variable("a1"), parser.parse("a1")); @@ -70,7 +76,7 @@ public void testParseLiterals() throws ParserException { @Test public void testParseOperators() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.not(F.f.variable("a")), parser.parse("~a")); Assert.assertEquals(F.f.not(F.f.variable("Var")), parser.parse("~Var")); Assert.assertEquals(F.f.and(F.f.variable("a"), F.f.variable("b")), parser.parse("a & b")); @@ -87,7 +93,7 @@ public void testParseOperators() throws ParserException { @Test public void testParsePrecedences() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.or(F.f.variable("x"), F.f.and(F.f.variable("y"), F.f.variable("z"))), parser.parse("x | y & z")); Assert.assertEquals(F.f.or(F.f.and(F.f.variable("x"), F.f.variable("y")), F.f.variable("z")), parser.parse("x & y | z")); Assert.assertEquals(F.f.implication(F.f.variable("x"), F.f.and(F.f.variable("y"), F.f.variable("z"))), parser.parse("x => y & z")); @@ -114,15 +120,31 @@ public void testParsePrecedences() throws ParserException { Assert.assertEquals(F.f.implication(F.f.variable("x"), F.f.equivalence(F.f.variable("y"), F.f.variable("z"))), parser.parse("x => (y <=> z)")); } + @Test + public void parseInputStream() throws ParserException { + final PropositionalParser parser = new PropositionalParser(F.f); + final String string = "A & B => D | ~C"; + final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8)); + assertThat(parser.parse(stream)).isEqualTo(parser.parse(string)); + assertThat(parser.parse((InputStream) null)).isEqualTo(F.f.verum()); + } + @Test public void parseEmptyString() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse("")); + Assert.assertEquals(F.f.verum(), parser.parse((String) null)); + } + + @Test + public void testFormulaFactory() { + final PropositionalParser parser = new PropositionalParser(F.f); + assertThat(parser.factory()).isEqualTo(F.f); } @Test public void testSkipSymbols() throws ParserException { - PropositionalParser parser = new PropositionalParser(F.f); + final PropositionalParser parser = new PropositionalParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse(" ")); Assert.assertEquals(F.f.verum(), parser.parse("\t")); Assert.assertEquals(F.f.verum(), parser.parse("\n")); @@ -132,6 +154,12 @@ public void testSkipSymbols() throws ParserException { Assert.assertEquals(F.IMP1, parser.parse(" a\r=>\t\tb")); } + @Test + public void testNumericalLiteral() throws ParserException { + final PropositionalParser parser = new PropositionalParser(F.f); + assertThat(parser.parse("12")).isEqualTo(F.f.variable("12")); + } + @Test(expected = ParserException.class) public void testIllegalVariable1() throws ParserException { new PropositionalParser(F.f).parse("$$%"); @@ -212,6 +240,20 @@ public void testIllegalFormula7() throws ParserException { new PropositionalParser(F.f).parse("ab@cd)"); } + @Test(expected = ParserException.class) + public void testIllegalFormula8() throws ParserException { + final String string = "A & B => D | ~"; + final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8)); + new PropositionalParser(F.f).parse(stream); + } + + @Test(expected = ParserException.class) + public void testIllegalFormula9() throws ParserException { + final String string = "#"; + final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8)); + new PropositionalParser(F.f).parse(stream); + } + @Test public void testToStrings() { Assert.assertEquals("PropositionalLexer", new PropositionalLexer(null).toString()); diff --git a/src/test/java/org/logicng/io/parsers/PseudoBooleanParserTest.java b/src/test/java/org/logicng/io/parsers/PseudoBooleanParserTest.java index 73e62b4b..9c46fcf0 100644 --- a/src/test/java/org/logicng/io/parsers/PseudoBooleanParserTest.java +++ b/src/test/java/org/logicng/io/parsers/PseudoBooleanParserTest.java @@ -33,8 +33,11 @@ import org.logicng.formulas.CType; import org.logicng.formulas.F; import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; import org.logicng.formulas.Literal; +import static org.assertj.core.api.Assertions.assertThat; + /** * Unit Tests for the class {@link PseudoBooleanParser}. * @version 1.1 @@ -44,21 +47,21 @@ public class PseudoBooleanParserTest { @Test public void testExceptions() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse("")); Assert.assertEquals(F.f.verum(), parser.parse((String) null)); } @Test public void testParseConstants() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse("$true")); Assert.assertEquals(F.f.falsum(), parser.parse("$false")); } @Test public void testParseLiterals() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.variable("A"), parser.parse("A")); Assert.assertEquals(F.f.variable("a"), parser.parse("a")); Assert.assertEquals(F.f.variable("a1"), parser.parse("a1")); @@ -70,7 +73,7 @@ public void testParseLiterals() throws ParserException { @Test public void testParseOperators() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.not(F.f.variable("a")), parser.parse("~a")); Assert.assertEquals(F.f.not(F.f.variable("Var")), parser.parse("~Var")); Assert.assertEquals(F.f.and(F.f.variable("a"), F.f.variable("b")), parser.parse("a & b")); @@ -87,7 +90,7 @@ public void testParseOperators() throws ParserException { @Test public void testParseMultiplication() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.pbc(CType.EQ, 4, new Literal[]{F.f.variable("abc")}, new int[]{13}), parser.parse("13 * abc = 4")); Assert.assertEquals(F.f.pbc(CType.EQ, 4, new Literal[]{F.f.variable("a")}, new int[]{-13}), parser.parse("-13 * a = 4")); Assert.assertEquals(F.f.pbc(CType.EQ, -442, new Literal[]{F.f.literal("abc", false)}, new int[]{13}), parser.parse("13 * ~abc = -442")); @@ -101,7 +104,7 @@ public void testParseMultiplication() throws ParserException { @Test public void testParseAddition() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.pbc(CType.LT, -4, new Literal[]{F.f.variable("c"), F.f.literal("d", false)}, new int[]{4, -4}), parser.parse("4 * c + -4 * ~d < -4")); Assert.assertEquals(F.f.pbc(CType.GE, -5, new Literal[]{F.f.variable("c"), F.f.literal("c", false)}, new int[]{5, -5}), parser.parse("5 * c + -5 * ~c >= -5")); Assert.assertEquals(F.f.pbc(CType.GT, -6, new Literal[]{F.f.variable("a"), F.f.literal("b", false), F.f.literal("c", false)}, new int[]{6, -6, 12}), parser.parse("6 * a + -6 * ~b + 12 * ~c > -6")); @@ -115,15 +118,15 @@ public void testParseAddition() throws ParserException { @Test public void testCombination() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); - Formula pbc = F.f.pbc(CType.GT, -6, new Literal[]{F.f.variable("a"), F.f.literal("b", false), F.f.literal("c", false)}, new int[]{6, -6, 12}); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final Formula pbc = F.f.pbc(CType.GT, -6, new Literal[]{F.f.variable("a"), F.f.literal("b", false), F.f.literal("c", false)}, new int[]{6, -6, 12}); Assert.assertEquals(F.f.and(F.f.implication(F.f.variable("x"), F.f.and(F.f.variable("y"), F.f.variable("z"))), pbc), parser.parse("(x => y & z) & (6 * a + -6 * ~b + 12 * ~c > -6)")); Assert.assertEquals(F.f.not(pbc), parser.parse("~(6 * a - 6 * ~b - -12 * ~c > -6)")); } @Test public void testParsePrecedences() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.or(F.f.variable("x"), F.f.and(F.f.variable("y"), F.f.variable("z"))), parser.parse("x | y & z")); Assert.assertEquals(F.f.or(F.f.and(F.f.variable("x"), F.f.variable("y")), F.f.variable("z")), parser.parse("x & y | z")); Assert.assertEquals(F.f.implication(F.f.variable("x"), F.f.and(F.f.variable("y"), F.f.variable("z"))), parser.parse("x => y & z")); @@ -152,13 +155,13 @@ public void testParsePrecedences() throws ParserException { @Test public void parseEmptyString() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse("")); } @Test public void testSkipSymbols() throws ParserException { - PseudoBooleanParser parser = new PseudoBooleanParser(F.f); + final PseudoBooleanParser parser = new PseudoBooleanParser(F.f); Assert.assertEquals(F.f.verum(), parser.parse(" ")); Assert.assertEquals(F.f.verum(), parser.parse("\t")); Assert.assertEquals(F.f.verum(), parser.parse("\n")); @@ -169,6 +172,16 @@ public void testSkipSymbols() throws ParserException { Assert.assertEquals(F.PBC1, parser.parse(" 2\n*a\r+\n\n-4*\tb +3*x=2")); } + @Test + public void testNumberLiterals() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser parser = new PseudoBooleanParser(f); + assertThat(parser.parse("12 & A")).isEqualTo(f.and(f.variable("12"), f.variable("A"))); + assertThat(parser.parse("~12 & A")).isEqualTo(f.and(f.literal("12", false), f.variable("A"))); + assertThat(parser.parse("12 * 12 + 13 * A + 10 * B <= 25")).isEqualTo(f.pbc(CType.LE, 25, new Literal[]{f.variable("12"), f.variable("A"), f.variable("B")}, new int[]{12, 13, 10})); + assertThat(parser.parse("-12 * ~12 + 13 * A + 10 * B <= 25")).isEqualTo(f.pbc(CType.LE, 25, new Literal[]{f.literal("12", false), f.variable("A"), f.variable("B")}, new int[]{-12, 13, 10})); + } + @Test public void testFormulaFactoryParser() throws ParserException { Assert.assertEquals(F.f.and(F.f.variable("a"), F.f.variable("b")), F.f.parse("a & b")); @@ -180,11 +193,6 @@ public void testIllegalVariable1() throws ParserException { new PseudoBooleanParser(F.f).parse("$$%"); } - @Test(expected = ParserException.class) - public void testIllegalVariable2() throws ParserException { - new PseudoBooleanParser(F.f).parse("-1"); - } - @Test(expected = ParserException.class) public void testIllegalVariable3() throws ParserException { new PseudoBooleanParser(F.f).parse(";;23"); @@ -250,11 +258,6 @@ public void testIllegalFormula5() throws ParserException { new PseudoBooleanParser(F.f).parse("A & ~B)"); } - @Test(expected = ParserException.class) - public void testIllegalFormula6() throws ParserException { - new PseudoBooleanParser(F.f).parse("12a"); - } - @Test(expected = ParserException.class) public void testIllegalFormula7() throws ParserException { new PseudoBooleanParser(F.f).parse("abc@"); diff --git a/src/test/java/org/logicng/predicates/satisfiability/PredicatesTest.java b/src/test/java/org/logicng/predicates/satisfiability/PredicatesTest.java index 2a3c8c10..782ef953 100644 --- a/src/test/java/org/logicng/predicates/satisfiability/PredicatesTest.java +++ b/src/test/java/org/logicng/predicates/satisfiability/PredicatesTest.java @@ -38,7 +38,7 @@ import org.logicng.formulas.Variable; import org.logicng.solvers.MiniSat; import org.logicng.solvers.SATSolver; -import org.logicng.solvers.sat.PigeonHoleGenerator; +import org.logicng.testutils.PigeonHoleGenerator; import static org.logicng.formulas.cache.PredicateCacheEntry.IS_SAT; import static org.logicng.formulas.cache.PredicateCacheEntry.IS_TAUTOLOGY; diff --git a/src/test/java/org/logicng/solvers/sat/IncDecTest.java b/src/test/java/org/logicng/solvers/sat/IncDecTest.java index de936393..47873942 100644 --- a/src/test/java/org/logicng/solvers/sat/IncDecTest.java +++ b/src/test/java/org/logicng/solvers/sat/IncDecTest.java @@ -34,6 +34,7 @@ import org.logicng.solvers.MiniSat; import org.logicng.solvers.SATSolver; import org.logicng.solvers.SolverState; +import org.logicng.testutils.PigeonHoleGenerator; import static org.logicng.datastructures.Tristate.FALSE; import static org.logicng.datastructures.Tristate.TRUE; diff --git a/src/test/java/org/logicng/solvers/sat/SATTest.java b/src/test/java/org/logicng/solvers/sat/SATTest.java index 43708344..cb784623 100644 --- a/src/test/java/org/logicng/solvers/sat/SATTest.java +++ b/src/test/java/org/logicng/solvers/sat/SATTest.java @@ -50,6 +50,7 @@ import org.logicng.solvers.MiniSat; import org.logicng.solvers.SATSolver; import org.logicng.solvers.SolverState; +import org.logicng.testutils.PigeonHoleGenerator; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; diff --git a/src/test/java/org/logicng/testutils/NQueensGenerator.java b/src/test/java/org/logicng/testutils/NQueensGenerator.java new file mode 100644 index 00000000..f2945140 --- /dev/null +++ b/src/test/java/org/logicng/testutils/NQueensGenerator.java @@ -0,0 +1,103 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2016 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.testutils; + +import org.logicng.cardinalityconstraints.CCConfig; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Variable; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * A generator for the n-queens problem. + * @version 1.2 + * @since 1.2 + */ +public class NQueensGenerator { + + private final FormulaFactory f; + + public NQueensGenerator(final FormulaFactory f) { + this.f = f; + this.f.putConfiguration(new CCConfig.Builder().amoEncoding(CCConfig.AMO_ENCODER.PURE).build()); + } + + public Formula generate(int n) { + int kk = 1; + Variable[][] varNames = new Variable[n][]; + for (int i = 0; i < n; i++) { + varNames[i] = new Variable[n]; + for (int j = 0; j < n; j++) + varNames[i][j] = f.variable("v" + kk++); + } + + List operands = new ArrayList<>(); + List vars = new ArrayList<>(); + + for (int i = 0; i < n; i++) { + vars.addAll(Arrays.asList(varNames[i]).subList(0, n)); + operands.add(f.exo(vars).cnf()); + vars.clear(); + } + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) + vars.add(varNames[j][i]); + operands.add(f.exo(vars).cnf()); + vars.clear(); + } + for (int i = 0; i < n - 1; i++) { + for (int j = 0; j < n - i; j++) + vars.add(varNames[j][i + j]); + operands.add(f.amo(vars).cnf()); + vars.clear(); + } + for (int i = 1; i < n - 1; i++) { + for (int j = 0; j < n - i; j++) + vars.add(varNames[j + i][j]); + operands.add(f.amo(vars).cnf()); + vars.clear(); + } + for (int i = 0; i < n - 1; i++) { + for (int j = 0; j < n - i; j++) + vars.add(varNames[j][n - 1 - (i + j)]); + operands.add(f.amo(vars).cnf()); + vars.clear(); + } + for (int i = 1; i < n - 1; i++) { + for (int j = 0; j < n - i; j++) + vars.add(varNames[j + i][n - 1 - j]); + operands.add(f.amo(vars).cnf()); + vars.clear(); + } + return f.and(operands); + } +} diff --git a/src/test/java/org/logicng/solvers/sat/PigeonHoleGenerator.java b/src/test/java/org/logicng/testutils/PigeonHoleGenerator.java similarity index 99% rename from src/test/java/org/logicng/solvers/sat/PigeonHoleGenerator.java rename to src/test/java/org/logicng/testutils/PigeonHoleGenerator.java index 97489a11..f79befca 100644 --- a/src/test/java/org/logicng/solvers/sat/PigeonHoleGenerator.java +++ b/src/test/java/org/logicng/testutils/PigeonHoleGenerator.java @@ -26,7 +26,7 @@ // // /////////////////////////////////////////////////////////////////////////// -package org.logicng.solvers.sat; +package org.logicng.testutils; import org.logicng.formulas.Formula; import org.logicng.formulas.FormulaFactory; diff --git a/src/test/java/org/logicng/transformations/AnonymizerTest.java b/src/test/java/org/logicng/transformations/AnonymizerTest.java new file mode 100644 index 00000000..7fc6a146 --- /dev/null +++ b/src/test/java/org/logicng/transformations/AnonymizerTest.java @@ -0,0 +1,77 @@ +package org.logicng.transformations; + +import org.junit.Test; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PseudoBooleanParser; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Unit tests for {@link Anonymizer}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class AnonymizerTest { + + @Test + public void testSimpleFormulasDefault() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Anonymizer anonymizer = new Anonymizer(); + assertThat(p.parse("$true").transform(anonymizer)).isEqualTo(p.parse("$true")); + assertThat(p.parse("$false").transform(anonymizer)).isEqualTo(p.parse("$false")); + assertThat(p.parse("A").transform(anonymizer)).isEqualTo(p.parse("v0")); + assertThat(p.parse("~A").transform(anonymizer)).isEqualTo(p.parse("~v0")); + assertThat(p.parse("A => ~B").transform(anonymizer)).isEqualTo(p.parse("v0 => ~v1")); + assertThat(p.parse("A <=> ~B").transform(anonymizer)).isEqualTo(p.parse("v0 <=> ~v1")); + assertThat(p.parse("A | B | ~D | C").transform(anonymizer)).isEqualTo(p.parse("v0 | v1 | ~v3 | v2")); + assertThat(p.parse("A & B & C & ~D").transform(anonymizer)).isEqualTo(p.parse("v0 & v1 & v2 & ~v3")); + } + + @Test + public void testSimpleFormulasOwnPrefix() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Anonymizer anonymizer = new Anonymizer("var"); + assertThat(p.parse("$true").transform(anonymizer)).isEqualTo(p.parse("$true")); + assertThat(p.parse("$false").transform(anonymizer)).isEqualTo(p.parse("$false")); + assertThat(p.parse("A").transform(anonymizer)).isEqualTo(p.parse("var0")); + assertThat(p.parse("~A").transform(anonymizer)).isEqualTo(p.parse("~var0")); + assertThat(p.parse("A => ~B").transform(anonymizer)).isEqualTo(p.parse("var0 => ~var1")); + assertThat(p.parse("A <=> ~B").transform(anonymizer)).isEqualTo(p.parse("var0 <=> ~var1")); + assertThat(p.parse("A <=> ~B").transform(anonymizer)).isEqualTo(p.parse("var0 <=> ~var1")); + assertThat(p.parse("A | B | ~D | C").transform(anonymizer)).isEqualTo(p.parse("var0 | var1 | ~var3 | var2")); + assertThat(p.parse("A & B & C & ~D").transform(anonymizer)).isEqualTo(p.parse("var0 & var1 & var2 & ~var3")); + } + + @Test + public void testSimpleFormulasOwnPrefixAndCounter() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Anonymizer anonymizer = new Anonymizer("var", 10); + assertThat(p.parse("$true").transform(anonymizer)).isEqualTo(p.parse("$true")); + assertThat(p.parse("$false").transform(anonymizer)).isEqualTo(p.parse("$false")); + assertThat(p.parse("A").transform(anonymizer)).isEqualTo(p.parse("var10")); + assertThat(p.parse("~A").transform(anonymizer)).isEqualTo(p.parse("~var10")); + assertThat(p.parse("A => ~B").transform(anonymizer)).isEqualTo(p.parse("var10 => ~var11")); + assertThat(p.parse("A <=> ~B").transform(anonymizer)).isEqualTo(p.parse("var10 <=> ~var11")); + assertThat(p.parse("A | B | ~D | C").transform(anonymizer)).isEqualTo(p.parse("var10 | var11 | ~var13 | var12")); + assertThat(p.parse("A & B & C & ~D").transform(anonymizer)).isEqualTo(p.parse("var10 & var11 & var12 & ~var13")); + } + + @Test + public void testSimpleFormulasOwnPrefixAndCounterWithoutCache() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PseudoBooleanParser p = new PseudoBooleanParser(f); + final Anonymizer anonymizer = new Anonymizer("var", 10); + assertThat(p.parse("$true").transform(anonymizer, false)).isEqualTo(p.parse("$true")); + assertThat(p.parse("$false").transform(anonymizer, false)).isEqualTo(p.parse("$false")); + assertThat(p.parse("A").transform(anonymizer, false)).isEqualTo(p.parse("var10")); + assertThat(p.parse("~A").transform(anonymizer, false)).isEqualTo(p.parse("~var10")); + assertThat(p.parse("A => ~B").transform(anonymizer, false)).isEqualTo(p.parse("var10 => ~var11")); + assertThat(p.parse("A <=> ~B").transform(anonymizer, false)).isEqualTo(p.parse("var10 <=> ~var11")); + assertThat(p.parse("A | B | ~D | C").transform(anonymizer, false)).isEqualTo(p.parse("var10 | var11 | ~var13 | var12")); + assertThat(p.parse("A & B & C & ~D").transform(anonymizer, false)).isEqualTo(p.parse("var10 & var11 & var12 & ~var13")); + } +} diff --git a/src/test/java/org/logicng/transformations/cnf/BDDCNFTest.java b/src/test/java/org/logicng/transformations/cnf/BDDCNFTest.java new file mode 100644 index 00000000..ca1542f3 --- /dev/null +++ b/src/test/java/org/logicng/transformations/cnf/BDDCNFTest.java @@ -0,0 +1,182 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.transformations.cnf; + +import org.junit.Assert; +import org.junit.Test; +import org.logicng.bdds.BDDFactory; +import org.logicng.datastructures.Assignment; +import org.logicng.formulas.F; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Variable; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; +import org.logicng.io.parsers.PseudoBooleanParser; +import org.logicng.predicates.CNFPredicate; +import org.logicng.solvers.MiniSat; +import org.logicng.solvers.SATSolver; + +import java.util.List; +import java.util.SortedSet; + +/** + * Unit Tests for {@link BDDCNFTransformation}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class BDDCNFTest { + + private final BDDCNFTransformation bddcnf = new BDDCNFTransformation(); + private final CNFPredicate cnfPredicate = new CNFPredicate(); + + @Test + public void testConstants() { + Assert.assertEquals(F.TRUE, F.TRUE.transform(this.bddcnf)); + Assert.assertEquals(F.FALSE, F.FALSE.transform(this.bddcnf)); + } + + @Test + public void testLiterals() { + Assert.assertEquals(F.A, F.A.transform(this.bddcnf)); + Assert.assertEquals(F.NA, F.NA.transform(this.bddcnf)); + } + + @Test + public void testBinaryOperators() { + Assert.assertTrue(F.IMP1.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.IMP1, F.IMP1.transform(this.bddcnf), F.IMP1.variables())); + Assert.assertTrue(F.IMP2.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.IMP2, F.IMP2.transform(this.bddcnf), F.IMP2.variables())); + Assert.assertTrue(F.IMP3.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.IMP3, F.IMP3.transform(this.bddcnf), F.IMP3.variables())); + Assert.assertTrue(F.EQ1.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.EQ1, F.EQ1.transform(this.bddcnf), F.EQ1.variables())); + Assert.assertTrue(F.EQ2.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.EQ2, F.EQ2.transform(this.bddcnf), F.EQ2.variables())); + Assert.assertTrue(F.EQ3.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.EQ3, F.EQ3.transform(this.bddcnf), F.EQ3.variables())); + Assert.assertTrue(F.EQ4.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(F.EQ4, F.EQ4.transform(this.bddcnf), F.EQ4.variables())); + } + + @Test + public void testNAryOperators() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + Assert.assertEquals(F.AND1, F.AND1.transform(this.bddcnf)); + Assert.assertEquals(F.OR1, F.OR1.transform(this.bddcnf)); + final Formula f1 = p.parse("~(a | b) & c & ~(x & ~y) & (w => z)"); + final Formula f2 = p.parse("~(a & b) | c | ~(x | ~y)"); + final Formula f3 = p.parse("a | b | (~x & ~y)"); + Assert.assertTrue(f1.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f1, f1.transform(this.bddcnf), f1.variables())); + Assert.assertTrue(f2.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f2, f2.transform(this.bddcnf), f2.variables())); + Assert.assertTrue(f3.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f3, f3.transform(this.bddcnf), f3.variables())); + } + + @Test + public void testNAryOperatorsWithExternalFactory() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final BDDFactory bddFactory = new BDDFactory(1000, 1000, F.f); + bddFactory.setNumberOfVars(7); + final BDDCNFTransformation transformation = new BDDCNFTransformation(bddFactory); + Assert.assertEquals(F.AND1, F.AND1.transform(this.bddcnf)); + Assert.assertEquals(F.OR1, F.OR1.transform(this.bddcnf)); + final Formula f1 = p.parse("~(a | b) & c & ~(x & ~y) & (w => z)"); + final Formula f2 = p.parse("~(a & b) | c | ~(x | ~y)"); + final Formula f3 = p.parse("a | b | (~x & ~y)"); + Assert.assertTrue(f1.transform(transformation).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f1, f1.transform(transformation), f1.variables())); + Assert.assertTrue(f2.transform(transformation).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f2, f2.transform(transformation), f2.variables())); + Assert.assertTrue(f3.transform(transformation).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f3, f3.transform(transformation), f3.variables())); + } + + @Test + public void testNot() throws ParserException { + final PropositionalParser p = new PropositionalParser(F.f); + Assert.assertEquals(p.parse("~a"), p.parse("~a").transform(this.bddcnf)); + Assert.assertEquals(p.parse("a"), p.parse("~~a").transform(this.bddcnf)); + Assert.assertEquals(p.parse("a & ~b"), p.parse("~(a => b)").transform(this.bddcnf)); + final Formula f1 = p.parse("~(~(a | b) => ~(x | y))"); + final Formula f2 = p.parse("~(a <=> b)"); + final Formula f3 = p.parse("~(~(a | b) <=> ~(x | y))"); + final Formula f4 = p.parse("~(a & b & ~x & ~y)"); + final Formula f5 = p.parse("~(a | b | ~x | ~y)"); + Assert.assertTrue(f1.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f1, f1.transform(this.bddcnf), f1.variables())); + Assert.assertTrue(f2.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f2, f2.transform(this.bddcnf), f2.variables())); + Assert.assertTrue(f3.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f3, f3.transform(this.bddcnf), f3.variables())); + Assert.assertTrue(f4.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f4, f4.transform(this.bddcnf), f4.variables())); + Assert.assertTrue(f5.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f5, f5.transform(this.bddcnf), f5.variables())); + Assert.assertTrue(f5.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f5, f5.transform(this.bddcnf), f5.variables())); + } + + @Test + public void testCC() throws ParserException { + final PseudoBooleanParser p = new PseudoBooleanParser(F.f); + final Formula f1 = p.parse("a <=> (1 * b <= 1)"); + final Formula f2 = p.parse("~(1 * b <= 1)"); + final Formula f3 = p.parse("(1 * b + 1 * c + 1 * d <= 1)"); + final Formula f4 = p.parse("~(1 * b + 1 * c + 1 * d <= 1)"); + Assert.assertTrue(f1.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f1, f1.transform(this.bddcnf), f1.variables())); + Assert.assertTrue(f2.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f2, f2.transform(this.bddcnf), f2.variables())); + Assert.assertTrue(f3.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f3, f3.transform(this.bddcnf), f3.variables())); + Assert.assertTrue(f4.transform(this.bddcnf).holds(this.cnfPredicate)); + Assert.assertTrue(equivalentModels(f4, f4.transform(this.bddcnf), f4.variables())); + } + + private boolean equivalentModels(final Formula f1, final Formula f2, final SortedSet vars) { + final SATSolver s = MiniSat.miniSat(f1.factory()); + s.add(f1); + final List models1 = s.enumerateAllModels(vars); + s.reset(); + s.add(f2); + final List models2 = s.enumerateAllModels(vars); + if (models1.size() != models2.size()) + return false; + for (final Assignment model : models1) + if (!models2.contains(model)) + return false; + return true; + } +} diff --git a/src/test/java/org/logicng/transformations/dnf/DNFTest.java b/src/test/java/org/logicng/transformations/dnf/DNFFactorizationTest.java similarity index 60% rename from src/test/java/org/logicng/transformations/dnf/DNFTest.java rename to src/test/java/org/logicng/transformations/dnf/DNFFactorizationTest.java index 5a7241a2..a569e3d1 100644 --- a/src/test/java/org/logicng/transformations/dnf/DNFTest.java +++ b/src/test/java/org/logicng/transformations/dnf/DNFFactorizationTest.java @@ -43,7 +43,7 @@ * @version 1.1 * @since 1.0 */ -public class DNFTest { +public class DNFFactorizationTest { private final DNFFactorization dnfFactorization = new DNFFactorization(); private final DNFPredicate dnfPredicate = new DNFPredicate(); @@ -51,62 +51,62 @@ public class DNFTest { @Test public void testConstants() { - Assert.assertEquals(F.TRUE, F.TRUE.transform(dnfFactorization)); - Assert.assertEquals(F.FALSE, F.FALSE.transform(dnfFactorization)); + Assert.assertEquals(F.TRUE, F.TRUE.transform(this.dnfFactorization)); + Assert.assertEquals(F.FALSE, F.FALSE.transform(this.dnfFactorization)); } @Test public void testLiterals() { - Assert.assertEquals(F.A, F.A.transform(dnfFactorization)); - Assert.assertEquals(F.NA, F.NA.transform(dnfFactorization)); + Assert.assertEquals(F.A, F.A.transform(this.dnfFactorization)); + Assert.assertEquals(F.NA, F.NA.transform(this.dnfFactorization)); } @Test public void testBinaryOperators() throws ParserException { - PropositionalParser p = new PropositionalParser(F.f); - Assert.assertEquals(p.parse("~a | b"), F.IMP1.transform(dnfFactorization)); - Assert.assertEquals(p.parse("a | ~b"), F.IMP2.transform(dnfFactorization)); - Assert.assertEquals(p.parse("~a | ~b | x | y"), F.IMP3.transform(dnfFactorization)); - Assert.assertEquals(p.parse("(a & b) | (~a & ~b)"), F.EQ1.transform(dnfFactorization)); - Assert.assertEquals(p.parse("(a & b) | (~a & ~b)"), F.EQ2.transform(dnfFactorization)); - Assert.assertTrue(F.IMP1.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertTrue(F.IMP2.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertTrue(F.IMP3.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertTrue(F.EQ1.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertFalse(F.EQ1.transform(dnfFactorization).holds(cnfPredicate)); - Assert.assertTrue(F.EQ2.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertFalse(F.EQ2.transform(dnfFactorization).holds(cnfPredicate)); + final PropositionalParser p = new PropositionalParser(F.f); + Assert.assertEquals(p.parse("~a | b"), F.IMP1.transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("a | ~b"), F.IMP2.transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("~a | ~b | x | y"), F.IMP3.transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("(a & b) | (~a & ~b)"), F.EQ1.transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("(a & b) | (~a & ~b)"), F.EQ2.transform(this.dnfFactorization)); + Assert.assertTrue(F.IMP1.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertTrue(F.IMP2.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertTrue(F.IMP3.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertTrue(F.EQ1.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertFalse(F.EQ1.transform(this.dnfFactorization).holds(this.cnfPredicate)); + Assert.assertTrue(F.EQ2.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertFalse(F.EQ2.transform(this.dnfFactorization).holds(this.cnfPredicate)); } @Test public void testNAryOperators() throws ParserException { - PropositionalParser p = new PropositionalParser(F.f); - Assert.assertEquals(F.AND1, F.AND1.transform(dnfFactorization)); - Assert.assertEquals(F.OR1, F.OR1.transform(dnfFactorization)); - Assert.assertEquals(p.parse("~a | ~b | c | (~x & y)"), p.parse("~(a & b) | c | ~(x | ~y)").transform(dnfFactorization)); - Assert.assertEquals(p.parse("(~a & ~b & c & ~x) | (~a & ~b & c & y)"), p.parse("~(a | b) & c & ~(x & ~y)").transform(dnfFactorization)); - Assert.assertEquals(p.parse("(a & b & ~x) | (a & b & ~y)"), p.parse("a & b & (~x | ~y)").transform(dnfFactorization)); - Assert.assertTrue(F.AND1.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertTrue(F.OR1.transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertTrue(p.parse("~(a | b) & c & ~(x & ~y) & (w => z)").transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertFalse(p.parse("~(a | b) & c & ~(x & ~y) & (w => z)").transform(dnfFactorization).holds(cnfPredicate)); - Assert.assertTrue(p.parse("~(a & b) | c | ~(x | ~y)").transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertFalse(p.parse("~(a & b) | c | ~(x | ~y)").transform(dnfFactorization).holds(cnfPredicate)); - Assert.assertTrue(p.parse("a | b | (~x & ~y)").transform(dnfFactorization).holds(dnfPredicate)); - Assert.assertFalse(p.parse("a | b | (~x & ~y)").transform(dnfFactorization).holds(cnfPredicate)); + final PropositionalParser p = new PropositionalParser(F.f); + Assert.assertEquals(F.AND1, F.AND1.transform(this.dnfFactorization)); + Assert.assertEquals(F.OR1, F.OR1.transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("~a | ~b | c | (~x & y)"), p.parse("~(a & b) | c | ~(x | ~y)").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("(~a & ~b & c & ~x) | (~a & ~b & c & y)"), p.parse("~(a | b) & c & ~(x & ~y)").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("(a & b & ~x) | (a & b & ~y)"), p.parse("a & b & (~x | ~y)").transform(this.dnfFactorization)); + Assert.assertTrue(F.AND1.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertTrue(F.OR1.transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertTrue(p.parse("~(a | b) & c & ~(x & ~y) & (w => z)").transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertFalse(p.parse("~(a | b) & c & ~(x & ~y) & (w => z)").transform(this.dnfFactorization).holds(this.cnfPredicate)); + Assert.assertTrue(p.parse("~(a & b) | c | ~(x | ~y)").transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertFalse(p.parse("~(a & b) | c | ~(x | ~y)").transform(this.dnfFactorization).holds(this.cnfPredicate)); + Assert.assertTrue(p.parse("a | b | (~x & ~y)").transform(this.dnfFactorization).holds(this.dnfPredicate)); + Assert.assertFalse(p.parse("a | b | (~x & ~y)").transform(this.dnfFactorization).holds(this.cnfPredicate)); } @Test public void testNot() throws ParserException { - PropositionalParser p = new PropositionalParser(F.f); - Assert.assertEquals(p.parse("~a"), p.parse("~a").transform(dnfFactorization)); - Assert.assertEquals(p.parse("a"), p.parse("~~a").transform(dnfFactorization)); - Assert.assertEquals(p.parse("a & ~b"), p.parse("~(a => b)").transform(dnfFactorization)); - Assert.assertEquals(p.parse("(~a & ~b & x) | (~a & ~b & y)"), p.parse("~(~(a | b) => ~(x | y))").transform(dnfFactorization)); - Assert.assertEquals(p.parse("(~a & b) | (a & ~b)"), p.parse("~(a <=> b)").transform(dnfFactorization)); - Assert.assertEquals(p.parse("~a | ~b | x | y"), p.parse("~(a & b & ~x & ~y)").transform(dnfFactorization)); - Assert.assertEquals(p.parse("~a & ~b & x & y"), p.parse("~(a | b | ~x | ~y)").transform(dnfFactorization)); - Assert.assertEquals(p.parse("~a & ~b & x & y"), p.parse("~(a | b | ~x | ~y)").transform(dnfFactorization)); + final PropositionalParser p = new PropositionalParser(F.f); + Assert.assertEquals(p.parse("~a"), p.parse("~a").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("a"), p.parse("~~a").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("a & ~b"), p.parse("~(a => b)").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("(~a & ~b & x) | (~a & ~b & y)"), p.parse("~(~(a | b) => ~(x | y))").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("(~a & b) | (a & ~b)"), p.parse("~(a <=> b)").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("~a | ~b | x | y"), p.parse("~(a & b & ~x & ~y)").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("~a & ~b & x & y"), p.parse("~(a | b | ~x | ~y)").transform(this.dnfFactorization)); + Assert.assertEquals(p.parse("~a & ~b & x & y"), p.parse("~(a | b | ~x | ~y)").transform(this.dnfFactorization)); } @Test @@ -120,22 +120,22 @@ public void testCDNF() throws ParserException { @Test public void testWithHandler() throws ParserException { - PropositionalParser p = new PropositionalParser(F.f); - Formula formula = p.parse("(~(~(a | b) => ~(x | y))) & ((a | x) => ~(b | y))"); - DNFFactorization factorization = new DNFFactorization(new FactorizationHandler() { + final PropositionalParser p = new PropositionalParser(F.f); + final Formula formula = p.parse("(~(~(a | b) => ~(x | y))) & ((a | x) => ~(b | y))"); + final DNFFactorization factorization = new DNFFactorization(new FactorizationHandler() { private int dists = 0; private int clauses = 0; @Override public boolean performedDistribution() { - dists++; - return dists < 100; + this.dists++; + return this.dists < 100; } @Override - public boolean createdClause(Formula clause) { - clauses++; - return clauses < 5; + public boolean createdClause(final Formula clause) { + this.clauses++; + return this.clauses < 5; } }); Assert.assertNull(factorization.apply(formula, false)); @@ -143,7 +143,7 @@ public boolean createdClause(Formula clause) { @Test public void testToString() { - Assert.assertEquals("DNFFactorization", dnfFactorization.toString()); + Assert.assertEquals("DNFFactorization", this.dnfFactorization.toString()); Assert.assertEquals("CanonicalDNFEnumeration", new CanonicalDNFEnumeration().toString()); } } diff --git a/src/test/java/org/logicng/transformations/qmc/QuineMcCluskeyTest.java b/src/test/java/org/logicng/transformations/qmc/QuineMcCluskeyTest.java new file mode 100644 index 00000000..3306a4e9 --- /dev/null +++ b/src/test/java/org/logicng/transformations/qmc/QuineMcCluskeyTest.java @@ -0,0 +1,381 @@ +/////////////////////////////////////////////////////////////////////////// +// __ _ _ ________ // +// / / ____ ____ _(_)____/ | / / ____/ // +// / / / __ \/ __ `/ / ___/ |/ / / __ // +// / /___/ /_/ / /_/ / / /__/ /| / /_/ / // +// /_____/\____/\__, /_/\___/_/ |_/\____/ // +// /____/ // +// // +// The Next Generation Logic Library // +// // +/////////////////////////////////////////////////////////////////////////// +// // +// Copyright 2015-2018 Christoph Zengler // +// // +// Licensed under the Apache License, Version 2.0 (the "License"); // +// you may not use this file except in compliance with the License. // +// You may obtain a copy of the License at // +// // +// http://www.apache.org/licenses/LICENSE-2.0 // +// // +// Unless required by applicable law or agreed to in writing, software // +// distributed under the License is distributed on an "AS IS" BASIS, // +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or // +// implied. See the License for the specific language governing // +// permissions and limitations under the License. // +// // +/////////////////////////////////////////////////////////////////////////// + +package org.logicng.transformations.qmc; + +import org.junit.Test; +import org.logicng.datastructures.Assignment; +import org.logicng.datastructures.Tristate; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Literal; +import org.logicng.formulas.Variable; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; +import org.logicng.io.readers.FormulaReader; +import org.logicng.predicates.DNFPredicate; +import org.logicng.predicates.satisfiability.TautologyPredicate; +import org.logicng.solvers.MiniSat; +import org.logicng.solvers.SATSolver; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.SortedMap; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.logicng.transformations.qmc.QuineMcCluskeyAlgorithm.chooseSatBased; +import static org.logicng.transformations.qmc.QuineMcCluskeyAlgorithm.combineInTermClasses; +import static org.logicng.transformations.qmc.QuineMcCluskeyAlgorithm.computePrimeImplicants; +import static org.logicng.transformations.qmc.QuineMcCluskeyAlgorithm.convertToTerm; +import static org.logicng.transformations.qmc.QuineMcCluskeyAlgorithm.generateInitialTermClasses; + +/** + * Unit tests for {@link QuineMcCluskeyAlgorithm}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class QuineMcCluskeyTest { + + @Test + public void testSimple1() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final Formula formula = p.parse("(~a & ~b & ~c) | (~a & ~b & c) | (~a & b & ~c) | (a & ~b & c) | (a & b & ~c) | (a & b & c)"); + final Formula dnf = QuineMcCluskeyAlgorithm.compute(formula); + assertThat(dnf.holds(new DNFPredicate())).isTrue(); + assertThat(f.equivalence(formula, dnf).holds(new TautologyPredicate(f))).isTrue(); + } + + @Test + public void testSimple2() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final Formula formula = p.parse("(~a & ~b & ~c) | (~a & b & ~c) | (a & ~b & c) | (a & b & c)"); + final Formula dnf = QuineMcCluskeyAlgorithm.compute(formula); + assertThat(dnf.holds(new DNFPredicate())).isTrue(); + assertThat(f.equivalence(formula, dnf).holds(new TautologyPredicate(f))).isTrue(); + } + + @Test + public void testLarge1() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final Formula formula = p.parse("A => B & ~((D | E | I | J) & ~K) & L"); + final Formula dnf = QuineMcCluskeyAlgorithm.compute(formula); + assertThat(dnf.holds(new DNFPredicate())).isTrue(); + assertThat(f.equivalence(formula, dnf).holds(new TautologyPredicate(f))).isTrue(); + } + + @Test + public void testLarge2() throws ParserException, IOException { + final FormulaFactory f = new FormulaFactory(); + final Formula formula = FormulaReader.readPseudoBooleanFormula("tests/formulas/large_formula.txt", f); + final SATSolver solver = MiniSat.miniSat(f); + solver.add(formula); + final List models = solver.enumerateAllModels(Arrays.asList( + f.variable("v111"), + f.variable("v410"), + f.variable("v434"), + f.variable("v35"), + f.variable("v36"), + f.variable("v78"), + f.variable("v125"), + f.variable("v125"), + f.variable("v58"), + f.variable("v61"))); + final List operands = new ArrayList<>(models.size()); + for (final Assignment model : models) + operands.add(model.formula(f)); + final Formula canonicalDNF = f.or(operands); + final Formula dnf = QuineMcCluskeyAlgorithm.compute(models, f); + assertThat(dnf.holds(new DNFPredicate())).isTrue(); + assertThat(f.equivalence(canonicalDNF, dnf).holds(new TautologyPredicate(f))).isTrue(); + } + + @Test + public void testLarge3() throws ParserException, IOException { + final FormulaFactory f = new FormulaFactory(); + final Formula formula = FormulaReader.readPseudoBooleanFormula("tests/formulas/large_formula.txt", f); + final SATSolver solver = MiniSat.miniSat(f); + solver.add(formula); + final List models = solver.enumerateAllModels(Arrays.asList( + f.variable("v111"), + f.variable("v410"), + f.variable("v434"), + f.variable("v35"), + f.variable("v36"), + f.variable("v78"), + f.variable("v125"), + f.variable("v125"), + f.variable("v58"), + f.variable("v27"), + f.variable("v462"), + f.variable("v463"), + f.variable("v280"), + f.variable("v61"))); + final List operands = new ArrayList<>(models.size()); + for (final Assignment model : models) + operands.add(model.formula(f)); + final Formula canonicalDNF = f.or(operands); + final Formula dnf = QuineMcCluskeyAlgorithm.compute(models, f); + assertThat(dnf.holds(new DNFPredicate())).isTrue(); + assertThat(f.equivalence(canonicalDNF, dnf).holds(new TautologyPredicate(f))).isTrue(); + } + + @Test + public void testConvertToTerm() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final List minterm1 = Arrays.asList(f.literal("A", true), f.literal("B", true), f.literal("C", true)); + final List minterm2 = Arrays.asList(f.literal("A", true), f.literal("B", false), f.literal("C", true)); + final List minterm3 = Arrays.asList(f.literal("A", false), f.literal("B", false), f.literal("C", false)); + + assertThat(convertToTerm(minterm1, f).bits()).isEqualTo(new Tristate[]{Tristate.TRUE, Tristate.TRUE, Tristate.TRUE}); + assertThat(convertToTerm(minterm2, f).bits()).isEqualTo(new Tristate[]{Tristate.TRUE, Tristate.FALSE, Tristate.TRUE}); + assertThat(convertToTerm(minterm3, f).bits()).isEqualTo(new Tristate[]{Tristate.FALSE, Tristate.FALSE, Tristate.FALSE}); + + assertThat(convertToTerm(minterm1, f).minterms()).isEqualTo(Collections.singletonList(p.parse("A & B & C"))); + assertThat(convertToTerm(minterm2, f).minterms()).isEqualTo(Collections.singletonList(p.parse("A & ~B & C"))); + assertThat(convertToTerm(minterm3, f).minterms()).isEqualTo(Collections.singletonList(p.parse("~A & ~B & ~C"))); + + assertThat(convertToTerm(minterm1, f).termClass()).isEqualTo(3); + assertThat(convertToTerm(minterm2, f).termClass()).isEqualTo(2); + assertThat(convertToTerm(minterm3, f).termClass()).isEqualTo(0); + } + + @Test + public void testGenerateInitialTermClasses() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final Term minterm1 = getTerm("A B C", f); + final Term minterm2 = getTerm("A ~B C", f); + final Term minterm3 = getTerm("~A ~B ~C", f); + final Term minterm4 = getTerm("A B ~C", f); + final Term minterm5 = getTerm("~A B C", f); + final Term minterm6 = getTerm("~A ~B C", f); + + final SortedMap> termsInClasses = generateInitialTermClasses(Arrays.asList(minterm1, minterm2, minterm3, minterm4, minterm5, minterm6)); + assertThat(termsInClasses).isNotNull(); + assertThat(termsInClasses).isNotEmpty(); + assertThat(termsInClasses.get(0)).containsExactly(minterm3); + assertThat(termsInClasses.get(1)).containsExactly(minterm6); + assertThat(termsInClasses.get(2)).containsExactly(minterm2, minterm4, minterm5); + assertThat(termsInClasses.get(3)).containsExactly(minterm1); + } + + /** + * original + * 0 -A -B -C (mt3) + * 1 -A -B C (mt6) + * 2 A -B C (mt2) + * 2 A B -C (mt4) + * 2 -A B C (mt5) + * 3 A B C (mt1) + * + * first round + * 01 -A -B x -> 1 (mt3, mt6) + * 12 x -B C -> 2 (mt6, mt2) + * 12 -A x C -> 2 (mt6, mt5) + * 23 A x C -> 3 (mt2, mt1) + * 23 A B x -> 3 (mt4, mt1) + * 23 x B C -> 3 (mt5, mt1) + */ + @Test + public void testUniteTermsInClasses() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final Term minterm1 = getTerm("A B C", f); + final Term minterm2 = getTerm("A ~B C", f); + final Term minterm3 = getTerm("~A ~B ~C", f); + final Term minterm4 = getTerm("A B ~C", f); + final Term minterm5 = getTerm("~A B C", f); + final Term minterm6 = getTerm("~A ~B C", f); + final SortedMap> termsInClasses = generateInitialTermClasses(Arrays.asList(minterm1, minterm2, minterm3, minterm4, minterm5, minterm6)); + + final SortedMap> newTermsInClasses = combineInTermClasses(termsInClasses); + assertThat(newTermsInClasses).isNotNull(); + assertThat(newTermsInClasses).isNotEmpty(); + assertThat(newTermsInClasses.get(0)).isNull(); + assertThat(newTermsInClasses.get(1)).containsExactly(minterm3.combine(minterm6)); + assertThat(newTermsInClasses.get(2)).containsExactly(minterm6.combine(minterm2), minterm6.combine(minterm5)); + assertThat(newTermsInClasses.get(3)).containsExactly(minterm2.combine(minterm1), minterm4.combine(minterm1), minterm5.combine(minterm1)); + + assertThat(minterm1.isUsed()).isTrue(); + assertThat(minterm2.isUsed()).isTrue(); + assertThat(minterm3.isUsed()).isTrue(); + assertThat(minterm4.isUsed()).isTrue(); + assertThat(minterm5.isUsed()).isTrue(); + assertThat(minterm6.isUsed()).isTrue(); + } + + /** + * original + * 0 -A -B -C (mt3) * + * 1 -A -B C (mt6) * + * 2 A -B C (mt2) * + * 2 A B -C (mt4) * + * 2 -A B C (mt5) * + * 3 A B C (mt1) * + * + * first round + * 0-1 -A -B x -> 1 (mt3, mt6) + * 1-2 x -B C -> 2 (mt6, mt2) * + * 1-2 -A x C -> 2 (mt6, mt5) * + * 2-3 A x C -> 3 (mt2, mt1) * + * 2-3 A B x -> 3 (mt4, mt1) + * 2-3 x B C -> 3 (mt5, mt1) * + * + * second round + * 01-12 / + * 12-23 x x C (mt6, mt2, mt5, mt1) + * 12-23 x x C (mt6, mt2, mt2, mt1) + * + * result + * 0-1 -A -B x -> 1 (mt3, mt6) + * 2-3 A B x -> 3 (mt4, mt1) + * 12-23 x x C (mt6, mt2, mt5, mt1) + */ + @Test + public void testComputePrimeImplicantsSimple() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final Term minterm1 = getTerm("A B C", f); + final Term minterm2 = getTerm("A ~B C", f); + final Term minterm3 = getTerm("~A ~B ~C", f); + final Term minterm4 = getTerm("A B ~C", f); + final Term minterm5 = getTerm("~A B C", f); + final Term minterm6 = getTerm("~A ~B C", f); + + final LinkedHashSet primeImplicants = computePrimeImplicants(Arrays.asList(minterm1, minterm2, minterm3, minterm4, minterm5, minterm6)); + assertThat(primeImplicants).isNotNull(); + assertThat(primeImplicants).isNotEmpty(); + assertThat(primeImplicants).containsExactly( + minterm3.combine(minterm6), + minterm4.combine(minterm1), + minterm6.combine(minterm2).combine(minterm5.combine(minterm1)) + ); + } + + /** + * The example from {@link https://de.wikipedia.org/wiki/Verfahren_nach_Quine_und_McCluskey} + */ + @Test + public void testComputePrimeImplicantsWiki() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final Term m0 = getTerm("~x0 ~x1 ~x2 ~x3", f); + + final Term m1 = getTerm("~x0 ~x1 ~x2 x3", f); + final Term m4 = getTerm("~x0 x1 ~x2 ~x3", f); + final Term m8 = getTerm("x0 ~x1 ~x2 ~x3", f); + + final Term m5 = getTerm("~x0 x1 ~x2 x3", f); + final Term m6 = getTerm("~x0 x1 x2 ~x3", f); + final Term m9 = getTerm("x0 ~x1 ~x2 x3", f); + + final Term m7 = getTerm("~x0 x1 x2 x3", f); + final Term m11 = getTerm("x0 ~x1 x2 x3", f); + + final Term m15 = getTerm("x0 x1 x2 x3", f); + + final LinkedHashSet primeImplicants = computePrimeImplicants(Arrays.asList(m0, m1, m4, m8, m5, m6, m9, m7, m11, m15)); + assertThat(primeImplicants).isNotNull(); + assertThat(primeImplicants).isNotEmpty(); + assertThat(primeImplicants).containsExactly( + m9.combine(m11), + m7.combine(m15), + m11.combine(m15), + m0.combine(m1).combine(m4.combine(m5)), + m0.combine(m1).combine(m8.combine(m9)), + m4.combine(m6).combine(m5.combine(m7)) + ); + + } + + @Test + public void testSatBasedSelection() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final Term m0 = getTerm("~a ~b ~c", f); + final Term m1 = getTerm("~a ~b c", f); + final Term m2 = getTerm("~a b ~c", f); + final Term m3 = getTerm("a ~b c", f); + final Term m4 = getTerm("a b ~c", f); + final Term m5 = getTerm("a b c", f); + final LinkedHashSet primeImplicants = computePrimeImplicants(Arrays.asList(m0, m1, m2, m3, m4, m5)); + final TermTable table = new TermTable(primeImplicants); + final List terms = chooseSatBased(table, f); + assertThat(terms).hasSize(3); + } + + @Test + public void testSmallFormulas() throws IOException, ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final BufferedReader reader = new BufferedReader(new FileReader("tests/formulas/small_formulas.txt")); + while (reader.ready()) { + final Formula formula = p.parse(reader.readLine()); + final List variables = new ArrayList<>(formula.variables()); + final List projectedVars = variables.subList(0, Math.min(6, variables.size())); + + final SATSolver solver = MiniSat.miniSat(f); + solver.add(formula); + final List models = solver.enumerateAllModels(projectedVars); + final List operands = new ArrayList<>(models.size()); + for (final Assignment model : models) + operands.add(model.formula(f)); + final Formula canonicalDNF = f.or(operands); + + final Formula dnf = QuineMcCluskeyAlgorithm.compute(formula, projectedVars); + assertThat(dnf.holds(new DNFPredicate())).isTrue(); + assertThat(f.equivalence(canonicalDNF, dnf).holds(new TautologyPredicate(f))).isTrue(); + } + } + + @Test + public void testTrivialCases() { + final FormulaFactory f = new FormulaFactory(); + final Formula verumDNF = QuineMcCluskeyAlgorithm.compute(f.verum()); + final Formula falsumDNF = QuineMcCluskeyAlgorithm.compute(f.falsum()); + final Formula aDNF = QuineMcCluskeyAlgorithm.compute(f.variable("a")); + final Formula notADNF = QuineMcCluskeyAlgorithm.compute(f.literal("a", false)); + assertThat(verumDNF).isEqualTo(f.verum()); + assertThat(falsumDNF).isEqualTo(f.falsum()); + assertThat(aDNF).isEqualTo(f.variable("a")); + assertThat(notADNF).isEqualTo(f.literal("a", false)); + } + + static Term getTerm(final String string, final FormulaFactory f) throws ParserException { + final List literals = new ArrayList<>(); + final PropositionalParser p = new PropositionalParser(f); + for (final String var : string.split(" ")) + literals.add((Literal) p.parse(var)); + return convertToTerm(literals, f); + } +} diff --git a/src/test/java/org/logicng/transformations/qmc/TermTableTest.java b/src/test/java/org/logicng/transformations/qmc/TermTableTest.java new file mode 100644 index 00000000..6382795d --- /dev/null +++ b/src/test/java/org/logicng/transformations/qmc/TermTableTest.java @@ -0,0 +1,78 @@ +package org.logicng.transformations.qmc; + +import org.junit.Before; +import org.junit.Test; +import org.logicng.formulas.FormulaFactory; +import org.logicng.io.parsers.ParserException; + +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Vector; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.logicng.transformations.qmc.QuineMcCluskeyAlgorithm.computePrimeImplicants; +import static org.logicng.transformations.qmc.QuineMcCluskeyTest.getTerm; +import static org.logicng.transformations.qmc.TermTable.isSubsetOf; + +/** + * Unit tests for {@link TermTable}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class TermTableTest { + + private LinkedHashSet primeImplicants; + + @Before + public void init() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final Term m0 = getTerm("~x0 ~x1 ~x2 ~x3", f); + final Term m1 = getTerm("~x0 ~x1 ~x2 x3", f); + final Term m4 = getTerm("~x0 x1 ~x2 ~x3", f); + final Term m8 = getTerm("x0 ~x1 ~x2 ~x3", f); + final Term m5 = getTerm("~x0 x1 ~x2 x3", f); + final Term m6 = getTerm("~x0 x1 x2 ~x3", f); + final Term m9 = getTerm("x0 ~x1 ~x2 x3", f); + final Term m7 = getTerm("~x0 x1 x2 x3", f); + final Term m11 = getTerm("x0 ~x1 x2 x3", f); + final Term m15 = getTerm("x0 x1 x2 x3", f); + this.primeImplicants = computePrimeImplicants(Arrays.asList(m0, m1, m4, m8, m5, m6, m9, m7, m11, m15)); + } + + @Test + public void testToString() { + final TermTable table = new TermTable(this.primeImplicants); + assertThat(table.toString()).isEqualTo(" | m0 | m1 | m2 | m3 | m4 | m5 | m6 | m7 | m8 | m9 | \n" + + "[1, 0, -, 1] | X | X | | | | | | | | | \n" + + "[-, 1, 1, 1] | | | X | X | | | | | | | \n" + + "[1, -, 1, 1] | | X | | X | | | | | | | \n" + + "[0, -, 0, -] | | | | | X | X | X | X | | | \n" + + "[-, 0, 0, -] | X | | | | X | X | | | X | | \n" + + "[0, 1, -, -] | | | X | | | | X | X | | X | \n"); + } + + @Test + public void testSubset() { + final Vector vec1 = new Vector<>(Arrays.asList(true, true, false, false, true)); + final Vector vec2 = new Vector<>(Arrays.asList(true, true, false, false, true)); + final Vector vec3 = new Vector<>(Arrays.asList(true, false, false, false, false)); + final Vector vec4 = new Vector<>(Arrays.asList(true, true, true, false, true)); + assertThat(isSubsetOf(vec1, vec2)).isTrue(); + assertThat(isSubsetOf(vec1, vec3)).isFalse(); + assertThat(isSubsetOf(vec1, vec4)).isTrue(); + assertThat(isSubsetOf(vec2, vec3)).isFalse(); + assertThat(isSubsetOf(vec2, vec4)).isTrue(); + assertThat(isSubsetOf(vec3, vec4)).isTrue(); + } + + @Test + public void testElimination() { + final TermTable table = new TermTable(this.primeImplicants); + table.simplifyTableByDominance(); + assertThat(table.lineHeaders()).hasSize(3); + assertThat(table.columnHeaders()).hasSize(3); + assertThat(table.lineHeaders()).hasSize(3); + assertThat(table.columns()).hasSize(3); + assertThat(table.lines()).hasSize(3); + } +} diff --git a/src/test/java/org/logicng/transformations/qmc/TermTest.java b/src/test/java/org/logicng/transformations/qmc/TermTest.java new file mode 100644 index 00000000..3d41faeb --- /dev/null +++ b/src/test/java/org/logicng/transformations/qmc/TermTest.java @@ -0,0 +1,111 @@ +package org.logicng.transformations.qmc; + +import org.junit.Test; +import org.logicng.datastructures.Tristate; +import org.logicng.formulas.Formula; +import org.logicng.formulas.FormulaFactory; +import org.logicng.formulas.Variable; +import org.logicng.io.parsers.ParserException; +import org.logicng.io.parsers.PropositionalParser; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.logicng.datastructures.Tristate.FALSE; +import static org.logicng.datastructures.Tristate.TRUE; +import static org.logicng.datastructures.Tristate.UNDEF; + +/** + * Unit tests for {@link Term}. + * @version 1.4.0 + * @since 1.4.0 + */ +public class TermTest { + + @Test + public void testUnite() { + final Tristate[] bits1 = new Tristate[]{TRUE, TRUE, TRUE, TRUE}; + final Tristate[] bits2 = new Tristate[]{TRUE, FALSE, TRUE, TRUE}; + final Tristate[] bits3 = new Tristate[]{TRUE, TRUE, FALSE, TRUE}; + final Tristate[] bits4 = new Tristate[]{FALSE, FALSE, TRUE, TRUE}; + final Tristate[] bits5 = new Tristate[]{TRUE, FALSE, FALSE, UNDEF}; + final Tristate[] bits6 = new Tristate[]{TRUE, FALSE, TRUE, UNDEF}; + final Tristate[] bits7 = new Tristate[]{TRUE, FALSE, TRUE}; + + final FormulaFactory f = new FormulaFactory(); + final List formulas1 = Collections.singletonList(f.variable("f1")); + final List formulas2 = Collections.singletonList(f.variable("f2")); + final List formulas3 = Collections.singletonList(f.variable("f3")); + final List formulas4 = Collections.singletonList(f.variable("f4")); + final List formulas5 = Collections.singletonList(f.variable("f5")); + final List formulas6 = Collections.singletonList(f.variable("f6")); + final List formulas7 = Collections.singletonList(f.variable("f7")); + + final Term term1 = new Term(bits1, formulas1); + final Term term2 = new Term(bits2, formulas2); + final Term term3 = new Term(bits3, formulas3); + final Term term4 = new Term(bits4, formulas4); + final Term term5 = new Term(bits5, formulas5); + final Term term6 = new Term(bits6, formulas6); + final Term term7 = new Term(bits7, formulas7); + + assertThat(term1.combine(term2)).isEqualTo(new Term(new Tristate[]{TRUE, UNDEF, TRUE, TRUE}, Arrays.asList(f.variable("f1"), f.variable("f2")))); + assertThat(term1.combine(term3)).isEqualTo(new Term(new Tristate[]{TRUE, TRUE, UNDEF, TRUE}, Arrays.asList(f.variable("f1"), f.variable("f3")))); + assertThat(term2.combine(term3)).isNull(); + assertThat(term1.combine(term4)).isNull(); + assertThat(term2.combine(term4)).isEqualTo(new Term(new Tristate[]{UNDEF, FALSE, TRUE, TRUE}, Arrays.asList(f.variable("f2"), f.variable("f4")))); + assertThat(term3.combine(term4)).isNull(); + assertThat(term5.combine(term6)).isEqualTo(new Term(new Tristate[]{TRUE, FALSE, UNDEF, UNDEF}, Arrays.asList(f.variable("f5"), f.variable("f6")))); + assertThat(term1.combine(term7)).isNull(); + } + + @Test + public void testToFormula() throws ParserException { + final FormulaFactory f = new FormulaFactory(); + final PropositionalParser p = new PropositionalParser(f); + final Tristate[] bits1 = new Tristate[]{TRUE, TRUE, TRUE, TRUE}; + final Tristate[] bits2 = new Tristate[]{TRUE, FALSE, TRUE, TRUE}; + final Tristate[] bits3 = new Tristate[]{TRUE, TRUE, FALSE, TRUE}; + final Tristate[] bits4 = new Tristate[]{FALSE, FALSE, TRUE, TRUE}; + final Tristate[] bits5 = new Tristate[]{TRUE, FALSE, FALSE, UNDEF}; + final Tristate[] bits6 = new Tristate[]{TRUE, UNDEF, TRUE, UNDEF}; + final List formulas1 = Collections.singletonList(f.variable("f1")); + final List formulas2 = Collections.singletonList(f.variable("f2")); + final List formulas3 = Collections.singletonList(f.variable("f3")); + final List formulas4 = Collections.singletonList(f.variable("f4")); + final List formulas5 = Collections.singletonList(f.variable("f5")); + final List formulas6 = Collections.singletonList(f.variable("f6")); + + final Term term1 = new Term(bits1, formulas1); + final Term term2 = new Term(bits2, formulas2); + final Term term3 = new Term(bits3, formulas3); + final Term term4 = new Term(bits4, formulas4); + final Term term5 = new Term(bits5, formulas5); + final Term term6 = new Term(bits6, formulas6); + final List varOrder = Arrays.asList(f.variable("A"), f.variable("B"), f.variable("C"), f.variable("D")); + + assertThat(term1.translateToFormula(varOrder)).isEqualTo(p.parse("A & B & C & D")); + assertThat(term2.translateToFormula(varOrder)).isEqualTo(p.parse("A & ~B & C & D")); + assertThat(term3.translateToFormula(varOrder)).isEqualTo(p.parse("A & B & ~C & D")); + assertThat(term4.translateToFormula(varOrder)).isEqualTo(p.parse("~A & ~B & C & D")); + assertThat(term5.translateToFormula(varOrder)).isEqualTo(p.parse("A & ~B & ~C")); + assertThat(term6.translateToFormula(varOrder)).isEqualTo(p.parse("A & C")); + assertThat(term1.combine(term1)).isNull(); + } + + @Test + public void testToString() { + final FormulaFactory f = new FormulaFactory(); + final Tristate[] bits1 = new Tristate[]{TRUE, TRUE, TRUE, TRUE}; + final Tristate[] bits2 = new Tristate[]{TRUE, FALSE, TRUE, TRUE}; + final List formulas1 = Collections.singletonList(f.variable("f1")); + final List formulas2 = Collections.singletonList(f.variable("f2")); + final Term term1 = new Term(bits1, formulas1); + final Term term2 = new Term(bits2, formulas2); + assertThat(term1.toString()).isEqualTo("Term{bits=[TRUE, TRUE, TRUE, TRUE], minterms=[f1], termClass=4}"); + assertThat(term2.toString()).isEqualTo("Term{bits=[TRUE, FALSE, TRUE, TRUE], minterms=[f2], termClass=3}"); + } + +} diff --git a/tests/formulas/large_formula.txt b/tests/formulas/large_formula.txt new file mode 100644 index 00000000..5b7ada25 --- /dev/null +++ b/tests/formulas/large_formula.txt @@ -0,0 +1 @@ +(v50 => v49) & (v53 => v52) & (v59 => v58) & (v61 => v58) & (v63 => v62) & (v65 => v64) & (v67 => v66) & (v76 => v75) & (v77 => v75) & (v448 => v447) & (v450 => v449) & (v467 => v466) & (v471 => v470) & (v473 => v472) & (v0 => v360 | v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) & (~v0 => ~(v360 | v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394)) & (v1 => v222) & (~v1 => ~v222) & (v2 => v396 | v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) & (~v2 => ~(v396 | v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404)) & (v3 => v180) & (~v3 => ~v180) & (v4 => v171) & (~v4 => ~v171) & (v5 => v234) & (~v5 => ~v234) & (v6 => v236 | v237 | v238 | v256 | v257 | v258) & (~v6 => ~(v236 | v237 | v238 | v256 | v257 | v258)) & (v7 => v88 | v89 | v90) & (~v7 => ~(v88 | v89 | v90)) & (v8 => v428 | v429) & (~v8 => ~(v428 | v429)) & (v9 => v169 | v170 | v175) & (~v9 => ~(v169 | v170 | v175)) & (v10 => v127 | v128) & (~v10 => ~(v127 | v128)) & (v11 => v133 | v134 | v135 | v136 | v138 | v139 | v140 | v141 | v142 | v143 | v145 | v148 | v431) & (~v11 => ~(v133 | v134 | v135 | v136 | v138 | v139 | v140 | v141 | v142 | v143 | v145 | v148 | v431)) & (v12 => v157) & (~v12 => ~v157) & (v13 => v125) & (~v13 => ~v125) & (v14 => v439 | v440 | v441) & (~v14 => ~(v439 | v440 | v441)) & (v15 => v235) & (~v15 => ~v235) & (v16 => v434 | v437) & (~v16 => ~(v434 | v437)) & (v17 => v216 | v217) & (~v17 => ~(v216 | v217)) & (v18 => v442 | v443) & (~v18 => ~(v442 | v443)) & (v19 => v64 | v65) & (~v19 => ~(v64 | v65)) & (v20 => v68 | v71 | v72 | v405 | v406 | v408 | v409 | v410) & (~v20 => ~(v68 | v71 | v72 | v405 | v406 | v408 | v409 | v410)) & (v21 => v62 | v63 | v75 | v76 | v77 | v447 | v448 | v449 | v450 | v470 | v471) & (~v21 => ~(v62 | v63 | v75 | v76 | v77 | v447 | v448 | v449 | v450 | v470 | v471)) & (v22 => v196 | v200 | v201 | v202 | v206 | v207 | v208) & (~v22 => ~(v196 | v200 | v201 | v202 | v206 | v207 | v208)) & (v23 => v131 | v154 | v155) & (~v23 => ~(v131 | v154 | v155)) & (v24 => v225 | v226) & (~v24 => ~(v225 | v226)) & (v25 => v166) & (~v25 => ~v166) & (v26 => v197 | v198 | v199 | v203 | v205) & (~v26 => ~(v197 | v198 | v199 | v203 | v205)) & (v27 => v457 | v458 | v459 | v461 | v462 | v463 | v464 | v465) & (~v27 => ~(v457 | v458 | v459 | v461 | v462 | v463 | v464 | v465)) & (v28 => v435 | v438 | v446) & (~v28 => ~(v435 | v438 | v446)) & (v29 => v232) & (~v29 => ~v232) & (v30 => v212 | v213) & (~v30 => ~(v212 | v213)) & (v31 => v243) & (~v31 => ~v243) & (v32 => v187) & (~v32 => ~v187) & (v33 => v249 | v250 | v251 | v252 | v253 | v348 | v350 | v351 | v352 | v353 | v356 | v357 | v358 | v372 | v373 | v374 | v375 | v376 | v377 | v378 | v379 | v380) & (~v33 => ~(v249 | v250 | v251 | v252 | v253 | v348 | v350 | v351 | v352 | v353 | v356 | v357 | v358 | v372 | v373 | v374 | v375 | v376 | v377 | v378 | v379 | v380)) & (v34 => v167) & (~v34 => ~v167) & (v35 => v192 | v204) & (~v35 => ~(v192 | v204)) & (v36 => v188) & (~v36 => ~v188) & (v37 => v422 | v423 | v424 | v425 | v426 | v427) & (~v37 => ~(v422 | v423 | v424 | v425 | v426 | v427)) & (v38 => v433) & (~v38 => ~v433) & (v39 => v174 | v181) & (~v39 => ~(v174 | v181)) & (v40 => v126) & (~v40 => ~v126) & (v41 => v49 | v50 | v52 | v53 | v58 | v59 | v61 | v66 | v67) & (~v41 => ~(v49 | v50 | v52 | v53 | v58 | v59 | v61 | v66 | v67)) & (v42 => v164 | v165) & (~v42 => ~(v164 | v165)) & (v43 => v244 | v245) & (~v43 => ~(v244 | v245)) & (v44 => v218 | v219) & (~v44 => ~(v218 | v219)) & (v45 => v453 | v454 | v468 | v469) & (~v45 => ~(v453 | v454 | v468 | v469)) & (v46 => v260 | v261 | v262 | v263 | v264 | v266 | v267 | v268 | v285 | v293 | v305 | v330) & (~v46 => ~(v260 | v261 | v262 | v263 | v264 | v266 | v267 | v268 | v285 | v293 | v305 | v330)) & (v47 => v123) & (~v47 => ~v123) & (v48 => v265 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v277 | v278 | v279 | v280 | v281 | v282 | v283 | v284 | v286 | v287 | v288 | v289 | v290 | v291 | v292 | v294 | v295 | v296 | v297 | v298 | v299 | v300 | v301 | v302 | v303 | v304 | v306 | v307 | v308 | v309 | v310 | v311 | v312 | v313 | v314 | v315 | v316 | v317 | v318 | v319 | v320 | v321 | v322 | v323 | v324 | v325 | v326 | v327 | v328 | v329 | v331 | v332 | v333 | v334 | v335 | v336 | v337 | v338 | v339 | v340 | v341) & (~v48 => ~(v265 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v277 | v278 | v279 | v280 | v281 | v282 | v283 | v284 | v286 | v287 | v288 | v289 | v290 | v291 | v292 | v294 | v295 | v296 | v297 | v298 | v299 | v300 | v301 | v302 | v303 | v304 | v306 | v307 | v308 | v309 | v310 | v311 | v312 | v313 | v314 | v315 | v316 | v317 | v318 | v319 | v320 | v321 | v322 | v323 | v324 | v325 | v326 | v327 | v328 | v329 | v331 | v332 | v333 | v334 | v335 | v336 | v337 | v338 | v339 | v340 | v341)) & (v53 => v82) & (v53 => v192) & (v59 => (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v101) & (~v92 | ~v101)) & (v59 => v192) & (v60 => ~v84 | ~v101) & (v61 => v79 | v81) & (v61 => v192) & (v61 => ~v79 | ~v81) & (v63 => (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v84 | ~v90) & (~v84 | ~v92) & (~v90 | ~v92)) & (v63 => v204) & (v65 => (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v101) & (~v90 | ~v101)) & (v65 => v192) & (v67 => (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v101) & (~v92 | ~v101)) & (v67 => v192) & (v68 => v209) & (v69 & v232 => v357) & (v69 => v188 | v189) & (v70 => ~v0) & (v71 => v185) & (v71 => v342) & (v71 => v346) & (v71 => v374) & (v71 => ~v122) & (v71 => ~v124) & (v71 => ~v234) & (v71 => ~v418) & (v72 & v255 => v356) & (v72 => v122) & (v72 => v125) & (v72 => v129) & (v72 => v209) & (v72 => v356) & (v72 => ~v124) & (v72 => ~v234) & (v72 => ~v242) & (v72 => ~v354) & (v72 => ~v411) & (v72 => ~v418) & (v72 => ~v434) & (v72 => ~v437) & (v76 => (~v79 | ~v81) & (~v79 | ~v82) & (~v79 | ~v84) & (~v79 | ~v90) & (~v79 | ~v92) & (~v79 | ~v101) & (~v81 | ~v82) & (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v101) & (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v101) & (~v92 | ~v101)) & (v76 | v77 => v192) & (v77 => (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v101) & (~v92 | ~v101)) & (v78 => v125 & (v133 | v134 | v135 | v136 | v138 | v140 | v141 | v142 | v144 | v145 | v147 | v148) & (~v133 | ~v134) & (~v133 | ~v135) & (~v133 | ~v136) & (~v133 | ~v138) & (~v133 | ~v140) & (~v133 | ~v141) & (~v133 | ~v142) & (~v133 | ~v144) & (~v133 | ~v145) & (~v133 | ~v147) & (~v133 | ~v148) & (~v134 | ~v135) & (~v134 | ~v136) & (~v134 | ~v138) & (~v134 | ~v140) & (~v134 | ~v141) & (~v134 | ~v142) & (~v134 | ~v144) & (~v134 | ~v145) & (~v134 | ~v147) & (~v134 | ~v148) & (~v135 | ~v136) & (~v135 | ~v138) & (~v135 | ~v140) & (~v135 | ~v141) & (~v135 | ~v142) & (~v135 | ~v144) & (~v135 | ~v145) & (~v135 | ~v147) & (~v135 | ~v148) & (~v136 | ~v138) & (~v136 | ~v140) & (~v136 | ~v141) & (~v136 | ~v142) & (~v136 | ~v144) & (~v136 | ~v145) & (~v136 | ~v147) & (~v136 | ~v148) & (~v138 | ~v140) & (~v138 | ~v141) & (~v138 | ~v142) & (~v138 | ~v144) & (~v138 | ~v145) & (~v138 | ~v147) & (~v138 | ~v148) & (~v140 | ~v141) & (~v140 | ~v142) & (~v140 | ~v144) & (~v140 | ~v145) & (~v140 | ~v147) & (~v140 | ~v148) & (~v141 | ~v142) & (~v141 | ~v144) & (~v141 | ~v145) & (~v141 | ~v147) & (~v141 | ~v148) & (~v142 | ~v144) & (~v142 | ~v145) & (~v142 | ~v147) & (~v142 | ~v148) & (~v144 | ~v145) & (~v144 | ~v147) & (~v144 | ~v148) & (~v145 | ~v147) & (~v145 | ~v148) & (~v147 | ~v148) & v158 & v166 & v187 & v191 & v210 & v211 & (v212 | v213) & (~v212 | ~v213) & (v232 | v243) & (~v232 | ~v243)) & (v79 => (v453 | v458 | v459 | v469) & (~v453 | ~v458) & (~v453 | ~v459) & (~v453 | ~v469) & (~v458 | ~v459) & (~v458 | ~v469) & (~v459 | ~v469) & (v61 | v76 | v448 | v450) & (~v61 | ~v76) & (~v61 | ~v448) & (~v61 | ~v450) & (~v76 | ~v448) & (~v76 | ~v450) & (~v448 | ~v450) & (v138 | v143 | v431) & (~v138 | ~v143) & (~v138 | ~v431) & (~v143 | ~v431) & v175 & (v196 | v206 | v207 | v208) & (~v196 | ~v206) & (~v196 | ~v207) & (~v196 | ~v208) & (~v206 | ~v207) & (~v206 | ~v208) & (~v207 | ~v208)) & (v79 => ~(v82 | v83 | v84 | v89 | v90)) & (v79 => ~(v164 | v165)) & (v79 => ~v81) & (v80 => (v212 | v213) & (~v212 | ~v213) & (v232 | v243) & (~v232 | ~v243) & v245) & (v80 => ~v85) & (v81 => (v453 | v458 | v459 | v469) & (~v453 | ~v458) & (~v453 | ~v459) & (~v453 | ~v469) & (~v458 | ~v459) & (~v458 | ~v469) & (~v459 | ~v469) & (v61 | v76 | v448 | v450) & (~v61 | ~v76) & (~v61 | ~v448) & (~v61 | ~v450) & (~v76 | ~v448) & (~v76 | ~v450) & (~v448 | ~v450) & v130 & (v131 | v154 | v155) & (~v131 | ~v154) & (~v131 | ~v155) & (~v154 | ~v155) & (v138 | v143 | v431) & (~v138 | ~v143) & (~v138 | ~v431) & (~v143 | ~v431) & v175 & v183 & v188 & v192 & v193 & (v196 | v206 | v207 | v208) & (~v196 | ~v206) & (~v196 | ~v207) & (~v196 | ~v208) & (~v206 | ~v207) & (~v206 | ~v208) & (~v207 | ~v208) & v210 & v211 & v215 & v217 & v222 & v223 & v224 & (v225 | v226) & (~v225 | ~v226) & v259) & (v81 => ~(v82 | v83 | v84)) & (v81 => ~(v88 | v89 | v90)) & (v81 => ~(v164 | v165)) & (v82 => (v53 | v59 | v63 | v65 | v67 | v76 | v77 | v448 | v450) & (~v53 | ~v59) & (~v53 | ~v63) & (~v53 | ~v65) & (~v53 | ~v67) & (~v53 | ~v76) & (~v53 | ~v77) & (~v53 | ~v448) & (~v53 | ~v450) & (~v59 | ~v63) & (~v59 | ~v65) & (~v59 | ~v67) & (~v59 | ~v76) & (~v59 | ~v77) & (~v59 | ~v448) & (~v59 | ~v450) & (~v63 | ~v65) & (~v63 | ~v67) & (~v63 | ~v76) & (~v63 | ~v77) & (~v63 | ~v448) & (~v63 | ~v450) & (~v65 | ~v67) & (~v65 | ~v76) & (~v65 | ~v77) & (~v65 | ~v448) & (~v65 | ~v450) & (~v67 | ~v76) & (~v67 | ~v77) & (~v67 | ~v448) & (~v67 | ~v450) & (~v76 | ~v77) & (~v76 | ~v448) & (~v76 | ~v450) & (~v77 | ~v448) & (~v77 | ~v450) & (~v448 | ~v450) & v130 & v155 & (v192 | v204) & (~v192 | ~v204) & v195) & (v82 => ~v89) & (v82 => ~v90) & (v83 => (v134 | v148 | v431) & (~v134 | ~v148) & (~v134 | ~v431) & (~v148 | ~v431) & v153 & v163 & v172 & v259) & (v83 => ~v89) & (v83 => ~v90) & (v84 => (v59 | v60 | v63 | v65 | v67 | v76 | v77 | v448 | v450) & (~v59 | ~v60) & (~v59 | ~v63) & (~v59 | ~v65) & (~v59 | ~v67) & (~v59 | ~v76) & (~v59 | ~v77) & (~v59 | ~v448) & (~v59 | ~v450) & (~v60 | ~v63) & (~v60 | ~v65) & (~v60 | ~v67) & (~v60 | ~v76) & (~v60 | ~v77) & (~v60 | ~v448) & (~v60 | ~v450) & (~v63 | ~v65) & (~v63 | ~v67) & (~v63 | ~v76) & (~v63 | ~v77) & (~v63 | ~v448) & (~v63 | ~v450) & (~v65 | ~v67) & (~v65 | ~v76) & (~v65 | ~v77) & (~v65 | ~v448) & (~v65 | ~v450) & (~v67 | ~v76) & (~v67 | ~v77) & (~v67 | ~v448) & (~v67 | ~v450) & (~v76 | ~v77) & (~v76 | ~v448) & (~v76 | ~v450) & (~v77 | ~v448) & (~v77 | ~v450) & (~v448 | ~v450) & v130 & (v134 | v148 | v431) & (~v134 | ~v148) & (~v134 | ~v431) & (~v148 | ~v431) & v153 & v155 & v163 & v172 & v183 & v188 & v193 & v195 & v210 & v211 & v215 & v217 & v222 & v223 & v224 & (v225 | v226) & (~v225 | ~v226)) & (v84 => ~(v82 | v83 | v88 | v89 | v90)) & (v85 => (v232 | v255) & (~v232 | ~v255) & v245) & (v86 => (v145 | v431) & (~v145 | ~v431) & v183 & v188 & v193 & v210 & v213 & (v214 | v224) & (~v214 | ~v224) & v215 & v217 & v222 & v223 & v230 & v259) & (v87 => v125 & v183 & v186 & v188 & v193 & v210 & (v212 | v213) & (~v212 | ~v213) & (v214 | v224) & (~v214 | ~v224) & v215 & v217 & v222 & v223 & (v249 | v350) & (~v249 | ~v350) & v346 & v413) & (v88 => v183 & v188 & v193 & (v214 | v224) & (~v214 | ~v224) & (v216 | v217) & (~v216 | ~v217) & v222 & v223) & (v89 => (v131 | v154 | v155) & (~v131 | ~v154) & (~v131 | ~v155) & (~v154 | ~v155) & (v133 | v135 | v136 | v138 | v140 | v141 | v142 | v145 | v431) & (~v133 | ~v135) & (~v133 | ~v136) & (~v133 | ~v138) & (~v133 | ~v140) & (~v133 | ~v141) & (~v133 | ~v142) & (~v133 | ~v145) & (~v133 | ~v431) & (~v135 | ~v136) & (~v135 | ~v138) & (~v135 | ~v140) & (~v135 | ~v141) & (~v135 | ~v142) & (~v135 | ~v145) & (~v135 | ~v431) & (~v136 | ~v138) & (~v136 | ~v140) & (~v136 | ~v141) & (~v136 | ~v142) & (~v136 | ~v145) & (~v136 | ~v431) & (~v138 | ~v140) & (~v138 | ~v141) & (~v138 | ~v142) & (~v138 | ~v145) & (~v138 | ~v431) & (~v140 | ~v141) & (~v140 | ~v142) & (~v140 | ~v145) & (~v140 | ~v431) & (~v141 | ~v142) & (~v141 | ~v145) & (~v141 | ~v431) & (~v142 | ~v145) & (~v142 | ~v431) & (~v145 | ~v431) & v183 & v188 & v193 & v210 & (v214 | v224) & (~v214 | ~v224) & v215 & v217 & v222 & v223) & (v90 => (v59 | v63 | v65 | v67 | v76 | v77 | v448 | v450) & (~v59 | ~v63) & (~v59 | ~v65) & (~v59 | ~v67) & (~v59 | ~v76) & (~v59 | ~v77) & (~v59 | ~v448) & (~v59 | ~v450) & (~v63 | ~v65) & (~v63 | ~v67) & (~v63 | ~v76) & (~v63 | ~v77) & (~v63 | ~v448) & (~v63 | ~v450) & (~v65 | ~v67) & (~v65 | ~v76) & (~v65 | ~v77) & (~v65 | ~v448) & (~v65 | ~v450) & (~v67 | ~v76) & (~v67 | ~v77) & (~v67 | ~v448) & (~v67 | ~v450) & (~v76 | ~v77) & (~v76 | ~v448) & (~v76 | ~v450) & (~v77 | ~v448) & (~v77 | ~v450) & (~v448 | ~v450) & v130 & (v131 | v154 | v155) & (~v131 | ~v154) & (~v131 | ~v155) & (~v154 | ~v155) & (v133 | v135 | v136 | v138 | v140 | v141 | v142 | v145 | v431) & (~v133 | ~v135) & (~v133 | ~v136) & (~v133 | ~v138) & (~v133 | ~v140) & (~v133 | ~v141) & (~v133 | ~v142) & (~v133 | ~v145) & (~v133 | ~v431) & (~v135 | ~v136) & (~v135 | ~v138) & (~v135 | ~v140) & (~v135 | ~v141) & (~v135 | ~v142) & (~v135 | ~v145) & (~v135 | ~v431) & (~v136 | ~v138) & (~v136 | ~v140) & (~v136 | ~v141) & (~v136 | ~v142) & (~v136 | ~v145) & (~v136 | ~v431) & (~v138 | ~v140) & (~v138 | ~v141) & (~v138 | ~v142) & (~v138 | ~v145) & (~v138 | ~v431) & (~v140 | ~v141) & (~v140 | ~v142) & (~v140 | ~v145) & (~v140 | ~v431) & (~v141 | ~v142) & (~v141 | ~v145) & (~v141 | ~v431) & (~v142 | ~v145) & (~v142 | ~v431) & (~v145 | ~v431) & v183 & v188 & (v192 | v204) & (~v192 | ~v204) & v193 & v210 & v211 & v215 & v217 & v222 & v223 & v224 & (v225 | v226) & (~v225 | ~v226) & v259) & (v91 => v125 & v158 & v166 & v187 & v191 & (v212 | v213) & (~v212 | ~v213) & (v232 | v243) & (~v232 | ~v243)) & (v92 => (v59 | v63 | v67 | v76 | v77 | v448 | v450) & (~v59 | ~v63) & (~v59 | ~v67) & (~v59 | ~v76) & (~v59 | ~v77) & (~v59 | ~v448) & (~v59 | ~v450) & (~v63 | ~v67) & (~v63 | ~v76) & (~v63 | ~v77) & (~v63 | ~v448) & (~v63 | ~v450) & (~v67 | ~v76) & (~v67 | ~v77) & (~v67 | ~v448) & (~v67 | ~v450) & (~v76 | ~v77) & (~v76 | ~v448) & (~v76 | ~v450) & (~v77 | ~v448) & (~v77 | ~v450) & (~v448 | ~v450) & v125 & v130 & v132 & v158 & v162 & v167 & v184 & v186 & v211 & (v212 | v213) & (~v212 | ~v213) & (v218 | v219) & (~v218 | ~v219) & (v225 | v226) & (~v225 | ~v226) & v243 & v259 & v356 & v437 & v442) & (v93 => v130 & (v131 | v154 | v155) & (~v131 | ~v154) & (~v131 | ~v155) & (~v154 | ~v155) & v191 & v219 & (v225 | v226) & (~v225 | ~v226) & v243 & v246 & v259) & (v94 => v125 & v130 & v149 & v156 & v167 & v184 & v187 & v190 & v191 & v211 & (v212 | v213) & (~v212 | ~v213) & v229 & (v232 | v243) & (~v232 | ~v243) & v246) & (v95 => v125 & v132 & v158 & v162 & v167 & v184 & v186 & (v212 | v213) & (~v212 | ~v213) & (v218 | v219) & (~v218 | ~v219) & v243 & v356 & v437 & v442) & (v96 => v125 & v158 & v166 & v180 & v184 & v185 & v186 & v187) & (v97 => v162 & v213 & v230) & (v98 => v132 & (v133 | v135 | v136 | v138 | v140 | v141 | v142 | v144 | v145) & (~v133 | ~v135) & (~v133 | ~v136) & (~v133 | ~v138) & (~v133 | ~v140) & (~v133 | ~v141) & (~v133 | ~v142) & (~v133 | ~v144) & (~v133 | ~v145) & (~v135 | ~v136) & (~v135 | ~v138) & (~v135 | ~v140) & (~v135 | ~v141) & (~v135 | ~v142) & (~v135 | ~v144) & (~v135 | ~v145) & (~v136 | ~v138) & (~v136 | ~v140) & (~v136 | ~v141) & (~v136 | ~v142) & (~v136 | ~v144) & (~v136 | ~v145) & (~v138 | ~v140) & (~v138 | ~v141) & (~v138 | ~v142) & (~v138 | ~v144) & (~v138 | ~v145) & (~v140 | ~v141) & (~v140 | ~v142) & (~v140 | ~v144) & (~v140 | ~v145) & (~v141 | ~v142) & (~v141 | ~v144) & (~v141 | ~v145) & (~v142 | ~v144) & (~v142 | ~v145) & (~v144 | ~v145) & v158 & v176 & v180) & (v99 => v125 & v130 & v149 & v156 & v158 & v167 & v180 & v184 & v187 & v190 & v191 & v211 & (v212 | v213) & (~v212 | ~v213) & v225 & v229 & (v232 | v243) & (~v232 | ~v243) & v246 & v259) & (v100 => v194 & v195 & v246) & (v101 => (v59 | v60 | v65 | v67 | v76 | v77 | v448 | v450) & (~v59 | ~v60) & (~v59 | ~v65) & (~v59 | ~v67) & (~v59 | ~v76) & (~v59 | ~v77) & (~v59 | ~v448) & (~v59 | ~v450) & (~v60 | ~v65) & (~v60 | ~v67) & (~v60 | ~v76) & (~v60 | ~v77) & (~v60 | ~v448) & (~v60 | ~v450) & (~v65 | ~v67) & (~v65 | ~v76) & (~v65 | ~v77) & (~v65 | ~v448) & (~v65 | ~v450) & (~v67 | ~v76) & (~v67 | ~v77) & (~v67 | ~v448) & (~v67 | ~v450) & (~v76 | ~v77) & (~v76 | ~v448) & (~v76 | ~v450) & (~v77 | ~v448) & (~v77 | ~v450) & (~v448 | ~v450) & v125 & v156 & v180 & v182 & (v212 | v213) & (~v212 | ~v213) & v215 & v225 & v229 & v243 & v245) & (v102 => (v21 => v194)) & (v102 => (v85 => v247)) & (v102 => (v85 => ~v255)) & (v102 => (v86 => ~(v88 | v89 | v90))) & (v102 => (v100 => v85)) & (v102 => (v100 => ~(v82 | v84))) & (v102 => (v123 => ~v422)) & (v102 => (v123 => ~v423)) & (v102 => (v123 => ~v424)) & (v102 => (v123 => ~v433)) & (v102 => (v123 => ~v439)) & (v102 => (v123 => ~v440)) & (v102 => (v123 => ~v441)) & (v102 => (v216 => v411)) & (v102 => (v217 => v411)) & (v102 => (v228 => v218)) & (v102 => (v232 => v246)) & (v102 => (v243 => v246)) & (v102 => (~(v71 | v72 | v405 | v406 | v408 | v409 | v410) => v68)) & (v102 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v102 => (~(v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v360)) & (v102 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v102 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v102 => v124) & (v102 => v129) & (v102 => v151) & (v102 => v184) & (v102 => v190) & (v102 => v209) & (v102 => v239) & (v102 => v241) & (v102 => v418) & (v102 => ~v65) & (v102 => ~v71) & (v102 => ~v72) & (v102 => ~v78) & (v102 => ~v87) & (v102 => ~v91) & (v102 => ~v92) & (v102 => ~v93) & (v102 => ~v94) & (v102 => ~v95) & (v102 => ~v96) & (v102 => ~v97) & (v102 => ~v98) & (v102 => ~v99) & (v102 => ~v101) & (v102 => ~v122) & (v102 => ~v233) & (v102 => ~v242) & (v102 => ~v342) & (v102 => ~v343) & (v102 => ~v347) & (v102 => ~v354) & (v102 => ~v355) & (v102 => ~v356) & (v102 => ~v357) & (v102 => ~v370) & (v102 => ~v371) & (v102 => ~v382) & (v102 => ~v387) & (v102 => ~v397) & (v102 => ~v398) & (v102 => ~v399) & (v102 => ~v400) & (v102 => ~v401) & (v102 => ~v402) & (v102 => ~v403) & (v102 => ~v404) & (v102 => ~v405) & (v102 => ~v406) & (v102 => ~v408) & (v102 => ~v409) & (v102 => ~v410) & (v102 => ~v419) & (v102 => ~v420) & (v102 => ~v421) & (v102 => ~v435) & (v102 => ~v437) & (v102 => ~v438) & (v102 => ~v446) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => (~(v52 | v58 | v62 | v64 | v66 | v75 | v447 | v449 | v466 | v470 | v472) => v49)) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => (~(v133 | v134 | v135 | v136 | v138 | v140 | v141 | v142 | v143 | v145 | v148 | v431) => v139)) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => (~(v196 | v200 | v202 | v206 | v207 | v208) => v201)) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => (~(v198 | v199 | v203 | v205) => v197)) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => (~v181 & ~v9 => v174)) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => v126) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => v159) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => v221) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120 => v227) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v113 | v114 | v115 | v116 | v117 | v118 | v120 => (~(v249 | v250 | v251 | v252 | v253 | v350 | v351 | v352 | v353 | v356 | v357 | v358 | v372 | v373 | v374 | v375 | v376 | v377 | v378 | v379 | v380) => v348)) & (v103 => (v85 => v247)) & (v103 => (v85 => ~v255)) & (v103 => (v123 => ~v422)) & (v103 => (v123 => ~v423)) & (v103 => (v123 => ~v424)) & (v103 => (v123 => ~v433)) & (v103 => (v123 => ~v439)) & (v103 => (v123 => ~v440)) & (v103 => (v123 => ~v441)) & (v103 => (v157 => v359)) & (v103 => (v216 => v411)) & (v103 => (v217 => v411)) & (v103 => (v228 => v218)) & (v103 => (v232 => v246)) & (v103 => (v243 => v246)) & (v103 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v103 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v103 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v103 => v124) & (v103 => v129) & (v103 => v151) & (v103 => v209) & (v103 => v413) & (v103 => v418) & (v103 => ~v65) & (v103 => ~v71) & (v103 => ~v72) & (v103 => ~v78) & (v103 => ~v86) & (v103 => ~v87) & (v103 => ~v91) & (v103 => ~v92) & (v103 => ~v93) & (v103 => ~v94) & (v103 => ~v95) & (v103 => ~v96) & (v103 => ~v97) & (v103 => ~v98) & (v103 => ~v99) & (v103 => ~v100) & (v103 => ~v101) & (v103 => ~v122) & (v103 => ~v233) & (v103 => ~v242) & (v103 => ~v342) & (v103 => ~v343) & (v103 => ~v347) & (v103 => ~v354) & (v103 => ~v355) & (v103 => ~v356) & (v103 => ~v357) & (v103 => ~v370) & (v103 => ~v371) & (v103 => ~v382) & (v103 => ~v387) & (v103 => ~v397) & (v103 => ~v398) & (v103 => ~v399) & (v103 => ~v400) & (v103 => ~v401) & (v103 => ~v402) & (v103 => ~v403) & (v103 => ~v404) & (v103 => ~v405) & (v103 => ~v406) & (v103 => ~v407) & (v103 => ~v408) & (v103 => ~v409) & (v103 => ~v410) & (v103 => ~v416) & (v103 => ~v419) & (v103 => ~v420) & (v103 => ~v421) & (v103 => ~v432) & (v103 => ~v435) & (v103 => ~v437) & (v103 => ~v446) & (v104 => (v29 => v254)) & (v104 => (v85 => v247)) & (v104 => (v85 => ~v255)) & (v104 => (v123 => ~v422)) & (v104 => (v123 => ~v423)) & (v104 => (v123 => ~v424)) & (v104 => (v123 => ~v433)) & (v104 => (v123 => ~v439)) & (v104 => (v123 => ~v440)) & (v104 => (v123 => ~v441)) & (v104 => (v157 => v359)) & (v104 => (v216 => v411)) & (v104 => (v217 => v411)) & (v104 => (v228 => v218)) & (v104 => (v232 => v246)) & (v104 => (v243 => v246)) & (v104 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v104 => (~(v360 | v361 | v362 | v363 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v364)) & (v104 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v104 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v104 => v124) & (v104 => v129) & (v104 => v151) & (v104 => v209) & (v104 => v418) & (v104 => ~v65) & (v104 => ~v71) & (v104 => ~v72) & (v104 => ~v78) & (v104 => ~v86) & (v104 => ~v87) & (v104 => ~v91) & (v104 => ~v92) & (v104 => ~v93) & (v104 => ~v94) & (v104 => ~v95) & (v104 => ~v96) & (v104 => ~v97) & (v104 => ~v98) & (v104 => ~v99) & (v104 => ~v100) & (v104 => ~v101) & (v104 => ~v122) & (v104 => ~v233) & (v104 => ~v242) & (v104 => ~v342) & (v104 => ~v343) & (v104 => ~v347) & (v104 => ~v354) & (v104 => ~v355) & (v104 => ~v356) & (v104 => ~v357) & (v104 => ~v370) & (v104 => ~v371) & (v104 => ~v382) & (v104 => ~v387) & (v104 => ~v397) & (v104 => ~v398) & (v104 => ~v399) & (v104 => ~v400) & (v104 => ~v401) & (v104 => ~v402) & (v104 => ~v403) & (v104 => ~v404) & (v104 => ~v405) & (v104 => ~v406) & (v104 => ~v407) & (v104 => ~v408) & (v104 => ~v409) & (v104 => ~v410) & (v104 => ~v416) & (v104 => ~v419) & (v104 => ~v420) & (v104 => ~v421) & (v104 => ~v431) & (v104 => ~v432) & (v104 => ~v435) & (v104 => ~v437) & (v104 => ~v446) & (v105 => (v85 => v247)) & (v105 => (v85 => ~v255)) & (v105 => (v123 => ~v422)) & (v105 => (v123 => ~v423)) & (v105 => (v123 => ~v424)) & (v105 => (v123 => ~v433)) & (v105 => (v123 => ~v439)) & (v105 => (v123 => ~v440)) & (v105 => (v123 => ~v441)) & (v105 => (v216 => v411)) & (v105 => (v217 => v411)) & (v105 => (v228 => v218)) & (v105 => (v232 => v246)) & (v105 => (v243 => v246)) & (v105 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v105 => (~(v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v360)) & (v105 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v105 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v105 => v124) & (v105 => v129) & (v105 => v151) & (v105 => v209) & (v105 => v418) & (v105 => ~v65) & (v105 => ~v71) & (v105 => ~v72) & (v105 => ~v78) & (v105 => ~v86) & (v105 => ~v87) & (v105 => ~v91) & (v105 => ~v92) & (v105 => ~v93) & (v105 => ~v94) & (v105 => ~v95) & (v105 => ~v96) & (v105 => ~v97) & (v105 => ~v98) & (v105 => ~v99) & (v105 => ~v100) & (v105 => ~v101) & (v105 => ~v122) & (v105 => ~v233) & (v105 => ~v242) & (v105 => ~v342) & (v105 => ~v343) & (v105 => ~v347) & (v105 => ~v354) & (v105 => ~v355) & (v105 => ~v356) & (v105 => ~v357) & (v105 => ~v370) & (v105 => ~v371) & (v105 => ~v382) & (v105 => ~v387) & (v105 => ~v397) & (v105 => ~v398) & (v105 => ~v399) & (v105 => ~v400) & (v105 => ~v401) & (v105 => ~v402) & (v105 => ~v403) & (v105 => ~v404) & (v105 => ~v405) & (v105 => ~v406) & (v105 => ~v407) & (v105 => ~v408) & (v105 => ~v409) & (v105 => ~v410) & (v105 => ~v416) & (v105 => ~v419) & (v105 => ~v420) & (v105 => ~v421) & (v105 => ~v431) & (v105 => ~v432) & (v105 => ~v435) & (v105 => ~v437) & (v105 => ~v446) & (v106 => ~v78) & (v106 => ~v86) & (v106 => ~v87) & (v106 => ~v91) & (v106 => ~v92) & (v106 => ~v93) & (v106 => ~v94) & (v106 => ~v95) & (v106 => ~v96) & (v106 => ~v97) & (v106 => ~v98) & (v106 => ~v99) & (v106 => ~v100) & (v106 => ~v101) & (v107 => (v85 => v247)) & (v107 => (v85 => ~v255)) & (v107 => (v123 => ~v422)) & (v107 => (v123 => ~v423)) & (v107 => (v123 => ~v424)) & (v107 => (v123 => ~v433)) & (v107 => (v123 => ~v439)) & (v107 => (v123 => ~v440)) & (v107 => (v123 => ~v441)) & (v107 => (v216 => v411)) & (v107 => (v217 => v411)) & (v107 => (v228 => v218)) & (v107 => (v232 => v246)) & (v107 => (v243 => v246)) & (v107 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v107 => (~(v360 | v361 | v362 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v363)) & (v107 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v107 => (~v132 & ~v152 & ~v156 => v132 | v152 | v156)) & (v107 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v107 => v124) & (v107 => v129) & (v107 => v151) & (v107 => v413) & (v107 => v418) & (v107 => ~v65) & (v107 => ~v71) & (v107 => ~v72) & (v107 => ~v78) & (v107 => ~v86) & (v107 => ~v87) & (v107 => ~v91) & (v107 => ~v92) & (v107 => ~v93) & (v107 => ~v94) & (v107 => ~v95) & (v107 => ~v96) & (v107 => ~v97) & (v107 => ~v98) & (v107 => ~v99) & (v107 => ~v100) & (v107 => ~v101) & (v107 => ~v122) & (v107 => ~v233) & (v107 => ~v242) & (v107 => ~v342) & (v107 => ~v343) & (v107 => ~v347) & (v107 => ~v354) & (v107 => ~v355) & (v107 => ~v356) & (v107 => ~v357) & (v107 => ~v370) & (v107 => ~v371) & (v107 => ~v382) & (v107 => ~v387) & (v107 => ~v397) & (v107 => ~v398) & (v107 => ~v399) & (v107 => ~v400) & (v107 => ~v401) & (v107 => ~v402) & (v107 => ~v403) & (v107 => ~v404) & (v107 => ~v405) & (v107 => ~v406) & (v107 => ~v407) & (v107 => ~v408) & (v107 => ~v409) & (v107 => ~v410) & (v107 => ~v416) & (v107 => ~v419) & (v107 => ~v420) & (v107 => ~v421) & (v107 => ~v431) & (v107 => ~v432) & (v107 => ~v435) & (v107 => ~v437) & (v107 => ~v446) & (v108 => (v85 => v247)) & (v108 => (v85 => ~v255)) & (v108 => (v123 => ~v422)) & (v108 => (v123 => ~v423)) & (v108 => (v123 => ~v424)) & (v108 => (v123 => ~v433)) & (v108 => (v123 => ~v439)) & (v108 => (v123 => ~v440)) & (v108 => (v123 => ~v441)) & (v108 => (v157 => v359)) & (v108 => (v157 => v412)) & (v108 => (v216 => v411)) & (v108 => (v217 => v411)) & (v108 => (v228 => v218)) & (v108 => (v232 => v246)) & (v108 => (v243 => v246)) & (v108 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v108 => (~(v360 | v361 | v362 | v363 | v364 | v365 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v366)) & (v108 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v108 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v108 => v124) & (v108 => v129) & (v108 => v151) & (v108 => v209) & (v108 => v413) & (v108 => v418) & (v108 => ~v65) & (v108 => ~v71) & (v108 => ~v72) & (v108 => ~v78) & (v108 => ~v86) & (v108 => ~v87) & (v108 => ~v91) & (v108 => ~v92) & (v108 => ~v93) & (v108 => ~v94) & (v108 => ~v95) & (v108 => ~v96) & (v108 => ~v97) & (v108 => ~v98) & (v108 => ~v99) & (v108 => ~v100) & (v108 => ~v101) & (v108 => ~v122) & (v108 => ~v233) & (v108 => ~v242) & (v108 => ~v342) & (v108 => ~v343) & (v108 => ~v347) & (v108 => ~v354) & (v108 => ~v355) & (v108 => ~v356) & (v108 => ~v357) & (v108 => ~v370) & (v108 => ~v371) & (v108 => ~v382) & (v108 => ~v387) & (v108 => ~v397) & (v108 => ~v398) & (v108 => ~v399) & (v108 => ~v400) & (v108 => ~v401) & (v108 => ~v402) & (v108 => ~v403) & (v108 => ~v404) & (v108 => ~v405) & (v108 => ~v406) & (v108 => ~v407) & (v108 => ~v408) & (v108 => ~v409) & (v108 => ~v410) & (v108 => ~v416) & (v108 => ~v419) & (v108 => ~v420) & (v108 => ~v421) & (v108 => ~v432) & (v108 => ~v435) & (v108 => ~v437) & (v108 => ~v446) & (v109 => (v85 => v247)) & (v109 => (v85 => ~v255)) & (v109 => (v123 => ~v422)) & (v109 => (v123 => ~v423)) & (v109 => (v123 => ~v424)) & (v109 => (v123 => ~v433)) & (v109 => (v123 => ~v439)) & (v109 => (v123 => ~v440)) & (v109 => (v123 => ~v441)) & (v109 => (v216 => v411)) & (v109 => (v217 => v411)) & (v109 => (v228 => v218)) & (v109 => (v232 => v246)) & (v109 => (v243 => v246)) & (v109 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v109 => (~(v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v360)) & (v109 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v109 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v109 => v124) & (v109 => v129) & (v109 => v151) & (v109 => v209) & (v109 => v418) & (v109 => ~v65) & (v109 => ~v71) & (v109 => ~v72) & (v109 => ~v78) & (v109 => ~v86) & (v109 => ~v87) & (v109 => ~v91) & (v109 => ~v92) & (v109 => ~v93) & (v109 => ~v94) & (v109 => ~v95) & (v109 => ~v96) & (v109 => ~v97) & (v109 => ~v98) & (v109 => ~v99) & (v109 => ~v100) & (v109 => ~v101) & (v109 => ~v122) & (v109 => ~v233) & (v109 => ~v242) & (v109 => ~v342) & (v109 => ~v343) & (v109 => ~v347) & (v109 => ~v354) & (v109 => ~v355) & (v109 => ~v356) & (v109 => ~v357) & (v109 => ~v370) & (v109 => ~v371) & (v109 => ~v382) & (v109 => ~v387) & (v109 => ~v397) & (v109 => ~v398) & (v109 => ~v399) & (v109 => ~v400) & (v109 => ~v401) & (v109 => ~v402) & (v109 => ~v403) & (v109 => ~v404) & (v109 => ~v405) & (v109 => ~v406) & (v109 => ~v407) & (v109 => ~v408) & (v109 => ~v409) & (v109 => ~v410) & (v109 => ~v416) & (v109 => ~v419) & (v109 => ~v420) & (v109 => ~v421) & (v109 => ~v431) & (v109 => ~v432) & (v109 => ~v435) & (v109 => ~v437) & (v109 => ~v446) & (v110 => (v85 => v247)) & (v110 => (v85 => ~v255)) & (v110 => (v123 => ~v422)) & (v110 => (v123 => ~v423)) & (v110 => (v123 => ~v424)) & (v110 => (v123 => ~v433)) & (v110 => (v123 => ~v439)) & (v110 => (v123 => ~v440)) & (v110 => (v123 => ~v441)) & (v110 => (v216 => v411)) & (v110 => (v217 => v411)) & (v110 => (v228 => v218)) & (v110 => (v232 => v246)) & (v110 => (v243 => v246)) & (v110 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v110 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v110 => (~v132 & ~v152 & ~v156 => v132 | v152 | v156)) & (v110 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v110 => v124) & (v110 => v129) & (v110 => v151) & (v110 => v418) & (v110 => ~v65) & (v110 => ~v71) & (v110 => ~v72) & (v110 => ~v78) & (v110 => ~v86) & (v110 => ~v87) & (v110 => ~v91) & (v110 => ~v92) & (v110 => ~v93) & (v110 => ~v95) & (v110 => ~v96) & (v110 => ~v97) & (v110 => ~v98) & (v110 => ~v100) & (v110 => ~v101) & (v110 => ~v122) & (v110 => ~v233) & (v110 => ~v242) & (v110 => ~v342) & (v110 => ~v343) & (v110 => ~v347) & (v110 => ~v354) & (v110 => ~v355) & (v110 => ~v356) & (v110 => ~v357) & (v110 => ~v370) & (v110 => ~v371) & (v110 => ~v382) & (v110 => ~v387) & (v110 => ~v397) & (v110 => ~v398) & (v110 => ~v399) & (v110 => ~v400) & (v110 => ~v401) & (v110 => ~v402) & (v110 => ~v403) & (v110 => ~v404) & (v110 => ~v405) & (v110 => ~v406) & (v110 => ~v407) & (v110 => ~v408) & (v110 => ~v409) & (v110 => ~v410) & (v110 => ~v416) & (v110 => ~v419) & (v110 => ~v420) & (v110 => ~v421) & (v110 => ~v431) & (v110 => ~v432) & (v110 => ~v435) & (v110 => ~v437) & (v110 => ~v446) & (v111 => (v85 => v247)) & (v111 => (v85 => ~v255)) & (v111 => (v123 => ~v422)) & (v111 => (v123 => ~v423)) & (v111 => (v123 => ~v424)) & (v111 => (v123 => ~v433)) & (v111 => (v123 => ~v439)) & (v111 => (v123 => ~v440)) & (v111 => (v123 => ~v441)) & (v111 => (v216 => v411)) & (v111 => (v217 => v411)) & (v111 => (v228 => v218)) & (v111 => (v228 => v417)) & (v111 => (v232 => v246)) & (v111 => (v243 => v246)) & (v111 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v111 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v111 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v111 => v124) & (v111 => v129) & (v111 => v151) & (v111 => v209) & (v111 => v344) & (v111 => v413) & (v111 => v418) & (v111 => v430) & (v111 => ~v65) & (v111 => ~v71) & (v111 => ~v72) & (v111 => ~v78) & (v111 => ~v86) & (v111 => ~v87) & (v111 => ~v91) & (v111 => ~v92) & (v111 => ~v93) & (v111 => ~v95) & (v111 => ~v96) & (v111 => ~v97) & (v111 => ~v98) & (v111 => ~v100) & (v111 => ~v101) & (v111 => ~v122) & (v111 => ~v233) & (v111 => ~v234) & (v111 => ~v239) & (v111 => ~v241) & (v111 => ~v242) & (v111 => ~v254) & (v111 => ~v342) & (v111 => ~v343) & (v111 => ~v347) & (v111 => ~v354) & (v111 => ~v355) & (v111 => ~v356) & (v111 => ~v357) & (v111 => ~v370) & (v111 => ~v371) & (v111 => ~v382) & (v111 => ~v387) & (v111 => ~v397) & (v111 => ~v398) & (v111 => ~v399) & (v111 => ~v400) & (v111 => ~v401) & (v111 => ~v402) & (v111 => ~v403) & (v111 => ~v404) & (v111 => ~v405) & (v111 => ~v406) & (v111 => ~v407) & (v111 => ~v408) & (v111 => ~v409) & (v111 => ~v410) & (v111 => ~v416) & (v111 => ~v419) & (v111 => ~v420) & (v111 => ~v421) & (v111 => ~v431) & (v111 => ~v432) & (v111 => ~v435) & (v111 => ~v437) & (v111 => ~v446) & (v112 => (v85 => v247)) & (v112 => (v85 => ~v255)) & (v112 => (v216 => v411)) & (v112 => (v217 => v411)) & (v112 => (v228 => v417)) & (v112 => (v232 => v246)) & (v112 => (v243 => v246)) & (v112 => (~(v68 | v71 | v72 | v405 | v408 | v409 | v410) => v406)) & (v112 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v112 => (~(v250 | v251 | v252 | v253 | v348 | v350 | v351 | v352 | v353 | v356 | v357 | v358 | v372 | v373 | v374 | v375 | v376 | v377 | v378 | v379 | v380) => v249)) & (v112 => (~(v360 | v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v383)) & (v112 => (~(v396 | v397 | v398 | v399 | v400 | v402 | v403 | v404) => v401)) & (v112 => (~(v435 | v446) => v438)) & (v112 => (~v132 & ~v152 & ~v156 => v132 | v152 | v156)) & (v112 => v151) & (v112 => v209) & (v112 => v413) & (v112 => ~v65) & (v112 => ~v68) & (v112 => ~v71) & (v112 => ~v72) & (v112 => ~v78) & (v112 => ~v86) & (v112 => ~v91) & (v112 => ~v92) & (v112 => ~v95) & (v112 => ~v96) & (v112 => ~v97) & (v112 => ~v100) & (v112 => ~v101) & (v112 => ~v122) & (v112 => ~v124) & (v112 => ~v129) & (v112 => ~v218) & (v112 => ~v234) & (v112 => ~v239) & (v112 => ~v241) & (v112 => ~v242) & (v112 => ~v250) & (v112 => ~v251) & (v112 => ~v252) & (v112 => ~v253) & (v112 => ~v254) & (v112 => ~v342) & (v112 => ~v344) & (v112 => ~v347) & (v112 => ~v348) & (v112 => ~v350) & (v112 => ~v351) & (v112 => ~v352) & (v112 => ~v353) & (v112 => ~v354) & (v112 => ~v355) & (v112 => ~v356) & (v112 => ~v357) & (v112 => ~v358) & (v112 => ~v360) & (v112 => ~v361) & (v112 => ~v362) & (v112 => ~v363) & (v112 => ~v364) & (v112 => ~v365) & (v112 => ~v366) & (v112 => ~v367) & (v112 => ~v368) & (v112 => ~v369) & (v112 => ~v370) & (v112 => ~v371) & (v112 => ~v372) & (v112 => ~v373) & (v112 => ~v374) & (v112 => ~v375) & (v112 => ~v376) & (v112 => ~v377) & (v112 => ~v378) & (v112 => ~v379) & (v112 => ~v380) & (v112 => ~v381) & (v112 => ~v382) & (v112 => ~v384) & (v112 => ~v385) & (v112 => ~v386) & (v112 => ~v387) & (v112 => ~v388) & (v112 => ~v389) & (v112 => ~v390) & (v112 => ~v391) & (v112 => ~v392) & (v112 => ~v393) & (v112 => ~v394) & (v112 => ~v396) & (v112 => ~v397) & (v112 => ~v398) & (v112 => ~v399) & (v112 => ~v400) & (v112 => ~v402) & (v112 => ~v403) & (v112 => ~v404) & (v112 => ~v405) & (v112 => ~v407) & (v112 => ~v408) & (v112 => ~v409) & (v112 => ~v410) & (v112 => ~v416) & (v112 => ~v418) & (v112 => ~v419) & (v112 => ~v420) & (v112 => ~v421) & (v112 => ~v431) & (v112 => ~v432) & (v112 => ~v437) & (v112 => ~v446) & (v113 => (v21 => v194)) & (v113 => (v85 => v247)) & (v113 => (v85 => ~v255)) & (v113 => (v86 => ~(v88 | v89 | v90))) & (v113 => (v100 => v85)) & (v113 => (v100 => ~(v82 | v84))) & (v113 => (v123 => ~v422)) & (v113 => (v123 => ~v423)) & (v113 => (v123 => ~v424)) & (v113 => (v123 => ~v433)) & (v113 => (v123 => ~v439)) & (v113 => (v123 => ~v440)) & (v113 => (v123 => ~v441)) & (v113 => (v216 => v411)) & (v113 => (v217 => v411)) & (v113 => (v228 => v218)) & (v113 => (v232 => v246)) & (v113 => (v243 => v246)) & (v113 => (~(v71 | v72 | v405 | v406 | v408 | v409 | v410) => v68)) & (v113 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v113 => (~(v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v360)) & (v113 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v113 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v113 => v124) & (v113 => v129) & (v113 => v151) & (v113 => v184) & (v113 => v190) & (v113 => v209) & (v113 => v239) & (v113 => v241) & (v113 => v418) & (v113 => ~v65) & (v113 => ~v71) & (v113 => ~v72) & (v113 => ~v78) & (v113 => ~v87) & (v113 => ~v91) & (v113 => ~v92) & (v113 => ~v93) & (v113 => ~v94) & (v113 => ~v95) & (v113 => ~v96) & (v113 => ~v97) & (v113 => ~v98) & (v113 => ~v99) & (v113 => ~v101) & (v113 => ~v122) & (v113 => ~v233) & (v113 => ~v242) & (v113 => ~v342) & (v113 => ~v343) & (v113 => ~v347) & (v113 => ~v354) & (v113 => ~v355) & (v113 => ~v356) & (v113 => ~v357) & (v113 => ~v370) & (v113 => ~v371) & (v113 => ~v382) & (v113 => ~v387) & (v113 => ~v397) & (v113 => ~v398) & (v113 => ~v399) & (v113 => ~v400) & (v113 => ~v401) & (v113 => ~v402) & (v113 => ~v403) & (v113 => ~v404) & (v113 => ~v405) & (v113 => ~v406) & (v113 => ~v408) & (v113 => ~v409) & (v113 => ~v410) & (v113 => ~v419) & (v113 => ~v420) & (v113 => ~v421) & (v113 => ~v431) & (v113 => ~v435) & (v113 => ~v437) & (v113 => ~v438) & (v113 => ~v446) & (v114 => (v85 => v247)) & (v114 => (v85 => ~v255)) & (v114 => (v216 => v411)) & (v114 => (v217 => v411)) & (v114 => (v228 => v218)) & (v114 => (v228 => v417)) & (v114 => (v232 => v246)) & (v114 => (v243 => v246)) & (v114 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v114 => (~(v396 | v397 | v398 | v399 | v401 | v402 | v403 | v404) => v400)) & (v114 => (~v132 & ~v152 & ~v156 => v132 | v152 | v156)) & (v114 => v124) & (v114 => v129) & (v114 => v151) & (v114 => v209) & (v114 => v413) & (v114 => v418) & (v114 => ~v65) & (v114 => ~v71) & (v114 => ~v72) & (v114 => ~v78) & (v114 => ~v86) & (v114 => ~v87) & (v114 => ~v91) & (v114 => ~v92) & (v114 => ~v93) & (v114 => ~v95) & (v114 => ~v96) & (v114 => ~v97) & (v114 => ~v98) & (v114 => ~v100) & (v114 => ~v101) & (v114 => ~v122) & (v114 => ~v233) & (v114 => ~v234) & (v114 => ~v239) & (v114 => ~v241) & (v114 => ~v242) & (v114 => ~v254) & (v114 => ~v342) & (v114 => ~v343) & (v114 => ~v344) & (v114 => ~v347) & (v114 => ~v354) & (v114 => ~v355) & (v114 => ~v356) & (v114 => ~v357) & (v114 => ~v370) & (v114 => ~v371) & (v114 => ~v382) & (v114 => ~v387) & (v114 => ~v396) & (v114 => ~v397) & (v114 => ~v398) & (v114 => ~v399) & (v114 => ~v401) & (v114 => ~v402) & (v114 => ~v403) & (v114 => ~v404) & (v114 => ~v405) & (v114 => ~v406) & (v114 => ~v407) & (v114 => ~v408) & (v114 => ~v409) & (v114 => ~v410) & (v114 => ~v416) & (v114 => ~v419) & (v114 => ~v420) & (v114 => ~v421) & (v114 => ~v431) & (v114 => ~v432) & (v114 => ~v435) & (v114 => ~v437) & (v114 => ~v446) & (v115 => (v85 => v247)) & (v115 => (v85 => ~v255)) & (v115 => (v123 => ~v422)) & (v115 => (v123 => ~v423)) & (v115 => (v123 => ~v424)) & (v115 => (v123 => ~v433)) & (v115 => (v123 => ~v439)) & (v115 => (v123 => ~v440)) & (v115 => (v123 => ~v441)) & (v115 => (v157 => v359)) & (v115 => (v216 => v411)) & (v115 => (v217 => v411)) & (v115 => (v228 => v218)) & (v115 => (v232 => v246)) & (v115 => (v243 => v246)) & (v115 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v115 => (~(v360 | v361 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v362)) & (v115 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v115 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v115 => v124) & (v115 => v129) & (v115 => v151) & (v115 => v209) & (v115 => v413) & (v115 => v418) & (v115 => ~v65) & (v115 => ~v71) & (v115 => ~v72) & (v115 => ~v78) & (v115 => ~v86) & (v115 => ~v87) & (v115 => ~v91) & (v115 => ~v92) & (v115 => ~v93) & (v115 => ~v94) & (v115 => ~v95) & (v115 => ~v96) & (v115 => ~v97) & (v115 => ~v98) & (v115 => ~v99) & (v115 => ~v100) & (v115 => ~v101) & (v115 => ~v122) & (v115 => ~v233) & (v115 => ~v242) & (v115 => ~v342) & (v115 => ~v343) & (v115 => ~v347) & (v115 => ~v354) & (v115 => ~v355) & (v115 => ~v356) & (v115 => ~v357) & (v115 => ~v370) & (v115 => ~v371) & (v115 => ~v382) & (v115 => ~v387) & (v115 => ~v397) & (v115 => ~v398) & (v115 => ~v399) & (v115 => ~v400) & (v115 => ~v401) & (v115 => ~v402) & (v115 => ~v403) & (v115 => ~v404) & (v115 => ~v405) & (v115 => ~v406) & (v115 => ~v407) & (v115 => ~v408) & (v115 => ~v409) & (v115 => ~v410) & (v115 => ~v416) & (v115 => ~v419) & (v115 => ~v420) & (v115 => ~v421) & (v115 => ~v432) & (v115 => ~v435) & (v115 => ~v437) & (v115 => ~v446) & (v116 => (v85 => v247)) & (v116 => (v85 => ~v255)) & (v116 => (v123 => ~v422)) & (v116 => (v123 => ~v423)) & (v116 => (v123 => ~v424)) & (v116 => (v123 => ~v433)) & (v116 => (v123 => ~v439)) & (v116 => (v123 => ~v440)) & (v116 => (v123 => ~v441)) & (v116 => (v157 => v359)) & (v116 => (v216 => v411)) & (v116 => (v217 => v411)) & (v116 => (v228 => v218)) & (v116 => (v232 => v246)) & (v116 => (v243 => v246)) & (v116 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v116 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v116 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v116 => v124) & (v116 => v129) & (v116 => v151) & (v116 => v209) & (v116 => v344) & (v116 => v418) & (v116 => v419) & (v116 => ~v65) & (v116 => ~v71) & (v116 => ~v72) & (v116 => ~v78) & (v116 => ~v86) & (v116 => ~v87) & (v116 => ~v91) & (v116 => ~v92) & (v116 => ~v93) & (v116 => ~v94) & (v116 => ~v95) & (v116 => ~v96) & (v116 => ~v97) & (v116 => ~v98) & (v116 => ~v99) & (v116 => ~v100) & (v116 => ~v101) & (v116 => ~v122) & (v116 => ~v233) & (v116 => ~v242) & (v116 => ~v342) & (v116 => ~v343) & (v116 => ~v354) & (v116 => ~v355) & (v116 => ~v356) & (v116 => ~v357) & (v116 => ~v370) & (v116 => ~v371) & (v116 => ~v382) & (v116 => ~v387) & (v116 => ~v397) & (v116 => ~v398) & (v116 => ~v399) & (v116 => ~v400) & (v116 => ~v401) & (v116 => ~v402) & (v116 => ~v403) & (v116 => ~v404) & (v116 => ~v405) & (v116 => ~v406) & (v116 => ~v407) & (v116 => ~v408) & (v116 => ~v409) & (v116 => ~v410) & (v116 => ~v416) & (v116 => ~v420) & (v116 => ~v421) & (v116 => ~v431) & (v116 => ~v432) & (v116 => ~v435) & (v116 => ~v437) & (v116 => ~v446) & (v117 => (v21 => v194)) & (v117 => (v85 => v247)) & (v117 => (v85 => ~v255)) & (v117 => (v86 => ~(v88 | v89 | v90))) & (v117 => (v100 => v85)) & (v117 => (v100 => ~(v82 | v84))) & (v117 => (v123 => ~v422)) & (v117 => (v123 => ~v423)) & (v117 => (v123 => ~v424)) & (v117 => (v123 => ~v433)) & (v117 => (v123 => ~v439)) & (v117 => (v123 => ~v440)) & (v117 => (v123 => ~v441)) & (v117 => (v216 => v411)) & (v117 => (v217 => v411)) & (v117 => (v228 => v218)) & (v117 => (v232 => v246)) & (v117 => (v243 => v246)) & (v117 => (~(v71 | v72 | v405 | v406 | v408 | v409 | v410) => v68)) & (v117 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v117 => (~(v361 | v362 | v363 | v364 | v365 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v360)) & (v117 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v117 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v117 => v124) & (v117 => v129) & (v117 => v151) & (v117 => v184) & (v117 => v190) & (v117 => v209) & (v117 => v239) & (v117 => v241) & (v117 => v418) & (v117 => ~v65) & (v117 => ~v71) & (v117 => ~v72) & (v117 => ~v78) & (v117 => ~v87) & (v117 => ~v91) & (v117 => ~v92) & (v117 => ~v93) & (v117 => ~v94) & (v117 => ~v95) & (v117 => ~v96) & (v117 => ~v97) & (v117 => ~v98) & (v117 => ~v99) & (v117 => ~v101) & (v117 => ~v122) & (v117 => ~v233) & (v117 => ~v242) & (v117 => ~v342) & (v117 => ~v343) & (v117 => ~v347) & (v117 => ~v354) & (v117 => ~v355) & (v117 => ~v356) & (v117 => ~v357) & (v117 => ~v370) & (v117 => ~v371) & (v117 => ~v382) & (v117 => ~v387) & (v117 => ~v397) & (v117 => ~v398) & (v117 => ~v399) & (v117 => ~v400) & (v117 => ~v401) & (v117 => ~v402) & (v117 => ~v403) & (v117 => ~v404) & (v117 => ~v405) & (v117 => ~v406) & (v117 => ~v407) & (v117 => ~v408) & (v117 => ~v409) & (v117 => ~v410) & (v117 => ~v416) & (v117 => ~v419) & (v117 => ~v420) & (v117 => ~v421) & (v117 => ~v435) & (v117 => ~v437) & (v117 => ~v438) & (v117 => ~v446) & (v118 => (v85 => v247)) & (v118 => (v85 => ~v255)) & (v118 => (v123 => ~v422)) & (v118 => (v123 => ~v423)) & (v118 => (v123 => ~v424)) & (v118 => (v123 => ~v433)) & (v118 => (v123 => ~v439)) & (v118 => (v123 => ~v440)) & (v118 => (v123 => ~v441)) & (v118 => (v157 => v359)) & (v118 => (v216 => v411)) & (v118 => (v217 => v411)) & (v118 => (v228 => v218)) & (v118 => (v232 => v246)) & (v118 => (v243 => v246)) & (v118 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v118 => (~(v360 | v361 | v362 | v363 | v364 | v366 | v368 | v369 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v365)) & (v118 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v118 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v118 => v124) & (v118 => v129) & (v118 => v151) & (v118 => v209) & (v118 => v344) & (v118 => v418) & (v118 => v419) & (v118 => ~v65) & (v118 => ~v71) & (v118 => ~v72) & (v118 => ~v78) & (v118 => ~v86) & (v118 => ~v87) & (v118 => ~v91) & (v118 => ~v92) & (v118 => ~v93) & (v118 => ~v94) & (v118 => ~v95) & (v118 => ~v96) & (v118 => ~v97) & (v118 => ~v98) & (v118 => ~v99) & (v118 => ~v100) & (v118 => ~v101) & (v118 => ~v122) & (v118 => ~v233) & (v118 => ~v242) & (v118 => ~v342) & (v118 => ~v343) & (v118 => ~v354) & (v118 => ~v355) & (v118 => ~v356) & (v118 => ~v357) & (v118 => ~v370) & (v118 => ~v371) & (v118 => ~v382) & (v118 => ~v387) & (v118 => ~v397) & (v118 => ~v398) & (v118 => ~v399) & (v118 => ~v400) & (v118 => ~v401) & (v118 => ~v402) & (v118 => ~v403) & (v118 => ~v404) & (v118 => ~v405) & (v118 => ~v406) & (v118 => ~v407) & (v118 => ~v408) & (v118 => ~v409) & (v118 => ~v410) & (v118 => ~v416) & (v118 => ~v420) & (v118 => ~v421) & (v118 => ~v431) & (v118 => ~v432) & (v118 => ~v435) & (v118 => ~v437) & (v118 => ~v446) & (v119 => (v85 => v247)) & (v119 => (v85 => ~v255)) & (v119 => (v123 => ~v422)) & (v119 => (v123 => ~v423)) & (v119 => (v123 => ~v424)) & (v119 => (v123 => ~v433)) & (v119 => (v123 => ~v439)) & (v119 => (v123 => ~v440)) & (v119 => (v123 => ~v441)) & (v119 => (v216 => v411)) & (v119 => (v217 => v411)) & (v119 => (v228 => v218)) & (v119 => (v232 => v246)) & (v119 => (v243 => v246)) & (v119 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v119 => (~(v249 | v250 | v252 | v253 | v348 | v350 | v351 | v352 | v353 | v356 | v357 | v358 | v372 | v373 | v374 | v375 | v376 | v377 | v378 | v379 | v380) => v251)) & (v119 => (~(v360 | v361 | v362 | v363 | v364 | v365 | v366 | v368 | v370 | v371 | v381 | v382 | v383 | v384 | v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v393 | v394) => v369)) & (v119 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v119 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v119 => v124) & (v119 => v129) & (v119 => v151) & (v119 => v413) & (v119 => v418) & (v119 => ~v65) & (v119 => ~v71) & (v119 => ~v72) & (v119 => ~v78) & (v119 => ~v86) & (v119 => ~v87) & (v119 => ~v91) & (v119 => ~v92) & (v119 => ~v93) & (v119 => ~v94) & (v119 => ~v95) & (v119 => ~v96) & (v119 => ~v97) & (v119 => ~v98) & (v119 => ~v99) & (v119 => ~v100) & (v119 => ~v101) & (v119 => ~v122) & (v119 => ~v233) & (v119 => ~v242) & (v119 => ~v342) & (v119 => ~v343) & (v119 => ~v347) & (v119 => ~v348) & (v119 => ~v354) & (v119 => ~v355) & (v119 => ~v356) & (v119 => ~v357) & (v119 => ~v370) & (v119 => ~v371) & (v119 => ~v382) & (v119 => ~v387) & (v119 => ~v397) & (v119 => ~v398) & (v119 => ~v399) & (v119 => ~v400) & (v119 => ~v401) & (v119 => ~v402) & (v119 => ~v403) & (v119 => ~v404) & (v119 => ~v405) & (v119 => ~v406) & (v119 => ~v407) & (v119 => ~v408) & (v119 => ~v409) & (v119 => ~v410) & (v119 => ~v416) & (v119 => ~v419) & (v119 => ~v420) & (v119 => ~v421) & (v119 => ~v431) & (v119 => ~v432) & (v119 => ~v435) & (v119 => ~v437) & (v119 => ~v446) & (v120 => (v85 => v247)) & (v120 => (v85 => ~v255)) & (v120 => (v123 => ~v422)) & (v120 => (v123 => ~v423)) & (v120 => (v123 => ~v424)) & (v120 => (v123 => ~v433)) & (v120 => (v123 => ~v439)) & (v120 => (v123 => ~v440)) & (v120 => (v123 => ~v441)) & (v120 => (v216 => v411)) & (v120 => (v217 => v411)) & (v120 => (v228 => v218)) & (v120 => (v232 => v246)) & (v120 => (v243 => v246)) & (v120 => (~(v236 | v238 | v256 | v257 | v258) => v237)) & (v120 => (~(v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) => v396)) & (v120 => (~v132 & ~v152 & ~v156 => v132 | v152 | v156)) & (v120 => (~v422 & ~v423 & ~v424 & ~v433 & ~v439 & ~v440 & ~v441 => v123)) & (v120 => v124) & (v120 => v129) & (v120 => v151) & (v120 => v209) & (v120 => v418) & (v120 => ~v65) & (v120 => ~v71) & (v120 => ~v72) & (v120 => ~v78) & (v120 => ~v86) & (v120 => ~v87) & (v120 => ~v91) & (v120 => ~v92) & (v120 => ~v93) & (v120 => ~v94) & (v120 => ~v95) & (v120 => ~v96) & (v120 => ~v97) & (v120 => ~v98) & (v120 => ~v99) & (v120 => ~v100) & (v120 => ~v101) & (v120 => ~v122) & (v120 => ~v233) & (v120 => ~v242) & (v120 => ~v342) & (v120 => ~v343) & (v120 => ~v347) & (v120 => ~v354) & (v120 => ~v355) & (v120 => ~v356) & (v120 => ~v357) & (v120 => ~v370) & (v120 => ~v371) & (v120 => ~v382) & (v120 => ~v387) & (v120 => ~v397) & (v120 => ~v398) & (v120 => ~v399) & (v120 => ~v400) & (v120 => ~v401) & (v120 => ~v402) & (v120 => ~v403) & (v120 => ~v404) & (v120 => ~v405) & (v120 => ~v406) & (v120 => ~v407) & (v120 => ~v408) & (v120 => ~v409) & (v120 => ~v410) & (v120 => ~v416) & (v120 => ~v419) & (v120 => ~v420) & (v120 => ~v421) & (v120 => ~v431) & (v120 => ~v432) & (v120 => ~v435) & (v120 => ~v437) & (v120 => ~v446) & (v123 => ~(v422 | v423 | v424 | v439 | v440 | v441)) & (v125 => (~v78 | ~v87) & (~v78 | ~v91) & (~v78 | ~v92) & (~v78 | ~v94) & (~v78 | ~v95) & (~v78 | ~v96) & (~v78 | ~v99) & (~v78 | ~v101) & (~v87 | ~v91) & (~v87 | ~v92) & (~v87 | ~v94) & (~v87 | ~v95) & (~v87 | ~v96) & (~v87 | ~v99) & (~v87 | ~v101) & (~v91 | ~v92) & (~v91 | ~v94) & (~v91 | ~v95) & (~v91 | ~v96) & (~v91 | ~v99) & (~v91 | ~v101) & (~v92 | ~v94) & (~v92 | ~v95) & (~v92 | ~v96) & (~v92 | ~v99) & (~v92 | ~v101) & (~v94 | ~v95) & (~v94 | ~v96) & (~v94 | ~v99) & (~v94 | ~v101) & (~v95 | ~v96) & (~v95 | ~v99) & (~v95 | ~v101) & (~v96 | ~v99) & (~v96 | ~v101) & (~v99 | ~v101)) & (v127 => v211) & (v130 => (~v81 | ~v82) & (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v93) & (~v81 | ~v94) & (~v81 | ~v99) & (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v93) & (~v82 | ~v94) & (~v82 | ~v99) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v93) & (~v84 | ~v94) & (~v84 | ~v99) & (~v90 | ~v92) & (~v90 | ~v93) & (~v90 | ~v94) & (~v90 | ~v99) & (~v92 | ~v93) & (~v92 | ~v94) & (~v92 | ~v99) & (~v93 | ~v94) & (~v93 | ~v99) & (~v94 | ~v99)) & (v130 => v131 | v154 | v155) & (v130 => v218 | v219) & (v131 => (~v81 | ~v89) & (~v81 | ~v90) & (~v81 | ~v93) & (~v89 | ~v90) & (~v89 | ~v93) & (~v90 | ~v93)) & (v132 => (~v92 | ~v95) & (~v92 | ~v98) & (~v95 | ~v98)) & (v132 => v133 | v134 | v135 | v136 | v137 | v138 | v140 | v141 | v142 | v143 | v145 | v146 | v148) & (v133 => (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v134 => (~v78 | ~v83) & (~v78 | ~v84) & (~v83 | ~v84)) & (v134 => v83 | v84) & (v134 => v132) & (v135 => (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v135 => v132) & (v136 => (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v136 => v132) & (v138 => (~v78 | ~v79) & (~v78 | ~v81) & (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v79 | ~v81) & (~v79 | ~v89) & (~v79 | ~v90) & (~v79 | ~v98) & (~v81 | ~v89) & (~v81 | ~v90) & (~v81 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v138 => v132) & (v140 => (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v141 => (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v142 => (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v143 => v79 | v81) & (v143 => ~v79 | ~v81) & (v144 => ~v78 | ~v98) & (v145 => (~v78 | ~v86) & (~v78 | ~v89) & (~v78 | ~v90) & (~v78 | ~v98) & (~v86 | ~v89) & (~v86 | ~v90) & (~v86 | ~v98) & (~v89 | ~v90) & (~v89 | ~v98) & (~v90 | ~v98)) & (v148 => (~v78 | ~v83) & (~v78 | ~v84) & (~v83 | ~v84)) & (v148 => v83 | v84) & (v149 => v11) & (v149 => ~v94 | ~v99) & (v150 => v130) & (v150 => v154 | v155) & (v152 & ~v405 => ~v132) & (v152 => ~v156) & (v153 => v83 | v84) & (v153 => ~v83 | ~v84) & (v154 => (~v81 | ~v89) & (~v81 | ~v90) & (~v81 | ~v93) & (~v89 | ~v90) & (~v89 | ~v93) & (~v90 | ~v93)) & (v154 => v130) & (v155 => (~v81 | ~v82) & (~v81 | ~v84) & (~v81 | ~v89) & (~v81 | ~v90) & (~v81 | ~v93) & (~v82 | ~v84) & (~v82 | ~v89) & (~v82 | ~v90) & (~v82 | ~v93) & (~v84 | ~v89) & (~v84 | ~v90) & (~v84 | ~v93) & (~v89 | ~v90) & (~v89 | ~v93) & (~v90 | ~v93)) & (v155 => v130) & (v156 => (~v94 | ~v99) & (~v94 | ~v101) & (~v99 | ~v101)) & (v156 => v229) & (v158 => (~v78 | ~v91) & (~v78 | ~v92) & (~v78 | ~v95) & (~v78 | ~v96) & (~v78 | ~v98) & (~v78 | ~v99) & (~v91 | ~v92) & (~v91 | ~v95) & (~v91 | ~v96) & (~v91 | ~v98) & (~v91 | ~v99) & (~v92 | ~v95) & (~v92 | ~v96) & (~v92 | ~v98) & (~v92 | ~v99) & (~v95 | ~v96) & (~v95 | ~v98) & (~v95 | ~v99) & (~v96 | ~v98) & (~v96 | ~v99) & (~v98 | ~v99)) & (v160 => v186) & (v161 => ~(v423 | v424)) & (v162 => (~v92 | ~v95) & (~v92 | ~v97) & (~v95 | ~v97)) & (v163 => v172) & (v163 => ~v83 | ~v84) & (v166 => (~v78 | ~v91) & (~v78 | ~v96) & (~v91 | ~v96)) & (v166 => ~v206) & (v167 => (~v92 | ~v94) & (~v92 | ~v95) & (~v92 | ~v99) & (~v94 | ~v95) & (~v94 | ~v99) & (~v95 | ~v99)) & (v168 => v215) & (v168 => v216 | v217) & (v172 => v83 | v84) & (v172 => v163) & (v172 => v453 | v454 | v468 | v469 | v457 | v458 | v459 | v460 | v462 | v464 | v465) & (v172 => ~v83 | ~v84) & (v172 => ~v167) & (v174 => ~v9) & (v175 => v79 | v81) & (v175 => ~v79 | ~v81) & (v176 => v212 | v213) & (v176 => v232 | v243) & (v177 => ~v172) & (v179 => v79 | v81) & (v180 => (~v96 | ~v98) & (~v96 | ~v99) & (~v96 | ~v101) & (~v98 | ~v99) & (~v98 | ~v101) & (~v99 | ~v101)) & (v183 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v184 => (~v92 | ~v94) & (~v92 | ~v95) & (~v92 | ~v96) & (~v92 | ~v99) & (~v94 | ~v95) & (~v94 | ~v96) & (~v94 | ~v99) & (~v95 | ~v96) & (~v95 | ~v99) & (~v96 | ~v99)) & (v185 => v158 & v186) & (v186 => (~v87 | ~v92) & (~v87 | ~v95) & (~v87 | ~v96) & (~v92 | ~v95) & (~v92 | ~v96) & (~v95 | ~v96)) & (v187 => (~v78 | ~v91) & (~v78 | ~v94) & (~v78 | ~v96) & (~v78 | ~v99) & (~v91 | ~v94) & (~v91 | ~v96) & (~v91 | ~v99) & (~v94 | ~v96) & (~v94 | ~v99) & (~v96 | ~v99)) & (v188 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v190 => ~v94 | ~v99) & (v191 => (~v78 | ~v91) & (~v78 | ~v93) & (~v78 | ~v94) & (~v78 | ~v99) & (~v91 | ~v93) & (~v91 | ~v94) & (~v91 | ~v99) & (~v93 | ~v94) & (~v93 | ~v99) & (~v94 | ~v99)) & (v192 => (~v81 | ~v82) & (~v81 | ~v90) & (~v82 | ~v90)) & (v192 => ~v50) & (v193 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v195 => (~v82 | ~v84) & (~v82 | ~v100) & (~v84 | ~v100)) & (v196 => ~v79 | ~v81) & (v204 => v63) & (v204 => v188) & (v204 => ~v82 | ~v90) & (v205 => v79 | v81) & (v206 => v210) & (v206 => ~v79 | ~v81) & (v207 => v210) & (v207 => ~v79 | ~v81) & (v208 => v210) & (v208 => ~v79 | ~v81) & (v210 => (~v78 | ~v81) & (~v78 | ~v84) & (~v78 | ~v86) & (~v78 | ~v87) & (~v78 | ~v89) & (~v78 | ~v90) & (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v89) & (~v87 | ~v90) & (~v89 | ~v90)) & (v210 => v223) & (v211 => (~v78 | ~v81) & (~v78 | ~v84) & (~v78 | ~v90) & (~v78 | ~v92) & (~v78 | ~v94) & (~v78 | ~v99) & (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v94) & (~v81 | ~v99) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v94) & (~v84 | ~v99) & (~v90 | ~v92) & (~v90 | ~v94) & (~v90 | ~v99) & (~v92 | ~v94) & (~v92 | ~v99) & (~v94 | ~v99)) & (v212 => (~v78 | ~v80) & (~v78 | ~v87) & (~v78 | ~v91) & (~v78 | ~v92) & (~v78 | ~v94) & (~v78 | ~v95) & (~v78 | ~v99) & (~v78 | ~v101) & (~v80 | ~v87) & (~v80 | ~v91) & (~v80 | ~v92) & (~v80 | ~v94) & (~v80 | ~v95) & (~v80 | ~v99) & (~v80 | ~v101) & (~v87 | ~v91) & (~v87 | ~v92) & (~v87 | ~v94) & (~v87 | ~v95) & (~v87 | ~v99) & (~v87 | ~v101) & (~v91 | ~v92) & (~v91 | ~v94) & (~v91 | ~v95) & (~v91 | ~v99) & (~v91 | ~v101) & (~v92 | ~v94) & (~v92 | ~v95) & (~v92 | ~v99) & (~v92 | ~v101) & (~v94 | ~v95) & (~v94 | ~v99) & (~v94 | ~v101) & (~v95 | ~v99) & (~v95 | ~v101) & (~v99 | ~v101)) & (v213 => (~v78 | ~v80) & (~v78 | ~v86) & (~v78 | ~v87) & (~v78 | ~v91) & (~v78 | ~v92) & (~v78 | ~v94) & (~v78 | ~v95) & (~v78 | ~v97) & (~v78 | ~v99) & (~v78 | ~v101) & (~v80 | ~v86) & (~v80 | ~v87) & (~v80 | ~v91) & (~v80 | ~v92) & (~v80 | ~v94) & (~v80 | ~v95) & (~v80 | ~v97) & (~v80 | ~v99) & (~v80 | ~v101) & (~v86 | ~v87) & (~v86 | ~v91) & (~v86 | ~v92) & (~v86 | ~v94) & (~v86 | ~v95) & (~v86 | ~v97) & (~v86 | ~v99) & (~v86 | ~v101) & (~v87 | ~v91) & (~v87 | ~v92) & (~v87 | ~v94) & (~v87 | ~v95) & (~v87 | ~v97) & (~v87 | ~v99) & (~v87 | ~v101) & (~v91 | ~v92) & (~v91 | ~v94) & (~v91 | ~v95) & (~v91 | ~v97) & (~v91 | ~v99) & (~v91 | ~v101) & (~v92 | ~v94) & (~v92 | ~v95) & (~v92 | ~v97) & (~v92 | ~v99) & (~v92 | ~v101) & (~v94 | ~v95) & (~v94 | ~v97) & (~v94 | ~v99) & (~v94 | ~v101) & (~v95 | ~v97) & (~v95 | ~v99) & (~v95 | ~v101) & (~v97 | ~v99) & (~v97 | ~v101) & (~v99 | ~v101)) & (v213 => v230) & (v214 => (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v87 | ~v88) & (~v87 | ~v89) & (~v88 | ~v89)) & (v214 => ~(v225 | v226)) & (v215 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v89) & (~v81 | ~v90) & (~v81 | ~v101) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v89) & (~v84 | ~v90) & (~v84 | ~v101) & (~v86 | ~v87) & (~v86 | ~v89) & (~v86 | ~v90) & (~v86 | ~v101) & (~v87 | ~v89) & (~v87 | ~v90) & (~v87 | ~v101) & (~v89 | ~v90) & (~v89 | ~v101) & (~v90 | ~v101)) & (v217 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v218 => v228) & (v218 => ~v92 | ~v95) & (v219 => (~v92 | ~v93) & (~v92 | ~v95) & (~v93 | ~v95)) & (v219 => v130) & (v220 => ~v240) & (v222 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v223 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v224 => (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v87) & (~v81 | ~v88) & (~v81 | ~v89) & (~v81 | ~v90) & (~v84 | ~v86) & (~v84 | ~v87) & (~v84 | ~v88) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v87) & (~v86 | ~v88) & (~v86 | ~v89) & (~v86 | ~v90) & (~v87 | ~v88) & (~v87 | ~v89) & (~v87 | ~v90) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90)) & (v224 => v225 | v226) & (v225 => (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v93) & (~v81 | ~v99) & (~v81 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v93) & (~v84 | ~v99) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v93) & (~v90 | ~v99) & (~v90 | ~v101) & (~v92 | ~v93) & (~v92 | ~v99) & (~v92 | ~v101) & (~v93 | ~v99) & (~v93 | ~v101) & (~v99 | ~v101)) & (v225 => v259) & (v226 => (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v93) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v93) & (~v90 | ~v92) & (~v90 | ~v93) & (~v92 | ~v93)) & (v226 => v215) & (v226 => v259) & (v228 => v130) & (v228 => v215) & (v229 => (~v94 | ~v99) & (~v94 | ~v101) & (~v99 | ~v101)) & (v229 => v156) & (v230 => v213) & (v230 => ~v86 | ~v97) & (v231 => v191) & (v231 => v232 | v255) & (v231 => v245) & (v231 => v246) & (v231 => ~(v69 | v70)) & (v231 => ~(v85 | v248)) & (v232 & ~v69 & ~v70 & ~v231 => v80 | v85) & (v232 => (~v78 | ~v80) & (~v78 | ~v85) & (~v78 | ~v91) & (~v78 | ~v94) & (~v78 | ~v99) & (~v80 | ~v85) & (~v80 | ~v91) & (~v80 | ~v94) & (~v80 | ~v99) & (~v85 | ~v91) & (~v85 | ~v94) & (~v85 | ~v99) & (~v91 | ~v94) & (~v91 | ~v99) & (~v94 | ~v99)) & (v232 => ~v255) & (v233 => ~v343) & (v239 => v241) & (v240 => v215) & (v240 => v232 | v243) & (v241 => v239 | v242) & (v242 => ~(v405 | v415)) & (v242 => ~v239) & (v243 => (~v78 | ~v80) & (~v78 | ~v91) & (~v78 | ~v92) & (~v78 | ~v93) & (~v78 | ~v94) & (~v78 | ~v95) & (~v78 | ~v99) & (~v78 | ~v101) & (~v80 | ~v91) & (~v80 | ~v92) & (~v80 | ~v93) & (~v80 | ~v94) & (~v80 | ~v95) & (~v80 | ~v99) & (~v80 | ~v101) & (~v91 | ~v92) & (~v91 | ~v93) & (~v91 | ~v94) & (~v91 | ~v95) & (~v91 | ~v99) & (~v91 | ~v101) & (~v92 | ~v93) & (~v92 | ~v94) & (~v92 | ~v95) & (~v92 | ~v99) & (~v92 | ~v101) & (~v93 | ~v94) & (~v93 | ~v95) & (~v93 | ~v99) & (~v93 | ~v101) & (~v94 | ~v95) & (~v94 | ~v99) & (~v94 | ~v101) & (~v95 | ~v99) & (~v95 | ~v101) & (~v99 | ~v101)) & (v243 => ~v232) & (v244 => ~(v232 | v243)) & (v245 => (~v80 | ~v85) & (~v80 | ~v101) & (~v85 | ~v101)) & (v245 => v130) & (v245 => v131 | v154 | v155) & (v245 => v191) & (v245 => v232 | v243) & (v246 => (~v93 | ~v94) & (~v93 | ~v99) & (~v93 | ~v100) & (~v94 | ~v99) & (~v94 | ~v100) & (~v99 | ~v100)) & (v246 => v232 | v243) & (v247 => v85) & (v254 => v232 | v255) & (v255 & v356 => v72 | v408 | v410) & (v255 & v408 => v356) & (v255 & v410 => v356) & (v255 => v243) & (v259 => (~v81 | ~v83) & (~v81 | ~v86) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v93) & (~v81 | ~v99) & (~v83 | ~v86) & (~v83 | ~v90) & (~v83 | ~v92) & (~v83 | ~v93) & (~v83 | ~v99) & (~v86 | ~v90) & (~v86 | ~v92) & (~v86 | ~v93) & (~v86 | ~v99) & (~v90 | ~v92) & (~v90 | ~v93) & (~v90 | ~v99) & (~v92 | ~v93) & (~v92 | ~v99) & (~v93 | ~v99)) & (v342 => ~v345) & (v345 => ~v121) & (v349 & ~v70 => ~v232) & (v349 => ~v255) & (v354 => ~v345) & (v356 & ~v72 & ~v408 & ~v410 => ~v255) & (v356 => ~v92 | ~v95) & (v356 => ~v232) & (v357 & ~v69 => ~v232) & (v357 => ~v255) & (v359 => v157) & (v374 | v375 | v376 | v377 | v378 | v379 | v380 => v232 | v243) & (v395 => v422 | v423 | v424 | v426 | v427 | v428 | v429 | v436) & (v411 => v216 | v217) & (v412 => v157) & (v414 => v428 | v429 | v436) & (v414 => ~(v442 | v444)) & (v417 => v228) & (v431 => (~v79 | ~v81) & (~v79 | ~v83) & (~v79 | ~v84) & (~v79 | ~v86) & (~v79 | ~v89) & (~v79 | ~v90) & (~v81 | ~v83) & (~v81 | ~v84) & (~v81 | ~v86) & (~v81 | ~v89) & (~v81 | ~v90) & (~v83 | ~v84) & (~v83 | ~v86) & (~v83 | ~v89) & (~v83 | ~v90) & (~v84 | ~v86) & (~v84 | ~v89) & (~v84 | ~v90) & (~v86 | ~v89) & (~v86 | ~v90) & (~v89 | ~v90)) & (v431 => ~v132) & (v437 => ~v92 | ~v95) & (v442 => ~v92 | ~v95) & (v445 => v428 | v429 | v436) & (v448 => (~v79 | ~v81) & (~v79 | ~v82) & (~v79 | ~v84) & (~v79 | ~v90) & (~v79 | ~v92) & (~v79 | ~v101) & (~v81 | ~v82) & (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v101) & (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v101) & (~v92 | ~v101)) & (v448 => v192) & (v450 => (~v79 | ~v81) & (~v79 | ~v82) & (~v79 | ~v84) & (~v79 | ~v90) & (~v79 | ~v92) & (~v79 | ~v101) & (~v81 | ~v82) & (~v81 | ~v84) & (~v81 | ~v90) & (~v81 | ~v92) & (~v81 | ~v101) & (~v82 | ~v84) & (~v82 | ~v90) & (~v82 | ~v92) & (~v82 | ~v101) & (~v84 | ~v90) & (~v84 | ~v92) & (~v84 | ~v101) & (~v90 | ~v92) & (~v90 | ~v101) & (~v92 | ~v101)) & (v450 => v192) & (v453 => ~v79 | ~v81) & (v453 => ~v169) & (v454 => v83 | v84) & (v457 => v169 | v170) & (v458 => ~v79 | ~v81) & (v458 => ~v170) & (v459 => ~v79 | ~v81) & (v464 => ~(v173 | v178)) & (v469 => ~v79 | ~v81) & (~v68 | ~v71) & (~v68 | ~v72) & (~v68 | ~v405) & (~v68 | ~v406) & (~v68 | ~v408) & (~v68 | ~v409) & (~v68 | ~v410) & (~v71 | ~v72) & (~v71 | ~v405) & (~v71 | ~v406) & (~v71 | ~v408) & (~v71 | ~v409) & (~v71 | ~v410) & (~v72 | ~v405) & (~v72 | ~v406) & (~v72 | ~v408) & (~v72 | ~v409) & (~v72 | ~v410) & (~v405 | ~v406) & (~v405 | ~v408) & (~v405 | ~v409) & (~v405 | ~v410) & (~v406 | ~v408) & (~v406 | ~v409) & (~v406 | ~v410) & (~v408 | ~v409) & (~v408 | ~v410) & (~v409 | ~v410) & (~v88 | ~v89) & (~v88 | ~v90) & (~v89 | ~v90) & (~v127 | ~v128) & (~v131 | ~v154) & (~v131 | ~v155) & (~v154 | ~v155) & (~v133 | ~v134) & (~v133 | ~v135) & (~v133 | ~v136) & (~v133 | ~v138) & (~v133 | ~v139) & (~v133 | ~v140) & (~v133 | ~v141) & (~v133 | ~v142) & (~v133 | ~v143) & (~v133 | ~v145) & (~v133 | ~v148) & (~v133 | ~v431) & (~v134 | ~v135) & (~v134 | ~v136) & (~v134 | ~v138) & (~v134 | ~v139) & (~v134 | ~v140) & (~v134 | ~v141) & (~v134 | ~v142) & (~v134 | ~v143) & (~v134 | ~v145) & (~v134 | ~v148) & (~v134 | ~v431) & (~v135 | ~v136) & (~v135 | ~v138) & (~v135 | ~v139) & (~v135 | ~v140) & (~v135 | ~v141) & (~v135 | ~v142) & (~v135 | ~v143) & (~v135 | ~v145) & (~v135 | ~v148) & (~v135 | ~v431) & (~v136 | ~v138) & (~v136 | ~v139) & (~v136 | ~v140) & (~v136 | ~v141) & (~v136 | ~v142) & (~v136 | ~v143) & (~v136 | ~v145) & (~v136 | ~v148) & (~v136 | ~v431) & (~v138 | ~v139) & (~v138 | ~v140) & (~v138 | ~v141) & (~v138 | ~v142) & (~v138 | ~v143) & (~v138 | ~v145) & (~v138 | ~v148) & (~v138 | ~v431) & (~v139 | ~v140) & (~v139 | ~v141) & (~v139 | ~v142) & (~v139 | ~v143) & (~v139 | ~v145) & (~v139 | ~v148) & (~v139 | ~v431) & (~v140 | ~v141) & (~v140 | ~v142) & (~v140 | ~v143) & (~v140 | ~v145) & (~v140 | ~v148) & (~v140 | ~v431) & (~v141 | ~v142) & (~v141 | ~v143) & (~v141 | ~v145) & (~v141 | ~v148) & (~v141 | ~v431) & (~v142 | ~v143) & (~v142 | ~v145) & (~v142 | ~v148) & (~v142 | ~v431) & (~v143 | ~v145) & (~v143 | ~v148) & (~v143 | ~v431) & (~v145 | ~v148) & (~v145 | ~v431) & (~v148 | ~v431) & (~v164 | ~v165) & (~v169 | ~v170) & (~v169 | ~v175) & (~v170 | ~v175) & (~v174 | ~v181) & (~v192 | ~v204) & (~v196 | ~v200) & (~v196 | ~v201) & (~v196 | ~v202) & (~v196 | ~v206) & (~v196 | ~v207) & (~v196 | ~v208) & (~v200 | ~v201) & (~v200 | ~v202) & (~v200 | ~v206) & (~v200 | ~v207) & (~v200 | ~v208) & (~v201 | ~v202) & (~v201 | ~v206) & (~v201 | ~v207) & (~v201 | ~v208) & (~v202 | ~v206) & (~v202 | ~v207) & (~v202 | ~v208) & (~v206 | ~v207) & (~v206 | ~v208) & (~v207 | ~v208) & (~v197 | ~v198) & (~v197 | ~v199) & (~v197 | ~v203) & (~v197 | ~v205) & (~v198 | ~v199) & (~v198 | ~v203) & (~v198 | ~v205) & (~v199 | ~v203) & (~v199 | ~v205) & (~v203 | ~v205) & (~v212 | ~v213) & (~v216 | ~v217) & (~v218 | ~v219) & (~v225 | ~v226) & (~v236 | ~v237) & (~v236 | ~v238) & (~v236 | ~v256) & (~v236 | ~v257) & (~v236 | ~v258) & (~v237 | ~v238) & (~v237 | ~v256) & (~v237 | ~v257) & (~v237 | ~v258) & (~v238 | ~v256) & (~v238 | ~v257) & (~v238 | ~v258) & (~v256 | ~v257) & (~v256 | ~v258) & (~v257 | ~v258) & (~v244 | ~v245) & (~v249 | ~v250) & (~v249 | ~v251) & (~v249 | ~v252) & (~v249 | ~v253) & (~v249 | ~v348) & (~v249 | ~v350) & (~v249 | ~v351) & (~v249 | ~v352) & (~v249 | ~v353) & (~v249 | ~v356) & (~v249 | ~v357) & (~v249 | ~v358) & (~v249 | ~v372) & (~v249 | ~v373) & (~v249 | ~v374) & (~v249 | ~v375) & (~v249 | ~v376) & (~v249 | ~v377) & (~v249 | ~v378) & (~v249 | ~v379) & (~v249 | ~v380) & (~v250 | ~v251) & (~v250 | ~v252) & (~v250 | ~v253) & (~v250 | ~v348) & (~v250 | ~v350) & (~v250 | ~v351) & (~v250 | ~v352) & (~v250 | ~v353) & (~v250 | ~v356) & (~v250 | ~v357) & (~v250 | ~v358) & (~v250 | ~v372) & (~v250 | ~v373) & (~v250 | ~v374) & (~v250 | ~v375) & (~v250 | ~v376) & (~v250 | ~v377) & (~v250 | ~v378) & (~v250 | ~v379) & (~v250 | ~v380) & (~v251 | ~v252) & (~v251 | ~v253) & (~v251 | ~v348) & (~v251 | ~v350) & (~v251 | ~v351) & (~v251 | ~v352) & (~v251 | ~v353) & (~v251 | ~v356) & (~v251 | ~v357) & (~v251 | ~v358) & (~v251 | ~v372) & (~v251 | ~v373) & (~v251 | ~v374) & (~v251 | ~v375) & (~v251 | ~v376) & (~v251 | ~v377) & (~v251 | ~v378) & (~v251 | ~v379) & (~v251 | ~v380) & (~v252 | ~v253) & (~v252 | ~v348) & (~v252 | ~v350) & (~v252 | ~v351) & (~v252 | ~v352) & (~v252 | ~v353) & (~v252 | ~v356) & (~v252 | ~v357) & (~v252 | ~v358) & (~v252 | ~v372) & (~v252 | ~v373) & (~v252 | ~v374) & (~v252 | ~v375) & (~v252 | ~v376) & (~v252 | ~v377) & (~v252 | ~v378) & (~v252 | ~v379) & (~v252 | ~v380) & (~v253 | ~v348) & (~v253 | ~v350) & (~v253 | ~v351) & (~v253 | ~v352) & (~v253 | ~v353) & (~v253 | ~v356) & (~v253 | ~v357) & (~v253 | ~v358) & (~v253 | ~v372) & (~v253 | ~v373) & (~v253 | ~v374) & (~v253 | ~v375) & (~v253 | ~v376) & (~v253 | ~v377) & (~v253 | ~v378) & (~v253 | ~v379) & (~v253 | ~v380) & (~v348 | ~v350) & (~v348 | ~v351) & (~v348 | ~v352) & (~v348 | ~v353) & (~v348 | ~v356) & (~v348 | ~v357) & (~v348 | ~v358) & (~v348 | ~v372) & (~v348 | ~v373) & (~v348 | ~v374) & (~v348 | ~v375) & (~v348 | ~v376) & (~v348 | ~v377) & (~v348 | ~v378) & (~v348 | ~v379) & (~v348 | ~v380) & (~v350 | ~v351) & (~v350 | ~v352) & (~v350 | ~v353) & (~v350 | ~v356) & (~v350 | ~v357) & (~v350 | ~v358) & (~v350 | ~v372) & (~v350 | ~v373) & (~v350 | ~v374) & (~v350 | ~v375) & (~v350 | ~v376) & (~v350 | ~v377) & (~v350 | ~v378) & (~v350 | ~v379) & (~v350 | ~v380) & (~v351 | ~v352) & (~v351 | ~v353) & (~v351 | ~v356) & (~v351 | ~v357) & (~v351 | ~v358) & (~v351 | ~v372) & (~v351 | ~v373) & (~v351 | ~v374) & (~v351 | ~v375) & (~v351 | ~v376) & (~v351 | ~v377) & (~v351 | ~v378) & (~v351 | ~v379) & (~v351 | ~v380) & (~v352 | ~v353) & (~v352 | ~v356) & (~v352 | ~v357) & (~v352 | ~v358) & (~v352 | ~v372) & (~v352 | ~v373) & (~v352 | ~v374) & (~v352 | ~v375) & (~v352 | ~v376) & (~v352 | ~v377) & (~v352 | ~v378) & (~v352 | ~v379) & (~v352 | ~v380) & (~v353 | ~v356) & (~v353 | ~v357) & (~v353 | ~v358) & (~v353 | ~v372) & (~v353 | ~v373) & (~v353 | ~v374) & (~v353 | ~v375) & (~v353 | ~v376) & (~v353 | ~v377) & (~v353 | ~v378) & (~v353 | ~v379) & (~v353 | ~v380) & (~v356 | ~v357) & (~v356 | ~v358) & (~v356 | ~v372) & (~v356 | ~v373) & (~v356 | ~v374) & (~v356 | ~v375) & (~v356 | ~v376) & (~v356 | ~v377) & (~v356 | ~v378) & (~v356 | ~v379) & (~v356 | ~v380) & (~v357 | ~v358) & (~v357 | ~v372) & (~v357 | ~v373) & (~v357 | ~v374) & (~v357 | ~v375) & (~v357 | ~v376) & (~v357 | ~v377) & (~v357 | ~v378) & (~v357 | ~v379) & (~v357 | ~v380) & (~v358 | ~v372) & (~v358 | ~v373) & (~v358 | ~v374) & (~v358 | ~v375) & (~v358 | ~v376) & (~v358 | ~v377) & (~v358 | ~v378) & (~v358 | ~v379) & (~v358 | ~v380) & (~v372 | ~v373) & (~v372 | ~v374) & (~v372 | ~v375) & (~v372 | ~v376) & (~v372 | ~v377) & (~v372 | ~v378) & (~v372 | ~v379) & (~v372 | ~v380) & (~v373 | ~v374) & (~v373 | ~v375) & (~v373 | ~v376) & (~v373 | ~v377) & (~v373 | ~v378) & (~v373 | ~v379) & (~v373 | ~v380) & (~v374 | ~v375) & (~v374 | ~v376) & (~v374 | ~v377) & (~v374 | ~v378) & (~v374 | ~v379) & (~v374 | ~v380) & (~v375 | ~v376) & (~v375 | ~v377) & (~v375 | ~v378) & (~v375 | ~v379) & (~v375 | ~v380) & (~v376 | ~v377) & (~v376 | ~v378) & (~v376 | ~v379) & (~v376 | ~v380) & (~v377 | ~v378) & (~v377 | ~v379) & (~v377 | ~v380) & (~v378 | ~v379) & (~v378 | ~v380) & (~v379 | ~v380) & (~v260 | ~v261) & (~v260 | ~v262) & (~v260 | ~v263) & (~v260 | ~v264) & (~v260 | ~v266) & (~v260 | ~v267) & (~v260 | ~v268) & (~v260 | ~v285) & (~v260 | ~v293) & (~v260 | ~v305) & (~v260 | ~v330) & (~v261 | ~v262) & (~v261 | ~v263) & (~v261 | ~v264) & (~v261 | ~v266) & (~v261 | ~v267) & (~v261 | ~v268) & (~v261 | ~v285) & (~v261 | ~v293) & (~v261 | ~v305) & (~v261 | ~v330) & (~v262 | ~v263) & (~v262 | ~v264) & (~v262 | ~v266) & (~v262 | ~v267) & (~v262 | ~v268) & (~v262 | ~v285) & (~v262 | ~v293) & (~v262 | ~v305) & (~v262 | ~v330) & (~v263 | ~v264) & (~v263 | ~v266) & (~v263 | ~v267) & (~v263 | ~v268) & (~v263 | ~v285) & (~v263 | ~v293) & (~v263 | ~v305) & (~v263 | ~v330) & (~v264 | ~v266) & (~v264 | ~v267) & (~v264 | ~v268) & (~v264 | ~v285) & (~v264 | ~v293) & (~v264 | ~v305) & (~v264 | ~v330) & (~v266 | ~v267) & (~v266 | ~v268) & (~v266 | ~v285) & (~v266 | ~v293) & (~v266 | ~v305) & (~v266 | ~v330) & (~v267 | ~v268) & (~v267 | ~v285) & (~v267 | ~v293) & (~v267 | ~v305) & (~v267 | ~v330) & (~v268 | ~v285) & (~v268 | ~v293) & (~v268 | ~v305) & (~v268 | ~v330) & (~v285 | ~v293) & (~v285 | ~v305) & (~v285 | ~v330) & (~v293 | ~v305) & (~v293 | ~v330) & (~v305 | ~v330) & (~v265 | ~v269) & (~v265 | ~v270) & (~v265 | ~v271) & (~v265 | ~v272) & (~v265 | ~v273) & (~v265 | ~v274) & (~v265 | ~v275) & (~v265 | ~v276) & (~v265 | ~v277) & (~v265 | ~v278) & (~v265 | ~v279) & (~v265 | ~v280) & (~v265 | ~v281) & (~v265 | ~v282) & (~v265 | ~v283) & (~v265 | ~v284) & (~v265 | ~v286) & (~v265 | ~v287) & (~v265 | ~v288) & (~v265 | ~v289) & (~v265 | ~v290) & (~v265 | ~v291) & (~v265 | ~v292) & (~v265 | ~v294) & (~v265 | ~v295) & (~v265 | ~v296) & (~v265 | ~v297) & (~v265 | ~v298) & (~v265 | ~v299) & (~v265 | ~v300) & (~v265 | ~v301) & (~v265 | ~v302) & (~v265 | ~v303) & (~v265 | ~v304) & (~v265 | ~v306) & (~v265 | ~v307) & (~v265 | ~v308) & (~v265 | ~v309) & (~v265 | ~v310) & (~v265 | ~v311) & (~v265 | ~v312) & (~v265 | ~v313) & (~v265 | ~v314) & (~v265 | ~v315) & (~v265 | ~v316) & (~v265 | ~v317) & (~v265 | ~v318) & (~v265 | ~v319) & (~v265 | ~v320) & (~v265 | ~v321) & (~v265 | ~v322) & (~v265 | ~v323) & (~v265 | ~v324) & (~v265 | ~v325) & (~v265 | ~v326) & (~v265 | ~v327) & (~v265 | ~v328) & (~v265 | ~v329) & (~v265 | ~v331) & (~v265 | ~v332) & (~v265 | ~v333) & (~v265 | ~v334) & (~v265 | ~v335) & (~v265 | ~v336) & (~v265 | ~v337) & (~v265 | ~v338) & (~v265 | ~v339) & (~v265 | ~v340) & (~v265 | ~v341) & (~v269 | ~v270) & (~v269 | ~v271) & (~v269 | ~v272) & (~v269 | ~v273) & (~v269 | ~v274) & (~v269 | ~v275) & (~v269 | ~v276) & (~v269 | ~v277) & (~v269 | ~v278) & (~v269 | ~v279) & (~v269 | ~v280) & (~v269 | ~v281) & (~v269 | ~v282) & (~v269 | ~v283) & (~v269 | ~v284) & (~v269 | ~v286) & (~v269 | ~v287) & (~v269 | ~v288) & (~v269 | ~v289) & (~v269 | ~v290) & (~v269 | ~v291) & (~v269 | ~v292) & (~v269 | ~v294) & (~v269 | ~v295) & (~v269 | ~v296) & (~v269 | ~v297) & (~v269 | ~v298) & (~v269 | ~v299) & (~v269 | ~v300) & (~v269 | ~v301) & (~v269 | ~v302) & (~v269 | ~v303) & (~v269 | ~v304) & (~v269 | ~v306) & (~v269 | ~v307) & (~v269 | ~v308) & (~v269 | ~v309) & (~v269 | ~v310) & (~v269 | ~v311) & (~v269 | ~v312) & (~v269 | ~v313) & (~v269 | ~v314) & (~v269 | ~v315) & (~v269 | ~v316) & (~v269 | ~v317) & (~v269 | ~v318) & (~v269 | ~v319) & (~v269 | ~v320) & (~v269 | ~v321) & (~v269 | ~v322) & (~v269 | ~v323) & (~v269 | ~v324) & (~v269 | ~v325) & (~v269 | ~v326) & (~v269 | ~v327) & (~v269 | ~v328) & (~v269 | ~v329) & (~v269 | ~v331) & (~v269 | ~v332) & (~v269 | ~v333) & (~v269 | ~v334) & (~v269 | ~v335) & (~v269 | ~v336) & (~v269 | ~v337) & (~v269 | ~v338) & (~v269 | ~v339) & (~v269 | ~v340) & (~v269 | ~v341) & (~v270 | ~v271) & (~v270 | ~v272) & (~v270 | ~v273) & (~v270 | ~v274) & (~v270 | ~v275) & (~v270 | ~v276) & (~v270 | ~v277) & (~v270 | ~v278) & (~v270 | ~v279) & (~v270 | ~v280) & (~v270 | ~v281) & (~v270 | ~v282) & (~v270 | ~v283) & (~v270 | ~v284) & (~v270 | ~v286) & (~v270 | ~v287) & (~v270 | ~v288) & (~v270 | ~v289) & (~v270 | ~v290) & (~v270 | ~v291) & (~v270 | ~v292) & (~v270 | ~v294) & (~v270 | ~v295) & (~v270 | ~v296) & (~v270 | ~v297) & (~v270 | ~v298) & (~v270 | ~v299) & (~v270 | ~v300) & (~v270 | ~v301) & (~v270 | ~v302) & (~v270 | ~v303) & (~v270 | ~v304) & (~v270 | ~v306) & (~v270 | ~v307) & (~v270 | ~v308) & (~v270 | ~v309) & (~v270 | ~v310) & (~v270 | ~v311) & (~v270 | ~v312) & (~v270 | ~v313) & (~v270 | ~v314) & (~v270 | ~v315) & (~v270 | ~v316) & (~v270 | ~v317) & (~v270 | ~v318) & (~v270 | ~v319) & (~v270 | ~v320) & (~v270 | ~v321) & (~v270 | ~v322) & (~v270 | ~v323) & (~v270 | ~v324) & (~v270 | ~v325) & (~v270 | ~v326) & (~v270 | ~v327) & (~v270 | ~v328) & (~v270 | ~v329) & (~v270 | ~v331) & (~v270 | ~v332) & (~v270 | ~v333) & (~v270 | ~v334) & (~v270 | ~v335) & (~v270 | ~v336) & (~v270 | ~v337) & (~v270 | ~v338) & (~v270 | ~v339) & (~v270 | ~v340) & (~v270 | ~v341) & (~v271 | ~v272) & (~v271 | ~v273) & (~v271 | ~v274) & (~v271 | ~v275) & (~v271 | ~v276) & (~v271 | ~v277) & (~v271 | ~v278) & (~v271 | ~v279) & (~v271 | ~v280) & (~v271 | ~v281) & (~v271 | ~v282) & (~v271 | ~v283) & (~v271 | ~v284) & (~v271 | ~v286) & (~v271 | ~v287) & (~v271 | ~v288) & (~v271 | ~v289) & (~v271 | ~v290) & (~v271 | ~v291) & (~v271 | ~v292) & (~v271 | ~v294) & (~v271 | ~v295) & (~v271 | ~v296) & (~v271 | ~v297) & (~v271 | ~v298) & (~v271 | ~v299) & (~v271 | ~v300) & (~v271 | ~v301) & (~v271 | ~v302) & (~v271 | ~v303) & (~v271 | ~v304) & (~v271 | ~v306) & (~v271 | ~v307) & (~v271 | ~v308) & (~v271 | ~v309) & (~v271 | ~v310) & (~v271 | ~v311) & (~v271 | ~v312) & (~v271 | ~v313) & (~v271 | ~v314) & (~v271 | ~v315) & (~v271 | ~v316) & (~v271 | ~v317) & (~v271 | ~v318) & (~v271 | ~v319) & (~v271 | ~v320) & (~v271 | ~v321) & (~v271 | ~v322) & (~v271 | ~v323) & (~v271 | ~v324) & (~v271 | ~v325) & (~v271 | ~v326) & (~v271 | ~v327) & (~v271 | ~v328) & (~v271 | ~v329) & (~v271 | ~v331) & (~v271 | ~v332) & (~v271 | ~v333) & (~v271 | ~v334) & (~v271 | ~v335) & (~v271 | ~v336) & (~v271 | ~v337) & (~v271 | ~v338) & (~v271 | ~v339) & (~v271 | ~v340) & (~v271 | ~v341) & (~v272 | ~v273) & (~v272 | ~v274) & (~v272 | ~v275) & (~v272 | ~v276) & (~v272 | ~v277) & (~v272 | ~v278) & (~v272 | ~v279) & (~v272 | ~v280) & (~v272 | ~v281) & (~v272 | ~v282) & (~v272 | ~v283) & (~v272 | ~v284) & (~v272 | ~v286) & (~v272 | ~v287) & (~v272 | ~v288) & (~v272 | ~v289) & (~v272 | ~v290) & (~v272 | ~v291) & (~v272 | ~v292) & (~v272 | ~v294) & (~v272 | ~v295) & (~v272 | ~v296) & (~v272 | ~v297) & (~v272 | ~v298) & (~v272 | ~v299) & (~v272 | ~v300) & (~v272 | ~v301) & (~v272 | ~v302) & (~v272 | ~v303) & (~v272 | ~v304) & (~v272 | ~v306) & (~v272 | ~v307) & (~v272 | ~v308) & (~v272 | ~v309) & (~v272 | ~v310) & (~v272 | ~v311) & (~v272 | ~v312) & (~v272 | ~v313) & (~v272 | ~v314) & (~v272 | ~v315) & (~v272 | ~v316) & (~v272 | ~v317) & (~v272 | ~v318) & (~v272 | ~v319) & (~v272 | ~v320) & (~v272 | ~v321) & (~v272 | ~v322) & (~v272 | ~v323) & (~v272 | ~v324) & (~v272 | ~v325) & (~v272 | ~v326) & (~v272 | ~v327) & (~v272 | ~v328) & (~v272 | ~v329) & (~v272 | ~v331) & (~v272 | ~v332) & (~v272 | ~v333) & (~v272 | ~v334) & (~v272 | ~v335) & (~v272 | ~v336) & (~v272 | ~v337) & (~v272 | ~v338) & (~v272 | ~v339) & (~v272 | ~v340) & (~v272 | ~v341) & (~v273 | ~v274) & (~v273 | ~v275) & (~v273 | ~v276) & (~v273 | ~v277) & (~v273 | ~v278) & (~v273 | ~v279) & (~v273 | ~v280) & (~v273 | ~v281) & (~v273 | ~v282) & (~v273 | ~v283) & (~v273 | ~v284) & (~v273 | ~v286) & (~v273 | ~v287) & (~v273 | ~v288) & (~v273 | ~v289) & (~v273 | ~v290) & (~v273 | ~v291) & (~v273 | ~v292) & (~v273 | ~v294) & (~v273 | ~v295) & (~v273 | ~v296) & (~v273 | ~v297) & (~v273 | ~v298) & (~v273 | ~v299) & (~v273 | ~v300) & (~v273 | ~v301) & (~v273 | ~v302) & (~v273 | ~v303) & (~v273 | ~v304) & (~v273 | ~v306) & (~v273 | ~v307) & (~v273 | ~v308) & (~v273 | ~v309) & (~v273 | ~v310) & (~v273 | ~v311) & (~v273 | ~v312) & (~v273 | ~v313) & (~v273 | ~v314) & (~v273 | ~v315) & (~v273 | ~v316) & (~v273 | ~v317) & (~v273 | ~v318) & (~v273 | ~v319) & (~v273 | ~v320) & (~v273 | ~v321) & (~v273 | ~v322) & (~v273 | ~v323) & (~v273 | ~v324) & (~v273 | ~v325) & (~v273 | ~v326) & (~v273 | ~v327) & (~v273 | ~v328) & (~v273 | ~v329) & (~v273 | ~v331) & (~v273 | ~v332) & (~v273 | ~v333) & (~v273 | ~v334) & (~v273 | ~v335) & (~v273 | ~v336) & (~v273 | ~v337) & (~v273 | ~v338) & (~v273 | ~v339) & (~v273 | ~v340) & (~v273 | ~v341) & (~v274 | ~v275) & (~v274 | ~v276) & (~v274 | ~v277) & (~v274 | ~v278) & (~v274 | ~v279) & (~v274 | ~v280) & (~v274 | ~v281) & (~v274 | ~v282) & (~v274 | ~v283) & (~v274 | ~v284) & (~v274 | ~v286) & (~v274 | ~v287) & (~v274 | ~v288) & (~v274 | ~v289) & (~v274 | ~v290) & (~v274 | ~v291) & (~v274 | ~v292) & (~v274 | ~v294) & (~v274 | ~v295) & (~v274 | ~v296) & (~v274 | ~v297) & (~v274 | ~v298) & (~v274 | ~v299) & (~v274 | ~v300) & (~v274 | ~v301) & (~v274 | ~v302) & (~v274 | ~v303) & (~v274 | ~v304) & (~v274 | ~v306) & (~v274 | ~v307) & (~v274 | ~v308) & (~v274 | ~v309) & (~v274 | ~v310) & (~v274 | ~v311) & (~v274 | ~v312) & (~v274 | ~v313) & (~v274 | ~v314) & (~v274 | ~v315) & (~v274 | ~v316) & (~v274 | ~v317) & (~v274 | ~v318) & (~v274 | ~v319) & (~v274 | ~v320) & (~v274 | ~v321) & (~v274 | ~v322) & (~v274 | ~v323) & (~v274 | ~v324) & (~v274 | ~v325) & (~v274 | ~v326) & (~v274 | ~v327) & (~v274 | ~v328) & (~v274 | ~v329) & (~v274 | ~v331) & (~v274 | ~v332) & (~v274 | ~v333) & (~v274 | ~v334) & (~v274 | ~v335) & (~v274 | ~v336) & (~v274 | ~v337) & (~v274 | ~v338) & (~v274 | ~v339) & (~v274 | ~v340) & (~v274 | ~v341) & (~v275 | ~v276) & (~v275 | ~v277) & (~v275 | ~v278) & (~v275 | ~v279) & (~v275 | ~v280) & (~v275 | ~v281) & (~v275 | ~v282) & (~v275 | ~v283) & (~v275 | ~v284) & (~v275 | ~v286) & (~v275 | ~v287) & (~v275 | ~v288) & (~v275 | ~v289) & (~v275 | ~v290) & (~v275 | ~v291) & (~v275 | ~v292) & (~v275 | ~v294) & (~v275 | ~v295) & (~v275 | ~v296) & (~v275 | ~v297) & (~v275 | ~v298) & (~v275 | ~v299) & (~v275 | ~v300) & (~v275 | ~v301) & (~v275 | ~v302) & (~v275 | ~v303) & (~v275 | ~v304) & (~v275 | ~v306) & (~v275 | ~v307) & (~v275 | ~v308) & (~v275 | ~v309) & (~v275 | ~v310) & (~v275 | ~v311) & (~v275 | ~v312) & (~v275 | ~v313) & (~v275 | ~v314) & (~v275 | ~v315) & (~v275 | ~v316) & (~v275 | ~v317) & (~v275 | ~v318) & (~v275 | ~v319) & (~v275 | ~v320) & (~v275 | ~v321) & (~v275 | ~v322) & (~v275 | ~v323) & (~v275 | ~v324) & (~v275 | ~v325) & (~v275 | ~v326) & (~v275 | ~v327) & (~v275 | ~v328) & (~v275 | ~v329) & (~v275 | ~v331) & (~v275 | ~v332) & (~v275 | ~v333) & (~v275 | ~v334) & (~v275 | ~v335) & (~v275 | ~v336) & (~v275 | ~v337) & (~v275 | ~v338) & (~v275 | ~v339) & (~v275 | ~v340) & (~v275 | ~v341) & (~v276 | ~v277) & (~v276 | ~v278) & (~v276 | ~v279) & (~v276 | ~v280) & (~v276 | ~v281) & (~v276 | ~v282) & (~v276 | ~v283) & (~v276 | ~v284) & (~v276 | ~v286) & (~v276 | ~v287) & (~v276 | ~v288) & (~v276 | ~v289) & (~v276 | ~v290) & (~v276 | ~v291) & (~v276 | ~v292) & (~v276 | ~v294) & (~v276 | ~v295) & (~v276 | ~v296) & (~v276 | ~v297) & (~v276 | ~v298) & (~v276 | ~v299) & (~v276 | ~v300) & (~v276 | ~v301) & (~v276 | ~v302) & (~v276 | ~v303) & (~v276 | ~v304) & (~v276 | ~v306) & (~v276 | ~v307) & (~v276 | ~v308) & (~v276 | ~v309) & (~v276 | ~v310) & (~v276 | ~v311) & (~v276 | ~v312) & (~v276 | ~v313) & (~v276 | ~v314) & (~v276 | ~v315) & (~v276 | ~v316) & (~v276 | ~v317) & (~v276 | ~v318) & (~v276 | ~v319) & (~v276 | ~v320) & (~v276 | ~v321) & (~v276 | ~v322) & (~v276 | ~v323) & (~v276 | ~v324) & (~v276 | ~v325) & (~v276 | ~v326) & (~v276 | ~v327) & (~v276 | ~v328) & (~v276 | ~v329) & (~v276 | ~v331) & (~v276 | ~v332) & (~v276 | ~v333) & (~v276 | ~v334) & (~v276 | ~v335) & (~v276 | ~v336) & (~v276 | ~v337) & (~v276 | ~v338) & (~v276 | ~v339) & (~v276 | ~v340) & (~v276 | ~v341) & (~v277 | ~v278) & (~v277 | ~v279) & (~v277 | ~v280) & (~v277 | ~v281) & (~v277 | ~v282) & (~v277 | ~v283) & (~v277 | ~v284) & (~v277 | ~v286) & (~v277 | ~v287) & (~v277 | ~v288) & (~v277 | ~v289) & (~v277 | ~v290) & (~v277 | ~v291) & (~v277 | ~v292) & (~v277 | ~v294) & (~v277 | ~v295) & (~v277 | ~v296) & (~v277 | ~v297) & (~v277 | ~v298) & (~v277 | ~v299) & (~v277 | ~v300) & (~v277 | ~v301) & (~v277 | ~v302) & (~v277 | ~v303) & (~v277 | ~v304) & (~v277 | ~v306) & (~v277 | ~v307) & (~v277 | ~v308) & (~v277 | ~v309) & (~v277 | ~v310) & (~v277 | ~v311) & (~v277 | ~v312) & (~v277 | ~v313) & (~v277 | ~v314) & (~v277 | ~v315) & (~v277 | ~v316) & (~v277 | ~v317) & (~v277 | ~v318) & (~v277 | ~v319) & (~v277 | ~v320) & (~v277 | ~v321) & (~v277 | ~v322) & (~v277 | ~v323) & (~v277 | ~v324) & (~v277 | ~v325) & (~v277 | ~v326) & (~v277 | ~v327) & (~v277 | ~v328) & (~v277 | ~v329) & (~v277 | ~v331) & (~v277 | ~v332) & (~v277 | ~v333) & (~v277 | ~v334) & (~v277 | ~v335) & (~v277 | ~v336) & (~v277 | ~v337) & (~v277 | ~v338) & (~v277 | ~v339) & (~v277 | ~v340) & (~v277 | ~v341) & (~v278 | ~v279) & (~v278 | ~v280) & (~v278 | ~v281) & (~v278 | ~v282) & (~v278 | ~v283) & (~v278 | ~v284) & (~v278 | ~v286) & (~v278 | ~v287) & (~v278 | ~v288) & (~v278 | ~v289) & (~v278 | ~v290) & (~v278 | ~v291) & (~v278 | ~v292) & (~v278 | ~v294) & (~v278 | ~v295) & (~v278 | ~v296) & (~v278 | ~v297) & (~v278 | ~v298) & (~v278 | ~v299) & (~v278 | ~v300) & (~v278 | ~v301) & (~v278 | ~v302) & (~v278 | ~v303) & (~v278 | ~v304) & (~v278 | ~v306) & (~v278 | ~v307) & (~v278 | ~v308) & (~v278 | ~v309) & (~v278 | ~v310) & (~v278 | ~v311) & (~v278 | ~v312) & (~v278 | ~v313) & (~v278 | ~v314) & (~v278 | ~v315) & (~v278 | ~v316) & (~v278 | ~v317) & (~v278 | ~v318) & (~v278 | ~v319) & (~v278 | ~v320) & (~v278 | ~v321) & (~v278 | ~v322) & (~v278 | ~v323) & (~v278 | ~v324) & (~v278 | ~v325) & (~v278 | ~v326) & (~v278 | ~v327) & (~v278 | ~v328) & (~v278 | ~v329) & (~v278 | ~v331) & (~v278 | ~v332) & (~v278 | ~v333) & (~v278 | ~v334) & (~v278 | ~v335) & (~v278 | ~v336) & (~v278 | ~v337) & (~v278 | ~v338) & (~v278 | ~v339) & (~v278 | ~v340) & (~v278 | ~v341) & (~v279 | ~v280) & (~v279 | ~v281) & (~v279 | ~v282) & (~v279 | ~v283) & (~v279 | ~v284) & (~v279 | ~v286) & (~v279 | ~v287) & (~v279 | ~v288) & (~v279 | ~v289) & (~v279 | ~v290) & (~v279 | ~v291) & (~v279 | ~v292) & (~v279 | ~v294) & (~v279 | ~v295) & (~v279 | ~v296) & (~v279 | ~v297) & (~v279 | ~v298) & (~v279 | ~v299) & (~v279 | ~v300) & (~v279 | ~v301) & (~v279 | ~v302) & (~v279 | ~v303) & (~v279 | ~v304) & (~v279 | ~v306) & (~v279 | ~v307) & (~v279 | ~v308) & (~v279 | ~v309) & (~v279 | ~v310) & (~v279 | ~v311) & (~v279 | ~v312) & (~v279 | ~v313) & (~v279 | ~v314) & (~v279 | ~v315) & (~v279 | ~v316) & (~v279 | ~v317) & (~v279 | ~v318) & (~v279 | ~v319) & (~v279 | ~v320) & (~v279 | ~v321) & (~v279 | ~v322) & (~v279 | ~v323) & (~v279 | ~v324) & (~v279 | ~v325) & (~v279 | ~v326) & (~v279 | ~v327) & (~v279 | ~v328) & (~v279 | ~v329) & (~v279 | ~v331) & (~v279 | ~v332) & (~v279 | ~v333) & (~v279 | ~v334) & (~v279 | ~v335) & (~v279 | ~v336) & (~v279 | ~v337) & (~v279 | ~v338) & (~v279 | ~v339) & (~v279 | ~v340) & (~v279 | ~v341) & (~v280 | ~v281) & (~v280 | ~v282) & (~v280 | ~v283) & (~v280 | ~v284) & (~v280 | ~v286) & (~v280 | ~v287) & (~v280 | ~v288) & (~v280 | ~v289) & (~v280 | ~v290) & (~v280 | ~v291) & (~v280 | ~v292) & (~v280 | ~v294) & (~v280 | ~v295) & (~v280 | ~v296) & (~v280 | ~v297) & (~v280 | ~v298) & (~v280 | ~v299) & (~v280 | ~v300) & (~v280 | ~v301) & (~v280 | ~v302) & (~v280 | ~v303) & (~v280 | ~v304) & (~v280 | ~v306) & (~v280 | ~v307) & (~v280 | ~v308) & (~v280 | ~v309) & (~v280 | ~v310) & (~v280 | ~v311) & (~v280 | ~v312) & (~v280 | ~v313) & (~v280 | ~v314) & (~v280 | ~v315) & (~v280 | ~v316) & (~v280 | ~v317) & (~v280 | ~v318) & (~v280 | ~v319) & (~v280 | ~v320) & (~v280 | ~v321) & (~v280 | ~v322) & (~v280 | ~v323) & (~v280 | ~v324) & (~v280 | ~v325) & (~v280 | ~v326) & (~v280 | ~v327) & (~v280 | ~v328) & (~v280 | ~v329) & (~v280 | ~v331) & (~v280 | ~v332) & (~v280 | ~v333) & (~v280 | ~v334) & (~v280 | ~v335) & (~v280 | ~v336) & (~v280 | ~v337) & (~v280 | ~v338) & (~v280 | ~v339) & (~v280 | ~v340) & (~v280 | ~v341) & (~v281 | ~v282) & (~v281 | ~v283) & (~v281 | ~v284) & (~v281 | ~v286) & (~v281 | ~v287) & (~v281 | ~v288) & (~v281 | ~v289) & (~v281 | ~v290) & (~v281 | ~v291) & (~v281 | ~v292) & (~v281 | ~v294) & (~v281 | ~v295) & (~v281 | ~v296) & (~v281 | ~v297) & (~v281 | ~v298) & (~v281 | ~v299) & (~v281 | ~v300) & (~v281 | ~v301) & (~v281 | ~v302) & (~v281 | ~v303) & (~v281 | ~v304) & (~v281 | ~v306) & (~v281 | ~v307) & (~v281 | ~v308) & (~v281 | ~v309) & (~v281 | ~v310) & (~v281 | ~v311) & (~v281 | ~v312) & (~v281 | ~v313) & (~v281 | ~v314) & (~v281 | ~v315) & (~v281 | ~v316) & (~v281 | ~v317) & (~v281 | ~v318) & (~v281 | ~v319) & (~v281 | ~v320) & (~v281 | ~v321) & (~v281 | ~v322) & (~v281 | ~v323) & (~v281 | ~v324) & (~v281 | ~v325) & (~v281 | ~v326) & (~v281 | ~v327) & (~v281 | ~v328) & (~v281 | ~v329) & (~v281 | ~v331) & (~v281 | ~v332) & (~v281 | ~v333) & (~v281 | ~v334) & (~v281 | ~v335) & (~v281 | ~v336) & (~v281 | ~v337) & (~v281 | ~v338) & (~v281 | ~v339) & (~v281 | ~v340) & (~v281 | ~v341) & (~v282 | ~v283) & (~v282 | ~v284) & (~v282 | ~v286) & (~v282 | ~v287) & (~v282 | ~v288) & (~v282 | ~v289) & (~v282 | ~v290) & (~v282 | ~v291) & (~v282 | ~v292) & (~v282 | ~v294) & (~v282 | ~v295) & (~v282 | ~v296) & (~v282 | ~v297) & (~v282 | ~v298) & (~v282 | ~v299) & (~v282 | ~v300) & (~v282 | ~v301) & (~v282 | ~v302) & (~v282 | ~v303) & (~v282 | ~v304) & (~v282 | ~v306) & (~v282 | ~v307) & (~v282 | ~v308) & (~v282 | ~v309) & (~v282 | ~v310) & (~v282 | ~v311) & (~v282 | ~v312) & (~v282 | ~v313) & (~v282 | ~v314) & (~v282 | ~v315) & (~v282 | ~v316) & (~v282 | ~v317) & (~v282 | ~v318) & (~v282 | ~v319) & (~v282 | ~v320) & (~v282 | ~v321) & (~v282 | ~v322) & (~v282 | ~v323) & (~v282 | ~v324) & (~v282 | ~v325) & (~v282 | ~v326) & (~v282 | ~v327) & (~v282 | ~v328) & (~v282 | ~v329) & (~v282 | ~v331) & (~v282 | ~v332) & (~v282 | ~v333) & (~v282 | ~v334) & (~v282 | ~v335) & (~v282 | ~v336) & (~v282 | ~v337) & (~v282 | ~v338) & (~v282 | ~v339) & (~v282 | ~v340) & (~v282 | ~v341) & (~v283 | ~v284) & (~v283 | ~v286) & (~v283 | ~v287) & (~v283 | ~v288) & (~v283 | ~v289) & (~v283 | ~v290) & (~v283 | ~v291) & (~v283 | ~v292) & (~v283 | ~v294) & (~v283 | ~v295) & (~v283 | ~v296) & (~v283 | ~v297) & (~v283 | ~v298) & (~v283 | ~v299) & (~v283 | ~v300) & (~v283 | ~v301) & (~v283 | ~v302) & (~v283 | ~v303) & (~v283 | ~v304) & (~v283 | ~v306) & (~v283 | ~v307) & (~v283 | ~v308) & (~v283 | ~v309) & (~v283 | ~v310) & (~v283 | ~v311) & (~v283 | ~v312) & (~v283 | ~v313) & (~v283 | ~v314) & (~v283 | ~v315) & (~v283 | ~v316) & (~v283 | ~v317) & (~v283 | ~v318) & (~v283 | ~v319) & (~v283 | ~v320) & (~v283 | ~v321) & (~v283 | ~v322) & (~v283 | ~v323) & (~v283 | ~v324) & (~v283 | ~v325) & (~v283 | ~v326) & (~v283 | ~v327) & (~v283 | ~v328) & (~v283 | ~v329) & (~v283 | ~v331) & (~v283 | ~v332) & (~v283 | ~v333) & (~v283 | ~v334) & (~v283 | ~v335) & (~v283 | ~v336) & (~v283 | ~v337) & (~v283 | ~v338) & (~v283 | ~v339) & (~v283 | ~v340) & (~v283 | ~v341) & (~v284 | ~v286) & (~v284 | ~v287) & (~v284 | ~v288) & (~v284 | ~v289) & (~v284 | ~v290) & (~v284 | ~v291) & (~v284 | ~v292) & (~v284 | ~v294) & (~v284 | ~v295) & (~v284 | ~v296) & (~v284 | ~v297) & (~v284 | ~v298) & (~v284 | ~v299) & (~v284 | ~v300) & (~v284 | ~v301) & (~v284 | ~v302) & (~v284 | ~v303) & (~v284 | ~v304) & (~v284 | ~v306) & (~v284 | ~v307) & (~v284 | ~v308) & (~v284 | ~v309) & (~v284 | ~v310) & (~v284 | ~v311) & (~v284 | ~v312) & (~v284 | ~v313) & (~v284 | ~v314) & (~v284 | ~v315) & (~v284 | ~v316) & (~v284 | ~v317) & (~v284 | ~v318) & (~v284 | ~v319) & (~v284 | ~v320) & (~v284 | ~v321) & (~v284 | ~v322) & (~v284 | ~v323) & (~v284 | ~v324) & (~v284 | ~v325) & (~v284 | ~v326) & (~v284 | ~v327) & (~v284 | ~v328) & (~v284 | ~v329) & (~v284 | ~v331) & (~v284 | ~v332) & (~v284 | ~v333) & (~v284 | ~v334) & (~v284 | ~v335) & (~v284 | ~v336) & (~v284 | ~v337) & (~v284 | ~v338) & (~v284 | ~v339) & (~v284 | ~v340) & (~v284 | ~v341) & (~v286 | ~v287) & (~v286 | ~v288) & (~v286 | ~v289) & (~v286 | ~v290) & (~v286 | ~v291) & (~v286 | ~v292) & (~v286 | ~v294) & (~v286 | ~v295) & (~v286 | ~v296) & (~v286 | ~v297) & (~v286 | ~v298) & (~v286 | ~v299) & (~v286 | ~v300) & (~v286 | ~v301) & (~v286 | ~v302) & (~v286 | ~v303) & (~v286 | ~v304) & (~v286 | ~v306) & (~v286 | ~v307) & (~v286 | ~v308) & (~v286 | ~v309) & (~v286 | ~v310) & (~v286 | ~v311) & (~v286 | ~v312) & (~v286 | ~v313) & (~v286 | ~v314) & (~v286 | ~v315) & (~v286 | ~v316) & (~v286 | ~v317) & (~v286 | ~v318) & (~v286 | ~v319) & (~v286 | ~v320) & (~v286 | ~v321) & (~v286 | ~v322) & (~v286 | ~v323) & (~v286 | ~v324) & (~v286 | ~v325) & (~v286 | ~v326) & (~v286 | ~v327) & (~v286 | ~v328) & (~v286 | ~v329) & (~v286 | ~v331) & (~v286 | ~v332) & (~v286 | ~v333) & (~v286 | ~v334) & (~v286 | ~v335) & (~v286 | ~v336) & (~v286 | ~v337) & (~v286 | ~v338) & (~v286 | ~v339) & (~v286 | ~v340) & (~v286 | ~v341) & (~v287 | ~v288) & (~v287 | ~v289) & (~v287 | ~v290) & (~v287 | ~v291) & (~v287 | ~v292) & (~v287 | ~v294) & (~v287 | ~v295) & (~v287 | ~v296) & (~v287 | ~v297) & (~v287 | ~v298) & (~v287 | ~v299) & (~v287 | ~v300) & (~v287 | ~v301) & (~v287 | ~v302) & (~v287 | ~v303) & (~v287 | ~v304) & (~v287 | ~v306) & (~v287 | ~v307) & (~v287 | ~v308) & (~v287 | ~v309) & (~v287 | ~v310) & (~v287 | ~v311) & (~v287 | ~v312) & (~v287 | ~v313) & (~v287 | ~v314) & (~v287 | ~v315) & (~v287 | ~v316) & (~v287 | ~v317) & (~v287 | ~v318) & (~v287 | ~v319) & (~v287 | ~v320) & (~v287 | ~v321) & (~v287 | ~v322) & (~v287 | ~v323) & (~v287 | ~v324) & (~v287 | ~v325) & (~v287 | ~v326) & (~v287 | ~v327) & (~v287 | ~v328) & (~v287 | ~v329) & (~v287 | ~v331) & (~v287 | ~v332) & (~v287 | ~v333) & (~v287 | ~v334) & (~v287 | ~v335) & (~v287 | ~v336) & (~v287 | ~v337) & (~v287 | ~v338) & (~v287 | ~v339) & (~v287 | ~v340) & (~v287 | ~v341) & (~v288 | ~v289) & (~v288 | ~v290) & (~v288 | ~v291) & (~v288 | ~v292) & (~v288 | ~v294) & (~v288 | ~v295) & (~v288 | ~v296) & (~v288 | ~v297) & (~v288 | ~v298) & (~v288 | ~v299) & (~v288 | ~v300) & (~v288 | ~v301) & (~v288 | ~v302) & (~v288 | ~v303) & (~v288 | ~v304) & (~v288 | ~v306) & (~v288 | ~v307) & (~v288 | ~v308) & (~v288 | ~v309) & (~v288 | ~v310) & (~v288 | ~v311) & (~v288 | ~v312) & (~v288 | ~v313) & (~v288 | ~v314) & (~v288 | ~v315) & (~v288 | ~v316) & (~v288 | ~v317) & (~v288 | ~v318) & (~v288 | ~v319) & (~v288 | ~v320) & (~v288 | ~v321) & (~v288 | ~v322) & (~v288 | ~v323) & (~v288 | ~v324) & (~v288 | ~v325) & (~v288 | ~v326) & (~v288 | ~v327) & (~v288 | ~v328) & (~v288 | ~v329) & (~v288 | ~v331) & (~v288 | ~v332) & (~v288 | ~v333) & (~v288 | ~v334) & (~v288 | ~v335) & (~v288 | ~v336) & (~v288 | ~v337) & (~v288 | ~v338) & (~v288 | ~v339) & (~v288 | ~v340) & (~v288 | ~v341) & (~v289 | ~v290) & (~v289 | ~v291) & (~v289 | ~v292) & (~v289 | ~v294) & (~v289 | ~v295) & (~v289 | ~v296) & (~v289 | ~v297) & (~v289 | ~v298) & (~v289 | ~v299) & (~v289 | ~v300) & (~v289 | ~v301) & (~v289 | ~v302) & (~v289 | ~v303) & (~v289 | ~v304) & (~v289 | ~v306) & (~v289 | ~v307) & (~v289 | ~v308) & (~v289 | ~v309) & (~v289 | ~v310) & (~v289 | ~v311) & (~v289 | ~v312) & (~v289 | ~v313) & (~v289 | ~v314) & (~v289 | ~v315) & (~v289 | ~v316) & (~v289 | ~v317) & (~v289 | ~v318) & (~v289 | ~v319) & (~v289 | ~v320) & (~v289 | ~v321) & (~v289 | ~v322) & (~v289 | ~v323) & (~v289 | ~v324) & (~v289 | ~v325) & (~v289 | ~v326) & (~v289 | ~v327) & (~v289 | ~v328) & (~v289 | ~v329) & (~v289 | ~v331) & (~v289 | ~v332) & (~v289 | ~v333) & (~v289 | ~v334) & (~v289 | ~v335) & (~v289 | ~v336) & (~v289 | ~v337) & (~v289 | ~v338) & (~v289 | ~v339) & (~v289 | ~v340) & (~v289 | ~v341) & (~v290 | ~v291) & (~v290 | ~v292) & (~v290 | ~v294) & (~v290 | ~v295) & (~v290 | ~v296) & (~v290 | ~v297) & (~v290 | ~v298) & (~v290 | ~v299) & (~v290 | ~v300) & (~v290 | ~v301) & (~v290 | ~v302) & (~v290 | ~v303) & (~v290 | ~v304) & (~v290 | ~v306) & (~v290 | ~v307) & (~v290 | ~v308) & (~v290 | ~v309) & (~v290 | ~v310) & (~v290 | ~v311) & (~v290 | ~v312) & (~v290 | ~v313) & (~v290 | ~v314) & (~v290 | ~v315) & (~v290 | ~v316) & (~v290 | ~v317) & (~v290 | ~v318) & (~v290 | ~v319) & (~v290 | ~v320) & (~v290 | ~v321) & (~v290 | ~v322) & (~v290 | ~v323) & (~v290 | ~v324) & (~v290 | ~v325) & (~v290 | ~v326) & (~v290 | ~v327) & (~v290 | ~v328) & (~v290 | ~v329) & (~v290 | ~v331) & (~v290 | ~v332) & (~v290 | ~v333) & (~v290 | ~v334) & (~v290 | ~v335) & (~v290 | ~v336) & (~v290 | ~v337) & (~v290 | ~v338) & (~v290 | ~v339) & (~v290 | ~v340) & (~v290 | ~v341) & (~v291 | ~v292) & (~v291 | ~v294) & (~v291 | ~v295) & (~v291 | ~v296) & (~v291 | ~v297) & (~v291 | ~v298) & (~v291 | ~v299) & (~v291 | ~v300) & (~v291 | ~v301) & (~v291 | ~v302) & (~v291 | ~v303) & (~v291 | ~v304) & (~v291 | ~v306) & (~v291 | ~v307) & (~v291 | ~v308) & (~v291 | ~v309) & (~v291 | ~v310) & (~v291 | ~v311) & (~v291 | ~v312) & (~v291 | ~v313) & (~v291 | ~v314) & (~v291 | ~v315) & (~v291 | ~v316) & (~v291 | ~v317) & (~v291 | ~v318) & (~v291 | ~v319) & (~v291 | ~v320) & (~v291 | ~v321) & (~v291 | ~v322) & (~v291 | ~v323) & (~v291 | ~v324) & (~v291 | ~v325) & (~v291 | ~v326) & (~v291 | ~v327) & (~v291 | ~v328) & (~v291 | ~v329) & (~v291 | ~v331) & (~v291 | ~v332) & (~v291 | ~v333) & (~v291 | ~v334) & (~v291 | ~v335) & (~v291 | ~v336) & (~v291 | ~v337) & (~v291 | ~v338) & (~v291 | ~v339) & (~v291 | ~v340) & (~v291 | ~v341) & (~v292 | ~v294) & (~v292 | ~v295) & (~v292 | ~v296) & (~v292 | ~v297) & (~v292 | ~v298) & (~v292 | ~v299) & (~v292 | ~v300) & (~v292 | ~v301) & (~v292 | ~v302) & (~v292 | ~v303) & (~v292 | ~v304) & (~v292 | ~v306) & (~v292 | ~v307) & (~v292 | ~v308) & (~v292 | ~v309) & (~v292 | ~v310) & (~v292 | ~v311) & (~v292 | ~v312) & (~v292 | ~v313) & (~v292 | ~v314) & (~v292 | ~v315) & (~v292 | ~v316) & (~v292 | ~v317) & (~v292 | ~v318) & (~v292 | ~v319) & (~v292 | ~v320) & (~v292 | ~v321) & (~v292 | ~v322) & (~v292 | ~v323) & (~v292 | ~v324) & (~v292 | ~v325) & (~v292 | ~v326) & (~v292 | ~v327) & (~v292 | ~v328) & (~v292 | ~v329) & (~v292 | ~v331) & (~v292 | ~v332) & (~v292 | ~v333) & (~v292 | ~v334) & (~v292 | ~v335) & (~v292 | ~v336) & (~v292 | ~v337) & (~v292 | ~v338) & (~v292 | ~v339) & (~v292 | ~v340) & (~v292 | ~v341) & (~v294 | ~v295) & (~v294 | ~v296) & (~v294 | ~v297) & (~v294 | ~v298) & (~v294 | ~v299) & (~v294 | ~v300) & (~v294 | ~v301) & (~v294 | ~v302) & (~v294 | ~v303) & (~v294 | ~v304) & (~v294 | ~v306) & (~v294 | ~v307) & (~v294 | ~v308) & (~v294 | ~v309) & (~v294 | ~v310) & (~v294 | ~v311) & (~v294 | ~v312) & (~v294 | ~v313) & (~v294 | ~v314) & (~v294 | ~v315) & (~v294 | ~v316) & (~v294 | ~v317) & (~v294 | ~v318) & (~v294 | ~v319) & (~v294 | ~v320) & (~v294 | ~v321) & (~v294 | ~v322) & (~v294 | ~v323) & (~v294 | ~v324) & (~v294 | ~v325) & (~v294 | ~v326) & (~v294 | ~v327) & (~v294 | ~v328) & (~v294 | ~v329) & (~v294 | ~v331) & (~v294 | ~v332) & (~v294 | ~v333) & (~v294 | ~v334) & (~v294 | ~v335) & (~v294 | ~v336) & (~v294 | ~v337) & (~v294 | ~v338) & (~v294 | ~v339) & (~v294 | ~v340) & (~v294 | ~v341) & (~v295 | ~v296) & (~v295 | ~v297) & (~v295 | ~v298) & (~v295 | ~v299) & (~v295 | ~v300) & (~v295 | ~v301) & (~v295 | ~v302) & (~v295 | ~v303) & (~v295 | ~v304) & (~v295 | ~v306) & (~v295 | ~v307) & (~v295 | ~v308) & (~v295 | ~v309) & (~v295 | ~v310) & (~v295 | ~v311) & (~v295 | ~v312) & (~v295 | ~v313) & (~v295 | ~v314) & (~v295 | ~v315) & (~v295 | ~v316) & (~v295 | ~v317) & (~v295 | ~v318) & (~v295 | ~v319) & (~v295 | ~v320) & (~v295 | ~v321) & (~v295 | ~v322) & (~v295 | ~v323) & (~v295 | ~v324) & (~v295 | ~v325) & (~v295 | ~v326) & (~v295 | ~v327) & (~v295 | ~v328) & (~v295 | ~v329) & (~v295 | ~v331) & (~v295 | ~v332) & (~v295 | ~v333) & (~v295 | ~v334) & (~v295 | ~v335) & (~v295 | ~v336) & (~v295 | ~v337) & (~v295 | ~v338) & (~v295 | ~v339) & (~v295 | ~v340) & (~v295 | ~v341) & (~v296 | ~v297) & (~v296 | ~v298) & (~v296 | ~v299) & (~v296 | ~v300) & (~v296 | ~v301) & (~v296 | ~v302) & (~v296 | ~v303) & (~v296 | ~v304) & (~v296 | ~v306) & (~v296 | ~v307) & (~v296 | ~v308) & (~v296 | ~v309) & (~v296 | ~v310) & (~v296 | ~v311) & (~v296 | ~v312) & (~v296 | ~v313) & (~v296 | ~v314) & (~v296 | ~v315) & (~v296 | ~v316) & (~v296 | ~v317) & (~v296 | ~v318) & (~v296 | ~v319) & (~v296 | ~v320) & (~v296 | ~v321) & (~v296 | ~v322) & (~v296 | ~v323) & (~v296 | ~v324) & (~v296 | ~v325) & (~v296 | ~v326) & (~v296 | ~v327) & (~v296 | ~v328) & (~v296 | ~v329) & (~v296 | ~v331) & (~v296 | ~v332) & (~v296 | ~v333) & (~v296 | ~v334) & (~v296 | ~v335) & (~v296 | ~v336) & (~v296 | ~v337) & (~v296 | ~v338) & (~v296 | ~v339) & (~v296 | ~v340) & (~v296 | ~v341) & (~v297 | ~v298) & (~v297 | ~v299) & (~v297 | ~v300) & (~v297 | ~v301) & (~v297 | ~v302) & (~v297 | ~v303) & (~v297 | ~v304) & (~v297 | ~v306) & (~v297 | ~v307) & (~v297 | ~v308) & (~v297 | ~v309) & (~v297 | ~v310) & (~v297 | ~v311) & (~v297 | ~v312) & (~v297 | ~v313) & (~v297 | ~v314) & (~v297 | ~v315) & (~v297 | ~v316) & (~v297 | ~v317) & (~v297 | ~v318) & (~v297 | ~v319) & (~v297 | ~v320) & (~v297 | ~v321) & (~v297 | ~v322) & (~v297 | ~v323) & (~v297 | ~v324) & (~v297 | ~v325) & (~v297 | ~v326) & (~v297 | ~v327) & (~v297 | ~v328) & (~v297 | ~v329) & (~v297 | ~v331) & (~v297 | ~v332) & (~v297 | ~v333) & (~v297 | ~v334) & (~v297 | ~v335) & (~v297 | ~v336) & (~v297 | ~v337) & (~v297 | ~v338) & (~v297 | ~v339) & (~v297 | ~v340) & (~v297 | ~v341) & (~v298 | ~v299) & (~v298 | ~v300) & (~v298 | ~v301) & (~v298 | ~v302) & (~v298 | ~v303) & (~v298 | ~v304) & (~v298 | ~v306) & (~v298 | ~v307) & (~v298 | ~v308) & (~v298 | ~v309) & (~v298 | ~v310) & (~v298 | ~v311) & (~v298 | ~v312) & (~v298 | ~v313) & (~v298 | ~v314) & (~v298 | ~v315) & (~v298 | ~v316) & (~v298 | ~v317) & (~v298 | ~v318) & (~v298 | ~v319) & (~v298 | ~v320) & (~v298 | ~v321) & (~v298 | ~v322) & (~v298 | ~v323) & (~v298 | ~v324) & (~v298 | ~v325) & (~v298 | ~v326) & (~v298 | ~v327) & (~v298 | ~v328) & (~v298 | ~v329) & (~v298 | ~v331) & (~v298 | ~v332) & (~v298 | ~v333) & (~v298 | ~v334) & (~v298 | ~v335) & (~v298 | ~v336) & (~v298 | ~v337) & (~v298 | ~v338) & (~v298 | ~v339) & (~v298 | ~v340) & (~v298 | ~v341) & (~v299 | ~v300) & (~v299 | ~v301) & (~v299 | ~v302) & (~v299 | ~v303) & (~v299 | ~v304) & (~v299 | ~v306) & (~v299 | ~v307) & (~v299 | ~v308) & (~v299 | ~v309) & (~v299 | ~v310) & (~v299 | ~v311) & (~v299 | ~v312) & (~v299 | ~v313) & (~v299 | ~v314) & (~v299 | ~v315) & (~v299 | ~v316) & (~v299 | ~v317) & (~v299 | ~v318) & (~v299 | ~v319) & (~v299 | ~v320) & (~v299 | ~v321) & (~v299 | ~v322) & (~v299 | ~v323) & (~v299 | ~v324) & (~v299 | ~v325) & (~v299 | ~v326) & (~v299 | ~v327) & (~v299 | ~v328) & (~v299 | ~v329) & (~v299 | ~v331) & (~v299 | ~v332) & (~v299 | ~v333) & (~v299 | ~v334) & (~v299 | ~v335) & (~v299 | ~v336) & (~v299 | ~v337) & (~v299 | ~v338) & (~v299 | ~v339) & (~v299 | ~v340) & (~v299 | ~v341) & (~v300 | ~v301) & (~v300 | ~v302) & (~v300 | ~v303) & (~v300 | ~v304) & (~v300 | ~v306) & (~v300 | ~v307) & (~v300 | ~v308) & (~v300 | ~v309) & (~v300 | ~v310) & (~v300 | ~v311) & (~v300 | ~v312) & (~v300 | ~v313) & (~v300 | ~v314) & (~v300 | ~v315) & (~v300 | ~v316) & (~v300 | ~v317) & (~v300 | ~v318) & (~v300 | ~v319) & (~v300 | ~v320) & (~v300 | ~v321) & (~v300 | ~v322) & (~v300 | ~v323) & (~v300 | ~v324) & (~v300 | ~v325) & (~v300 | ~v326) & (~v300 | ~v327) & (~v300 | ~v328) & (~v300 | ~v329) & (~v300 | ~v331) & (~v300 | ~v332) & (~v300 | ~v333) & (~v300 | ~v334) & (~v300 | ~v335) & (~v300 | ~v336) & (~v300 | ~v337) & (~v300 | ~v338) & (~v300 | ~v339) & (~v300 | ~v340) & (~v300 | ~v341) & (~v301 | ~v302) & (~v301 | ~v303) & (~v301 | ~v304) & (~v301 | ~v306) & (~v301 | ~v307) & (~v301 | ~v308) & (~v301 | ~v309) & (~v301 | ~v310) & (~v301 | ~v311) & (~v301 | ~v312) & (~v301 | ~v313) & (~v301 | ~v314) & (~v301 | ~v315) & (~v301 | ~v316) & (~v301 | ~v317) & (~v301 | ~v318) & (~v301 | ~v319) & (~v301 | ~v320) & (~v301 | ~v321) & (~v301 | ~v322) & (~v301 | ~v323) & (~v301 | ~v324) & (~v301 | ~v325) & (~v301 | ~v326) & (~v301 | ~v327) & (~v301 | ~v328) & (~v301 | ~v329) & (~v301 | ~v331) & (~v301 | ~v332) & (~v301 | ~v333) & (~v301 | ~v334) & (~v301 | ~v335) & (~v301 | ~v336) & (~v301 | ~v337) & (~v301 | ~v338) & (~v301 | ~v339) & (~v301 | ~v340) & (~v301 | ~v341) & (~v302 | ~v303) & (~v302 | ~v304) & (~v302 | ~v306) & (~v302 | ~v307) & (~v302 | ~v308) & (~v302 | ~v309) & (~v302 | ~v310) & (~v302 | ~v311) & (~v302 | ~v312) & (~v302 | ~v313) & (~v302 | ~v314) & (~v302 | ~v315) & (~v302 | ~v316) & (~v302 | ~v317) & (~v302 | ~v318) & (~v302 | ~v319) & (~v302 | ~v320) & (~v302 | ~v321) & (~v302 | ~v322) & (~v302 | ~v323) & (~v302 | ~v324) & (~v302 | ~v325) & (~v302 | ~v326) & (~v302 | ~v327) & (~v302 | ~v328) & (~v302 | ~v329) & (~v302 | ~v331) & (~v302 | ~v332) & (~v302 | ~v333) & (~v302 | ~v334) & (~v302 | ~v335) & (~v302 | ~v336) & (~v302 | ~v337) & (~v302 | ~v338) & (~v302 | ~v339) & (~v302 | ~v340) & (~v302 | ~v341) & (~v303 | ~v304) & (~v303 | ~v306) & (~v303 | ~v307) & (~v303 | ~v308) & (~v303 | ~v309) & (~v303 | ~v310) & (~v303 | ~v311) & (~v303 | ~v312) & (~v303 | ~v313) & (~v303 | ~v314) & (~v303 | ~v315) & (~v303 | ~v316) & (~v303 | ~v317) & (~v303 | ~v318) & (~v303 | ~v319) & (~v303 | ~v320) & (~v303 | ~v321) & (~v303 | ~v322) & (~v303 | ~v323) & (~v303 | ~v324) & (~v303 | ~v325) & (~v303 | ~v326) & (~v303 | ~v327) & (~v303 | ~v328) & (~v303 | ~v329) & (~v303 | ~v331) & (~v303 | ~v332) & (~v303 | ~v333) & (~v303 | ~v334) & (~v303 | ~v335) & (~v303 | ~v336) & (~v303 | ~v337) & (~v303 | ~v338) & (~v303 | ~v339) & (~v303 | ~v340) & (~v303 | ~v341) & (~v304 | ~v306) & (~v304 | ~v307) & (~v304 | ~v308) & (~v304 | ~v309) & (~v304 | ~v310) & (~v304 | ~v311) & (~v304 | ~v312) & (~v304 | ~v313) & (~v304 | ~v314) & (~v304 | ~v315) & (~v304 | ~v316) & (~v304 | ~v317) & (~v304 | ~v318) & (~v304 | ~v319) & (~v304 | ~v320) & (~v304 | ~v321) & (~v304 | ~v322) & (~v304 | ~v323) & (~v304 | ~v324) & (~v304 | ~v325) & (~v304 | ~v326) & (~v304 | ~v327) & (~v304 | ~v328) & (~v304 | ~v329) & (~v304 | ~v331) & (~v304 | ~v332) & (~v304 | ~v333) & (~v304 | ~v334) & (~v304 | ~v335) & (~v304 | ~v336) & (~v304 | ~v337) & (~v304 | ~v338) & (~v304 | ~v339) & (~v304 | ~v340) & (~v304 | ~v341) & (~v306 | ~v307) & (~v306 | ~v308) & (~v306 | ~v309) & (~v306 | ~v310) & (~v306 | ~v311) & (~v306 | ~v312) & (~v306 | ~v313) & (~v306 | ~v314) & (~v306 | ~v315) & (~v306 | ~v316) & (~v306 | ~v317) & (~v306 | ~v318) & (~v306 | ~v319) & (~v306 | ~v320) & (~v306 | ~v321) & (~v306 | ~v322) & (~v306 | ~v323) & (~v306 | ~v324) & (~v306 | ~v325) & (~v306 | ~v326) & (~v306 | ~v327) & (~v306 | ~v328) & (~v306 | ~v329) & (~v306 | ~v331) & (~v306 | ~v332) & (~v306 | ~v333) & (~v306 | ~v334) & (~v306 | ~v335) & (~v306 | ~v336) & (~v306 | ~v337) & (~v306 | ~v338) & (~v306 | ~v339) & (~v306 | ~v340) & (~v306 | ~v341) & (~v307 | ~v308) & (~v307 | ~v309) & (~v307 | ~v310) & (~v307 | ~v311) & (~v307 | ~v312) & (~v307 | ~v313) & (~v307 | ~v314) & (~v307 | ~v315) & (~v307 | ~v316) & (~v307 | ~v317) & (~v307 | ~v318) & (~v307 | ~v319) & (~v307 | ~v320) & (~v307 | ~v321) & (~v307 | ~v322) & (~v307 | ~v323) & (~v307 | ~v324) & (~v307 | ~v325) & (~v307 | ~v326) & (~v307 | ~v327) & (~v307 | ~v328) & (~v307 | ~v329) & (~v307 | ~v331) & (~v307 | ~v332) & (~v307 | ~v333) & (~v307 | ~v334) & (~v307 | ~v335) & (~v307 | ~v336) & (~v307 | ~v337) & (~v307 | ~v338) & (~v307 | ~v339) & (~v307 | ~v340) & (~v307 | ~v341) & (~v308 | ~v309) & (~v308 | ~v310) & (~v308 | ~v311) & (~v308 | ~v312) & (~v308 | ~v313) & (~v308 | ~v314) & (~v308 | ~v315) & (~v308 | ~v316) & (~v308 | ~v317) & (~v308 | ~v318) & (~v308 | ~v319) & (~v308 | ~v320) & (~v308 | ~v321) & (~v308 | ~v322) & (~v308 | ~v323) & (~v308 | ~v324) & (~v308 | ~v325) & (~v308 | ~v326) & (~v308 | ~v327) & (~v308 | ~v328) & (~v308 | ~v329) & (~v308 | ~v331) & (~v308 | ~v332) & (~v308 | ~v333) & (~v308 | ~v334) & (~v308 | ~v335) & (~v308 | ~v336) & (~v308 | ~v337) & (~v308 | ~v338) & (~v308 | ~v339) & (~v308 | ~v340) & (~v308 | ~v341) & (~v309 | ~v310) & (~v309 | ~v311) & (~v309 | ~v312) & (~v309 | ~v313) & (~v309 | ~v314) & (~v309 | ~v315) & (~v309 | ~v316) & (~v309 | ~v317) & (~v309 | ~v318) & (~v309 | ~v319) & (~v309 | ~v320) & (~v309 | ~v321) & (~v309 | ~v322) & (~v309 | ~v323) & (~v309 | ~v324) & (~v309 | ~v325) & (~v309 | ~v326) & (~v309 | ~v327) & (~v309 | ~v328) & (~v309 | ~v329) & (~v309 | ~v331) & (~v309 | ~v332) & (~v309 | ~v333) & (~v309 | ~v334) & (~v309 | ~v335) & (~v309 | ~v336) & (~v309 | ~v337) & (~v309 | ~v338) & (~v309 | ~v339) & (~v309 | ~v340) & (~v309 | ~v341) & (~v310 | ~v311) & (~v310 | ~v312) & (~v310 | ~v313) & (~v310 | ~v314) & (~v310 | ~v315) & (~v310 | ~v316) & (~v310 | ~v317) & (~v310 | ~v318) & (~v310 | ~v319) & (~v310 | ~v320) & (~v310 | ~v321) & (~v310 | ~v322) & (~v310 | ~v323) & (~v310 | ~v324) & (~v310 | ~v325) & (~v310 | ~v326) & (~v310 | ~v327) & (~v310 | ~v328) & (~v310 | ~v329) & (~v310 | ~v331) & (~v310 | ~v332) & (~v310 | ~v333) & (~v310 | ~v334) & (~v310 | ~v335) & (~v310 | ~v336) & (~v310 | ~v337) & (~v310 | ~v338) & (~v310 | ~v339) & (~v310 | ~v340) & (~v310 | ~v341) & (~v311 | ~v312) & (~v311 | ~v313) & (~v311 | ~v314) & (~v311 | ~v315) & (~v311 | ~v316) & (~v311 | ~v317) & (~v311 | ~v318) & (~v311 | ~v319) & (~v311 | ~v320) & (~v311 | ~v321) & (~v311 | ~v322) & (~v311 | ~v323) & (~v311 | ~v324) & (~v311 | ~v325) & (~v311 | ~v326) & (~v311 | ~v327) & (~v311 | ~v328) & (~v311 | ~v329) & (~v311 | ~v331) & (~v311 | ~v332) & (~v311 | ~v333) & (~v311 | ~v334) & (~v311 | ~v335) & (~v311 | ~v336) & (~v311 | ~v337) & (~v311 | ~v338) & (~v311 | ~v339) & (~v311 | ~v340) & (~v311 | ~v341) & (~v312 | ~v313) & (~v312 | ~v314) & (~v312 | ~v315) & (~v312 | ~v316) & (~v312 | ~v317) & (~v312 | ~v318) & (~v312 | ~v319) & (~v312 | ~v320) & (~v312 | ~v321) & (~v312 | ~v322) & (~v312 | ~v323) & (~v312 | ~v324) & (~v312 | ~v325) & (~v312 | ~v326) & (~v312 | ~v327) & (~v312 | ~v328) & (~v312 | ~v329) & (~v312 | ~v331) & (~v312 | ~v332) & (~v312 | ~v333) & (~v312 | ~v334) & (~v312 | ~v335) & (~v312 | ~v336) & (~v312 | ~v337) & (~v312 | ~v338) & (~v312 | ~v339) & (~v312 | ~v340) & (~v312 | ~v341) & (~v313 | ~v314) & (~v313 | ~v315) & (~v313 | ~v316) & (~v313 | ~v317) & (~v313 | ~v318) & (~v313 | ~v319) & (~v313 | ~v320) & (~v313 | ~v321) & (~v313 | ~v322) & (~v313 | ~v323) & (~v313 | ~v324) & (~v313 | ~v325) & (~v313 | ~v326) & (~v313 | ~v327) & (~v313 | ~v328) & (~v313 | ~v329) & (~v313 | ~v331) & (~v313 | ~v332) & (~v313 | ~v333) & (~v313 | ~v334) & (~v313 | ~v335) & (~v313 | ~v336) & (~v313 | ~v337) & (~v313 | ~v338) & (~v313 | ~v339) & (~v313 | ~v340) & (~v313 | ~v341) & (~v314 | ~v315) & (~v314 | ~v316) & (~v314 | ~v317) & (~v314 | ~v318) & (~v314 | ~v319) & (~v314 | ~v320) & (~v314 | ~v321) & (~v314 | ~v322) & (~v314 | ~v323) & (~v314 | ~v324) & (~v314 | ~v325) & (~v314 | ~v326) & (~v314 | ~v327) & (~v314 | ~v328) & (~v314 | ~v329) & (~v314 | ~v331) & (~v314 | ~v332) & (~v314 | ~v333) & (~v314 | ~v334) & (~v314 | ~v335) & (~v314 | ~v336) & (~v314 | ~v337) & (~v314 | ~v338) & (~v314 | ~v339) & (~v314 | ~v340) & (~v314 | ~v341) & (~v315 | ~v316) & (~v315 | ~v317) & (~v315 | ~v318) & (~v315 | ~v319) & (~v315 | ~v320) & (~v315 | ~v321) & (~v315 | ~v322) & (~v315 | ~v323) & (~v315 | ~v324) & (~v315 | ~v325) & (~v315 | ~v326) & (~v315 | ~v327) & (~v315 | ~v328) & (~v315 | ~v329) & (~v315 | ~v331) & (~v315 | ~v332) & (~v315 | ~v333) & (~v315 | ~v334) & (~v315 | ~v335) & (~v315 | ~v336) & (~v315 | ~v337) & (~v315 | ~v338) & (~v315 | ~v339) & (~v315 | ~v340) & (~v315 | ~v341) & (~v316 | ~v317) & (~v316 | ~v318) & (~v316 | ~v319) & (~v316 | ~v320) & (~v316 | ~v321) & (~v316 | ~v322) & (~v316 | ~v323) & (~v316 | ~v324) & (~v316 | ~v325) & (~v316 | ~v326) & (~v316 | ~v327) & (~v316 | ~v328) & (~v316 | ~v329) & (~v316 | ~v331) & (~v316 | ~v332) & (~v316 | ~v333) & (~v316 | ~v334) & (~v316 | ~v335) & (~v316 | ~v336) & (~v316 | ~v337) & (~v316 | ~v338) & (~v316 | ~v339) & (~v316 | ~v340) & (~v316 | ~v341) & (~v317 | ~v318) & (~v317 | ~v319) & (~v317 | ~v320) & (~v317 | ~v321) & (~v317 | ~v322) & (~v317 | ~v323) & (~v317 | ~v324) & (~v317 | ~v325) & (~v317 | ~v326) & (~v317 | ~v327) & (~v317 | ~v328) & (~v317 | ~v329) & (~v317 | ~v331) & (~v317 | ~v332) & (~v317 | ~v333) & (~v317 | ~v334) & (~v317 | ~v335) & (~v317 | ~v336) & (~v317 | ~v337) & (~v317 | ~v338) & (~v317 | ~v339) & (~v317 | ~v340) & (~v317 | ~v341) & (~v318 | ~v319) & (~v318 | ~v320) & (~v318 | ~v321) & (~v318 | ~v322) & (~v318 | ~v323) & (~v318 | ~v324) & (~v318 | ~v325) & (~v318 | ~v326) & (~v318 | ~v327) & (~v318 | ~v328) & (~v318 | ~v329) & (~v318 | ~v331) & (~v318 | ~v332) & (~v318 | ~v333) & (~v318 | ~v334) & (~v318 | ~v335) & (~v318 | ~v336) & (~v318 | ~v337) & (~v318 | ~v338) & (~v318 | ~v339) & (~v318 | ~v340) & (~v318 | ~v341) & (~v319 | ~v320) & (~v319 | ~v321) & (~v319 | ~v322) & (~v319 | ~v323) & (~v319 | ~v324) & (~v319 | ~v325) & (~v319 | ~v326) & (~v319 | ~v327) & (~v319 | ~v328) & (~v319 | ~v329) & (~v319 | ~v331) & (~v319 | ~v332) & (~v319 | ~v333) & (~v319 | ~v334) & (~v319 | ~v335) & (~v319 | ~v336) & (~v319 | ~v337) & (~v319 | ~v338) & (~v319 | ~v339) & (~v319 | ~v340) & (~v319 | ~v341) & (~v320 | ~v321) & (~v320 | ~v322) & (~v320 | ~v323) & (~v320 | ~v324) & (~v320 | ~v325) & (~v320 | ~v326) & (~v320 | ~v327) & (~v320 | ~v328) & (~v320 | ~v329) & (~v320 | ~v331) & (~v320 | ~v332) & (~v320 | ~v333) & (~v320 | ~v334) & (~v320 | ~v335) & (~v320 | ~v336) & (~v320 | ~v337) & (~v320 | ~v338) & (~v320 | ~v339) & (~v320 | ~v340) & (~v320 | ~v341) & (~v321 | ~v322) & (~v321 | ~v323) & (~v321 | ~v324) & (~v321 | ~v325) & (~v321 | ~v326) & (~v321 | ~v327) & (~v321 | ~v328) & (~v321 | ~v329) & (~v321 | ~v331) & (~v321 | ~v332) & (~v321 | ~v333) & (~v321 | ~v334) & (~v321 | ~v335) & (~v321 | ~v336) & (~v321 | ~v337) & (~v321 | ~v338) & (~v321 | ~v339) & (~v321 | ~v340) & (~v321 | ~v341) & (~v322 | ~v323) & (~v322 | ~v324) & (~v322 | ~v325) & (~v322 | ~v326) & (~v322 | ~v327) & (~v322 | ~v328) & (~v322 | ~v329) & (~v322 | ~v331) & (~v322 | ~v332) & (~v322 | ~v333) & (~v322 | ~v334) & (~v322 | ~v335) & (~v322 | ~v336) & (~v322 | ~v337) & (~v322 | ~v338) & (~v322 | ~v339) & (~v322 | ~v340) & (~v322 | ~v341) & (~v323 | ~v324) & (~v323 | ~v325) & (~v323 | ~v326) & (~v323 | ~v327) & (~v323 | ~v328) & (~v323 | ~v329) & (~v323 | ~v331) & (~v323 | ~v332) & (~v323 | ~v333) & (~v323 | ~v334) & (~v323 | ~v335) & (~v323 | ~v336) & (~v323 | ~v337) & (~v323 | ~v338) & (~v323 | ~v339) & (~v323 | ~v340) & (~v323 | ~v341) & (~v324 | ~v325) & (~v324 | ~v326) & (~v324 | ~v327) & (~v324 | ~v328) & (~v324 | ~v329) & (~v324 | ~v331) & (~v324 | ~v332) & (~v324 | ~v333) & (~v324 | ~v334) & (~v324 | ~v335) & (~v324 | ~v336) & (~v324 | ~v337) & (~v324 | ~v338) & (~v324 | ~v339) & (~v324 | ~v340) & (~v324 | ~v341) & (~v325 | ~v326) & (~v325 | ~v327) & (~v325 | ~v328) & (~v325 | ~v329) & (~v325 | ~v331) & (~v325 | ~v332) & (~v325 | ~v333) & (~v325 | ~v334) & (~v325 | ~v335) & (~v325 | ~v336) & (~v325 | ~v337) & (~v325 | ~v338) & (~v325 | ~v339) & (~v325 | ~v340) & (~v325 | ~v341) & (~v326 | ~v327) & (~v326 | ~v328) & (~v326 | ~v329) & (~v326 | ~v331) & (~v326 | ~v332) & (~v326 | ~v333) & (~v326 | ~v334) & (~v326 | ~v335) & (~v326 | ~v336) & (~v326 | ~v337) & (~v326 | ~v338) & (~v326 | ~v339) & (~v326 | ~v340) & (~v326 | ~v341) & (~v327 | ~v328) & (~v327 | ~v329) & (~v327 | ~v331) & (~v327 | ~v332) & (~v327 | ~v333) & (~v327 | ~v334) & (~v327 | ~v335) & (~v327 | ~v336) & (~v327 | ~v337) & (~v327 | ~v338) & (~v327 | ~v339) & (~v327 | ~v340) & (~v327 | ~v341) & (~v328 | ~v329) & (~v328 | ~v331) & (~v328 | ~v332) & (~v328 | ~v333) & (~v328 | ~v334) & (~v328 | ~v335) & (~v328 | ~v336) & (~v328 | ~v337) & (~v328 | ~v338) & (~v328 | ~v339) & (~v328 | ~v340) & (~v328 | ~v341) & (~v329 | ~v331) & (~v329 | ~v332) & (~v329 | ~v333) & (~v329 | ~v334) & (~v329 | ~v335) & (~v329 | ~v336) & (~v329 | ~v337) & (~v329 | ~v338) & (~v329 | ~v339) & (~v329 | ~v340) & (~v329 | ~v341) & (~v331 | ~v332) & (~v331 | ~v333) & (~v331 | ~v334) & (~v331 | ~v335) & (~v331 | ~v336) & (~v331 | ~v337) & (~v331 | ~v338) & (~v331 | ~v339) & (~v331 | ~v340) & (~v331 | ~v341) & (~v332 | ~v333) & (~v332 | ~v334) & (~v332 | ~v335) & (~v332 | ~v336) & (~v332 | ~v337) & (~v332 | ~v338) & (~v332 | ~v339) & (~v332 | ~v340) & (~v332 | ~v341) & (~v333 | ~v334) & (~v333 | ~v335) & (~v333 | ~v336) & (~v333 | ~v337) & (~v333 | ~v338) & (~v333 | ~v339) & (~v333 | ~v340) & (~v333 | ~v341) & (~v334 | ~v335) & (~v334 | ~v336) & (~v334 | ~v337) & (~v334 | ~v338) & (~v334 | ~v339) & (~v334 | ~v340) & (~v334 | ~v341) & (~v335 | ~v336) & (~v335 | ~v337) & (~v335 | ~v338) & (~v335 | ~v339) & (~v335 | ~v340) & (~v335 | ~v341) & (~v336 | ~v337) & (~v336 | ~v338) & (~v336 | ~v339) & (~v336 | ~v340) & (~v336 | ~v341) & (~v337 | ~v338) & (~v337 | ~v339) & (~v337 | ~v340) & (~v337 | ~v341) & (~v338 | ~v339) & (~v338 | ~v340) & (~v338 | ~v341) & (~v339 | ~v340) & (~v339 | ~v341) & (~v340 | ~v341) & (~v360 | ~v361) & (~v360 | ~v362) & (~v360 | ~v363) & (~v360 | ~v364) & (~v360 | ~v365) & (~v360 | ~v366) & (~v360 | ~v368) & (~v360 | ~v369) & (~v360 | ~v370) & (~v360 | ~v371) & (~v360 | ~v381) & (~v360 | ~v382) & (~v360 | ~v383) & (~v360 | ~v384) & (~v360 | ~v385) & (~v360 | ~v386) & (~v360 | ~v387) & (~v360 | ~v388) & (~v360 | ~v389) & (~v360 | ~v390) & (~v360 | ~v391) & (~v360 | ~v392) & (~v360 | ~v393) & (~v360 | ~v394) & (~v361 | ~v362) & (~v361 | ~v363) & (~v361 | ~v364) & (~v361 | ~v365) & (~v361 | ~v366) & (~v361 | ~v368) & (~v361 | ~v369) & (~v361 | ~v370) & (~v361 | ~v371) & (~v361 | ~v381) & (~v361 | ~v382) & (~v361 | ~v383) & (~v361 | ~v384) & (~v361 | ~v385) & (~v361 | ~v386) & (~v361 | ~v387) & (~v361 | ~v388) & (~v361 | ~v389) & (~v361 | ~v390) & (~v361 | ~v391) & (~v361 | ~v392) & (~v361 | ~v393) & (~v361 | ~v394) & (~v362 | ~v363) & (~v362 | ~v364) & (~v362 | ~v365) & (~v362 | ~v366) & (~v362 | ~v368) & (~v362 | ~v369) & (~v362 | ~v370) & (~v362 | ~v371) & (~v362 | ~v381) & (~v362 | ~v382) & (~v362 | ~v383) & (~v362 | ~v384) & (~v362 | ~v385) & (~v362 | ~v386) & (~v362 | ~v387) & (~v362 | ~v388) & (~v362 | ~v389) & (~v362 | ~v390) & (~v362 | ~v391) & (~v362 | ~v392) & (~v362 | ~v393) & (~v362 | ~v394) & (~v363 | ~v364) & (~v363 | ~v365) & (~v363 | ~v366) & (~v363 | ~v368) & (~v363 | ~v369) & (~v363 | ~v370) & (~v363 | ~v371) & (~v363 | ~v381) & (~v363 | ~v382) & (~v363 | ~v383) & (~v363 | ~v384) & (~v363 | ~v385) & (~v363 | ~v386) & (~v363 | ~v387) & (~v363 | ~v388) & (~v363 | ~v389) & (~v363 | ~v390) & (~v363 | ~v391) & (~v363 | ~v392) & (~v363 | ~v393) & (~v363 | ~v394) & (~v364 | ~v365) & (~v364 | ~v366) & (~v364 | ~v368) & (~v364 | ~v369) & (~v364 | ~v370) & (~v364 | ~v371) & (~v364 | ~v381) & (~v364 | ~v382) & (~v364 | ~v383) & (~v364 | ~v384) & (~v364 | ~v385) & (~v364 | ~v386) & (~v364 | ~v387) & (~v364 | ~v388) & (~v364 | ~v389) & (~v364 | ~v390) & (~v364 | ~v391) & (~v364 | ~v392) & (~v364 | ~v393) & (~v364 | ~v394) & (~v365 | ~v366) & (~v365 | ~v368) & (~v365 | ~v369) & (~v365 | ~v370) & (~v365 | ~v371) & (~v365 | ~v381) & (~v365 | ~v382) & (~v365 | ~v383) & (~v365 | ~v384) & (~v365 | ~v385) & (~v365 | ~v386) & (~v365 | ~v387) & (~v365 | ~v388) & (~v365 | ~v389) & (~v365 | ~v390) & (~v365 | ~v391) & (~v365 | ~v392) & (~v365 | ~v393) & (~v365 | ~v394) & (~v366 | ~v368) & (~v366 | ~v369) & (~v366 | ~v370) & (~v366 | ~v371) & (~v366 | ~v381) & (~v366 | ~v382) & (~v366 | ~v383) & (~v366 | ~v384) & (~v366 | ~v385) & (~v366 | ~v386) & (~v366 | ~v387) & (~v366 | ~v388) & (~v366 | ~v389) & (~v366 | ~v390) & (~v366 | ~v391) & (~v366 | ~v392) & (~v366 | ~v393) & (~v366 | ~v394) & (~v368 | ~v369) & (~v368 | ~v370) & (~v368 | ~v371) & (~v368 | ~v381) & (~v368 | ~v382) & (~v368 | ~v383) & (~v368 | ~v384) & (~v368 | ~v385) & (~v368 | ~v386) & (~v368 | ~v387) & (~v368 | ~v388) & (~v368 | ~v389) & (~v368 | ~v390) & (~v368 | ~v391) & (~v368 | ~v392) & (~v368 | ~v393) & (~v368 | ~v394) & (~v369 | ~v370) & (~v369 | ~v371) & (~v369 | ~v381) & (~v369 | ~v382) & (~v369 | ~v383) & (~v369 | ~v384) & (~v369 | ~v385) & (~v369 | ~v386) & (~v369 | ~v387) & (~v369 | ~v388) & (~v369 | ~v389) & (~v369 | ~v390) & (~v369 | ~v391) & (~v369 | ~v392) & (~v369 | ~v393) & (~v369 | ~v394) & (~v370 | ~v371) & (~v370 | ~v381) & (~v370 | ~v382) & (~v370 | ~v383) & (~v370 | ~v384) & (~v370 | ~v385) & (~v370 | ~v386) & (~v370 | ~v387) & (~v370 | ~v388) & (~v370 | ~v389) & (~v370 | ~v390) & (~v370 | ~v391) & (~v370 | ~v392) & (~v370 | ~v393) & (~v370 | ~v394) & (~v371 | ~v381) & (~v371 | ~v382) & (~v371 | ~v383) & (~v371 | ~v384) & (~v371 | ~v385) & (~v371 | ~v386) & (~v371 | ~v387) & (~v371 | ~v388) & (~v371 | ~v389) & (~v371 | ~v390) & (~v371 | ~v391) & (~v371 | ~v392) & (~v371 | ~v393) & (~v371 | ~v394) & (~v381 | ~v382) & (~v381 | ~v383) & (~v381 | ~v384) & (~v381 | ~v385) & (~v381 | ~v386) & (~v381 | ~v387) & (~v381 | ~v388) & (~v381 | ~v389) & (~v381 | ~v390) & (~v381 | ~v391) & (~v381 | ~v392) & (~v381 | ~v393) & (~v381 | ~v394) & (~v382 | ~v383) & (~v382 | ~v384) & (~v382 | ~v385) & (~v382 | ~v386) & (~v382 | ~v387) & (~v382 | ~v388) & (~v382 | ~v389) & (~v382 | ~v390) & (~v382 | ~v391) & (~v382 | ~v392) & (~v382 | ~v393) & (~v382 | ~v394) & (~v383 | ~v384) & (~v383 | ~v385) & (~v383 | ~v386) & (~v383 | ~v387) & (~v383 | ~v388) & (~v383 | ~v389) & (~v383 | ~v390) & (~v383 | ~v391) & (~v383 | ~v392) & (~v383 | ~v393) & (~v383 | ~v394) & (~v384 | ~v385) & (~v384 | ~v386) & (~v384 | ~v387) & (~v384 | ~v388) & (~v384 | ~v389) & (~v384 | ~v390) & (~v384 | ~v391) & (~v384 | ~v392) & (~v384 | ~v393) & (~v384 | ~v394) & (~v385 | ~v386) & (~v385 | ~v387) & (~v385 | ~v388) & (~v385 | ~v389) & (~v385 | ~v390) & (~v385 | ~v391) & (~v385 | ~v392) & (~v385 | ~v393) & (~v385 | ~v394) & (~v386 | ~v387) & (~v386 | ~v388) & (~v386 | ~v389) & (~v386 | ~v390) & (~v386 | ~v391) & (~v386 | ~v392) & (~v386 | ~v393) & (~v386 | ~v394) & (~v387 | ~v388) & (~v387 | ~v389) & (~v387 | ~v390) & (~v387 | ~v391) & (~v387 | ~v392) & (~v387 | ~v393) & (~v387 | ~v394) & (~v388 | ~v389) & (~v388 | ~v390) & (~v388 | ~v391) & (~v388 | ~v392) & (~v388 | ~v393) & (~v388 | ~v394) & (~v389 | ~v390) & (~v389 | ~v391) & (~v389 | ~v392) & (~v389 | ~v393) & (~v389 | ~v394) & (~v390 | ~v391) & (~v390 | ~v392) & (~v390 | ~v393) & (~v390 | ~v394) & (~v391 | ~v392) & (~v391 | ~v393) & (~v391 | ~v394) & (~v392 | ~v393) & (~v392 | ~v394) & (~v393 | ~v394) & (~v396 | ~v397) & (~v396 | ~v398) & (~v396 | ~v399) & (~v396 | ~v400) & (~v396 | ~v401) & (~v396 | ~v402) & (~v396 | ~v403) & (~v396 | ~v404) & (~v397 | ~v398) & (~v397 | ~v399) & (~v397 | ~v400) & (~v397 | ~v401) & (~v397 | ~v402) & (~v397 | ~v403) & (~v397 | ~v404) & (~v398 | ~v399) & (~v398 | ~v400) & (~v398 | ~v401) & (~v398 | ~v402) & (~v398 | ~v403) & (~v398 | ~v404) & (~v399 | ~v400) & (~v399 | ~v401) & (~v399 | ~v402) & (~v399 | ~v403) & (~v399 | ~v404) & (~v400 | ~v401) & (~v400 | ~v402) & (~v400 | ~v403) & (~v400 | ~v404) & (~v401 | ~v402) & (~v401 | ~v403) & (~v401 | ~v404) & (~v402 | ~v403) & (~v402 | ~v404) & (~v403 | ~v404) & (~v422 | ~v423) & (~v422 | ~v424) & (~v422 | ~v425) & (~v422 | ~v426) & (~v422 | ~v427) & (~v423 | ~v424) & (~v423 | ~v425) & (~v423 | ~v426) & (~v423 | ~v427) & (~v424 | ~v425) & (~v424 | ~v426) & (~v424 | ~v427) & (~v425 | ~v426) & (~v425 | ~v427) & (~v426 | ~v427) & (~v428 | ~v429) & (~v434 | ~v437) & (~v435 | ~v438) & (~v435 | ~v446) & (~v438 | ~v446) & (~v439 | ~v440) & (~v439 | ~v441) & (~v440 | ~v441) & (~v442 | ~v443) & (~v453 | ~v454) & (~v453 | ~v468) & (~v453 | ~v469) & (~v454 | ~v468) & (~v454 | ~v469) & (~v468 | ~v469) & (~v457 | ~v458) & (~v457 | ~v459) & (~v457 | ~v461) & (~v457 | ~v462) & (~v457 | ~v463) & (~v457 | ~v464) & (~v457 | ~v465) & (~v458 | ~v459) & (~v458 | ~v461) & (~v458 | ~v462) & (~v458 | ~v463) & (~v458 | ~v464) & (~v458 | ~v465) & (~v459 | ~v461) & (~v459 | ~v462) & (~v459 | ~v463) & (~v459 | ~v464) & (~v459 | ~v465) & (~v461 | ~v462) & (~v461 | ~v463) & (~v461 | ~v464) & (~v461 | ~v465) & (~v462 | ~v463) & (~v462 | ~v464) & (~v462 | ~v465) & (~v463 | ~v464) & (~v463 | ~v465) & (~v464 | ~v465) & (v49 | v52 | v58 | v62 | v64 | v66 | v75 | v447 | v449 | v466 | v470 | v472) & (~v49 | ~v52) & (~v49 | ~v58) & (~v49 | ~v62) & (~v49 | ~v64) & (~v49 | ~v66) & (~v49 | ~v75) & (~v49 | ~v447) & (~v49 | ~v449) & (~v49 | ~v466) & (~v49 | ~v470) & (~v49 | ~v472) & (~v52 | ~v58) & (~v52 | ~v62) & (~v52 | ~v64) & (~v52 | ~v66) & (~v52 | ~v75) & (~v52 | ~v447) & (~v52 | ~v449) & (~v52 | ~v466) & (~v52 | ~v470) & (~v52 | ~v472) & (~v58 | ~v62) & (~v58 | ~v64) & (~v58 | ~v66) & (~v58 | ~v75) & (~v58 | ~v447) & (~v58 | ~v449) & (~v58 | ~v466) & (~v58 | ~v470) & (~v58 | ~v472) & (~v62 | ~v64) & (~v62 | ~v66) & (~v62 | ~v75) & (~v62 | ~v447) & (~v62 | ~v449) & (~v62 | ~v466) & (~v62 | ~v470) & (~v62 | ~v472) & (~v64 | ~v66) & (~v64 | ~v75) & (~v64 | ~v447) & (~v64 | ~v449) & (~v64 | ~v466) & (~v64 | ~v470) & (~v64 | ~v472) & (~v66 | ~v75) & (~v66 | ~v447) & (~v66 | ~v449) & (~v66 | ~v466) & (~v66 | ~v470) & (~v66 | ~v472) & (~v75 | ~v447) & (~v75 | ~v449) & (~v75 | ~v466) & (~v75 | ~v470) & (~v75 | ~v472) & (~v447 | ~v449) & (~v447 | ~v466) & (~v447 | ~v470) & (~v447 | ~v472) & (~v449 | ~v466) & (~v449 | ~v470) & (~v449 | ~v472) & (~v466 | ~v470) & (~v466 | ~v472) & (~v470 | ~v472) & (v50 | v53 | v59 | v61 | v63 | v65 | v67 | v76 | v77 | v448 | v450 | v467 | v471 | v473) & (~v50 | ~v53) & (~v50 | ~v59) & (~v50 | ~v61) & (~v50 | ~v63) & (~v50 | ~v65) & (~v50 | ~v67) & (~v50 | ~v76) & (~v50 | ~v77) & (~v50 | ~v448) & (~v50 | ~v450) & (~v50 | ~v467) & (~v50 | ~v471) & (~v50 | ~v473) & (~v53 | ~v59) & (~v53 | ~v61) & (~v53 | ~v63) & (~v53 | ~v65) & (~v53 | ~v67) & (~v53 | ~v76) & (~v53 | ~v77) & (~v53 | ~v448) & (~v53 | ~v450) & (~v53 | ~v467) & (~v53 | ~v471) & (~v53 | ~v473) & (~v59 | ~v61) & (~v59 | ~v63) & (~v59 | ~v65) & (~v59 | ~v67) & (~v59 | ~v76) & (~v59 | ~v77) & (~v59 | ~v448) & (~v59 | ~v450) & (~v59 | ~v467) & (~v59 | ~v471) & (~v59 | ~v473) & (~v61 | ~v63) & (~v61 | ~v65) & (~v61 | ~v67) & (~v61 | ~v76) & (~v61 | ~v77) & (~v61 | ~v448) & (~v61 | ~v450) & (~v61 | ~v467) & (~v61 | ~v471) & (~v61 | ~v473) & (~v63 | ~v65) & (~v63 | ~v67) & (~v63 | ~v76) & (~v63 | ~v77) & (~v63 | ~v448) & (~v63 | ~v450) & (~v63 | ~v467) & (~v63 | ~v471) & (~v63 | ~v473) & (~v65 | ~v67) & (~v65 | ~v76) & (~v65 | ~v77) & (~v65 | ~v448) & (~v65 | ~v450) & (~v65 | ~v467) & (~v65 | ~v471) & (~v65 | ~v473) & (~v67 | ~v76) & (~v67 | ~v77) & (~v67 | ~v448) & (~v67 | ~v450) & (~v67 | ~v467) & (~v67 | ~v471) & (~v67 | ~v473) & (~v76 | ~v77) & (~v76 | ~v448) & (~v76 | ~v450) & (~v76 | ~v467) & (~v76 | ~v471) & (~v76 | ~v473) & (~v77 | ~v448) & (~v77 | ~v450) & (~v77 | ~v467) & (~v77 | ~v471) & (~v77 | ~v473) & (~v448 | ~v450) & (~v448 | ~v467) & (~v448 | ~v471) & (~v448 | ~v473) & (~v450 | ~v467) & (~v450 | ~v471) & (~v450 | ~v473) & (~v467 | ~v471) & (~v467 | ~v473) & (~v471 | ~v473) & (v102 | v103 | v104 | v105 | v106 | v107 | v108 | v109 | v110 | v111 | v112 | v113 | v114 | v115 | v116 | v117 | v118 | v119 | v120) & (~v102 | ~v103) & (~v102 | ~v104) & (~v102 | ~v105) & (~v102 | ~v106) & (~v102 | ~v107) & (~v102 | ~v108) & (~v102 | ~v109) & (~v102 | ~v110) & (~v102 | ~v111) & (~v102 | ~v112) & (~v102 | ~v113) & (~v102 | ~v114) & (~v102 | ~v115) & (~v102 | ~v116) & (~v102 | ~v117) & (~v102 | ~v118) & (~v102 | ~v119) & (~v102 | ~v120) & (~v103 | ~v104) & (~v103 | ~v105) & (~v103 | ~v106) & (~v103 | ~v107) & (~v103 | ~v108) & (~v103 | ~v109) & (~v103 | ~v110) & (~v103 | ~v111) & (~v103 | ~v112) & (~v103 | ~v113) & (~v103 | ~v114) & (~v103 | ~v115) & (~v103 | ~v116) & (~v103 | ~v117) & (~v103 | ~v118) & (~v103 | ~v119) & (~v103 | ~v120) & (~v104 | ~v105) & (~v104 | ~v106) & (~v104 | ~v107) & (~v104 | ~v108) & (~v104 | ~v109) & (~v104 | ~v110) & (~v104 | ~v111) & (~v104 | ~v112) & (~v104 | ~v113) & (~v104 | ~v114) & (~v104 | ~v115) & (~v104 | ~v116) & (~v104 | ~v117) & (~v104 | ~v118) & (~v104 | ~v119) & (~v104 | ~v120) & (~v105 | ~v106) & (~v105 | ~v107) & (~v105 | ~v108) & (~v105 | ~v109) & (~v105 | ~v110) & (~v105 | ~v111) & (~v105 | ~v112) & (~v105 | ~v113) & (~v105 | ~v114) & (~v105 | ~v115) & (~v105 | ~v116) & (~v105 | ~v117) & (~v105 | ~v118) & (~v105 | ~v119) & (~v105 | ~v120) & (~v106 | ~v107) & (~v106 | ~v108) & (~v106 | ~v109) & (~v106 | ~v110) & (~v106 | ~v111) & (~v106 | ~v112) & (~v106 | ~v113) & (~v106 | ~v114) & (~v106 | ~v115) & (~v106 | ~v116) & (~v106 | ~v117) & (~v106 | ~v118) & (~v106 | ~v119) & (~v106 | ~v120) & (~v107 | ~v108) & (~v107 | ~v109) & (~v107 | ~v110) & (~v107 | ~v111) & (~v107 | ~v112) & (~v107 | ~v113) & (~v107 | ~v114) & (~v107 | ~v115) & (~v107 | ~v116) & (~v107 | ~v117) & (~v107 | ~v118) & (~v107 | ~v119) & (~v107 | ~v120) & (~v108 | ~v109) & (~v108 | ~v110) & (~v108 | ~v111) & (~v108 | ~v112) & (~v108 | ~v113) & (~v108 | ~v114) & (~v108 | ~v115) & (~v108 | ~v116) & (~v108 | ~v117) & (~v108 | ~v118) & (~v108 | ~v119) & (~v108 | ~v120) & (~v109 | ~v110) & (~v109 | ~v111) & (~v109 | ~v112) & (~v109 | ~v113) & (~v109 | ~v114) & (~v109 | ~v115) & (~v109 | ~v116) & (~v109 | ~v117) & (~v109 | ~v118) & (~v109 | ~v119) & (~v109 | ~v120) & (~v110 | ~v111) & (~v110 | ~v112) & (~v110 | ~v113) & (~v110 | ~v114) & (~v110 | ~v115) & (~v110 | ~v116) & (~v110 | ~v117) & (~v110 | ~v118) & (~v110 | ~v119) & (~v110 | ~v120) & (~v111 | ~v112) & (~v111 | ~v113) & (~v111 | ~v114) & (~v111 | ~v115) & (~v111 | ~v116) & (~v111 | ~v117) & (~v111 | ~v118) & (~v111 | ~v119) & (~v111 | ~v120) & (~v112 | ~v113) & (~v112 | ~v114) & (~v112 | ~v115) & (~v112 | ~v116) & (~v112 | ~v117) & (~v112 | ~v118) & (~v112 | ~v119) & (~v112 | ~v120) & (~v113 | ~v114) & (~v113 | ~v115) & (~v113 | ~v116) & (~v113 | ~v117) & (~v113 | ~v118) & (~v113 | ~v119) & (~v113 | ~v120) & (~v114 | ~v115) & (~v114 | ~v116) & (~v114 | ~v117) & (~v114 | ~v118) & (~v114 | ~v119) & (~v114 | ~v120) & (~v115 | ~v116) & (~v115 | ~v117) & (~v115 | ~v118) & (~v115 | ~v119) & (~v115 | ~v120) & (~v116 | ~v117) & (~v116 | ~v118) & (~v116 | ~v119) & (~v116 | ~v120) & (~v117 | ~v118) & (~v117 | ~v119) & (~v117 | ~v120) & (~v118 | ~v119) & (~v118 | ~v120) & (~v119 | ~v120) & (v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v461 | v462 | v463 | v464 | v465 | v468 | v469) & (~v451 | ~v452) & (~v451 | ~v453) & (~v451 | ~v454) & (~v451 | ~v455) & (~v451 | ~v456) & (~v451 | ~v457) & (~v451 | ~v458) & (~v451 | ~v459) & (~v451 | ~v461) & (~v451 | ~v462) & (~v451 | ~v463) & (~v451 | ~v464) & (~v451 | ~v465) & (~v451 | ~v468) & (~v451 | ~v469) & (~v452 | ~v453) & (~v452 | ~v454) & (~v452 | ~v455) & (~v452 | ~v456) & (~v452 | ~v457) & (~v452 | ~v458) & (~v452 | ~v459) & (~v452 | ~v461) & (~v452 | ~v462) & (~v452 | ~v463) & (~v452 | ~v464) & (~v452 | ~v465) & (~v452 | ~v468) & (~v452 | ~v469) & (~v453 | ~v455) & (~v453 | ~v456) & (~v453 | ~v457) & (~v453 | ~v458) & (~v453 | ~v459) & (~v453 | ~v461) & (~v453 | ~v462) & (~v453 | ~v463) & (~v453 | ~v464) & (~v453 | ~v465) & (~v454 | ~v455) & (~v454 | ~v456) & (~v454 | ~v457) & (~v454 | ~v458) & (~v454 | ~v459) & (~v454 | ~v461) & (~v454 | ~v462) & (~v454 | ~v463) & (~v454 | ~v464) & (~v454 | ~v465) & (~v455 | ~v456) & (~v455 | ~v457) & (~v455 | ~v458) & (~v455 | ~v459) & (~v455 | ~v461) & (~v455 | ~v462) & (~v455 | ~v463) & (~v455 | ~v464) & (~v455 | ~v465) & (~v455 | ~v468) & (~v455 | ~v469) & (~v456 | ~v457) & (~v456 | ~v458) & (~v456 | ~v459) & (~v456 | ~v461) & (~v456 | ~v462) & (~v456 | ~v463) & (~v456 | ~v464) & (~v456 | ~v465) & (~v456 | ~v468) & (~v456 | ~v469) & (~v457 | ~v468) & (~v457 | ~v469) & (~v458 | ~v468) & (~v458 | ~v469) & (~v459 | ~v468) & (~v459 | ~v469) & (~v461 | ~v468) & (~v461 | ~v469) & (~v462 | ~v468) & (~v462 | ~v469) & (~v463 | ~v468) & (~v463 | ~v469) & (~v464 | ~v468) & (~v464 | ~v469) & (~v465 | ~v468) & (~v465 | ~v469) & (~v0 & ~v70 & ~v367 => v0) & (~v2 => v2) & (~v6 => v6) & ~v51 & ~v54 & ~v55 & ~v56 & ~v57 & ~v60 & (~v68 & ~v132 & ~v156 => v152) & ~v69 & ~v70 & ~v73 & ~v74 & ~v121 & ~v137 & ~v144 & ~v146 & ~v147 & ~v150 & ~v160 & ~v173 & ~v178 & ~v189 & ~v248 & ~v345 & ~v349 & ~v415 & ~v460 diff --git a/tests/formulas/small_formulas.txt b/tests/formulas/small_formulas.txt new file mode 100644 index 00000000..7608da82 --- /dev/null +++ b/tests/formulas/small_formulas.txt @@ -0,0 +1,3810 @@ +((v0 | v1 | v2 | (v16 | v19 | v20 | v21 | v22 | v23) & ~v39 | (v24 | v25 | v26) & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v1 | v2 | v16 | v19 | v20 | v21 | v22 | v23 | (v24 | v25 | v26) & ~(v3 | v4))) & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) => v5 +((v63 | v179) & v178 | (v63 | v179) & v141) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v277 | v278 | v50 | v51 | v52 | v53 | v54 | v55 | v56 | v57 | v58) & ~(v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v77 | v78 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v83 | v84 | v85 | v86 | v87 | v96 | v97 | v98 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117) & ~(v118 | v120 | v121 | v122 | v127 | v128 | v129 | v130 | v131 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159) & ~(v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v79 | v80 | v81 | v82 | v105 | v106 | v107 | v108 | v110 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v95 +((v1 | v293 | v294 | v2) & ~(v17 | v18) | ~(v345 & (v356 | v358)) & (v360 | v361 | v362 | v314) & ~(v357 | v359 | v17 | v18)) & ~(v317 | v318 | v319) & ~(v353 | v354) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) => v292 +((v293 | (v363 | v364) & ~v39 | v365 & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v293 | v363 | v364 | v365 & ~(v3 | v4))) & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v8 | v9 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) => v7 +((v294 | (v366 | v368) & ~v39 | v370 & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v367 | v369 | v371 & ~(v3 | v4))) & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v9 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) => v8 +((v372 | v3 | v4 | v375 | v357 | v359 | v407) & v407 & (v3 | v4 | v393 | v373 | v377 & ~(v374 | v376) | v382 | v383 | v409) | (v372 | v345 | v357 | v359) & v407 & (v314 | v345 | v385 | v386 | v387 | v388 | v389 | v390 | v392 | v394 | v395 | v396 | v397 | v399 | v400 | v401 | v402 | v403 | v404) & ~(v17 | v18) | (v372 | v357 | v359) & (v374 | v376 | v379 & ~v378 | v384 & ~(v380 | v381 | v382 | v383)) | (v372 | v357 | v359) & v408 & ~(v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v394 | v395 | v396 | v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) | (v372 | v357 | v359) & (v17 | v18) & v407 & (v314 | v385 | v386 | v387 | v388 | v389 | v390 | v392 | v394 | v395 | v396 | v397 | v399 | v400 | v401 | v402 | v403 | v404) | (v17 | v18) & v407 & v345) & ~v406 => v405 +((v415 | v424 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452) & v486 & v497 & (v414 | v421) & ~(v418 | v419) | (v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v386 | v392 | v480 | v394 | v397) & v486 & v497 & (v414 | v421) & ~(v418 | v419)) & ~(v410 | v411 | v413) & ~(v416 | v417 | v420) & ~v422 & ~(v3 | v423 | v4 | v314) & ~(v431 | v433 | v435 | v437) & ~(v463 | v464 | v465) & ~(v461 | v462 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v473 | v474 | v475 | v476 | v477 | v478 | v479) & ~(v393 | v481 | v345 | v482 | v483) & ~(v484 | v485 | v487 | v488 | v489 | v495) & ~(v412 | v496) & ~(v490 | v491 | v493 | v494) => v492 +((v501 | v3 | v504 | v345 | v357 | v359 | v506) & (v499 | v502) & (v498 | v504) & ~(v4 | v17 | v18) | v4 & v502 & (v498 | v504) & ~(v17 | v18) | (v501 | v505 & ~v314 | v359 & ~(v3 | v314) | v500 | v503) & (v17 | v18) & v502 & v498 & ~(v4 | v345) | ~v359 & (v17 | v18) & v4 & v502 & v498) & ~v508 => v507 +((v373 | v424 | v425 | v426 | v427 | v514 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~v345 | (v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v521 | v536 | v551 | v555 | v556) & ~v345 | (v3 | v4 | v463 | v393 | v345 | v482 | v39 | v593 | v594) & ~(v356 & v345 | v509) | (v386 | v387 | v390 | v392 | v480 | v394 | v562 | v563 | v397 | v565 & (v587 | v588 | v359) | v567 | v568 | v570 | v573 | v574) & ~v345) & ~(v510 | v512) & ~((v374 | v513) & ~(v592 | v39 | v594 | v586)) & ~((v519 | v520 | v522 | v523 | v524 | v525 | v526 | v527 | v528 | v529 | v530 | v531 | v532 | v533 | v534 | v535 | v537 | v538 | v539 | v540 | v541) & ~(v592 | v39 | v594 | v586)) & ~((v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v550 | v552 | v553 | v554) & ~(v592 | v39 | v594 | v586)) & ~((v557 | v558 | v559 | v560) & ~(v592 | v39 | v594 | v586 | v590 & v579)) & ~((v385 | v389 | v561 | v396 | v564 | v400) & ~(v592 | v39 | v594 | v586)) & ~((v566 | v401 | v403 | v569 | v571) & ~(v592 | v39 | v594 | v586)) & ~((v572 | v575 | v576) & ~(v592 | v39 | v594 | v586)) & ~((v314 | v398) & ~(v577 | v578 | v580 & v588 | v581 & v591 | v582 | v583 & (v588 | v356 | v589) | v584 & v588 | v585 | v592 | v39 | v594 | v586)) => v511 +((v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~v39 | (v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v394) & ~v39) & ~(v595 | v596 | v597 | v598) & ~v600 & ~v410 => v599 +((v373 | v440 | v442 | v450 | v451 | v456 | v460) & ~(v17 | v18) | (v373 | v442 | v450 | v451 | v456) & (v17 | v18)) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v608 +((v373 | v446 | v450 | v451 | v456) & (v671 | v672) & ~(v17 | v18) | (v373 | v446 | v450 | v451 | v456) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v636 +((v676 & ~v562 | v677 | v3 | v4 | v314 | v674 | v316 | v680) & ~(v357 | v17 | v18) | (v676 & ~v562 | v677 | v314 | v674 | v316) & (v17 | v18) & ~v359) & ~(v675 | v679) => v678 +((v684 | (v357 | v358) & v345 | v688 | v39 | v593 | v594) & v681 & v686 & ~(v683 | v17 | v18) | (v684 | v345 & ~v356 | v688 | v39 | v593 | v594) & (v17 | v18) & v681 & (v686 | v687) & ~v683) & ~v685 => v682 +((v691 | v345 | v692 | v694 | v696) & (v694 | v695 & v345 | v696) & v697 & ~(v17 | v18) | (v691 | v345 | v692 | v694 | v696) & (v17 | v18) & (v694 | v695 & v345 | v696) & v697 & ~v693) & ~v689 => v690 +((v3 | v4 | v314 | v464 | v345 | v482 | v438 | v439) & (v3 | v4 | v314 | v464 | v345 | v482 | v515 | v432 | v434 | v375 | v438 | v439 | v447 | v449 | v453 | v458) & ~(v39 | v743 | v17 | v18) | (v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535) & ~(v39 | v743 | v17 | v18) | (v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v39 | v743 | v17 | v18) | (v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721) & ~(v39 | v743 | v17 | v18) | (v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~(v39 | v743 | v17 | v18) | (v385 | v737 | v738 | v386 | v739 | v740 | v561 | v390 | v392 | v480 | v394 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v400 | v747) & ~(v756 | v39 | v743 | v17 | v18) | (v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v756 | v39 | v743 | v17 | v18) | (v572 | v755 | v573 | v574 | v575 | v576) & ~(v39 | v743 | v17 | v18) | (v17 | v18) & (v439 | v379 & ~(v518 | v521 | v536 | v551) | v384 | v408 & ~(v387 | v388 | v389 | v741 | v742 | v480 | v394 | v402) | v409) & ~(v756 | v39 | v743 | v726 | v727)) & ~v707 & ~v756 => v708 +((v3 | v4) & ~(v357 | v359) | v356 & v345) & (v17 | v18) & (v507 | v508 | v502 & v4) & v757 & v758 & (v3 | v4 | v345 | v390) & ~(v503 | v506) => v500 +((v759 | v765 | v587 | v356 & v775 | v357 | v358 | v359 | v356 & (v769 | v774) & (v3 | v4)) & ~((v356 & v772 & ~v775 | v773) & v345 | v39 | v17 | v18) | (v759 | v765 | v505 | v588 | v771 & v770 | v356 & (v775 | v3 | v4) | v357 | v359) & (v17 | v18) & ~(v345 & v356 & ~v775 | v39)) & ~(v760 | v761 | v762 | v764 | v766 | v767 | v768) => v763 +((v4 | v345 | v357 | v776) & ~(v17 | v18) | (v3 | v4 | v345 | v359) & (v17 | v18)) & ~v678 => v675 +((v4 | v357 | v359 | v324 | v782 & v316) & v679 & ~(v279 | v345 & (v356 | v358)) | (v4 & v505 | v359 | v782 & v316) & (v17 | v18) & v679 & ~(v356 & v345)) & ~(v777 | v778 | v779 | v780) => v781 +((v314 | v395 | v396) & ~(v17 | v18) | (v17 | v18) & (v314 | v396)) & ~(v4 & ~(v3 & v784 | v589 | v783) | v477 | v479) & ~(v490 | v491 | v492 | v493) => v478 +((v791 | v792 | v793 | v794 | v795 | v318) & ~(v17 | v18) | (v17 | v18) & (v791 | v793 | v795 | v318 | v319 | v796) | (v357 & ~v345 | v799) & v681 & (v789 | v790 | v39) & v797 & v798 & v799 & (v360 | v361 | v314) & ~(v17 | v18) | (v359 & ~v345 | v799) & (v17 | v18) & v681 & (v789 | v790 | v39) & v797 & v798 & v799 & (v360 | v361 | v314)) & ~(v785 | v786 | v787 | v788) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) => v315 +((v424 | v441) & (v671 | v672) & ~(v17 | v18) | (v424 | v441) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v640 +((v374 | v513 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v387 | v388 | v389 | v741 | v742) & ~(v17 | v18) | (v374 | v513 | v514 | v800 | v428 | v515 | v429 | v430 | v517 | v387 | v388 | v389 | v741 | v742) & (v17 | v18)) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v609 +((v374 | v513 | v514 | v800 | v515 | v517 | v376 | v379 | v384 & ~(v729 & v809) | v408 & ~(v390 | v480 | v394 | v397) | v409 | (v821 | v801 | v802 | v803) & v141) & (v771 | v356) | (v357 | v358) & ~v63 | (v505 | v359) & ~(v63 | v179)) & ~(v812 & ~v810) & ~(v804 | v805) & ~((v806 | v811) & ~(v814 | v815 | v816 | v580 | v817 | v819 | v820)) & ~((v807 | v808) & ~(v813 | v814 | v815 | v580 | v581 | v817 | v818 | v819 | v820 | v583)) => v822 +((v374 | v513 | v514 | v800 | v515 | v517 | v387 | v388 | v389 | v741 | v742) & (v671 | v672) & ~(v17 | v18) | (v374 | v513 | v514 | v800 | v515 | v517 | v387 | v388 | v389 | v741 | v742) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v637 +((v425 | v447) & (v671 | v672) & ~(v17 | v18) | (v425 | v447) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v635 +((v427 | v449) & ~(v17 | v18) | v427 & (v17 | v18)) & ~(v601 | v602 | v603 | v604 | v605 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v606 +((v515 | v432 | v375 | v449 | v455 | v823 | v824 | v825) & ~(v743 | v17 | v18) | (v17 | v18) & (v377 & ~v439 | v518 | v521 | v536 | v551 | v387 | v388 | v389 | v741 | v742 | v480 | v394 | v402) & ~(v743 | v726 | v727) | (v17 | v18) & ((v823 | v824 | v825) & v373 | (v726 | v727) & ~v373) & ~v743) & ~v708 => v707 +((v434 | v443 | v698 | v519 | v700 | v526 | v529 | v702 | v531 | v532 | v704 | v534 | v535 | v538 | v542 | v543 | v547 | v709 | v710 | v553 | v554 | v573 | v574) & (v671 | v672) & ~(v17 | v18) | (v434 | v443 | v698 | v519 | v700 | v526 | v529 | v702 | v531 | v532 | v704 | v534 | v535 | v538 | v542 | v543 | v547 | v709 | v710 | v553 | v554 | v573 | v574) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v641 +((v436 | v480) & (v671 | v672) & ~(v17 | v18) | (v436 | v480) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v648 +((v453 | v522 | v525 | v527 | v701 | v539) & (v671 | v672) & ~(v17 | v18) | (v453 | v522 | v525 | v527 | v701 | v539) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v643 +((v458 | v528) & (v671 | v672) & ~(v17 | v18) | (v458 | v528) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v642 +((v376 | v394) & (v671 | v672) & ~(v17 | v18) | (v376 | v394) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v649 +((v518 | v521 | v705 | v536 | v549 | v551 | v552 | v737 | v738 | v386 | v744 | v745 | v565 | v747 | v748 | v750 | v751 | v752 | v754) & (v671 | v672) & ~(v17 | v18) | (v518 | v521 | v705 | v536 | v549 | v551 | v552 | v737 | v738 | v386 | v744 | v745 | v565 | v747 | v748 | v750 | v751 | v752 | v754) & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v645 +((v699 | v520 | v523 | v524 | v530 | v703 | v533 | v537 | v540 | v541 | v706 | v544 | v545 | v546 | v548 | v378 | v550) & (v671 | v672) & v379 | (v385 | v739 | v740 | v561 | v392 | v562 | v563 | v564 | v397 | v746 | v400 | v566 | v567 | v568 | v401 | v402 | v403 | v569 | v404 | v749 | v570 | v753 | v571) & (v671 | v672) & v408 & ~(v17 | v18) | (v826 | v572 | v755 | v575 | v576) & (v671 | v672) & v409 | (v375 | v438 | v439 | v444 | v445) & (v671 | v672) & (v373 | v377) | (v385 | v739 | v740 | v561 | v392 | v562 | v564 | v397 | v746 | v400 | v566 | v567 | v568 | v401 | v402 | v403 | v569 | v404 | v749 | v570) & (v17 | v18) & (v671 | v672) & v408 & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v639 +((v831 & v822 | v833 | v834 | v836 | v837 | v827 | v828 | v829 | v830 | v832 | v838 | v839) & v178 | v837 & v178 & v835) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v131 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148) & ~(v271 | v272 | v273 | v274 | v275 | v276 | v129 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v130 +((v16 | v363 | v366 | v19 | v20) & ~(v17 | v18) | (v17 | v18) & (v16 | v363 | v19 | v20 | v367) | v314 & (v360 | v361 | v362 | v314) & ~(v357 | v358 & v345 | v359 | v17 | v18) | (v17 | v18) & (v360 | v361 | v314) & ~(v345 | v359)) & ~(v840 | v841 | v842 | v843 | v844 | v845 | v846 | v847 | v848 | v849) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v337 | v338 | v339 | v340 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) => v342 +((v17 | v18) & (v851 | v852) & v853 | v853 & v345 & ~(v17 | v18)) & (v851 | v852) & ~(v3 | v4 | v376) => v850 +((v17 | v18) & (v854 | v855) & v856 & ~v857 | (v17 | v18) & v359 & (v854 | v855) & ~(v39 | v593 | v594)) & ~v859 => v858 +((v17 | v18) & v502 & v861 & v500 & (v373 | v377 & ~v513) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v518 | v522 | v536 | v540 | v544 | v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v737 | v738 | v387 | v740 | v390 | v480 | v394 | v395 | v396 | v562 | v563 | v397 | v565 | v747) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v567 | v568 | v748 | v402 | v749 | v750 | v570 | v752 | v753 | v754 | v755 | v573 | v574) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v3 | v4 | v314 | v464 | v810 | v393 | v345 | v482) & ~(v593 | v594)) & ~(v501 & ~v577 | v860) => v757 +((v345 | v358 & v314 | v357 | v862 | v782 | v674) & v681 & (v675 | v678 | v679 | v562) & ~(v17 | v18) | (v4 & v505 | v345 | v359 | v862 | v782 | v674) & (v17 | v18) & v681 & (v675 | v678 | v679 | v562)) & ~v677 => v676 +((v870 & ~(v799 | v316) | (v587 | v359) & (v3 | v4)) & ~(v17 | v18) | v3 & (v17 | v18)) & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v866 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) => v865 +((v967 | v968) & ~(v17 | v18) | (v17 | v18) & (v966 | v967 | v968) | v345 & v359 & (v17 | v18) & (v969 | v970 | v971) & v681 & v965 & (v675 | v678 | v679) & v797 & v798 & v799 & (v972 | v361) & ~v39) & ~(v785 | v786 | v787 | v788) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) => v316 +((v587 | v356 & (v3 | v775) | v358 | v357 | v359 | v314 | v345) & ~(v17 | v18) | v17 | v314 & v18) & ~v973 => v974 +((v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v373 | v377 & ~(v513 | v441 | v446 | v456)) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v3 | v4 | v393 | v518 | v703 | v540 | v544 | v714 | v382 | v722 | v383) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v737 | v738 | v387 | v739 | v740 | v390 | v480 | v394 | v563 | v397 | v565 | v746 | v747) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v567 | v568 | v748 | v749 | v750 | v570 | v751 | v752 | v754 | v755) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v314 | v464 | v345 | v482) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v513 | v441 | v446 | v456) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v379 & ~(v518 | v703 | v540 | v544 | v378) | v384 & ~(v380 | v381 | v714 | v382 | v722 | v383)) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v385 | v386 | v388 | v389 | v561 | v741 | v742 | v392 | v395 | v396 | v562 | v744 | v564 | v745 | v400) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & (v566 | v401 | v402 | v403 | v569 | v404 | v753 | v571) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v359) & (v587 | v357 | v358 | v359) & v763 & v409 & ~(v826 | v755) & ~(v769 | v39 | v17 | v18) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v373 | v377 & ~(v513 | v514)) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v518 | v522 | v536 | v540 | v544 | v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v737 | v738 | v387 | v740 | v390 | v480 | v394 | v395 | v562 | v563 | v397 | v565 | v747) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v567 | v568 | v748 | v402 | v749 | v750 | v570 | v752 | v754) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v755 | v573 | v574) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v513 | v514) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & v379 & ~(v518 | v522 | v536 | v540 | v544 | v378) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & v384 & ~(v380 | v381 | v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v385 | v386 | v739 | v388 | v389 | v561 | v741 | v742 | v392 | v396 | v744 | v564 | v745 | v746 | v400) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & (v566 | v401 | v403 | v569 | v404 | v751 | v753 | v571) & ~(v769 | v39) | (v357 | v359) & (v17 | v18) & (v505 | v357 | v359) & v763 & v409 & ~(v826 | v755 | v573 | v574) & ~(v769 | v39)) & ~(v975 | v976 & ~v593 | v592 | v39) => v759 +((v505 | v771 | v356 | v358) & (v373 | v425 | v427 | v428 | v430 | v432 | v434 | v436 | v375 | v438 | v441 | v442 | v443) | (v505 | v771 | v356 | v358) & (v447 | v449 | v450 | v453 | v455 | v456 | v457 | v458 | v459 | v460 | v826) | (v588 | v983) & (v509 | (v17 | v18) & v835)) & ~(v978 | v979 | v980 | v981 | v982) => v977 +((v505 | v771 | v356 | v358) & (v424 | v513 | v517 | v555 | v556 | v711 | v716 | v717 | v719 | v729 | v383 | v730 | v733 | v560 | v735 | v736) | (v505 | v771 | v356 | v358) & (v518 | v698 | v519 | v524 | v700 | v525 | v526 | v528 | v529 | v702 | v532 | v533 | v538 | v542 | v546 | v709 | v710 | v552) | (v505 | v771 | v356 | v358) & (v739 | v561 | v391 | v396 | v744 | v564 | v749 | v753) | (v587 | v357) & (v424 | v513 | v517 | v555 | v556 | v711 | v716 | v717 | v719 | v729 | v383 | v730 | v733 | v560 | v735 | v736) | (v587 | v357) & (v518 | v698 | v519 | v524 | v700 | v525 | v526 | v528 | v529 | v702 | v532 | v533 | v538 | v542 | v546 | v709 | v710 | v552) | (v587 | v357) & (v739 | v561 | v391 | v396 | v744 | v564 | v749 | v753) | v359 & (v424 | v513 | v517 | v555 | v556 | v711 | v716 | v717 | v719 | v729 | v383 | v730 | v733 | v560 | v735 | v736) | v359 & (v518 | v698 | v519 | v524 | v700 | v525 | v526 | v528 | v529 | v702 | v532 | v533 | v538 | v542 | v546 | v709 | v710 | v552) | v359 & (v739 | v561 | v391 | v396 | v744 | v564 | v749 | v753)) & ~(v977 | v978 | v979 | v980 | v982) => v981 +((v505 | v771 | v356 | v358) & (v374 | v515 | v516 | v439 | v445 | v451 | v454 | v376 | v381 | v713 | v721 | v722 | v731 | v385 | v737 | v738) | (v505 | v771 | v356 | v358) & (v387 | v388 | v740 | v389 | v741 | v742 | v392 | v480 | v394 | v562 | v398 | v745 | v565 | v567 | v399 | v400 | v747) | (v505 | v771 | v356 | v358) & (v748 | v569 | v750 | v570 | v751 | v752 | v754 | v572 | v573 | v574 | v575 | v576) | (v587 | v357) & (v374 | v426 | v515 | v429 | v516 | v439 | v444 | v445 | v451 | v454 | v376) | (v587 | v357) & (v378 | v380 | v381 | v713 | v721 | v722 | v382 | v731 | v385 | v737 | v738 | v387 | v388 | v740) | (v587 | v357) & (v389 | v741 | v742 | v392 | v480 | v394 | v562 | v397 | v398 | v745 | v565 | v399 | v400 | v747 | v567 | v748 | v569 | v750 | v570 | v751 | v752 | v754) | (v587 | v357) & (v572 | v573 | v574 | v575 | v576) | v359 & (v373 | v374 | v425 | v426 | v427 | v428 | v515 | v429 | v516 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v444 | v443 | v445 | v446 | v447) | v359 & (v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v378 | v380 | v381 | v713 | v382 | v721 | v722 | v731 | v385 | v737) | v359 & (v738 | v387 | v388 | v740 | v389 | v741 | v742 | v392 | v480 | v394 | v562 | v397 | v398 | v745 | v565 | v399 | v400 | v747 | v567 | v748 | v569 | v750 | v570 | v751 | v752) | v359 & (v754 | v826 | v572 | v755 | v573 | v574 | v575 | v576)) & ~(v977 | v978 | v980 | v981 | v982) => v979 +((v505 | v771 | v356 | v358) & (v426 | v429 | v440 | v444 | v446 | v448 | v452 | v378 | v380 | v382 | v397 | v755) | (v587 | v357) & (v373 | v425 | v427 | v428 | v430 | v432 | v434 | v436 | v375 | v438 | v440 | v441) | (v587 | v357) & (v442 | v443 | v446 | v447 | v448 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v460 | v826 | v755)) & ~(v977 | v979 | v980 | v981 | v982) => v978 +((v505 | v771 | v356 | v358) & (v514 | v800 | v699 | v520 | v521 | v522 | v527 | v701 | v530 | v703) | (v505 | v771 | v356 | v358) & (v704 | v705 | v534 | v535 | v536 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v547 | v548) | (v505 | v771 | v356 | v358) & (v549 | v550 | v551 | v725 | v386 | v395 | v568 | v401 | v402 | v403) | (v587 | v357) & (v514 | v800 | v699 | v520 | v521 | v522 | v527 | v701 | v530 | v703) | (v587 | v357) & (v704 | v705 | v534 | v535 | v536 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v547 | v548) | (v587 | v357) & (v549 | v550 | v551 | v725 | v386 | v395 | v568 | v401 | v402 | v403) | v359 & (v514 | v800 | v699 | v520 | v521 | v522 | v527 | v701 | v530 | v703) | v359 & (v704 | v705 | v534 | v535 | v536 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v547 | v548) | v359 & (v549 | v550 | v551 | v725 | v386 | v395 | v568 | v401 | v402 | v403)) & ~(v977 | v978 | v979 | v981 | v982) => v980 +((v505 | v771 | v356 | v358) & (v523 | v531 | v537 | v553 | v554 | v712 | v714 | v715 | v557 | v718 | v720 | v723 | v558 | v724 | v559 | v728 | v732 | v734 | v390 | v563 | v746 | v566 | v404 | v571) | (v587 | v357) & (v523 | v531 | v537 | v553 | v554 | v712 | v714 | v715 | v557 | v718 | v720 | v723 | v558 | v724 | v559 | v728 | v732 | v734 | v390 | v563 | v746 | v566 | v404 | v571) | v359 & (v523 | v531 | v537 | v553 | v554 | v712 | v714 | v715 | v557 | v718 | v720 | v723 | v558 | v724 | v559 | v728 | v732 | v734 | v390 | v563 | v746 | v566 | v404 | v571)) & ~(v977 | v978 | v979 | v980 | v981) => v982 +((v356 & v772 & v984 & ~v986 | v988 | v989) & ~(v17 | v18) | v983 & (v17 | v18) & (v771 | v983)) & ~(v985 | v986 | v770) => v987 +((v356 & v775 | v358) & v1168 & v134 & v822 & (v3 | v4) & ~(v587 | v359 | v17 | v18) | ~v345 & v178 & v131 & v356 & ~(v17 | v18) | ~v345 & (v17 | v18) & v178 & v131 & (v771 | v356)) & ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v821 +((v357 & v345 | v688 | v593) & ~(v809 | v17 | v18) | (v345 & v359 | v688 | v593) & (v17 | v18) & ~v809) & ~v975 => v1350 +((v357 | v4 | v314 | v345 | v1354 | v1355 | v776) & ~(v1351 & v1356 | v17 | v18) | (v505 | v359 & v314 | v356 & v345 | v856 | v776) & (v17 | v18) & ~(v1351 & v1356)) & ~(v1352 | (v1357 | v1358 | v1359) & ~v976) & ~(v855 | v1353) => v854 +((v357 | v358 | v359) & v345 & v695 & v681 & (v854 | v855) & ~(v279 | v356 & v345 | v17 | v18) | v345 & v359 & (v17 | v18) & v1361 & ~(v356 & v345 | v1360)) & ~(v3 | v4 | v314 | v1355) => v1354 +((v357 | v358) & (v3 | v4) & v681 & v676 & v1362 & v679 & v1363 & v1364 & v1365 & ~(v345 | v316 | v17 | v18) | (v3 | v4) & (v17 | v18) & v681 & v676 & (v1362 | (v896 | v897) & (v1366 | v1367)) & v679 & v1363 & v1364 & v1365 & ~(v345 | v316)) & ~v1368 => v782 +((v357 | v358) & v345 | v593 | v594) & v682 & ~(v356 & v345 | v17 | v18) | (v345 & ~v356 | v593 | v594) & (v17 | v18) & v682 & ~(v356 & v345) => v684 +((v357 | v359) & v861 & (v373 | v425 | v426 | v427 | v428 | v515 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449 | v450 | v452) & ~(v1370 | v1371) | (v357 | v359) & v861 & (v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v378 | v555 | v722 | v383 | v480 | v394 | v565 | v747 | v567 | v750 | v751 | v752 | v754 | v826 | v755) & ~(v1370 | v1371)) & ~(v314 | v416 | v1370) => v1369 +((v357 | v359) & ~(v3 | v4 | v314) | v345) & ~(v395 | v345 & (v356 | v358) | v17 | v18) => v1372 +((v507 | v4 & (v506 | v501) | v13 | v14 | v15) & (v507 & ~v39 | v4 & ~(v357 | v359)) & ~(v17 | v18) | (v17 | v18) & (v507 | v508)) & ~v499 => v502 +(v1373 | v1375 | v1376 | v1378 | v1379 | v1380) & ~v743 & ~v1374 => v1377 +(v410 | v411 | v1381) & (v674 | (v415 | v460) & (v1382 | v820) | v410 | v411 | v1381) & ~v495 & ~(v490 | v491 | v492 | v493) => v494 +(v997 | v998) & (v178 | v1383) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156) & ~(v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v265 +(v997 | v998) & v141 & ~(v17 | v18) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157) & ~(v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248) & ~(v249 | v250 | v251 | v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v133 | v134 | v135 | v136) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v232 +(v674 | v415) & ~v481 & ~(v377 | v379 | v384 | v408 | v409) => v373 +(v1369 | v416 | v860 | v696 | (v356 & v774 | v989) & v314 | v463 | v345) & ~(v17 | v18) | (v1369 | v416 | v501 | v757 | v696 | v463 | v345 | v356 & ~v775 & v314) & (v17 | v18) => v861 +(v501 | v357 | v345) & v507 & ~(v498 | v17 | v18) | (v1386 | v508) & (v17 | v18) & v508 & (v1385 | v1384 & (~(v851 | v852) | (v851 | v852) & (~v1387 | v1387 & (v1386 | v39)))) & ~v498 => v504 +(v373 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v314 | v518 | v378 | v737 | v738 | v386 | v392 | v480 | v394 | v744 | v564 | v397 | v745 | v565 | v747 | v567 | v748 | v750 | v751 | v752 | v754) & ~(v1388 | v1390 | v1391 | v1392 | v1393) => v1389 +(v1371 | v1395 | v1397) & v811 & v1394 & v373 & ~(v17 | v18) | (v1370 | v1395 | v1397) & (v17 | v18) & v811 & v1394 & v373 => v1396 +(v851 & v853 & (v373 | v425 | v427 | v432 | v434 | v375 | v441 | v443 | v447 | v450 | v452 | v453 | v455 | v456 | v458 | v460) & ~(v17 | v18) | (v17 | v18) & (v851 | v852 | v1398) & v853) & (v3 | v4 | v393 | v345 | v373 | v425 | v427 | v515 | v432 | v434 | v375 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v460) => v1399 +(v851 | v852) & v853 & ~(v17 | v18) | (v17 | v18) & (v851 | v852 | v1398) & v853 => v1400 +(v1402 | (v357 | v359) & (v671 | v672)) & v853 & (v671 | v1402 | v672) & ~(v17 | v18) & ~(v1401 | v1403 | v1405 | v1406 | v1407 | v1408) => v1404 +(v1409 & v390 & ~(v17 | v18) | (v17 | v18) & v672 & v390) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v660 +(v1409 & v399 & ~(v17 | v18) | (v17 | v18) & v672 & v399) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v659 +(v1384 | v1385) & ~(v1410 | v1411 | v1412 | v1413) & ~(v1415 | v1416 | v1417 | v1418) => v1414 +(v781 | v782) & ~v279 & ~v678 => v679 +(v1362 | v3 | v4 | v314 | v345 & ~v359) & (v17 | v18) & v1423 & (v865 | v880 | v886 | v891 | v898) & ~(v1366 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) => v1424 +(v1362 | v4 | v314 | v345 | v357) & (v864 | v865 | v866 | v876 | v886 | v891) & ~(v17 | v18) & ~v1447 & ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1422) => v1421 +(v3 | v4 | v314 | v345 | v1449 | v357 | v359) & (v1451 & v1448 | (v1452 | v1453) & v1450) & ~(v17 | v18) | (v17 | v18) & (v1451 & v1448 | (v1452 | v1453) & v1450) => v1454 +(v3 | v4 | v314 | v345 | v482) & ~(v17 | v18) | (v3 | v4 | v314 | v482) & (v17 | v18) & ~v345 => v1455 +(v3 | v4 | v314 | v345 | v482) & ~(v1458 | v1459 | v1460 | v1461) & ~(v1456 & ~(v1382 | v813 | v814 | v820)) => v1457 +(v3 | v4 | v314 | v345 | v1464) & ~(v1462 | v1463) & ~v1465 => v797 +(v3 | v4 | v463 | v393 | v345 | v515 | v517 | v375 | v382 | v387) & ~v441 => v1466 +(v3 | v4 | v463 | v345 | v482 | v382 | v725 | v729 | v383 | v730 | v734 | v736 | v745) & ~(v515 | v517 | v378 | v386 | v387 | v390 | v392 | v395 | v396 | v562 | v564 | v397 | v398 | v570 | v753 | v826 | v755) & ~v468 => v1467 +(v3 | v4 | v479 | v1469) & (v3 | v4 | v382 | v1469) => v1468 +(v3 | v4 | v559) & ~(v1389 | v1390 | v1391 | v1392 | v1393) => v1388 +(v3 | v4 | v345 | v357) & v1471 & v1387 & v1470 & ~(v17 | v18) | (v3 | v4 | v345 | v359) & (v17 | v18) & v1471 & v1387 & v1470 => v1472 +(v3 | v4 | v345) & (v17 | v18) & v692 & ~v1473 => v1474 +(v3 | v4 | v482) & ~v743 & ~v314 & ~v464 => v1475 +(v3 | v4) & (v789 | v790) => v1476 +(v3 | v4) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v618 +(v3 | v4) & ~(v490 | v491 | v492 | v493) => v437 +(v3 | v4) & ~v743 & ~v314 & ~v464 => v1477 +(v3 | v4) & ~v492 & (v3 | v4 | v1478 | v1479 & v382 & (v976 | v1480)) & ~v418 => v419 +(v3 | v4) & ~v1483 & ~v1481 & ~(v373 | v377 | v379 | v409) & ~(v555 | v556 | v711 | v722 | v723 | v559 | v725 | v728 | v383 | v731 | v733 | v734 | v560 | v735) & ~(v408 & ~(v390 | v750)) => v1482 +(v3 | v314 | v4 | v482 | (v464 | v393 | v382 | v738 | v747 | v748) & v1484 | v345 & v505 | v359) & (v17 | v18) & (v507 | v508 | v502 & v4) & v501 & ~(v500 | v506) => v503 +(v3 | v427 | v432 | v449 | v455 | v450) & ~v756 => v1485 +(v1486 | v763 | v1449) & v570 & ~(v1487 | v1356 | v39) & ~(v760 | v761 | v764 | v766 | v767 | v3 | v4 | v314 | v464) => v765 +(v4 & v1484 | v759 | v482 | v357 | v358 & v345) & (v507 | v502 & v4) & v501 & ~(v593 | v594 | v17 | v18) & ~(v500 | v503) => v506 +(v4 & ~(v17 | v18) | (v4 | v345 & (v505 | v359)) & (v17 | v18)) & ~(v1489 | v972 | v1490 | v360 | v1491 | v362 | v1492 | v1488) => v361 +(v4 | v345 | v357 | v1487) & ~(v39 | v594 | v17 | v18) | (v4 | v345 | v359 | v1487) & (v17 | v18) & ~(v39 | v594) => v1486 +(v4 | v345 | v357) & ~(v482 | v17 | v18) | (v4 | v345 | v359 | v1494) & (v17 | v18) & ~v482 => v1493 +(v4 | v345) & (v17 | v18) & v1493 & v687 & ~(v345 & v356 & ~v775) => v1494 +(v314 | v345 | v357 | v359 | v375 | v443 | v452 | v382) & v1468 & v1496 & ~(v3 | v4 | v425 | v17 | v18) | (v357 | v359) & v1468 & v1495 & v1496 & v425 | (v345 | v357 | v359 | v375 | v443 | v452 | v382) & (v17 | v18) & v1468 & v1496 & ~(v3 | v4 | v425) => v1469 +(v504 | v345 | v359) & (v17 | v18) & v502 & v504 & ~v507 => v508 +(v791 | v795 | v318) & v776 & v502 & (v789 | v790) & ~v39 & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v14 | v15 | v27 | v28 | v29) => v13 +(v792 | v316 | v324 & (v1497 | v1498 | v1499)) & ~(v1490 | v360 | v361 | v1491 | v362 | v1492) & ~v1488 => v972 +(v793 | v966 | v967 | v968) & v776 & v502 & (v789 | v790) & ~v39 & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v13 | v15 | v27 | v28 | v29) => v14 +(v794 | v319) & v776 & v502 & (v789 | v790) & ~v39 & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v13 | v14 | v27 | v28 | v29) => v15 +(v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460) & ~(v373 | v379 | v384 | v408 | v409) => v377 +(v424 | v514 | v516 | v517 | v445 | v446 | v448 | v451 | v376 | v39 & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) | v39 & (v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v394)) & ~(v595 | v596 | v597 | v599) & ~v410 => v598 +(v424 | v441) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v612 +(v374 | v513 | v800 | v515 | v518 | v698 | v699 | v521 | v522 | v523 | v524 | v700 | v526 | v528 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v464 | v704 | v705 | v534 | v536 | v537 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v546 | v547 | v549 | v550 | v709 | v710 | v551 | v552 | v553 | v554 | v3 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v393 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v395 | v562 | v563 | v744 | v745 | v565 | v746 | v399 | v747 | v566 | v567 | v568 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v572 | v755 | v573 | v574) & ~(v595 | v597 | v598 | v599) => v596 +(v425 | v447) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v607 +(v426 & (v671 | v672) & ~(v17 | v18) | v426 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v663 +(v427 & (v671 | v672) & ~(v17 | v18) | v427 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v634 +(v800 | v428 | v515 | v429 | v516 | v430 | v517 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710 | v551 | v552 | v553 | v554 | v385 | v387 | v388 | v389 | v561 | v741 | v742 | v562 | v402 | v403 | v569 | v404) & ~(v1388 | v1389 | v1390 | v1391 | v1393) => v1392 +(v428 & (v671 | v672) & ~(v17 | v18) | v428 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v670) & ~v673 => v669 +(v515 | v517 | v387) & ~(v39 | v17 | v18) & ~v1398 => v1500 +(v429 & (v671 | v672) & ~(v17 | v18) | v429 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v667 | v668 | v669 | v670) & ~v673 => v666 +(v516 & (v671 | v672) & ~(v17 | v18) | v516 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669) & ~v670 => v673 +(v430 & (v671 | v672) & ~(v17 | v18) | v430 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v668 | v669 | v670) & ~v673 => v667 +(v432 & (v671 | v672) & ~(v17 | v18) | v432 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v638 +(v853 & (v373 | v377 | v386 | v387 | v388 | v389 | v741 | v742 | v392 | v480 | v394 | v397 | v402) & ~(v17 | v18) | (v17 | v18) & v853 & (v373 | v377 | v379 | v409 & ~v572) | (v17 | v18) & v853 & (v385 | v737 | v738 | v386 | v387 | v388 | v389 | v741 | v742 | v392 | v480 | v394 | v744 | v564 | v397 | v745 | v565 | v747 | v567 | v401 | v748 | v402 | v569 | v750 | v751 | v752 | v754)) & ~(v1402 | v1501 | v1409 | v672 | v1502 | v1503 | v1504 | v1505) => v671 +(v853 & (v4 | v345) & ~(v17 | v18) | v17 & v853 & (v4 | v314 | v345 | v482) | v18 & v853 & (v3 | v4 | v314 | v345 | v482)) & ~(v851 | v1398) & (v3 | v4 | v314 | v393 | v345 | v482 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) => v852 +(v853 & (v379 | v408 & ~(v386 | v387 | v388 | v389 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v397 | v398 | v399 | v402) | v409) & ~(v17 | v18) | (v17 | v18) & v853 & (v482 | v739 | v740 | v561 | v390 | v562 | v563 | v746 | v400 | v566 | v568 | v403 | v404 | v749 | v570 | v753 | v571 | v572)) & ~(v671 | v1402 | v1501 | v1409 | v1502 | v1503 | v1504 | v1505) => v672 +(v853 & (v345 | v373 | v377 & ~(v374 | v513 | v376) | v390 | v480 | v395 | v396) & ~(v17 | v18) | v853 & v4 & v506 & ~(v17 | v18) | (v17 | v18) & v853 & (v314 | v345 | v482 | v373 | v377 & ~(v374 | v513 | v800 | v516 | v376) | v390 | v480 | v395 | v396) | (v17 | v18) & v853 & (v3 | v4 | v464 | v393 | v382 | v738 | v747 | v748) & v503) & ~v1506 => v1484 +(v853 & (v345 | v482 | v390 | v395 | v396) & ~(v17 | v18) | (v17 | v18) & v853 & (v345 | v395 | v396)) & ~(v671 | v1402 | v1501 | v672 | v1502 | v1503 | v1504 | v1505) => v1409 +(v853 & ~(v17 | v18) | (v17 | v18) & v853 & (v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460)) & ~(v852 | v1398) & (v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) => v851 +(v434 | v443 | v698 | v519 | v700 | v526 | v702 | v531 | v532 | v704 | v534 | v536 | v538 | v542 | v543 | v709 | v710 | v553 | v554 | v557 | v566 | v567 | v573 | v574) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v613 +(v797 | v1464) & ~v1508 => v1507 +(v440 & (v671 | v672) & ~(v17 | v18) | v440 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v666 | v667 | v668 | v669 | v670) & ~v673 => v665 +(v442 & (v671 | v672) & ~(v17 | v18) | v442 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v661 +(v448 & (v671 | v672) & ~(v17 | v18) | v448 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669) & ~v673 => v670 +(v449 & (v671 | v672) & ~(v17 | v18) | v449 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v647 +(v452 & (v671 | v672) & ~(v17 | v18) | v452 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v650 +(v453 | v522 | v525 | v527 | v701 | v539 | v729) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v615 +(v454 & (v671 | v672) & ~(v17 | v18) | v454 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v664 +(v455 & (v671 | v672) & ~(v17 | v18) | v455 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v644 +(v457 & (v671 | v672) & ~(v17 | v18) | v457 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v651 +(v458 | v528 | v712 | v714 | v715 | v716 | v717 | v382 | v718 | v719 | v720 | v725 | v728 | v383 | v730 | v732 | v733 | v734 | v735 | v736) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v614 +(v459 & (v671 | v672) & ~(v17 | v18) | v459 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v669 | v670) & ~v673 => v668 +(v460 & (v671 | v672) & ~(v17 | v18) | v460 & (v17 | v18) & (v671 | v672) & ~(v399 | v390)) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v662 +(v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v373 | v377 | v384 | v408 | v409) => v379 +(v518 | v520 | v521 | v529 | v705 | v535 | v547 | v548 | v549 | v551 | v552 | v737 | v738 | v386 | v744 | v745 | v565 | v747 | v748 | v750 | v751 | v752 | v754) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v617 +(v463 | v425) & ~(v447 | (v3 | v4 | v314 | v464 | v345) & ~(v410 | v411)) => v1509 +(v463 | v699 | v382 | v745) & ~(v3 | v4 | v314 | v464 | v345) & ~(v490 | v491 | v492 | v493) => v465 +(v464 | v393 | (v426 | v432 | v436 | v375 | v438 | v439 | v444 | v445 | v446 | v448 | v454 | v459 | v699 | v523 | v524 | v530 | v703 | v533 | v537 | v540 | v541 | v706 | v544 | v545 | v546) & ~(v17 | v18) | (v432 | v436 | v375 | v438 | v439 | v444 | v445 | v446 | v448 | v454 | v699 | v523 | v524 | v530 | v703 | v533 | v537 | v540 | v541 | v706 | v544 | v545 | v546) & v17 | (v432 | v436 | v375 | v438 | v439 | v444 | v445 | v446 | v448 | v699 | v523 | v524 | v530 | v703 | v533 | v537 | v540 | v541 | v706 | v544 | v545 | v546) & v18 | (v550 | v555 | v556 | v711 | v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560 | v385 | v739 | v740 | v561 | v392 | v480 | v394 | v562 | v563) & ~(v17 | v18) | (v550 | v555 | v556 | v711 | v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560 | v385 | v739 | v740 | v561 | v392 | v480 | v394 | v562) & (v17 | v18) | (v564 | v397 | v746 | v568 | v401 | v402 | v403 | v569 | v404 | v749 | v570 | v753 | v571 | v572 | v755 | v575 | v576) & ~(v17 | v18) | (v564 | v397 | v746 | v401 | v402 | v403 | v569 | v404 | v749 | v570 | v572 | v755 | v575 | v576) & (v17 | v18)) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v611 +(v380 | v381 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~(v373 | v377 | v379 | v408 | v409) => v384 +(v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v464 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v572 | v755 | v573 | v574 | v575 | v576) & ~(v1388 | v1389 | v1390 | v1392 | v1393) => v1391 +(v555 | v556 | v711 | v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560) & v1402 & ~(v3 | v4 | v382) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v652 +(v556 | v712 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v725 | v728 | v729 | v383 | v730 | v732 | v733 | v734 | v560 | v735 | v736) & ~(v490 | v491 | v492 | v493) => v496 +(v712 | v714 | v715 | v716 | v717 | v382 | v718 | v719 | v720 | v725 | v728 | v383 | v730 | v732 | v733 | v734 | v735 | v736) & v1402 & ~(v3 | v4) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v654 +(v1139 | v821 | v1209 | v801 | v802 | v803 | v1056) & (v178 | v1383) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149) & ~(v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v131 +(v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v373 | v377 | v379 | v384 | v409) => v408 +(v1539 & ((v671 | v672) & (v1404 | v1405) | v1402 & v1404 | (v1501 | v1409) & v1405) | (v17 | v18) & (v671 | v672 | v1402 | v1501 | v1409) | v1539 & (v374 | v513 | v379 & ~v393 | v384 & ~(v4 | v382 | v725 | v729) | v314 | v409 & ~(v464 | v755)) | v1539 & (v385 | v386 | v387 | v388 | v389 | v741 | v742 | v392 | v394 | v397 | v402 | v739 | v561 | v744 | v564 | v745 | v565 | v746 | v400 | v566 | v567 | v401 | v403 | v569 | v404 | v751) | v1539 & v1400 & v851 & v1511 & v376 | v1539 & v1515 & (v464 | v382 | v725 | v729 | v755) | v1539 & v1515 & (v737 | v738 | v740 | v562 | v563 | v747 | v568 | v748 | v749 | v750 | v570 | v752 | v753 | v754 | v571) | v1539 & v1400 & v851 & v1515 & v1511 & v393 | v1539 & v1484 & (v514 | v800 | v516 | v517 | v439 | v444 | v480) | v1539 & v1515 & v1484 & (v424 | v426 | v428 | v515 | v429 | v430 | v436 | v440 | v442 | v445 | v446 | v448 | v451 | v454) | v1539 & v1515 & v1484 & (v390 | v395 | v396) | v1539 & v1400 & v852 & v1515 & (~v506 | v506 & v1484) & v4 | v1539 & v1400 & v852 & v1515 & v1484 & v345 & v1511 & v850 | v1539 & v1400 & v851 & v1515 & v1484 & v1511 & (v438 | v449 | v457 | v459) | v1539 & v1400 & v851 & v1399 & v1515 & v1484 & v1511 & (v373 | v425 | v427 | v432 | v434 | v375 | v441 | v443 | v447 | v450 | v452 | v453 | v455 | v456 | v458 | v460) | v1539 & v482 & v1356 | (v17 | v18) & v671 & v1512 & (v374 | v513 | v800 | v516 | v376 | v379 & ~v393 | v409 & ~(v464 | v572 | v755)) | (v17 | v18) & v671 & v1512 & (v385 | v386 | v388 | v389 | v741 | v742 | v392 | v480 | v394 | v744 | v564 | v397 | v745 | v565 | v567 | v401 | v402 | v569 | v751) | (v17 | v18) & v671 & v1515 & v1512 & (v737 | v750 | v752 | v754 | v755) | (v17 | v18) & v671 & v1515 & (~v503 | v503 & v1484) & v1512 & (v464 | v393 | v738 | v747 | v748) | (v17 | v18) & v671 & v1484 & v1512 & (v514 | v439) | (v17 | v18) & v671 & v1484 & v1512 & (v517 & v1400 & v1398 | v444 | v480) | (v17 | v18) & v671 & v1400 & v1398 & v1512 & v387 | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v424 | v445 | v446 | v448 | v451) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v426 | v428 | v515 & v1400 & v1398 | v429 | v430 | v436 | v440 | v442 | v449 | v454) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v438 | v457 | v459) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v427 | v453 | v455) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v373 | v425 | v432 | v434 | v375 | v441 | v443 | v447 | v450 | v452 | v456 | v458 | v460) | (v17 | v18) & v1402 & v1512 & v384 & ~(v3 | v4 | v382 | v725 | v729) | (v17 | v18) & v1402 & v1515 & v1512 & (v725 | v729) | (v17 | v18) & v1402 & v1515 & (~v503 | v503 & v1484) & v1512 & v382 | v17 & v1402 & (~v503 | v503 & v1484) & v1512 & v3 | (v17 | v18) & v1402 & v1400 & v852 & v1515 & (~v503 | v503 & v1484) & v1512 & v4 | (v17 | v18) & v1501 & v1484 & v1512 & v314 | (v17 | v18) & v1409 & v1515 & v1484 & (v1512 & v396 | v395) | (v17 | v18) & v1409 & v1400 & v852 & v1515 & v1484 & v1510 & v1512 & v345 | (v17 | v18) & v672 & v1512 & (v739 | v561 | v746 | v400 | v566 | v403 | v404 | v572) | (v17 | v18) & v672 & v1515 & v1512 & (v740 | v562 | v563 | v568 | v749 | v570 | v753 | v571) | (v17 | v18) & v672 & v1484 & v1533 & v482 & v1356 & v1512 | (v17 | v18) & v672 & v1515 & v1484 & v1512 & v390 | v18 & v1402 & v1400 & v852 & (~v503 | v503 & v1484) & v1512 & v3) & ~(v417 | v1513 | v1514 | v1516 | v1517 | v1518 | v1519 | v1520 | v1521 | v1522 | v1523 | v1524 | v1525 | v1526 | v1527 | v1528 | v1529 | v1530 | v1531 | v431 | v433 | v1532 | v435 | v1534 | v1535 | v1536 | v1537 | v1538) => v853 +(v17 | v18) & (v851 | v852) & v853 & ~(v3 | v4 | v1511) => v1540 +(v17 | v18) & (v1366 | v1424 | v1367 | v1440 | v1442 | v1443 | v1444) => v1423 +(v17 | v18) & (v505 | v771 | v356 & v775) & v486 & (v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v394 | v395 & v817 & v358 | v397 | v573 | v574 | v4 & v1542 | v345 & v1543) => v1541 +(v17 | v18) & (v771 | v983 | v356 & v775 | v1545) & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441) & ~v1449 | (v17 | v18) & (v771 | v983 | v356 & v775 | v1545) & (v442 | v443 | v444 | v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480) & ~v1449 => v1544 +(v17 | v18) & (v771 | v983) => v1546 +(v17 | v18) & v500 & ~(v593 | v594) & ~(v501 | v1547 | v1548) => v758 +(v17 | v18) & v501 & (v3 | v4 | v373 | v377 & ~(v513 | v514)) => v1549 +(v17 | v18) & v501 & v502 & (v373 | v377 & ~(v513 | v514) | v572 | v755 | v573 | v574 | v575 | v576) | (v17 | v18) & v501 & v502 & (v3 | v4 | v314 | v464 | v345) => v1550 +(v17 | v18) & v501 & v1484 & (v4 | v373 | v377) => v1551 +(v17 | v18) & v502 & (v851 | v852) & v1384 & v504 & v1387 & ~(v1360 | v1552 | v39) & ~(v3 | v4) => v1386 +(v17 | v18) & v1553 & (v373 | v424 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446 | v447 | v448 | v449 | v450 | v451) | (v17 | v18) & v1553 & (v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v386 | v392 | v480 | v397 | v572 | v755 | v573 | v574 | v575 | v576) | (v17 | v18) & v1553 & (v3 | v4 | v314 | v464 | v345) => v1554 +(v17 | v18) & v853 & v1555 & v1556 & ~v395 => v1512 +(v17 | v18) & v853 & ~(v851 | v852 | v1500 | v1557 | v1558) & (v515 | v517 | v387) => v1398 +(v17 | v18) & v505 & (v854 | v855) & (v858 | v857) => v856 +(v17 | v18) & v178 & v95 & v1559 & ~v822 & ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v1218 | v1219 | v1220 | v1221 | v1222 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v179 +(v17 | v18) & ~v1561 => v1560 +(v17 | v18) & ~v1563 & ~(v729 | v1564) => v1562 +(v390 | v395 | v396) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v623 +(v810 | v728 | v732) & v39 & v1567 & v682 & ~(v1566 | v809) => v1565 +(v562 & v756 | v563) & (v1568 | v756) & (v810 | v562 | v563) & v1567 & ~(v683 | v1350 | v39) & ~(v1565 | v1566 | v1559) => v809 +(v345 & (v17 | v18) & v178 & v131 & (v771 | v356) | v359 & ~(v3 | v4 | v314 | v345) & (v17 | v18) & v178 & v131 & v822 & (v505 | v359) | (v17 | v18) & v1168 & v134 & v822 & (v3 | v4)) & ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v1209 +(v345 & v178 & v130 & v822 & (v357 | v358) & ~(v17 | v18) | v345 & v505 & (v17 | v18) & v178 & v130 & v822 & (v505 | v359)) & ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v802 | v803 | v999 | v829 | v1003 | v1004) & ~(v1264 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055) & ~(v839 | v1322 | v1323 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137) & ~(v993 | v994 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v827 +(v345 | v482 | v314 | v385 | v737 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v392 | v394 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) & ~v1569 => v1570 +(v482 & v1571 & ~(v1351 & (v854 | v855) | v1533 | v1487 | v396 & ~v1572 | v395 & ~(v695 & v1572) | v566 | v765 | v17 | v18) | v314 & (v314 | v464 | v375 | v438 | v449 | v456 | v755) & ~(v1351 & (v854 | v855) | v1487 | v17 | v18) | v345 & v1572 & ~(v356 | v17 | v18) | (v314 | v482) & (v17 | v18) & ~(v1351 & (v854 | v855) | v1487 | v765 | v345 | v396 | v395 | v566)) & ~(v1573 | v1574) & ~(v3 | v4) & ~(v515 & ~(v580 | v1575) | v698 | v519 | v699 | v520 | v522 | v523 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v538 | v539 | v540) & ~(v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710 | v552 | v553 | v554) & ~(v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730) & ~(v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~((v737 | v738 | v748 | v570 | v752 | v754) & ~v580) & ~(v385 | v387 | v388 | v389 | v741 | v742 | v744 | v745 | v565 | v400 | v747 | v567 | v401 | v403 | v569 | v749 | v750 | v751) => v1356 +(v482 | v739 | v740 | v390 | v395 | v396 | v563 | v746 | v400 | v566 | v568 | v401 | v749 | v570 | v753 | v571) & ~(v1388 | v1389 | v1391 | v1392 | v1393) => v1390 +(v482 | v400) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v626 +(v1354 | v1355 | v345 & ~(v356 & v986)) & (v17 | v18) & v681 & ~v729 => v1361 +(v1602 | v1603) & v410 & ~(v17 | v18) & ~(v1576 | v1577 | v1578 | v1579 | v413 | v1580 | v1581 | v1582 | v1583 | v1584 | v1585 | v1586 | v1587 | v1588 | v1589 | v1590 | v1591 | v1592 | v509 | v1594 | v1595 | v1596 | v1597 | v1598 | v1599 | v1600 | v1601) => v1593 +(v826 | v572 | v755 | v573 | v574 | v575 | v576) & ~(v373 | v377 | v379 | v384 | v408) => v409 +(v1604 & (v681 & v797 & v798 & (v360 | v361) & (v356 | v358) & v345 & ~(v17 | v18) | (v17 | v18) & v681 & v797 & v798 & (v360 | v361) & (v356 | v505) & v345) | (v21 | v364 | v368 | v22 | v23) & ~(v17 | v18) | (v17 | v18) & (v21 | v364 | v22 | v23 | v369)) & ~(v840 | v841 | v842 | v843 | v844 | v845 | v846 | v847 | v848 | v849) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v337 | v338 | v339 | v340 | v342 | v343 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) => v344 +(v587 | v505 | v588 | v771 | v983 | v356 | v357 | v358 | v359) & (v515 | v518 | v521 | v536 | v378 | v551) & ~v1606 | (v587 | v505 | v588 | v771 | v983 | v356 | v357 | v358 | v359) & (v737 | v738 | v739 | v740 | v561 | v391 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v747) & ~v1606 | (v587 | v505 | v588 | v771 | v983 | v356 | v357 | v358 | v359) & (v566 | v567 | v568 | v748 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v826) & ~v1606 => v1605 +(v587 | v356 | v357 | v358 | v359 | v988 | v1545) & (v345 | v482 | v737 | v738 | v740 | v561 | v390 | v395 | v396 | v562 | v563 | v745 | v565 | v746 | v747) | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & (v566 | v567 | v568 | v748 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & (v3 | v515 | v432 | v449 | v455) => v1607 +(v587 | v357 | v359 | v989 | v356 & ~(v775 | v17 | v18)) & ~(v1410 | v1411 | v1608 | v1384 | v1412 | v1609 | v1413 | v1610 | v1611 | v1612) & ~v1417 & ~(v1411 | v1608 | v1384 | v1610 | v1611 | v1612) => v1385 +(v587 | v358 & v1615) & (v486 | v1613 & v345 | v414) | v505 & v414 => v1614 +(v505 & v1614 | v1545) & (v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v397 | v573 | v574) & ~(v421 | v1616) => v414 +(v771 & v772 & v987 | v771 & v772 & v770) & ~(v1617 | v1618 | v1619 | v1621) => v1620 +(v356 & (v986 & (v680 | v1623) | v987 & v680 | v770 & ~v769) | v4 & ~(v357 | v359) | v1470 | v1622 | v1472 | v39) & (v356 & (v986 & (v680 | v1623) | v987 & v680 | v770 & ~v769 & v345) | v3 | v4 | v1472 | v39) & ~(v17 | v18) | (v1470 | v1622 | v1472 | v39) & (v17 | v18) & (v1472 | v39) => v1471 +(v356 & v345 | v357 | v358 | v3 | v4 | v482 | v695 & ~v694) & v861 & v1624 & (v689 | v690) & ~(v279 | v17 | v18) | (v505 | v359 | v345 | v482 | v695 & ~v694) & (v17 | v18) & v861 & v1624 & (v689 | v690) => v696 +(v356 & v772 & ~v562 | (v587 | v357 | v358 | v359 | v988 & ~v562) & ~(v39 | v17 | v18) | (v357 | v358) & v39 & ~(v17 | v18) | v505 & v562 | v588 | (v17 | v18) & (v357 | v359) | v771 & ~v562) & (v490 | v492 | v493 | v494 & (v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v397) | v562 | v573 | v574) & ~(v414 | v1616 | v756) => v421 +(v356 & v775 | v358 & v1615) & (v3 | v4 | v314) & ~(v17 | v18) | v345 & v359 => v1625 +(v356 | v358) & (v1384 | v1385) & v390 => v1626 +(v357 & (v3 | v4 | v345) | v358 & (v4 | v345)) & v695 & v681 & v676 & v965 & ~(v17 | v18) | (v359 & (v3 | v4 | v345) | v505 & (v4 | v345)) & (v17 | v18) & v695 & v681 & v676 & v965 => v862 +(v357 & (v3 | v314) | v4 | v345) & v1454 & ~(v549 | v717 | v564 | v400 | v751 | v356 & v345 | v17 | v18) | (v359 & (v3 | v314) | v4 | v345) & (v17 | v18) & v1454 & ~(v356 & v345 | v549 | v717 | v564 | v400 | v751) => v1449 +(v357 & v345 & v967 & (v886 | v891 | v864 | v865 | v866) & v696 & ~(v39 | v17 | v18) | v345 & v359 & (v17 | v18) & v967 & v696 & ~(v693 | v39)) & ~v970 => v969 +(v357 | v359) & v345 & v798 & ~(v17 | v18) & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v865 | v866 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) => v864 +(v357 | v359) & ~(v1628 | v345 | v17 | v18) & ~(v1627 | v1630) & (v373 | v377 & ~(v424 | v374 | v513 | v514 | v800 | v516 | v517 | v445 | v446 | v448 | v451 | v376) | v480) & ~(v1631 | v1632 | v1633) => v1629 +(v358 & (v373 | v377 | v480 | v394) & ~(v997 | v998 | v39) | (v505 | v771 & v770) & (v373 | v377 | v480 | v394)) & ~(v1634 | v1635) & ~(v1637 | v1638) => v1636 +(v358 & v1615 | v358 & v1640 & v769 & v1604 | (v17 | v18) & v356 & (v1639 | v314 | v775) | v505 & (v1639 | v314) | v771 & v1639) & ~v1417 & ~(v1411 | v1608 | v1610 | v1611 | v1385 | v1612) => v1384 +(v358 & ~(v4 | v345) & v178 & v131 & v822 & (v357 | v358) & ~(v17 | v18) | v505 & ~(v4 | v314 | v345) & (v17 | v18) & v178 & v131 & v822 & (v505 | v359)) & ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v999 | v829 | v1003 | v1004 | v1005 | v1006) & ~(v1264 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058) & ~(v839 | v1322 | v1323 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139) & ~(v993 | v994 | v803 | v827 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v802 +(v694 | v776) & v694 & v690 & ~v279 => v691 +(v1472 | v1470) & v1472 & ~(v39 | v17 | v18) | (v1472 | v1386 | v1470) & (v17 | v18) & v1472 & ~v39 => v1387 +(v506 & (v499 | v502) & v860 & v1547 & v1644 & (v1553 | v39) & v1647 & v1648 & v1649 & v1650 & v504 & v697 & ~(v593 | v594 | v17 | v18) | (v17 | v18) & v503 & v502 & v861 & (v1553 | v39) & v504 & v697 & ~((v3 | v4 | v373 | v377 & ~(v513 | v514)) & ~v1549 | v395 | v396 | v593 | v594) | (v17 | v18) & v503 & v502 & v861 & (v395 | v396) & v504 & v697 & ~(v1553 | v593 | v594)) & ~(v1641 | v757 & ~v577 | v758 | v1642 | v1643 | v1645 | v1646) => v501 +(v862 | v3 | v4 | v345 | v1354 | v1355 | v395 & v1356 | v593 | v594) & (v694 | v696 | v345) & v692 & ~(v17 | v18) | (v862 | v3 | v4 | v345 | v593 | v594) & (v17 | v18) & (v694 | v696 | v345) & v692 => v695 +(v862 | v782 & (v316 | v1498 | v1499)) & v862 & v681 & v692 & v1363 & ~(v279 | v17 | v18) | (v862 | v316 | v1497 | v1498 | v1499) & (v17 | v18) & v862 & v681 & v692 & v1363 => v965 +(v695 & v690 & ~(v279 | v17 | v18) | (v17 | v18) & v695 & v690 & ~v693) & ~(v1652 | v693) & ~v1651 => v692 +(v782 & v1421 | v782 & (v782 | v4) & v1424 & (v865 | v880 | v886 | v891 | v898)) & ~(v1420 & ~(v581 | v817 | v1479 | v1653)) => v1362 +(v821 | v1209 | v801 | v802 | v803 | v1139) & v141 & ~(v17 | v18) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v268 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153) & ~(v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v267 +(v821 | v1209 | v801 | v802 | v803 | v1139) & v1168 & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165) & ~(v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v133 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v134 +(v836 | v828) & ~(v3 | v4) & ~(v3 & ~(v1479 | v583 | v1653) | v4 & ~(v1479 | v583 | v1653) | v589) => v1654 +(v1200 | v1203 | v990 | v1078) & (v178 | v1383) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157) & ~(v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v264 +(v1200 | v1203 | v990 | v1078) & v1168 & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152) & ~(v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v269 +(v1200 | v1203 | v1230 | v1232 | v990 | v1078) & v141 & ~(v17 | v18) & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154) & ~(v267 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v268 +(v1230 | v1232) & v178 & ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150) & ~(v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) => v132 +(v39 & v63 | v39 & v179) & ~v809 => v1559 +(v39 | v594) & ~(v3 | v4 | v314 | v345 | v17 | v18) | (v39 | v594) & (v17 | v18) & ~(v3 | v4 | v314 | v345 | v482) => v1655 +(v1662 | v1663 | v1664 | v1665 | v1458 | v1459 | v1460 | v1461 | v1656 | v1657 | v1658 | v1659 | v1660) & ~v1661 & ~(v1667 | v1668 | v811) => v1666 +(~((v587 & ~v769 | v357 | v359) & v506) & (v373 | v424 | v374 | v425 | v426 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~(v39 | v593 | v594 | v17 | v18) | ~((v587 & ~v769 | v357 | v359) & v506) & (v445 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460) & ~(v39 | v593 | v594 | v17 | v18) | ~((v587 & ~v769 | v357 | v359) & v506) & (v518 | v703 | v540 | v544 | v712 | v714 | v382 | v722 | v558 | v383 | v732 | v734 | v735 | v755) & ~(v39 | v593 | v594 | v17 | v18) | ~((v587 & ~v769 | v357 | v359) & v506) & (v737 | v738 | v387 | v739 | v740 | v390 | v480 | v394 | v563 | v397 | v565 | v746 | v747 | v567 | v568 | v748 | v402 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v39 | v593 | v594 | v17 | v18) | ~(v482 | v357 & v506 | v358 & v345) & (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v39 | v593 | v594 | v17 | v18) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v373 | v377) & ~(v39 | v593 | v594) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v518 | v699 | v522 | v536 | v540 | v544 | v551) & ~(v39 | v593 | v594) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v382 | v718 | v720 | v721) & ~(v39 | v593 | v594) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v722 | v723 | v558 | v724 | v559 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735) & ~(v39 | v593 | v594) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v737 | v738 | v387 | v388 | v740 | v390 | v742 | v480 | v394 | v395 | v562 | v563 | v397 | v745 | v565 | v746 | v747) & ~(v39 | v593 | v594) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v567 | v568 | v748 | v569 | v749 | v750 | v570 | v752 | v753 | v754) & ~(v39 | v593 | v594) | ~((v588 & ~v769 | v357 | v359) & v503) & (v17 | v18) & (v755 | v573 | v574) & ~(v39 | v593 | v594) | ~(v482 | v359 & v503) & (v17 | v18) & (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v39 | v593 | v594)) & ~(v501 | v1642 & ~v1543 | v1643) => v1645 +(~(v374 | v513 | v514 | v800 | v515 | v517 | v376 | v379 | v384 & ~v810 | v408 & ~(v390 | v480 | v394 | v397) | v409) & (v771 | v356) & ~(v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v460 | v17 | v18) | (v457 | v458 | v459 | v376) & (v17 | v18) & (v771 | v356) & (v851 | v852) | ~(v374 | v513 | v514 | v800 | v515 | v517 | v376 | v379 | v384 & ~v810 | v408 & ~(v390 | v480 | v394 | v397) | v409) & (v17 | v18) & (v771 | v356) & ~(v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460)) & ~(v822 & ~v810) => v812 +(~(v17 | v18) | ~v1494 & (v17 | v18)) & ~v687 => v686 +(~(v356 | v314) | v345) & ~v975 => v1669 +(~v345 & v178 & v131 & v822 & v357 & ~(v17 | v18) | v178 & v131 & v822 & v356 & v345 & ~(v17 | v18)) & ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v999 | v829 | v1003 | v1004 | v1005 | v1006 | v1007) & ~(v1264 | v1322 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058) & ~(v839 | v1323 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140) & ~(v993 | v994 | v802 | v803 | v827 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v801 +(~v870 & (v292 | v791 | v793 | v794 | v795 | v318 | v342 | v344) & ~(v4 | v314 | v17 | v18) | ~v870 & (v17 | v18) & (v292 | v315 | v342 | v344) & ~(v4 | v314)) & ~(v1489 | v972 | v1490 | v361 | v1491 | v362 | v1492 | v1488) => v360 +(~v776 & (v789 | v790 | v39) & v797 & (v791 | v795 | v318 | v1670 | v1671 | v1672 | (v843 | v1673 | v1674) & v587 | (v16 | v19 | v20 | v21 | v22 | v23) & v39) & ~(v17 | v18) | ~v776 & (v17 | v18) & (v789 | v790 | v39) & v797 & (v791 | v795 | v318 | v1670 | v1671 | v1672)) & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) => v9 +(~v776 & (v789 | v790 | v39) & v797 & (v792 | v793 | v1676 | v844 & v587 | (v363 | v364) & v39) & ~(v17 | v18) | ~v776 & (v789 | v790) & v797 & (v966 | v967 | v968 | (v1498 | v1499) & v587) | ~v776 & (v17 | v18) & (v789 | v790 | v39) & v797 & (v793 | v796 | v1675 | v1676)) & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v12 | v13 | v14 | v15 | v27 | v28 | v29) => v11 +(~v776 & (v789 | v790 | v39) & v797 & (v794 | v1677 | v845 & v587 | (v366 | v368) & v39) & ~(v17 | v18) | ~v776 & (v17 | v18) & (v789 | v790 | v39) & v797 & (v319 | v1678)) & ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v13 | v14 | v15 | v27 | v28 | v29) => v12 +v279 => ~v785 & ~(v317 | v318 | v319 | v846 | v849) & ~(v353 | v354) & ~(v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v1373 => v789 | v790 | v39 +v1373 => v1378 | v1379 | v1380 +v0 => ~(v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726) & ~(v1713 | v1714 | v1715 | v1716 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1811) & ~(v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1374 => ~v1377 +v1888 & (v4 | v674 | v434 | v375 | v441 | v456) | v410 | v411 & (v1889 | v1890 | v1891 | v1892 | v1893) => v1887 +v1888 => v1887 & (v4 | v345 | v674 | v434 | v375 | v441 | v456) +v634 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v634 => ~(v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v410 => v1887 & v494 +v410 => ~(v411 | v1894 | v490 | v491 | v492 | v493 | v598 | v599) +v411 => v494 +v411 => ~(v410 | v1894 | v490 | v491 | v492 | v493) +v635 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v635 => ~(v634 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v990 => v178 & v264 & (v771 | v356) | v141 & v268 & v356 & ~(v17 | v18) +v990 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016) & ~(v1264 | v839 | v1322 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833) & ~(v1323 | v1184 | v991 | v992 | v995 | v1028 | v1105 | v1107 | v1113 | v1116 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v412 => ~(v490 | v491 | v492 | v493) +v412 => ~v1895 +v1896 => (v17 | v18) & v852 & v853 & (v314 | v482) +v1896 => v851 | v852 +v1897 => v494 +v1894 => ~(v410 | v411) +v636 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v636 => ~(v634 | v635 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v1898 => v1889 +v1899 => (v17 | v18) & v852 & v853 & (v314 | v482) +v1899 => v851 | v852 +v1900 => (v789 | v790) & ~v345 +v1900 => ~(v1901 | v1902 | v1903 | v1904 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1940 | v1941 | v1949 | v1950) & ~(v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987) & ~(v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2018 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v637 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v637 => ~(v634 | v635 | v636 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v1381 => v1887 +v1907 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1940 | v1941 | v1949 | v1950) & ~(v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987) & ~(v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2018 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1375 => (v789 | v790) & ~v345 +v1375 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1940 | v1941 | v1949 | v1950) & ~(v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987) & ~(v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2018 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1376 => (v789 | v790) & ~v345 +v1376 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1940 | v1941 | v1949 | v1950) & ~(v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987) & ~(v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2018 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v638 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v638 => ~(v634 | v635 | v636 | v637 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2053 => v2054 +v639 => (v671 | v672) & v379 | (v671 | v672) & v408 & ~(v17 | v18) | (v671 | v672) & v409 | (v671 | v672) & (v373 | v377) | (v17 | v18) & (v671 | v672) & v408 & ~(v399 | v390) +v639 => ~(v634 | v635 | v636 | v637 | v638 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2055 => v1887 +v1656 => (v17 | v18) & (v811 | v1666) +v1656 => ~v1657 +v640 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v640 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v1657 => (v17 | v18) & (v811 | v1666) +v1657 => ~v1656 +v2056 => v2057 +v2056 => v2057 & ~(v587 | v588 | v359) +v641 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v641 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2058 => ~v2059 +v2059 => ~v2058 +v642 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v642 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v997 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010) & ~(v1264 | v1322 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088) & ~(v839 | v1323 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143) & ~(v993 | v994 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v2060 => v356 | v358 +v1540 => (v851 | v852) & ~(v3 | v4 | v1511) +v1540 => (v17 | v18) & (v851 | v852) & v853 +v643 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v643 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v998 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009) & ~(v1264 | v1322 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081) & ~(v839 | v1323 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142) & ~(v993 | v994 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1510 => (v851 | v852) & ~(v3 | v4 | v1511) +v1510 => (v17 | v18) & (v851 | v852) & v853 & (v775 | v314 | v482 | v393 | v345 | v376) +v1889 => (v410 | v411) & ~(v2061 | v1890 | v1891 | v1892) +v1890 => ~(v2061 | v1889 | v1891 | v1892) +v1891 => ~(v2061 | v1889 | v1890 | v1892) +v1892 => ~(v2061 | v1889 | v1890 | v1891) +v644 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v644 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v801 => v178 & v131 & v822 & v357 & ~(v17 | v18) | v178 & v131 & v822 & v356 & v345 & ~(v17 | v18) | v1168 & v134 & v822 & v357 & (v3 | v4) & ~(v17 | v18) | v141 & v267 & v822 & v357 & ~(v17 | v18) +v801 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v999 | v829 | v1003 | v1004 | v1005 | v1006 | v1007) & ~(v1264 | v1322 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058) & ~(v839 | v1323 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140) & ~(v993 | v994 | v802 | v803 | v827 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1658 => v1666 +v2062 => ~v2063 +v645 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v645 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v802 => v178 & v131 & v822 & (v357 | v358) & ~(v17 | v18) | v1168 & v134 & v822 & (v3 | v4) | v141 & v267 & v822 & ~(v17 | v18) | v178 & v131 & v356 & ~(v17 | v18) | (v17 | v18) & v178 & v131 & (v771 | v356) | (v17 | v18) & v178 & v131 & v822 & (v505 | v359) +v802 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v999 | v829 | v1003 | v1004 | v1005 | v1006) & ~(v1264 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058) & ~(v839 | v1322 | v1323 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139) & ~(v993 | v994 | v803 | v827 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v2064 => v410 | v411 +v1511 => (v851 | v852) & ~(v3 | v4 | v2065 | v1540 | v1510) +v1511 => v853 & ~(v17 | v18) +v1659 => v1666 +v2063 => ~v2062 +v1593 => v410 & ~(v17 | v18) +v1593 => ~(v1576 | v1577 | v1578 | v1579 | v413 | v1580 | v1581 | v1582 | v1583 | v1584 | v1585 | v1586 | v1587 | v1588 | v1589 | v1590 | v1591 | v1592 | v509 | v1594 | v1595 | v1596 | v1597 | v1598 | v1599 | v1600 | v1601) +v509 => ~(v1576 | v1577 | v1578 | v1579 | v413 | v1580 | v1581 | v1582 | v1583 | v1584 | v1585 | v1586 | v1587 | v1588 | v1589 | v1590 | v1591 | v1592 | v1593 | v1594 | v1595 | v1596 | v1597 | v1598 | v1599 | v1600 | v1601) +v646 => v1402 & (v3 | v4) +v646 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v803 => v1168 & v134 & v822 & (v3 | v4) & ~(v587 | v359 | v17 | v18) | v178 & v131 & v356 & ~(v17 | v18) | v178 & v131 & v822 & (v357 | v358) & ~(v17 | v18) | v141 & v267 & v822 & ~(v17 | v18) | (v17 | v18) & v1168 & v134 & v822 & (v3 | v4) | (v17 | v18) & v178 & v131 & (v771 | v356) | (v17 | v18) & v178 & v131 & v822 & (v505 | v359) +v803 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v802 | v999 | v829 | v1003 | v1004 | v1005) & ~(v1264 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057) & ~(v839 | v1322 | v1323 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138) & ~(v993 | v994 | v827 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v850 => (v851 | v852) & ~(v3 | v4 | v376) +v850 => (v17 | v18) & (v851 | v852) & v853 | v853 & v345 & ~(v17 | v18) +v1660 => v1666 +v647 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v647 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v827 => v178 & v130 & v356 & ~(v17 | v18) | v178 & v130 & v822 & (v357 | v358) & ~(v17 | v18) | (v17 | v18) & v178 & v130 & (v771 | v356) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) +v827 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v802 | v803 | v999 | v829 | v1003 | v1004) & ~(v1264 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055) & ~(v839 | v1322 | v1323 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137) & ~(v993 | v994 | v63 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v2066 => (v851 | v852) & ~(v3 | v4) +v1925 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1920 | v1921 | v1922 | v1923 | v1927 | v1928 | v1929) & ~(v1931 | v1933 | v1934 | v1935 | v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1945 | v1947 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965) & ~(v1966 | v1967 | v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975 | v1976 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997) & ~(v1958 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2010 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025 | v2026 | v2027 | v2029 | v2030) & ~(v1926 | v1930 | v1932 | v1943 | v1944 | v1948 | v1980 | v1986 | v2028 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v648 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v648 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v823 => ~(v824 | v825) +v63 => v141 & v95 & v1559 & ~v822 | v178 & v95 & v1559 & ~(v822 | v17 | v18) | (v17 | v18) & v178 & v95 & v1559 & ~v822 +v63 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v999 | v829 | v1003) & ~(v1264 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045) & ~(v839 | v1322 | v1323 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136) & ~(v993 | v994 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1512 => (v17 | v18) & v853 & v1555 & v1556 & ~v395 +v1512 => v1555 +v1512 => v1556 +v649 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v649 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v824 => ~(v823 | v825) +v650 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v650 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2067 => (v17 | v18) & v512 +v825 => ~(v823 | v824) +v1555 => v1512 +v651 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v651 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2068 => v674 +v2068 => ~(v2069 | v2070 | v2071 | v2072 | v2073) +v828 => (v17 | v18) & v178 & v130 & (v771 | v356) & v1654 & ~(v2074 | v2075) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) & v1654 & ~(v2075 | v3 | v4) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) & (v3 | v4) +v828 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63) & ~(v999 | v1000 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830 | v1035 | v1036) & ~(v1264 | v839 | v1322 | v1323 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126) & ~(v1002 | v1027 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1895 => (v410 | v411) & ~v412 +v1895 => ~(v490 | v491 | v492 | v493) +v1556 => v1512 +v1933 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1938) & ~(v1939 | v1940 | v1941 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975) & ~(v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008) & ~(v1918 | v1919 | v1920 | v1942 | v2009 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v652 => v1402 & ~(v3 | v4 | v382) +v652 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2069 => v674 +v2069 => ~(v2068 | v2070 | v2071 | v2072 | v2073) +v1571 => v1356 & ~(v314 | v464 | v345 | v375 | v438 | v449 | v456 | v755) +v1571 => ~(v17 | v18) +v1937 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1940 | v1941 | v1949 | v1950) & ~(v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987) & ~(v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2018 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v653 => v1402 & ~(v3 | v4 | v382) +v653 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2070 => v674 +v2070 => ~(v2068 | v2069 | v2071 | v2072 | v2073) +v1605 => (v587 | v505 | v588 | v771 | v983 | v356 | v357 | v358 | v359) & (v515 | v518 | v521 | v536 | v378 | v551) & ~v1606 | (v587 | v505 | v588 | v771 | v983 | v356 | v357 | v358 | v359) & (v737 | v738 | v739 | v740 | v561 | v391 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v747) & ~v1606 | (v587 | v505 | v588 | v771 | v983 | v356 | v357 | v358 | v359) & (v566 | v567 | v568 | v748 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v826) & ~v1606 +v1485 => v3 | v427 | v432 | v449 | v455 | v450 +v1485 => ~v756 +v414 => (v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v397 | v573 | v574) & ~(v421 | v1616) +v414 => v505 & v1614 | v1545 +v292 => (v360 | v361 | v362 | v314) & ~(v357 | v359 | v17 | v18) & (v1 | v293 | v294 | v2) & ~(v17 | v18) +v292 => ~(v317 | v318 | v319) & ~(v353 | v354) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v1 => v292 & (v5 | v9 | v12) & (v864 | v865 | v866 | v867 | v876 | v880) & ~(v17 | v18) +v1 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726) & ~(v1713 | v1714 | v1715 | v1716 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1811) & ~(v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v293 => v292 & (v7 | v11) & (v864 | v865 | v866 | v867 | v880) & ~(v17 | v18) +v293 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726) & ~(v1713 | v1714 | v1715 | v1716 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1811) & ~(v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v294 => v292 & (v5 | v8 | v9 | v12) & (v864 | v865 | v866 | v867 | v876 | v880) & ~(v17 | v18) +v294 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v1722 | v2 | v1723 | v1724 | v1725 | v1726) & ~(v1713 | v1714 | v1715 | v1716 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1811) & ~(v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v654 => v1402 & ~(v3 | v4) +v654 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v829 => (v17 | v18) & v178 & v130 & (v771 | v356) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) +v829 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v2 => v292 & (v5 | v9) & (v864 | v865 | v866 | v867 | v880) & ~(v17 | v18) +v2 => ~v316 & ~v342 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v1723 | v1724 | v1725 | v1726) & ~(v1713 | v1714 | v1715 | v1716 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1811) & ~(v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v498 => (v507 | v4) & ~(v504 | v17 | v18) | (v17 | v18) & v507 & ~v504 +v655 => v1402 & ~(v3 | v4 | v382) +v655 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v499 => v507 & v39 & ~(v17 | v18) +v499 => ~(v2076 | v502 | v1646) +v681 & v676 & (v965 & (v675 | v678 | v679 | v562) | v782) & ~v279 & ~v677 => v1363 +v681 & v690 & v691 => v694 +v681 & ~v677 => v2077 +v681 => v2077 & ~v674 | v2077 & v676 & v674 +v682 => v681 & v686 & ~(v683 | v17 | v18) | (v17 | v18) & v681 & (v686 | v687) & ~v683 +v682 => ~v685 +v372 => v405 & v407 & ~((v426 | v428 | v515 | v429 | v430 | v517 | v436 | v439 | v440 | v442 | v444 | v448 | v454 | v480) & ~v2078 | v775 | v3 | v4 | v345 | v482) & v1604 +v372 => ~(v314 | v464) +v674 & (v2079 | v2074 | v2075 | v2080) & ~(v141 | v807) & ~(v1168 & ~v579 | v822 & ~(v813 | v814 | v815 | v580 | v581 | v817 | v818 | v819 | v820 | v583)) => v808 +v674 => v1539 & (v1645 | v506 | v593 | v594) & v511 & (v493 | v494) & (v414 | v421) & v2081 & v497 | (v17 | v18) & (v1645 | v503 | v593 | v594) & v511 & (v493 | v494) & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v674 => ~v485 & v373 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v656 => v1501 +v656 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2091 => v1668 +v500 => (v17 | v18) & (v507 | v508 | v502 & v4) & v757 & v758 & (v3 | v4 | v345 | v390) +v500 => ~(v503 | v506) +v415 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v415 => ~v485 & v373 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1369 => v861 & (v373 | v425 | v426 | v427 | v428 | v515 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449 | v450 | v452) & ~(v1370 | v1371) | v861 & (v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v378 | v555 | v722 | v383 | v480 | v394 | v565 | v747 | v567 | v750 | v751 | v752 | v754 | v826 | v755) & ~(v1370 | v1371) +v1369 => ~(v314 | v416 | v1370) +v416 => (v382 | v383 | v4 | v3) & ~(v1369 | v1370 | v490 | v491 | v492 | v493) +v416 => v861 & v1604 +v501 & v861 & ~(v17 | v18) & ~v757 => v860 +v501 & ~(v17 | v18) & ~(v758 | v1548) => v1547 +v501 & ~(v17 | v18) => v1644 +v501 & ~(v17 | v18) => v1647 +v501 & ~(v17 | v18) => v1648 +v501 & ~(v17 | v18) => v1649 +v501 & ~(v17 | v18) => v1650 +v501 & ~(v39 | v17 | v18) | (v17 | v18) & v501 & ~((v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v397 | v409 | v3 | v4 | v314 | v464 | v345) & ~v1554 | v395 | v396) => v1553 +v501 => (~(v17 | v18) | (v17 | v18) & ~((v373 | v377 & ~(v513 | v514) | v3 | v4 | v314 | v345 | v464 | v409) & ~(v1550 | v39))) & ((v373 | v424 | v374 | v425 | v426 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~(v17 | v18) | (v445 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v703 | v540 | v544 | v714 | v382 | v722 | v383) & ~(v17 | v18) | (v737 | v738 | v387 | v739 | v740 | v390 | v480 | v394 | v563 | v397 | v565 | v746 | v747 | v567 | v568 | v748 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v755) & ~(v17 | v18) | (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v17 | v18) | (v17 | v18) & (v373 | v424 | v374 | v425 | v426 | v427 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) | (v17 | v18) & (v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v522 | v536 | v540 | v544) | (v17 | v18) & (v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) | (v17 | v18) & (v737 | v738 | v387 | v740 | v390 | v480 | v394 | v395 | v396 | v562 | v563 | v397 | v565 | v747 | v567 | v568 | v748 | v402 | v749 | v750 | v570 | v752 | v753 | v754 | v755 | v573 | v574) | (v17 | v18) & (v3 | v4 | v314 | v464 | v810 | v393 | v345 | v482)) & (v506 & (v499 | v502) & v860 & v1547 & v1644 & (v1553 | v39) & v1647 & v1648 & v1649 & v1650 & v504 & v697 & ~(v593 | v594 | v17 | v18) | (v17 | v18) & v503 & v502 & v861 & (v1553 | v39) & v504 & v697 & ~((v3 | v4 | v373 | v377 & ~(v513 | v514)) & ~v1549 | v395 | v396 | v593 | v594) | (v17 | v18) & v503 & v502 & v861 & (v395 | v396) & v504 & v697 & ~(v1553 | v593 | v594)) +v501 => ~(v1641 | v757 & ~v577 | v758 | v1642 | v1643 | v1645 | v1646) +v757 => (v17 | v18) & v502 & v861 & v500 & (v373 | v377 & ~v513) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v518 | v522 | v536 | v540 | v544 | v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v737 | v738 | v387 | v740 | v390 | v480 | v394 | v395 | v396 | v562 | v563 | v397 | v565 | v747) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v567 | v568 | v748 | v402 | v749 | v750 | v570 | v752 | v753 | v754 | v755 | v573 | v574) & ~(v593 | v594) | (v17 | v18) & v502 & v861 & v500 & (v3 | v4 | v314 | v464 | v810 | v393 | v345 | v482) & ~(v593 | v594) +v757 => ~(v501 & ~v577 | v860) +v502 => (v507 & ~v39 | v4 & ~(v357 | v359)) & ~(v17 | v18) | (v17 | v18) & (v507 | v508) +v502 => ~v499 +v860 => v501 & v861 & ~(v17 | v18) +v860 => ~v757 +v1547 => v501 & ~(v17 | v18) +v1547 => ~(v758 | v1548) +v657 => v1409 & v345 +v657 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2092 => v853 +v503 => (v17 | v18) & (v507 | v508 | v502 & v4) & v501 +v503 => ~(v500 | v506) +v758 => (v17 | v18) & v500 & ~(v593 | v594) +v758 => ~(v501 | v1547 | v1548) +v861 => ~(v17 | v18) | v17 | v18 +v658 => v1409 & (v395 | v396) +v658 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2093 => v1470 +v804 => ~(v805 | v1383 | v822) +v805 => ~(v804 | v822) +v596 => v374 | v513 | v800 | v515 | v518 | v698 | v699 | v521 | v522 | v523 | v524 | v700 | v526 | v528 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v464 | v704 | v705 | v534 | v536 | v537 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v546 | v547 | v549 | v550 | v709 | v710 | v551 | v552 | v553 | v554 | v3 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v393 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v395 | v562 | v563 | v744 | v745 | v565 | v746 | v399 | v747 | v566 | v567 | v568 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v572 | v755 | v573 | v574 +v596 => ~(v595 | v597 | v598 | v599) +v1644 => v501 & ~(v17 | v18) +v598 => v424 | v514 | v516 | v517 | v445 | v446 | v448 | v451 | v376 | v39 & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) | v39 & (v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v394) +v598 => ~(v595 | v596 | v597 | v599) & ~v410 +v599 => (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~v39 | (v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v394) & ~v39 +v599 => ~(v595 | v596 | v597 | v598) & ~v600 & ~v410 +v1645 => (v373 | v424 | v374 | v425 | v426 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~(v39 | v593 | v594 | v17 | v18) | (v445 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460) & ~(v39 | v593 | v594 | v17 | v18) | (v518 | v703 | v540 | v544 | v712 | v714 | v382 | v722 | v558 | v383 | v732 | v734 | v735 | v755) & ~(v39 | v593 | v594 | v17 | v18) | (v737 | v738 | v387 | v739 | v740 | v390 | v480 | v394 | v563 | v397 | v565 | v746 | v747 | v567 | v568 | v748 | v402 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v39 | v593 | v594 | v17 | v18) | (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v39 | v593 | v594 | v17 | v18) | (v17 | v18) & (v373 | v377) & ~(v39 | v593 | v594) | (v17 | v18) & (v518 | v699 | v522 | v536 | v540 | v544 | v551) & ~(v39 | v593 | v594) | (v17 | v18) & (v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v382 | v718 | v720 | v721) & ~(v39 | v593 | v594) | (v17 | v18) & (v722 | v723 | v558 | v724 | v559 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735) & ~(v39 | v593 | v594) | (v17 | v18) & (v737 | v738 | v387 | v388 | v740 | v390 | v742 | v480 | v394 | v395 | v562 | v563 | v397 | v745 | v565 | v746 | v747) & ~(v39 | v593 | v594) | (v17 | v18) & (v567 | v568 | v748 | v569 | v749 | v750 | v570 | v752 | v753 | v754) & ~(v39 | v593 | v594) | (v17 | v18) & (v755 | v573 | v574) & ~(v39 | v593 | v594) | (v17 | v18) & (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v39 | v593 | v594) +v1645 => ~(v501 | v1642 & ~v1543 | v1643) +v2094 => ~(v2095 | v2096) +v659 => v1409 & v399 & ~(v17 | v18) | (v17 | v18) & v672 & v399 +v659 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2095 & ~v345 & ~v2094 => v2096 +v2095 => v2096 & ~v345 +v2095 => ~v2094 & ~(v2099 | v589 | v2100 | v774 | v775 | v2101 | v2102 | v2103 | v2104 | v2098 | v2097) +v2096 => ~v2094 +v2096 => ~v345 +v418 => (v314 | v382 | v390 | v753) & ~v492 +v418 => ~v419 +v419 => (v3 | v4 | v1478 | v1479 & v382 & (v976 | v1480)) & ~v418 +v419 => ~v492 +v1553 => v501 & ~(v39 | v17 | v18) | (v17 | v18) & v501 & ~((v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v397 | v409 | v3 | v4 | v314 | v464 | v345) & ~v1554 | v395 | v396) +v1625 => (v356 & v775 | v358 & v1615) & (v3 | v4 | v314) & ~(v17 | v18) | v345 & v359 +v1647 => v501 & ~(v17 | v18) +v1648 => v501 & ~(v17 | v18) +v660 => v1409 & v390 & ~(v17 | v18) | (v17 | v18) & v672 & v390 +v660 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v1649 => v501 & ~(v17 | v18) +v1624 => v696 +v1624 => ~(v2105 | v2106) +v2077 & ~v674 | v2077 & v676 & v674 => v681 +v2077 => v681 & ~v677 +v1419 => ~v1447 & ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1420 | v1421 | v1422) +v1447 => ~(v1419 | v1420 | v1421 | v1422) & ~(v1445 & ~v2107 | v1446 & ~v579) +v1447 => ~(v587 | v359 | v17 | v18) +v1420 => ~((v2108 | v2109) & ~v579 | v1362 & ~(v581 | v817 | v1479 | v1653)) & ~v1447 & ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1421 | v1422) +v683 => ~(v682 | v3 | v4 | v314 | v809 | v345 | v39 | v593 | v594 | v775) +v683 => ~(v2110 | v976 & ~v1479) +v1421 => (v864 | v865 | v866 | v876 | v886 | v891) & ~(v17 | v18) +v1421 => ~v1447 & ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1422) +v1560 => v17 | v18 +v1560 => ~v1561 +v2111 => v3 | v4 +v1947 => v18 +v1947 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1920 | v1921 | v1922 | v1923 | v1927 | v1928 | v1929) & ~(v1931 | v1933 | v1934 | v1935 | v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1945 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965 | v1966) & ~(v1967 | v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999) & ~(v1958 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2010 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025 | v2026 | v2027 | v2029 | v2030 | v2031 | v2034) & ~(v1925 | v1926 | v1930 | v1932 | v1943 | v1944 | v1948 | v1976 | v1980 | v1986 | v2028 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1507 & v797 & ~(v3 | v4 | v314 | v345) & ~v2112 => v1464 +v1507 => v797 | v1464 +v1507 => ~v1508 +v1544 => (v17 | v18) & (v771 | v983 | v356 & v775 | v1545) & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441) & ~v1449 | (v17 | v18) & (v771 | v983 | v356 & v775 | v1545) & (v442 | v443 | v444 | v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480) & ~v1449 +v1607 => (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & (v345 | v482 | v737 | v738 | v740 | v561 | v390 | v395 | v396 | v562 | v563 | v745 | v565 | v746 | v747) | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & (v566 | v567 | v568 | v748 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & (v3 | v515 | v432 | v449 | v455) +v421 => (v490 | v492 | v493 | v494 & (v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v397) | v562 | v573 | v574) & ~(v414 | v1616 | v756) +v421 => v356 & v772 & ~v562 | (v587 | v357 | v358 | v359 | v988 & ~v562) & ~(v39 | v17 | v18) | (v357 | v358) & v39 & ~(v17 | v18) | v505 & v562 | v588 | (v17 | v18) & (v357 | v359) | v771 & ~v562 +v95 => (v63 | v179) & v178 | (v63 | v179) & v141 +v95 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v277 | v278 | v50 | v51 | v52 | v53 | v54 | v55 | v56 | v57 | v58) & ~(v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v77 | v78 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v83 | v84 | v85 | v86 | v87 | v96 | v97 | v98 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117) & ~(v118 | v120 | v121 | v122 | v127 | v128 | v129 | v130 | v131 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159) & ~(v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v79 | v80 | v81 | v82 | v105 | v106 | v107 | v108 | v110 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v95 | v269 | v232 | v131 | v130 | v264 | v132 | v267 | v268 | v134 | v265 +v373 & ~v345 & ~v2114 => v2113 +v373 => v674 | v415 +v373 => ~v481 & ~(v377 | v379 | v384 | v408 | v409) +v373 | v377 & ~(v374 | v513 | v800 | v515 | v516 | v517) | v480 | v394 | v562 | v570 | v755 | v314 | v463 | v464 | v482 | v490 | v491 | v492 | v493 => v497 +v373 | v377 | v480 | v394 => v2081 +v373 | v377 | v480 | v394 | v755 | v464 => v2115 +v1650 => v501 & ~(v17 | v18) +v1455 => ~(v17 | v18) | (v17 | v18) & ~v345 +v2116 => v2117 & (v681 | v593 | v594) +v2118 => (v681 | v593 | v594) & ~(v17 | v18) | (v17 | v18) & (v681 | v593 | v594) & v1560 & ~(v319 | v796 | v1675 | v2119 | v1678 | v849 | v367 | v369 | v371) +v1350 => ~(v809 | v17 | v18) | (v17 | v18) & ~v809 +v1350 => ~v975 +v661 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v661 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v1457 => ~(v1456 & ~(v1382 | v813 | v814 | v820)) +v1457 => ~(v1458 | v1459 | v1460 | v1461) +v1422 => ~v1447 & ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421) +v662 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v662 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v2120 => v356 & v772 & v984 +v1401 => (v17 | v18) & ~(v314 | v345 | v1408) +v1401 => ~(v1403 | v1404 | v1405 | v1406 | v1407 | v1408) +v601 => v17 | v18 +v601 => ~(v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v602 => v17 | v18 +v602 => ~(v601 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v603 => v18 +v603 => ~(v601 | v602 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v604 => v17 | v18 +v604 => ~(v601 | v602 | v603 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v605 => v17 | v18 +v605 => ~(v601 | v602 | v603 | v604 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v663 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v663 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v606 => ~(v601 | v602 | v603 | v604 | v605 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v606 => ~(v17 | v18) | v17 | v18 +v607 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v608 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v608 => ~(v17 | v18) | v17 | v18 +v609 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v609 => ~(v17 | v18) | v17 | v18 +v611 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v612 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v1370 => (v17 | v18) & (v811 | v1396) & (v373 | v450 | v456) & ~v1369 & v1604 +v1370 => ~v1369 +v613 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v1371 => (v811 | v1396) & (v373 | v450 | v456) & ~(v1369 | v17 | v18) & v1604 +v614 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v615 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v664 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v664 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 +v616 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v617 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v618 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v619 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v620 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v621 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v622 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v623 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v625 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v665 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v665 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v666 | v667 | v668 | v669 | v670) & ~v673 +v626 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v1400 => (v851 | v852) & v853 & ~(v17 | v18) | (v17 | v18) & (v851 | v852 | v1398) & v853 +v627 => v17 | v18 +v627 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v628 | v629 | v630) & ~(v631 | v632 | v633) +v628 => v17 | v18 +v628 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v629 | v630) & ~(v631 | v632 | v633) +v630 => v17 | v18 +v630 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v631 | v632 | v633) +v631 => v17 | v18 +v631 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v630 | v632 | v633) +v1552 => ~(v3 | v4 | v314 | v431 | v464) & ~v515 +v632 => v17 | v18 +v632 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v630 | v631 | v633) +v633 => v17 | v18 +v633 => ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v630 | v631 | v632) +v666 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v666 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v667 | v668 | v669 | v670) & ~v673 +v2121 => v1394 & (v17 | v18) +v851 => v853 & ~(v17 | v18) | (v17 | v18) & v853 & (v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) +v851 => ~(v852 | v1398) & (v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) +v852 => v853 & (v4 | v345) & ~(v17 | v18) | v17 & v853 & (v4 | v314 | v345 | v482) | v18 & v853 & (v3 | v4 | v314 | v345 | v482) | (v17 | v18) & v853 & (v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) +v852 => ~(v851 | v1398) & (v3 | v4 | v314 | v393 | v345 | v482 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) +v1398 => (v17 | v18) & v853 +v1398 => ~(v851 | v852 | v1500 | v1557 | v1558) & (v515 | v517 | v387) +v1399 => v851 & v853 & (v373 | v425 | v427 | v432 | v434 | v375 | v441 | v443 | v447 | v450 | v452 | v453 | v455 | v456 | v458 | v460) & ~(v17 | v18) | (v17 | v18) & (v851 | v852 | v1398) & v853 +v1399 => v3 | v4 | v393 | v345 | v373 | v425 | v427 | v515 | v432 | v434 | v375 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v460 +v667 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v667 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v668 | v669 | v670) & ~v673 +v2122 => v1394 & (v17 | v18) +v1628 => (v373 | v377 & ~(v374 | v513 | v514 | v800 | v516 | v517 | v448) | v480) & ~(v1629 | v17 | v18) +v1628 => ~v2123 & ~v2124 +v668 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v668 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v669 | v670) & ~v673 +v2125 => v1394 & (v17 | v18) +v2126 => (v17 | v18) & (v373 | v377 & ~(v374 | v513 | v514 | v800 | v516 | v517 | v448) | v480) +v2127 => v1356 & v1571 & ~(v314 | v345 | v482) +v2127 => ~(v17 | v18) +v1629 => ~(v1627 | v1630) & (v373 | v377 & ~(v424 | v374 | v513 | v514 | v800 | v516 | v517 | v445 | v446 | v448 | v451 | v376) | v480) & ~(v1631 | v1632 | v1633) +v1629 => ~(v1628 | v345 | v17 | v18) +v669 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v669 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v670) & ~v673 +v789 => ~(v1552 | v790 | v39 | v593 | v594) +v670 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v670 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669) & ~v673 +v2071 => v674 +v2071 => ~(v2068 | v2069 | v2070 | v2072 | v2073) +v2072 => v674 +v2072 => ~(v2068 | v2069 | v2070 | v2071 | v2073) +v2073 => v674 +v2073 => ~(v2068 | v2069 | v2070 | v2071 | v2072) +v671 => v853 & (v373 | v377 | v386 | v387 | v388 | v389 | v741 | v742 | v392 | v480 | v394 | v397 | v402) & ~(v17 | v18) | (v17 | v18) & v853 & (v373 | v377 | v379 | v409 & ~v572) | (v17 | v18) & v853 & (v385 | v737 | v738 | v386 | v387 | v388 | v389 | v741 | v742 | v392 | v480 | v394 | v744 | v564 | v397 | v745 | v565 | v747 | v567 | v401 | v748 | v402 | v569 | v750 | v751 | v752 | v754) +v671 => ~(v1402 | v1501 | v1409 | v672 | v1502 | v1503 | v1504 | v1505) +v1402 & (v3 | v4) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v646 +v1402 => v853 & v384 +v1402 => ~(v671 | v1501 | v1409 | v672 | v1502 | v1503 | v1504 | v1505) +v1501 & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v656 +v1501 => v314 & ~(v671 | v1402 | v1409 | v672 | v1502 | v1503 | v1504 | v1505) +v1501 => v853 & v314 +v1409 & (v395 | v396) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v658 +v1409 & v345 & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v657 +v1409 => v853 & (v345 | v482 | v390 | v395 | v396) & ~(v17 | v18) | (v17 | v18) & v853 & (v345 | v395 | v396) +v1409 => ~(v671 | v1402 | v1501 | v672 | v1502 | v1503 | v1504 | v1505) +v672 => v853 & (v379 | v408 & ~(v386 | v387 | v388 | v389 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v397 | v398 | v399 | v402) | v409) & ~(v17 | v18) | (v17 | v18) & v853 & (v482 | v739 | v740 | v561 | v390 | v562 | v563 | v746 | v400 | v566 | v568 | v403 | v404 | v749 | v570 | v753 | v571 | v572) +v672 => ~(v671 | v1402 | v1501 | v1409 | v1502 | v1503 | v1504 | v1505) +v675 => ~(v17 | v18) | v17 | v18 +v675 => ~v678 +v676 => v681 & (v675 | v678 | v679 | v562) & ~(v17 | v18) | (v17 | v18) & v681 & (v675 | v678 | v679 | v562) +v676 => ~v677 +v965 => v862 & v681 & v692 & v1363 & ~(v279 | v17 | v18) | (v17 | v18) & v862 & v681 & v692 & v1363 +v673 => (v671 | v672) & ~(v17 | v18) | (v17 | v18) & (v671 | v672) & ~(v399 | v390) +v673 => ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669) & ~v670 +v790 => ~(v1552 | v789 | v39) +v790 => ~(v2128 | v2129 | v2130 | v2131 | v976 & ~v593 | v1480) +v1384 => v358 & v1615 | v358 & v1640 & v769 & v1604 | (v17 | v18) & v356 & (v1639 | v314 | v775) | v505 & (v1639 | v314) | v771 & v1639 +v1384 => ~v1417 & ~(v1411 | v1608 | v1610 | v1611 | v1385 | v1612) +v1384 | v1385 +v1385 => v587 | v357 | v359 | v989 | v356 & ~(v775 | v17 | v18) +v1385 => ~(v1410 | v1411 | v1608 | v1384 | v1412 | v1609 | v1413 | v1610 | v1611 | v1612) & ~v1417 & ~(v1411 | v1608 | v1384 | v1610 | v1611 | v1612) +v2132 => v17 & v672 & ~(v399 | v390) +v781 => v679 & ~(v279 | v345 & (v356 | v358)) | (v17 | v18) & v679 & ~(v356 & v345) +v781 => ~(v777 | v778 | v779 | v780) +v689 => ~v690 +v690 => (v694 | v695 & v345 | v696) & v697 & ~(v17 | v18) | (v17 | v18) & (v694 | v695 & v345 | v696) & v697 & ~v693 +v690 => ~v689 +v2133 => v17 & v672 & ~(v399 | v390) +v1362 => v782 & v1421 | (v782 | v4) & v1424 & (v865 | v880 | v886 | v891 | v898) +v1362 => ~(v1420 & ~(v581 | v817 | v1479 | v1653)) +v973 => v18 +v973 => ~v974 +v974 => ~(v17 | v18) | v17 | v18 +v974 => ~v973 +v684 => v682 & ~(v356 & v345 | v17 | v18) | (v17 | v18) & v682 & ~(v356 & v345) +v2134 => v17 & v672 & ~(v399 | v390) +v2134 | v649 | v2132 | v666 | v651 | v637 | v657 | v673 | v639 | v660 | v643 | v646 | v644 | v641 | v654 | v636 | v634 | v663 | v669 | v661 | v667 | v653 | v665 | v650 | v652 | v2133 | v638 | v656 | v640 | v658 | v648 | v647 | v659 | v655 | v670 | v642 | v645 | v662 | v635 | v668 | v664 +v691 => v694 & v690 & ~v279 +v2135 => v694 & v681 & ~v2136 +v3 & v1486 & ~(v765 | v345 | v1356 | v39) => v1487 +v3 => (~(v683 | v1450 | v2137 | v1354 | v1355 | v1356 | v1622 | v497 | v1668 | v39 | v17 | v18) & v1604 | (v17 | v18) & ~(v683 | v1450 | v867 | v2137 | v1354 | v1355 | v1356 | v1622 | v497 | v1668 | v39) & v1604) & (v1539 & v1604 | (v17 | v18) & (v1475 & v1477 & (v707 | v708) | v743) & v1467 & v1466 & v1604) & (v1539 & v416 & v419 & v2111 & v1455 & v1457 & v511 & v437 & v1476 & v1468 & v1487 & (v1475 & v1477 & v708 | v743) & v479 & v1404 & v1467 & v1466 & (v506 | v593 | v594) & v1454 & v507 & v696 & v1482 & v1604 | (v17 | v18) & v416 & v419 & v2111 & v1455 & v1457 & v511 & v437 & v1476 & v1468 & v1487 & v479 & (v503 | v593 | v594) & v695 & v782 & v1474 & v1482 & v1604) & (v1539 & v357 & v675 & v1449 & (v836 | v827 | v830 | v832) & v862 & v695 & v782 & v1604 | v17 & v359 & v1449 & (v836 | v1209 | v837 | v827 | v828 | v802 | v803 | v829 | v830) & (v1366 & (v896 | v897) | v1424) & v862 & v1604) & v380 & v1604 +v3 => ~(v2160 & v985) & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2145 | v2146 | v1552 | v1629) & ~(v806 | v2147 & ~(v813 | v583 | v585 | v2158) | v314) & ~(v1523 | v1524 | v1528 | v431 | v1352 & ~v589 | v2148) & ~(v2084 | v2085 | v2086 | v2087 | v2149 | v463 | v464 | v2088 | v1452 | v1453 | v141 & ~(v1575 & v2061) | v1509 & ~(v410 | v411) | v465) & ~(v469 | v475 | v476 | v1654 & ~(v1479 | v583 | v1653)) & ~(v481 | v1488 | v1354 | v1355 | v1356 | v1622) & ~(v484 & ~(v815 | v816 | v581 | v817 | v819) | v485 | v2154 | v1613 | v2155 | v2156 | v857 | v1606 | v811 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v975 | v494 & ~(v410 | v411 | v1897 | v1381) | v2157 & ~v2159) & ~(v810 | v482 | v483) & ~(v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v3 | v4 => v2111 +v2161 => ~(v3 | v314 | v463 | v464 | v345 | v562) +v1486 => ~(v39 | v594 | v17 | v18) | (v17 | v18) & ~(v39 | v594) +v1541 => (v17 | v18) & (v505 | v771 | v356 & v775) & v486 +v1541 => v373 | v377 & ~(v374 | v513 | v514 | v800 | v515 | v516 | v517) | v386 | v392 | v480 | v394 | v395 & v817 & v358 | v397 | v573 | v574 | v4 & v1542 | v345 & v1543 +v2162 => ~(v481 | v754 | v571 | v572 | v575 | v576) & ~(v374 | v513 | v800 | v518 | v698 | v519 | v699 | v520 | v521 | v522) & ~(v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v537 | v538 | v539 | v540 | v541 | v706) & ~(v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710 | v552 | v553 | v554 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557) & ~(v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v728 | v729 & ~(v1479 | v1653) | v730 | v731 | v733 | v734 | v560 | v736) & ~(v385 | v737 | v738 | v387 | v739 | v388 | v740 | v389 | v741 | v742 | v391 & ~(v1479 | v583) | v562 & ~(v580 | v817 | v2163) | v563 | v744 | v564 | v745 | v565 | v746 | v400 | v747) & ~(v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v751 | v752) +v511 => ~(v510 | v512) & ~((v374 | v513) & ~(v592 | v39 | v594 | v586)) & ~((v519 | v520 | v522 | v523 | v524 | v525 | v526 | v527 | v528 | v529 | v530 | v531 | v532 | v533 | v534 | v535 | v537 | v538 | v539 | v540 | v541) & ~(v592 | v39 | v594 | v586)) & ~((v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v550 | v552 | v553 | v554) & ~(v592 | v39 | v594 | v586)) & ~((v557 | v558 | v559 | v560) & ~(v592 | v39 | v594 | v586 | v590 & v579)) & ~((v385 | v389 | v561 | v396 | v564 | v400) & ~(v592 | v39 | v594 | v586)) & ~((v566 | v401 | v403 | v569 | v571) & ~(v592 | v39 | v594 | v586)) & ~((v572 | v575 | v576) & ~(v592 | v39 | v594 | v586)) & ~((v314 | v398) & ~(v577 | v578 | v580 & v588 | v581 & v591 | v582 | v583 & (v588 | v356 | v589) | v584 & v588 | v585 | v592 | v39 | v594 | v586)) +v511 => ~v345 | ~(v356 & v345 | v509) +v512 => ~(v510 | v511) +v1655 => ~(v3 | v4 | v314 | v345 | v17 | v18) | (v17 | v18) & ~(v3 | v4 | v314 | v345 | v482) +v759 => (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v373 | v377 & ~(v513 | v441 | v446 | v456)) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v3 | v4 | v393 | v518 | v703 | v540 | v544 | v714 | v382 | v722 | v383) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v737 | v738 | v387 | v739 | v740 | v390 | v480 | v394 | v563 | v397 | v565 | v746 | v747) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v567 | v568 | v748 | v749 | v750 | v570 | v751 | v752 | v754 | v755) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v506 | v593 | v594) & (v314 | v464 | v345 | v482) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v513 | v441 | v446 | v456) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v379 & ~(v518 | v703 | v540 | v544 | v378) | v384 & ~(v380 | v381 | v714 | v382 | v722 | v383)) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v385 | v386 | v388 | v389 | v561 | v741 | v742 | v392 | v395 | v396 | v562 | v744 | v564 | v745 | v400) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & (v566 | v401 | v402 | v403 | v569 | v404 | v753 | v571) & ~(v769 | v39 | v17 | v18) | (v587 | v357 | v358 | v359) & v763 & v409 & ~(v826 | v755) & ~(v769 | v39 | v17 | v18) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v373 | v377 & ~(v513 | v514)) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v518 | v522 | v536 | v540 | v544 | v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v737 | v738 | v387 | v740 | v390 | v480 | v394 | v395 | v562 | v563 | v397 | v565 | v747) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v567 | v568 | v748 | v402 | v749 | v750 | v570 | v752 | v754) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v755 | v573 | v574) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v503 | v593 | v594) & (v3 | v4 | v314 | v464 | v393 | v345 | v482) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v513 | v514) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & v379 & ~(v518 | v522 | v536 | v540 | v544 | v378) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & v384 & ~(v380 | v381 | v555 | v713 | v714 | v382 | v721 | v722 | v558 | v383 | v731 | v733 | v734 | v735) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v385 | v386 | v739 | v388 | v389 | v561 | v741 | v742 | v392 | v396 | v744 | v564 | v745 | v746 | v400) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & (v566 | v401 | v403 | v569 | v404 | v751 | v753 | v571) & ~(v769 | v39) | (v17 | v18) & (v505 | v357 | v359) & v763 & v409 & ~(v826 | v755 | v573 | v574) & ~(v769 | v39) +v759 => ~(v975 | v976 & ~v593 | v592 | v39) +v4 & v799 & (v357 | v359) & v675 & v691 & (v854 | v855) & v697 & (v13 | v14 | v15) & ~(v345 | v39 | v594) | v4 & v799 & v358 & v675 & v691 & (v854 | v855) & v697 & (v13 | v14 | v15) & ~(v345 | v39) | v4 & v799 & v505 & v675 & v691 & (v854 | v855) & v697 & (v13 | v14 | v15) & ~v345 => v776 +v4 & ~(v3 | v314 | v463 | v464 | v345 | v562) => v2161 +v4 => ~(v1450 | v2137 | v1354 | v1355 | v1356 | v1622 | v497 | v39 | v1668) & v1604 & (v1539 & v416 & v419 & v2111 & v1455 & v1457 & v2161 & v511 & v437 & v1476 & v1468 & v1449 & (v1475 & v1477 & v708 | v743) & v479 & v1404 & v1467 & v1466 & (v506 | v593 | v594) & v1454 & v507 & v695 & v696 & v782 & v1482 & v1604 | (v17 | v18) & v416 & v419 & v2111 & v1455 & v1457 & v2161 & v511 & v437 & v1476 & v1468 & v1449 & (v1475 & v1477 & (v707 | v708) | v743) & v479 & v1467 & v1466 & (v503 | v593 | v594) & (v1366 & (v896 | v897) | v1424) & v695 & v782 & v361 & v1474 & v1482 & v1604) & (v1539 & v358 & v769 & v1421 & v675 & v781 & v1486 & (v854 | v855) & (v821 | v836 | v802 | v803 | v827 | v830 | v832) & (v315 | v316) & v1472 & v1493 & v862 & v776 & ~v867 & v1604 | v1539 & v357 & v675 & (v821 | v836 | v801 | v802 | v803 | v827 | v830 | v832) & v862 & v776 & v1604 | v17 & v505 & v769 & v675 & v781 & v1486 & (v821 | v836 | v1209 | v837 | v802 | v803 | v828 | v829) & (v315 | v316) & v1472 & v1493 & v862 & v1494 & v776 & ~v867 & v1604 | v17 & v359 & (v821 | v836 | v1209 | v837 | v802 | v803 | v828 | v829) & v862 & v1494 & v776 & v1604) & v381 +v4 => ~(v2160 & v985) & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2145 | v2146 | v1552 | v1629) & ~(v806 | v2147 & ~(v813 | v2165 & v2164 | v583 | v585 | v2158) | v314) & ~(v1523 | v1524 | v1528 | v431 | v1352 & ~v589 | v2148) & ~(v2084 | v2085 | v2086 | v2087 | v2149 | v463 | v464 | v2088 | v1452 | v1453 | v141 & ~(v580 & (v2061 | v1889) | v1575 & v2061) | v1509 & ~(v410 | v411) | v465 & ~v382) & ~(v469 | v475 | v476 | v1654 & ~(v1479 | v583 | v1653)) & ~(v481 | v1488 | v1354 | v1355 | v1356 | v1622) & ~(v484 & v3 | v485 | v2154 & ~v1478 | v1613 | v2155 | v2156 | v857 | v1606 | v811 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v494 & ~(v410 | v411 | v1897 | v1381) | v2157 & ~v2159) & ~((v2166 | v2167 | v2168 | v2169 | v2170 | v2171) & ~v3) & ~(v3 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v314 & (v314 | v382 | v390 | v753) & ~v492 & ~v419 => v418 +v314 & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v625 +v314 => ~(v683 | v1401 | v1661 | v1354 | v1355 | v1622 | v360 | v361 | v1491 | v362 | v39) & (v1539 & (v1645 | v506 | v593 | v594) & v418 & v1421 & v1455 & v1457 & (v675 | v678 | v679) & v676 & (v708 | v743) & v478 & v1356 & v1570 & v1454 & v1469 & v497 | v17 & (v1645 | v503 | v593 | v594) & v418 & v1455 & v1457 & (v675 | v678 | v679) & (v707 | v708 | v743) & v478 & v1356 & v1570 & v497 | v18 & (v1645 | v503 | v593 | v594) & v418 & v1455 & v1457 & (v675 | v678 | v679) & (v707 | v708 | v743) & v478 & v1356 & v1570 & v497) & (v1539 & v358 & v1421 & v1625 & (v854 | v855) & (v821 | v836 | v802 | v803 | v827 | v830 | v832) & ~v867 & v2173 | v1539 & v358 & v769 & v1421 & v1625 & (v854 | v855) & (v821 | v836 | v802 | v803 | v827 | v830 | v832) & ~v867 & v1604 | v1539 & v357 & v1421 & v1449 & (v821 | v836 | v801 | v802 | v803 | v827 | v830 | v832) & v2172 & v1604 | v17 & v505 & (v821 | v836 | v1209 | v837 | v802 | v803 | v827 | v828 | v829 | v830) & ~v867 & v2173 | v17 & v505 & v769 & (v821 | v836 | v1209 | v837 | v802 | v803 | v827 | v828 | v829 | v830) & ~v867 & v1604 | v17 & v359 & v1449 & (v821 | v836 | v1209 | v837 | v802 | v803 | v827 | v828 | v829 | v830) & v2172 & v1604) & v398 +v314 => ~v1571 & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144 | v372 | v1369 | v417) & ~(v2174 | v2145 | v2146 | v1552 | v2175 | v2127 | v1629) & ~(v806 | v3 | v2161 | v2147 & ~(v813 | v820 | v583) | v4 | v1478) & ~(v1523 | v1524 | v1528 | v1531 | v433 | v1352 & ~v589 | v435 | v1661 & ~(v1889 | v1890)) & ~(v463 | v464 | v1475 | v1477 | v141 & ~(v580 & v1889 & v993 | v1575 & v2061) | v1509 & ~(v410 | v411) | v465) & ~(v469 | v475 | v476) & ~(v481 | v1354 | v1355 | v1622) & ~(v484 | v485 | v2155 | v1394 | v2156 | v857 | v1606 | v2176 | v811 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v975 | v494 & ~(v410 | v411 | v1897 | v1381) | v1467 & ~v589 | v592 | v39) & ~(v511 & ~(v577 | v578 | v580 & v588 | v581 & v591 | v582 | v583 & (v588 | v356 | v589) | v584 & v588 | v585 | v586)) & ~(v3 | v4 | v1478 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v122 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v277 | v278 | v50 | v70 | v127 | v128 | v129 | v130 | v131 | v132 | v133) & ~(v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170) & ~(v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v2079 => ~v141 & ~(v2177 | v2178 | v2179 | v2180 | v2181 | v2182 | v2183 | v2184 | v2185 | v2186 | v2187 | v2188 | v2189 | v2190 | v2191 | v2192 | v2193 | v2194 | v2195 | v2196 | v2197 | v2198 | v2199 | v2200 | v2201 | v2202 | v2203 | v2204 | v2205 | v2206 | v2074 | v2075 | v2208 | v2209 | v2210 | v2211) & ~(v2207 | v2212 | v2213 | v2214 | v2215 | v2216 | v2217 | v2218 | v2080 | v2219 | v2220 | v2221 | v2222 | v2223) +v2074 => v674 & (v807 | v808) & v356 & ~v836 | (v17 | v18) & v674 & (v807 | v808) & (v771 | v356) & ~(v836 | v837 | v828) +v2074 => ~v141 & ~(v2177 | v2178 | v2179 | v2180 | v2181 | v2182 | v2183 | v2184 | v2185 | v2186 | v2187 | v2188 | v2189 | v2190 | v2191 | v2192 | v2193 | v2194 | v2195 | v2196 | v2197 | v2198 | v2199 | v2200 | v2201 | v2202 | v2203 | v2204 | v2205 | v2206 | v2079 | v2075 | v2208 | v2209 | v2210 | v2211) & ~(v2207 | v2212 | v2213 | v2214 | v2215 | v2216 | v2217 | v2218 | v2080 | v2219 | v2220 | v2221 | v2222 | v2223) +v2075 => v674 & (v807 | v808) & (v356 | v357 | v358 | v988 | v989) & ~(v836 | v17 | v18) | (v17 | v18) & v674 & (v807 | v808) & ~(v836 | v837 | v828) +v2075 => ~v141 & ~(v2177 | v2178 | v2179 | v2180 | v2181 | v2182 | v2183 | v2184 | v2185 | v2186 | v2187 | v2188 | v2189 | v2190 | v2191 | v2192 | v2193 | v2194 | v2195 | v2196 | v2197 | v2198 | v2199 | v2200 | v2201 | v2202 | v2203 | v2204 | v2205 | v2206 | v2079 | v2074 | v2208 | v2209 | v2210 | v2211) & ~(v2207 | v2212 | v2213 | v2214 | v2215 | v2216 | v2217 | v2218 | v2080 | v2219 | v2220 | v2221 | v2222 | v2223) +v315 => (v681 & (v789 | v790 | v39) & v797 & v798 & v799 & (v360 | v361 | v314) & ~(v17 | v18) | (v17 | v18) & v681 & (v789 | v790 | v39) & v797 & v798 & v799 & (v360 | v361 | v314)) & ((v791 | v792 | v793 | v794 | v795 | v318) & ~(v17 | v18) | (v17 | v18) & (v791 | v793 | v795 | v318 | v319 | v796)) +v315 => ~(v785 | v786 | v787 | v788) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v504 => v507 & ~(v498 | v17 | v18) | (v17 | v18) & v508 & (v1385 | v1384 & (~(v851 | v852) | (v851 | v852) & (~v1387 | v1387 & (v1386 | v39)))) & ~v498 +v791 => v315 & (v9 | v12 | v13 | v15) & (v864 | v865 | v866 | v876 | v880 | v886 | v891) & ~(v17 | v18) | (v17 | v18) & v315 & (v9 | v12 | v13 | v15) +v791 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1515 => v853 & (v373 | v424 | v425 | v426 | v427 | v428 | v515 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v440 | v441 | v442 | v443 | v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454) | v853 & (v455 | v456 | v457 | v458 | v459 | v460) | v853 & (v382 | v725 | v729 | v737 | v738 | v740 | v390 | v395 | v396 | v562 | v563 | v747 | v568 | v748 | v749 | v750 | v570 | v752 | v753 | v754 | v571 | v755) | v853 & (v4 | v464 | v393 | v345) +v1386 => (v851 | v852) & ~(v3 | v4) +v1386 => (v17 | v18) & v502 & (v851 | v852) & v1384 & v504 & v1387 & ~(v1360 | v1552 | v39) +v793 => v315 & (v11 | v14) & (v864 | v865 | v866 | v880 | v886 | v891) & ~(v17 | v18) | (v17 | v18) & v315 & (v11 | v14) +v793 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v794 => v315 & (v9 | v12 | v13 | v15) & (v864 | v865 | v866 | v876 | v880 | v886 | v891) & ~(v17 | v18) +v794 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v127 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v277 | v278 | v50 | v70 | v128 | v129 | v130 | v131 | v132 | v133 | v134) & ~(v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171) & ~(v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v316 => ((v969 | v970) & v681 & (v675 | v678 | v679) & v797 & v798 & v799 & (v972 | v361) & ~(v17 | v18) | (v17 | v18) & (v969 | v970 | v971) & v681 & v965 & (v675 | v678 | v679) & v797 & v798 & v799 & (v972 | v361) & ~v39) & ((v967 | v968) & ~(v17 | v18) | (v17 | v18) & (v966 | v967 | v968)) +v316 => ~(v785 | v786 | v787 | v788) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v424 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v1354 | v1355 | v588 & ~v2082) +v424 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~v2224 & ~(v674 | v415 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v374 => v377 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v374 => v2081 & ~(v1354 | v1355 | v997 | v998) +v1484 => v853 & (v345 | v373 | v377 & ~(v374 | v513 | v376) | v390 | v480 | v395 | v396) & ~(v17 | v18) | v853 & v4 & v506 & ~(v17 | v18) | (v17 | v18) & v853 & (v314 | v345 | v482 | v373 | v377 & ~(v374 | v513 | v800 | v516 | v376) | v390 | v480 | v395 | v396) | (v17 | v18) & v853 & (v3 | v4 | v464 | v393 | v382 | v738 | v747 | v748) & v503 +v1484 => ~v1506 +v425 => v511 & v492 & v1509 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v425 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v795 => v315 & (v9 | v13) & (v864 | v865 | v866 | v880 | v886 | v891) & ~(v17 | v18) | (v17 | v18) & v315 & (v9 | v13) +v795 => ~v295 & ~v342 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v318 => v315 & (v9 | v11 | v13 | v14) & (v864 | v865 | v866 | v876 | v880 | v886 | v891) & ~(v17 | v18) | (v17 | v18) & v315 & (v9 | v11 | v13 | v14) +v318 => ~v295 & ~v342 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v426 & (v17 | v18) & ~(v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v601 +v426 => v511 & v492 & v1567 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v426 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v513 => v377 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v513 => v2081 & ~(v997 | v998 | v588 & ~v2082) +v427 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v427 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v319 => (v17 | v18) & v315 & (v9 | v12 | v13 | v15) & ~v2118 +v319 => ~v295 & ~v342 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v1796 | v796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v5 => (v0 | v1 | v2 | (v16 | v19 | v20 | v21 | v22 | v23) & ~v39 | (v24 | v25 | v26) & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v1 | v2 | v16 | v19 | v20 | v21 | v22 | v23 | (v24 | v25 | v26) & ~(v3 | v4)) | (v294 | (v366 | v368) & ~v39 | v370 & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v367 | v369 | v371 & ~(v3 | v4)) +v5 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) +v514 => v511 & v2081 & v497 & ~(v1354 | v1355 | v997 | v998) +v514 => v377 & ~(v2224 | (v988 & ~v2226 | v2227 & v2225) & ~v2228) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v800 => v377 & ~v2224 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v800 => v2081 & ~(v997 | v998 | v588 & ~v2082) +v428 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v428 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1377 => (v1373 | v1375 | v1376 | v1378 | v1379 | v1380) & ~v743 | (v517 | v737 | v738 | v390 | v397 | v565 | v747 | v567 | v748 | v569 | v570 | v750 | v752 | v754) & ~v743 +v1377 => ~v1374 +v796 => (v17 | v18) & v315 & (v11 | v14) & ~v2118 +v796 => ~(v280 | v295 | v342) & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v1798 | v1799 | v1800 | v1801) & ~(v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v515 => v377 & ~(v1552 | v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v1356 & ~(v580 | v1575)) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v515 => v1539 & ((v356 | v358) & v769 | v357) & v511 & v1466 & v1607 & v2081 & (v1500 | v39) & v1604 | v17 & (v505 & v769 | (v356 & v770 & v769 | v359) & v1607) & v511 & v1466 & v2081 & v1604 +v429 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v429 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v516 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v630 | v631 | v633) => v632 +v516 => v511 & v2081 & ~(v588 & ~v2082) +v516 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v430 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v430 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v517 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v517 => v1539 & ((v356 | v358) & v769 | v357) & v511 & v1466 & (v1500 | v39) & v2081 & ~(v1354 | v1355) & v1604 | v17 & ((v505 | v356 & v770) & v769 | v359) & v511 & v1466 & v2081 & ~(v1354 | v1355) & v1604 +v432 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v432 => v1539 & v511 & v492 & (v414 | v421) & v2081 & v497 & ~((v587 | v356 | v357 | v358 | v359 | v988) & ~v1607) | (v17 | v18) & v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082 | (v356 | v357 | v359 | v1545) & ~v1607) +v853 +v853 & (v373 | v424 | v425 | v426 | v427 | v428 | v515 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v440 | v441 | v442 | v443 | v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454) | v853 & (v455 | v456 | v457 | v458 | v459 | v460) | v853 & (v382 | v725 | v729 | v737 | v738 | v740 | v390 | v395 | v396 | v562 | v563 | v747 | v568 | v748 | v749 | v750 | v570 | v752 | v753 | v754 | v571 | v755) | v853 & (v4 | v464 | v393 | v345) => v1515 +v853 & v314 & ~(v671 | v1402 | v1409 | v672 | v1502 | v1503 | v1504 | v1505) => v1501 +v853 & v384 & ~(v671 | v1501 | v1409 | v672 | v1502 | v1503 | v1504 | v1505) => v1402 +v853 & ~(v17 | v18) & (v851 | v852) & ~(v3 | v4 | v2065 | v1540 | v1510) => v1511 +v853 => (v1539 & ((v671 | v672) & (v1404 | v1405) | v1402 & v1404 | (v1501 | v1409) & v1405) | (v17 | v18) & (v671 | v672 | v1402 | v1501 | v1409)) & (v1539 & (v374 | v513 | v379 & ~v393 | v384 & ~(v4 | v382 | v725 | v729) | v314 | v409 & ~(v464 | v755)) | v1539 & (v385 | v386 | v387 | v388 | v389 | v741 | v742 | v392 | v394 | v397 | v402 | v739 | v561 | v744 | v564 | v745 | v565 | v746 | v400 | v566 | v567 | v401 | v403 | v569 | v404 | v751) | v1539 & v1400 & v851 & v1511 & v376 | v1539 & v1515 & (v464 | v382 | v725 | v729 | v755) | v1539 & v1515 & (v737 | v738 | v740 | v562 | v563 | v747 | v568 | v748 | v749 | v750 | v570 | v752 | v753 | v754 | v571) | v1539 & v1400 & v851 & v1515 & v1511 & v393 | v1539 & v1484 & (v514 | v800 | v516 | v517 | v439 | v444 | v480) | v1539 & v1515 & v1484 & (v424 | v426 | v428 | v515 | v429 | v430 | v436 | v440 | v442 | v445 | v446 | v448 | v451 | v454) | v1539 & v1515 & v1484 & (v390 | v395 | v396) | v1539 & v1400 & v852 & v1515 & (~v506 | v506 & v1484) & v4 | v1539 & v1400 & v852 & v1515 & v1484 & v345 & v1511 & v850 | v1539 & v1400 & v851 & v1515 & v1484 & v1511 & (v438 | v449 | v457 | v459) | v1539 & v1400 & v851 & v1399 & v1515 & v1484 & v1511 & (v373 | v425 | v427 | v432 | v434 | v375 | v441 | v443 | v447 | v450 | v452 | v453 | v455 | v456 | v458 | v460) | v1539 & v482 & v1356 | (v17 | v18) & v671 & v1512 & (v374 | v513 | v800 | v516 | v376 | v379 & ~v393 | v409 & ~(v464 | v572 | v755)) | (v17 | v18) & v671 & v1512 & (v385 | v386 | v388 | v389 | v741 | v742 | v392 | v480 | v394 | v744 | v564 | v397 | v745 | v565 | v567 | v401 | v402 | v569 | v751) | (v17 | v18) & v671 & v1515 & v1512 & (v737 | v750 | v752 | v754 | v755) | (v17 | v18) & v671 & v1515 & (~v503 | v503 & v1484) & v1512 & (v464 | v393 | v738 | v747 | v748) | (v17 | v18) & v671 & v1484 & v1512 & (v514 | v439) | (v17 | v18) & v671 & v1484 & v1512 & (v517 & v1400 & v1398 | v444 | v480) | (v17 | v18) & v671 & v1400 & v1398 & v1512 & v387 | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v424 | v445 | v446 | v448 | v451) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v426 | v428 | v515 & v1400 & v1398 | v429 | v430 | v436 | v440 | v442 | v449 | v454) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v438 | v457 | v459) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v427 | v453 | v455) | (v17 | v18) & v671 & v1515 & v1484 & v1512 & (v373 | v425 | v432 | v434 | v375 | v441 | v443 | v447 | v450 | v452 | v456 | v458 | v460) | (v17 | v18) & v1402 & v1512 & v384 & ~(v3 | v4 | v382 | v725 | v729) | (v17 | v18) & v1402 & v1515 & v1512 & (v725 | v729) | (v17 | v18) & v1402 & v1515 & (~v503 | v503 & v1484) & v1512 & v382 | v17 & v1402 & (~v503 | v503 & v1484) & v1512 & v3 | (v17 | v18) & v1402 & v1400 & v852 & v1515 & (~v503 | v503 & v1484) & v1512 & v4 | (v17 | v18) & v1501 & v1484 & v1512 & v314 | (v17 | v18) & v1409 & v1515 & v1484 & (v1512 & v396 | v395) | (v17 | v18) & v1409 & v1400 & v852 & v1515 & v1484 & v1510 & v1512 & v345 | (v17 | v18) & v672 & v1512 & (v739 | v561 | v746 | v400 | v566 | v403 | v404 | v572) | (v17 | v18) & v672 & v1515 & v1512 & (v740 | v562 | v563 | v568 | v749 | v570 | v753 | v571) | (v17 | v18) & v672 & v1484 & v1533 & v482 & v1356 & v1512 | (v17 | v18) & v672 & v1515 & v1484 & v1512 & v390 | v18 & v1402 & v1400 & v852 & (~v503 | v503 & v1484) & v1512 & v3) +v853 => ~(v417 | v1513 | v1514 | v1516 | v1517 | v1518 | v1519 | v1520 | v1521 | v1522 | v1523 | v1524 | v1525 | v1526 | v1527 | v1528 | v1529 | v1530 | v1531 | v431 | v433 | v1532 | v435 | v1534 | v1535 | v1536 | v1537 | v1538) +v434 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v434 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v436 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v436 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v437 => v3 | v4 +v437 => ~(v490 | v491 | v492 | v493) +v1533 => (v671 | v672) & ~(v1571 & v1356 | v17 | v18) | (v17 | v18) & (v671 | v672) +v375 & ~(v39 | v593 | v594) & v2173 => v2229 +v375 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & v377 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v375 => v511 & v492 & v405 & v1466 & v1469 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) & v1604 | v511 & (v492 | v494) & v405 & (v2229 | v39 | v593 | v594) & v1466 & v1469 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) & v2173 +v438 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & v377 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v438 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v830 => v178 & v130 & v356 & ~(v17 | v18) | v178 & v130 & v822 & (v357 | v358) & ~(v17 | v18) | (v17 | v18) & v178 & v130 & (v771 | v356) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) +v830 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016) & ~(v1264 | v839 | v1322 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1029 | v1030 | v1031 | v1032 | v1036 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1120 | v1122 | v1123 | v1124) & ~(v1323 | v1184 | v990 | v991 | v992 | v995 | v1028 | v1035 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v130 => (v831 & v822 | v833 | v834 | v836 | v837 | v827 | v828 | v829 | v830 | v832 | v838 | v839) & v178 | v837 & v178 & v835 +v130 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v131 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148) & ~(v271 | v272 | v273 | v274 | v275 | v276 | v129 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v797 => v3 | v4 | v314 | v345 | v1464 +v797 => ~(v1462 | v1463) & ~v1465 +v439 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v439 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v440 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v440 & (v17 | v18) & ~(v601 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v602 +v440 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v440 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v441 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1476 => v789 | v790 +v441 & ~(v481 | v485) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2153 | v482 | v483) => v2152 +v441 => v511 & v2152 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v441 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~v1466 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v442 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1551 => (v17 | v18) & v501 & v1484 & (v4 | v373 | v377) +v442 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v442 => v377 & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v443 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v2230 => v763 & ~(v1507 | v797 | v39) +v443 => v511 & v492 & v1469 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v443 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v444 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v444 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v377 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v445 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v444 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v131 => (v1139 | v821 | v1209 | v801 | v802 | v803 | v1056) & (v178 | v1383) +v131 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149) & ~(v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v1661 => ~(v314 & ~(v1889 | v1890) | v2148 | v2231 | v464 & ~v1542 | v975 | v589 | v976 & ~v1479 & v988 & v729) +v323 => ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v326 | v327 | v331 | v335 | v336 | v337) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v445 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v445 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1468 & (v3 | v4 | v382) & ~(v477 | v478) & ~(v490 | v491 | v492 | v493) => v479 +v1468 => v3 | v4 | v382 | v1469 +v1670 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1495 => v1469 & v425 +v446 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v446 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v2083 | v713 | v571 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v447 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v447 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v449) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1675 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v448 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v448 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1676 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v449 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v629 | v630) & ~(v631 | v632 | v633) => v628 +v449 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v449 => v1539 & v511 & v492 & (v414 | v421) & v2081 & v497 & ~((v587 | v356 | v357 | v358 | v359 | v988) & ~v1607) | (v17 | v18) & v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082 | (v356 | v357 | v359 | v1545) & ~v1607) +v450 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v450 => ~v485 & v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1677 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v451 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v451 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v452 & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v619 +v452 => v511 & v492 & v1469 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v452 => v377 & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v7 => (v293 | (v363 | v364) & ~v39 | v365 & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v293 | v363 | v364 | v365 & ~(v3 | v4)) +v7 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v8 | v9 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) +v132 => (v1230 | v1232) & v178 +v132 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150) & ~(v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v324 => ~(v279 | v280 | v281 | v283 | v284 | v285 | v286 | v287 | v288 | v289 | v290 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v300 | v301 | v302 | v304 | v305 | v306 | v307 | v309 | v310 | v311 | v312) & ~(v282 | v313 | v315 | v316 | v320 | v321 | v322 | v323 | v325 | v326 | v327 | v328 | v331 | v332 | v335 | v336 | v337 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v843 => ~(v279 | v2232 | v284 | v292 | v309 | v312 | v844 | v845 | v326 | v327 | v2233 | v335 | v339 | v342 | v352 | v302) & ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1684 | v1685 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1696 | v1697 | v1698 | v1699 | v1700 | v1701 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707) & ~(v1708 | v1709 | v1710 | v1711 | v1713 | v1714 | v1715 | v1716 | v1719 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1732 | v1733) & ~(v1734 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1748 | v1750 | v1751 | v1752 | v1753 | v1754 | v1755 | v1756 | v1757 | v1760 | v1761 | v1762 | v1763 | v1764 | v1765) & ~(v1766 | v1767 | v1769 | v1771 | v1773 | v1774 | v1775 | v1776 | v1777 | v1778 | v1779 | v1780 | v1781 | v1782 | v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1789 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794) & ~(v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1797 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804 | v1805 | v840 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846) & ~(v1673 | v1674 | v849 | v1809 | v1810 | v1811 | v1812 | v1813 | v1814 | v1815 | v1816 | v1817 | v1819 | v1820 | v1822 | v1823 | v1824 | v1825 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835 | v1836 | v1837 | v1838) & ~(v1839 | v1840 | v1841 | v1842 | v1843 | v1844 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1851 | v22 | v1852 | v1853 | v1854 | v1855 | v24 | v1856) & ~(v365 | v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v1868 | v354 | v1869 | v1870 | v1871 | v1872 | v1873 | v1874 | v1497 | v1876 | v1877 | v967 | v1878) & ~(v1695 | v1712 | v1717 | v1718 | v1749 | v1758 | v1759 | v1768 | v1770 | v1772 | v1818 | v1821 | v1826 | v1827 | v1860 | v1875 | v1879 | v1880 | v968 | v1881 | v1882 | v1883 | v1498 | v1884 | v1885 | v1499 | v1886) +v453 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v453 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v2119 => ~(v317 | v795 | v318 | v1795 | v319 | v2234 | v845) +v844 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v454 & v18 & ~(v601 | v602 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v603 +v454 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v454 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v845 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v455 & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v616 +v455 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v456 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v455 => v1539 & v511 & v492 & (v414 | v421) & v2081 & v497 & ~((v587 | v356 | v357 | v358 | v359 | v988) & ~v1607) | (v17 | v18) & v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082 | (v356 | v357 | v359 | v1545) & ~v1607) +v456 & ~(v481 | v485) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v2150 +v456 => v511 & v2150 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v456 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v457 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1671 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1672 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v457 & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v620 +v457 => v511 & v492 & (v812 | v179 | v822 | v63) & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v457 => v377 & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v458 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v458 => v511 & v492 & (v812 | v179 | v822 | v63) & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v458 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v459 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1678 => ~(v2235 | v2236 | v1671 | v1672) +v134 => (v821 | v1209 | v801 | v802 | v803 | v1139) & v1168 +v134 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165) & ~(v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v133 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v459 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v631 | v632 | v633) => v630 +v459 => v511 & v492 & (v812 | v179 | v822 | v63) & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v459 => v377 & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v376 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v2237 +v2237 => ~(v2238 | v2239) +v376 & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v621 +v376 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v997 | v998 | v588 & ~v2082) +v376 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v2240 +v460 & (v17 | v18) & ~(v601 | v602 | v603 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v604 +v460 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v460 => v377 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v448 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1673 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1674 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v849 => ~(v279 | v284 | v292 | v302 | v309 | v315 | v335 | v342) & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835) & ~(v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v8 => (v294 | (v366 | v368) & ~v39 | v370 & ~(v3 | v4)) & ~(v17 | v18) | (v17 | v18) & (v367 | v369 | v371 & ~(v3 | v4)) +v8 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v9 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) +v763 => ~((v356 & v772 & ~v775 | v773) & v345 | v39 | v17 | v18) | (v17 | v18) & ~(v345 & v356 & ~v775 | v39) +v763 => ~(v760 | v761 | v762 | v764 | v766 | v767 | v768) +v1487 => v1486 & ~(v765 | v345 | v1356 | v39) +v765 => (v1486 | v763 | v1449) & v570 & ~(v1487 | v1356 | v39) +v765 => ~(v760 | v761 | v764 | v766 | v767 | v3 | v4 | v314 | v464) +v377 => v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446 | v447 | v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 +v377 => ~(v373 | v379 | v384 | v408 | v409) +v518 => v511 & ~(v997 | v998 | v588 & ~v2082) +v518 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v698 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v698 => ~(v997 | v998) +v519 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v519 => ~(v997 | v998) +v699 => v465 & ~(v997 | v998) +v699 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v520 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v520 => ~(v997 | v998) +v521 => v511 & ~(v1354 | v1355 | v997 | v998) +v521 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1448 => v1454 & (v3 | v4) +v1448 => ~v1450 +v522 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v522 => ~(v997 | v998) +v1449 => v1454 & ~(v549 | v717 | v564 | v400 | v751 | v356 & v345 | v17 | v18) | (v17 | v18) & v1454 & ~(v356 & v345 | v549 | v717 | v564 | v400 | v751) +v523 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v523 => ~(v997 | v998) +v524 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v700 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v524 => ~(v997 | v998) +v700 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v525 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v700 => ~(v997 | v998) +v525 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v526 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v525 => ~(v997 | v998) +v526 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v527 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v526 => ~(v997 | v998) +v527 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v528 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v527 => ~(v997 | v998) +v528 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v701 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v528 => ~(v997 | v998) +v9 => (v789 | v790 | v39) & v797 & (v791 | v795 | v318 | v1670 | v1671 | v1672 | (v843 | v1673 | v1674) & v587 | (v16 | v19 | v20 | v21 | v22 | v23) & v39) & ~(v17 | v18) | (v17 | v18) & (v789 | v790 | v39) & v797 & (v791 | v795 | v318 | v1670 | v1671 | v1672) | (v789 | v790 | v39) & v797 & (v1 | v294 | v2 | v794 | v366 | v368 | (v16 | v19 | v20 | v21 | v22 | v23) & ~v39 | v967) & ~(v17 | v18) | (v17 | v18) & (v789 | v790 | v39) & v797 & (v1 | v2 | v319 | v369 | v16 | v19 | v20 | v367 | v21 | v22 | v23 | v967) +v9 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v10 | v11 | v12 | v13 | v14 | v15 | v27 | v28 | v29) +v701 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v529) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v701 => ~(v997 | v998) +v529 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v529 => ~(v997 | v998) +v463 => v861 & v511 & v1509 & v465 & v1467 & v1466 & v1567 & v497 & v1604 & (v1539 & (v357 | v358) & (v63 | v822) & (v737 | v738 | v744 | v745 | v747 | v748 | v750 | v752 | v754) & v1604 | v1539 & (v357 | v358) & (v63 | v822) & (v565 | v567 | v751) & v1604 | (v17 | v18) & (v505 | v359) & (v63 | v179 | v822) & (v737 | v738 | v744 | v745 | v747 | v748 | v750 | v752 | v754) & v1604 | (v17 | v18) & (v505 | v359) & (v63 | v179 | v822) & (v565 | v567 | v751) & v1604) +v463 => ~(v2161 | v485 & ~v744 | v811 & ~(v816 | v580) | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v463 | v1565 | v809 | v426 | v735 | v562 | v565 | v751 => v1567 +v702 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v702 => ~(v997 | v998) +v464 => v1539 & v826 & v357 & (v708 | v743) & v497 & ~v39 & v2173 | (v17 | v18) & v826 & v359 & (v707 | v708 | v743) & v497 & ~v39 & v2173 +v464 => ~v372 & ~(v2145 | v2146 | v1552) & ~(v806 | v3 | v2161 | v2147 & ~(v813 | v583 | v2158) | v4 | v1478 | v314) & ~(v1661 & ~v1542 | v2148) & ~(v2241 | v463 | v1475 | v1477 | v141 | v1509 & ~(v410 | v411) | v465) & ~(v469 | v475 | v476) & ~(v481 | v1355) & ~(v485 | v2155 | v2156 | v857 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v975 | v494 & ~(v410 | v411 | v1897 | v1381) | v592 | v39) & ~(v3 | v4 | v1478 | v314 | v463 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v530 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v530 => ~(v997 | v998) +v1450 => v1454 & ~(v3 | v4) +v1450 => ~v1448 +v703 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~v2162 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v703 => ~(v997 | v998) +v2088 => ~(v3 | v4) & ~(v573 | v574 | v576) & ~v373 & ~(v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v439 | v440 | v441 | v442 | v443 | v445 | v446 | v447 | v448) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526) & ~(v527 | v528 | v701 | v529 | v702 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v542 | v543 | v546 | v547 | v549 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v380 | v381 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v725) & ~(v728 | v729 | v383 | v730 | v732 | v733 | v734 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v389 | v741 | v390 | v742 | v391 | v392) & ~(v744 | v564 | v397 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v748 | v402 | v749 | v750 | v751 | v752 | v754 | v571) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2247 | v1451 | v1452 | v1453) +v2088 => ~(v1454 | v17 | v18) +v531 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v531 => ~(v997 | v998) +v2247 => ~(v1454 | v17 | v18) +v2247 => ~v314 & ~(v375 | v438 | v444) & ~(v530 | v703 | v539 | v540 | v541 | v706 | v544 | v545 | v548 | v378 | v550) & ~(v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560) & ~(v740 | v561 | v480 | v394 | v395 | v396 | v562 | v563 | v568 | v401 | v403 | v569 | v404 | v570 | v753) & ~(v826 | v572 | v755 | v575) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v1451 | v1452 | v1453) +v532 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v532 => ~(v997 | v998) +v533 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v533 => ~(v997 | v998) +v1475 => ~v314 & ~v464 +v1475 => ~v743 +v704 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v704 => ~(v997 | v998) +v705 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v705 => ~(v997 | v998) +v1477 => ~v314 & ~v464 +v1477 => ~v743 +v534 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v534 => ~(v997 | v998) +v535 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v535 => ~(v997 | v998) +v1056 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v829) & ~(v1264 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039) & ~(v839 | v1322 | v1323 | v1045 | v1049 | v1050 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133) & ~(v993 | v994 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1451 => (v4 | v3 | v1478 & (v1479 | v1653) | v1479 & v382 & (v976 | v1480) | v482 & (v1479 | v1653)) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v2247 | v1452 | v1453) +v1451 => v1454 & (v3 | v4) +v1452 => v1454 +v1452 => ~(v3 | v4) & ~(v573 | v574 | v576) & ~v373 & ~(v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v439 | v440 | v441 | v442 | v443 | v445 | v446 | v447 | v448) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526) & ~(v527 | v528 | v701 | v529 | v702 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v542 | v543 | v546 | v547 | v549 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v380 | v381 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v725) & ~(v728 | v729 | v383 | v730 | v732 | v733 | v734 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v389 | v741 | v390 | v742 | v391 | v392) & ~(v744 | v564 | v397 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v748 | v402 | v749 | v750 | v751 | v752 | v754 | v571) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v2247 | v1451 | v1453) +v536 => v511 & ~(v1354 | v1355 | v997 | v998 | v588 & ~v2082) +v536 => v379 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1453 => v1454 +v1453 => ~(v3 | v4 | v314) & ~(v375 | v438 | v444) & ~(v530 | v703 | v539 | v540 | v541 | v706 | v544 | v545 | v548 | v378 | v550) & ~(v382 & (v1479 | v1653) | v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560) & ~(v740 | v561 | v480 | v394 | v395 | v396 | v562 | v563 | v568 | v401 | v403 | v569 | v404 | v570 | v753) & ~(v826 | v572 | v755 | v575) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v2247 | v1451 | v1452) +v1453 | v2247 | v2088 | v1452 | v1451 +v537 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v537 => ~(v1354 | v1355 | v997 | v998) +v538 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v538 => ~(v997 | v998) +v141 => (v997 | v998 | v63) & ~(v822 | v17 | v18) | (v1203 | v1230 | v1232 | v990 | v1078) & ~(v17 | v18) | (v821 | v801 | v802 | v803 | v1139) & ~(v17 | v18) | (v17 | v18) & (v63 | v179) +v141 => ~(v3 & ~(v1575 & v2061) | v4 & ~(v580 & (v2061 | v1889) | v1575 & v2061) | v314 & ~(v580 & v1889 | v1575 & v2061) | v464 | v807 | v808 | v345 & ~(v580 & v1889 | v1575 & v2061)) & ~(v178 | v1168 | v2248 | v1383) +v1060 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63) & ~(v999 | v1000 | v828 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830) & ~(v1264 | v839 | v1322 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1055 | v1057 | v1058 | v1065 | v831 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122) & ~(v1323 | v1027 | v1051 | v1052 | v1061 | v1062 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v539 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v539 => ~(v997 | v998) +v1061 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63) & ~(v999 | v1000 | v828 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830) & ~(v1264 | v839 | v1322 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1055 | v1057 | v1058 | v1060 | v1065 | v831 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121) & ~(v1323 | v1027 | v1051 | v1052 | v1062 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v540 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v540 => ~(v997 | v998) +v541 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v541 => ~(v997 | v998) +v807 => v674 & (v2079 | v2074 | v2075 | v2080) +v807 => ~(v141 | v808) & ~(v1168 & ~v579 | v822 & ~(v813 | v814 | v815 | v580 | v581 | v817 | v818 | v819 | v820 | v583)) +v706 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v706 => ~(v997 | v998) +v808 => v674 & (v2079 | v2074 | v2075 | v2080) +v808 => ~(v141 | v807) & ~(v1168 & ~v579 | v822 & ~(v813 | v814 | v815 | v580 | v581 | v817 | v818 | v819 | v820 | v583)) +v542 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v542 => ~(v997 | v998) +v831 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63) & ~(v999 | v1000 | v828 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830) & ~(v1264 | v839 | v1322 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124) & ~(v1323 | v1027 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v543 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v543 => ~(v997 | v998) +v11 => (v789 | v790 | v39) & v797 & (v792 | v793 | v1676 | v844 & v587 | (v363 | v364) & v39) & ~(v17 | v18) | (v789 | v790) & v797 & (v966 | v967 | v968 | (v1498 | v1499) & v587) | (v17 | v18) & (v789 | v790 | v39) & v797 & (v793 | v796 | v1675 | v1676) | (v789 | v790 | v39) & v797 & (v293 | v318 | (v363 | v364) & ~v39 | v20 | v23) & ~(v17 | v18) | (v17 | v18) & (v789 | v790 | v39) & v797 & (v293 | v318 | v363 | v20 | v364 | v23) +v11 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v12 | v13 | v14 | v15 | v27 | v28 | v29) +v544 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v511 & ~(v592 | v39 | v594 | v586)) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v544 => ~(v1354 | v1355 | v997 | v998) +v545 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v545 => ~(v997 | v998) +v546 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v547 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v546 => ~(v997 | v998) +v707 => (v515 | v432 | v375 | v449 | v455 | v823 | v824 | v825) & ~(v743 | v17 | v18) | (v17 | v18) & (v377 & ~v439 | v518 | v521 | v536 | v551 | v387 | v388 | v389 | v741 | v742 | v480 | v394 | v402) & ~(v743 | v726 | v727) | (v17 | v18) & ((v823 | v824 | v825) & v373 | (v726 | v727) & ~v373) & ~v743 +v707 => ~v708 +v547 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v548 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v547 => ~(v997 | v998) +v708 => (v3 | v4 | v314 | v464 | v345 | v482 | v515 | v432 | v434 | v375 | v438 | v439 | v447 | v449 | v453 | v458) & ~(v39 | v743 | v17 | v18) | (v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535) & ~(v39 | v743 | v17 | v18) | (v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v39 | v743 | v17 | v18) | (v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721) & ~(v39 | v743 | v17 | v18) | (v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~(v39 | v743 | v17 | v18) | (v385 | v737 | v738 | v386 | v739 | v740 | v561 | v390 | v392 | v480 | v394 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v400 | v747) & ~(v756 | v39 | v743 | v17 | v18) | (v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v756 | v39 | v743 | v17 | v18) | (v572 | v755 | v573 | v574 | v575 | v576) & ~(v39 | v743 | v17 | v18) | (v17 | v18) & (v439 | v379 & ~(v518 | v521 | v536 | v551) | v384 | v408 & ~(v387 | v388 | v389 | v741 | v742 | v480 | v394 | v402) | v409) & ~(v756 | v39 | v743 | v726 | v727) +v708 => ~v707 & ~v756 +v1565 => v39 & v1567 & v682 +v1565 => ~(v1566 | v809) +v548 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v549 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v548 => ~(v997 | v998) +v1078 => v178 & v264 & (v771 | v356) | v141 & v268 & v356 & ~(v17 | v18) +v1078 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63) & ~(v999 | v1000 | v828 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830) & ~(v1264 | v839 | v1322 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1055 | v1057 | v1058 | v1060 | v1061 | v1065 | v831 | v1080 | v1081 | v1088 | v1104 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119) & ~(v1323 | v1027 | v1051 | v1052 | v1062 | v1066 | v832 | v1092 | v1098 | v1099 | v1106 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v549 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v378 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v549 => ~(v997 | v998) +v378 & v511 & v1466 & ~(v997 | v998 | v588 & ~v2082) & ~(v485 | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v393 +v378 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~v2224 & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v378 => v393 +v550 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v709 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v550 => ~(v997 | v998) +v832 => v178 & v130 & v356 & ~(v17 | v18) | v178 & v130 & v822 & (v357 | v358) & ~(v17 | v18) +v832 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v63) & ~(v999 | v1000 | v828 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830) & ~(v1264 | v839 | v1322 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1055 | v1057 | v1058 | v1060 | v1061 | v1065 | v831 | v1078 | v1080 | v1081 | v1088 | v1104 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833) & ~(v1323 | v1027 | v1051 | v1052 | v1062 | v1066 | v1092 | v1098 | v1099 | v1106 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v709 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v710) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v709 => ~(v997 | v998) +v1509 => ~(v447 | (v3 | v4 | v314 | v464 | v345) & ~(v410 | v411)) +v710 => v379 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v710 => ~(v997 | v998) +v551 => v511 & ~(v1354 | v1355 | v997 | v998) +v551 => v379 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v552 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v552 => ~(v997 | v998) +v553 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v553 => ~(v997 | v998) +v465 => ~(v3 | v4 | v314 | v464 | v345) & ~(v490 | v491 | v492 | v493) +v554 => v379 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v554 => ~(v997 | v998) +v12 => (v789 | v790 | v39) & v797 & (v794 | v1677 | v845 & v587 | (v366 | v368) & v39) & ~(v17 | v18) | (v17 | v18) & (v789 | v790 | v39) & v797 & (v319 | v1678) | (v789 | v790 | v39) & v797 & (v1 | v294 | v16 | v21 | (v366 | v368) & ~v39 | v791) & ~(v17 | v18) | (v17 | v18) & (v789 | v790 | v39) & v797 & (v1 | v16 | v367 | v21 | v369 | v791) +v12 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v13 | v14 | v15 | v27 | v28 | v29) +v12 | v14 | v8 | v13 | v9 | v7 | v15 | v5 | v11 +v809 & ~v756 => v1568 +v809 => (v1568 | v756) & (v810 | v562 | v563) & v1567 & ~(v683 | v1350 | v39) +v809 => ~(v1565 | v1566 | v1559) +v1096 => ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v996 | v997 | v998 | v801 | v802 | v803 | v827) & ~(v63 | v999 | v1000 | v828 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1027 | v1028 | v1029 | v1030 | v1031 | v1032) & ~(v1264 | v1322 | v1034 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1045 | v1049 | v1050 | v1056 | v1051 | v1052 | v1055 | v1063 | v1057 | v1058 | v1059 | v1060 | v1061 | v1062 | v1070 | v1064 | v1065 | v831 | v1066 | v1067 | v1068 | v1069 | v1078 | v1071 | v1072) & ~(v1073 | v1074 | v1075 | v1076 | v1077 | v832 | v1079 | v1080 | v1081 | v1082 | v1092 | v1084 | v1085 | v1086 | v1087 | v1088 | v1089 | v1090 | v1091 | v1098 | v766 | v1094 | v1095 | v1097 | v768 | v1099 | v1100 | v1101 | v1102 | v1103 | v1104 | v1105 | v1106 | v1107 | v1109 | v1110) & ~(v839 | v1323 | v1111 | v1118 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v2249 => v18 +v1500 => (v515 | v517 | v387) & ~(v39 | v17 | v18) +v1500 => ~v1398 +v379 => v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710 | v551 | v552 | v553 | v554 +v379 => ~(v373 | v377 | v384 | v408 | v409) +v466 => v756 & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v467 | v468 | v469 | v470 | v471 | v472 | v2251 | v2252 | v473 | v2253 | v474 | v475 | v476) +v380 & v1604 & ~(v2160 & v985) & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2145 | v2146 | v1552 | v1629) & ~(v806 | v2147 & ~(v813 | v583 | v585 | v2158) | v314) & ~(v1523 | v1524 | v1528 | v431 | v1352 & ~v589 | v2148) & ~(v2084 | v2085 | v2086 | v2087 | v2149 | v463 | v464 | v2088 | v1452 | v1453 | v141 & ~(v1575 & v2061) | v1509 & ~(v410 | v411) | v465) & ~(v469 | v475 | v476 | v1654 & ~(v1479 | v583 | v1653)) & ~(v481 | v1488 | v1354 | v1355 | v1356 | v1622) & ~(v484 & ~(v815 | v816 | v581 | v817 | v819) | v485 | v2154 | v1613 | v2155 | v2156 | v857 | v1606 | v811 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v975 | v494 & ~(v410 | v411 | v1897 | v1381) | v2157 & ~v2159) & ~(v810 | v482 | v483) & ~(v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v3 +v380 => v3 & v1604 +v380 => v384 & ~(v2224 | v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v381 & v1604 & ~(v2160 & v985) & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144) & ~(v2145 | v2146 | v1552 | v1629) & ~(v806 | v2147 & ~(v813 | v2165 & v2164 | v583 | v585 | v2158) | v314) & ~(v1523 | v1524 | v1528 | v431 | v1352 & ~v589 | v2148) & ~(v2084 | v2085 | v2086 | v2087 | v2149 | v463 | v464 | v2088 | v1452 | v1453 | v141 & ~(v580 & (v2061 | v1889) | v1575 & v2061) | v1509 & ~(v410 | v411) | v465 & ~v382) & ~(v469 | v475 | v476 | v1654 & ~(v1479 | v583 | v1653)) & ~(v481 | v1488 | v1354 | v1355 | v1356 | v1622) & ~(v484 & v3 | v485 | v2154 & ~v1478 | v1613 | v2155 | v2156 | v857 | v1606 | v811 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v494 & ~(v410 | v411 | v1897 | v1381) | v2157 & ~v2159) & ~((v2166 | v2167 | v2168 | v2169 | v2170 | v2171) & ~v3) & ~(v3 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v4 +v381 => v4 & v1604 +v381 => v384 & ~(v2224 | v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v470 => v756 & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v466 | v467 | v468 | v469 | v471 | v472 | v2251 | v2252 | v473 | v2253 | v474 | v475 | v476) +v471 => (v1539 & v358 & v1615 & v756 & v562 & v681 & v1421 & v1455 & v1457 & v789 & v676 & v965 & v1384 & v974 & v1655 & v504 & v853 & v1449 & v864 & v855 & v1404 & v405 & v2154 & v315 & v694 & v1464 & v1472 & v1493 & v799 & v1454 & v2117 & v862 & v507 & v695 & v696 & v821 & v2173 | v17 & v505 & v1640 & v756 & v562 & v681 & v1455 & v2118 & v809 & v855 & v2254 & v687 & v2154 & v856 & v1512 & v315 & v2255 & v886 & v1424 & v694 & v1464 & v1472 & v1493 & v799 & v1454 & v2117 & v862 & v695 & v508 & v696 & v1494 & v821 & v1474 & v2173) & v17 & v505 & v1640 & v756 & v562 & v1457 & v676 & v965 & v1384 & v974 & v1655 & v504 & v853 & v1449 & v2173 +v471 => v756 & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v466 | v467 | v468 | v469 | v470 | v472 | v2251 | v2252 | v473 | v2253 | v474 | v475 | v476) +v2113 => ~v2114 +v2113 => ~v345 +v2253 => v756 & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v2251 | v2252 | v473 | v474 | v475 | v476) +v474 => v756 & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v2251 | v2252 | v473 | v2253 | v475 | v476) +v475 => v756 & ~(v3 | v4) & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v2251 | v2252 | v473 | v2253 | v474 | v476) +v476 => v756 & ~(v3 | v4) & ~(v490 | v491 | v492 | v493) & ~(v461 | v462 | v2250 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v2251 | v2252 | v473 | v2253 | v474 | v475) +v2114 => ~v2113 +v2114 => ~v345 +v13 => (v791 | v795 | v318) & v776 & v502 & (v789 | v790) & ~v39 | (v794 | v319 | v967) & v776 & v502 & (v789 | v790) & ~v39 +v13 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v14 | v15 | v27 | v28 | v29) +v555 => v511 & ~(v997 | v998) +v555 => ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v556 => v511 & v496 & ~(v997 | v998) +v556 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v711 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v711 => ~(v997 | v998) +v712 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v712 => v496 & ~(v997 | v998) +v713 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446) & ~(v447 | v448 | v449 | v450 | v451 | v452 | v453 | v2083 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527) & ~(v528 | v701 | v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378) & ~(v550 | v709 | v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559) & ~(v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394) & ~(v395 | v396 | v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752) & ~(v753 | v754 | v571 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v713 => ~(v997 | v998) +v714 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v714 => ~(v997 | v998) +v864 => v798 & ~(v17 | v18) +v864 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v865 | v866 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v715 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v715 => v496 & ~(v997 | v998) +v865 => ~(v17 | v18) | v17 | v18 +v865 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v866 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v865 | v886 | v864 | v876 | v891 | v896 | v866 | v897 | v898 +v557 & v1402 & ~(v3 | v4 | v382) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v654 | v655 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v653 +v557 => v384 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v557 => v496 & ~(v997 | v998) +v866 => ~(v865 | v2256 | v2257 | v867 | v868 | v2258 | v2259 | v869) & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v865 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v866 => ~(v17 | v18) +v716 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v716 => v496 & ~(v997 | v998) +v867 => ~v2260 & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v865 | v866 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v798 +v717 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v717 => v496 & ~(v997 | v998) +v382 => v1468 & v465 & v479 & v1467 & v1466 & v496 & v1469 & ~(v775 & ~v2261 | v1354 | v1355 | v997 | v998) +v382 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452 | v1453 & (v1479 | v1653)) & ~(v1355 | v1356) & ~(v484 | v485 | v811) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v718 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v718 => v496 & ~(v997 | v998) +v719 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v719 => v496 & ~(v997 | v998) +v720 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v720 => v496 & ~(v997 | v998) +v721 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v721 => ~(v997 | v998) +v722 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v723 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v722 => ~(v997 | v998) +v1105 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015) & ~(v1264 | v839 | v1322 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117) & ~(v1323 | v1184 | v991 | v992 | v995 | v1028 | v1107 | v1113 | v1116 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v723 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v558 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v723 => ~(v997 | v998) +v558 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v724 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v558 => ~(v997 | v998) +v724 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v559 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v724 => ~(v997 | v998) +v14 => (v793 | v966 | v967 | v968) & v776 & v502 & (v789 | v790) & ~v39 | v318 & v776 & v502 & (v789 | v790) & ~v39 +v14 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v13 | v15 | v27 | v28 | v29) +v478 => (v314 | v395 | v396) & ~(v17 | v18) | (v17 | v18) & (v314 | v396) +v478 => ~(v4 & ~(v3 & v784 | v589 | v783) | v477 | v479) & ~(v490 | v491 | v492 | v493) +v479 => v1468 & (v3 | v4 | v382) +v479 => ~(v477 | v478) & ~(v490 | v491 | v492 | v493) +v559 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v725 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v559 => ~(v997 | v998) +v833 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1264 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036) & ~(v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v1119 | v1120 | v1122 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v725 => v384 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v485 | v811) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v728 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v725 => v1467 & v496 & ~(v2137 | v1354 | v1355 | v997 | v998) +v726 => ~v589 & ~v727 & ~v975 +v727 => ~v726 +v728 => (v587 | v588 | v359 | (v63 | v179) & v1565 | v822) & v496 +v728 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v729) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v729 & v1402 & ~(v3 | v4 | v382) & ~(v634 | v635 | v636 | v637 | v638 | v639 | v640 | v641 | v642 | v643 | v644 | v645 | v646 | v647 | v648 | v649 | v650 | v651 | v652 | v653 | v654 | v656 | v657 | v658 | v659 | v660 | v661 | v662 | v663 | v664 | v665 | v666 | v667 | v668 | v669 | v670) & ~v673 => v655 +v729 => v384 & ~(v2227 & v2225) & ~(v2162 & ~(v1479 | v1653)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v1355 | v1356 | v1562 | v1361 | v1563) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v729 => v810 & v1604 +v2004 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1940 | v1941 | v1949) & ~(v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984) & ~(v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2018 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1654 => (v836 | v828) & ~(v3 | v4) +v1654 => ~(v3 & ~(v1479 | v583 | v1653) | v4 & ~(v1479 | v583 | v1653) | v589) +v383 => v384 & ~v2224 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v383 => v1467 & v496 & ~(v997 | v998) +v730 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v730 => v1467 & v496 & ~(v997 | v998) +v731 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~v2162 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v731 => ~(v997 | v998) +v732 => (v587 | v588 | v359 | (v63 | v179) & v1565 | v822) & v496 & ~v2137 +v732 => v384 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v733 => (v63 | v179 | v822 | v587 | v588 | v359) & v496 +v733 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1134 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1264 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036) & ~(v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1120 | v1122 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v834 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1264 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036) & ~(v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1120 | v1122 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v734 => v384 & ~(v988 | v2227 & v2225) & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v734 => v1467 & v496 & ~(v997 | v998) +v15 => (v794 | v319) & v776 & v502 & (v789 | v790) & ~v39 | v791 & v776 & v502 & (v789 | v790) & ~v39 +v15 => ~(v30 | v31 | v32 | v33 | v34 | v35 | v36 | v37 | v38 | v5 | v6 | v7 | v8 | v9 | v10 | v11 | v12 | v13 | v14 | v27 | v28 | v29) +v560 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v384 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v560 => v496 & ~(v997 | v998) +v1139 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1264 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036) & ~(v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1120 | v1122 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v735 => v384 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v735 => v1567 & v496 & ~(v1354 | v1355 | v997 | v998) +v736 => v384 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v736 => v1467 & v496 & ~((v587 | v588 | v359) & ~(v809 | v822) | v997 | v998) +v2018 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1922 | v1923 | v1928 | v1929 | v1931 | v1935 | v1936 | v1937 | v1940 | v1941 | v1949) & ~(v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1970 | v1971 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984) & ~(v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2017 | v2019) & ~(v1916 | v1917 | v1918 | v1919 | v1920 | v1933 | v1938 | v1939 | v1942 | v1962 | v1969 | v1972 | v2015 | v2016 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v2018 => ~(v466 | v470 | v474 | v475) +v384 => v380 | v381 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 +v384 => ~(v373 | v377 | v379 | v408 | v409) +v342 => ((v360 | v361 | v362 | v314) & ~(v357 | v358 & v345 | v359 | v17 | v18) | (v17 | v18) & (v360 | v361 | v314) & ~(v345 | v359)) & ((v16 | v363 | v366 | v19 | v20) & ~(v17 | v18) | (v17 | v18) & (v16 | v363 | v19 | v20 | v367)) +v342 => ~(v840 | v841 | v842 | v843 | v844 | v845 | v846 | v847 | v848 | v849) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v337 | v338 | v339 | v340 | v343 | v344 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v16 => v342 & (v5 | v9 | v12) & (v864 | v865 | v866 | v867 | v876 | v880) & ~(v39 | v17 | v18) | (v17 | v18) & v342 & (v5 | v9 | v12) +v16 => ~v295 & ~v316 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v385 => v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v385 => v1570 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998) +v363 => v342 & (v7 | v11) & (v864 | v865 | v866 | v867 | v880) & ~(v39 | v17 | v18) | (v17 | v18) & v342 & (v7 | v11) +v363 => ~v295 & ~v316 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v737 => v463 & v1570 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v737 => v408 & ~(v988 | v2227 & v2225) & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1539 => v356 | v357 | v358 +v1539 => ~(v2262 | v2263 | v2264 | v2265 | v2266 | v2267 | v2054 | v17 | v18) +v1539 | v17 | v18 +v738 => v463 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v738 => v408 & ~(v988 | v2227 & v2225) & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v17 => v505 | v771 | v356 | v359 +v17 => ~(v2262 | v2263 | v2264 | v2265 | v2266 | v2267 | v2054 | v1539 | v18) +v366 => v342 & (v5 | v8 | v9 | v12) & (v864 | v865 | v866 | v867 | v876 | v880) & ~(v39 | v17 | v18) +v366 => ~v295 & ~v316 & ~v280 & ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v386 => v511 & v492 & v1570 & (v414 | v421) & ~(v997 | v998 | v588 & ~v2082) +v386 => v408 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v18 => v505 | v588 | v771 | v983 | v356 | v357 | v359 | v1545 +v18 => ~(v2262 | v2263 | v2264 | v2265 | v2266 | v2267 | v2054 | v1539 | v17) +v854 => ~(v1351 & v1356 | v17 | v18) | (v17 | v18) & ~(v1351 & v1356) +v854 => ~(v1352 | (v1357 | v1358 | v1359) & ~v976) & ~(v855 | v1353) +v387 => v1539 & ((v356 | v358) & v769 | v357) & v511 & v1466 & (v1500 | v39) & v1570 & ~(v1354 | v1355) & v1604 | v17 & ((v505 | v356 & v770) & v769 | v359) & v511 & v1466 & v1570 & ~(v1354 | v1355) & v1604 +v387 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452 | v1356 | v1467) & ~(v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v855 => (v789 | v790) & v797 & v686 & ~(v345 & ~(v357 | v359) | v39 | v594 | v17 | v18) | (v17 | v18) & (v789 | v790) & v797 & (v686 | v687) & ~(v345 & ~(v357 | v359) | v39 | v594) +v855 => ~(v1357 | v1358 | v1359) & ~(v854 | v1353) +v739 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v739 => v1570 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998) +v388 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v388 => v1570 & ~(v997 | v998 | v588 & ~v2082) +v740 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~v2162 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v740 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v2137 | v1354 | v1355 | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~(v2137 | v1354 | v1355 | v997) +v1404 => v853 & (v671 | v1402 | v672) & ~(v17 | v18) +v1404 => ~(v1401 | v1403 | v1405 | v1406 | v1407 | v1408) +v19 => v342 & (v5 | v9) & (v864 | v865 | v866 | v867 | v880) & ~(v39 | v17 | v18) | (v17 | v18) & v342 & (v5 | v9) +v19 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v389 => v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v389 => v1570 & ~(v997 | v998) +v1405 => v853 & (v671 | v1501 | v1409 | v672) & ~(v17 | v18) +v1405 => ~(v1401 | v1403 | v1404 | v1406 | v1407 | v1408) +v20 => v342 & (v5 | v9 | v11) & (v864 | v865 | v866 | v867 | v876 | v880) & ~(v39 | v17 | v18) | (v17 | v18) & v342 & (v5 | v9 | v11) +v20 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v561 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v511 & ~(v592 | v39 | v594 | v586)) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v561 => v1570 & (v1607 | v989) & ~(v2137 | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~(v2137 | v997) +v2254 => ~(v17 | v18) | (v17 | v18) & v692 +v741 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v741 => v1570 & ~(v997 | v998) +v390 => (v357 & v2172 | v358 & ~v769) & v511 & v1607 & ~(v17 | v18) & v1604 | v17 & (v505 & ~v769 | v359 & v2172) & v511 & v1604 +v390 => ~(v1355 | v485 | v811 | v1467) & v408 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v2224 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v367 => (v17 | v18) & v342 & (v5 | v8 | v9 | v12) & ~v2118 +v367 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v742 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v2227 & v2225) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v391 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v742 => v1570 & ~(v997 | v998) +v391 & v1604 & ~(v1571 | v2127) & ~(v2161 | v2268) & ~v1523 & ~(v463 | v464 | v141 & ~(v580 & v1889 | v1575 & v2061) | v1509 & ~(v410 | v411) | v465) & ~(v485 | v811 | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v2152 | v2153 | v482 | v483) => v345 +v391 => v345 & v1604 +v391 => v408 & ~(v988 & ~v1479 | v2227 & v2225) & ~(v2162 & ~(v1479 | v583)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v392 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v2269 => v811 | v1666 | v1668 +v743 => ~(v1475 | v1477 | v707 | v708 | v345) +v743 => ~(v491 | v493 | v975 | v2157) +v344 => (v681 & v797 & v798 & (v360 | v361) & (v356 | v358) & v345 & ~(v17 | v18) & v1604 | (v17 | v18) & v681 & v797 & v798 & (v360 | v361) & (v356 | v505) & v345 & v1604 | v2173) & ((v21 | v364 | v368 | v22 | v23) & ~(v17 | v18) | (v17 | v18) & (v21 | v364 | v22 | v23 | v369)) +v344 => ~(v840 | v841 | v842 | v843 | v844 | v845 | v846 | v847 | v848 | v849) & ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v337 | v338 | v339 | v340 | v342 | v343 | v346 | v347 | v348 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v344 | v315 | v292 | v316 | v342 +v392 => v511 & v492 & v1570 & (v414 | v421) & ~(v997 | v998 | v588 & ~v2082) +v392 => v408 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v480 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v810 => v1539 & v729 & v358 & ~v769 & (v1565 | v809 | v822 & v812) & v1467 & v496 & ~(v2137 | v1354 | v1355) & v1604 | v17 & v729 & (v505 & ~v769 | v359) & (v1565 | v809) & v1467 & v496 & ~(v2137 | v1354 | v1355) & v1604 +v810 => ~v1606 & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v21 => v344 & (v5 | v9 | v12) & (v864 | v865 | v866 | v876) & ~(v17 | v18) & v1604 | (v17 | v18) & v344 & (v5 | v9 | v12) & (v865 | v896 | v897 | v898) & v1604 +v21 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v480 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v394 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v480 => v511 & v492 & (v414 | v421) & v2081 & v497 & ~(v588 & ~v2082) +v393 => v378 & v511 & v1466 & ~(v997 | v998 | v588 & ~v2082) +v393 => ~(v485 | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v394 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v395 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v394 => v511 & v492 & v1570 & v2081 & v497 & ~(v588 & ~v2082) +v2150 => v456 +v2150 => ~(v481 | v485) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2151 | v345 | v2152 | v2153 | v482 | v483) +v395 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v485 | v1467) & ~v2224 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v396 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v395 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v2137 | v1356 & ~v695 | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588 & v2082) & ~(v2137 | v1356) +v396 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v511 & ~(v592 | v39 | v594 | v586)) & v408 & ~v2224 & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v562) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v396 => v478 & v1570 & (v1607 | v989) & ~(v997 | v998 | v17 | v18) | (v17 | v18) & v478 & v1570 & (v1607 | v505 | v588) & ~v997 +v364 => v344 & (v7 | v11) & (v864 | v865 | v866) & ~(v17 | v18) & v1604 | (v17 | v18) & v344 & (v7 | v11) & (v865 | v896 | v897 | v898) & v1604 +v364 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v364 | v23 | v966 | v2 | v20 | v796 | v294 | v318 | v21 | v791 | v366 | v793 | v968 | v367 | v967 | v1 | v22 | v19 | v368 | v795 | v319 | v293 | v794 | v363 | v369 | v16 +v562 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v2162 & ~(v580 | v817)) & ~(v1355 | v485) & ~(v1467 | v2161) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v562 => v1539 & (v357 | v358) & v1605 & v1607 & (v421 | v756) & v511 & v1570 & v1567 & v497 & ~v2137 & v2173 | v17 & (v505 | v359 & v1607) & v1605 & (v421 | v756) & v511 & v1570 & v1567 & v497 & ~v2137 & v2173 +v481 => ~(v1606 | v490 | v491 | v492 | v493) & ~(v2162 | v2270 | v2271 | v2272 | v2273) & ~(v373 | v3 | v4 | v314 | v464 | v2150 | v2152 | v482 | v483) +v368 => v344 & (v5 | v8 | v9 | v12) & (v864 | v865 | v866 | v876) & ~(v17 | v18) & v1604 +v368 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v2274 => v811 | v1666 | v1668 +v345 & (v17 | v18) & (~(v851 | v852) | (v851 | v852) & (v2275 | v345) | v39) & ~v1562 & (v373 | v377 & ~(v424 | v374 | v513 | v514 | v800 | v516 | v517 | v445 | v446 | v448 | v451 | v376) | v480 | v345 & v817) & ~v1564 => v1563 +v345 & (v17 | v18) & ~(v1481 | v1482) => v1483 +v345 & v681 & v2116 & v2118 & ~(v345 & ~v357 | v17 | v18) | v345 & (v17 | v18) & v681 & v2116 & v2118 & ~(v345 & ~v359) => v2117 +v345 & v359 & (v17 | v18) & v798 & (v315 | v316 | v323 | v324) & ~v39 & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v887 | v888 | v889 | v890 | v891 | v892 | v894 | v911 | v912 | v913 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v930 | v931 | v932) & ~(v896 | v897 | v901 | v915 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964 | v864 | v865 | v866 | v867 | v868 | v869) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) => v886 +v345 & v359 & (v17 | v18) & v966 & v696 & ~(v693 | v39) => v971 +v345 & v359 & (v17 | v18) & v178 & v130 & v822 & (v505 | v359) & ~v2075 & ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v837 +v345 & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v622 +v345 & ~(v1388 | v1389 | v1390 | v1391 | v1392) => v1393 +v345 & ~(v1459 & ~(v682 | v692) | v17 | v18) & ~v1482 & ~(v375 | v438 | v444) & ~(v523 | v524 | v527 | v530 | v703 | v533 | v705 | v534 | v537 | v540 | v706 | v545 | v546 | v550 | v710) & ~(v380 | v381 | v555 | v556 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v730 | v731 | v732 | v734 | v560 | v736) & ~(v737 | v388 | v740 | v561 | v390 | v392 | v480 | v394 | v395 | v396 | v398 | v745 | v399 | v400 | v567 | v568 | v401 | v749 | v750 | v570 | v752 | v571) & ~(v826 | v572 | v755 | v574 | v575 | v576) => v1481 +v345 => (~(v372 | v2095 | v2096 | v683 | v1629 | v1655 | v1487 | v141 | v1509 | v743 | v2137 | v1622 | v2276 | v811 | v2277 | v782 | v39 | v1900 | v1375 | v1376 | v2113 | v2114 | v17 | v18) & v1604 | (v17 | v18) & ~(v372 | v2095 | v2096 | v683 | v1455 | v1655 | v1487 | v1509 | v743 | v2137 | v1356 | v1622 | v2276 | v811 | v2277 | v782 | v39 | v1900 | v1375 | v1376 | v2113 | v2114) & v1604) & (v1421 & v1455 & v1457 & v675 & v676 & v690 & v504 & v708 & v405 & v1669 & v1467 & v1466 & v1570 & v1472 & v1493 & v1454 & v507 & v695 & v1469 & v1481 & ~(v17 | v18) & v1604 | (v17 | v18) & v1457 & v675 & v676 & v690 & (v707 | v708) & v2254 & v405 & v1669 & v1361 & v1563 & v1467 & v1466 & v1570 & v1493 & v695 & v508 & v1469 & v1474 & v1483 & v1604) & (v1539 & v356 & v772 & v769 & v987 & v1607 & (v1645 | v506) & v790 & v974 & v1486 & v512 & (v865 | v866 | v876 | v886 | v891) & v854 & v696 & (v801 | v836 | v832) & (v316 | v344) & v1604 | v1539 & v357 & v682 & v1350 & v684 & v511 & v1449 & (v886 | v891 | v864 | v865 | v866) & v1354 & v1607 & v2172 & v2117 & v862 & (v836 | v827 | v832) & v1604 | v1539 & v358 & v1640 & v769 & v1607 & v682 & v790 & v684 & v1486 & v511 & v1449 & v1354 & v1356 & (v865 | v866 | v876 | v886 | v891) & v854 & v506 & v862 & (v836 | v827 | v832) & (v316 | v344) & v1604 | v17 & v356 & v770 & v769 & (v500 | v503) & v512 & v1486 & (v865 | v886 | v891 | v898) & v854 & v1424 & (v836 | v1209 | v837 | v828) & (v316 | v344) & v1604 | v17 & v771 & v770 & v769 & v1374 & v1604 | v17 & v505 & v769 & v682 & v684 & v1486 & v511 & v1449 & v1354 & (v865 | v886 | v891 | v898) & v854 & v503 & v1424 & v862 & v1494 & v361 & (v836 | v837 | v827 | v828) & (v316 | v344) & v1604 | v17 & v359 & v682 & v1625 & v1350 & v684 & v511 & v1449 & (v865 | v886 | v891 | v898) & v1354 & v1607 & v2172 & v2117 & v862 & v1494 & v361 & (v836 | v837 | v827 | v828) & v1604) & (v1539 & v357 & v1604 | v356 & v772 & v769 & v987 & ~(v781 | v684 | v1354 | v1356 | v1372 | v2117) & v1604 | v358 & v1640 & v769 & ~(v781 | v1372 | v2117) & v1604 | v17 & v356 & v770 & v769 & ~(v1401 | v781 | v684 | v1449 | v1354 | v2117 | v1494) & v1604 | v17 & v771 & v770 & v769 & v1374 & v1604 | v17 & v505 & ~(v1401 | v2117) & v1604 | v17 & v359 & ~v1401 & v1604) & v391 & v1604 +v345 => ~(v1571 | v2127) & ~(v2161 | v2268) & ~v1523 & ~(v463 | v464 | v141 & ~(v580 & v1889 | v1575 & v2061) | v1509 & ~(v410 | v411) | v465) & ~(v485 | v811 | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v2152 | v2153 | v482 | v483) +v2152 => v441 +v2152 => ~(v481 | v485) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2153 | v482 | v483) +v563 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v605 +v563 & v17 & v672 & ~(v399 | v390) => v2132 +v563 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v2162 & v408 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v563 => v511 & v1570 & v1607 & (v1565 | v809) & ~(v997 | v998 | v17 | v18) | (v17 | v18) & v511 & v1570 & (v1607 | v505 | v588) & (v1565 | v809) & ~v997 +v744 => v463 & v1570 & ~(v588 & ~v2082) +v744 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v22 => v344 & (v5 | v9) & (v864 | v865 | v866) & ~(v17 | v18) & v1604 | (v17 | v18) & v344 & (v5 | v9) & (v865 | v896 | v897 | v898) & v1604 +v22 => ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1684 | v1685 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1696 | v1697 | v1698 | v1699 | v1700 | v1701 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707) & ~(v1708 | v1709 | v1710 | v1711 | v1713 | v1714 | v1715 | v1716 | v1719 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1732 | v1733) & ~(v1734 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1748 | v1750 | v1751 | v1752 | v1753 | v1754 | v1755 | v1756 | v1757 | v1760 | v1761 | v1762 | v1763 | v1764 | v1765) & ~(v1766 | v1767 | v1769 | v1771 | v1773 | v1774 | v1775 | v1776 | v1777 | v1778 | v1779 | v1780 | v1781 | v1782 | v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1789 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794) & ~(v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1797 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804 | v1805 | v840 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846) & ~(v1673 | v1674 | v849 | v1809 | v1810 | v1811 | v1812 | v1813 | v1814 | v1815 | v1816 | v1817 | v1819 | v1820 | v1822 | v1823 | v1824 | v1825 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835 | v1836 | v1837 | v1838) & ~(v1839 | v1840 | v1841 | v1842 | v1843 | v1844 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1851 | v1852 | v1853 | v1854 | v1855 | v24 | v1856 | v365) & ~(v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v1868 | v354 | v1869 | v1870 | v1871 | v1872 | v1873 | v1874 | v1497 | v1876 | v1877 | v967 | v1878 | v1879) & ~(v1695 | v1712 | v1717 | v1718 | v1749 | v1758 | v1759 | v1768 | v1770 | v1772 | v843 | v1818 | v1821 | v1826 | v1827 | v1860 | v1875 | v1880 | v968 | v1881 | v1882 | v1883 | v1498 | v1884 | v1885 | v1499 | v1886) +v482 & (v17 | v18) & (v671 | v672) => v1533 +v482 => (v1539 & v399 & v1455 & v1457 & v511 & (v1475 & v708 | v743) & v1467 & v1570 & v497 & v1604 | v17 & v399 & v1455 & v1457 & v511 & (v1475 & (v707 | v708) | v743) & v1467 & v1570 & v497 & v1604) & (v1539 & (v357 & v2172 | v358) & v1607 & (v506 | v593) & v696 & ~(v2137 | v1493 | v39 | v594) & v1604 | v17 & (v505 | v359 & v1607) & (v503 | v593) & v696 & ~(v1655 | v2137 | v1493 | v39 | v594) & v1604) +v482 => ~v481 & ~(v2154 | (v486 | v1613) & ~(v2278 & v814 | v2279 & (v577 | v815 | v784 | v816 | v580 & v986 | v583) | v1545 & (v817 | v818 | v1575 | v584) | v2280 | v2281 | v988 | v989 | v2282 & (v580 | v1575))) & ~v2127 & ~(v1355 | v485 | v1606 | v811 | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v483) +v23 => v344 & (v5 | v9 | v11) & (v864 | v865 | v866 | v876) & ~(v17 | v18) & v1604 | (v17 | v18) & v344 & (v5 | v9 | v11) & (v865 | v896 | v897 | v898) & v1604 +v564 => v408 & ~(v988 | v2227 & v2225) & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v564 => v1570 & ~(v997 | v998 | v588 & ~v2082) +v397 => v511 & v492 & v1570 & (v414 | v421 | v588 & ~v2082) +v397 => v408 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v369 => (v17 | v18) & v344 & (v5 | v8 | v9 | v12) & (v865 | v896 | v897 | v898) & ~v2118 & v1604 +v398 & ~v1571 & ~(v2138 | v2139 | v2140 | v2141 | v2142 | v2143 | v2144 | v372 | v1369 | v417) & ~(v2174 | v2145 | v2146 | v1552 | v2175 | v2127 | v1629) & ~(v806 | v3 | v2161 | v2147 & ~(v813 | v820 | v583) | v4 | v1478) & ~(v1523 | v1524 | v1528 | v1531 | v433 | v1352 & ~v589 | v435 | v1661 & ~(v1889 | v1890)) & ~(v463 | v464 | v1475 | v1477 | v141 & ~(v580 & v1889 & v993 | v1575 & v2061) | v1509 & ~(v410 | v411) | v465) & ~(v469 | v475 | v476) & ~(v481 | v1354 | v1355 | v1622) & ~(v484 | v485 | v2155 | v1394 | v2156 | v857 | v1606 | v2176 | v811 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v975 | v494 & ~(v410 | v411 | v1897 | v1381) | v1467 & ~v589 | v592 | v39) & ~(v511 & ~(v577 | v578 | v580 & v588 | v581 & v591 | v582 | v583 & (v588 | v356 | v589) | v584 & v588 | v585 | v586)) & ~(v3 | v4 | v1478 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v314 +v398 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v511 & ~(v577 | v578 | v580 & v588 | v581 & v591 | v582 | v583 & (v588 | v356 | v589) | v584 & v588 | v585 | v592 | v39 | v594 | v586)) & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v398 => v314 +v2283 => v811 | v1666 | v1668 +v2137 => ~(v3 | v4 | v345 | v482 | v725 | v729 | v732 | v740 | v561 | v395 | v562 | v565 & ~v463 | v568 | v570 | v751 | v753) +v2137 => ~v2284 +v745 => v463 & v1570 & ~((v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v745 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v565 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v565 => v1570 & v1567 & (v809 | v63 | v822) & ((v587 & v769 & (v2094 | v2095) | v359) & v511 | v356 | v357 | v358 | v988) & v1607 & ~(v2137 & ~v463 | v1354 | v1355 | v17 | v18) | (v17 | v18) & v1570 & v1567 & (v809 | v63 | v179 | v822) & ((v588 & v769 & v2082 | v359 & v1607) & v511 | (v356 | v357 | v1545) & v1607) & ~(v2137 & ~v463 | v1354 | v1355) +v746 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v746 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~v997 +v399 => v482 & v1604 +v399 => v408 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v2224 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v400 => v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v400 => v1570 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998) +v747 => v463 & v1570 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v747 => v408 & ~(v988 | v2227 & v2225) & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v2285 => v811 | v1666 | v1668 +v348 => ~(v279 | v280 | v283 | v284 | v288 | v289 | v291 | v292 | v295 | v296 | v297 | v298 | v299 | v301 | v302 | v305 | v309 | v310 | v312 | v315 | v316 | v320 | v321 | v323 | v326 | v327 | v331 | v335 | v336) & ~(v281 | v282 | v285 | v286 | v287 | v290 | v300 | v304 | v306 | v307 | v311 | v313 | v322 | v324 | v325 | v328 | v332 | v337 | v338 | v339 | v340 | v342 | v343 | v344 | v346 | v347 | v349 | v352 | v355) & ~(v303 | v308 | v329 | v330 | v333 | v334 | v341 | v350 | v351) +v24 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v1856 | v365 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v566 => v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v566 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998 | v1356 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~(v1356 | v997) +v567 => v511 & v1570 & (v809 | v63 | v822) & ~(v587 & ~(v769 & ~(v2094 | v2095) | v356 | v357 | v358 | v359 | v988) & ~v1607 | v1354 | v1355 | v17 | v18) | (v17 | v18) & v511 & v1570 & (v809 | v63 | v179 | v822) & ~((v356 | v357 | v359 | v1545) & ~v1607 | v1354 | v1355) +v567 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1354 => (v464 | v393 | v345 | v482 | v518 | v383 | v730 | v736 | v737 | v561 | v390 | v395 | v562 | v563 | v748 | v570 | v752 | v753 | v754 | v571) & (v695 & v681 & (v854 | v855) & ~(v279 | v356 & v345 | v17 | v18) | (v17 | v18) & v1361 & ~(v356 & v345 | v1360)) +v1354 => ~(v3 | v4 | v314 | v1355) +v365 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v1857 | v370 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v568 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v628 | v629 | v630) & ~(v631 | v632 | v633) => v627 +v568 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v2162 & v408 & ~(v1355 | v485) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v568 => v511 & v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v2137 | v1354 | v1355 | v997 | v998 | v17 | v18) | (v17 | v18) & v511 & v1570 & (v1607 | v505 | v588 & v2082) & ~(v2137 | v1354 | v1355 | v997) +v1355 & (v17 | v18) & (v373 | v377 & ~(v374 | v513 | v514 | v800 | v516 | v517 | v448) | v480) => v2126 +v1355 => v695 & v681 & (v854 | v855) & ~(v279 | v1360 | v17 | v18) | (v17 | v18) & v2126 & v1361 & ~v1360 +v1355 => ~v1354 & (v373 | v377 & ~(v424 | v374 | v513 | v514 | v800 | v516 | v517 | v445 | v446 | v448 | v451 | v376) | v480) +v401 => v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v401 => v1570 & ~(v997 | v998) +v1572 => v1356 & (v345 | v395 | v396) & ~(v17 | v18) +v370 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v1858) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v2286 => v811 | v1666 | v1668 +v748 => v463 & v1570 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v748 => v408 & ~(v988 | v2227 & v2225) & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v402 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v402 => v1570 & ~(v587 & v769 & ~(v2094 | v2095) | v1354 | v1355 | v997 | v998) +v692 => v695 & v690 & ~(v279 | v17 | v18) | (v17 | v18) & v695 & v690 & ~v693 +v692 => ~(v1652 | v693) & ~v1651 +v25 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v1858 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1356 & (v345 | v395 | v396) & ~(v17 | v18) => v1572 +v1356 => v1571 & ~(v1351 & (v854 | v855) | v1533 | v1487 | v396 & ~v1572 | v395 & ~(v695 & v1572) | v566 | v765 | v17 | v18) | (v314 | v464 | v375 | v438 | v449 | v456 | v755) & ~(v1351 & (v854 | v855) | v1487 | v17 | v18) | v345 & v1572 & ~(v356 | v17 | v18) | (v17 | v18) & ~(v1351 & (v854 | v855) | v1487 | v765 | v345 | v396 | v395 | v566) +v1356 => ~(v1573 | v1574) & ~(v3 | v4) & ~(v515 & ~(v580 | v1575) | v698 | v519 | v699 | v520 | v522 | v523 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v538 | v539 | v540) & ~(v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710 | v552 | v553 | v554) & ~(v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730) & ~(v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~((v737 | v738 | v748 | v570 | v752 | v754) & ~v580) & ~(v385 | v387 | v388 | v389 | v741 | v742 | v744 | v745 | v565 | v400 | v747 | v567 | v401 | v403 | v569 | v749 | v750 | v751) +v26 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v1858 | v25 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v403 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v403 => v1570 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998) +v693 => (v17 | v18) & ~(v690 | v345 | v692 | v969 | v970 | v971) +v693 => ~(v1652 | v692) & ~v1651 +v1372 => ~(v395 | v345 & (v356 | v358) | v17 | v18) +v569 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v569 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~v997 +v371 => ~(v0 | v1679 | v1680 | v1681 | v1686 | v1687 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725) & ~(v1713 | v1714 | v1715 | v1716 | v1726 | v1727 | v1729 | v1730 | v785 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1811) & ~(v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800) & ~(v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834) & ~(v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370) & ~(v1682 | v1683 | v1688 | v1689 | v1700 | v1702 | v1703 | v1704 | v1728 | v787 | v1731 | v1781 | v1782 | v1783 | v1812 | v1858 | v25 | v26 | v1859 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v354 | v1869 | v1872) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1867 | v1870 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v404 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~v2162 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v404 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~v997 +v749 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v750 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v749 => v1570 & v1607 & ~(v587 & v769 & ~(v2094 | v2095) | v1354 | v1355 | v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~(v1354 | v1355 | v997) +v2287 => v811 | v1666 | v1668 +v1408 => (v17 | v18) & ~(v1401 | v314 | v345) +v1408 => ~(v1401 | v1403 | v1404 | v1405 | v1406 | v1407) +v1470 => v1472 & v1471 & v1387 & ~(v39 | v17 | v18) | (v17 | v18) & v1472 & v1471 & v1387 & ~(v1661 | v39) +v677 => ~(v2288 | v676 | v1363) +v678 => ~(v675 | v679) +v678 => ~(v357 | v17 | v18) | (v17 | v18) & ~v359 +v750 => v463 & v1570 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v750 => v408 & ~(v988 | v2227 & v2225) & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v2090 | v570 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v405 & (v372 | v3 | v4 | v393 | v373 | v377 & ~(v374 | v376) | v382 | v383 | v409) | v405 & (v314 | v345 | v385 | v386 | v387 | v388 | v389 | v390 | v392 | v394 | v395 | v396 | v397 | v399 | v400 | v401 | v402 | v403 | v404) => v407 +v405 => v407 & (v3 | v4 | v393 | v373 | v377 & ~(v374 | v376) | v382 | v383 | v409) | v407 & (v314 | v345 | v385 | v386 | v387 | v388 | v389 | v390 | v392 | v394 | v395 | v396 | v397 | v399 | v400 | v401 | v402 | v403 | v404) & ~(v17 | v18) | v374 | v376 | v379 & ~v378 | v384 & ~(v380 | v381 | v382 | v383) | v408 & ~(v385 | v386 | v387 | v388 | v389 | v390 | v391 | v392 | v394 | v395 | v396 | v397 | v398 | v399 | v400 | v401 | v402 | v403 | v404) | (v17 | v18) & v407 & (v314 | v385 | v386 | v387 | v388 | v389 | v390 | v392 | v394 | v395 | v396 | v397 | v399 | v400 | v401 | v402 | v403 | v404) | (v17 | v18) & v407 & v345 +v405 => ~v406 +v570 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~v2224 & ~(v1355 | v1356 | v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v751 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v570 => v511 & v1570 & v497 & (v1607 | v989) & ~(v587 & v769 & ~(v2094 | v2095) | v2137 | v997 | v998 | v17 | v18) & ~((v1486 | v763 | v1449) & ~(v765 | v39) | v2289) | (v17 | v18) & v511 & v1570 & v497 & (v1607 | v505 | v588 & v2082) & ~(v2137 | v997 | (v1486 | v763 | v1449) & ~(v765 | v39) | v2289) +v686 => ~(v17 | v18) | v17 | v18 +v686 => ~v687 +v751 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v752 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v751 => v1570 & v1567 & (v809 | v63 | v822) & ~((v587 & v769 & ~(v2094 | v2095) | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & ~(v2137 | v17 | v18) & v1604 | (v17 | v18) & v1570 & v1567 & (v809 | v63 | v179 | v822) & ~((v356 | v357 | v359 | v1545) & ~v1607) & ~v2137 & v1604 +v752 => v463 & v1570 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v752 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v753 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v753 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v630 | v632 | v633) => v631 +v753 & v17 & v672 & ~(v399 | v390) => v2133 +v753 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v408 & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v754 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v753 => (v357 | v358) & v1570 & v1607 & ~v2137 & v2173 | v17 & (v505 | v359 & v1607) & v1570 & ~v2137 & v2173 +v2290 => v811 | v1666 | v1668 +v754 => v463 & v1570 & ~(v588 & ~v2082 | (v587 | v356 | v357 | v358 | v359 | v988 | v1545) & ~v1607) & v1604 +v754 => v408 & ~v2162 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v1356 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v571) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v1471 => (v356 & (v986 & (v680 | v1623) | v987 & v680 | v770 & ~v769 & v345) | v3 | v4 | v1472 | v39) & ~(v17 | v18) | (v17 | v18) & (v1472 | v39) +v1496 => v1469 & ~(v3 | v4) +v571 & (v17 | v18) & ~(v601 | v602 | v603 | v604 | v605 | v606 | v607 | v608 | v609 | v610 | v611 | v612 | v613 | v614 | v615 | v616 | v617 | v618 | v619 | v620 | v621 | v622 | v623 | v624 | v625 | v626 | v627 | v628 | v629) & ~(v630 | v631 | v632) => v633 +v571 & v17 & v672 & ~(v399 | v390) => v2134 +v571 => v408 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v571 => v1570 & v1607 & ~(v997 | v998 | v17 | v18) | (v17 | v18) & v1570 & (v1607 | v505 | v588) & ~v997 +v1669 => ~v975 +v1622 => v1471 & ~(v3 | v4 | v314 | v345) +v1622 => ~(v3 | v4 | v314 | v1357 & v2176 | v1358 | v1359) +v2229 => v375 & ~(v39 | v593 | v594) & v2173 +v2276 => ~((v674 | v415) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v390 | v395 | v396 | v399 | v400) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v826 | v572 | v755 | v573 | v574 | v575 | v576) & ~(v815 | v580 | v818 | v1575 | v578)) +v2276 => ~(v345 | v426) +v1387 => v1472 & ~(v39 | v17 | v18) | (v17 | v18) & v1472 & ~v39 +v2291 => v811 | v1666 | v1668 +v2025 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1922 | v1923 | v1928 | v1929 | v1931 | v1933 | v1935) & ~(v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1969 | v1970 | v1971) & ~(v1972 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004) & ~(v1920 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042) & ~(v1921 | v1925 | v1926 | v1927 | v1930 | v1932 | v1934 | v1943 | v1944 | v1945 | v1947 | v1948 | v1958 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v687 => v17 | v18 +v687 => ~v686 +v2275 => (v851 | v852) & ~(v3 | v4 | v314 | v345 & ~(v2292 | v580 | v2293 | v2165) | v2268 | v482) & ~(v1357 | v1358 | v1359) +v2275 => (v17 | v18) & (v851 | v852) & (v1562 | v1563) & ~(v314 | v345 | v482 | v39) +v1562 => (v17 | v18) & ~v1563 +v1562 => ~(v729 | v1564) +v2029 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1920 | v1922 | v1923 | v1927 | v1928 | v1929 | v1931) & ~(v1933 | v1934 | v1935 | v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1945 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965 | v1966 | v1967) & ~(v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000) & ~(v1958 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2010 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036) & ~(v1921 | v1925 | v1926 | v1930 | v1932 | v1943 | v1944 | v1947 | v1948 | v1976 | v1980 | v1986 | v2028 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1361 => (v17 | v18) & v681 +v1361 => ~v729 +v1563 & (v17 | v18) & (v851 | v852) & (v1562 | v1563) & ~(v314 | v345 | v482 | v39) & ~(v3 | v4 | v314 | v345 & ~(v2292 | v580 | v2293 | v2165) | v2268 | v482) & ~(v1357 | v1358 | v1359) => v2275 +v1563 => (v373 | v377 & ~(v424 | v374 | v513 | v514 | v800 | v516 | v517 | v445 | v446 | v448 | v451 | v376) | v480 | v345 & v817) & ~v1564 +v1563 => (v17 | v18) & (~(v851 | v852) | (v851 | v852) & (v2275 | v345) | v39) & ~v1562 +v2294 => v811 | v1666 | v1668 +v2080 => ~v141 & ~(v2177 | v2178 | v2179 | v2180 | v2181 | v2182 | v2183 | v2184 | v2185 | v2186 | v2187 | v2188 | v2189 | v2190 | v2191 | v2192 | v2193 | v2194 | v2195 | v2196 | v2197 | v2198 | v2199 | v2200 | v2201 | v2202 | v2203 | v2204 | v2205 | v2206 | v2079 | v2074 | v2075 | v2208 | v2209 | v2210) & ~(v2207 | v2211 | v2212 | v2213 | v2214 | v2215 | v2216 | v2217 | v2218 | v2219 | v2220 | v2221 | v2222 | v2223) +v407 => v405 & (v372 | v3 | v4 | v393 | v373 | v377 & ~(v374 | v376) | v382 | v383 | v409) | v405 & (v314 | v345 | v385 | v386 | v387 | v388 | v389 | v390 | v392 | v394 | v395 | v396 | v397 | v399 | v400 | v401 | v402 | v403 | v404) +v1423 => (v17 | v18) & (v1366 | v1424 | v1367 | v1440 | v1442 | v1443 | v1444) +v2081 => v373 | v377 | v480 | v394 +v408 => v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 +v408 => ~(v373 | v377 | v379 | v384 | v409) +v826 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v409 & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v572 | v755 | v573 | v574 | v575 | v576) +v826 => v464 & v2173 +v679 => (v781 | v782) & ~v279 +v679 => ~v678 +v1363 => v681 & v676 & (v965 & (v675 | v678 | v679 | v562) | v782) & ~v279 +v1363 => ~v677 +v1364 => v782 +v1365 => v782 +v2295 => v811 | v1666 | v1668 +v2296 => v356 & (v464 | v393) & v1604 | v356 & (v424 | v374 | v436 | v441 | v444 | v445 | v453 | v458 | v376 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702) & v1604 | v356 & (v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549) & v1604 | v356 & (v550 | v709 | v710 | v551 | v552 | v553 | v554 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724) & v1604 | v356 & (v559 | v725 | v728 | v729 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v737 | v738 | v386 | v739 | v740 | v561 | v741 | v742 | v392 | v480 | v395 | v396) & v1604 | v356 & (v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v747 | v566 | v567 | v568 | v748 | v569 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v572 | v573) & v1604 | v771 & (v464 | v393) | v771 & (v424 | v374 | v436 | v441 | v444 | v445 | v453 | v458 | v376 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702) | v771 & (v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549) | v771 & (v550 | v709 | v710 | v551 | v552 | v553 | v554 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724) | v771 & (v559 | v725 | v728 | v729 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v737 | v738 | v386 | v739 | v740 | v561 | v741 | v742 | v392 | v480 | v395 | v396) | v771 & (v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v747 | v566 | v567 | v568 | v748 | v569 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v572 | v573) +v2297 => v359 +v2297 => ~v2298 +v572 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v409 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v826 | v755 | v573 | v574 | v575 | v576) +v572 => ~(v997 | v998) +v755 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v409 & ~(v485 | v1467) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v826 | v572 | v573 | v574 | v575 | v576) +v755 => v497 & ~(v997 | v998) +v2299 => v811 | v1666 | v1668 +v573 => v511 & (v414 | v421) & ~(v1354 | v1355 | v997 | v998 | v588 & ~v2082) +v573 => v409 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~v485 & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v826 | v572 | v755 | v574 | v575 | v576) +v573 | v525 | v544 | v739 | v480 | v536 | v426 | v750 | v391 | v553 | v518 | v701 | v745 | v703 | v381 | v398 | v555 | v723 | v447 | v548 | v747 | v432 | v441 | v522 | v563 | v704 | v728 | v715 | v700 | v554 | v574 | v800 | v569 | v400 | v436 | v387 | v392 | v735 | v720 | v755 | v567 | v742 | v460 | v513 | v543 | v559 | v558 | v448 | v540 | v716 | v733 | v674 | v705 | v527 | v570 | v390 | v530 | v459 | v395 | v455 | v425 | v572 | v397 | v515 | v719 | v711 | v453 | v565 | v730 | v547 | v439 | v722 | v449 | v521 | v826 | v520 | v444 | v385 | v378 | v403 | v731 | v725 | v526 | v568 | v741 | v560 | v376 | v394 | v721 | v428 | v415 | v556 | v539 | v718 | v557 | v457 | v734 | v440 | v534 | v709 | v454 | v528 | v458 | v380 | v523 | v531 | v710 | v564 | v450 | v535 | v374 | v706 | v576 | v562 | v429 | v561 | v713 | v699 | v402 | v438 | v746 | v443 | v434 | v401 | v383 | v571 | v445 | v724 | v538 | v737 | v451 | v516 | v551 | v396 | v382 | v424 | v541 | v389 | v549 | v519 | v751 | v712 | v427 | v702 | v533 | v537 | v524 | v514 | v404 | v744 | v452 | v542 | v748 | v456 | v430 | v386 | v375 | v566 | v399 | v698 | v740 | v752 | v546 | v550 | v729 | v529 | v532 | v446 | v754 | v749 | v575 | v717 | v552 | v517 | v736 | v738 | v732 | v442 | v753 | v714 | v388 | v545 +v574 => v511 & (v414 | v421) & ~(v997 | v998 | v588 & ~v2082) +v574 => v409 & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v826 | v572 | v755 | v573 | v575 | v576) +v2154 => (v587 | v356 | v357 | v358 | v359) & ~(v314 | v17 | v18) | (v17 | v18) & (v505 | v588 | v983 | v356 | v357 | v359) & ~v314 +v2154 => ~(v3 | v4 & ~v1478 | v482) & ~(v485 | v486 | v1613 | v1606) & ~(v481 | v2273) +v575 => (v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & v409 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v826 | v572 | v755 | v573 | v574 | v576) +v575 => ~(v997 | v998) +v486 & v674 & v497 & (v414 | v421) & ~(v410 | v411 | v413) & ~(v416 | v417 | v420) & ~v422 & ~(v3 | v423 | v4 | v314) & ~(v431 | v433 | v435 | v437) & ~(v463 | v464 | v465) & ~(v461 | v462 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v473 | v474 | v475 | v476 | v477 | v478 | v479) & ~(v743 | v393 | v481 | v345 | v482 | v483) & ~(v484 | v485 | v487 | v488 | v489 | v495) & ~(v412 | v496) & ~(v490 | v491 | v492 | v494) => v493 +v486 => (v989 | v988) & v2270 & ~v314 | (v587 | v356 | v357 | v358 | v359) & ~(v314 | v17 | v18) | (v17 | v18) & (v505 | v588 | v356 | v357 | v359 | v1545 & v2273) & ~v314 | (v17 | v18) & v771 & ~(v314 | v345) +v486 => ~(v3 | v4 | v482 & ~(v2278 & v814 | v2279 & (v577 | v815 | v784 | v816 | v580 & v986 | v583) | v1545 & (v817 | v818 | v1575 | v584) | v2280 | v2281 | v988 | v989 | v2282 & (v580 | v1575))) & ~(v481 | v485) & ~(v2154 | v1613 | v1606) +v576 => v409 & ~(v2162 | v511 & ~(v592 | v39 | v594)) & ~(v2084 | v2085 | v2086 | v2087 | v2088 | v1452) & ~(v674 | v415 | v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v447) & ~(v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701) & ~(v529 | v702 | v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709) & ~(v710 | v551 | v552 | v553 | v554 | v380 | v381 | v2089 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v725 | v728) & ~(v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v391 | v392 | v480 | v394 | v395 | v396) & ~(v562 | v563 | v744 | v564 | v397 | v398 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v2090 | v570 | v751 | v752 | v753 | v754) & ~(v446 | v2083 | v713 | v571 | v826 | v572 | v755 | v573 | v574 | v575) +v576 => ~(v997 | v998) +v1613 => (v587 | v356 | v357 | v358 | v359) & v345 & ~(v17 | v18) | (v17 | v18) & (v505 | v588 | v983 | v356 | v359) & v345 +v1613 => ~(v3 | v4 | v482 & ~(v2280 | v988 | v989)) & ~(v481 | v485) & ~(v2154 | v486 | v1606) +v2300 => v811 | v1666 | v1668 +v1394 => (v373 | v374 | v425 | v427 | v432 | v434 | v436 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v453 | v455 | v456 | v458) & ~(v1357 | v1358 | v1359) & ~(v2255 | v2301 | v2302) +v1394 => (v1396 & v373 | ~v373 & v811) & v1604 +v856 => (v17 | v18) & v505 & (v854 | v855) & (v858 | v857) +v857 => ~(v3 | v4 | v314 | v464) +v2303 => v811 | v1666 | v1668 +v1606 => (v17 | v18) & v345 & (v771 | v983 | v356 | v505 | v588 | v359) & ~v1605 +v1606 => ~(v481 | v485 | v2154 | v486 | v1613) & ~(v3 | v4 | v314 | v810 | v482) +v2304 => v811 | v1666 | v1668 +v870 => ~(v2147 & ~(v1382 | v813 | v814 | v820) | v1081 | v2309 | v2310) & ~(v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188) & ~(v2307 | v2308) & ~(v2305 | v2306) +v2305 => ~(v2311 | v490 | v491 | v492 & ~(v589 & v2312) | v493 & ~(v589 & v2312)) & ~(v2313 | v2310) & ~(v870 | v2306) +v1497 => ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1700 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1713 | v1714) & ~(v1715 | v1716 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743) & ~(v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1781 | v1782 | v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793) & ~(v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808) & ~(v846 | v1673 | v1674 | v849 | v1809 | v1811 | v1812 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20) & ~(v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v354) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1869 | v1870 | v1872 | v1873 | v1874 | v1877 | v967 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v2314 => v1399 | v2315 +v2316 => v811 | v1666 | v1668 +v966 => (v17 | v18) & v316 & (v11 | v14) & (v886 | v891 | v896 | v897 | v898 | v865) +v811 => v1539 & v1396 & ~(v587 | v359 | v774 | v775 | v372 & v2078 & v1552 & ~v1629 | v1661 | v345) & v1604 | v1539 & ~(v587 | v359 | v774 | v775 | v373 | v372 & v2078 & v1552 & ~v1629 | v1661 | v345) & v1604 | (v17 | v18) & v1396 & ~(v588 | v359 | v775 | v372 & v2078 & v1552 & ~(v2126 | v1563) | v1661 | v345) & v1604 | (v17 | v18) & ~(v588 | v359 | v775 | v373 | v372 & v2078 & v1552 & ~(v2126 | v1563) | v1661 | v345) & v1604 +v811 => ~(v3 | v4 | v314 | v463 & ~(v816 | v580) | v345 | v482) & ~(v382 | v725 | v390) & ~(v1357 | v1358 | v1359) & ~(v2317 | v2318 | v822 & ~(v814 | v815 | v816 | v580 | v817 | v819 | v820) | v1666 | v1668) & ~(v976 | v39 | v594) +v967 => v316 & (v9 | v11 | v13 | v14) & (v886 | v891 | v864 | v865 | v866) & ~(v17 | v18) | (v17 | v18) & v316 & (v9 | v11 | v13 | v14) & (v886 | v891 | v896 | v897 | v898 | v865) +v967 => ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1698 | v1699 | v1700 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707 | v1708 | v1709 | v1711 | v1713 | v1714) & ~(v1715 | v1716 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740 | v1741 | v1742 | v1743) & ~(v1744 | v1745 | v1746 | v1747 | v1750 | v1753 | v1755 | v1760 | v1761 | v1773 | v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1781 | v1782 | v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793) & ~(v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804 | v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808) & ~(v846 | v1673 | v1674 | v849 | v1809 | v1811 | v1812 | v1813 | v1828 | v1829 | v1830 | v1831 | v1832 | v1833 | v1834 | v1835 | v1836 | v1838 | v1839 | v1840 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20) & ~(v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24 | v1856 | v365 | v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v354) & ~(v1697 | v1710 | v1732 | v1752 | v1756 | v1757 | v1762 | v1763 | v1764 | v1765 | v1766 | v1797 | v1810 | v1817 | v1819 | v1822 | v1825 | v1837 | v1841 | v1869 | v1870 | v1872 | v1873 | v1874 | v1497 | v1877 | v968 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v492 => v486 & v497 & (v414 | v421) & ~(v418 | v419) +v492 => ~(v410 | v411 | v413) & ~(v416 | v417 | v420) & ~v422 & ~(v3 | v423 | v4 | v314) & ~(v431 | v433 | v435 | v437) & ~(v463 | v464 | v465) & ~(v461 | v462 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v473 | v474 | v475 | v476 | v477 | v478 | v479) & ~(v393 | v481 | v345 | v482 | v483) & ~(v484 | v485 | v487 | v488 | v489 | v495) & ~(v412 | v496) & ~(v490 | v491 | v493 | v494) +v493 => v486 & v674 & v497 & (v414 | v421) +v493 => ~(v410 | v411 | v413) & ~(v416 | v417 | v420) & ~v422 & ~(v3 | v423 | v4 | v314) & ~(v431 | v433 | v435 | v437) & ~(v463 | v464 | v465) & ~(v461 | v462 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v473 | v474 | v475 | v476 | v477 | v478 | v479) & ~(v743 | v393 | v481 | v345 | v482 | v483) & ~(v484 | v485 | v487 | v488 | v489 | v495) & ~(v412 | v496) & ~(v490 | v491 | v492 | v494) +v2319 => v811 | v1666 | v1668 +v968 => v316 & (v11 | v14) & (v886 | v891 | v864 | v865 | v866) & ~(v17 | v18) | (v17 | v18) & v316 & (v11 | v14) & (v886 | v891 | v896 | v897 | v898 | v865) +v968 => ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1697 | v1698 | v1699 | v1700 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707 | v1708 | v1709 | v1710 | v1711) & ~(v1713 | v1714 | v1715 | v1716 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1732 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740) & ~(v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1752 | v1753 | v1755 | v1756 | v1757 | v1760 | v1761 | v1762 | v1763 | v1764 | v1765 | v1766 | v1773 | v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1781 | v1782) & ~(v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1797 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804) & ~(v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1810 | v1811 | v1812 | v1813 | v1819 | v1822 | v1825 | v1828 | v1829 | v1830 | v1831 | v1832) & ~(v1833 | v1834 | v1835 | v1836 | v1837 | v1838 | v1839 | v1840 | v1841 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24) & ~(v1817 | v1856 | v365 | v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v354 | v1869 | v1870 | v1872 | v1873 | v1874 | v1497 | v1877 | v967 | v1498 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v858 => (v17 | v18) & (v854 | v855) & v856 & ~v857 | (v17 | v18) & v359 & (v854 | v855) & ~(v39 | v593 | v594) +v858 => ~v859 +v2320 => v811 | v1666 | v1668 +v494 => (v674 | (v415 | v460) & (v1382 | v820) | v410 | v411 | v1381) & ~v495 & ~(v490 | v491 | v492 | v493) +v2321 => v1602 +v2322 => v1603 +v2323 => v1602 +v2324 => v1603 +v1498 => ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1697 | v1698 | v1699 | v1700 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707 | v1708 | v1709 | v1710 | v1711) & ~(v1713 | v1714 | v1715 | v1716 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1732 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740) & ~(v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1752 | v1753 | v1755 | v1756 | v1757 | v1760 | v1761 | v1762 | v1763 | v1764 | v1765 | v1766 | v1773 | v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1781 | v1782) & ~(v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1797 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804) & ~(v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1810 | v1811 | v1812 | v1813 | v1819 | v1822 | v1825 | v1828 | v1829 | v1830 | v1831 | v1832) & ~(v1833 | v1834 | v1835 | v1836 | v1837 | v1838 | v1839 | v1840 | v1841 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24) & ~(v1817 | v1856 | v365 | v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v354 | v1869 | v1870 | v1872 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1499) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v2325 => v1602 +v1467 => ~(v515 | v517 | v378 | v386 | v387 | v390 | v392 | v395 | v396 | v562 | v564 | v397 | v398 | v570 | v753 | v826 | v755) & ~v468 +v2326 => v1603 +v2327 => v1602 +v2328 => v1603 +v2045 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1920 | v1922 | v1923 | v1927 | v1928 | v1929 | v1931) & ~(v1933 | v1934 | v1935 | v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1945 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965 | v1966 | v1967) & ~(v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000) & ~(v1958 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025 | v2026 | v2027 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037) & ~(v1921 | v1925 | v1926 | v1930 | v1932 | v1943 | v1944 | v1947 | v1948 | v1976 | v1980 | v1986 | v2010 | v2028 | v2029 | v2038 | v2039 | v2040 | v2041 | v2042 | v2043 | v2044 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1466 => ~v441 +v2329 => v811 | v1666 | v1668 +v2330 => v1603 +v2048 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1920 | v1921 | v1922 | v1923 | v1925 | v1926 | v1927) & ~(v1928 | v1929 | v1930 | v1931 | v1933 | v1934 | v1935 | v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1945 | v1947 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962) & ~(v1963 | v1964 | v1965 | v1966 | v1967 | v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975 | v1976 | v1977 | v1978 | v1979 | v1980 | v1981 | v1982 | v1983 | v1984 | v1986 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992) & ~(v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2010 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025) & ~(v1932 | v1943 | v1944 | v1948 | v1958 | v2026 | v2027 | v2028 | v2029 | v2030 | v2031 | v2034 | v2035 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042 | v2043 | v2044 | v2045 | v2046 | v2047 | v2049 | v2050 | v2051 | v2052) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v1499 => ~(v0 | v1679 | v1680 | v1681 | v1682 | v1683 | v1686 | v1687 | v1688 | v1689 | v1690 | v1691 | v1692 | v1693 | v1694 | v1697 | v1698 | v1699 | v1700 | v1702 | v1703 | v1704 | v1705 | v1706 | v1707 | v1708 | v1709 | v1710 | v1711) & ~(v1713 | v1714 | v1715 | v1716 | v1 | v1720 | v293 | v1721 | v294 | v1722 | v2 | v1723 | v1724 | v1725 | v1726 | v1727 | v1728 | v1729 | v1730 | v785 | v787 | v1731 | v1732 | v1735 | v1736 | v1737 | v1738 | v1739 | v1740) & ~(v1741 | v1742 | v1743 | v1744 | v1745 | v1746 | v1747 | v1750 | v1752 | v1753 | v1755 | v1756 | v1757 | v1760 | v1761 | v1762 | v1763 | v1764 | v1765 | v1766 | v1773 | v1774 | v1775 | v1776 | v1777 | v1779 | v1780 | v1781 | v1782) & ~(v1783 | v1784 | v1785 | v1786 | v1787 | v1788 | v1790 | v1791 | v1792 | v791 | v1793 | v793 | v1794 | v794 | v317 | v795 | v318 | v1795 | v319 | v1796 | v796 | v1797 | v1798 | v1799 | v1800 | v1801 | v1802 | v1803 | v1804) & ~(v1805 | v1670 | v1675 | v1676 | v1806 | v1677 | v844 | v1807 | v845 | v1671 | v1672 | v1808 | v846 | v1673 | v1674 | v849 | v1809 | v1810 | v1811 | v1812 | v1813 | v1819 | v1822 | v1825 | v1828 | v1829 | v1830 | v1831 | v1832) & ~(v1833 | v1834 | v1835 | v1836 | v1837 | v1838 | v1839 | v1840 | v1841 | v1843 | v16 | v1845 | v363 | v1846 | v366 | v1847 | v19 | v20 | v1848 | v367 | v21 | v1849 | v364 | v1850 | v368 | v1852 | v1853 | v1855 | v24) & ~(v1817 | v1856 | v365 | v1857 | v370 | v1858 | v25 | v26 | v1859 | v371 | v1861 | v1862 | v1863 | v1864 | v1865 | v1866 | v353 | v1867 | v354 | v1869 | v1870 | v1872 | v1873 | v1874 | v1497 | v1877 | v967 | v968 | v1498) & ~(v1684 | v1685 | v1696 | v1701 | v1733 | v1734 | v1748 | v1754 | v1778 | v1789 | v1816 | v1820 | v1823 | v1824 | v1842 | v1851 | v1854 | v1868 | v1871 | v1876 | v1878 | v1879 | v1880 | v1881 | v1882 | v1883 | v1884 | v1885 | v1886) & ~(v1695 | v1712 | v1717 | v1718 | v1719 | v1749 | v1751 | v1758 | v1759 | v1767 | v1768 | v1769 | v1770 | v1771 | v1772 | v840 | v843 | v1814 | v1815 | v1818 | v1821 | v1826 | v1827 | v1844 | v22 | v1860 | v1875) +v1893 => (v4 | v345 | v373 | v425 | v434 | v456) & ~v2331 +v2052 => ~(v1901 | v1902 | v1903 | v1904 | v1900 | v1905 | v1906 | v1907 | v1908 | v1909 | v1910 | v1375 | v1911 | v1912 | v1913 | v1376 | v1914 | v1915 | v1916 | v1917 | v1918 | v1919 | v1920 | v1922 | v1923 | v1927 | v1928 | v1929 | v1931) & ~(v1933 | v1934 | v1935 | v1936 | v1937 | v1938 | v1939 | v1940 | v1941 | v1942 | v1945 | v1949 | v1950 | v1951 | v1952 | v1953 | v1954 | v1955 | v1956 | v1957 | v1959 | v1960 | v1961 | v1962 | v1963 | v1964 | v1965 | v1966 | v1967) & ~(v1968 | v1969 | v1970 | v1971 | v1972 | v1973 | v1974 | v1975 | v1977 | v1978 | v1979 | v1981 | v1982 | v1983 | v1984 | v1987 | v1988 | v1989 | v1990 | v1991 | v1992 | v1993 | v1994 | v1995 | v1996 | v1997 | v1998 | v1999 | v2000) & ~(v1958 | v2001 | v2002 | v2003 | v2004 | v2005 | v2006 | v2007 | v2008 | v2009 | v2010 | v2011 | v2012 | v2013 | v2014 | v2015 | v2016 | v2017 | v2018 | v2019 | v2023 | v2025 | v2026 | v2027 | v2029 | v2030 | v2031 | v2034 | v2035) & ~(v1921 | v1925 | v1926 | v1930 | v1932 | v1943 | v1944 | v1947 | v1948 | v1976 | v1980 | v1986 | v2028 | v2036 | v2037 | v2038 | v2039 | v2040 | v2041 | v2042 | v2043 | v2044 | v2045 | v2046 | v2047 | v2048 | v2049 | v2050 | v2051) & ~(v1924 | v1946 | v1985 | v2020 | v2021 | v2022 | v2024 | v2032 | v2033) +v2332 => ~(v759 | v587 | v588 | v39) +v2333 => v811 | v1666 | v1668 +v2334 => v2335 | v2336 | v2337 | v2338 | v2339 | v2340 | v2341 | v2342 | v2343 | v2344 | v2345 | v2346 | v2347 | v2348 | v2349 | v2350 +v409 => v826 | v572 | v755 | v573 | v574 | v575 | v576 +v409 => ~(v373 | v377 | v379 | v384 | v408) +v1620 => v771 & v772 & v987 | v771 & v772 & v770 +v1620 => ~(v1617 | v1618 | v1619 | v1621) +v1621 => ~(v1617 | v1618 | v1619 | v1620) +v2351 => ~(v2352 | v2353 | v2354 | v2355) +v2352 => ~(v2351 | v2353 | v2354 | v2355) +v2353 => ~(v2351 | v2352 | v2354 | v2355) +v2354 => ~(v2351 | v2352 | v2353 | v2355) +v2355 => ~(v2351 | v2352 | v2353 | v2354) +v2356 => ~(v2357 | v2358 | v2359 | v2360 | v2361 | v2362 | v2363 | v2364) +v2357 => ~(v2356 | v2358 | v2359 | v2360 | v2361 | v2362 | v2363 | v2364) +v2358 => ~(v2356 | v2357 | v2359 | v2360 | v2361 | v2362 | v2363 | v2364) +v2359 => ~(v2356 | v2357 | v2358 | v2360 | v2361 | v2362 | v2363 | v2364) +v2360 => ~(v2356 | v2357 | v2358 | v2359 | v2361 | v2362 | v2363 | v2364) +v2361 => ~(v2356 | v2357 | v2358 | v2359 | v2360 | v2362 | v2363 | v2364) +v2363 => ~(v2356 | v2357 | v2358 | v2359 | v2360 | v2361 | v2362 | v2364) +v2365 => ~(v2366 | v2367 | v2368 | v2369) +v2366 => ~(v2365 | v2367 | v2368 | v2369) +v1546 => (v17 | v18) & (v771 | v983) +v2370 => ~(v17 | v18) +v2370 => ~(v2100 | v774 | v775 | v2101 | v2102 | v2103) +v1635 => ~(v1637 | v1638) & ~v1636 & ~(v1634 | v2371) +v2371 => ~v1635 & ~(v1637 | v1638) +v1570 => v345 | v482 | v314 | v385 | v737 | v386 | v387 | v739 | v388 | v740 | v389 | v561 | v741 | v390 | v742 | v392 | v394 | v395 | v396 | v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v400 | v747 | v566 | v567 | v568 | v401 | v748 | v402 | v403 | v569 | v404 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 +v1570 => ~v1569 +v1614 => (v587 | v358 & v1615) & (v486 | v1613 & v345 | v414) | v505 & v414 +v1567 => v463 | v1565 | v809 | v426 | v735 | v562 | v565 | v751 +v2078 => v372 & (v373 | v425 | v426 | v427 | v428 | v515 | v429 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~(v17 | v18) | v372 & (v447 | v448 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v480) & ~(v17 | v18) | (v17 | v18) & v372 & (v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) & (v851 | v852) & ~(v1360 | v1552) | (v17 | v18) & v372 & (v426 | v428 | v515 | v429 | v430 | v517 | v436 | v439 | v440 | v442 | v444 | v448 | v454 | v480) & ~(v1360 | v1552) +v2335 => ~(v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2336 => ~(v2335 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2387 => ~v2388 +v2389 => ~(v2390 | v2391 | v2392) +v2337 => ~(v2335 | v2336 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2338 => ~(v2335 | v2336 | v2337 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2339 => ~(v2335 | v2336 | v2337 | v2338 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2372 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2340 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2341 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2390 => ~(v2389 | v2391 | v2392) +v2342 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2343 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2344 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v812 => (v771 | v356) & ~(v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v460 | v17 | v18) | v356 & v851 & (v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v460) & ~(v17 | v18) | (v17 | v18) & (v771 | v356) & (v851 | v852) | (v17 | v18) & (v771 | v356) & ~(v393 | v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) +v812 => ~(v822 & ~v810) +v2393 => v39 | v594 +v2394 => v3 | v4 | v373 | v314 | v345 | v377 +v688 => v682 & v1350 +v2255 => v17 | v18 +v2255 => ~(v2395 | v1394 | v2301 | v2302) +v2301 => v17 | v18 +v2301 => ~(v2395 | v1394 | v2255 | v2302) +v2302 => v17 | v18 +v2302 => ~(v2395 | v1394 | v2255 | v2301) +v2374 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2345 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2346 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2347 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2375 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2348 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2376 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2349 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2377 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2388 => ~v2387 +v2391 => ~(v2389 | v2390 | v2392) +v2378 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2379 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2380 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2392 => ~(v2389 | v2390 | v2391) +v2381 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2382 | v2383 | v2384 | v2385 | v2386 | v2350) +v2382 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2383 | v2384 | v2385 | v2386 | v2350) +v2383 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2384 | v2385 | v2386 | v2350) +v2385 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2386 | v2350) +v2386 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2350) +v2350 => ~(v2335 | v2336 | v2337 | v2338 | v2339 | v2372 | v2340 | v2373 | v2341 | v2342 | v2343 | v2344 | v2374 | v2345 | v2346 | v2347 | v2375 | v2348 | v2376 | v2349 | v2377 | v2378 | v2379 | v2380 | v2381 | v2382 | v2383 | v2384 | v2385 | v2386) +v2396 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2397 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2398 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2399 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2400 | v2401 | v2402 | v2403 | v2404) +v2400 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2401 | v2402 | v2403 | v2404) +v2401 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2402 | v2403 | v2404) +v2402 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2403 | v2404) +v2403 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2404) +v2404 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403) +v2405 => ~(v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2406 => ~(v2405 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2407 => ~(v2405 | v2406 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2408 => ~(v2405 | v2406 | v2407 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2409 => ~(v2405 | v2406 | v2407 | v2408 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2410 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2411 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2412 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2413 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2414 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2415 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2416 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2417 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2418 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2419 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2420 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2421 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2422 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2423 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2424 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2425 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2425 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2426 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2426 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2427 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2427 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2428 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2428 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2429 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2429 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2430 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2430 => ~(v2405 | v2406 | v2407 | v2408 | v2409 | v2410 | v2411 | v2412 | v2413 | v2414 | v2415 | v2416 | v2417 | v2418 | v2419 | v2420 | v2421 | v2422 | v2423 | v2424 | v2425 | v2426 | v2427 | v2428 | v2429 | v2396 | v2397 | v2398 | v2399 | v2400 | v2401 | v2402 | v2403 | v2404) +v2431 => v17 | v18 +v2432 => v17 | v18 +v2434 => ~v2433 +v2435 => ~(v870 | v2305 | v587 | v588 | v359) +v2436 => ~(v870 | v2305 | v587 | v588 | v359) +v2437 => v593 | v594 +v2437 => ~v2438 +v2438 => v593 | v594 +v2438 => ~v2437 +v2439 => v593 | v594 +v2439 => ~v2440 +v2440 => v593 | v594 +v2440 => ~v2439 +v2441 => v593 | v594 +v2442 => v593 +v2277 => ~(v1350 | v4 | v345 | v775) +v1568 => v809 +v1568 => ~v756 +v2443 => (v17 | v18) & ~(v681 | v1350 | v345 | v775 | v588 | v359) +v817 => ~(v1382 | v2455 | v813 | v2457 | v1479 | v2458 | v2107 | v577 | v814 | v2460 | v2461 | v2462 | v579 | v815 | v784 | v2464 | v2465 | v816 | v2467 | v2468 | v2469 | v2470 | v2472 | v582 | v2159 | v819 | v2312 | v820 | v2163) & ~(v2444 | v2445 | v2446 | v2447 | v2450 | v2451 | v2453 | v2456 | v1542 | v578 | v2463 | v580 | v2466 | v581 | v1543 | v2473 | v818 | v2475 | v583 | v1575 | v1653 | v2478 | v2479 | v2480 | v2482 | v2483 | v2484 | v2485 | v2486) & ~(v2448 | v2449 | v2158 | v2452 | v2454 | v2459 | v2292 | v2471 | v2474 | v2293 | v2165 | v2476 | v2477 | v585 | v2481) +v2494 => ~(v2487 | v2488 | v2489 | v2490 | v2491 | v2492 | v2493 | v2495 | v2496 | v2497 | v2498 | v2499) +v2497 => ~(v2487 | v2488 | v2489 | v2490 | v2491 | v2492 | v2493 | v2494 | v2495 | v2496 | v2498 | v2499) +v2498 +v2498 => ~(v2487 | v2488 | v2489 | v2490 | v2491 | v2492 | v2493 | v2494 | v2495 | v2496 | v2497 | v2499) +v1414 => v1384 | v1385 +v1414 => ~(v1410 | v1411 | v1412 | v1413) & ~(v1415 | v1416 | v1417 | v1418) +v876 => v798 & (v1 | v294 | v791 | v794 | v318 | v16 | v366 | v20 | v21 | v368 | v23) & ~(v39 | v17 | v18) +v876 => ~(v871 | v872 | v873 | v874 | v875 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v865 | v866 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v880 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v865 | v866 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v886 => v798 & (v315 | v316 | v323 | v324) & ~(v39 | v17 | v18) | (v17 | v18) & v798 & (v315 | v316 | v323 | v324) & ~v39 +v886 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v887 | v888 | v889 | v890 | v891 | v892 | v894 | v911 | v912 | v913 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v930 | v931 | v932) & ~(v896 | v897 | v901 | v915 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964 | v864 | v865 | v866 | v867 | v868 | v869) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v891 => v798 & (v315 | v316 | v323 | v324) & ~v39 +v891 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v930 | v931 | v936 | v937 | v946 | v947 | v948 | v949 | v950 | v952) & ~(v886 | v887 | v892 | v894 | v896 | v897 | v901 | v911 | v912 | v913 | v915 | v932 | v933 | v935 | v938 | v939 | v940 | v951 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964 | v864 | v865 | v866 | v867 | v868 | v869) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) +v896 => (v17 | v18) & ~(v1424 | v1444) +v896 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v886 | v887 | v888 | v889 | v890 | v891 | v892 | v894 | v895 | v905 | v906 | v907 | v911 | v912 | v913 | v914 | v920 | v921 | v922 | v923 | v924) & ~(v925 | v926 | v927 | v928 | v929 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v941 | v942 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v897 | v898 | v899 | v900 | v901 | v902 | v903 | v904 | v908 | v909 | v910 | v915 | v916 | v917 | v918 | v919 | v934 | v943 | v944 | v945 | v863 | v864 | v865 | v866 | v867 | v868 | v869) +v897 => (v17 | v18) & ~(v1424 | v1444) +v897 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v886 | v887 | v888 | v889 | v890 | v891 | v892 | v894 | v895 | v896 | v905 | v906 | v907 | v911 | v912 | v913 | v914 | v920 | v921 | v922 | v923) & ~(v924 | v925 | v926 | v927 | v928 | v929 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v941 | v942 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963) & ~(v893 | v898 | v899 | v900 | v901 | v902 | v903 | v904 | v908 | v909 | v910 | v915 | v916 | v917 | v918 | v919 | v934 | v943 | v944 | v945 | v964 | v863 | v864 | v865 | v866 | v867 | v868 | v869) +v898 => v17 | v18 +v898 => ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v886 | v887 | v888 | v889 | v890 | v891 | v892 | v894 | v895 | v896 | v897 | v905 | v906 | v907 | v911 | v912 | v913 | v914 | v920 | v921 | v922) & ~(v923 | v924 | v925 | v926 | v927 | v928 | v929 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v941 | v942 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962) & ~(v893 | v899 | v900 | v901 | v902 | v903 | v904 | v908 | v909 | v910 | v915 | v916 | v917 | v918 | v919 | v934 | v943 | v944 | v945 | v963 | v964 | v863 | v864 | v865 | v866 | v867 | v868 | v869) +v2500 +v496 => v556 | v712 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v725 | v728 | v729 | v383 | v730 | v732 | v733 | v734 | v560 | v735 | v736 +v496 => ~(v490 | v491 | v492 | v493) +v2501 => ~(v3 | v4) +v977 => (v505 | v771 | v356 | v358) & (v373 | v425 | v427 | v428 | v430 | v432 | v434 | v436 | v375 | v438 | v441 | v442 | v443) | (v505 | v771 | v356 | v358) & (v447 | v449 | v450 | v453 | v455 | v456 | v457 | v458 | v459 | v460 | v826) | (v588 | v983) & (v509 | (v17 | v18) & v835) +v977 => ~(v978 | v979 | v980 | v981 | v982) +v978 => (v505 | v771 | v356 | v358) & (v426 | v429 | v440 | v444 | v446 | v448 | v452 | v378 | v380 | v382 | v397 | v755) | (v587 | v357) & (v373 | v425 | v427 | v428 | v430 | v432 | v434 | v436 | v375 | v438 | v440 | v441) | (v587 | v357) & (v442 | v443 | v446 | v447 | v448 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v460 | v826 | v755) +v978 => ~(v977 | v979 | v980 | v981 | v982) +v979 => (v505 | v771 | v356 | v358) & (v374 | v515 | v516 | v439 | v445 | v451 | v454 | v376 | v381 | v713 | v721 | v722 | v731 | v385 | v737 | v738) | (v505 | v771 | v356 | v358) & (v387 | v388 | v740 | v389 | v741 | v742 | v392 | v480 | v394 | v562 | v398 | v745 | v565 | v567 | v399 | v400 | v747) | (v505 | v771 | v356 | v358) & (v748 | v569 | v750 | v570 | v751 | v752 | v754 | v572 | v573 | v574 | v575 | v576) | (v587 | v357) & (v374 | v426 | v515 | v429 | v516 | v439 | v444 | v445 | v451 | v454 | v376) | (v587 | v357) & (v378 | v380 | v381 | v713 | v721 | v722 | v382 | v731 | v385 | v737 | v738 | v387 | v388 | v740) | (v587 | v357) & (v389 | v741 | v742 | v392 | v480 | v394 | v562 | v397 | v398 | v745 | v565 | v399 | v400 | v747 | v567 | v748 | v569 | v750 | v570 | v751 | v752 | v754) | (v587 | v357) & (v572 | v573 | v574 | v575 | v576) | v359 & (v373 | v374 | v425 | v426 | v427 | v428 | v515 | v429 | v516 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v444 | v443 | v445 | v446 | v447) | v359 & (v448 | v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v378 | v380 | v381 | v713 | v382 | v721 | v722 | v731 | v385 | v737) | v359 & (v738 | v387 | v388 | v740 | v389 | v741 | v742 | v392 | v480 | v394 | v562 | v397 | v398 | v745 | v565 | v399 | v400 | v747 | v567 | v748 | v569 | v750 | v570 | v751 | v752) | v359 & (v754 | v826 | v572 | v755 | v573 | v574 | v575 | v576) +v979 => ~(v977 | v978 | v980 | v981 | v982) +v980 => (v505 | v771 | v356 | v358) & (v514 | v800 | v699 | v520 | v521 | v522 | v527 | v701 | v530 | v703) | (v505 | v771 | v356 | v358) & (v704 | v705 | v534 | v535 | v536 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v547 | v548) | (v505 | v771 | v356 | v358) & (v549 | v550 | v551 | v725 | v386 | v395 | v568 | v401 | v402 | v403) | (v587 | v357) & (v514 | v800 | v699 | v520 | v521 | v522 | v527 | v701 | v530 | v703) | (v587 | v357) & (v704 | v705 | v534 | v535 | v536 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v547 | v548) | (v587 | v357) & (v549 | v550 | v551 | v725 | v386 | v395 | v568 | v401 | v402 | v403) | v359 & (v514 | v800 | v699 | v520 | v521 | v522 | v527 | v701 | v530 | v703) | v359 & (v704 | v705 | v534 | v535 | v536 | v539 | v540 | v541 | v706 | v543 | v544 | v545 | v547 | v548) | v359 & (v549 | v550 | v551 | v725 | v386 | v395 | v568 | v401 | v402 | v403) +v980 => ~(v977 | v978 | v979 | v981 | v982) +v981 => (v505 | v771 | v356 | v358) & (v424 | v513 | v517 | v555 | v556 | v711 | v716 | v717 | v719 | v729 | v383 | v730 | v733 | v560 | v735 | v736) | (v505 | v771 | v356 | v358) & (v518 | v698 | v519 | v524 | v700 | v525 | v526 | v528 | v529 | v702 | v532 | v533 | v538 | v542 | v546 | v709 | v710 | v552) | (v505 | v771 | v356 | v358) & (v739 | v561 | v391 | v396 | v744 | v564 | v749 | v753) | (v587 | v357) & (v424 | v513 | v517 | v555 | v556 | v711 | v716 | v717 | v719 | v729 | v383 | v730 | v733 | v560 | v735 | v736) | (v587 | v357) & (v518 | v698 | v519 | v524 | v700 | v525 | v526 | v528 | v529 | v702 | v532 | v533 | v538 | v542 | v546 | v709 | v710 | v552) | (v587 | v357) & (v739 | v561 | v391 | v396 | v744 | v564 | v749 | v753) | v359 & (v424 | v513 | v517 | v555 | v556 | v711 | v716 | v717 | v719 | v729 | v383 | v730 | v733 | v560 | v735 | v736) | v359 & (v518 | v698 | v519 | v524 | v700 | v525 | v526 | v528 | v529 | v702 | v532 | v533 | v538 | v542 | v546 | v709 | v710 | v552) | v359 & (v739 | v561 | v391 | v396 | v744 | v564 | v749 | v753) +v981 => ~(v977 | v978 | v979 | v980 | v982) +v981 | v980 | v982 | v977 | v978 | v979 +v982 => (v505 | v771 | v356 | v358) & (v523 | v531 | v537 | v553 | v554 | v712 | v714 | v715 | v557 | v718 | v720 | v723 | v558 | v724 | v559 | v728 | v732 | v734 | v390 | v563 | v746 | v566 | v404 | v571) | (v587 | v357) & (v523 | v531 | v537 | v553 | v554 | v712 | v714 | v715 | v557 | v718 | v720 | v723 | v558 | v724 | v559 | v728 | v732 | v734 | v390 | v563 | v746 | v566 | v404 | v571) | v359 & (v523 | v531 | v537 | v553 | v554 | v712 | v714 | v715 | v557 | v718 | v720 | v723 | v558 | v724 | v559 | v728 | v732 | v734 | v390 | v563 | v746 | v566 | v404 | v571) +v982 => ~(v977 | v978 | v979 | v980 | v981) +v1626 => (v356 | v358) & (v1384 | v1385) & v390 +v2172 => v357 & (v314 | v345 | v482 | v390) & ~(v17 | v18) | (v17 | v18) & v359 & (v314 | v345 | v482 | v390) +v1639 => v505 & v1384 & ~v314 | v356 & v772 & v1384 & ~(v314 | v775) | v771 +v2502 => v17 | v18 +v1554 => (v17 | v18) & v1553 & (v373 | v424 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444 | v445 | v446 | v447 | v448 | v449 | v450 | v451) | (v17 | v18) & v1553 & (v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v386 | v392 | v480 | v397 | v572 | v755 | v573 | v574 | v575 | v576) | (v17 | v18) & v1553 & (v3 | v4 | v314 | v464 | v345) +v1550 => (v17 | v18) & v501 & v502 & (v373 | v377 & ~(v513 | v514) | v572 | v755 | v573 | v574 | v575 | v576) | (v17 | v18) & v501 & v502 & (v3 | v4 | v314 | v464 | v345) +v1549 => (v17 | v18) & v501 & (v3 | v4 | v373 | v377 & ~(v513 | v514)) +v2503 => (v17 | v18) & v501 +v1604 & ((v357 | v359) & ~v383 | v3 | v4) & v861 & (v382 | v383 | v4 | v3) & ~(v1369 | v1370 | v490 | v491 | v492 | v493) => v416 +v1604 & (v861 & v511 & v1509 & v465 & v1467 & v1466 & v1567 & v497 | v1539 & (v357 | v358) & (v63 | v822) & (v737 | v738 | v744 | v745 | v747 | v748 | v750 | v752 | v754) | (v17 | v18) & (v505 | v359) & (v63 | v179 | v822) & (v737 | v738 | v744 | v745 | v747 | v748 | v750 | v752 | v754)) & ~(v2161 | v485 & ~v744 | v811 & ~(v816 | v580) | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v463 +v1604 & (v1539 & v729 & v358 & ~v769 & (v1565 | v809 | v822 & v812) & v1467 & v496 & ~(v2137 | v1354 | v1355) | v17 & v729 & (v505 & ~v769 | v359) & (v1565 | v809) & v1467 & v496 & ~(v2137 | v1354 | v1355)) & ~v1606 & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v810 +v1604 & (v1539 & v399 & v1455 & v1457 & v511 & (v1475 & v708 | v743) & v1467 & v1570 & v497 | v17 & v399 & v1455 & v1457 & v511 & (v1475 & (v707 | v708) | v743) & v1467 & v1570 & v497 | v1539 & (v357 & v2172 | v358) & v1607 & (v506 | v593) & v696 & ~(v2137 | v1493 | v39 | v594) | v17 & (v505 | v359 & v1607) & (v503 | v593) & v696 & ~(v1655 | v2137 | v1493 | v39 | v594)) & ~v481 & ~(v2154 | (v486 | v1613) & ~(v2278 & v814 | v2279 & (v577 | v815 | v784 | v816 | v580 & v986 | v583) | v1545 & (v817 | v818 | v1575 | v584) | v2280 | v2281 | v988 | v989 | v2282 & (v580 | v1575))) & ~v2127 & ~(v1355 | v485 | v1606 | v811 | v490 | v491 | v492 | v493) & ~(v3 | v4 | v1478 | v314 | v463 | v464 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v483) => v482 +v1604 & (v1539 & v1396 & ~(v587 | v359 | v774 | v775 | v372 & v2078 & v1552 & ~v1629 | v1661 | v345) | (v1395 | v1397 | v1371 | v1394) & v1539 & ~(v587 | v359 | v774 | v775 | v373 | v372 & v2078 & v1552 & ~v1629 | v1661 | v345) | (v17 | v18) & v1396 & ~(v588 | v359 | v775 | v372 & v2078 & v1552 & ~(v2126 | v1563) | v1661 | v345) | (v1395 | v1397 | v1370 | v1394) & (v17 | v18) & ~(v588 | v359 | v775 | v373 | v372 & v2078 & v1552 & ~(v2126 | v1563) | v1661 | v345)) & ~(v3 | v4 | v314 | v463 & ~(v816 | v580) | v345 | v482) & ~(v382 | v725 | v390) & ~(v1357 | v1358 | v1359) & ~(v2317 | v2318 | v822 & ~(v814 | v815 | v816 | v580 | v817 | v819 | v820) | v1666 | v1668) & ~(v976 | v39 | v594) => v811 +v1604 & (v356 & (v464 | v393) | v356 & (v424 | v374 | v436 | v441 | v444 | v445 | v453 | v458 | v376 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702) | v356 & (v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549) | v356 & (v550 | v709 | v710 | v551 | v552 | v553 | v554 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724) | v356 & (v559 | v725 | v728 | v729 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v737 | v738 | v386 | v739 | v740 | v561 | v741 | v742 | v392 | v480 | v395 | v396) | v356 & (v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v747 | v566 | v567 | v568 | v748 | v569 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v572 | v573)) | v771 & (v464 | v393) | v771 & (v424 | v374 | v436 | v441 | v444 | v445 | v453 | v458 | v376 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v701 | v529 | v702) | v771 & (v530 | v703 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v544 | v545 | v546 | v547 | v548 | v549) | v771 & (v550 | v709 | v710 | v551 | v552 | v553 | v554 | v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724) | v771 & (v559 | v725 | v728 | v729 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736 | v737 | v738 | v386 | v739 | v740 | v561 | v741 | v742 | v392 | v480 | v395 | v396) | v771 & (v562 | v563 | v744 | v564 | v397 | v745 | v565 | v746 | v747 | v566 | v567 | v568 | v748 | v569 | v749 | v750 | v570 | v751 | v752 | v753 | v754 | v571 | v572 | v573) => v2296 +v1604 & v1396 & (v1396 & v373 | ~v373 & v811) & (v373 | v374 | v425 | v427 | v432 | v434 | v436 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v453 | v455 | v456 | v458) & ~(v1357 | v1358 | v1359) & ~(v2255 | v2301 | v2302) => v1394 +v1604 & ~v2173 => v1604 +v1604 => ~v2173 +v1366 => (v17 | v18) & v1423 & ~(v345 & ~v359) +v1366 => ~(v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v1366 | v1539 | v1424 +v1424 => (v17 | v18) & v1423 & (v865 | v880 | v886 | v891 | v898) +v1424 => ~(v1366 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v1367 => ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v1440 => ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v1442 => ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v1443 => ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v1444 => ~(v1366 | v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) +v2505 => ~(v2504 | v2506) +v2506 +v2506 => ~(v2504 | v2505) +v984 => v356 & v772 +v984 => ~(v2507 | v2508) +v769 => v356 & v772 & v984 & (v987 | v770) & ~v775 & v1604 | v358 & ~(v17 | v18) & v1604 | (v17 | v18) & (v505 | v771 | v1545 & v2273) & v1604 +v769 => ~v2508 & ~v2509 +v756 => v358 & v1615 | v505 & v1640 +v756 => ~v1485 & ~v1568 & (v461 | v462 | v466 | v467 | v468 | v469 | v470 | v471 | v472 | v2251 | v2252 | v2510 | v2511 | v473 | v2253 | v474 | v475 | v476) & ~v708 +v986 => ~(v987 | v770) +v987 => (v356 & v772 & v984 & ~v986 | v988 | v989) & ~(v17 | v18) | (v17 | v18) & (v771 | v983) +v987 => ~(v985 | v986 | v770) +v770 => (v17 | v18) & (v356 & v772 & v984 | v771) +v770 => ~(v986 | v987) +v2226 => ~v985 +v2270 => ~v481 +v587 => ~(v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v2526 | v2527 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v358 | v359 | v2224 | v2545 | v988 | v2227) & ~(v2099 | v2104 | v505 | v588 | v2528 | v2529 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2546 | v2547 | v2548 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v505 & v1384 & ~v314 | v356 & v772 & v1384 & ~(v314 | v775) | v771 => v1639 +v505 => (v17 | v18) & v1640 & v486 & v1541 & v856 & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438) | (v17 | v18) & v1640 & v486 & v1541 & v856 & (v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v397) | (v17 | v18) & v1640 & v486 & v1541 & v856 & (v424 | v445 | v446 | v448 | v451 | v376 | v386 | v392 | v394 | v573 | v574) | (v17 | v18) & v1640 & v486 & v856 & (v374 | v513 | v514 | v800 | v515 | v516 | v517 | v712 | v714 | v382 | v724 | v725 | v383 | v733 | v735) | (v17 | v18) & v1640 & v486 & v856 & (v464 | v701 | v534 | v536 | v544 | v551 | v387 | v388 | v740 | v561 | v390 | v395 | v563 | v564 | v565 | v566 | v568 | v402 | v749 | v570 | v753 | v571 | v755) | (v17 | v18) & v1640 & v769 & (v1613 | v1606) & v856 & v345 & v1604 | (v17 | v18) & v1640 & v2154 & v856 & (v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v530 | v703) | (v17 | v18) & v1640 & v2154 & v856 & (v531 | v532 | v533 | v704 | v705 | v535 | v537 | v538 | v539 | v540) | (v17 | v18) & v1640 & v2154 & v856 & (v541 | v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v378 | v550 | v709 | v710 | v552 | v553 | v554) | (v17 | v18) & v1640 & v2154 & v856 & (v555 | v556 | v711 | v713 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v559 | v728 | v729 | v730 | v731 | v732 | v734 | v560 | v736) | (v17 | v18) & v1640 & v2154 & v856 & (v385 | v737 | v738 | v739 | v389 | v741 | v742 | v396 | v562 | v744 | v745 | v746 | v400 | v747) | (v17 | v18) & v1640 & v2154 & v856 & (v567 | v401 | v748 | v403 | v569 | v404 | v750 | v751 | v752 | v754 | v572 | v575 | v576) | (v17 | v18) & v1640 & v856 & (v3 | v4 | v314 | v482) +v505 => ~(v2099 | v2104 | v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v588 | v2528 | v2529 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356) & ~(v357 | v358 | v359 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2224 | v2545 | v2546 | v988 | v2547 | v2548 | v2227 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v505 | v771 | v356 | v357 | v358 | v359 +v588 => ~(v2099 | v2104 | v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v2529 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v358 | v359) & ~(v505 | v2528 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2224 | v2545 | v2546 | v988 | v2547 | v2548 | v2227 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v2573 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v2575 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v771 => (v17 | v18) & v772 & v987 & v1546 & v486 & v1541 & (v424 | v445 | v446 | v448 | v451 | v376 | v386 | v392 | v394 | v573 | v574) | (v17 | v18) & v772 & v770 & v769 & v1546 & v345 & ~v486 & v1604 +v771 => ~(v2099 | v2104 | v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v505 | v588 | v2528 | v2529 | v2530 | v983 | v2531 | v2278 | v2160 | v2532 | v2533) & ~(v2279 | v2534 | v356 | v357 | v358 | v359 | v2535 | v2536 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2224 | v2545 | v2546 | v988 | v2547 | v2548 | v2227 | v2549 | v2550 | v989 | v2551) & ~(v2554 | v2555 | v2556 | v2522 | v2552 | v2282 | v1545 | v2553) +v983 => ~(v2099 | v2104 | v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v505 | v588 | v2528 | v2529 | v2530 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279) & ~(v2534 | v356 | v357 | v358 | v359 | v2535 | v2536 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2224 | v2545 | v2546 | v988 | v2547 | v2548 | v2227 | v2549 | v2550 | v989 | v2551 | v2552) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2282 | v1545 | v2553) +v356 & v772 & ~(v2507 | v2508) => v984 +v356 => v772 & v984 & v987 & v1613 & v2370 & v345 & ~v775 & v1604 | v772 & v984 & v770 & (v1613 | v1606) & v345 & ~v775 & v1604 | v772 & v984 & v987 & v486 & v2370 & (v464 | v424 | v374 | v513 | v514 | v800 | v515 | v516 | v517 | v445 | v446 | v448 | v451 | v376 | v701 | v534 | v536 | v544 | v551) & ~(v775 | v17 | v18) | v772 & v984 & v987 & v486 & v2370 & (v712 | v714 | v382 | v724 | v725 | v383 | v733 | v735 | v755 | v573 | v574) & ~(v775 | v17 | v18) | v772 & v984 & v987 & v486 & v2370 & (v386 | v387 | v388 | v740 | v561 | v390 | v392 | v394 | v395 | v563 | v564 | v397 | v565 | v566 | v568 | v402 | v749 | v570 | v753 | v571) & ~(v775 | v17 | v18) | (v17 | v18) & v772 & v984 & v770 & v486 & (v387 | v388 | v740 | v561 | v390 | v395 | v563 | v564 | v565 | v566 | v568 | v402 | v749 | v570 | v753 | v571 | v755) & ~v775 | (v17 | v18) & v772 & v984 & v770 & v486 & (v464 | v374 | v513 | v514 | v800 | v515 | v516 | v517 | v701 | v534 | v536 | v544 | v551 | v712 | v714 | v382 | v724 | v725 | v383 | v733 | v735) & ~v775 | v772 & v984 & (v987 | v770) & v2154 & (v2370 | v17) & (v518 | v521 | v378) & ~v775 | v772 & v984 & (v987 | v770) & v2154 & (v2370 | v17) & (v715 | v720 | v729 | v730 | v732 | v734 | v736 | v737 | v738 | v389 | v742 | v396 | v562) & ~v775 | v772 & v984 & (v987 | v770) & v2154 & (v2370 | v17) & (v745 | v747 | v567 | v748 | v403 | v404 | v750 | v751 | v752 | v754) & ~v775 | v772 & v984 & v769 & (v987 | v770) & v2154 & (v2370 | v17) & (v698 | v519 | v699 | v520 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v530 | v703) | v772 & v984 & v769 & (v987 | v770) & v2154 & (v2370 | v17) & (v531 | v532 | v533 | v704 | v705 | v535 | v537 | v538 | v539 | v540) | v772 & v984 & v769 & (v987 | v770) & v2154 & (v2370 | v17) & (v541 | v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710 | v552 | v553 | v554) | v772 & v984 & v769 & (v987 | v770) & v2154 & (v2370 | v17) & (v555 | v556 | v711 | v713 | v557 | v716 | v717 | v718 | v719 | v721 | v722 | v723 | v558 | v559 | v728 | v731 | v560) | v772 & v984 & v769 & (v987 | v770) & v2154 & (v2370 | v17) & (v385 | v739 | v741 | v744 | v746 | v400 | v401 | v569 | v572 | v575 | v576) | v772 & v984 & (v987 | v770) & (v2370 | v17) & v482 & ~(v775 | v18) +v356 => ~(v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v358 | v359 | v2224 | v2545 | v988 | v2227) & ~(v2099 | v2104 | v505 | v588 | v2528 | v2529 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2546 | v2547 | v2548 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v357 & (v314 | v345 | v482 | v390) & ~(v17 | v18) | (v17 | v18) & v359 & (v314 | v345 | v482 | v390) => v2172 +v357 & (v315 | v316 | v323 | v324) & v798 & v2597 & ~(v17 | v18) | (v359 | v4 & v505) & (v17 | v18) & (v315 | v316 | v323 | v324) & v798 & v2597 => v799 +v357 => v2595 & v486 & (v2370 | v17 | v18) & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438) | v2595 & v486 & (v2370 | v17 | v18) & (v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v395 | v397) | v2595 & v486 & (v2370 | v17 | v18) & (v464 | v424 | v374 | v513 | v514 | v800 | v515 | v516 | v517 | v445 | v446 | v448 | v451 | v376 | v701 | v534 | v536 | v544 | v551) | v2595 & v486 & (v2370 | v17 | v18) & (v712 | v714 | v382 | v724 | v725 | v383 | v733 | v735) | v2595 & v486 & (v2370 | v17 | v18) & (v386 | v387 | v388 | v740 | v561 | v390 | v392 | v394 | v563 | v564 | v565 | v566 | v568 | v402 | v749 | v570 | v753 | v571 | v755 | v573 | v574) | v2595 & v1613 & (v2370 | v17 | v18) & v345 | v2595 & v2154 & (v2370 | v17 | v18) & (v518 | v521 | v378) | v2595 & v2154 & (v2370 | v17 | v18) & (v715 | v720 | v729 | v730 | v732 | v734 | v736 | v737 | v738 | v389 | v742 | v396 | v562 & ~v39) | v2595 & v2154 & (v2370 | v17 | v18) & (v745 | v747 | v567 | v748 | v403 | v404 | v750 | v751 | v752 | v754) | v2595 & v2154 & (v2370 | v17 | v18) & (v698 | v519 | v699 | v520 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v530 | v703) | v2595 & v2154 & (v2370 | v17 | v18) & (v531 | v532 | v533 | v704 | v705 | v535 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710) | v2595 & v2154 & (v2370 | v17 | v18) & (v552 | v553 | v554 | v555 | v556 | v711 | v713 | v557 | v716 | v717 | v718 | v719 | v721 | v722 | v723 | v558 | v559 | v728 | v731 | v560) | v2595 & v2154 & (v2370 | v17 | v18) & (v385 | v739 | v741 | v744 | v746 | v400 | v401 | v569 | v572 | v575 | v576) | v2595 & (v2370 | v17 | v18) & (v3 | v4 | v314 | v482) | v39 & v2595 & v486 & (v2370 | v17 | v18) & v562 & v2173 +v357 => ~(v2099 | v2104 | v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v588 | v2529 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v358) & ~(v505 | v2528 | v359 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2224 | v2545 | v2546 | v988 | v2547 | v2548 | v2227 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v358 => v1615 & v486 & v2370 & v1614 & (v464 | v424 | v374 | v513 | v514 | v800 | v515 | v516 | v517 | v445 | v446 | v448 | v451 | v376 | v701 | v534 | v536 | v544 | v551) & ~(v1541 | v17 | v18) | v1615 & v486 & v2370 & v1614 & (v712 | v714 | v382 | v724 | v725 | v383 | v733 | v735) & ~(v1541 | v17 | v18) | v1615 & v486 & v2370 & v1614 & (v386 | v387 | v388 | v740 | v561 | v390 | v392 | v394 | v563 | v564 | v565 | v566 | v568 | v402 | v749 | v570 | v753 | v571 | v755 | v573 | v574) & ~(v1541 | v17 | v18) | v1640 & v769 & v1613 & v2370 & v345 & ~(v17 | v18) & v1604 | v1615 & v2154 & v2370 & (v518 | v521 | v378) & ~(v17 | v18) | v1615 & v2154 & v2370 & (v715 | v720 | v729 | v730 | v732 | v734 | v736 | v389 | v742 | v396 | v562) & ~(v17 | v18) | v1615 & v2154 & v2370 & (v737 | v738 | v745 | v747 | v567 | v748 | v403 | v404 | v750 | v751 | v752 | v754) & ~(v17 | v18) | v1615 & v2154 & v2370 & (v698 | v519 | v699 | v520 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v530 | v703) & ~(v17 | v18) | v1615 & v2154 & v2370 & (v531 | v532 | v533 | v704 | v705 | v535 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710) & ~(v17 | v18) | v1615 & v2154 & v2370 & (v552 | v553 | v554 | v555 | v556 | v711 | v713 | v557 | v716 | v717 | v718 | v719 | v721 | v722 | v723 | v558 | v559 | v728 | v731 | v560) & ~(v17 | v18) | v1615 & v2154 & v2370 & (v385 | v739 | v741 | v744 | v746 | v400 | v401 | v569 | v572 | v575 | v576) & ~(v17 | v18) | v1615 & v2370 & (v3 | v4 | v314 | v482) & ~(v17 | v18) | v1615 & v486 & v2370 & v1614 & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438) & ~(v17 | v18) | v1615 & v486 & v2370 & v1614 & (v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v395 | v397) & ~(v17 | v18) +v358 => ~(v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v359 | v2224 | v2545 | v988 | v2227) & ~(v2099 | v2104 | v505 | v588 | v2528 | v2529 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2546 | v2547 | v2548 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v359 & ~v314 & (v17 | v18) & (v789 | v790) & v797 & (v686 | v687) & ~(v345 & ~(v357 | v359) | v39 | v594) & ~(v1357 | v1358 | v1359) & ~(v854 | v1353) => v855 +v359 & ~v2298 => v2297 +v359 => v2595 & v486 & (v2370 | v17 | v18) & (v373 | v425 | v426 | v427 | v428 | v429 | v430 | v432 | v434 | v436 | v375 | v438) | v2595 & v486 & (v2370 | v17 | v18) & (v439 | v440 | v441 | v442 | v443 | v444 | v447 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v460 | v480 | v395 | v397) | v2595 & v486 & (v2370 | v17 | v18) & (v464 | v424 | v374 | v513 | v514 | v800 | v515 | v516 | v517 | v445 | v446 | v448 | v451 | v376 | v701 | v534 | v536 | v544 | v551) | v2595 & v486 & (v2370 | v17 | v18) & (v712 | v714 | v382 | v724 | v725 | v383 | v733 | v735) | v2595 & v486 & (v2370 | v17 | v18) & (v386 | v387 | v388 | v740 | v561 | v390 | v392 | v394 | v563 | v564 | v565 | v566 | v568 | v402 | v749 | v570 | v753 | v571 | v755 | v573 | v574) | v2595 & v1613 & v2370 & v345 & ~(v17 | v18) | (v17 | v18) & v2595 & (v1613 | v1606) & v345 | v2595 & v2154 & (v2370 | v17 | v18) & (v518 | v521 | v378) | v2595 & v2154 & (v2370 | v17 | v18) & (v715 | v720 | v729 | v730 | v732 | v734 | v736 | v737 | v738 | v389 | v742 | v396 | v562) | v2595 & v2154 & (v2370 | v17 | v18) & (v745 | v747 | v567 | v748 | v403 | v404 | v750 | v751 | v752 | v754) | v2595 & v2154 & (v2370 | v17 | v18) & (v698 | v519 | v699 | v520 | v522 | v523 | v524 | v700 | v525 | v526 | v527 | v528 | v529 | v702 | v530 | v703) | v2595 & v2154 & (v2370 | v17 | v18) & (v531 | v532 | v533 | v704 | v705 | v535 | v537 | v538 | v539 | v540 | v541 | v706 | v542 | v543 | v545 | v546 | v547 | v548 | v549 | v550 | v709 | v710) | v2595 & v2154 & (v2370 | v17 | v18) & (v552 | v553 | v554 | v555 | v556 | v711 | v713 | v557 | v716 | v717 | v718 | v719 | v721 | v722 | v723 | v558 | v559 | v728 | v731 | v560) | v2595 & v2154 & (v2370 | v17 | v18) & (v385 | v739 | v741 | v744 | v746 | v400 | v401 | v569 | v572 | v575 | v576) | v2595 & (v2370 | v17 | v18) & (v3 | v4 | v314 | v482) +v359 => ~(v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v358 | v2224 | v2545 | v988 | v2227) & ~(v2099 | v2104 | v505 | v588 | v2528 | v2529 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2546 | v2547 | v2548 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v2582 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v772 => v356 | v988 | (v17 | v18) & v771 +v772 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v772 | v2595 | v1615 | v1640 +v773 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v1640 => v358 | (v17 | v18) & v505 +v1640 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v1615 => v358 +v1615 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v2591 | v2593 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v2593 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2594 | v2595 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v2595 => v357 & (v759 | v39) & ~(v17 | v18) | (v17 | v18) & v359 & (v759 | v39) +v2595 => ~(v2557 | v2558 | v2559 | v2562 | v2563 | v2565 | v2567 | v2568 | v2569 | v2570 | v2571 | v2572 | v2573 | v2574 | v2575 | v2576 | v2577 | v2578 | v2579 | v2580 | v2581 | v2582 | v772 | v2583 | v2584 | v773 | v2586 | v2587 | v1640 | v2588 | v2589 | v1615 | v2591 | v2593 | v2594 | v2596) & ~(v2560 | v2561 | v2564 | v2566 | v2585 | v2590 | v2592) +v988 => ~v734 & ~(v737 | v738 | v391 & ~v1479 | v564 | v747 | v748 | v750 | v752 | v754) & ~(v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v358 | v359 | v2224 | v2545 | v2227) & ~(v2099 | v2104 | v505 | v588 | v2528 | v2529 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2546 | v2547 | v2548 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v989 => ~(v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356 | v358 | v359 | v2224 | v2545 | v988) & ~(v2099 | v2104 | v505 | v588 | v2528 | v2529 | v357 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2546 | v2547 | v2548 | v2227 | v2549 | v2550 | v2551 | v2552 | v2282 | v1545 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v1545 => ~(v2099 | v2104 | v2512 | v2513 | v2514 | v2515 | v2516 | v2517 | v2518 | v2519 | v2520 | v2521 | v2523 | v2524 | v2525 | v587 | v2526 | v2527 | v588 | v2528 | v2529 | v2531 | v2278 | v2160 | v2532 | v2533 | v2279 | v2534 | v356) & ~(v505 | v357 | v358 | v359 | v2535 | v2537 | v2538 | v2539 | v2540 | v2280 | v2541 | v2542 | v2543 | v2281 | v2544 | v2224 | v2545 | v2546 | v988 | v2547 | v2548 | v2227 | v2549 | v2550 | v989 | v2551 | v2552 | v2282 | v2553) & ~(v2554 | v2555 | v2556 | v2522 | v771 | v2530 | v983 | v2536) +v774 => ~(v2095 | v2370) & ~(v775 | v2101 | v2103 | v2598 | v2599) +v775 => ~(v2095 | v2370) & ~(v774 | v2101 | v2103 | v2598 | v2599) +v2600 => v1467 | v732 +v2600 => ~(v2601 | v2602 | v2603 | v2604 | v2605 | v2606 | v2607 | v2608 | v2609) +v2601 => v1467 | v732 +v2601 => ~(v2600 | v2602 | v2603 | v2604 | v2605 | v2606 | v2607 | v2608 | v2609) +v2602 => v1467 | v732 +v2602 => ~(v2600 | v2601 | v2603 | v2604 | v2605 | v2606 | v2607 | v2608 | v2609) +v2603 => v1467 | v732 +v2603 => ~(v2600 | v2601 | v2602 | v2604 | v2605 | v2606 | v2607 | v2608 | v2609) +v2604 => v1467 | v732 +v2604 => ~(v2600 | v2601 | v2602 | v2603 | v2605 | v2606 | v2607 | v2608 | v2609) +v2605 => v1467 | v732 +v2605 => ~(v2600 | v2601 | v2602 | v2603 | v2604 | v2606 | v2607 | v2608 | v2609) +v2606 => v1467 | v732 +v2606 => ~(v2600 | v2601 | v2602 | v2603 | v2604 | v2605 | v2607 | v2608 | v2609) +v2607 => v1467 | v732 +v2607 => ~(v2600 | v2601 | v2602 | v2603 | v2604 | v2605 | v2606 | v2608 | v2609) +v2608 => v1467 | v732 +v2608 => ~(v2600 | v2601 | v2602 | v2603 | v2604 | v2605 | v2606 | v2607 | v2609) +v2609 => v1467 | v732 +v2609 => ~(v2600 | v2601 | v2602 | v2603 | v2604 | v2605 | v2606 | v2607 | v2608) +v1395 => ~v1397 +v694 & v681 & ~v2136 => v2135 +v694 => v681 & v690 & v691 +v1464 => v1507 & v797 & ~(v3 | v4 | v314 | v345) +v1464 => ~v2112 +v1472 & v1471 & v1387 & ~(v39 | v17 | v18) | (v17 | v18) & v1472 & v1471 & v1387 & ~(v1661 | v39) => v1470 +v1472 => v1471 & v1387 & v1470 & ~(v17 | v18) | (v17 | v18) & v1471 & v1387 & v1470 +v506 => (v507 | v502 & v4) & v501 & ~(v593 | v594 | v17 | v18) +v506 => ~(v500 | v503) +v1493 => ~(v482 | v17 | v18) | (v17 | v18) & ~v482 +v799 => (v315 | v316 | v323 | v324) & v798 & v2597 & ~(v17 | v18) | (v17 | v18) & (v315 | v316 | v323 | v324) & v798 & v2597 +v1454 & (v3 | v4) & (v4 | v3 | v1478 & (v1479 | v1653) | v1479 & v382 & (v976 | v1480) | v482 & (v1479 | v1653)) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v2247 | v1452 | v1453) => v1451 +v1454 & (v3 | v4) & ~v1450 => v1448 +v1454 & ~(v3 | v4 | v314) & ~(v375 | v438 | v444) & ~(v530 | v703 | v539 | v540 | v541 | v706 | v544 | v545 | v548 | v378 | v550) & ~(v382 & (v1479 | v1653) | v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560) & ~(v740 | v561 | v480 | v394 | v395 | v396 | v562 | v563 | v568 | v401 | v403 | v569 | v404 | v570 | v753) & ~(v826 | v572 | v755 | v575) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v2247 | v1451 | v1452) => v1453 +v1454 & ~(v3 | v4) & ~(v573 | v574 | v576) & ~v373 & ~(v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v439 | v440 | v441 | v442 | v443 | v445 | v446 | v447 | v448) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526) & ~(v527 | v528 | v701 | v529 | v702 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v542 | v543 | v546 | v547 | v549 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v380 | v381 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v725) & ~(v728 | v729 | v383 | v730 | v732 | v733 | v734 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v389 | v741 | v390 | v742 | v391 | v392) & ~(v744 | v564 | v397 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v748 | v402 | v749 | v750 | v751 | v752 | v754 | v571) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v2247 | v1451 | v1453) => v1452 +v1454 & ~(v3 | v4) & ~v1448 => v1450 +v1454 => (v1451 & v1448 | (v1452 | v1453) & v1450) & ~(v17 | v18) | (v17 | v18) & (v1451 & v1448 | (v1452 | v1453) & v1450) +v2117 & (v681 | v593 | v594) & ~(v17 | v18) | v2117 & (v17 | v18) & (v681 | v593 | v594) & v1560 & ~(v319 | v796 | v1675 | v2119 | v1678 | v849 | v367 | v369 | v371) => v2118 +v2117 & (v681 | v593 | v594) => v2116 +v2117 => v681 & v2116 & v2118 & ~(v345 & ~v357 | v17 | v18) | (v17 | v18) & v681 & v2116 & v2118 & ~(v345 & ~v359) +v1396 => v811 & v1394 & v373 & ~(v17 | v18) | (v17 | v18) & v811 & v1394 & v373 +v862 => v695 & v681 & v676 & v965 & ~(v17 | v18) | (v17 | v18) & v695 & v681 & v676 & v965 +v507 & v39 & ~(v17 | v18) & ~(v2076 | v502 | v1646) => v499 +v507 => (v499 | v502) & (v498 | v504) & ~(v4 | v17 | v18) | v4 & v502 & (v498 | v504) & ~(v17 | v18) | (v17 | v18) & v502 & v498 & ~(v4 | v345) | (v17 | v18) & v4 & v502 & v498 +v507 => ~v508 +v695 => (v694 | v696 | v345) & v692 & ~(v17 | v18) | (v17 | v18) & (v694 | v696 | v345) & v692 +v508 => (v17 | v18) & v502 & v504 +v508 => ~v507 +v1469 & v425 => v1495 +v1469 & ~(v3 | v4) => v1496 +v1469 => v1468 & v1496 & ~(v3 | v4 | v425 | v17 | v18) | v1468 & v1495 & v1496 & v425 | (v17 | v18) & v1468 & v1496 & ~(v3 | v4 | v425) +v2611 => ~v2610 +v969 => v967 & (v886 | v891 | v864 | v865 | v866) & v696 & ~(v39 | v17 | v18) | (v17 | v18) & v967 & v696 & ~(v693 | v39) +v969 => ~v970 +v696 & ~(v2105 | v2106) => v1624 +v696 => v861 & v1624 & (v689 | v690) & ~(v279 | v17 | v18) | (v17 | v18) & v861 & v1624 & (v689 | v690) +v782 => (v316 | v1498 | v1499) & v681 & v676 & v965 & v781 & v1362 & v679 & v1363 & v1364 & v1365 & ~(v345 | v17 | v18) | v681 & v676 & v1362 & v679 & v1363 & v1364 & v1365 & ~(v345 | v316 | v17 | v18) | (v17 | v18) & (v316 | v1497 | v1498 | v1499) & v681 & v676 & v781 & (v1362 | (v896 | v897) & (v1366 | v1367)) & v679 & v1363 & v1364 & v1365 & ~v345 | (v17 | v18) & v681 & v676 & (v1362 | (v896 | v897) & (v1366 | v1367)) & v679 & v1363 & v1364 & v1365 & ~(v345 | v316) +v782 => v1364 +v782 => v1365 +v782 => ~v1368 +v1494 & (v17 | v18) & ~v686 => v687 +v1494 => (v17 | v18) & v1493 & v687 & ~(v345 & v356 & ~v775) +v970 => v968 & (v886 | v891 | v864 | v865 | v866) & v696 & ~(v39 | v17 | v18) | (v17 | v18) & v968 & v696 & ~(v693 | v39) +v970 => ~v969 +v971 => (v17 | v18) & v966 & v696 & ~(v693 | v39) +v1397 => ~v1395 +v2613 => ~(v2612 | v2614 | v2615 | v2616) +v2614 => ~(v2612 | v2613 | v2615 | v2616) +v2615 => ~(v2612 | v2613 | v2614 | v2616) +v2616 => ~(v2612 | v2613 | v2614 | v2615) +v2618 => ~(v2617 | v2619 | v2620 | v2621 | v2622) +v2620 => ~(v2617 | v2618 | v2619 | v2621 | v2622) +v2621 => ~(v2617 | v2618 | v2619 | v2620 | v2622) +v2173 & (v1539 & v826 & v357 & (v708 | v743) & v497 & ~v39 | (v17 | v18) & v826 & v359 & (v707 | v708 | v743) & v497 & ~v39) & ~v372 & ~(v2145 | v2146 | v1552) & ~(v806 | v3 | v2161 | v2147 & ~(v813 | v583 | v2158) | v4 | v1478 | v314) & ~(v1661 & ~v1542 | v2148) & ~(v2241 | v463 | v1475 | v1477 | v141 | v1509 & ~(v410 | v411) | v465) & ~(v469 | v475 | v476) & ~(v481 | v1355) & ~(v485 | v2155 | v2156 | v857 | v490 | v491 | v492 | v493 | v1357 | v1358 | v1359 | v975 | v494 & ~(v410 | v411 | v1897 | v1381) | v592 | v39) & ~(v3 | v4 | v1478 | v314 | v463 | v810 | v393 | v2150 | v2151 | v345 | v2152 | v2153 | v482 | v483) => v464 +v2173 & ~v1604 => v2173 +v2173 => ~v1604 +v2173 | v1604 +v178 & v95 & v1559 & ~(v822 | v17 | v18) & ~(v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201) & ~(v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236) & ~(v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v995 | v997 | v998 | v801 | v802 | v803 | v827 | v999 | v829 | v1003) & ~(v1264 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1045) & ~(v839 | v1322 | v1323 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1105 | v1107 | v1109 | v1110 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136) & ~(v993 | v994 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) => v63 +v178 => ~(v1168 | v2248 | v1383 | v141) +v1168 => v3 | v4 +v1168 => ~((v807 | v808) & ~v579) & ~(v178 | v2248 | v1383 | v141) +v1168 | v141 | v178 +v1383 => ~v804 & ~(v178 | v1168 | v2248 | v141) +v821 => v1168 & v134 & v822 & (v3 | v4) & ~(v587 | v359 | v17 | v18) | v178 & v131 & v356 & ~(v17 | v18) | v178 & v131 & v822 & (v357 | v358) & ~(v17 | v18) | v141 & v267 & v822 & ~(v17 | v18) | (v17 | v18) & v1168 & v134 & v822 & (v3 | v4) | (v17 | v18) & v178 & v131 & (v771 | v356) | (v17 | v18) & v178 & v131 & v822 & (v505 | v359) +v821 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v836 => v1539 & v178 & v130 & v356 & v1654 & ~(v2074 | v2075) | v1539 & v178 & v130 & v822 & (v357 | v358) & v1654 & ~(v2075 | v3 | v4) | v1539 & v178 & v130 & v822 & (v357 | v358) & (v3 | v4) | (v17 | v18) & v178 & v130 & (v771 | v356) & v1654 & ~(v2074 | v2075) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) & v1654 & ~(v2075 | v3 | v4) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) & (v3 | v4) +v836 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022) & ~(v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1200 => (v17 | v18) & v178 & v264 & (v771 | v356) +v1200 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v829 | v1003 | v1004 | v1005) & ~(v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1203 => v178 & v264 & (v771 | v356) | v141 & v268 & v356 & ~(v17 | v18) +v1203 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v829) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1209 => (v17 | v18) & v178 & v131 & (v771 | v356) | (v17 | v18) & v178 & v131 & v822 & (v505 | v359) | (v17 | v18) & v1168 & v134 & v822 & (v3 | v4) +v1209 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v179 => (v17 | v18) & v141 & v95 & v1559 & ~v822 | (v17 | v18) & v178 & v95 & v1559 & ~v822 +v179 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v1218 | v1219 | v1220 | v1221 | v1222 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v822 => v771 | v356 | (v357 | v358) & ~v63 | (v505 | v359) & ~(v63 | v179) +v822 => ~(v812 & ~v810) & ~(v804 | v805) & ~((v806 | v811) & ~(v814 | v815 | v816 | v580 | v817 | v819 | v820)) & ~((v807 | v808) & ~(v813 | v814 | v815 | v580 | v581 | v817 | v818 | v819 | v820 | v583)) +v1230 => v178 & v132 & v356 & ~(v17 | v18) | v141 & v268 & v356 & ~(v17 | v18) | (v17 | v18) & v178 & v132 & (v771 | v356) +v1230 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010) & ~(v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1232 => v141 & v268 & v356 & ~(v17 | v18) | v178 & v132 & v356 & ~(v17 | v18) +v1232 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008) & ~(v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1232 | v827 | v837 | v803 | v801 | v2624 | v1078 | v2623 | v832 | v1230 | v821 | v802 | v829 | v990 | v1203 | v63 | v179 | v1200 | v830 | v828 | v1209 | v836 +v837 => (v17 | v18) & v178 & v130 & (v771 | v356) & ~(v2074 | v2075) | (v17 | v18) & v178 & v130 & v822 & (v505 | v359) & ~v2075 +v837 => ~(v1167 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203) & ~(v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238) & ~(v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v1251 | v1252 | v1253 | v1254 | v1255 | v1257 | v1258 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1021 | v1022 | v1036 | v1120 | v1122) & ~(v1264 | v1322 | v1323 | v1025 | v830 | v1035 | v1045 | v1055 | v1057 | v1058 | v1080 | v1081 | v1088 | v1109 | v1110 | v1114 | v1115 | v1117 | v833 | v1119 | v1124 | v1126 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1136 | v1137 | v1138 | v1139 | v1141 | v1142) & ~(v839 | v1184 | v1256 | v990 | v991 | v992 | v995 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1023 | v1024 | v1026 | v1028 | v1029 | v1030 | v1031 | v1032 | v1037 | v1038 | v1039 | v1105 | v1107 | v1113 | v1116 | v1121 | v1123 | v1127 | v1140 | v1143 | v1144 | v1145) & ~(v1169 | v993 | v994 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1002 | v1027 | v1034 | v1040 | v1047 | v1049 | v1050 | v1056 | v1051 | v1052 | v1060 | v1061 | v1062 | v1065 | v831 | v1066 | v1078 | v832 | v1092 | v1098 | v1099 | v1104 | v1106) & ~(v996 | v1063 | v1059 | v1070 | v1064 | v1067 | v1068 | v1069 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v1079 | v1082 | v1084 | v1085 | v1086 | v1087 | v1089 | v1090 | v1091 | v766 | v1094 | v1095 | v1096 | v1097 | v768 | v1100 | v1101 | v1102 | v1103 | v1111 | v1118) & ~(v1001 | v1041 | v1042 | v1043 | v1044 | v1046 | v1048 | v1053 | v1054 | v1083 | v1093 | v767 | v1108 | v1125 | v1135 | v1146 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1318 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1112) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v838 => ~(v1260 | v1261 | v1263 | v1266 | v1271 | v1283 | v1284 | v1285 | v1286 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1308 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1336 | v1337 | v1338 | v1339 | v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174) & ~(v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208) & ~(v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243) & ~(v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v996 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1001 | v1002 | v829) & ~(v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1027 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830 | v1035 | v1036 | v1037 | v1038) & ~(v1264 | v1322 | v1039 | v1040 | v1047 | v1041 | v1042 | v1043 | v1044 | v1045 | v1046 | v1049 | v1048 | v1050 | v1056 | v1051 | v1052 | v1053 | v1054 | v1055 | v1063 | v1057 | v1058 | v1059 | v1060 | v1061 | v1062 | v1070 | v1064 | v1065 | v831 | v1066 | v1067 | v1068 | v1069 | v1078) & ~(v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v832 | v1079 | v1080 | v1081 | v1082 | v1083 | v1092 | v1084 | v1085 | v1086 | v1087 | v1088 | v1089 | v1090 | v1091 | v1098 | v766 | v1093 | v1094 | v1095 | v1096 | v1097 | v767 | v768 | v1099 | v1100 | v1101 | v1102 | v1103) & ~(v839 | v1323 | v1112 | v1104 | v1105 | v1106 | v1107 | v1108 | v1109 | v1110 | v1111 | v1118 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1125 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1135 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834) & ~(v1262 | v1269 | v1270 | v1288 | v1318 | v1146 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v839 => ~(v1260 | v1261 | v1262 | v1263 | v1266 | v1267 | v1268 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1285 | v1286 | v1288 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1296 | v1297 | v1298 | v1299 | v1306 | v1308 | v1318 | v1319 | v1320 | v1321 | v1331 | v1332 | v1333) & ~(v1335 | v1336 | v1337 | v1338 | v1339 | v1345 | v1346 | v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194) & ~(v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229) & ~(v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995) & ~(v996 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1001 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024) & ~(v1264 | v1025 | v1026 | v1027 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1041 | v1042 | v1043 | v1044 | v1045 | v1046 | v1049 | v1048 | v1050 | v1056 | v1051 | v1052 | v1053 | v1054 | v1055 | v1063 | v1057 | v1058) & ~(v1322 | v1059 | v1060 | v1061 | v1062 | v1070 | v1064 | v1065 | v831 | v1066 | v1067 | v1068 | v1069 | v1078 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v832 | v1079 | v1080 | v1081 | v1082 | v1083 | v1092 | v1084 | v1085 | v1086 | v1087 | v1088 | v1089 | v1090 | v1091) & ~(v1098 | v766 | v1093 | v1094 | v1095 | v1096 | v1097 | v767 | v768 | v1099 | v1100 | v1101 | v1102 | v1103 | v1112 | v1104 | v1105 | v1106 | v1107 | v1108 | v1109 | v1110 | v1111 | v1118 | v1113 | v1114 | v1115 | v1116 | v1117 | v833 | v1125 | v1119 | v1120 | v1121 | v1122 | v1123) & ~(v1323 | v1124 | v1135 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1146 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158) & ~(v1265 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1300 | v1301 | v1303 | v1304 | v1305 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1325 | v1326 | v1327 | v1328 | v1329 | v1347 | v1033 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1295 => ~(v1260 | v1261 | v1263 | v1285 | v1286 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1308 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183 | v1184) & ~(v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179 | v1218) & ~(v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252 | v1253) & ~(v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v996 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1001 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012 | v1013) & ~(v1264 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1027 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1041 | v1042 | v1043 | v1044 | v1045 | v1046 | v1049) & ~(v1322 | v1048 | v1050 | v1056 | v1051 | v1052 | v1053 | v1054 | v1055 | v1063 | v1057 | v1058 | v1059 | v1060 | v1061 | v1062 | v1070 | v1064 | v1065 | v831 | v1066 | v1067 | v1068 | v1069 | v1078 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v832 | v1079 | v1080 | v1081) & ~(v839 | v1082 | v1083 | v1092 | v1084 | v1085 | v1086 | v1087 | v1088 | v1089 | v1090 | v1091 | v1098 | v766 | v1093 | v1094 | v1095 | v1096 | v1097 | v767 | v768 | v1099 | v1100 | v1101 | v1102 | v1103 | v1104 | v1105 | v1106 | v1107 | v1108 | v1109 | v1110 | v1111 | v1118 | v1113) & ~(v1323 | v1114 | v1115 | v1116 | v1117 | v833 | v1125 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1135 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1146 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145 | v1147) & ~(v1262 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1288 | v1296 | v1297 | v1318 | v1336 | v1337 | v1338 | v1339 | v1112 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v1296 => ~(v1260 | v1261 | v1263 | v1285 | v1286 | v1289 | v1290 | v1291 | v1292 | v1293 | v1294 | v1295 | v1308 | v1320 | v1321 | v1331 | v1332 | v1333 | v1335 | v1167 | v1169 | v1170 | v1171 | v1172 | v1173 | v1174 | v1175 | v1176 | v1177 | v1178 | v1179 | v1180 | v821 | v1181 | v1182 | v1183) & ~(v1184 | v1185 | v1186 | v1187 | v1188 | v1189 | v1190 | v836 | v1191 | v1192 | v1193 | v1194 | v1195 | v1196 | v1197 | v1198 | v1199 | v1200 | v1201 | v1202 | v1203 | v1204 | v1205 | v1206 | v1207 | v1208 | v1209 | v1210 | v1211 | v1212 | v1213 | v1214 | v1215 | v1216 | v1217 | v179) & ~(v1218 | v1219 | v1220 | v1221 | v1222 | v1223 | v1224 | v1225 | v1226 | v1227 | v1228 | v1229 | v1230 | v1231 | v1232 | v1233 | v1234 | v1235 | v1236 | v1237 | v1238 | v1239 | v1240 | v1241 | v1242 | v1243 | v1244 | v1245 | v1246 | v1247 | v1248 | v1249 | v1250 | v837 | v1251 | v1252) & ~(v1253 | v1254 | v1255 | v1256 | v1257 | v1258 | v990 | v991 | v992 | v993 | v994 | v995 | v996 | v997 | v998 | v801 | v802 | v803 | v827 | v63 | v999 | v1000 | v828 | v1001 | v1002 | v829 | v1003 | v1004 | v1005 | v1006 | v1007 | v1008 | v1009 | v1010 | v1011 | v1012) & ~(v1264 | v1013 | v1014 | v1015 | v1016 | v1017 | v1018 | v1019 | v1020 | v1021 | v1022 | v1023 | v1024 | v1025 | v1026 | v1027 | v1028 | v1029 | v1030 | v1031 | v1032 | v1034 | v830 | v1035 | v1036 | v1037 | v1038 | v1039 | v1040 | v1047 | v1041 | v1042 | v1043 | v1044 | v1045 | v1046) & ~(v1322 | v1049 | v1048 | v1050 | v1056 | v1051 | v1052 | v1053 | v1054 | v1055 | v1063 | v1057 | v1058 | v1059 | v1060 | v1061 | v1062 | v1070 | v1064 | v1065 | v831 | v1066 | v1067 | v1068 | v1069 | v1078 | v1071 | v1072 | v1073 | v1074 | v1075 | v1076 | v1077 | v832 | v1079 | v1080) & ~(v1081 | v1082 | v1083 | v1092 | v1084 | v1085 | v1086 | v1087 | v1088 | v1089 | v1090 | v1091 | v1098 | v766 | v1093 | v1094 | v1095 | v1096 | v1097 | v767 | v768 | v1099 | v1100 | v1101 | v1102 | v1103 | v1104 | v1105 | v1106 | v1107 | v1108 | v1109 | v1110 | v1111 | v1118 | v1113) & ~(v839 | v1323 | v1114 | v1115 | v1116 | v1117 | v833 | v1125 | v1119 | v1120 | v1121 | v1122 | v1123 | v1124 | v1135 | v1126 | v1127 | v1128 | v1129 | v1130 | v1131 | v1132 | v1133 | v1134 | v834 | v1146 | v1136 | v1137 | v1138 | v1139 | v1140 | v1141 | v1142 | v1143 | v1144 | v1145) & ~(v1262 | v1266 | v1269 | v1270 | v1271 | v838 | v1283 | v1284 | v1288 | v1297 | v1318 | v1336 | v1337 | v1338 | v1339 | v1112 | v1147 | v1148 | v1149 | v1150 | v1151 | v1152 | v1153 | v1154 | v1155 | v1156 | v1157 | v1158 | v1159 | v1160 | v1161 | v1162 | v1163 | v1164 | v1165 | v1166) & ~(v1265 | v1267 | v1268 | v1277 | v1278 | v1279 | v1280 | v1281 | v1282 | v1287 | v1298 | v1299 | v1300 | v1301 | v1303 | v1304 | v1305 | v1306 | v1307 | v1310 | v1311 | v1312 | v1313 | v1314 | v1316 | v1317 | v1319 | v1325 | v1326 | v1327 | v1328 | v1329 | v1345 | v1346 | v1347 | v1033) & ~(v1259 | v1272 | v1273 | v1274 | v1275 | v1276 | v1302 | v1309 | v1315 | v1324 | v1330 | v1334 | v1340 | v1341 | v1342 | v1343 | v1344 | v1348 | v1349) +v2625 => ~v2626 +v2626 => ~v2625 +v2115 => v373 | v377 | v480 | v394 | v755 | v464 +v972 => v792 | v316 | v324 & (v1497 | v1498 | v1499) +v972 => ~(v1490 | v360 | v361 | v1491 | v362 | v1492) & ~v1488 +v697 => ~v2627 +v360 => (v292 | v791 | v793 | v794 | v795 | v318 | v342 | v344) & ~(v4 | v314 | v17 | v18) | (v17 | v18) & (v292 | v315 | v342 | v344) & ~(v4 | v314) +v360 => ~(v1489 | v972 | v1490 | v361 | v1491 | v362 | v1492 | v1488) +v361 => ~(v17 | v18) | v17 | v18 +v361 => ~(v1489 | v972 | v1490 | v360 | v1491 | v362 | v1492 | v1488) +v1491 => ~(v1489 | v972 | v1490 | v360 | v361 | v362 | v1492) +v2597 => ~v2628 +v362 => ~(v1489 | v972 | v1490 | v360 | v361 | v1491 | v1492) & ~v1488 +v1636 => v358 & (v373 | v377 | v480 | v394) & ~(v997 | v998 | v39) | (v505 | v771 & v770) & (v373 | v377 | v480 | v394) +v1636 => ~(v1634 | v1635) & ~(v1637 | v1638) +v1473 => (v17 | v18) & v692 +v1473 => ~v1474 +v1474 => (v17 | v18) & v692 +v1474 => ~v1473 +v497 => v373 | v377 & ~(v374 | v513 | v800 | v515 | v516 | v517) | v480 | v394 | v562 | v570 | v755 | v314 | v463 | v464 | v482 | v490 | v491 | v492 | v493 +v776 => v799 & (v357 | v359) & v675 & v691 & (v854 | v855) & v697 & (v13 | v14 | v15) & ~(v345 | v39 | v594) | v799 & v358 & v675 & v691 & (v854 | v855) & v697 & (v13 | v14 | v15) & ~(v345 | v39) | v799 & v505 & v675 & v691 & (v854 | v855) & v697 & (v13 | v14 | v15) & ~v345 +v1481 => ~(v1459 & ~(v682 | v692) | v17 | v18) | (v17 | v18) & ~(v1459 & ~(v682 | v692) | v1483) +v1481 => ~v1482 & ~(v375 | v438 | v444) & ~(v523 | v524 | v527 | v530 | v703 | v533 | v705 | v534 | v537 | v540 | v706 | v545 | v546 | v550 | v710) & ~(v380 | v381 | v555 | v556 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v721 | v722 | v723 | v558 | v724 | v559 | v730 | v731 | v732 | v734 | v560 | v736) & ~(v737 | v388 | v740 | v561 | v390 | v392 | v480 | v394 | v395 | v396 | v398 | v745 | v399 | v400 | v567 | v568 | v401 | v749 | v750 | v570 | v752 | v571) & ~(v826 | v572 | v755 | v574 | v575 | v576) +v1638 => ~v1637 & ~v1636 & ~(v1634 | v1635 | v2371) +v1388 => ~(v1389 | v1390 | v1391 | v1392 | v1393) +v1389 => ~(v1388 | v1390 | v1391 | v1392 | v1393) +v1390 => ~(v1388 | v1389 | v1391 | v1392 | v1393) +v1391 => ~(v1388 | v1389 | v1390 | v1392 | v1393) +v1392 => ~(v1388 | v1389 | v1390 | v1391 | v1393) +v1393 => ~(v1388 | v1389 | v1390 | v1391 | v1392) +v2629 => ~(v2271 | v2273) & ~v481 +v2273 => ~(v2271 | v2629) & ~(v481 | v2154) +v1482 => (v3 | v4) & ~v1483 +v1482 => ~v1481 & ~(v373 | v377 | v379 | v409) & ~(v555 | v556 | v711 | v722 | v723 | v559 | v725 | v728 | v383 | v731 | v733 | v734 | v560 | v735) & ~(v408 & ~(v390 | v750)) +v1483 => (v17 | v18) & ~(v1481 | v1482) +v680 => ~(v2630 | v1623) +v1623 => ~(v680 | v2630) +v232 => (v997 | v998) & v141 & ~(v17 | v18) +v232 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157) & ~(v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248) & ~(v249 | v250 | v251 | v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v133 | v134 | v135 | v136) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v264 => (v1200 | v1203 | v990 | v1078) & (v178 | v1383) +v264 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157) & ~(v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v265 => (v997 | v998) & (v178 | v1383) +v265 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156) & ~(v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v267 => (v821 | v1209 | v801 | v802 | v803 | v1139) & v141 & ~(v17 | v18) +v267 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v268 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153) & ~(v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v268 => (v1200 | v1203 | v1230 | v1232 | v990 | v1078) & v141 & ~(v17 | v18) +v268 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154) & ~(v267 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v269 => (v1200 | v1203 | v990 | v1078) & v1168 +v269 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v133 | v134 | v135 | v136 | v137 | v138 | v139 | v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152) & ~(v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176 | v177) & ~(v277 | v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v277 => ~(v180 | v181 | v182 | v183 | v184 | v185 | v186 | v187 | v188 | v189 | v190 | v191 | v192 | v193 | v194 | v195 | v196 | v197 | v198 | v199 | v200 | v201 | v202 | v203 | v204 | v205 | v206 | v207 | v208 | v209 | v210 | v211 | v212 | v213 | v214 | v215) & ~(v216 | v217 | v218 | v219 | v220 | v221 | v222 | v223 | v224 | v225 | v226 | v227 | v228 | v229 | v230 | v231 | v232 | v233 | v234 | v235 | v236 | v237 | v238 | v239 | v240 | v241 | v242 | v243 | v244 | v245 | v246 | v247 | v248 | v249 | v250 | v251) & ~(v252 | v253 | v254 | v255 | v256 | v257 | v258 | v259 | v260 | v261 | v262 | v263 | v264 | v265 | v266 | v267 | v268 | v269 | v270 | v271 | v272 | v273 | v274 | v275 | v276 | v129 | v130 | v131 | v132 | v133 | v134 | v135 | v136 | v137 | v138 | v139) & ~(v140 | v142 | v143 | v144 | v145 | v146 | v147 | v148 | v149 | v150 | v151 | v152 | v153 | v154 | v155 | v156 | v157 | v158 | v159 | v160 | v161 | v162 | v163 | v164 | v165 | v166 | v167 | v168 | v169 | v170 | v171 | v172 | v173 | v174 | v175 | v176) & ~(v278 | v50 | v51 | v52 | v53 | v54 | v56 | v57 | v58 | v59 | v70 | v71 | v72 | v73 | v74 | v75 | v76 | v87 | v99 | v100 | v101 | v102 | v103 | v104 | v113 | v114 | v115 | v116 | v117 | v118 | v120 | v121 | v122 | v127 | v128 | v177) & ~(v55 | v77 | v78 | v60 | v61 | v62 | v64 | v65 | v66 | v67 | v68 | v69 | v88 | v89 | v90 | v91 | v92 | v93 | v94 | v95 | v79 | v80 | v81 | v82 | v83 | v84 | v85 | v86 | v105 | v106 | v107 | v108 | v110 | v96 | v97 | v98) & ~(v40 | v41 | v42 | v43 | v44 | v45 | v46 | v47 | v48 | v49 | v109 | v111 | v112 | v123 | v124 | v125 | v126 | v119) +v2631 => v39 +v2632 => ~v39 +v2633 => ~v39 +v2636 => v2634 | v2635 +v2637 => ~v1500 & v1604 | ~(v1500 | v39) & v2173 +v2638 => v39 & ~(v774 | v775 | v2639 | v2640) +v2639 => ~(v774 | v775 | v1350 & ~v39 | v1546 | v2638 | v2640 | v858) +v2641 => v1666 & v1604 +v2642 => (v17 | v18) & (v1546 | v775) +v2640 => ~(v774 | v775 | v1350 | v1546 | v2638 | v2639 | v39 | v858) +v2643 => v39 +v2644 => v39 +v2645 => ~v1552 +v2646 => v1666 +v2647 => v1666 & (v2648 | v2649) +v2650 => v373 | v377 | v480 | v394 +v2651 => v1666 +v2648 => v1666 & ~v1457 +v2649 => v1666 & ~v1457 +v2652 => (v39 | v593 | v594) & (v2653 | v2654 | v2655) +v2656 => v1666 & (v2648 | v2649) +v2657 => v2654 | v2655 | v1459 +v2658 => ~(v1401 | v2659) +v2660 => v2136 & ~(v2662 & v2663 & v2661) & v1604 +v2664 => v2652 | v2665 | v2666 +v2665 => v2653 | v2654 | v2655 +v2667 => v1666 & (v2653 | v2654 | v2655) & ~v726 +v2666 => (v39 | v593 | v594) & (v2653 | v2654 | v2655) +v2653 => v1666 & (v2648 | v2649) +v2653 => v1666 | v1458 | v1459 | v1460 +v2668 => v1666 & (v2653 | v2654 | v2655) +v2669 => (v2648 | v2649) & (v2653 | v2654 | v2655) +v2654 => v1666 & (v2648 | v2649) +v2655 => v1666 & (v2648 | v2649) +v2670 => ~v855 & v1604 +v2671 => v2646 & v2648 +v2672 => ~v2135 & v1604 +v2661 => ~(v2660 & v2662 & v2663) +v2659 => ~(v1401 | v2658) & v1604 +v2673 => ~v782 | v782 & v2674 +v2676 => v2675 +v2662 => ~(v2660 & v2663 & v2661) +v2663 => ~(v2660 & v2662 & v2661) +v1378 => v789 | v790 | v39 +v1378 => ~(v1379 | v1380) & v1373 +v1379 => v789 | v790 | v39 +v1379 => ~(v1378 | v1380) & v1373 +v976 => v593 +v976 => ~(v2317 | v2318 | v592 | v1480 | v39 | v595 | v2128 | (v790 | v759) & ~v593) & ~v2677 & ~(v806 | v870 | v2306 | v811 | v2310) +v39 & v1666 & ~v1457 => v1461 +v39 & ~(v2679 | v2680) => v2678 +v39 => v2631 +v39 => v2681 +v39 => v2682 +v39 => ~(v1645 | v1553 | v683 | v789 | v790 | v3 | v1486 | v759 | v4 | v314 | v1386 | v763 | v765 | v464 | v708 | v867 | v726 | v855 | v345 | v482 | v2229 | v1387 | v2275 | v856 | v812 | v876 | v886 | v880 | v891 | v969 | v970 | v971 | v776 | v593 | v594) & (v357 & v682 & v1507 & v511 & v1655 & v1471 & v1669 & v315 & v63 & v2393 & v1559 & v2681 & v2682 & v1461 & (v2678 | v2679 | v2680) & v2683 & ~(v502 | v1500 | v17 | v18) | (v17 | v18) & v359 & v682 & v1507 & v511 & v1655 & v1471 & v1669 & v315 & (v63 | v179) & v2393 & v1559 & v2681 & v2682 & v1461 & (v2678 | v2679 | v2680) & v2683) +v39 => ~(v2317 | v2318 | v976 | v1480 | v592 | v595 | v2684 | v2128 | v806 | v759 | v314 | v464 | v811) & ~(v2677 | v958) +v39 | v594 => v2393 +v39 | v594 => v2683 +v2685 => v593 +v1559 => v39 & v63 | v39 & v179 +v1559 => ~v809 +v1662 => v39 & v1666 +v1663 => v39 & v1666 +v1664 => v39 & v1666 +v1665 => v39 & v1666 +v2289 => v39 & ~(v314 | v570) +v593 => ~(v501 | v757 | v758 | v1645 | v683 | v789 | v2229 | v39 | v594) & (v357 & v682 & v1350 & v684 & v2240 & v798 & v1471 & v1669 & (v315 | v316) & v695 & ~(v17 | v18) | (v17 | v18) & v359 & v682 & v1350 & v684 & v2240 & v798 & v1471 & v1669 & (v315 | v316) & v695) +v1458 => v39 & v1666 & v1461 & ~v1457 +v1459 => v39 & v1666 & v1461 & ~(v1457 | v1481 & ~(v682 | v692)) +v1459 => ~v2686 +v1460 & v39 & v1666 & v1461 & ~(v1457 | v1481 & ~(v682 | v692)) & ~v2686 => v1459 +v1460 => v39 & v1666 & v1461 & v1459 & ~v1457 +v2687 => v39 +v2681 => v39 +v2688 => v39 & (v1664 | v1665) +v594 & (v39 | v593 | v594) & ~(v2678 | v2680) => v2679 +v594 => ~(v501 | v757 | v758 | v1645 | v1553 | v1647 | v683 | v789 | v1486 | v855 | v2229 | v776 | v39 | v593) & (v357 & v682 & v511 & v684 & v1655 & v2240 & v798 & v1471 & v1669 & v315 & v2393 & v695 & v2679 & v2683 & ~(v17 | v18) | (v17 | v18) & v359 & v682 & v684 & v511 & v1655 & v2240 & v798 & v1471 & v1669 & v315 & v2393 & v695 & v2679 & v2683) +v594 => ~v811 +v2682 => v39 +v2689 => v39 & v1507 & v797 +v2690 => v692 +v2691 => v39 +v1461 => v39 & v1666 & ~v1457 +v2692 => (v17 | v18) & v39 & v501 +v2678 => v39 +v2678 => ~(v2679 | v2680) +v2674 => v782 +v2694 => v2693 +v2694 => ~(v2695 | v2696) +v2695 => v2693 +v2695 => ~(v2694 | v2696) +v2696 => v2693 +v2696 => ~(v2694 | v2695) +v2679 => v39 | v593 | v594 +v2679 => ~(v2678 | v2680) +v2683 => v39 | v594 +v2697 => v17 | v18 +v1666 => ~(v1667 | v1668 | v811) +v1666 => ~v1661 +v2680 => v39 | v593 +v2680 => ~(v2678 | v2679) +v1668 => ~(v3 | v4) +v1668 => ~(v811 | v1666) +v1380 => v1373 & ~(v1378 | v1379) +v1380 => v789 | v790 | v39 +v2136 => ~v2135 & v1604 +~((v357 | v359) & (v671 | v672)) & v853 & (v671 | v1501 | v1409 | v672) & ~(v17 | v18) & ~(v1401 | v1403 | v1404 | v1406 | v1407 | v1408) => v1405 +~((v357 | v359) & v345) & ~(v17 | v18) & ~(v865 | v2256 | v2257 | v867 | v868 | v2258 | v2259 | v869) & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v888 | v889 | v890 | v891 | v896 | v897 | v901 | v915 | v922 | v923 | v924 | v925 | v926 | v927 | v928 | v929 | v864 | v865 | v867 | v868 | v869) & ~(v886 | v887 | v892 | v894 | v911 | v912 | v913 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962 | v963 | v964) & ~(v893 | v895 | v898 | v899 | v900 | v902 | v903 | v904 | v905 | v906 | v907 | v908 | v909 | v910 | v914 | v916 | v917 | v918 | v919 | v920 | v921 | v934 | v941 | v942 | v943 | v944 | v945 | v863) => v866 +~(v373 | v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443) & v372 & (v373 | v425 | v426 | v427 | v428 | v515 | v429 | v430 | v517 | v432 | v434 | v436 | v375 | v438 | v439 | v440 | v441 | v442 | v443 | v444) & ~(v17 | v18) | ~(v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458 | v459 | v376 | v460) & v372 & (v447 | v448 | v449 | v450 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v480) & ~(v17 | v18) | (v17 | v18) & v372 & (v426 | v428 | v515 | v429 | v430 | v517 | v436 | v439 | v440 | v442 | v444 | v448 | v454 | v480) & ~(v1360 | v1552) => v2078 +~(v1552 | v789 | v39) & ~(v2128 | v2129 | v2130 | v2131 | v976 & ~v593 | v1480) => v790 +~(v1362 | v3 | v4 | v314 | v345 & ~v359) & (v17 | v18) & v1423 & ~(v345 & ~v359) & ~(v1424 | v1425 | v1426 | v1427 | v1428 | v1429 | v1430 | v1431 | v1432 | v1433 | v1434 | v1367 | v1435 | v1436 | v1437 | v1438 | v1439 | v1440 | v1441 | v1442 | v1443 | v1444 | v1445 | v1446 | v1419 | v1420 | v1421 | v1422) => v1366 +~(v3 | v4) => v2501 +~(v3 | v345 & v359) & (v17 | v18) & ~(v871 | v872 | v873 | v874 | v875 | v876 | v877 | v878 | v879 | v880 | v881 | v882 | v883 | v884 | v885 | v886 | v887 | v888 | v889 | v890 | v891 | v892 | v894 | v895 | v896 | v897 | v905 | v906 | v907 | v911 | v912 | v913 | v914 | v920 | v921 | v922) & ~(v923 | v924 | v925 | v926 | v927 | v928 | v929 | v930 | v931 | v932 | v933 | v935 | v936 | v937 | v938 | v939 | v940 | v941 | v942 | v946 | v947 | v948 | v949 | v950 | v951 | v952 | v953 | v954 | v955 | v956 | v957 | v958 | v959 | v960 | v961 | v962) & ~(v893 | v899 | v900 | v901 | v902 | v903 | v904 | v908 | v909 | v910 | v915 | v916 | v917 | v918 | v919 | v934 | v943 | v944 | v945 | v963 | v964 | v863 | v864 | v865 | v866 | v867 | v868 | v869) => v898 +~(v510 | v511) => v512 +~(v759 | v587 | v588 | v39) => v2332 +~(v4 | v2305 | v357) & ~(v587 | v359 | v17 | v18) & ~(v1419 | v1420 | v1421 | v1422) & ~(v1445 & ~v2107 | v1446 & ~v579) => v1447 +~(v314 | v463 | v374) & ~(v3 | v4 | v345 | v482 | v725 | v729 | v732 | v740 | v561 | v395 | v562 | v565 & ~v463 | v568 | v570 | v751 | v753) & ~v2284 => v2137 +~(v445 | v459) & ~(v345 | v426) & ~((v674 | v415) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v425 | v427 | v432 | v434 | v375 | v438 | v441 | v443 | v447 | v449 | v450 | v452 | v453 | v455 | v456 | v457 | v458) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v555 | v556 | v711 | v712 | v713 | v714 | v715 | v557 | v716 | v717 | v718 | v719 | v720 | v721) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v722 | v723 | v558 | v724 | v559 | v725 | v728 | v729 | v383 | v730 | v731 | v732 | v733 | v734 | v560 | v735 | v736) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v390 | v395 | v396 | v399 | v400) & ~(v815 | v580 | v818 | v1575 | v578)) & ~((v826 | v572 | v755 | v573 | v574 | v575 | v576) & ~(v815 | v580 | v818 | v1575 | v578)) => v2276 +~(v2238 | v2239) => v2237 +~(v17 | v18) & v1356 & ~(v314 | v464 | v345 | v375 | v438 | v449 | v456 | v755) => v1571 +~(v17 | v18) & ~(v2100 | v774 | v775 | v2101 | v2102 | v2103) => v2370 +~(v17 | v18) | (v3 | v4 | v345) & (v17 | v18) & v692 => v2254 +~(v345 & v359) & (v507 | v4) & ~(v504 | v17 | v18) | ~(v345 & v359) & (v17 | v18) & v507 & ~v504 => v498 +~(v1382 | v2455 | v813 | v2457 | v1479 | v2458 | v2107 | v577 | v814 | v2460 | v2461 | v2462 | v579 | v815 | v784 | v2464 | v2465 | v816 | v2467 | v2468 | v2469 | v2470 | v2472 | v582 | v2159 | v819 | v2312 | v820 | v2163) & ~(v2444 | v2445 | v2446 | v2447 | v2450 | v2451 | v2453 | v2456 | v1542 | v578 | v2463 | v580 | v2466 | v581 | v1543 | v2473 | v818 | v2475 | v583 | v1575 | v1653 | v2478 | v2479 | v2480 | v2482 | v2483 | v2484 | v2485 | v2486) & ~(v2448 | v2449 | v2158 | v2452 | v2454 | v2459 | v2292 | v2471 | v2474 | v2293 | v2165 | v2476 | v2477 | v585 | v2481) => v817 +~(v2504 | v2505) => v2506 +~(v1454 | v17 | v18) & ~(v3 | v4) & ~(v573 | v574 | v576) & ~v373 & ~(v424 | v374 | v425 | v426 | v513 | v427 | v514 | v800 | v428 | v515 | v429 | v516 | v430 | v517 | v432 | v434 | v436 | v439 | v440 | v441 | v442 | v443 | v445 | v446 | v447 | v448) & ~(v449 | v450 | v451 | v452 | v453 | v454 | v455 | v456 | v457 | v458 | v459 | v376 | v460 | v518 | v698 | v519 | v699 | v520 | v521 | v522 | v523 | v524 | v700 | v525 | v526) & ~(v527 | v528 | v701 | v529 | v702 | v531 | v532 | v533 | v704 | v705 | v534 | v535 | v536 | v537 | v538 | v542 | v543 | v546 | v547 | v549 | v709 | v710 | v551 | v552 | v553 | v554) & ~(v380 | v381 | v555 | v556 | v711 | v712 | v714 | v715 | v557 | v716 | v717 | v382 | v718 | v719 | v720 | v725) & ~(v728 | v729 | v383 | v730 | v732 | v733 | v734 | v735 | v736 | v385 | v737 | v738 | v386 | v387 | v739 | v388 | v389 | v741 | v390 | v742 | v391 | v392) & ~(v744 | v564 | v397 | v745 | v565 | v746 | v399 | v400 | v747 | v566 | v567 | v748 | v402 | v749 | v750 | v751 | v752 | v754 | v571) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2247 | v1451 | v1452 | v1453) => v2088 +~(v1454 | v17 | v18) & ~v314 & ~(v375 | v438 | v444) & ~(v530 | v703 | v539 | v540 | v541 | v706 | v544 | v545 | v548 | v378 | v550) & ~(v713 | v721 | v722 | v723 | v558 | v724 | v559 | v731 | v560) & ~(v740 | v561 | v480 | v394 | v395 | v396 | v562 | v563 | v568 | v401 | v403 | v569 | v404 | v570 | v753) & ~(v826 | v572 | v755 | v575) & ~(v2242 | v2243 | v2244 | v2084 | v2241 | v2245 | v2085 | v2086 | v2246 | v2087 | v2149 | v2088 | v1451 | v1452 | v1453) => v2247 +~(v1168 | v2248 | v1383 | v141) => v178 +~v279 +~v0 +~v1901 +~v1902 +~v1679 +~v40 +~v280 +~v1680 +~v1681 +~v41 +~v281 +~v1682 +~v1683 +~v1903 +~v991 +~v42 +~v282 +~v1576 +~v1684 +~v1904 +~v863 +~v1905 +~v1685 +~v1577 +~v1906 +~v992 +~v43 +~v2232 +~v1578 +~v1908 +~v1579 +~v1909 +~v413 +~v1910 +~v1911 +~v1912 +~v1580 +~v1913 +~v1581 +~v993 +~v44 +~v1914 +~v1915 +~v1916 +~v1686 +~v1917 +~v1918 +~v1687 +~v1919 +~v1920 +~v1921 +~v994 +~v45 +~v1582 +~v1688 +~v1689 +~v1583 +~v995 +~v46 +~v1584 +~v996 +~v2065 +~v47 +~v283 +~v1690 +~v1585 +~v1586 +~v1587 +~v997 +~v48 +~v2061 +~v1922 +~v998 +~v49 +~v50 +~v51 +~v52 +~v53 +~v54 +~v55 +~v56 +~v57 +~v58 +~v59 +~v284 +~v1691 +~v1692 +~v1693 +~v1694 +~v1695 +~v285 +~v1696 +~v1923 +~v1697 +~v1698 +~v1699 +~v60 +~v286 +~v1700 +~v2164 +~v1588 +~v1589 +~v1701 +~v1590 +~v1702 +~v1591 +~v1592 +~v1703 +~v509 +~v61 +~v287 +~v1704 +~v1594 +~v1595 +~v1596 +~v1597 +~v1598 +~v1599 +~v2066 +~v62 +~v288 +~v1705 +~v1706 +~v1924 +~v1707 +~v1925 +~v64 +~v289 +~v1708 +~v1926 +~v1709 +~v1710 +~v1600 +~v1927 +~v1711 +~v1928 +~v1712 +~v999 +~v65 +~v290 +~v1713 +~v1929 +~v1930 +~v1714 +~v1715 +~v1716 +~v1601 +~v1000 +~v66 +~v291 +~v1931 +~v1717 +~v1932 +~v1718 +~v67 +~v1934 +~v1935 +~v1001 +~v68 +~v1936 +~v1719 +~v1002 +~v69 +~v2177 +~v2178 +~v2179 +~v2180 +~v2181 +~v2182 +~v2183 +~v2184 +~v2185 +~v2186 +~v70 +~v71 +~v72 +~v73 +~v74 +~v75 +~v76 +~v77 +~v78 +~v1938 +~v2138 +~v1720 +~v2139 +~v2140 +~v2141 +~v1721 +~v2142 +~v2143 +~v79 +~v2144 +~v295 +~v1722 +~v1723 +~v1724 +~v1725 +~v1641 +~v1003 +~v80 +~v296 +~v1726 +~v1727 +~v1728 +~v1729 +~v1730 +~v1939 +~v1004 +~v81 +~v2076 +~v297 +~v1940 +~v785 +~v786 +~v787 +~v1731 +~v788 +~v1642 +~v1005 +~v82 +~v298 +~v1941 +~v1732 +~v1733 +~v2288 +~v1734 +~v1006 +~v83 +~v804 +~v299 +~v595 +~v805 +~v1735 +~v1643 +~v597 +~v417 +~v1736 +~v1737 +~v1738 +~v1739 +~v2094 +~v1007 +~v1942 +~v1646 +~v1740 +~v1741 +~v1742 +~v1743 +~v1008 +~v84 +~v300 +~v1943 +~v1744 +~v1745 +~v1419 +~v1944 +~v1009 +~v85 +~v301 +~v1420 +~v1746 +~v1945 +~v1747 +~v1748 +~v1749 +~v1750 +~v1010 +~v86 +~v1946 +~v1751 +~v1948 +~v1561 +~v1011 +~v87 +~v2187 +~v2188 +~v2189 +~v2190 +~v2191 +~v2192 +~v2193 +~v2194 +~v2195 +~v420 +~v88 +~v89 +~v90 +~v91 +~v92 +~v93 +~v94 +~v302 +~v1949 +~v1752 +~v1950 +~v1456 +~v1012 +~v96 +~v303 +~v1753 +~v1508 +~v1422 +~v1754 +~v1755 +~v2242 +~v2243 +~v2244 +~v1756 +~v1013 +~v97 +~v304 +~v1757 +~v1758 +~v1759 +~v2174 +~v1014 +~v98 +~v2145 +~v610 +~v1351 +~v1015 +~v99 +~v305 +~v1760 +~v2146 +~v1360 +~v2684 +~v1951 +~v1761 +~v624 +~v1952 +~v1016 +~v306 +~v1762 +~v1513 +~v1514 +~v629 +~v1552 +~v1763 +~v422 +~v1953 +~v1017 +~v100 +~v307 +~v1764 +~v1765 +~v1954 +~v1766 +~v1955 +~v1018 +~v101 +~v308 +~v1956 +~v1767 +~v1768 +~v1957 +~v1627 +~v1958 +~v2175 +~v1769 +~v1770 +~v1019 +~v102 +~v1771 +~v1772 +~v1959 +~v1630 +~v1020 +~v103 +~v1960 +~v777 +~v1021 +~v104 +~v2196 +~v2197 +~v2198 +~v2199 +~v2200 +~v2201 +~v2202 +~v2203 +~v2204 +~v1502 +~v1503 +~v1504 +~v1505 +~v105 +~v106 +~v107 +~v108 +~v109 +~v110 +~v111 +~v112 +~v2110 +~v309 +~v1773 +~v778 +~v1774 +~v779 +~v1775 +~v1776 +~v780 +~v1022 +~v113 +~v1410 +~v310 +~v1411 +~v1777 +~v2128 +~v1778 +~v1779 +~v2129 +~v2130 +~v1780 +~v1023 +~v114 +~v1608 +~v311 +~v1781 +~v1412 +~v1609 +~v1413 +~v1610 +~v1782 +~v1611 +~v2108 +~v1783 +~v1612 +~v1024 +~v115 +~v1961 +~v1962 +~v689 +~v1025 +~v116 +~v312 +~v1784 +~v2109 +~v1785 +~v1026 +~v117 +~v806 +~v313 +~v1786 +~v1787 +~v1788 +~v1027 +~v118 +~v1789 +~v1028 +~v119 +~v510 +~v1790 +~v423 +~v2162 +~v1963 +~v1791 +~v1548 +~v1792 +~v1029 +~v120 +~v2147 +~v1964 +~v1030 +~v121 +~v1965 +~v1966 +~v1967 +~v1968 +~v1478 +~v1969 +~v314 & v18 & ~v974 => v973 +~v1031 +~v122 +~v2205 +~v2206 +~v2207 +~v2079 +~v2208 +~v2209 +~v2210 +~v123 +~v124 +~v125 +~v126 +~v1970 +~v792 +~v1971 +~v1506 +~v1793 +~v1516 +~v1517 +~v1794 +~v1032 +~v127 +~v1518 +~v1519 +~v317 +~v1520 +~v1521 +~v1522 +~v1523 +~v1795 +~v1033 +~v128 +~v1524 +~v320 +~v1525 +~v1796 +~v1526 +~v1527 +~v1528 +~v1797 +~v1529 +~v1972 +~v1530 +~v1798 +~v1531 +~v1799 +~v431 +~v1034 +~v129 +~v433 +~v321 +~v1800 +~v1532 +~v1801 +~v1352 +~v1802 +~v435 +~v1803 +~v1804 +~v1805 +~v322 +~v1462 +~v840 +~v1973 +~v1463 +~v1534 +~v1974 +~v1535 +~v841 +~v1536 +~v1537 +~v842 +~v1538 +~v1035 +~v6 +~v1661 +~v323 +~v1975 +~v1670 +~v2148 +~v2231 +~v1675 +~v1651 +~v1676 +~v1806 +~v1677 +~v1036 +~v2105 +~v324 +~v843 +~v2119 +~v2234 +~v844 +~v1807 +~v685 +~v845 +~v1037 +~v133 +~v325 +~v2235 +~v2236 +~v1671 +~v1672 +~v2395 +~v1808 +~v1678 +~v2238 +~v1038 +~v2239 +~v326 +~v846 +~v847 +~v1673 +~v1674 +~v1976 +~v848 +~v849 +~v1977 +~v1978 +~v1039 +~v135 +~v760 +~v1979 +~v1980 +~v761 +~v762 +~v1981 +~v764 +~v1040 +~v136 +~v2211 +~v2212 +~v2213 +~v2214 +~v2215 +~v2216 +~v327 +~v1041 +~v1809 +~v1982 +~v461 +~v462 +~v1042 +~v1810 +~v1043 +~v1811 +~v1044 +~v1045 +~v1812 +~v1046 +~v1047 +~v137 +~v328 +~v1813 +~v1048 +~v2084 +~v2241 +~v1814 +~v2245 +~v1815 +~v2085 +~v2086 +~v1816 +~v1049 +~v138 +~v2246 +~v329 +~v2087 +~v1817 +~v2149 +~v1983 +~v1818 +~v1819 +~v1050 +~v139 +~v330 +~v1820 +~v1051 +~v1052 +~v1053 +~v1054 +~v1055 +~v1056 +~v140 +~v2233 +~v1057 +~v1058 +~v1059 +~v1060 +~v1061 +~v1821 +~v1062 +~v1063 +~v10 +~v142 +~v1064 +~v331 +~v1984 +~v1822 +~v1065 +~v831 +~v1823 +~v1066 +~v1067 +~v1068 +~v1069 +~v1070 +~v143 +~v1071 +~v332 +~v1985 +~v1072 +~v1824 +~v1073 +~v1986 +~v1074 +~v1075 +~v1076 +~v1825 +~v1077 +~v144 +~v333 +~v1079 +~v1826 +~v1080 +~v1081 +~v1082 +~v1083 +~v1566 +~v145 +~v1084 +~v334 +~v1085 +~v1086 +~v1087 +~v1088 +~v1089 +~v1090 +~v1091 +~v1092 +~v146 +~v1827 +~v766 +~v1093 +~v1094 +~v1095 +~v1096 +~v1987 +~v1097 +~v1988 +~v767 +~v768 +~v1098 +~v147 +~v2250 +~v335 +~v466 +~v1828 +~v1989 +~v467 +~v1990 +~v468 +~v1829 +~v1991 +~v1830 +~v469 +~v470 +~v1831 +~v1099 +~v148 +~v472 +~v336 +~v1992 +~v2251 +~v1832 +~v2252 +~v2510 +~v2511 +~v473 +~v2253 +~v474 +~v475 +~v1833 +~v476 +~v1100 +~v149 +~v337 +~v2433 +~v1834 +~v1993 +~v1994 +~v1835 +~v1995 +~v1836 +~v1101 +~v150 +~v338 +~v1837 +~v2256 +~v2257 +~v867 +~v868 +~v2258 +~v2259 +~v869 +~v1102 +~v151 +~v339 +~v1838 +~v1839 +~v1996 +~v1103 +~v152 +~v340 +~v1840 +~v1104 +~v1105 +~v1106 +~v1107 +~v1841 +~v1997 +~v1108 +~v1998 +~v1109 +~v1110 +~v1111 +~v1112 +~v153 +~v1113 +~v341 +~v477 +~v1842 +~v1999 +~v2000 +~v1114 +~v1115 +~v2001 +~v1116 +~v1843 +~v1117 +~v833 +~v1118 +~v154 +~v1119 +~v2002 +~v1120 +~v1844 +~v726 +~v727 +~v2003 +~v1121 +~v1122 +~v1123 +~v2005 +~v1124 +~v2006 +~v1125 +~v155 +~v1126 +~v2007 +~v1127 +~v2008 +~v1128 +~v1129 +~v1130 +~v1131 +~v2009 +~v1132 +~v2010 +~v1133 +~v2011 +~v1134 +~v834 +~v1135 +~v156 +~v1136 +~v1137 +~v2012 +~v1138 +~v2013 +~v1139 +~v1140 +~v2014 +~v1141 +~v2015 +~v1142 +~v2016 +~v1143 +~v1144 +~v2017 +~v1145 +~v1146 +~v157 +~v2262 +~v2263 +~v2264 +~v2265 +~v2266 +~v1845 +~v2267 +~v2054 +~v1846 +~v2019 +~v1147 +~v158 +~v343 +~v1847 +~v1403 +~v1848 +~v1406 +~v2020 +~v1407 +~v1148 +~v159 +~v393 & (v17 | v18) & (v851 | v852) & v853 & (v775 | v314 | v482 | v393 | v345 | v376) & ~(v3 | v4 | v1511) => v1510 +~v1849 +~v1850 +~v481 +~v2151 +~v1149 +~v160 +~v346 +~v1851 +~v2021 +~v2268 +~v2153 +~v483 +~v1488 +~v1150 +~v161 +~v347 +~v1852 +~v1853 +~v1854 +~v1855 +~v1151 +~v162 +~v348 +~v24 +~v1353 +~v1856 +~v365 +~v1857 +~v370 +~v2022 +~v1152 +~v163 +~v349 +~v1652 +~v1858 +~v1573 +~v1574 +~v25 +~v26 +~v1859 +~v371 +~v1153 +~v164 +~v350 +~v1860 +~v677 +~v1861 +~v406 +~v1862 +~v1154 +~v165 +~v351 +~v1863 +~v1602 +~v1603 +~v1864 +~v1865 +~v2023 +~v1866 +~v2024 +~v1155 +~v166 +~v2026 +~v2027 +~v2028 +~v1156 +~v167 +~v2217 +~v2218 +~v2080 +~v2219 +~v2220 +~v2221 +~v2222 +~v2223 +~v352 +~v353 +~v2030 +~v2031 +~v2311 +~v1867 +~v1868 +~v354 +~v1157 +~v168 +~v355 +~v2032 +~v1869 +~v1870 +~v2033 +~v1871 +~v2298 +~v484 +~v485 +~v1872 +~v1158 +~v27 +~v169 +~v1873 +~v2097 +~v487 +~v1159 +~v170 +~v2155 +~v488 +~v489 +~v2156 +~v857 +~v1160 +~v171 +~v2034 +~v1161 +~v172 +~v870 +~v2035 +~v2305 +~v2306 +~v1874 +~v1497 +~v2036 +~v1875 +~v1162 +~v28 +~v173 +~v2037 +~v1876 +~v2176 +~v2038 +~v1877 +~v490 +~v491 +~v1878 +~v2039 +~v1163 +~v174 +~v1357 +~v1879 +~v2040 +~v1358 +~v1880 +~v1359 +~v2041 +~v1881 +~v2042 +~v600 +~v1882 +~v975 +~v1164 +~v175 +~v2043 +~v1883 +~v1498 +~v2044 +~v2157 +~v1884 +~v1165 +~v29 +~v176 +~v495 +~v2046 +~v2047 +~v2049 +~v2331 +~v1885 +~v1499 +~v2050 +~v1886 +~v2051 +~v1166 +~v177 +~v1616 +~v1557 +~v2334 +~v1617 +~v1618 +~v1619 +~v1621 +~v2362 +~v2364 +~v2367 +~v2368 +~v2369 +~v1569 +~v1634 +~v1635 +~v2371 +~v2628 +~v2628 => v2597 +~v2335 +~v2336 +~v2387 +~v2389 +~v2337 +~v2338 +~v2339 +~v2372 +~v2340 +~v2373 +~v2341 +~v2390 +~v2342 +~v2343 +~v2344 +~v2261 +~v2315 +~v1631 +~v1632 +~v1633 +~v2394 +~v2374 +~v2345 +~v2346 +~v2347 +~v2375 +~v2348 +~v783 +~v2376 +~v2349 +~v2377 +~v2388 +~v2391 +~v2378 +~v2379 +~v2380 +~v2392 +~v2381 +~v2382 +~v2383 +~v2384 +~v2385 +~v2386 +~v2350 +~v2123 +~v2124 +~v2434 +~v1558 +~v2444 +~v2445 +~v2446 +~v2447 +~v2448 +~v2449 +~v2450 +~v2451 +~v2158 +~v2452 +~v2453 +~v1382 +~v2454 +~v2455 +~v813 +~v2456 +~v2457 +~v1479 +~v1542 +~v2458 +~v2107 +~v577 +~v2459 +~v814 +~v2292 +~v578 +~v2460 +~v2461 +~v2462 +~v579 +~v815 +~v2463 +~v784 +~v2464 +~v2465 +~v816 +~v580 +~v2466 +~v2467 +~v581 +~v2468 +~v2469 +~v2470 +~v1543 +~v2471 +~v2472 +~v582 +~v2473 +~v818 +~v2474 +~v2159 +~v819 +~v2293 +~v2312 +~v820 +~v2165 +~v2163 +~v2475 +~v583 +~v2476 +~v1575 +~v2477 +~v584 +~v1653 +~v585 +~v2478 +~v2479 +~v2480 +~v2481 +~v2482 +~v2483 +~v2484 +~v2485 +~v2486 +~v2487 +~v2488 +~v2489 +~v2490 +~v2491 +~v2492 +~v2493 +~v2494 +~v2495 +~v2496 +~v2497 +~v2499 +~v1415 +~v1416 +~v1417 +~v1418 +~v871 +~v872 +~v873 +~v874 +~v875 +~v877 +~v878 +~v879 +~v880 +~v881 +~v882 +~v883 +~v884 +~v885 +~v887 +~v888 +~v889 +~v890 +~v892 +~v893 +~v894 +~v895 +~v899 +~v900 +~v901 +~v902 +~v903 +~v904 +~v905 +~v906 +~v907 +~v908 +~v909 +~v910 +~v911 +~v912 +~v913 +~v914 +~v915 +~v916 +~v917 +~v918 +~v919 +~v920 +~v921 +~v922 +~v923 +~v924 +~v925 +~v926 +~v927 +~v928 +~v929 +~v930 +~v931 +~v932 +~v933 +~v934 +~v935 +~v936 +~v937 +~v938 +~v939 +~v940 +~v941 +~v942 +~v943 +~v944 +~v945 +~v2082 +~v1425 +~v1426 +~v1427 +~v1428 +~v1429 +~v1430 +~v1431 +~v1432 +~v1433 +~v1434 +~v1367 +~v1435 +~v1436 +~v1437 +~v1438 +~v1439 +~v1440 +~v1441 +~v1442 +~v1443 +~v1444 +~v2504 +~v2505 +~v2507 +~v2508 +~v2509 +~v2557 +~v2225 +~v985 +~v986 +~v2226 +~v2270 +~v2098 +~v586 +~v2558 +~v2559 +~v2560 +~v2561 +~v2562 +~v2563 +~v2512 +~v2564 +~v2513 +~v2514 +~v2515 +~v2516 +~v2565 +~v2517 +~v2566 +~v2518 +~v2519 +~v2520 +~v2521 +~v2522 +~v2567 +~v2568 +~v2523 +~v2524 +~v2525 +~v587 +~v2526 +~v2569 +~v2527 +~v2570 +~v588 +~v2528 +~v2571 +~v2572 +~v2573 +~v2574 +~v2575 +~v2576 +~v2577 +~v2578 +~v2529 +~v2579 +~v2530 +~v983 +~v2531 +~v2580 +~v2278 +~v2160 +~v2532 +~v2533 +~v2279 +~v2534 +~v2581 +~v2535 +~v2536 +~v2582 +~v2583 +~v2584 +~v2585 +~v773 +~v2586 +~v2587 +~v2588 +~v2589 +~v2590 +~v2591 +~v2592 +~v2593 +~v2594 +~v2537 +~v2538 +~v2539 +~v2540 +~v2280 +~v2541 +~v2542 +~v2543 +~v2281 +~v2544 +~v2224 +~v2596 +~v2545 +~v2546 +~v988 +~v2547 +~v2548 +~v2227 +~v2549 +~v2550 +~v989 +~v2551 +~v2552 +~v2282 +~v1545 +~v2553 +~v2099 +~v589 +~v2100 +~v774 +~v775 +~v2101 +~v2102 +~v2103 +~v2598 +~v2599 +~v2104 +~v2554 +~v2555 +~v2556 +~v2317 +~v2318 +~v1395 +~v2112 +~v2307 +~v2308 +~v2610 +~v2611 +~v2106 +~v1368 +~v2313 +~v2309 +~v2310 +~v590 +~v1397 +~v591 +~v2612 +~v2617 +~v2619 +~v2622 +~v1167 +~v2248 +~v1169 +~v1383 +~v1170 +~v1171 +~v1172 +~v1173 +~v1174 +~v1175 +~v1176 +~v1177 +~v1178 +~v1179 +~v1180 +~v1181 +~v1182 +~v1183 +~v1184 +~v1185 +~v1186 +~v1187 +~v1188 +~v1189 +~v1190 +~v1191 +~v1192 +~v1193 +~v1194 +~v1195 +~v1196 +~v1197 +~v1198 +~v1199 +~v1201 +~v1202 +~v1204 +~v1205 +~v1206 +~v1207 +~v1208 +~v1210 +~v1211 +~v1212 +~v1213 +~v1214 +~v1215 +~v1216 +~v1217 +~v1218 +~v1219 +~v1220 +~v1221 +~v1222 +~v1223 +~v1224 +~v1225 +~v1226 +~v1227 +~v1228 +~v1229 +~v1231 +~v1233 +~v1234 +~v1235 +~v1236 +~v1237 +~v1238 +~v1239 +~v1240 +~v1241 +~v1242 +~v1243 +~v1244 +~v1245 +~v1246 +~v1247 +~v1248 +~v1249 +~v1250 +~v1251 +~v1252 +~v1253 +~v1254 +~v1255 +~v1256 +~v1257 +~v1258 +~v1259 +~v1260 +~v1261 +~v1262 +~v1263 +~v1264 +~v1265 +~v1266 +~v1267 +~v1268 +~v1269 +~v1270 +~v1271 +~v838 +~v839 +~v1272 +~v1273 +~v1274 +~v1275 +~v1276 +~v1277 +~v1278 +~v1279 +~v1280 +~v1281 +~v1282 +~v1283 +~v1284 +~v1285 +~v1286 +~v1287 +~v1288 +~v1289 +~v1290 +~v1291 +~v1292 +~v1293 +~v1294 +~v1295 +~v1296 +~v1297 +~v1298 +~v1299 +~v1300 +~v1301 +~v1302 +~v1303 +~v1304 +~v1305 +~v1306 +~v1307 +~v1308 +~v1309 +~v1310 +~v1311 +~v1312 +~v1313 +~v1314 +~v1315 +~v1316 +~v1317 +~v1318 +~v1319 +~v1320 +~v1321 +~v1322 +~v1323 +~v1324 +~v1325 +~v1326 +~v1327 +~v1328 +~v1329 +~v1330 +~v1331 +~v1332 +~v1333 +~v1334 +~v1335 +~v1336 +~v1337 +~v1338 +~v1339 +~v1340 +~v1341 +~v1342 +~v1343 +~v1344 +~v1345 +~v1346 +~v1347 +~v1348 +~v1349 +~v2131 +~v1489 +~v1490 +~v2627 +~v2627 => v697 +~v1491 +~v362 +~v2228 +~v2271 +~v2272 +~v2284 +~v1492 +~v859 +~v1637 +~v1638 +~v2629 +~v2273 +~v680 +~v2630 +~v1623 +~v180 +~v181 +~v182 +~v183 +~v184 +~v185 +~v186 +~v187 +~v188 +~v189 +~v190 +~v191 +~v192 +~v193 +~v194 +~v195 +~v196 +~v197 +~v198 +~v199 +~v200 +~v201 +~v202 +~v203 +~v204 +~v205 +~v206 +~v207 +~v208 +~v209 +~v210 +~v211 +~v212 +~v213 +~v214 +~v215 +~v216 +~v217 +~v218 +~v219 +~v220 +~v221 +~v222 +~v223 +~v224 +~v225 +~v226 +~v227 +~v228 +~v229 +~v230 +~v231 +~v233 +~v234 +~v235 +~v236 +~v237 +~v238 +~v239 +~v240 +~v241 +~v242 +~v243 +~v244 +~v245 +~v246 +~v247 +~v248 +~v249 +~v250 +~v251 +~v252 +~v253 +~v254 +~v255 +~v256 +~v257 +~v258 +~v259 +~v260 +~v261 +~v262 +~v263 +~v266 +~v270 +~v271 +~v272 +~v273 +~v274 +~v275 +~v276 +~v277 +~v278 +~v946 +~v947 +~v948 +~v949 +~v950 +~v2677 +~v951 +~v952 +~v953 +~v954 +~v955 +~v956 +~v957 +~v958 +~v959 +~v960 +~v961 +~v962 +~v963 +~v964 +~v2166 +~v2167 +~v2168 +~v2169 +~v2170 +~v2171 +~v30 +~v31 +~v32 +~v33 +~v34 +~v35 +~v36 +~v37 +~v38 +~v1445 +~v1446 +~v2260 +~v1480 +~v592 +~v39 => v2632 +~v39 => v2633 +~v2686 +~v1465 +~v1564 +~v1667 diff --git a/tests/writers/bdd/a_bdd.dot b/tests/writers/bdd/a_bdd.dot new file mode 100644 index 00000000..817311ee --- /dev/null +++ b/tests/writers/bdd/a_bdd.dot @@ -0,0 +1,7 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_2 [shape=ellipse, label="A"]; + id_2 -> const_false [style = dotted, color = red]; + id_2 -> const_true [color = darkgreen]; +} diff --git a/tests/writers/bdd/and_bdd.dot b/tests/writers/bdd/and_bdd.dot new file mode 100644 index 00000000..3c4db339 --- /dev/null +++ b/tests/writers/bdd/and_bdd.dot @@ -0,0 +1,13 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_7 [shape=ellipse, label="C"]; + id_7 -> const_true [style = dotted, color = red]; + id_7 -> const_false [color = darkgreen]; + id_16 [shape=ellipse, label="B"]; + id_16 -> const_false [style = dotted, color = red]; + id_16 -> id_7 [color = darkgreen]; + id_17 [shape=ellipse, label="A"]; + id_17 -> const_false [style = dotted, color = red]; + id_17 -> id_16 [color = darkgreen]; +} diff --git a/tests/writers/bdd/equiv_bdd.dot b/tests/writers/bdd/equiv_bdd.dot new file mode 100644 index 00000000..cfcdd3fa --- /dev/null +++ b/tests/writers/bdd/equiv_bdd.dot @@ -0,0 +1,13 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_6 [shape=ellipse, label="C"]; + id_6 -> const_false [style = dotted, color = red]; + id_6 -> const_true [color = darkgreen]; + id_7 [shape=ellipse, label="C"]; + id_7 -> const_true [style = dotted, color = red]; + id_7 -> const_false [color = darkgreen]; + id_11 [shape=ellipse, label="A"]; + id_11 -> id_6 [style = dotted, color = red]; + id_11 -> id_7 [color = darkgreen]; +} diff --git a/tests/writers/bdd/false_bdd.dot b/tests/writers/bdd/false_bdd.dot new file mode 100644 index 00000000..a2e943af --- /dev/null +++ b/tests/writers/bdd/false_bdd.dot @@ -0,0 +1,3 @@ +digraph G { + const_false [shape=box, label="$false", style = bold, color = red]; +} diff --git a/tests/writers/bdd/formula_bdd.dot b/tests/writers/bdd/formula_bdd.dot new file mode 100644 index 00000000..8459ee13 --- /dev/null +++ b/tests/writers/bdd/formula_bdd.dot @@ -0,0 +1,25 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_8 [shape=ellipse, label="D"]; + id_8 -> const_false [style = dotted, color = red]; + id_8 -> const_true [color = darkgreen]; + id_9 [shape=ellipse, label="D"]; + id_9 -> const_true [style = dotted, color = red]; + id_9 -> const_false [color = darkgreen]; + id_21 [shape=ellipse, label="C"]; + id_21 -> const_false [style = dotted, color = red]; + id_21 -> id_8 [color = darkgreen]; + id_26 [shape=ellipse, label="B"]; + id_26 -> id_9 [style = dotted, color = red]; + id_26 -> const_false [color = darkgreen]; + id_27 [shape=ellipse, label="C"]; + id_27 -> id_8 [style = dotted, color = red]; + id_27 -> const_false [color = darkgreen]; + id_28 [shape=ellipse, label="B"]; + id_28 -> id_27 [style = dotted, color = red]; + id_28 -> id_21 [color = darkgreen]; + id_29 [shape=ellipse, label="A"]; + id_29 -> id_26 [style = dotted, color = red]; + id_29 -> id_28 [color = darkgreen]; +} diff --git a/tests/writers/bdd/impl_bdd.dot b/tests/writers/bdd/impl_bdd.dot new file mode 100644 index 00000000..5f0f3373 --- /dev/null +++ b/tests/writers/bdd/impl_bdd.dot @@ -0,0 +1,10 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_7 [shape=ellipse, label="C"]; + id_7 -> const_true [style = dotted, color = red]; + id_7 -> const_false [color = darkgreen]; + id_10 [shape=ellipse, label="A"]; + id_10 -> const_true [style = dotted, color = red]; + id_10 -> id_7 [color = darkgreen]; +} diff --git a/tests/writers/bdd/not_a_bdd.dot b/tests/writers/bdd/not_a_bdd.dot new file mode 100644 index 00000000..098440c4 --- /dev/null +++ b/tests/writers/bdd/not_a_bdd.dot @@ -0,0 +1,7 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_3 [shape=ellipse, label="A"]; + id_3 -> const_true [style = dotted, color = red]; + id_3 -> const_false [color = darkgreen]; +} diff --git a/tests/writers/bdd/not_bdd.dot b/tests/writers/bdd/not_bdd.dot new file mode 100644 index 00000000..1b0ac0ad --- /dev/null +++ b/tests/writers/bdd/not_bdd.dot @@ -0,0 +1,13 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_6 [shape=ellipse, label="C"]; + id_6 -> const_false [style = dotted, color = red]; + id_6 -> const_true [color = darkgreen]; + id_18 [shape=ellipse, label="B"]; + id_18 -> const_true [style = dotted, color = red]; + id_18 -> id_6 [color = darkgreen]; + id_19 [shape=ellipse, label="A"]; + id_19 -> const_true [style = dotted, color = red]; + id_19 -> id_18 [color = darkgreen]; +} diff --git a/tests/writers/bdd/or_bdd.dot b/tests/writers/bdd/or_bdd.dot new file mode 100644 index 00000000..22a883c5 --- /dev/null +++ b/tests/writers/bdd/or_bdd.dot @@ -0,0 +1,13 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; + const_false [shape=box, label="$false", style = bold, color = red]; + id_7 [shape=ellipse, label="C"]; + id_7 -> const_true [style = dotted, color = red]; + id_7 -> const_false [color = darkgreen]; + id_13 [shape=ellipse, label="B"]; + id_13 -> id_7 [style = dotted, color = red]; + id_13 -> const_true [color = darkgreen]; + id_14 [shape=ellipse, label="A"]; + id_14 -> id_13 [style = dotted, color = red]; + id_14 -> const_true [color = darkgreen]; +} diff --git a/tests/writers/bdd/true_bdd.dot b/tests/writers/bdd/true_bdd.dot new file mode 100644 index 00000000..b113c5e9 --- /dev/null +++ b/tests/writers/bdd/true_bdd.dot @@ -0,0 +1,3 @@ +digraph G { + const_true [shape=box, label="$true", style = bold, color = darkgreen]; +}