[{"data":1,"prerenderedAt":6226},["ShallowReactive",2],{"nav:algorithms":3,"lesson:\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":374,"course-wordcounts":6094,"ref-card-index":6150},[4,28,50,71,120,152,205,230,286,306,331,352],{"module":5,"moduleNumber":6,"slug":7,"lessons":8},"Foundations",1,"foundations",[9,15,21],{"title":10,"path":11,"lessonNumber":6,"topics":12,"summary":14},"What Is an Algorithm?","\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm",[5,13],"Correctness & Induction","An algorithm is a finite, mechanical recipe that transforms inputs into outputs. We pin down what counts as an algorithm, how we write one down, and the three things we always ask of it: is it correct, is it fast, and can we prove it.\n",{"title":16,"path":17,"lessonNumber":18,"topics":19,"summary":20},"Asymptotic Analysis","\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis",2,[16],"We measure an algorithm's running time as a function of its input size, then strip away machine-specific constants and lower-order terms to compare algorithms cleanly. This lesson defines the RAM model and the $O$, $\\Omega$, $\\Theta$, $o$, and $\\omega$ notations, and shows how to read the cost of loops off the page.\n",{"title":22,"path":23,"lessonNumber":24,"topics":25,"summary":27},"Recurrences and the Master Theorem","\u002Falgorithms\u002Ffoundations\u002Frecurrences",3,[26],"Recurrences","Recursive and divide-and-conquer algorithms describe their own running time with a recurrence: $T(n)$ in terms of $T$ on smaller inputs. We solve recurrences three ways — drawing the recursion tree, guessing-and-verifying by induction, and applying the Master Theorem — using merge sort as the running example.\n",{"module":29,"moduleNumber":18,"slug":30,"lessons":31},"Divide & Conquer","divide-and-conquer",[32,38,44],{"title":33,"path":34,"lessonNumber":6,"topics":35,"summary":37},"Divide and Conquer & Mergesort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort",[29,36],"Comparison Sorting","Divide and conquer breaks a problem into smaller copies of itself, solves them recursively, and stitches the answers together. We meet the paradigm through mergesort — its merge step, its loop-invariant proof, and the recursion tree that pins its cost at $\\Theta(n\\log n)$ — then glimpse Karatsuba multiplication as a second example of the same idea.",{"title":39,"path":40,"lessonNumber":18,"topics":41,"summary":43},"Quicksort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort",[36,42],"Probabilistic Analysis","Quicksort sorts in place by partitioning around a pivot and recursing on each side. We give Lomuto and Hoare partitioning with a correctness invariant, see why a bad pivot costs $\\Theta(n^2)$ while a balanced one gives $\\Theta(n\\log n)$, and prove that randomizing the pivot makes the expected cost $\\Theta(n\\log n)$ on every input.",{"title":45,"path":46,"lessonNumber":24,"topics":47,"summary":49},"Linear-Time Selection","\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection",[48,29],"Order Statistics","Finding the $k$-th smallest element looks like it should require sorting, but it does not. Quickselect adapts quicksort's partition to recurse on just one side, achieving expected $O(n)$. The median-of-medians algorithm guarantees a good pivot with the groups-of-five trick, pushing the worst case down to a provable $O(n)$.",{"module":51,"moduleNumber":24,"slug":52,"lessons":53},"Sorting & Order Statistics","sorting",[54,60,65],{"title":55,"path":56,"lessonNumber":6,"topics":57,"summary":59},"Heaps and Heapsort","\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort",[58,36],"Heaps","A binary heap is a tree we store flat in an array, with index arithmetic standing in for pointers. We build the max-heap property bottom-up in $O(n)$ time, sort in place in $\\Theta(n\\log n)$ by repeatedly extracting the maximum, and reuse the same structure to implement a priority queue.",{"title":61,"path":62,"lessonNumber":18,"topics":63,"summary":64},"Lower Bounds for Comparison Sorting","\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds",[36],"Every sort we have seen runs in $\\Omega(n\\log n)$, and that is no accident. Modeling a sort as a decision tree of comparisons, we show any such tree must have $n!$ leaves, forcing height $\\ge \\log_2(n!) = \\Omega(n\\log n)$ — a worst-case bound no comparison sort can ever beat.",{"title":66,"path":67,"lessonNumber":24,"topics":68,"summary":70},"Sorting in Linear Time","\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting",[69],"Linear-Time Sorting","The $\\Omega(n\\log n)$ barrier only binds algorithms that compare. By instead using keys as array indices we slip past it: counting sort runs in $\\Theta(n+k)$ and is stable, radix sort layers it digit by digit, and bucket sort averages $\\Theta(n)$ on uniform data. We see exactly when each applies.",{"module":72,"moduleNumber":73,"slug":74,"lessons":75},"Data Structures",4,"data-structures",[76,82,88,93,99,105,113],{"title":77,"path":78,"lessonNumber":6,"topics":79,"summary":81},"Elementary Data Structures","\u002Falgorithms\u002Fdata-structures\u002Felementary-structures",[80],"Linear Structures","Every container is built one of two ways: **contiguous** in an array, or **linked** through pointers. We trade cache-friendly random access against $O(1)$ splicing, derive the **amortized $O(1)$** append of a doubling dynamic array, and assemble the two ordered access disciplines — the LIFO **stack** and the FIFO **queue** (with its generalization, the **deque**) — on top of both.",{"title":83,"path":84,"lessonNumber":18,"topics":85,"summary":87},"Hash Tables","\u002Falgorithms\u002Fdata-structures\u002Fhash-tables",[86],"Hashing","A hash table implements the dictionary — insert, search, delete — in expected $O(1)$ time by scattering keys across an array with a hash function. We build up from direct addressing, handle collisions by chaining and by open addressing, analyze the load factor $\\alpha$, and see how universal hashing earns its expected-time guarantee against every input.",{"title":89,"path":90,"lessonNumber":24,"topics":91,"summary":92},"Binary Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees",[89],"A binary search tree keeps keys ordered so that every operation follows a single root-to-leaf path. We state the BST property, give search and insert, find minimum, maximum, and successor, see that an inorder walk emits the keys in sorted order, and confront the catch — every operation costs $O(h)$, and a carelessly built tree degrades to height $h = \\Theta(n)$, motivating balance.",{"title":94,"path":95,"lessonNumber":73,"topics":96,"summary":98},"AVL Trees","\u002Falgorithms\u002Fdata-structures\u002Favl-trees",[97],"Balanced Trees","An AVL tree is the first balanced BST: at every node the two subtrees' heights differ by at most $1$. A Fibonacci-style minimal-node argument forces height $h \\le 1.44\\log_2 n = O(\\log n)$, so search, insert, and delete are all $O(\\log n)$. Insertion rebalances with at most one of four rotation cases (LL, RR, LR, RL); deletion may rotate all the way to the root.",{"title":100,"path":101,"lessonNumber":102,"topics":103,"summary":104},"Balanced Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees",5,[97],"An ordinary BST can degrade to height $\\Theta(n)$; balanced search trees guarantee $h = O(\\log n)$ by maintaining invariants and repairing them after every update. We meet rotations, the local restructuring primitive, then red-black trees, whose color invariants force logarithmic height, and finally B-trees, which trade tall-and-thin for short-and-wide to win on disk.",{"title":106,"path":107,"lessonNumber":108,"topics":109,"summary":112},"Disjoint Sets (Union-Find)","\u002Falgorithms\u002Fdata-structures\u002Funion-find",6,[110,111],"Disjoint Sets","Amortized Analysis","The disjoint-set data structure tracks a partition of elements into groups, answering \"are these two in the same group?\" and merging groups on demand. A forest of parent pointers, sped up by union by rank and path compression, drives every operation to near-constant $O(\\alpha(n))$ amortized time — the engine behind connectivity queries and Kruskal's minimum spanning tree.",{"title":114,"path":115,"lessonNumber":116,"topics":117,"summary":119},"Fenwick & Segment Trees","\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees",7,[118],"Range Queries","A prefix-sum array answers a range sum in $O(1)$ but pays $O(n)$ per update; a plain array updates in $O(1)$ but pays $O(n)$ per range sum. Fenwick and segment trees give us _both_ in $O(\\log n)$. The Fenwick (binary indexed) tree is a tiny array keyed by the low bit; the segment tree is a general balanced tree over canonical ranges that handles any associative aggregate and, with lazy propagation, range updates too.",{"module":121,"moduleNumber":102,"slug":122,"lessons":123},"Sequences & Strings","sequences",[124,130,135,141,147],{"title":125,"path":126,"lessonNumber":6,"topics":127,"summary":129},"Two Pointers, Sliding Windows & Prefix Sums","\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows",[128],"Array Techniques","A family of array idioms that collapse an obvious $O(n^2)$ scan into a single $O(n)$ pass by maintaining an invariant as indices move. We meet two pointers (converging on a sorted array, and a fast\u002Fslow pair for in-place rewriting), the sliding window (fixed and variable size, amortized $O(n)$), and prefix sums, which answer any range-sum in $O(1)$ and count subarrays summing to $k$.",{"title":131,"path":132,"lessonNumber":18,"topics":133,"summary":134},"Monotonic Stacks & Queues","\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks",[128],"A **monotonic stack** keeps its contents sorted by popping every element that would break the order before each push — turning a family of \"previous\u002Fnext greater (or smaller) element\" questions into a single $O(n)$ scan. We derive the next-greater-element routine and its amortized analysis, fuse two such scans to measure the **largest rectangle in a histogram** in linear time, and extend the idea to a **monotonic deque** that streams the **sliding-window maximum** in $O(n)$.",{"title":136,"path":137,"lessonNumber":24,"topics":138,"summary":140},"Binary Search on the Answer","\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer",[139],"Searching","Binary search is not really about arrays — it is about locating the boundary of a **monotone predicate** $p(x)$ in $O(\\log(\\text{range}))$ probes. We first pin down the half-open `while (lo \u003C hi)` template for $\\textsc{lower\\_bound}$ and $\\textsc{upper\\_bound}$, then generalize to \"binary search on the answer\": whenever feasibility is monotone in a numeric parameter, we binary search the parameter itself, calling a feasibility check at each step.",{"title":142,"path":143,"lessonNumber":73,"topics":144,"summary":146},"String Matching: Rabin–Karp, KMP & Z","\u002Falgorithms\u002Fsequences\u002Fstring-matching",[145],"Strings","Given a text $T$ of length $n$ and a pattern $P$ of length $m$, find every occurrence of $P$ in $T$. The naive scan costs $O(nm)$; we beat it three ways. Rabin–Karp uses a **rolling hash** to test alignments in $O(1)$ amortised each, with expected $O(n+m)$. KMP precomputes a **failure function** so the scan never re-reads a text character, for worst-case $O(n+m)$. The **Z-function** gives the same bound from a different angle and converts freely to KMP's table.",{"title":148,"path":149,"lessonNumber":102,"topics":150,"summary":151},"Tries & Prefix Trees","\u002Falgorithms\u002Fsequences\u002Ftries",[145],"A **trie** stores a set of strings in a tree keyed by _characters_, so that insert, search, and prefix-test all run in $O(L)$ time — the length of the key, _independent of how many keys are stored_. Shared prefixes are stored once, which makes tries the natural structure for autocomplete, wildcard dictionaries, board word-search, and — over the alphabet $\\{0,1\\}$ — the maximum-XOR-pair problem.",{"module":153,"moduleNumber":108,"slug":154,"lessons":155},"Graphs","graphs",[156,163,168,173,178,183,188,193,199],{"title":157,"path":158,"lessonNumber":6,"topics":159,"summary":162},"Graph Representations and Traversal","\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal",[160,161],"Graph Representations","Graph Traversal","A graph captures _relationships_ — who connects to whom. We fix the vocabulary, weigh the two standard representations (adjacency list versus matrix), then meet the two explorations you'll use constantly: breadth-first search, which finds shortest paths by number of edges, and depth-first search, whose discovery and finish times reveal a graph's hidden structure. Both run in $O(V + E)$.",{"title":164,"path":165,"lessonNumber":18,"topics":166,"summary":167},"Topological Sort and Strong Connectivity","\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc",[161],"Directed acyclic graphs model dependencies: tasks that must precede other tasks. A _topological order_ lays such a graph out in a line so every edge points forward, and depth-first finish times hand it to us almost for free. We then ask the harder question for graphs _with_ cycles: which vertices can reach each other? The answer is the strongly connected components, found by a two-pass DFS.",{"title":169,"path":170,"lessonNumber":24,"topics":171,"summary":172},"Minimum Spanning Trees","\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees",[169],"Given a weighted network, how do we connect everything as cheaply as possible? The answer is a minimum spanning tree. One lemma, the cut property, justifies _every_ correct MST algorithm, and from it two famous greedy methods fall out: Kruskal's, which grows a forest edge by edge with a union-find structure, and Prim's, which grows a single tree using a priority queue.",{"title":174,"path":175,"lessonNumber":73,"topics":176,"summary":177},"Shortest Paths","\u002Falgorithms\u002Fgraphs\u002Fshortest-paths",[174],"Finding the cheapest route through a weighted network is one of the most-used algorithms in computing. A single operation — _relaxation_ — underlies them all. Dijkstra's algorithm solves the non-negative case greedily; Bellman-Ford handles negative edges and detects negative cycles; and Floyd-Warshall finds the shortest path between _every_ pair of vertices.",{"title":179,"path":180,"lessonNumber":102,"topics":181,"summary":182},"Network Flow","\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow",[179],"How much can flow through a network from source to sink? Max-flow is a surprisingly general model — once you see a problem as flow, a whole toolbox opens up. We build flow networks, find maximum flows by repeatedly pushing along augmenting paths in the residual graph, prove the max-flow min-cut theorem, and watch bipartite matching fall out as a special case.",{"title":184,"path":185,"lessonNumber":108,"topics":186,"summary":187},"Bridges & Articulation Points","\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points",[153],"A **bridge** is an edge whose removal disconnects the graph; an **articulation point** is a vertex whose removal does. Both are single points of failure in a network. A single depth-first search computes discovery times and **low-links**, and two local criteria — $low[v] > disc[u]$ for bridges, $low[v] \\ge disc[u]$ for cut vertices — find them all in $O(V+E)$.",{"title":189,"path":190,"lessonNumber":116,"topics":191,"summary":192},"Lowest Common Ancestor & Binary Lifting","\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor",[153],"Given a rooted tree, the lowest common ancestor of $u$ and $v$ is the deepest node that is an ancestor of both. A naive walk answers one query in $O(h)$; **binary lifting** precomputes the $2^k$-th ancestor of every node in $O(n\\log n)$, then answers $k$-th-ancestor and LCA queries in $O(\\log n)$ each. We derive both jumps, apply them to tree distance, and compare against the Euler-tour + RMQ and Tarjan offline alternatives.",{"title":194,"path":195,"lessonNumber":196,"topics":197,"summary":198},"2-SAT via Implication Graphs","\u002Falgorithms\u002Fgraphs\u002Ftwo-sat",8,[153],"A boolean formula whose every clause has exactly two literals can be solved in _linear_ time — even though its three-literal cousin is NP-complete. The trick is to read each clause as a pair of implications, build a directed graph on the $2n$ literals, and ask a question we already know how to answer: which literals share a strongly connected component? The formula is satisfiable iff no variable lands in the same SCC as its own negation, and the SCCs' topological order hands us a satisfying assignment for free.",{"title":200,"path":201,"lessonNumber":202,"topics":203,"summary":204},"Eulerian Tours","\u002Falgorithms\u002Fgraphs\u002Feulerian-tours",9,[153],"An **Eulerian tour** uses every _edge_ of a graph exactly once. We give the exact parity and balance conditions under which one exists (even degree for undirected graphs, in-degree equal to out-degree for directed) and Hierholzer's $O(E)$ algorithm that constructs one by splicing closed sub-tours. We contrast this sharply with the **Hamiltonian** problem (visit every _vertex_ once), which is NP-complete: visiting edges is easy, visiting vertices is hard.",{"module":206,"moduleNumber":116,"slug":207,"lessons":208},"Greedy Algorithms","greedy",[209,214,220,225],{"title":210,"path":211,"lessonNumber":6,"topics":212,"summary":213},"The Greedy Method","\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method",[206],"A greedy algorithm builds a solution one locally-best choice at a time and never looks back. We pin down the two properties that make this work — the greedy-choice property and optimal substructure — prove the canonical activity-selection algorithm correct with an exchange argument, watch greedy fail spectacularly on the 0\u002F1 knapsack, and glimpse matroids as the theory that says exactly when greed is good.",{"title":215,"path":216,"lessonNumber":18,"topics":217,"summary":219},"Scheduling & Interval Partitioning","\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals",[218],"Greedy","Three classic scheduling problems all yield to greedy algorithms — and all three turn on a single design decision: which key to sort by. Interval scheduling sorts by **finish** time to pack the most compatible jobs; interval partitioning sorts by **start** time and proves the rooms needed equal the maximum overlap **depth**; minimizing maximum lateness sorts by **deadline** and is justified by an adjacent-swap exchange argument.",{"title":221,"path":222,"lessonNumber":24,"topics":223,"summary":224},"Huffman Codes","\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes",[206],"Huffman coding is the greedy method's most beautiful application: it builds a provably optimal prefix-free binary code by repeatedly merging the two least frequent symbols. We develop prefix-free codes as binary trees, give the algorithm with a priority queue, build a Huffman tree from example frequencies, prove optimality with the same greedy-choice-plus-substructure argument, and pin the running time at $O(n\\log n)$.",{"title":226,"path":227,"lessonNumber":73,"topics":228,"summary":229},"Matroids & Exchange Arguments","\u002Falgorithms\u002Fgreedy\u002Fmatroids",[218],"The capstone of the greedy module: _why_ and _when_ a greedy algorithm is provably optimal. We recap the two correctness templates — **greedy-stays-ahead** and the **exchange argument** — then meet the **matroid** $M=(S,\\mathcal{I})$, an abstraction whose **exchange property** is exactly the structure greedy needs. The matroid–greedy theorem says sorting by weight and taking what stays independent yields a maximum-weight basis _if and only if_ the structure is a matroid. Kruskal's MST is the canonical instance; 0\u002F1 knapsack and TSP are the canonical failures.",{"module":231,"moduleNumber":196,"slug":232,"lessons":233},"Dynamic Programming","dynamic-programming",[234,239,245,250,255,260,265,270,275,280],{"title":235,"path":236,"lessonNumber":6,"topics":237,"summary":238},"Principles of Dynamic Programming","\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples",[231,26],"Dynamic programming is recursion with memory: when a recursive solution re-solves the same subproblems again and again, we solve each one once and store the answer. We pin down the two structural conditions that make this work — overlapping subproblems and optimal substructure — contrast top-down memoization with bottom-up tabulation, and distil the whole method into a five-step recipe.",{"title":240,"path":241,"lessonNumber":18,"topics":242,"summary":244},"Sequence Alignment & LCS","\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp",[231,243],"String Structures","Two strings can be compared by asking how much of one survives inside the other. The longest common subsequence (LCS) and edit distance are the two classic answers, and they are the _same_ dynamic program wearing different costs. We derive the LCS recurrence by examining the last characters, fill a worked DP table, reconstruct the subsequence, and then show edit distance as the identical $\\Theta(mn)$ pattern.",{"title":246,"path":247,"lessonNumber":24,"topics":248,"summary":249},"Longest Increasing Subsequence","\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence",[231],"Given a sequence of numbers, how long is its longest strictly increasing subsequence? A first dynamic program indexes subproblems by the element each subsequence _ends at_, giving an $O(n^2)$ solution with parent-pointer reconstruction. A sharper idea, the patience-sorting _tails_ array searched by binary search, drops the time to $O(n\\log n)$. We then fold in the variants: non-decreasing, counting, Russian-doll envelopes, and bitonic.",{"title":251,"path":252,"lessonNumber":73,"topics":253,"summary":254},"Knapsack & Subset Problems","\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack",[231],"We start from $\\textsc{Subset-sum}$ — does some sublist hit a target $t$? — and its include\u002Fexclude recurrence over a boolean table $A(i, u)$, then bolt on values to get 0\u002F1 knapsack as the same machine with $\\lor$ promoted to $\\max$. We fill both tables, recover the chosen items, and confront the surprise that the $\\Theta(nt)$ running time is only _pseudo-polynomial_ — exponential in the bit length $b$, and unimprovable unless $\\mathrm{P}=\\mathrm{NP}$ since subset-sum is $\\textsc{NP-complete}$. The fractional variant reveals the sharp line between greedy and dynamic programming.",{"title":256,"path":257,"lessonNumber":102,"topics":258,"summary":259},"Coin Change & Unbounded Knapsack","\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded",[231],"The previous lesson let each item be taken at most once. Drop that cap — items may be reused _any number of times_ — and the 0\u002F1 knapsack collapses from a two-dimensional table to a one-dimensional one, because there is no longer a prefix of \"already-used\" items to track. We meet **unbounded knapsack**, then its most famous instance, **coin change**: the minimum-coins recurrence $C[a] = 1 + \\min_c C[a-c]$, and the counting variant where the _order of the loops_ decides whether you count unordered combinations or ordered sequences — the classic bug. Greed fails in general but works for canonical coin systems.",{"title":261,"path":262,"lessonNumber":108,"topics":263,"summary":264},"Interval DP","\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp",[231],"Many problems ask for the best way to combine a contiguous range of items, and the answer is a dynamic program over subintervals $[i,j]$ that chooses a split point $k$. We derive the pattern from matrix-chain multiplication — parenthesising a product to minimize scalar multiplications in $O(n^3)$ — distil it into a reusable template filled by increasing interval length, and then meet its sharpest variant: the \"last operation\" trick behind Burst Balloons and cutting a stick, where fixing the _last_ move (not the first) makes the two sides independent.",{"title":266,"path":267,"lessonNumber":116,"topics":268,"summary":269},"Dynamic Programming on Trees","\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp",[231],"When the subproblems of a dynamic program are _rooted subtrees_, a single post-order DFS solves the whole thing in $O(n)$: each node combines the already-computed answers of its children. We meet the archetype — maximum-weight independent set on a tree — then the \"path through a node\" pattern behind tree diameter and maximum path sum, and finally **rerooting**, which computes a per-node answer for _every_ node as root in $O(n)$ with two passes.",{"title":271,"path":272,"lessonNumber":196,"topics":273,"summary":274},"Bitmask DP","\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp",[231],"When a subproblem depends not on an index or a prefix but on _which subset_ of a small ground set has been used, we can encode that subset as the bits of an integer and index a DP table by it. With $n \\le \\sim 20$ the $2^n$ subsets fit in a table, turning $\\Theta(n!)$ brute force into $O(2^n \\cdot \\text{poly}(n))$. We meet the bit tricks, the Held–Karp TSP archetype, assignment by mask, subset-sum partitioning, and submask enumeration with its $3^n$ bound.",{"title":276,"path":277,"lessonNumber":202,"topics":278,"summary":279},"DP Optimizations","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations",[231],"A correct DP recurrence is only half the battle; its naive evaluation is often a factor of $n$ slower than necessary. This capstone surveys five techniques, monotonic-queue, the convex hull trick, divide-and-conquer optimization, Knuth's optimization, and SOS DP, that each exploit _structure in the transition_ (a sliding window, linear costs, monotone optimal splits, the quadrangle inequality, or subset lattices) to shave an $O(n)$, $O(\\log n)$, or worse factor off the running time.",{"title":281,"path":282,"lessonNumber":283,"topics":284,"summary":285},"Dynamic Programming on Graphs","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs",10,[231],"Many graph algorithms are dynamic programs in disguise: the subproblem is the _best value reachable under a restricted resource_ — intermediate vertices allowed, edges allowed, or a topological prefix — and edge _relaxation_ is the DP transition. We frame Floyd–Warshall as the archetype ($O(V^3)$ all-pairs shortest paths), Bellman–Ford as a DP over path length (the at-most-$K$-stops variant), DAG-DP in topological order ($O(V+E)$), and Warshall's transitive closure as the boolean analog.",{"module":287,"moduleNumber":202,"slug":288,"lessons":289},"Backtracking & Search","backtracking",[290,296,301],{"title":291,"path":292,"lessonNumber":6,"topics":293,"summary":295},"Backtracking: Subsets, Permutations & Combinations","\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals",[294],"Backtracking","Backtracking builds a solution one choice at a time and abandons a partial solution the moment it cannot be completed, exploring a state-space tree by depth-first search. We meet the universal choose\u002Fexplore\u002Fun-choose template, derive the canonical enumerations — subsets ($2^n$), permutations ($n!$), and combinations ($\\binom{n}{k}$) — handle duplicate elements by skipping equal siblings, and see how pruning turns an exponential search into a tractable one.",{"title":297,"path":298,"lessonNumber":18,"topics":299,"summary":300},"Constraint Search: N-Queens & Sudoku","\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search",[294],"Many hard puzzles are **constraint satisfaction problems**: assign each variable a value from its domain so that every constraint holds. Backtracking solves them by assigning variables one at a time and rejecting a partial assignment the instant a constraint breaks. We make the rejection cheap — $O(1)$ conflict checks for N-Queens via column and diagonal sets — and prune harder with **forward checking**, **MRV** ordering, and **constraint propagation**, which is what lets an exponential search actually finish.",{"title":302,"path":303,"lessonNumber":24,"topics":304,"summary":305},"Branch & Bound and Meet in the Middle","\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound",[294],"Plain backtracking prunes a search tree by _feasibility_; for _optimization_ problems we can prune far more aggressively by _value_. **Branch and bound** keeps the best complete solution found so far and discards any partial solution whose optimistic bound cannot beat it. **Meet in the middle** splits the instance in two, enumerates each half, and recombines by binary search — turning $2^n$ into $O(2^{n\u002F2}\\,n)$ and pushing exact search out to $n \\approx 40$.",{"module":307,"moduleNumber":283,"slug":308,"lessons":309},"Mathematical Algorithms","mathematical-algorithms",[310,316,321,326],{"title":311,"path":312,"lessonNumber":6,"topics":313,"summary":315},"Number Theory: GCD & Modular Arithmetic","\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics",[314],"Number Theory","This lesson opens the mathematical-algorithms module with the bedrock of computational number theory. We prove Euclid's recurrence $\\gcd(a,b)=\\gcd(b,\\,a\\bmod b)$ and its $O(\\log\\min(a,b))$ running time, extend it to recover Bézout coefficients $x,y$ with $ax+by=\\gcd(a,b)$, and build modular arithmetic on residue classes — including when a modular inverse $a^{-1}\\bmod m$ exists and how to compute it.",{"title":317,"path":318,"lessonNumber":18,"topics":319,"summary":320},"Modular Exponentiation & Primality","\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality",[314],"Computing $a^n \\bmod m$ naively costs $n$ multiplications; **repeated squaring** does it in $O(\\log n)$ by reading the bits of the exponent. We use this routine to state **Fermat's little theorem** (and the modular inverse it gives), then to test primality — trial division, the probabilistic **Fermat** and **Miller–Rabin** tests, and the deterministic witness set that settles primality for every 64-bit number.",{"title":322,"path":323,"lessonNumber":24,"topics":324,"summary":325},"Sieves & Factorization","\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization",[314],"The previous lesson tested one number for primality; here we ask for _all_ primes up to $n$ at once. The **sieve of Eratosthenes** cross-cuts composites in $O(n\\log\\log n)$, and a **linear sieve** does it in $O(n)$ while recording each number's **smallest prime factor**, which then factors any $x \\le n$ in $O(\\log x)$. From a factorization $x = \\prod p_i^{e_i}$ the multiplicative functions $\\tau$, $\\sigma$, and Euler's totient $\\varphi$ fall out immediately.",{"title":327,"path":328,"lessonNumber":73,"topics":329,"summary":330},"Combinatorics & Counting","\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics",[314],"Counting is the arithmetic of finite sets. We build up from permutations $n!$ and combinations $\\binom{n}{k}$, prove Pascal's rule by a bijection, and count multisets with stars and bars. The practical core is computing $\\binom{n}{k}\\bmod p$ in $O(1)$ from precomputed factorials and inverse factorials. We close with inclusion–exclusion and the Chinese Remainder Theorem, both of which lean on the modular inverse from the previous lesson.",{"module":332,"moduleNumber":333,"slug":334,"lessons":335},"Computational Geometry",11,"computational-geometry",[336,342,347],{"title":337,"path":338,"lessonNumber":6,"topics":339,"summary":341},"Geometric Primitives & Orientation","\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives",[340],"Geometry","Computational geometry is built on a single reliable primitive — the **orientation test**, a sign of a cross product that tells whether three points turn left, right, or lie collinear. From points-as-vectors and the dot and cross products we derive orientation, segment intersection, the shoelace area formula, and point-in-polygon tests, keeping all arithmetic **exact and integer** so that no floating-point rounding can corrupt a sign.",{"title":343,"path":344,"lessonNumber":18,"topics":345,"summary":346},"Convex Hull","\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull",[340],"The convex hull is the smallest convex polygon enclosing a point set — the rubber band snapped around the nails. We build it with Andrew's monotone chain, sorting by $(x,y)$ and sweeping a lower and upper hull while popping any non-left turn via the orientation primitive, in $O(n\\log n)$. A reduction from sorting shows that bound is optimal, and the hull unlocks diameter, smallest enclosing rectangle, and more through rotating calipers.",{"title":348,"path":349,"lessonNumber":24,"topics":350,"summary":351},"Sweep-Line Algorithms","\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line",[340],"The plane-sweep paradigm turns a static $2$-D geometry problem into a dynamic $1$-D ordered-set problem: a vertical line sweeps left to right, stopping at an $x$-sorted **event queue** while a balanced-BST **status structure** tracks the objects it currently crosses, ordered by $y$. We derive Bentley–Ottmann segment intersection in $O((n+k)\\log n)$, recover closest-pair in $O(n\\log n)$, and reduce skyline, rectangle-area, and overlap problems to $\\pm1$ event sweeps.",{"module":353,"moduleNumber":354,"slug":355,"lessons":356},"Intractability",12,"intractability",[357,363,367],{"title":358,"path":359,"lessonNumber":6,"topics":360,"summary":362},"P, NP, and Reductions","\u002Falgorithms\u002Fintractability\u002Fp-np-reductions",[361],"NP-Completeness","Most problems we have met so far have fast algorithms. A vast and important family seemingly does not. This lesson builds the vocabulary for that divide: decision problems, the class $\\mathsf{P}$ of problems we can solve quickly, the class $\\mathsf{NP}$ of problems whose solutions we can _check_ quickly, and polynomial-time reductions, the tool that lets us compare the difficulty of two problems without solving either.",{"title":361,"path":364,"lessonNumber":18,"topics":365,"summary":366},"\u002Falgorithms\u002Fintractability\u002Fnp-completeness",[361],"Some problems in $\\mathsf{NP}$ are universally hardest: every other problem in $\\mathsf{NP}$ reduces to them. This lesson defines $\\mathsf{NP}$-hard and $\\mathsf{NP}$-complete, states the Cook–Levin theorem that anchors the whole edifice on **SAT**, walks the web of reductions that grows from it, and gives the four-step recipe for proving a brand-new problem $\\mathsf{NP}$-complete.",{"title":368,"path":369,"lessonNumber":24,"topics":370,"summary":373},"Coping with NP-Hardness","\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness",[371,372],"Approximation","Heuristics","Proving a problem $\\mathsf{NP}$-hard is the beginning, not the end. The world still needs answers. This lesson surveys the four honest responses to hardness: approximation algorithms with a provable ratio (worked through a 2-approximation for vertex cover), heuristics and local search, exact exponential methods like branch and bound, and exploiting special structure in the instances you actually face.",{"id":375,"title":194,"blurb":376,"body":377,"description":6061,"extension":6062,"meta":6063,"module":153,"navigation":6065,"path":195,"practice":6066,"rawbody":6076,"readingTime":6077,"seo":6082,"sources":6083,"status":6090,"stem":6091,"summary":198,"topics":6092,"__hash__":6093},"course\u002F01.algorithms\u002F06.graphs\u002F08.two-sat.md","",{"type":378,"value":379,"toc":6053},"minimark",[380,465,746,1180,1262,1267,1411,1560,1769,1853,2194,2429,2705,3063,3067,3140,3350,3868,4130,4148,4152,4283,4423,4434,4498,4922,5229,5636,5640,5675,5679,5998,6049],[381,382,383,384,391,392,455,456,459,460,464],"p",{},"The previous lesson gave us ",[385,386,387],"a",{"href":165},[388,389,390],"strong",{},"strongly connected components",": the maximal sets\nof vertices in a directed graph that can all reach one another, computable in\n",[393,394,397],"span",{"className":395},[396],"katex",[393,398,402,440],{"className":399,"ariaHidden":401},[400],"katex-html","true",[393,403,406,411,418,423,427,432,437],{"className":404},[405],"base",[393,407],{"className":408,"style":410},[409],"strut","height:1em;vertical-align:-0.25em;",[393,412,417],{"className":413,"style":416},[414,415],"mord","mathnormal","margin-right:0.0278em;","O",[393,419,422],{"className":420},[421],"mopen","(",[393,424,426],{"className":425},[414,415],"n",[393,428],{"className":429,"style":431},[430],"mspace","margin-right:0.2222em;",[393,433,436],{"className":434},[435],"mbin","+",[393,438],{"className":439,"style":431},[430],[393,441,443,446,450],{"className":442},[405],[393,444],{"className":445,"style":410},[409],[393,447,449],{"className":448},[414,415],"m",[393,451,454],{"className":452},[453],"mclose",")"," by a ",[385,457,458],{"href":158},"two-pass depth-first search",". It is a beautiful algorithm, and this\nlesson is its most surprising payoff. We will take a problem that ",[461,462,463],"em",{},"looks"," like it\nbelongs to the world of intractable boolean satisfiability and show that one\nspecial case of it collapses to a single SCC computation.",[381,466,467,468,471,472,488,489,624,625,628,629,632,633,688,689,745],{},"The problem is ",[388,469,470],{},"2-satisfiability"," (2-SAT). We are given ",[393,473,475],{"className":474},[396],[393,476,478],{"className":477,"ariaHidden":401},[400],[393,479,481,485],{"className":480},[405],[393,482],{"className":483,"style":484},[409],"height:0.4306em;",[393,486,426],{"className":487},[414,415]," boolean variables\n",[393,490,492],{"className":491},[396],[393,493,495],{"className":494,"ariaHidden":401},[400],[393,496,498,502,560,565,569,574,577,580,583],{"className":497},[405],[393,499],{"className":500,"style":501},[409],"height:0.625em;vertical-align:-0.1944em;",[393,503,505,509],{"className":504},[414],[393,506,508],{"className":507},[414,415],"x",[393,510,513],{"className":511},[512],"msupsub",[393,514,518,551],{"className":515},[516,517],"vlist-t","vlist-t2",[393,519,522,546],{"className":520},[521],"vlist-r",[393,523,527],{"className":524,"style":526},[525],"vlist","height:0.3011em;",[393,528,530,535],{"style":529},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[393,531],{"className":532,"style":534},[533],"pstrut","height:2.7em;",[393,536,542],{"className":537},[538,539,540,541],"sizing","reset-size6","size3","mtight",[393,543,545],{"className":544},[414,541],"1",[393,547,550],{"className":548},[549],"vlist-s","​",[393,552,554],{"className":553},[521],[393,555,558],{"className":556,"style":557},[525],"height:0.15em;",[393,559],{},[393,561,564],{"className":562},[563],"mpunct",",",[393,566],{"className":567,"style":568},[430],"margin-right:0.1667em;",[393,570,573],{"className":571},[572],"minner","…",[393,575],{"className":576,"style":568},[430],[393,578,564],{"className":579},[563],[393,581],{"className":582,"style":568},[430],[393,584,586,589],{"className":585},[414],[393,587,508],{"className":588},[414,415],[393,590,592],{"className":591},[512],[393,593,595,616],{"className":594},[516,517],[393,596,598,613],{"className":597},[521],[393,599,602],{"className":600,"style":601},[525],"height:0.1514em;",[393,603,604,607],{"style":529},[393,605],{"className":606,"style":534},[533],[393,608,610],{"className":609},[538,539,540,541],[393,611,426],{"className":612},[414,415,541],[393,614,550],{"className":615},[549],[393,617,619],{"className":618},[521],[393,620,622],{"className":621,"style":557},[525],[393,623],{}," and a formula in ",[388,626,627],{},"conjunctive normal form"," where every clause\nhas ",[461,630,631],{},"exactly two"," literals, a literal being a variable ",[393,634,636],{"className":635},[396],[393,637,639],{"className":638,"ariaHidden":401},[400],[393,640,642,646],{"className":641},[405],[393,643],{"className":644,"style":645},[409],"height:0.5806em;vertical-align:-0.15em;",[393,647,649,652],{"className":648},[414],[393,650,508],{"className":651},[414,415],[393,653,655],{"className":654},[512],[393,656,658,680],{"className":657},[516,517],[393,659,661,677],{"className":660},[521],[393,662,665],{"className":663,"style":664},[525],"height:0.3117em;",[393,666,667,670],{"style":529},[393,668],{"className":669,"style":534},[533],[393,671,673],{"className":672},[538,539,540,541],[393,674,676],{"className":675},[414,415,541],"i",[393,678,550],{"className":679},[549],[393,681,683],{"className":682},[521],[393,684,686],{"className":685,"style":557},[525],[393,687],{}," or its negation\n",[393,690,692],{"className":691},[396],[393,693,695],{"className":694,"ariaHidden":401},[400],[393,696,698,701,705],{"className":697},[405],[393,699],{"className":700,"style":645},[409],[393,702,704],{"className":703},[414],"¬",[393,706,708,711],{"className":707},[414],[393,709,508],{"className":710},[414,415],[393,712,714],{"className":713},[512],[393,715,717,737],{"className":716},[516,517],[393,718,720,734],{"className":719},[521],[393,721,723],{"className":722,"style":664},[525],[393,724,725,728],{"style":529},[393,726],{"className":727,"style":534},[533],[393,729,731],{"className":730},[538,539,540,541],[393,732,676],{"className":733},[414,415,541],[393,735,550],{"className":736},[549],[393,738,740],{"className":739},[521],[393,741,743],{"className":742,"style":557},[525],[393,744],{},":",[393,747,750],{"className":748},[749],"katex-display",[393,751,753],{"className":752},[396],[393,754,756,779,842,905,967,1029,1049,1121],{"className":755,"ariaHidden":401},[400],[393,757,759,763,767,771,776],{"className":758},[405],[393,760],{"className":761,"style":762},[409],"height:0.6833em;",[393,764,766],{"className":765},[414],"Φ",[393,768],{"className":769,"style":770},[430],"margin-right:0.2778em;",[393,772,775],{"className":773},[774],"mrel","=",[393,777],{"className":778,"style":770},[430],[393,780,782,785,788,832,835,839],{"className":781},[405],[393,783],{"className":784,"style":410},[409],[393,786,422],{"className":787},[421],[393,789,791,795],{"className":790},[414],[393,792,794],{"className":793},[414],"ℓ",[393,796,798],{"className":797},[512],[393,799,801,824],{"className":800},[516,517],[393,802,804,821],{"className":803},[521],[393,805,807],{"className":806,"style":526},[525],[393,808,809,812],{"style":529},[393,810],{"className":811,"style":534},[533],[393,813,815],{"className":814},[538,539,540,541],[393,816,818],{"className":817},[414,541],[393,819,545],{"className":820},[414,541],[393,822,550],{"className":823},[549],[393,825,827],{"className":826},[521],[393,828,830],{"className":829,"style":557},[525],[393,831],{},[393,833],{"className":834,"style":431},[430],[393,836,838],{"className":837},[435],"∨",[393,840],{"className":841,"style":431},[430],[393,843,845,848,892,895,898,902],{"className":844},[405],[393,846],{"className":847,"style":410},[409],[393,849,851,854],{"className":850},[414],[393,852,794],{"className":853},[414],[393,855,857],{"className":856},[512],[393,858,860,884],{"className":859},[516,517],[393,861,863,881],{"className":862},[521],[393,864,866],{"className":865,"style":526},[525],[393,867,868,871],{"style":529},[393,869],{"className":870,"style":534},[533],[393,872,874],{"className":873},[538,539,540,541],[393,875,877],{"className":876},[414,541],[393,878,880],{"className":879},[414,541],"2",[393,882,550],{"className":883},[549],[393,885,887],{"className":886},[521],[393,888,890],{"className":889,"style":557},[525],[393,891],{},[393,893,454],{"className":894},[453],[393,896],{"className":897,"style":431},[430],[393,899,901],{"className":900},[435],"∧",[393,903],{"className":904,"style":431},[430],[393,906,908,911,914,958,961,964],{"className":907},[405],[393,909],{"className":910,"style":410},[409],[393,912,422],{"className":913},[421],[393,915,917,920],{"className":916},[414],[393,918,794],{"className":919},[414],[393,921,923],{"className":922},[512],[393,924,926,950],{"className":925},[516,517],[393,927,929,947],{"className":928},[521],[393,930,932],{"className":931,"style":526},[525],[393,933,934,937],{"style":529},[393,935],{"className":936,"style":534},[533],[393,938,940],{"className":939},[538,539,540,541],[393,941,943],{"className":942},[414,541],[393,944,946],{"className":945},[414,541],"3",[393,948,550],{"className":949},[549],[393,951,953],{"className":952},[521],[393,954,956],{"className":955,"style":557},[525],[393,957],{},[393,959],{"className":960,"style":431},[430],[393,962,838],{"className":963},[435],[393,965],{"className":966,"style":431},[430],[393,968,970,973,1017,1020,1023,1026],{"className":969},[405],[393,971],{"className":972,"style":410},[409],[393,974,976,979],{"className":975},[414],[393,977,794],{"className":978},[414],[393,980,982],{"className":981},[512],[393,983,985,1009],{"className":984},[516,517],[393,986,988,1006],{"className":987},[521],[393,989,991],{"className":990,"style":526},[525],[393,992,993,996],{"style":529},[393,994],{"className":995,"style":534},[533],[393,997,999],{"className":998},[538,539,540,541],[393,1000,1002],{"className":1001},[414,541],[393,1003,1005],{"className":1004},[414,541],"4",[393,1007,550],{"className":1008},[549],[393,1010,1012],{"className":1011},[521],[393,1013,1015],{"className":1014,"style":557},[525],[393,1016],{},[393,1018,454],{"className":1019},[453],[393,1021],{"className":1022,"style":431},[430],[393,1024,901],{"className":1025},[435],[393,1027],{"className":1028,"style":431},[430],[393,1030,1032,1036,1040,1043,1046],{"className":1031},[405],[393,1033],{"className":1034,"style":1035},[409],"height:0.5556em;",[393,1037,1039],{"className":1038},[572],"⋯",[393,1041],{"className":1042,"style":431},[430],[393,1044,901],{"className":1045},[435],[393,1047],{"className":1048,"style":431},[430],[393,1050,1052,1055,1058,1112,1115,1118],{"className":1051},[405],[393,1053],{"className":1054,"style":410},[409],[393,1056,422],{"className":1057},[421],[393,1059,1061,1064],{"className":1060},[414],[393,1062,794],{"className":1063},[414],[393,1065,1067],{"className":1066},[512],[393,1068,1070,1103],{"className":1069},[516,517],[393,1071,1073,1100],{"className":1072},[521],[393,1074,1076],{"className":1075,"style":526},[525],[393,1077,1078,1081],{"style":529},[393,1079],{"className":1080,"style":534},[533],[393,1082,1084],{"className":1083},[538,539,540,541],[393,1085,1087,1090,1093,1097],{"className":1086},[414,541],[393,1088,880],{"className":1089},[414,541],[393,1091,449],{"className":1092},[414,415,541],[393,1094,1096],{"className":1095},[435,541],"−",[393,1098,545],{"className":1099},[414,541],[393,1101,550],{"className":1102},[549],[393,1104,1106],{"className":1105},[521],[393,1107,1110],{"className":1108,"style":1109},[525],"height:0.2083em;",[393,1111],{},[393,1113],{"className":1114,"style":431},[430],[393,1116,838],{"className":1117},[435],[393,1119],{"className":1120,"style":431},[430],[393,1122,1124,1127,1173,1176],{"className":1123},[405],[393,1125],{"className":1126,"style":410},[409],[393,1128,1130,1133],{"className":1129},[414],[393,1131,794],{"className":1132},[414],[393,1134,1136],{"className":1135},[512],[393,1137,1139,1165],{"className":1138},[516,517],[393,1140,1142,1162],{"className":1141},[521],[393,1143,1145],{"className":1144,"style":526},[525],[393,1146,1147,1150],{"style":529},[393,1148],{"className":1149,"style":534},[533],[393,1151,1153],{"className":1152},[538,539,540,541],[393,1154,1156,1159],{"className":1155},[414,541],[393,1157,880],{"className":1158},[414,541],[393,1160,449],{"className":1161},[414,415,541],[393,1163,550],{"className":1164},[549],[393,1166,1168],{"className":1167},[521],[393,1169,1171],{"className":1170,"style":557},[525],[393,1172],{},[393,1174,454],{"className":1175},[453],[393,1177,1179],{"className":1178},[414],".",[381,1181,1182,1183,1186,1187,1190,1191,1233,1234,1252,1253],{},"We must decide whether some assignment of true\u002Ffalse to the variables makes\n",[461,1184,1185],{},"every"," clause true at once, and if so, produce one. Allowing ",[388,1188,1189],{},"three"," literals\nper clause gives 3-SAT, which is NP-complete, the canonical hard problem we will\nmeet in the intractability module. The jump from two literals to three is the\njump from ",[393,1192,1194],{"className":1193},[396],[393,1195,1197,1221],{"className":1196,"ariaHidden":401},[400],[393,1198,1200,1203,1206,1209,1212,1215,1218],{"className":1199},[405],[393,1201],{"className":1202,"style":410},[409],[393,1204,417],{"className":1205,"style":416},[414,415],[393,1207,422],{"className":1208},[421],[393,1210,426],{"className":1211},[414,415],[393,1213],{"className":1214,"style":431},[430],[393,1216,436],{"className":1217},[435],[393,1219],{"className":1220,"style":431},[430],[393,1222,1224,1227,1230],{"className":1223},[405],[393,1225],{"className":1226,"style":410},[409],[393,1228,449],{"className":1229},[414,415],[393,1231,454],{"className":1232},[453]," to (as far as anyone knows) exponential. 2-SAT sits firmly in\n",[393,1235,1237],{"className":1236},[396],[393,1238,1240],{"className":1239,"ariaHidden":401},[400],[393,1241,1243,1247],{"className":1242},[405],[393,1244],{"className":1245,"style":1246},[409],"height:0.6944em;",[393,1248,1251],{"className":1249},[414,1250],"mathsf","P",", and the reason is entirely graph-theoretic.",[1254,1255,1256],"sup",{},[385,1257,545],{"href":1258,"ariaDescribedBy":1259,"dataFootnoteRef":376,"id":1261},"#user-content-fn-skiena-sat",[1260],"footnote-label","user-content-fnref-skiena-sat",[1263,1264,1266],"h2",{"id":1265},"reading-a-clause-as-two-implications","Reading a clause as two implications",[381,1268,1269,1270,1310,1311,1326,1327,1342,1343,1358,1359,1374,1375,1378,1379,1394,1395,1410],{},"The key observation is that a two-literal disjunction is logically the same as a\npair of implications. The clause ",[393,1271,1273],{"className":1272},[396],[393,1274,1276,1297],{"className":1275,"ariaHidden":401},[400],[393,1277,1279,1282,1285,1288,1291,1294],{"className":1278},[405],[393,1280],{"className":1281,"style":410},[409],[393,1283,422],{"className":1284},[421],[393,1286,385],{"className":1287},[414,415],[393,1289],{"className":1290,"style":431},[430],[393,1292,838],{"className":1293},[435],[393,1295],{"className":1296,"style":431},[430],[393,1298,1300,1303,1307],{"className":1299},[405],[393,1301],{"className":1302,"style":410},[409],[393,1304,1306],{"className":1305},[414,415],"b",[393,1308,454],{"className":1309},[453]," asserts that at least one of ",[393,1312,1314],{"className":1313},[396],[393,1315,1317],{"className":1316,"ariaHidden":401},[400],[393,1318,1320,1323],{"className":1319},[405],[393,1321],{"className":1322,"style":484},[409],[393,1324,385],{"className":1325},[414,415],",\n",[393,1328,1330],{"className":1329},[396],[393,1331,1333],{"className":1332,"ariaHidden":401},[400],[393,1334,1336,1339],{"className":1335},[405],[393,1337],{"className":1338,"style":1246},[409],[393,1340,1306],{"className":1341},[414,415]," is true. So if ",[393,1344,1346],{"className":1345},[396],[393,1347,1349],{"className":1348,"ariaHidden":401},[400],[393,1350,1352,1355],{"className":1351},[405],[393,1353],{"className":1354,"style":484},[409],[393,1356,385],{"className":1357},[414,415]," happens to be false, ",[393,1360,1362],{"className":1361},[396],[393,1363,1365],{"className":1364,"ariaHidden":401},[400],[393,1366,1368,1371],{"className":1367},[405],[393,1369],{"className":1370,"style":1246},[409],[393,1372,1306],{"className":1373},[414,415]," is ",[461,1376,1377],{},"forced"," true; and symmetrically\nif ",[393,1380,1382],{"className":1381},[396],[393,1383,1385],{"className":1384,"ariaHidden":401},[400],[393,1386,1388,1391],{"className":1387},[405],[393,1389],{"className":1390,"style":1246},[409],[393,1392,1306],{"className":1393},[414,415]," is false, ",[393,1396,1398],{"className":1397},[396],[393,1399,1401],{"className":1400,"ariaHidden":401},[400],[393,1402,1404,1407],{"className":1403},[405],[393,1405],{"className":1406,"style":484},[409],[393,1408,385],{"className":1409},[414,415]," is forced. In symbols,",[393,1412,1414],{"className":1413},[749],[393,1415,1417],{"className":1416},[396],[393,1418,1420,1441,1469,1494,1521,1545],{"className":1419,"ariaHidden":401},[400],[393,1421,1423,1426,1429,1432,1435,1438],{"className":1422},[405],[393,1424],{"className":1425,"style":410},[409],[393,1427,422],{"className":1428},[421],[393,1430,385],{"className":1431},[414,415],[393,1433],{"className":1434,"style":431},[430],[393,1436,838],{"className":1437},[435],[393,1439],{"className":1440,"style":431},[430],[393,1442,1444,1447,1450,1453,1456,1459,1463,1466],{"className":1443},[405],[393,1445],{"className":1446,"style":410},[409],[393,1448,1306],{"className":1449},[414,415],[393,1451,454],{"className":1452},[453],[393,1454],{"className":1455,"style":770},[430],[393,1457],{"className":1458,"style":770},[430],[393,1460,1462],{"className":1461},[774],"≡",[393,1464],{"className":1465,"style":770},[430],[393,1467],{"className":1468,"style":770},[430],[393,1470,1472,1475,1478,1481,1484,1487,1491],{"className":1471},[405],[393,1473],{"className":1474,"style":410},[409],[393,1476,422],{"className":1477},[421],[393,1479,704],{"className":1480},[414],[393,1482,385],{"className":1483},[414,415],[393,1485],{"className":1486,"style":770},[430],[393,1488,1490],{"className":1489},[774],"⇒",[393,1492],{"className":1493,"style":770},[430],[393,1495,1497,1500,1503,1506,1509,1512,1515,1518],{"className":1496},[405],[393,1498],{"className":1499,"style":410},[409],[393,1501,1306],{"className":1502},[414,415],[393,1504,454],{"className":1505},[453],[393,1507],{"className":1508,"style":770},[430],[393,1510],{"className":1511,"style":431},[430],[393,1513,901],{"className":1514},[435],[393,1516],{"className":1517,"style":770},[430],[393,1519],{"className":1520,"style":431},[430],[393,1522,1524,1527,1530,1533,1536,1539,1542],{"className":1523},[405],[393,1525],{"className":1526,"style":410},[409],[393,1528,422],{"className":1529},[421],[393,1531,704],{"className":1532},[414],[393,1534,1306],{"className":1535},[414,415],[393,1537],{"className":1538,"style":770},[430],[393,1540,1490],{"className":1541},[774],[393,1543],{"className":1544,"style":770},[430],[393,1546,1548,1551,1554,1557],{"className":1547},[405],[393,1549],{"className":1550,"style":410},[409],[393,1552,385],{"className":1553},[414,415],[393,1555,454],{"className":1556},[453],[393,1558,1179],{"className":1559},[414],[381,1561,1562,1563,1566,1567,1583,1584,1603,1604,1656,1657,1712,1713,1752,1753,1768],{},"This rewriting is the whole idea. Build a directed ",[388,1564,1565],{},"implication graph"," ",[393,1568,1570],{"className":1569},[396],[393,1571,1573],{"className":1572,"ariaHidden":401},[400],[393,1574,1576,1579],{"className":1575},[405],[393,1577],{"className":1578,"style":762},[409],[393,1580,1582],{"className":1581},[414,415],"G"," on\n",[393,1585,1587],{"className":1586},[396],[393,1588,1590],{"className":1589,"ariaHidden":401},[400],[393,1591,1593,1597,1600],{"className":1592},[405],[393,1594],{"className":1595,"style":1596},[409],"height:0.6444em;",[393,1598,880],{"className":1599},[414],[393,1601,426],{"className":1602},[414,415]," vertices, one for each literal ",[393,1605,1607],{"className":1606},[396],[393,1608,1610],{"className":1609,"ariaHidden":401},[400],[393,1611,1613,1616],{"className":1612},[405],[393,1614],{"className":1615,"style":645},[409],[393,1617,1619,1622],{"className":1618},[414],[393,1620,508],{"className":1621},[414,415],[393,1623,1625],{"className":1624},[512],[393,1626,1628,1648],{"className":1627},[516,517],[393,1629,1631,1645],{"className":1630},[521],[393,1632,1634],{"className":1633,"style":664},[525],[393,1635,1636,1639],{"style":529},[393,1637],{"className":1638,"style":534},[533],[393,1640,1642],{"className":1641},[538,539,540,541],[393,1643,676],{"className":1644},[414,415,541],[393,1646,550],{"className":1647},[549],[393,1649,1651],{"className":1650},[521],[393,1652,1654],{"className":1653,"style":557},[525],[393,1655],{}," and one for its negation ",[393,1658,1660],{"className":1659},[396],[393,1661,1663],{"className":1662,"ariaHidden":401},[400],[393,1664,1666,1669,1672],{"className":1665},[405],[393,1667],{"className":1668,"style":645},[409],[393,1670,704],{"className":1671},[414],[393,1673,1675,1678],{"className":1674},[414],[393,1676,508],{"className":1677},[414,415],[393,1679,1681],{"className":1680},[512],[393,1682,1684,1704],{"className":1683},[516,517],[393,1685,1687,1701],{"className":1686},[521],[393,1688,1690],{"className":1689,"style":664},[525],[393,1691,1692,1695],{"style":529},[393,1693],{"className":1694,"style":534},[533],[393,1696,1698],{"className":1697},[538,539,540,541],[393,1699,676],{"className":1700},[414,415,541],[393,1702,550],{"className":1703},[549],[393,1705,1707],{"className":1706},[521],[393,1708,1710],{"className":1709,"style":557},[525],[393,1711],{},".\nFor every clause ",[393,1714,1716],{"className":1715},[396],[393,1717,1719,1740],{"className":1718,"ariaHidden":401},[400],[393,1720,1722,1725,1728,1731,1734,1737],{"className":1721},[405],[393,1723],{"className":1724,"style":410},[409],[393,1726,422],{"className":1727},[421],[393,1729,385],{"className":1730},[414,415],[393,1732],{"className":1733,"style":431},[430],[393,1735,838],{"className":1736},[435],[393,1738],{"className":1739,"style":431},[430],[393,1741,1743,1746,1749],{"className":1742},[405],[393,1744],{"className":1745,"style":410},[409],[393,1747,1306],{"className":1748},[414,415],[393,1750,454],{"className":1751},[453]," in ",[393,1754,1756],{"className":1755},[396],[393,1757,1759],{"className":1758,"ariaHidden":401},[400],[393,1760,1762,1765],{"className":1761},[405],[393,1763],{"className":1764,"style":762},[409],[393,1766,766],{"className":1767},[414],", add the two edges",[393,1770,1772],{"className":1771},[749],[393,1773,1775],{"className":1774},[396],[393,1776,1778,1801,1841],{"className":1777,"ariaHidden":401},[400],[393,1779,1781,1785,1788,1791,1794,1798],{"className":1780},[405],[393,1782],{"className":1783,"style":1784},[409],"height:0.522em;vertical-align:-0.011em;",[393,1786,704],{"className":1787},[414],[393,1789,385],{"className":1790},[414,415],[393,1792],{"className":1793,"style":770},[430],[393,1795,1797],{"className":1796},[774],"⟶",[393,1799],{"className":1800,"style":770},[430],[393,1802,1804,1808,1811,1815,1823,1826,1829,1832,1835,1838],{"className":1803},[405],[393,1805],{"className":1806,"style":1807},[409],"height:0.7054em;vertical-align:-0.011em;",[393,1809,1306],{"className":1810},[414,415],[393,1812],{"className":1813,"style":1814},[430],"margin-right:2em;",[393,1816,1819],{"className":1817},[414,1818],"text",[393,1820,1822],{"className":1821},[414],"and",[393,1824],{"className":1825,"style":1814},[430],[393,1827,704],{"className":1828},[414],[393,1830,1306],{"className":1831},[414,415],[393,1833],{"className":1834,"style":770},[430],[393,1836,1797],{"className":1837},[774],[393,1839],{"className":1840,"style":770},[430],[393,1842,1844,1847,1850],{"className":1843},[405],[393,1845],{"className":1846,"style":484},[409],[393,1848,385],{"className":1849},[414,415],[393,1851,1179],{"className":1852},[414],[381,1854,1855,1856,1893,1894,1930,1931,1934,1935,1566,1938,1975,1976,1991,1992,2007,2008,2023,2024,2027,2028,2031,2032,2119,2120,2153,2154,2193],{},"An edge ",[393,1857,1859],{"className":1858},[396],[393,1860,1862,1882],{"className":1861,"ariaHidden":401},[400],[393,1863,1865,1868,1872,1875,1879],{"className":1864},[405],[393,1866],{"className":1867,"style":484},[409],[393,1869,1871],{"className":1870},[414,415],"u",[393,1873],{"className":1874,"style":770},[430],[393,1876,1878],{"className":1877},[774],"→",[393,1880],{"className":1881,"style":770},[430],[393,1883,1885,1888],{"className":1884},[405],[393,1886],{"className":1887,"style":484},[409],[393,1889,1892],{"className":1890,"style":1891},[414,415],"margin-right:0.0359em;","v"," reads ",[1895,1896,1897,1898,1913,1914,1929],"q",{},"if ",[393,1899,1901],{"className":1900},[396],[393,1902,1904],{"className":1903,"ariaHidden":401},[400],[393,1905,1907,1910],{"className":1906},[405],[393,1908],{"className":1909,"style":484},[409],[393,1911,1871],{"className":1912},[414,415]," is true, then ",[393,1915,1917],{"className":1916},[396],[393,1918,1920],{"className":1919,"ariaHidden":401},[400],[393,1921,1923,1926],{"className":1922},[405],[393,1924],{"className":1925,"style":484},[409],[393,1927,1892],{"className":1928,"style":1891},[414,415]," must be true."," Because\nimplication is ",[388,1932,1933],{},"transitive",", a directed ",[461,1936,1937],{},"path",[393,1939,1941],{"className":1940},[396],[393,1942,1944,1964],{"className":1943,"ariaHidden":401},[400],[393,1945,1947,1950,1953,1956,1961],{"className":1946},[405],[393,1948],{"className":1949,"style":484},[409],[393,1951,1871],{"className":1952},[414,415],[393,1954],{"className":1955,"style":770},[430],[393,1957,1960],{"className":1958},[774,1959],"amsrm","⇝",[393,1962],{"className":1963,"style":770},[430],[393,1965,1967,1970],{"className":1966},[405],[393,1968],{"className":1969,"style":484},[409],[393,1971,1974],{"className":1972,"style":1973},[414,415],"margin-right:0.0269em;","w"," means that\ncommitting to ",[393,1977,1979],{"className":1978},[396],[393,1980,1982],{"className":1981,"ariaHidden":401},[400],[393,1983,1985,1988],{"className":1984},[405],[393,1986],{"className":1987,"style":484},[409],[393,1989,1871],{"className":1990},[414,415]," forces ",[393,1993,1995],{"className":1994},[396],[393,1996,1998],{"className":1997,"ariaHidden":401},[400],[393,1999,2001,2004],{"className":2000},[405],[393,2002],{"className":2003,"style":484},[409],[393,2005,1974],{"className":2006,"style":1973},[414,415],": reachability in ",[393,2009,2011],{"className":2010},[396],[393,2012,2014],{"className":2013,"ariaHidden":401},[400],[393,2015,2017,2020],{"className":2016},[405],[393,2018],{"className":2019,"style":762},[409],[393,2021,1582],{"className":2022},[414,415]," is exactly the relation\n",[1895,2025,2026],{},"forces."," The graph is ",[388,2029,2030],{},"skew-symmetric"," by construction. The contrapositive\n",[393,2033,2035],{"className":2034},[396],[393,2036,2038,2062,2083,2107],{"className":2037,"ariaHidden":401},[400],[393,2039,2041,2044,2047,2050,2053,2056,2059],{"className":2040},[405],[393,2042],{"className":2043,"style":410},[409],[393,2045,422],{"className":2046},[421],[393,2048,704],{"className":2049},[414],[393,2051,385],{"className":2052},[414,415],[393,2054],{"className":2055,"style":770},[430],[393,2057,1490],{"className":2058},[774],[393,2060],{"className":2061,"style":770},[430],[393,2063,2065,2068,2071,2074,2077,2080],{"className":2064},[405],[393,2066],{"className":2067,"style":410},[409],[393,2069,1306],{"className":2070},[414,415],[393,2072,454],{"className":2073},[453],[393,2075],{"className":2076,"style":770},[430],[393,2078,1462],{"className":2079},[774],[393,2081],{"className":2082,"style":770},[430],[393,2084,2086,2089,2092,2095,2098,2101,2104],{"className":2085},[405],[393,2087],{"className":2088,"style":410},[409],[393,2090,422],{"className":2091},[421],[393,2093,704],{"className":2094},[414],[393,2096,1306],{"className":2097},[414,415],[393,2099],{"className":2100,"style":770},[430],[393,2102,1490],{"className":2103},[774],[393,2105],{"className":2106,"style":770},[430],[393,2108,2110,2113,2116],{"className":2109},[405],[393,2111],{"className":2112,"style":410},[409],[393,2114,385],{"className":2115},[414,415],[393,2117,454],{"className":2118},[453]," means every edge\n",[393,2121,2123],{"className":2122},[396],[393,2124,2126,2144],{"className":2125,"ariaHidden":401},[400],[393,2127,2129,2132,2135,2138,2141],{"className":2128},[405],[393,2130],{"className":2131,"style":484},[409],[393,2133,1871],{"className":2134},[414,415],[393,2136],{"className":2137,"style":770},[430],[393,2139,1878],{"className":2140},[774],[393,2142],{"className":2143,"style":770},[430],[393,2145,2147,2150],{"className":2146},[405],[393,2148],{"className":2149,"style":484},[409],[393,2151,1892],{"className":2152,"style":1891},[414,415]," has a mirror edge ",[393,2155,2157],{"className":2156},[396],[393,2158,2160,2181],{"className":2159,"ariaHidden":401},[400],[393,2161,2163,2166,2169,2172,2175,2178],{"className":2162},[405],[393,2164],{"className":2165,"style":484},[409],[393,2167,704],{"className":2168},[414],[393,2170,1892],{"className":2171,"style":1891},[414,415],[393,2173],{"className":2174,"style":770},[430],[393,2176,1878],{"className":2177},[774],[393,2179],{"className":2180,"style":770},[430],[393,2182,2184,2187,2190],{"className":2183},[405],[393,2185],{"className":2186,"style":484},[409],[393,2188,704],{"className":2189},[414],[393,2191,1871],{"className":2192},[414,415],", and this symmetry is what makes\nthe assignment step work.",[2195,2196,2200,2351],"figure",{"className":2197},[2198,2199],"tikz-figure","tikz-diagram-rendered",[2201,2202,2207],"svg",{"xmlns":2203,"width":2204,"height":2205,"viewBox":2206},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","150.202","165.450","-75 -75 112.651 124.088",[2208,2209,2212,2216,2225,2228,2235,2238,2254,2257,2271,2280,2289,2312],"g",{"stroke":2210,"style":2211},"currentColor","stroke-miterlimit:10;stroke-width:.4",[1937,2213],{"fill":2214,"d":2215},"none","M-39.796-45.24c0-7.071-5.732-12.804-12.804-12.804-7.071 0-12.803 5.733-12.803 12.804s5.732 12.804 12.803 12.804 12.804-5.733 12.804-12.804Zm-12.804 0",[2208,2217,2219],{"transform":2218},"translate(-2.661 -26.515)",[1937,2220],{"d":2221,"fill":2210,"stroke":2210,"className":2222,"style":2224},"M-51.602-17.785Q-51.602-18.070-51.526-18.389Q-51.449-18.707-51.334-19.008Q-51.220-19.309-51.062-19.714Q-50.943-19.999-50.943-20.232Q-50.943-20.351-50.989-20.428Q-51.036-20.505-51.141-20.505Q-51.493-20.505-51.728-20.144Q-51.963-19.784-52.068-19.353Q-52.086-19.270-52.161-19.270L-52.266-19.270Q-52.314-19.270-52.336-19.309Q-52.358-19.349-52.358-19.389Q-52.270-19.731-52.110-20.037Q-51.950-20.342-51.699-20.553Q-51.449-20.764-51.123-20.764Q-50.785-20.764-50.554-20.555Q-50.324-20.347-50.324-20.008Q-50.324-19.828-50.385-19.674Q-50.416-19.586-50.568-19.191Q-50.719-18.795-50.789-18.565Q-50.860-18.334-50.906-18.110Q-50.952-17.886-50.952-17.662Q-50.952-17.363-50.822-17.156Q-50.693-16.950-50.412-16.950Q-49.818-16.950-49.388-17.662Q-49.388-17.688-49.370-17.776L-48.728-20.351Q-48.693-20.492-48.579-20.579Q-48.465-20.667-48.324-20.667Q-48.210-20.667-48.129-20.590Q-48.047-20.514-48.047-20.395Q-48.047-20.342-48.056-20.316L-48.693-17.741Q-48.746-17.538-48.746-17.345Q-48.746-16.950-48.487-16.950Q-48.201-16.950-48.063-17.284Q-47.924-17.618-47.810-18.101Q-47.801-18.132-47.777-18.156Q-47.753-18.180-47.722-18.180L-47.612-18.180Q-47.568-18.180-47.546-18.147Q-47.524-18.114-47.524-18.066Q-47.639-17.635-47.729-17.382Q-47.819-17.130-48.012-16.908Q-48.205-16.686-48.504-16.686Q-48.790-16.686-49.025-16.835Q-49.260-16.985-49.361-17.253Q-49.572-16.994-49.840-16.840Q-50.108-16.686-50.420-16.686Q-50.785-16.686-51.049-16.813Q-51.312-16.941-51.457-17.187Q-51.602-17.433-51.602-17.785",[2223],"tikz-text","stroke-width:0.270",[1937,2226],{"fill":2214,"d":2227},"M34.181-45.24c0-7.071-5.732-12.804-12.803-12.804S8.574-52.31 8.574-45.24s5.732 12.804 12.804 12.804c7.071 0 12.803-5.733 12.803-12.804Zm-12.803 0",[2208,2229,2231],{"transform":2230},"translate(71.57 -26.515)",[1937,2232],{"d":2233,"fill":2210,"stroke":2210,"className":2234,"style":2224},"M-51.594-17.833Q-51.594-18.031-51.541-18.288Q-51.488-18.545-51.427-18.738Q-51.365-18.932-51.255-19.215Q-51.145-19.498-51.062-19.714Q-50.943-19.999-50.943-20.232Q-50.943-20.351-50.989-20.428Q-51.036-20.505-51.141-20.505Q-51.493-20.505-51.728-20.144Q-51.963-19.784-52.068-19.353Q-52.086-19.270-52.161-19.270L-52.266-19.270Q-52.314-19.270-52.336-19.309Q-52.358-19.349-52.358-19.389Q-52.270-19.731-52.110-20.037Q-51.950-20.342-51.699-20.553Q-51.449-20.764-51.123-20.764Q-50.785-20.764-50.554-20.558Q-50.324-20.351-50.324-20.008Q-50.324-19.828-50.385-19.674Q-50.477-19.428-50.594-19.125Q-50.710-18.822-50.781-18.595Q-50.851-18.369-50.897-18.149Q-50.943-17.930-50.943-17.714Q-50.943-17.371-50.778-17.161Q-50.614-16.950-50.280-16.950Q-49.625-16.950-49.146-17.930Q-49.001-18.211-48.856-18.628Q-48.711-19.046-48.711-19.305Q-48.711-19.560-48.790-19.703Q-48.869-19.846-49.021-20.026Q-49.172-20.206-49.172-20.298Q-49.172-20.478-49.025-20.626Q-48.878-20.773-48.693-20.773Q-48.469-20.773-48.370-20.566Q-48.271-20.360-48.271-20.109Q-48.271-19.687-48.412-19.110Q-48.553-18.532-48.821-17.971Q-49.089-17.411-49.465-17.048Q-49.840-16.686-50.297-16.686Q-50.882-16.686-51.238-16.972Q-51.594-17.257-51.594-17.833",[2223],[1937,2236],{"fill":2214,"d":2237},"M-39.796.285c0-7.072-5.732-12.804-12.804-12.804-7.071 0-12.803 5.732-12.803 12.804 0 7.071 5.732 12.803 12.803 12.803S-39.796 7.356-39.796.285Zm-12.804 0",[2208,2239,2241,2248],{"stroke":2214,"fontSize":2240},"9",[2208,2242,2244],{"transform":2243},"translate(-5.491 19.01)",[1937,2245],{"d":2246,"fill":2210,"stroke":2210,"className":2247,"style":2224},"M-47.344-19.621L-51.906-19.621Q-51.989-19.635-52.038-19.692Q-52.086-19.749-52.086-19.819Q-52.086-19.885-52.035-19.940Q-51.985-19.995-51.906-20.008L-47.129-20.008Q-46.993-20.008-46.957-19.837L-46.957-17.749Q-46.988-17.578-47.146-17.578Q-47.217-17.578-47.274-17.626Q-47.331-17.675-47.344-17.749",[2223],[2208,2249,2250],{"transform":2243},[1937,2251],{"d":2252,"fill":2210,"stroke":2210,"className":2253,"style":2224},"M-45.427-17.833Q-45.427-18.031-45.374-18.288Q-45.321-18.545-45.260-18.738Q-45.198-18.932-45.088-19.215Q-44.978-19.498-44.895-19.714Q-44.776-19.999-44.776-20.232Q-44.776-20.351-44.822-20.428Q-44.869-20.505-44.974-20.505Q-45.326-20.505-45.561-20.144Q-45.796-19.784-45.901-19.353Q-45.919-19.270-45.994-19.270L-46.099-19.270Q-46.147-19.270-46.169-19.309Q-46.191-19.349-46.191-19.389Q-46.103-19.731-45.943-20.037Q-45.783-20.342-45.532-20.553Q-45.282-20.764-44.956-20.764Q-44.618-20.764-44.387-20.558Q-44.157-20.351-44.157-20.008Q-44.157-19.828-44.218-19.674Q-44.310-19.428-44.427-19.125Q-44.543-18.822-44.614-18.595Q-44.684-18.369-44.730-18.149Q-44.776-17.930-44.776-17.714Q-44.776-17.371-44.611-17.161Q-44.447-16.950-44.113-16.950Q-43.458-16.950-42.979-17.930Q-42.834-18.211-42.689-18.628Q-42.544-19.046-42.544-19.305Q-42.544-19.560-42.623-19.703Q-42.702-19.846-42.854-20.026Q-43.005-20.206-43.005-20.298Q-43.005-20.478-42.858-20.626Q-42.711-20.773-42.526-20.773Q-42.302-20.773-42.203-20.566Q-42.104-20.360-42.104-20.109Q-42.104-19.687-42.245-19.110Q-42.386-18.532-42.654-17.971Q-42.922-17.411-43.298-17.048Q-43.673-16.686-44.130-16.686Q-44.715-16.686-45.071-16.972Q-45.427-17.257-45.427-17.833",[2223],[1937,2255],{"fill":2214,"d":2256},"M34.181.285c0-7.072-5.732-12.804-12.803-12.804S8.574-6.787 8.574.285c0 7.071 5.732 12.803 12.804 12.803 7.071 0 12.803-5.732 12.803-12.803Zm-12.803 0",[2208,2258,2259,2265],{"stroke":2214,"fontSize":2240},[2208,2260,2262],{"transform":2261},"translate(68.233 19.01)",[1937,2263],{"d":2246,"fill":2210,"stroke":2210,"className":2264,"style":2224},[2223],[2208,2266,2267],{"transform":2261},[1937,2268],{"d":2269,"fill":2210,"stroke":2210,"className":2270,"style":2224},"M-45.435-17.785Q-45.435-18.070-45.359-18.389Q-45.282-18.707-45.167-19.008Q-45.053-19.309-44.895-19.714Q-44.776-19.999-44.776-20.232Q-44.776-20.351-44.822-20.428Q-44.869-20.505-44.974-20.505Q-45.326-20.505-45.561-20.144Q-45.796-19.784-45.901-19.353Q-45.919-19.270-45.994-19.270L-46.099-19.270Q-46.147-19.270-46.169-19.309Q-46.191-19.349-46.191-19.389Q-46.103-19.731-45.943-20.037Q-45.783-20.342-45.532-20.553Q-45.282-20.764-44.956-20.764Q-44.618-20.764-44.387-20.555Q-44.157-20.347-44.157-20.008Q-44.157-19.828-44.218-19.674Q-44.249-19.586-44.401-19.191Q-44.552-18.795-44.622-18.565Q-44.693-18.334-44.739-18.110Q-44.785-17.886-44.785-17.662Q-44.785-17.363-44.655-17.156Q-44.526-16.950-44.245-16.950Q-43.651-16.950-43.221-17.662Q-43.221-17.688-43.203-17.776L-42.561-20.351Q-42.526-20.492-42.412-20.579Q-42.298-20.667-42.157-20.667Q-42.043-20.667-41.962-20.590Q-41.880-20.514-41.880-20.395Q-41.880-20.342-41.889-20.316L-42.526-17.741Q-42.579-17.538-42.579-17.345Q-42.579-16.950-42.320-16.950Q-42.034-16.950-41.896-17.284Q-41.757-17.618-41.643-18.101Q-41.634-18.132-41.610-18.156Q-41.586-18.180-41.555-18.180L-41.445-18.180Q-41.401-18.180-41.379-18.147Q-41.357-18.114-41.357-18.066Q-41.472-17.635-41.562-17.382Q-41.652-17.130-41.845-16.908Q-42.038-16.686-42.337-16.686Q-42.623-16.686-42.858-16.835Q-43.093-16.985-43.194-17.253Q-43.405-16.994-43.673-16.840Q-43.941-16.686-44.253-16.686Q-44.618-16.686-44.882-16.813Q-45.145-16.941-45.290-17.187Q-45.435-17.433-45.435-17.785",[2223],[2208,2272,2274,2277],{"style":2273},"stroke-width:.8",[1937,2275],{"fill":2214,"d":2276},"M-39.596-45.24h45.37",[1937,2278],{"stroke":2214,"d":2279},"m8.374-45.24-4.16-2.08 1.56 2.08-1.56 2.08",[2208,2281,2283,2286],{"fill":2282,"stroke":2282,"style":2273},"var(--tk-accent)",[1937,2284],{"fill":2214,"d":2285},"M-39.596.285h45.37",[1937,2287],{"stroke":2214,"d":2288},"m8.374.285-4.16-2.08 1.56 2.08-1.56 2.08",[2208,2290,2292,2300,2306],{"stroke":2214,"fontSize":2291},"8",[2208,2293,2295],{"transform":2294},"translate(25.704 -40.957)",[1937,2296],{"d":2297,"fill":2210,"stroke":2210,"className":2298,"style":2299},"M-51.670-17.709Q-51.670-17.959-51.596-18.246Q-51.522-18.533-51.385-18.885Q-51.248-19.236-51.186-19.404Q-51.096-19.627-51.096-19.810Q-51.096-20.060-51.264-20.060Q-51.580-20.060-51.789-19.754Q-51.998-19.447-52.104-19.060Q-52.116-18.986-52.186-18.986L-52.288-18.986Q-52.323-18.986-52.350-19.021Q-52.377-19.057-52.377-19.084L-52.377-19.115Q-52.252-19.576-51.955-19.945Q-51.659-20.314-51.248-20.314Q-51.053-20.314-50.879-20.230Q-50.705-20.146-50.604-19.994Q-50.502-19.842-50.502-19.635Q-50.502-19.482-50.561-19.346Q-50.651-19.115-50.752-18.849Q-50.854-18.584-50.911-18.402Q-50.967-18.221-51.012-18.006Q-51.057-17.791-51.057-17.596Q-51.057-17.322-50.934-17.142Q-50.811-16.963-50.553-16.963Q-50.284-16.963-49.975-17.191Q-49.666-17.420-49.616-17.674L-49.049-19.947Q-49.010-20.072-48.907-20.154Q-48.803-20.236-48.678-20.236Q-48.569-20.236-48.489-20.162Q-48.409-20.088-48.409-19.978Q-48.409-19.955-48.424-19.892L-48.991-17.619Q-48.995-17.580-49.008-17.519Q-49.022-17.459-49.028-17.408Q-49.034-17.357-49.034-17.322Q-49.034-16.963-48.784-16.963Q-48.643-16.963-48.541-17.070Q-48.440-17.178-48.375-17.332Q-48.311-17.486-48.262-17.676Q-48.213-17.865-48.194-17.963Q-48.159-18.033-48.104-18.033L-47.998-18.033Q-47.959-18.033-47.936-18.004Q-47.913-17.974-47.913-17.939Q-47.913-17.924-47.920-17.908Q-47.991-17.611-48.088-17.353Q-48.186-17.096-48.362-16.902Q-48.538-16.709-48.799-16.709Q-49.065-16.709-49.288-16.842Q-49.510-16.974-49.600-17.213Q-49.788-16.986-50.043-16.848Q-50.299-16.709-50.569-16.709Q-50.893-16.709-51.143-16.818Q-51.393-16.928-51.532-17.152Q-51.670-17.377-51.670-17.709",[2223],"stroke-width:0.240",[2208,2301,2302],{"transform":2294},[1937,2303],{"d":2304,"fill":2210,"stroke":2210,"className":2305,"style":2299},"M-38.325-18.603L-44.669-18.603Q-44.743-18.603-44.794-18.660Q-44.844-18.717-44.844-18.787Q-44.844-18.857-44.797-18.914Q-44.751-18.971-44.669-18.971L-38.325-18.971Q-38.778-19.299-39.075-19.766Q-39.372-20.232-39.477-20.771Q-39.477-20.873-39.380-20.900L-39.212-20.900Q-39.130-20.881-39.110-20.795Q-38.981-20.119-38.501-19.601Q-38.020-19.084-37.356-18.892Q-37.294-18.869-37.294-18.787Q-37.294-18.705-37.356-18.682Q-38.020-18.494-38.501-17.974Q-38.981-17.455-39.110-16.779Q-39.130-16.693-39.212-16.674L-39.380-16.674Q-39.477-16.701-39.477-16.803Q-39.403-17.170-39.245-17.502Q-39.087-17.834-38.854-18.111Q-38.622-18.389-38.325-18.603",[2223],[2208,2307,2308],{"transform":2294},[1937,2309],{"d":2310,"fill":2210,"stroke":2210,"className":2311,"style":2299},"M-33.519-17.740Q-33.519-17.912-33.476-18.123Q-33.433-18.334-33.372-18.521Q-33.311-18.709-33.214-18.961Q-33.116-19.213-33.042-19.404Q-32.952-19.627-32.952-19.810Q-32.952-20.060-33.120-20.060Q-33.436-20.060-33.645-19.754Q-33.854-19.447-33.960-19.060Q-33.972-18.986-34.042-18.986L-34.144-18.986Q-34.179-18.986-34.206-19.021Q-34.233-19.057-34.233-19.084L-34.233-19.115Q-34.108-19.576-33.811-19.945Q-33.515-20.314-33.104-20.314Q-32.909-20.314-32.735-20.230Q-32.561-20.146-32.460-19.994Q-32.358-19.842-32.358-19.635Q-32.358-19.482-32.417-19.346Q-32.511-19.103-32.636-18.775Q-32.761-18.447-32.833-18.168Q-32.905-17.889-32.905-17.635Q-32.905-17.326-32.751-17.144Q-32.597-16.963-32.296-16.963Q-31.901-16.963-31.519-17.435Q-31.390-17.603-31.243-17.904Q-31.097-18.205-31.001-18.504Q-30.905-18.803-30.905-19.010Q-30.905-19.236-30.979-19.355Q-31.054-19.474-31.190-19.629Q-31.327-19.783-31.327-19.885Q-31.327-20.057-31.186-20.189Q-31.046-20.322-30.890-20.322Q-30.675-20.322-30.581-20.131Q-30.487-19.939-30.487-19.709Q-30.487-19.205-30.716-18.484Q-30.944-17.764-31.364-17.236Q-31.784-16.709-32.311-16.709Q-32.565-16.709-32.786-16.767Q-33.007-16.826-33.169-16.951Q-33.331-17.076-33.425-17.277Q-33.519-17.478-33.519-17.740",[2223],[2208,2313,2314,2321,2327,2333,2339,2345],{"fill":2282,"stroke":2214,"fontSize":2291},[2208,2315,2317],{"transform":2316},"translate(6.804 33.98)",[1937,2318],{"d":2319,"fill":2282,"stroke":2282,"className":2320,"style":2299},"M-50.432-16.787L-52.288-16.787L-52.288-17.084Q-52.014-17.084-51.846-17.131Q-51.678-17.178-51.678-17.346L-51.678-19.482Q-51.678-19.697-51.741-19.793Q-51.803-19.889-51.922-19.910Q-52.041-19.932-52.288-19.932L-52.288-20.228L-51.096-20.314L-51.096-19.580Q-50.983-19.795-50.789-19.963Q-50.596-20.131-50.358-20.223Q-50.120-20.314-49.866-20.314Q-48.905-20.314-48.729-19.603Q-48.545-19.932-48.217-20.123Q-47.889-20.314-47.510-20.314Q-46.334-20.314-46.334-19.236L-46.334-17.346Q-46.334-17.178-46.166-17.131Q-45.998-17.084-45.729-17.084L-45.729-16.787L-47.584-16.787L-47.584-17.084Q-47.311-17.084-47.143-17.129Q-46.975-17.174-46.975-17.346L-46.975-19.221Q-46.975-19.607-47.100-19.834Q-47.225-20.060-47.577-20.060Q-47.881-20.060-48.137-19.898Q-48.393-19.736-48.541-19.467Q-48.690-19.197-48.690-18.900L-48.690-17.346Q-48.690-17.178-48.520-17.131Q-48.350-17.084-48.080-17.084L-48.080-16.787L-49.936-16.787L-49.936-17.084Q-49.663-17.084-49.495-17.131Q-49.327-17.178-49.327-17.346L-49.327-19.221Q-49.327-19.607-49.452-19.834Q-49.577-20.060-49.928-20.060Q-50.233-20.060-50.489-19.898Q-50.745-19.736-50.893-19.467Q-51.041-19.197-51.041-18.900L-51.041-17.346Q-51.041-17.178-50.871-17.131Q-50.702-17.084-50.432-17.084L-50.432-16.787M-43.424-16.787L-45.202-16.787L-45.202-17.084Q-44.928-17.084-44.760-17.131Q-44.592-17.178-44.592-17.346L-44.592-19.482Q-44.592-19.697-44.649-19.793Q-44.705-19.889-44.819-19.910Q-44.932-19.932-45.178-19.932L-45.178-20.228L-43.979-20.314L-43.979-17.346Q-43.979-17.178-43.832-17.131Q-43.686-17.084-43.424-17.084L-43.424-16.787M-44.866-21.709Q-44.866-21.900-44.731-22.031Q-44.596-22.162-44.401-22.162Q-44.280-22.162-44.176-22.099Q-44.073-22.037-44.010-21.933Q-43.948-21.830-43.948-21.709Q-43.948-21.514-44.079-21.379Q-44.209-21.244-44.401-21.244Q-44.600-21.244-44.733-21.377Q-44.866-21.510-44.866-21.709M-40.916-16.787L-42.897-16.787L-42.897-17.084Q-42.627-17.084-42.459-17.129Q-42.291-17.174-42.291-17.346L-42.291-19.482Q-42.291-19.697-42.354-19.793Q-42.416-19.889-42.534-19.910Q-42.651-19.932-42.897-19.932L-42.897-20.228L-41.729-20.314L-41.729-19.529Q-41.651-19.740-41.498-19.926Q-41.346-20.111-41.147-20.213Q-40.948-20.314-40.721-20.314Q-40.475-20.314-40.284-20.170Q-40.092-20.025-40.092-19.795Q-40.092-19.639-40.198-19.529Q-40.303-19.420-40.459-19.420Q-40.616-19.420-40.725-19.529Q-40.834-19.639-40.834-19.795Q-40.834-19.955-40.729-20.060Q-41.053-20.060-41.268-19.832Q-41.483-19.603-41.579-19.264Q-41.674-18.924-41.674-18.619L-41.674-17.346Q-41.674-17.178-41.448-17.131Q-41.221-17.084-40.916-17.084L-40.916-16.787M-37.604-16.787L-39.584-16.787L-39.584-17.084Q-39.315-17.084-39.147-17.129Q-38.979-17.174-38.979-17.346L-38.979-19.482Q-38.979-19.697-39.041-19.793Q-39.104-19.889-39.221-19.910Q-39.338-19.932-39.584-19.932L-39.584-20.228L-38.416-20.314L-38.416-19.529Q-38.338-19.740-38.186-19.926Q-38.034-20.111-37.834-20.213Q-37.635-20.314-37.409-20.314Q-37.163-20.314-36.971-20.170Q-36.780-20.025-36.780-19.795Q-36.780-19.639-36.885-19.529Q-36.991-19.420-37.147-19.420Q-37.303-19.420-37.413-19.529Q-37.522-19.639-37.522-19.795Q-37.522-19.955-37.416-20.060Q-37.741-20.060-37.955-19.832Q-38.170-19.603-38.266-19.264Q-38.362-18.924-38.362-18.619L-38.362-17.346Q-38.362-17.178-38.135-17.131Q-37.909-17.084-37.604-17.084L-37.604-16.787M-36.299-18.482Q-36.299-18.986-36.043-19.418Q-35.788-19.849-35.352-20.101Q-34.916-20.353-34.416-20.353Q-34.030-20.353-33.688-20.209Q-33.346-20.064-33.084-19.803Q-32.823-19.541-32.680-19.205Q-32.538-18.869-32.538-18.482Q-32.538-17.990-32.801-17.580Q-33.065-17.170-33.495-16.939Q-33.924-16.709-34.416-16.709Q-34.909-16.709-35.342-16.941Q-35.776-17.174-36.038-17.582Q-36.299-17.990-36.299-18.482M-34.416-16.986Q-33.959-16.986-33.707-17.209Q-33.455-17.432-33.368-17.783Q-33.280-18.135-33.280-18.580Q-33.280-19.010-33.373-19.348Q-33.467-19.685-33.721-19.892Q-33.975-20.099-34.416-20.099Q-35.065-20.099-35.309-19.683Q-35.553-19.267-35.553-18.580Q-35.553-18.135-35.465-17.783Q-35.377-17.432-35.125-17.209Q-34.873-16.986-34.416-16.986M-30.045-16.787L-32.026-16.787L-32.026-17.084Q-31.756-17.084-31.588-17.129Q-31.420-17.174-31.420-17.346L-31.420-19.482Q-31.420-19.697-31.483-19.793Q-31.545-19.889-31.663-19.910Q-31.780-19.932-32.026-19.932L-32.026-20.228L-30.858-20.314L-30.858-19.529Q-30.780-19.740-30.627-19.926Q-30.475-20.111-30.276-20.213Q-30.077-20.314-29.850-20.314Q-29.604-20.314-29.413-20.170Q-29.221-20.025-29.221-19.795Q-29.221-19.639-29.327-19.529Q-29.432-19.420-29.588-19.420Q-29.745-19.420-29.854-19.529Q-29.963-19.639-29.963-19.795Q-29.963-19.955-29.858-20.060Q-30.182-20.060-30.397-19.832Q-30.612-19.603-30.707-19.264Q-30.803-18.924-30.803-18.619L-30.803-17.346Q-30.803-17.178-30.577-17.131Q-30.350-17.084-30.045-17.084",[2223],[2208,2322,2323],{"transform":2316},[1937,2324],{"d":2325,"fill":2282,"stroke":2282,"className":2326,"style":2299},"M-21.318-19.291L-25.486-19.291Q-25.564-19.303-25.613-19.351Q-25.661-19.400-25.661-19.474Q-25.661-19.549-25.613-19.598Q-25.564-19.646-25.486-19.658L-21.118-19.658Q-20.974-19.635-20.950-19.490L-20.950-17.642Q-20.978-17.474-21.134-17.474Q-21.290-17.474-21.318-17.642",[2223],[2208,2328,2329],{"transform":2316},[1937,2330],{"d":2331,"fill":2282,"stroke":2282,"className":2332,"style":2299},"M-19.529-17.740Q-19.529-17.912-19.487-18.123Q-19.444-18.334-19.383-18.521Q-19.322-18.709-19.225-18.961Q-19.127-19.213-19.053-19.404Q-18.963-19.627-18.963-19.810Q-18.963-20.060-19.131-20.060Q-19.447-20.060-19.656-19.754Q-19.865-19.447-19.971-19.060Q-19.983-18.986-20.053-18.986L-20.154-18.986Q-20.190-18.986-20.217-19.021Q-20.244-19.057-20.244-19.084L-20.244-19.115Q-20.119-19.576-19.822-19.945Q-19.526-20.314-19.115-20.314Q-18.920-20.314-18.746-20.230Q-18.572-20.146-18.471-19.994Q-18.369-19.842-18.369-19.635Q-18.369-19.482-18.428-19.346Q-18.522-19.103-18.647-18.775Q-18.772-18.447-18.844-18.168Q-18.916-17.889-18.916-17.635Q-18.916-17.326-18.762-17.144Q-18.608-16.963-18.307-16.963Q-17.912-16.963-17.529-17.435Q-17.401-17.603-17.254-17.904Q-17.108-18.205-17.012-18.504Q-16.916-18.803-16.916-19.010Q-16.916-19.236-16.990-19.355Q-17.065-19.474-17.201-19.629Q-17.338-19.783-17.338-19.885Q-17.338-20.057-17.197-20.189Q-17.057-20.322-16.901-20.322Q-16.686-20.322-16.592-20.131Q-16.498-19.939-16.498-19.709Q-16.498-19.205-16.727-18.484Q-16.955-17.764-17.375-17.236Q-17.795-16.709-18.322-16.709Q-18.576-16.709-18.797-16.767Q-19.018-16.826-19.180-16.951Q-19.342-17.076-19.436-17.277Q-19.529-17.478-19.529-17.740",[2223],[2208,2334,2335],{"transform":2316},[1937,2336],{"d":2337,"fill":2282,"stroke":2282,"className":2338,"style":2299},"M-6.688-18.603L-13.032-18.603Q-13.106-18.603-13.157-18.660Q-13.207-18.717-13.207-18.787Q-13.207-18.857-13.160-18.914Q-13.114-18.971-13.032-18.971L-6.688-18.971Q-7.141-19.299-7.438-19.766Q-7.735-20.232-7.840-20.771Q-7.840-20.873-7.742-20.900L-7.575-20.900Q-7.492-20.881-7.473-20.795Q-7.344-20.119-6.864-19.601Q-6.383-19.084-5.719-18.892Q-5.657-18.869-5.657-18.787Q-5.657-18.705-5.719-18.682Q-6.383-18.494-6.864-17.974Q-7.344-17.455-7.473-16.779Q-7.492-16.693-7.575-16.674L-7.742-16.674Q-7.840-16.701-7.840-16.803Q-7.766-17.170-7.608-17.502Q-7.450-17.834-7.217-18.111Q-6.985-18.389-6.688-18.603",[2223],[2208,2340,2341],{"transform":2316},[1937,2342],{"d":2343,"fill":2282,"stroke":2282,"className":2344,"style":2299},"M1.997-19.291L-2.171-19.291Q-2.249-19.303-2.298-19.351Q-2.346-19.400-2.346-19.474Q-2.346-19.549-2.298-19.598Q-2.249-19.646-2.171-19.658L2.197-19.658Q2.341-19.635 2.365-19.490L2.365-17.642Q2.337-17.474 2.181-17.474Q2.025-17.474 1.997-17.642",[2223],[2208,2346,2347],{"transform":2316},[1937,2348],{"d":2349,"fill":2282,"stroke":2282,"className":2350,"style":2299},"M3.778-17.709Q3.778-17.959 3.852-18.246Q3.926-18.533 4.063-18.885Q4.200-19.236 4.262-19.404Q4.352-19.627 4.352-19.810Q4.352-20.060 4.184-20.060Q3.868-20.060 3.659-19.754Q3.450-19.447 3.344-19.060Q3.332-18.986 3.262-18.986L3.160-18.986Q3.125-18.986 3.098-19.021Q3.071-19.057 3.071-19.084L3.071-19.115Q3.196-19.576 3.493-19.945Q3.789-20.314 4.200-20.314Q4.395-20.314 4.569-20.230Q4.743-20.146 4.844-19.994Q4.946-19.842 4.946-19.635Q4.946-19.482 4.887-19.346Q4.797-19.115 4.696-18.849Q4.594-18.584 4.537-18.402Q4.481-18.221 4.436-18.006Q4.391-17.791 4.391-17.596Q4.391-17.322 4.514-17.142Q4.637-16.963 4.895-16.963Q5.164-16.963 5.473-17.191Q5.782-17.420 5.832-17.674L6.399-19.947Q6.438-20.072 6.541-20.154Q6.645-20.236 6.770-20.236Q6.879-20.236 6.959-20.162Q7.039-20.088 7.039-19.978Q7.039-19.955 7.024-19.892L6.457-17.619Q6.453-17.580 6.440-17.519Q6.426-17.459 6.420-17.408Q6.414-17.357 6.414-17.322Q6.414-16.963 6.664-16.963Q6.805-16.963 6.907-17.070Q7.008-17.178 7.073-17.332Q7.137-17.486 7.186-17.676Q7.235-17.865 7.254-17.963Q7.289-18.033 7.344-18.033L7.450-18.033Q7.489-18.033 7.512-18.004Q7.535-17.974 7.535-17.939Q7.535-17.924 7.528-17.908Q7.457-17.611 7.360-17.353Q7.262-17.096 7.086-16.902Q6.910-16.709 6.649-16.709Q6.383-16.709 6.160-16.842Q5.938-16.974 5.848-17.213Q5.660-16.986 5.405-16.848Q5.149-16.709 4.879-16.709Q4.555-16.709 4.305-16.818Q4.055-16.928 3.916-17.152Q3.778-17.377 3.778-17.709",[2223],[2352,2353,2356,2357,2153,2390],"figcaption",{"className":2354},[2355],"tikz-cap","skew-symmetry: every edge ",[393,2358,2360],{"className":2359},[396],[393,2361,2363,2381],{"className":2362,"ariaHidden":401},[400],[393,2364,2366,2369,2372,2375,2378],{"className":2365},[405],[393,2367],{"className":2368,"style":484},[409],[393,2370,1871],{"className":2371},[414,415],[393,2373],{"className":2374,"style":770},[430],[393,2376,1878],{"className":2377},[774],[393,2379],{"className":2380,"style":770},[430],[393,2382,2384,2387],{"className":2383},[405],[393,2385],{"className":2386,"style":484},[409],[393,2388,1892],{"className":2389,"style":1891},[414,415],[393,2391,2393],{"className":2392},[396],[393,2394,2396,2417],{"className":2395,"ariaHidden":401},[400],[393,2397,2399,2402,2405,2408,2411,2414],{"className":2398},[405],[393,2400],{"className":2401,"style":484},[409],[393,2403,704],{"className":2404},[414],[393,2406,1892],{"className":2407,"style":1891},[414,415],[393,2409],{"className":2410,"style":770},[430],[393,2412,1878],{"className":2413},[774],[393,2415],{"className":2416,"style":770},[430],[393,2418,2420,2423,2426],{"className":2419},[405],[393,2421],{"className":2422,"style":484},[409],[393,2424,704],{"className":2425},[414],[393,2427,1871],{"className":2428},[414,415],[2195,2430,2432,2588],{"className":2431},[2198,2199],[2201,2433,2437],{"xmlns":2203,"width":2434,"height":2435,"viewBox":2436},"287.841","122.878","-75 -75 215.881 92.158",[2208,2438,2439,2442,2464,2467,2482,2485,2504,2507,2521,2524,2538,2541,2560,2563,2566,2569,2572,2580],{"stroke":2210,"style":2211},[1937,2440],{"fill":2214,"d":2441},"M-39.796-59.266c0-7.072-5.732-12.804-12.804-12.804-7.071 0-12.803 5.732-12.803 12.804 0 7.071 5.732 12.803 12.803 12.803s12.804-5.732 12.804-12.803Zm-12.804 0",[2208,2443,2444,2451,2457],{"stroke":2214},[2208,2445,2447],{"transform":2446},"translate(-7.788 1.438)",[1937,2448],{"d":2449,"fill":2210,"stroke":2210,"className":2450,"style":2224},"M-47.344-62.100L-51.906-62.100Q-51.989-62.114-52.038-62.171Q-52.086-62.228-52.086-62.298Q-52.086-62.364-52.035-62.419Q-51.985-62.474-51.906-62.487L-47.129-62.487Q-46.993-62.487-46.957-62.316L-46.957-60.228Q-46.988-60.057-47.146-60.057Q-47.217-60.057-47.274-60.105Q-47.331-60.154-47.344-60.228",[2223],[2208,2452,2453],{"transform":2446},[1937,2454],{"d":2455,"fill":2210,"stroke":2210,"className":2456,"style":2224},"M-45.704-59.556Q-45.528-59.429-45.255-59.429Q-44.965-59.429-44.752-59.683Q-44.539-59.938-44.460-60.255L-44.056-61.868Q-43.968-62.245-43.968-62.434Q-43.968-62.659-44.095-62.821Q-44.223-62.984-44.442-62.984Q-44.860-62.984-45.192-62.634Q-45.523-62.285-45.642-61.832Q-45.660-61.749-45.730-61.749L-45.840-61.749Q-45.928-61.749-45.928-61.868Q-45.796-62.408-45.374-62.826Q-44.952-63.243-44.425-63.243Q-44.091-63.243-43.816-63.072Q-43.541-62.900-43.427-62.606Q-43.269-62.878-43.023-63.061Q-42.777-63.243-42.491-63.243Q-42.153-63.243-41.880-63.076Q-41.608-62.909-41.608-62.588Q-41.608-62.360-41.751-62.191Q-41.893-62.021-42.131-62.021Q-42.271-62.021-42.377-62.114Q-42.482-62.206-42.482-62.351Q-42.482-62.536-42.359-62.678Q-42.236-62.821-42.052-62.856Q-42.232-62.984-42.509-62.984Q-42.799-62.984-43.010-62.727Q-43.221-62.470-43.300-62.153L-43.704-60.545Q-43.796-60.184-43.796-59.987Q-43.796-59.754-43.667-59.591Q-43.537-59.429-43.308-59.429Q-43.023-59.429-42.775-59.598Q-42.526-59.767-42.353-60.039Q-42.179-60.312-42.113-60.580Q-42.104-60.611-42.080-60.635Q-42.056-60.659-42.021-60.659L-41.915-60.659Q-41.876-60.659-41.850-60.622Q-41.823-60.584-41.823-60.545Q-41.911-60.198-42.131-59.879Q-42.350-59.560-42.667-59.363Q-42.983-59.165-43.326-59.165Q-43.664-59.165-43.939-59.334Q-44.214-59.503-44.337-59.807Q-44.486-59.538-44.735-59.352Q-44.983-59.165-45.264-59.165Q-45.607-59.165-45.881-59.332Q-46.156-59.499-46.156-59.824Q-46.156-60.048-46.007-60.220Q-45.857-60.391-45.624-60.391Q-45.479-60.391-45.376-60.299Q-45.273-60.206-45.273-60.057Q-45.273-59.881-45.396-59.734Q-45.519-59.587-45.704-59.556",[2223],[2208,2458,2459],{"transform":2446},[1937,2460],{"d":2461,"fill":2210,"stroke":2210,"className":2462,"style":2463},"M-38.149-58.266L-40.440-58.266L-40.440-58.524Q-39.564-58.524-39.564-58.697L-39.564-61.776Q-39.757-61.688-39.989-61.651Q-40.220-61.615-40.475-61.615L-40.475-61.872Q-40.097-61.872-39.776-61.957Q-39.456-62.042-39.227-62.256L-39.107-62.256Q-39.075-62.256-39.050-62.233Q-39.025-62.209-39.025-62.171L-39.025-58.697Q-39.025-58.524-38.149-58.524",[2223],"stroke-width:0.180",[1937,2465],{"fill":2214,"d":2466},"M43.117-59.266c0-7.072-5.732-12.804-12.804-12.804-7.071 0-12.803 5.732-12.803 12.804 0 7.071 5.732 12.803 12.803 12.803s12.804-5.732 12.804-12.803Zm-12.804 0",[2208,2468,2469,2476],{"stroke":2214},[2208,2470,2472],{"transform":2471},"translate(78.208 1.438)",[1937,2473],{"d":2474,"fill":2210,"stroke":2210,"className":2475,"style":2224},"M-51.871-59.556Q-51.695-59.429-51.422-59.429Q-51.132-59.429-50.919-59.683Q-50.706-59.938-50.627-60.255L-50.223-61.868Q-50.135-62.245-50.135-62.434Q-50.135-62.659-50.262-62.821Q-50.390-62.984-50.609-62.984Q-51.027-62.984-51.359-62.634Q-51.690-62.285-51.809-61.832Q-51.827-61.749-51.897-61.749L-52.007-61.749Q-52.095-61.749-52.095-61.868Q-51.963-62.408-51.541-62.826Q-51.119-63.243-50.592-63.243Q-50.258-63.243-49.983-63.072Q-49.708-62.900-49.594-62.606Q-49.436-62.878-49.190-63.061Q-48.944-63.243-48.658-63.243Q-48.320-63.243-48.047-63.076Q-47.775-62.909-47.775-62.588Q-47.775-62.360-47.918-62.191Q-48.060-62.021-48.298-62.021Q-48.438-62.021-48.544-62.114Q-48.649-62.206-48.649-62.351Q-48.649-62.536-48.526-62.678Q-48.403-62.821-48.219-62.856Q-48.399-62.984-48.676-62.984Q-48.966-62.984-49.177-62.727Q-49.388-62.470-49.467-62.153L-49.871-60.545Q-49.963-60.184-49.963-59.987Q-49.963-59.754-49.834-59.591Q-49.704-59.429-49.475-59.429Q-49.190-59.429-48.942-59.598Q-48.693-59.767-48.520-60.039Q-48.346-60.312-48.280-60.580Q-48.271-60.611-48.247-60.635Q-48.223-60.659-48.188-60.659L-48.082-60.659Q-48.043-60.659-48.017-60.622Q-47.990-60.584-47.990-60.545Q-48.078-60.198-48.298-59.879Q-48.517-59.560-48.834-59.363Q-49.150-59.165-49.493-59.165Q-49.831-59.165-50.106-59.334Q-50.381-59.503-50.504-59.807Q-50.653-59.538-50.902-59.352Q-51.150-59.165-51.431-59.165Q-51.774-59.165-52.048-59.332Q-52.323-59.499-52.323-59.824Q-52.323-60.048-52.174-60.220Q-52.024-60.391-51.791-60.391Q-51.646-60.391-51.543-60.299Q-51.440-60.206-51.440-60.057Q-51.440-59.881-51.563-59.734Q-51.686-59.587-51.871-59.556",[2223],[2208,2477,2478],{"transform":2471},[1937,2479],{"d":2480,"fill":2210,"stroke":2210,"className":2481,"style":2463},"M-44.316-58.266L-46.926-58.266L-46.926-58.451Q-46.920-58.474-46.900-58.500L-45.749-59.555Q-45.409-59.866-45.229-60.052Q-45.048-60.238-44.903-60.498Q-44.758-60.759-44.758-61.055Q-44.758-61.328-44.884-61.543Q-45.010-61.758-45.230-61.878Q-45.450-61.998-45.725-61.998Q-45.901-61.998-46.071-61.941Q-46.241-61.884-46.373-61.777Q-46.504-61.670-46.584-61.512Q-46.496-61.512-46.418-61.468Q-46.340-61.424-46.296-61.348Q-46.253-61.272-46.253-61.175Q-46.253-61.035-46.349-60.938Q-46.446-60.841-46.589-60.841Q-46.727-60.841-46.827-60.941Q-46.926-61.040-46.926-61.175Q-46.926-61.500-46.736-61.748Q-46.545-61.995-46.242-62.126Q-45.939-62.256-45.623-62.256Q-45.242-62.256-44.899-62.121Q-44.556-61.987-44.342-61.714Q-44.128-61.442-44.128-61.055Q-44.128-60.780-44.253-60.553Q-44.378-60.326-44.558-60.154Q-44.738-59.983-45.063-59.743Q-45.388-59.502-45.473-59.435L-46.229-58.831L-45.696-58.831Q-45.207-58.831-44.876-58.839Q-44.544-58.846-44.530-58.861Q-44.471-58.931-44.439-59.066Q-44.407-59.201-44.375-59.412L-44.128-59.412",[2223],[1937,2483],{"fill":2214,"d":2484},"M-39.796.884c0-7.07-5.732-12.803-12.804-12.803-7.071 0-12.803 5.732-12.803 12.803s5.732 12.804 12.803 12.804S-39.796 7.956-39.796.884Zm-12.804 0",[2208,2486,2487,2493,2498],{"stroke":2214},[2208,2488,2490],{"transform":2489},"translate(-7.788 61.588)",[1937,2491],{"d":2449,"fill":2210,"stroke":2210,"className":2492,"style":2224},[2223],[2208,2494,2495],{"transform":2489},[1937,2496],{"d":2455,"fill":2210,"stroke":2210,"className":2497,"style":2224},[2223],[2208,2499,2500],{"transform":2489},[1937,2501],{"d":2502,"fill":2210,"stroke":2210,"className":2503,"style":2463},"M-38.149-58.266L-40.759-58.266L-40.759-58.451Q-40.753-58.474-40.733-58.500L-39.582-59.555Q-39.242-59.866-39.062-60.052Q-38.881-60.238-38.736-60.498Q-38.591-60.759-38.591-61.055Q-38.591-61.328-38.717-61.543Q-38.843-61.758-39.063-61.878Q-39.283-61.998-39.558-61.998Q-39.734-61.998-39.904-61.941Q-40.074-61.884-40.206-61.777Q-40.337-61.670-40.417-61.512Q-40.329-61.512-40.251-61.468Q-40.173-61.424-40.129-61.348Q-40.086-61.272-40.086-61.175Q-40.086-61.035-40.182-60.938Q-40.279-60.841-40.422-60.841Q-40.560-60.841-40.660-60.941Q-40.759-61.040-40.759-61.175Q-40.759-61.500-40.569-61.748Q-40.378-61.995-40.075-62.126Q-39.772-62.256-39.456-62.256Q-39.075-62.256-38.732-62.121Q-38.389-61.987-38.175-61.714Q-37.961-61.442-37.961-61.055Q-37.961-60.780-38.086-60.553Q-38.211-60.326-38.391-60.154Q-38.571-59.983-38.896-59.743Q-39.221-59.502-39.306-59.435L-40.062-58.831L-39.529-58.831Q-39.040-58.831-38.709-58.839Q-38.377-58.846-38.363-58.861Q-38.304-58.931-38.272-59.066Q-38.240-59.201-38.208-59.412L-37.961-59.412",[2223],[1937,2505],{"fill":2214,"d":2506},"M43.117.884c0-7.07-5.732-12.803-12.804-12.803-7.071 0-12.803 5.732-12.803 12.803s5.732 12.804 12.803 12.804S43.117 7.956 43.117.884Zm-12.804 0",[2208,2508,2509,2515],{"stroke":2214},[2208,2510,2512],{"transform":2511},"translate(78.208 61.588)",[1937,2513],{"d":2474,"fill":2210,"stroke":2210,"className":2514,"style":2224},[2223],[2208,2516,2517],{"transform":2511},[1937,2518],{"d":2519,"fill":2210,"stroke":2210,"className":2520,"style":2463},"M-44.316-58.266L-46.607-58.266L-46.607-58.524Q-45.731-58.524-45.731-58.697L-45.731-61.776Q-45.924-61.688-46.156-61.651Q-46.387-61.615-46.642-61.615L-46.642-61.872Q-46.264-61.872-45.943-61.957Q-45.623-62.042-45.394-62.256L-45.274-62.256Q-45.242-62.256-45.217-62.233Q-45.192-62.209-45.192-62.171L-45.192-58.697Q-45.192-58.524-44.316-58.524",[2223],[1937,2522],{"fill":2214,"d":2523},"M137.411-59.266c0-7.072-5.732-12.804-12.804-12.804-7.071 0-12.803 5.732-12.803 12.804 0 7.071 5.732 12.803 12.803 12.803s12.804-5.732 12.804-12.803Zm-12.804 0",[2208,2525,2526,2532],{"stroke":2214},[2208,2527,2529],{"transform":2528},"translate(172.502 1.438)",[1937,2530],{"d":2474,"fill":2210,"stroke":2210,"className":2531,"style":2224},[2223],[2208,2533,2534],{"transform":2528},[1937,2535],{"d":2536,"fill":2210,"stroke":2210,"className":2537,"style":2463},"M-46.584-58.717Q-46.288-58.380-45.558-58.380Q-45.300-58.380-45.120-58.508Q-44.940-58.635-44.852-58.843Q-44.764-59.051-44.764-59.309Q-44.764-59.704-44.971-59.975Q-45.177-60.246-45.564-60.246L-46.030-60.246Q-46.094-60.261-46.109-60.323L-46.109-60.390Q-46.094-60.446-46.030-60.463L-45.628-60.487Q-45.418-60.487-45.249-60.629Q-45.081-60.771-44.988-60.985Q-44.896-61.199-44.896-61.415Q-44.896-61.703-45.081-61.868Q-45.265-62.034-45.558-62.034Q-45.819-62.034-46.043-61.966Q-46.267-61.899-46.414-61.741Q-46.285-61.723-46.206-61.634Q-46.127-61.544-46.127-61.415Q-46.127-61.278-46.222-61.183Q-46.317-61.087-46.458-61.087Q-46.592-61.087-46.689-61.184Q-46.786-61.281-46.786-61.415Q-46.786-61.703-46.595-61.894Q-46.405-62.086-46.124-62.171Q-45.842-62.256-45.558-62.256Q-45.283-62.256-44.982-62.165Q-44.682-62.075-44.474-61.886Q-44.266-61.697-44.266-61.415Q-44.266-61.046-44.512-60.774Q-44.758-60.501-45.130-60.372Q-44.711-60.279-44.394-59.996Q-44.076-59.713-44.076-59.315Q-44.076-58.952-44.295-58.686Q-44.515-58.421-44.861-58.281Q-45.207-58.140-45.558-58.140Q-45.781-58.140-46.028-58.188Q-46.276-58.237-46.496-58.347Q-46.715-58.456-46.847-58.635Q-46.979-58.814-46.979-59.069Q-46.979-59.218-46.877-59.321Q-46.774-59.423-46.625-59.423Q-46.475-59.423-46.373-59.321Q-46.270-59.218-46.270-59.069Q-46.270-58.937-46.359-58.836Q-46.449-58.735-46.584-58.717",[2223],[1937,2539],{"fill":2214,"d":2540},"M137.411.884c0-7.07-5.732-12.803-12.804-12.803-7.071 0-12.803 5.732-12.803 12.803s5.732 12.804 12.803 12.804S137.411 7.956 137.411.884Zm-12.804 0",[2208,2542,2543,2549,2554],{"stroke":2214},[2208,2544,2546],{"transform":2545},"translate(169.419 61.588)",[1937,2547],{"d":2449,"fill":2210,"stroke":2210,"className":2548,"style":2224},[2223],[2208,2550,2551],{"transform":2545},[1937,2552],{"d":2455,"fill":2210,"stroke":2210,"className":2553,"style":2224},[2223],[2208,2555,2556],{"transform":2545},[1937,2557],{"d":2558,"fill":2210,"stroke":2210,"className":2559,"style":2463},"M-40.417-58.717Q-40.121-58.380-39.391-58.380Q-39.133-58.380-38.953-58.508Q-38.773-58.635-38.685-58.843Q-38.597-59.051-38.597-59.309Q-38.597-59.704-38.804-59.975Q-39.010-60.246-39.397-60.246L-39.863-60.246Q-39.927-60.261-39.942-60.323L-39.942-60.390Q-39.927-60.446-39.863-60.463L-39.461-60.487Q-39.251-60.487-39.082-60.629Q-38.914-60.771-38.821-60.985Q-38.729-61.199-38.729-61.415Q-38.729-61.703-38.914-61.868Q-39.098-62.034-39.391-62.034Q-39.652-62.034-39.876-61.966Q-40.100-61.899-40.247-61.741Q-40.118-61.723-40.039-61.634Q-39.960-61.544-39.960-61.415Q-39.960-61.278-40.055-61.183Q-40.150-61.087-40.291-61.087Q-40.425-61.087-40.522-61.184Q-40.619-61.281-40.619-61.415Q-40.619-61.703-40.428-61.894Q-40.238-62.086-39.957-62.171Q-39.675-62.256-39.391-62.256Q-39.116-62.256-38.815-62.165Q-38.515-62.075-38.307-61.886Q-38.099-61.697-38.099-61.415Q-38.099-61.046-38.345-60.774Q-38.591-60.501-38.963-60.372Q-38.544-60.279-38.227-59.996Q-37.909-59.713-37.909-59.315Q-37.909-58.952-38.128-58.686Q-38.348-58.421-38.694-58.281Q-39.040-58.140-39.391-58.140Q-39.614-58.140-39.861-58.188Q-40.109-58.237-40.329-58.347Q-40.548-58.456-40.680-58.635Q-40.812-58.814-40.812-59.069Q-40.812-59.218-40.710-59.321Q-40.607-59.423-40.458-59.423Q-40.308-59.423-40.206-59.321Q-40.103-59.218-40.103-59.069Q-40.103-58.937-40.192-58.836Q-40.282-58.735-40.417-58.717",[2223],[1937,2561],{"fill":2214,"d":2562},"M-39.596-59.266H15.31",[1937,2564],{"stroke":2214,"d":2565},"m17.31-59.266-3.2-1.6 1.2 1.6-1.2 1.6",[1937,2567],{"fill":2214,"d":2568},"M-39.596.884H15.31",[1937,2570],{"stroke":2214,"d":2571},"m17.31.884-3.2-1.6 1.2 1.6-1.2 1.6",[2208,2573,2574,2577],{"fill":2282,"stroke":2282,"style":2273},[1937,2575],{"fill":2214,"d":2576},"M112.294-3.295-37.824-54.25",[1937,2578],{"stroke":2214,"d":2579},"m-40.286-55.087 3.27 3.307-.808-2.471 2.145-1.468",[2208,2581,2582,2585],{"fill":2282,"stroke":2282,"style":2273},[1937,2583],{"fill":2214,"d":2584},"m41.276-6.108 70.177-44.767",[1937,2586],{"stroke":2214,"d":2587},"m113.645-52.273-4.625.483 2.433.915-.196 2.592",[2352,2589,2591,2592],{"className":2590},[2355],"clause ",[393,2593,2595],{"className":2594},[396],[393,2596,2598,2619,2640,2661,2696],{"className":2597,"ariaHidden":401},[400],[393,2599,2601,2604,2607,2610,2613,2616],{"className":2600},[405],[393,2602],{"className":2603,"style":410},[409],[393,2605,422],{"className":2606},[421],[393,2608,385],{"className":2609},[414,415],[393,2611],{"className":2612,"style":431},[430],[393,2614,838],{"className":2615},[435],[393,2617],{"className":2618,"style":431},[430],[393,2620,2622,2625,2628,2631,2634,2637],{"className":2621},[405],[393,2623],{"className":2624,"style":410},[409],[393,2626,1306],{"className":2627},[414,415],[393,2629,454],{"className":2630},[453],[393,2632],{"className":2633,"style":770},[430],[393,2635,1462],{"className":2636},[774],[393,2638],{"className":2639,"style":770},[430],[393,2641,2643,2646,2649,2652,2655,2658],{"className":2642},[405],[393,2644],{"className":2645,"style":484},[409],[393,2647,704],{"className":2648},[414],[393,2650,385],{"className":2651},[414,415],[393,2653],{"className":2654,"style":770},[430],[393,2656,1490],{"className":2657},[774],[393,2659],{"className":2660,"style":770},[430],[393,2662,2664,2668,2671,2674,2678,2681,2684,2687,2690,2693],{"className":2663},[405],[393,2665],{"className":2666,"style":2667},[409],"height:0.8889em;vertical-align:-0.1944em;",[393,2669,1306],{"className":2670},[414,415],[393,2672,564],{"className":2673},[563],[393,2675,2677],{"className":2676},[430]," ",[393,2679],{"className":2680,"style":568},[430],[393,2682,704],{"className":2683},[414],[393,2685,1306],{"className":2686},[414,415],[393,2688],{"className":2689,"style":770},[430],[393,2691,1490],{"className":2692},[774],[393,2694],{"className":2695,"style":770},[430],[393,2697,2699,2702],{"className":2698},[405],[393,2700],{"className":2701,"style":484},[409],[393,2703,385],{"className":2704},[414,415],[381,2706,2707,2708,3062],{},"The two highlighted edges are the implication pair of the clause\n",[393,2709,2711],{"className":2710},[396],[393,2712,2714,2775,2833,2891,2949,3010],{"className":2713,"ariaHidden":401},[400],[393,2715,2717,2720,2723,2726,2766,2769,2772],{"className":2716},[405],[393,2718],{"className":2719,"style":410},[409],[393,2721,422],{"className":2722},[421],[393,2724,704],{"className":2725},[414],[393,2727,2729,2732],{"className":2728},[414],[393,2730,508],{"className":2731},[414,415],[393,2733,2735],{"className":2734},[512],[393,2736,2738,2758],{"className":2737},[516,517],[393,2739,2741,2755],{"className":2740},[521],[393,2742,2744],{"className":2743,"style":526},[525],[393,2745,2746,2749],{"style":529},[393,2747],{"className":2748,"style":534},[533],[393,2750,2752],{"className":2751},[538,539,540,541],[393,2753,545],{"className":2754},[414,541],[393,2756,550],{"className":2757},[549],[393,2759,2761],{"className":2760},[521],[393,2762,2764],{"className":2763,"style":557},[525],[393,2765],{},[393,2767],{"className":2768,"style":431},[430],[393,2770,838],{"className":2771},[435],[393,2773],{"className":2774,"style":431},[430],[393,2776,2778,2781,2821,2824,2827,2830],{"className":2777},[405],[393,2779],{"className":2780,"style":410},[409],[393,2782,2784,2787],{"className":2783},[414],[393,2785,508],{"className":2786},[414,415],[393,2788,2790],{"className":2789},[512],[393,2791,2793,2813],{"className":2792},[516,517],[393,2794,2796,2810],{"className":2795},[521],[393,2797,2799],{"className":2798,"style":526},[525],[393,2800,2801,2804],{"style":529},[393,2802],{"className":2803,"style":534},[533],[393,2805,2807],{"className":2806},[538,539,540,541],[393,2808,946],{"className":2809},[414,541],[393,2811,550],{"className":2812},[549],[393,2814,2816],{"className":2815},[521],[393,2817,2819],{"className":2818,"style":557},[525],[393,2820],{},[393,2822,454],{"className":2823},[453],[393,2825],{"className":2826,"style":770},[430],[393,2828,1462],{"className":2829},[774],[393,2831],{"className":2832,"style":770},[430],[393,2834,2836,2839,2842,2882,2885,2888],{"className":2835},[405],[393,2837],{"className":2838,"style":410},[409],[393,2840,422],{"className":2841},[421],[393,2843,2845,2848],{"className":2844},[414],[393,2846,508],{"className":2847},[414,415],[393,2849,2851],{"className":2850},[512],[393,2852,2854,2874],{"className":2853},[516,517],[393,2855,2857,2871],{"className":2856},[521],[393,2858,2860],{"className":2859,"style":526},[525],[393,2861,2862,2865],{"style":529},[393,2863],{"className":2864,"style":534},[533],[393,2866,2868],{"className":2867},[538,539,540,541],[393,2869,545],{"className":2870},[414,541],[393,2872,550],{"className":2873},[549],[393,2875,2877],{"className":2876},[521],[393,2878,2880],{"className":2879,"style":557},[525],[393,2881],{},[393,2883],{"className":2884,"style":770},[430],[393,2886,1490],{"className":2887},[774],[393,2889],{"className":2890,"style":770},[430],[393,2892,2894,2897,2937,2940,2943,2946],{"className":2893},[405],[393,2895],{"className":2896,"style":410},[409],[393,2898,2900,2903],{"className":2899},[414],[393,2901,508],{"className":2902},[414,415],[393,2904,2906],{"className":2905},[512],[393,2907,2909,2929],{"className":2908},[516,517],[393,2910,2912,2926],{"className":2911},[521],[393,2913,2915],{"className":2914,"style":526},[525],[393,2916,2917,2920],{"style":529},[393,2918],{"className":2919,"style":534},[533],[393,2921,2923],{"className":2922},[538,539,540,541],[393,2924,946],{"className":2925},[414,541],[393,2927,550],{"className":2928},[549],[393,2930,2932],{"className":2931},[521],[393,2933,2935],{"className":2934,"style":557},[525],[393,2936],{},[393,2938,454],{"className":2939},[453],[393,2941],{"className":2942,"style":431},[430],[393,2944,901],{"className":2945},[435],[393,2947],{"className":2948,"style":431},[430],[393,2950,2952,2955,2958,2961,3001,3004,3007],{"className":2951},[405],[393,2953],{"className":2954,"style":410},[409],[393,2956,422],{"className":2957},[421],[393,2959,704],{"className":2960},[414],[393,2962,2964,2967],{"className":2963},[414],[393,2965,508],{"className":2966},[414,415],[393,2968,2970],{"className":2969},[512],[393,2971,2973,2993],{"className":2972},[516,517],[393,2974,2976,2990],{"className":2975},[521],[393,2977,2979],{"className":2978,"style":526},[525],[393,2980,2981,2984],{"style":529},[393,2982],{"className":2983,"style":534},[533],[393,2985,2987],{"className":2986},[538,539,540,541],[393,2988,946],{"className":2989},[414,541],[393,2991,550],{"className":2992},[549],[393,2994,2996],{"className":2995},[521],[393,2997,2999],{"className":2998,"style":557},[525],[393,3000],{},[393,3002],{"className":3003,"style":770},[430],[393,3005,1490],{"className":3006},[774],[393,3008],{"className":3009,"style":770},[430],[393,3011,3013,3016,3019,3059],{"className":3012},[405],[393,3014],{"className":3015,"style":410},[409],[393,3017,704],{"className":3018},[414],[393,3020,3022,3025],{"className":3021},[414],[393,3023,508],{"className":3024},[414,415],[393,3026,3028],{"className":3027},[512],[393,3029,3031,3051],{"className":3030},[516,517],[393,3032,3034,3048],{"className":3033},[521],[393,3035,3037],{"className":3036,"style":526},[525],[393,3038,3039,3042],{"style":529},[393,3040],{"className":3041,"style":534},[533],[393,3043,3045],{"className":3044},[538,539,540,541],[393,3046,545],{"className":3047},[414,541],[393,3049,550],{"className":3050},[549],[393,3052,3054],{"className":3053},[521],[393,3055,3057],{"className":3056,"style":557},[525],[393,3058],{},[393,3060,454],{"className":3061},[453],". Mirror edges always come in such pairs.",[1263,3064,3066],{"id":3065},"when-is-the-formula-satisfiable","When is the formula satisfiable?",[381,3068,3069,3070,3085,3086,3119,3120,3135,3136,3139],{},"A satisfying assignment must respect every forced implication: if it sets ",[393,3071,3073],{"className":3072},[396],[393,3074,3076],{"className":3075,"ariaHidden":401},[400],[393,3077,3079,3082],{"className":3078},[405],[393,3080],{"className":3081,"style":484},[409],[393,3083,1871],{"className":3084},[414,415]," true\nand ",[393,3087,3089],{"className":3088},[396],[393,3090,3092,3110],{"className":3091,"ariaHidden":401},[400],[393,3093,3095,3098,3101,3104,3107],{"className":3094},[405],[393,3096],{"className":3097,"style":484},[409],[393,3099,1871],{"className":3100},[414,415],[393,3102],{"className":3103,"style":770},[430],[393,3105,1960],{"className":3106},[774,1959],[393,3108],{"className":3109,"style":770},[430],[393,3111,3113,3116],{"className":3112},[405],[393,3114],{"className":3115,"style":484},[409],[393,3117,1892],{"className":3118,"style":1891},[414,415],", it must set ",[393,3121,3123],{"className":3122},[396],[393,3124,3126],{"className":3125,"ariaHidden":401},[400],[393,3127,3129,3132],{"className":3128},[405],[393,3130],{"className":3131,"style":484},[409],[393,3133,1892],{"className":3134,"style":1891},[414,415]," true. The danger is a ",[388,3137,3138],{},"cycle of\nforcing"," that loops a literal back to its own negation. That danger is exactly an\nSCC.",[3141,3142,3144],"callout",{"type":3143},"theorem",[381,3145,3146,1566,3149,3164,3165,3168,3169,3221,3222,3274,3275,3330,3331,3334,3335,1179],{},[388,3147,3148],{},"Theorem (2-SAT satisfiability).",[393,3150,3152],{"className":3151},[396],[393,3153,3155],{"className":3154,"ariaHidden":401},[400],[393,3156,3158,3161],{"className":3157},[405],[393,3159],{"className":3160,"style":762},[409],[393,3162,766],{"className":3163},[414]," is satisfiable ",[388,3166,3167],{},"if and only if"," no\nvariable ",[393,3170,3172],{"className":3171},[396],[393,3173,3175],{"className":3174,"ariaHidden":401},[400],[393,3176,3178,3181],{"className":3177},[405],[393,3179],{"className":3180,"style":645},[409],[393,3182,3184,3187],{"className":3183},[414],[393,3185,508],{"className":3186},[414,415],[393,3188,3190],{"className":3189},[512],[393,3191,3193,3213],{"className":3192},[516,517],[393,3194,3196,3210],{"className":3195},[521],[393,3197,3199],{"className":3198,"style":664},[525],[393,3200,3201,3204],{"style":529},[393,3202],{"className":3203,"style":534},[533],[393,3205,3207],{"className":3206},[538,539,540,541],[393,3208,676],{"className":3209},[414,415,541],[393,3211,550],{"className":3212},[549],[393,3214,3216],{"className":3215},[521],[393,3217,3219],{"className":3218,"style":557},[525],[393,3220],{}," has ",[393,3223,3225],{"className":3224},[396],[393,3226,3228],{"className":3227,"ariaHidden":401},[400],[393,3229,3231,3234],{"className":3230},[405],[393,3232],{"className":3233,"style":645},[409],[393,3235,3237,3240],{"className":3236},[414],[393,3238,508],{"className":3239},[414,415],[393,3241,3243],{"className":3242},[512],[393,3244,3246,3266],{"className":3245},[516,517],[393,3247,3249,3263],{"className":3248},[521],[393,3250,3252],{"className":3251,"style":664},[525],[393,3253,3254,3257],{"style":529},[393,3255],{"className":3256,"style":534},[533],[393,3258,3260],{"className":3259},[538,539,540,541],[393,3261,676],{"className":3262},[414,415,541],[393,3264,550],{"className":3265},[549],[393,3267,3269],{"className":3268},[521],[393,3270,3272],{"className":3271,"style":557},[525],[393,3273],{}," and ",[393,3276,3278],{"className":3277},[396],[393,3279,3281],{"className":3280,"ariaHidden":401},[400],[393,3282,3284,3287,3290],{"className":3283},[405],[393,3285],{"className":3286,"style":645},[409],[393,3288,704],{"className":3289},[414],[393,3291,3293,3296],{"className":3292},[414],[393,3294,508],{"className":3295},[414,415],[393,3297,3299],{"className":3298},[512],[393,3300,3302,3322],{"className":3301},[516,517],[393,3303,3305,3319],{"className":3304},[521],[393,3306,3308],{"className":3307,"style":664},[525],[393,3309,3310,3313],{"style":529},[393,3311],{"className":3312,"style":534},[533],[393,3314,3316],{"className":3315},[538,539,540,541],[393,3317,676],{"className":3318},[414,415,541],[393,3320,550],{"className":3321},[549],[393,3323,3325],{"className":3324},[521],[393,3326,3328],{"className":3327,"style":557},[525],[393,3329],{}," in the ",[461,3332,3333],{},"same"," strongly connected\ncomponent of the implication graph ",[393,3336,3338],{"className":3337},[396],[393,3339,3341],{"className":3340,"ariaHidden":401},[400],[393,3342,3344,3347],{"className":3343},[405],[393,3345],{"className":3346,"style":762},[409],[393,3348,1582],{"className":3349},[414,415],[3141,3351,3353],{"type":3352},"proof",[381,3354,3355,3358,3359,3374,3375,3274,3390,3408,3409,3445,3446,3482,3483,3519,3520,3556,3557,3519,3593,3629,3630,3667,3668,3704,3705,3723,3724,3739,3740,3777,3778,1991,3814,3829,3830,3845,3846],{},[388,3356,3357],{},"Proof of the forward (contradiction) direction."," Suppose some variable ",[393,3360,3362],{"className":3361},[396],[393,3363,3365],{"className":3364,"ariaHidden":401},[400],[393,3366,3368,3371],{"className":3367},[405],[393,3369],{"className":3370,"style":484},[409],[393,3372,508],{"className":3373},[414,415]," has\nboth ",[393,3376,3378],{"className":3377},[396],[393,3379,3381],{"className":3380,"ariaHidden":401},[400],[393,3382,3384,3387],{"className":3383},[405],[393,3385],{"className":3386,"style":484},[409],[393,3388,508],{"className":3389},[414,415],[393,3391,3393],{"className":3392},[396],[393,3394,3396],{"className":3395,"ariaHidden":401},[400],[393,3397,3399,3402,3405],{"className":3398},[405],[393,3400],{"className":3401,"style":484},[409],[393,3403,704],{"className":3404},[414],[393,3406,508],{"className":3407},[414,415]," in one SCC. By definition of an SCC there is a path\n",[393,3410,3412],{"className":3411},[396],[393,3413,3415,3433],{"className":3414,"ariaHidden":401},[400],[393,3416,3418,3421,3424,3427,3430],{"className":3417},[405],[393,3419],{"className":3420,"style":484},[409],[393,3422,508],{"className":3423},[414,415],[393,3425],{"className":3426,"style":770},[430],[393,3428,1960],{"className":3429},[774,1959],[393,3431],{"className":3432,"style":770},[430],[393,3434,3436,3439,3442],{"className":3435},[405],[393,3437],{"className":3438,"style":484},[409],[393,3440,704],{"className":3441},[414],[393,3443,508],{"className":3444},[414,415]," and a path ",[393,3447,3449],{"className":3448},[396],[393,3450,3452,3473],{"className":3451,"ariaHidden":401},[400],[393,3453,3455,3458,3461,3464,3467,3470],{"className":3454},[405],[393,3456],{"className":3457,"style":484},[409],[393,3459,704],{"className":3460},[414],[393,3462,508],{"className":3463},[414,415],[393,3465],{"className":3466,"style":770},[430],[393,3468,1960],{"className":3469},[774,1959],[393,3471],{"className":3472,"style":770},[430],[393,3474,3476,3479],{"className":3475},[405],[393,3477],{"className":3478,"style":484},[409],[393,3480,508],{"className":3481},[414,415],". Reading the\nedges as implications, ",[393,3484,3486],{"className":3485},[396],[393,3487,3489,3507],{"className":3488,"ariaHidden":401},[400],[393,3490,3492,3495,3498,3501,3504],{"className":3491},[405],[393,3493],{"className":3494,"style":484},[409],[393,3496,508],{"className":3497},[414,415],[393,3499],{"className":3500,"style":770},[430],[393,3502,1960],{"className":3503},[774,1959],[393,3505],{"className":3506,"style":770},[430],[393,3508,3510,3513,3516],{"className":3509},[405],[393,3511],{"className":3512,"style":484},[409],[393,3514,704],{"className":3515},[414],[393,3517,508],{"className":3518},[414,415]," says ",[393,3521,3523],{"className":3522},[396],[393,3524,3526,3544],{"className":3525,"ariaHidden":401},[400],[393,3527,3529,3532,3535,3538,3541],{"className":3528},[405],[393,3530],{"className":3531,"style":484},[409],[393,3533,508],{"className":3534},[414,415],[393,3536],{"className":3537,"style":770},[430],[393,3539,1490],{"className":3540},[774],[393,3542],{"className":3543,"style":770},[430],[393,3545,3547,3550,3553],{"className":3546},[405],[393,3548],{"className":3549,"style":484},[409],[393,3551,704],{"className":3552},[414],[393,3554,508],{"className":3555},[414,415],"\nand ",[393,3558,3560],{"className":3559},[396],[393,3561,3563,3584],{"className":3562,"ariaHidden":401},[400],[393,3564,3566,3569,3572,3575,3578,3581],{"className":3565},[405],[393,3567],{"className":3568,"style":484},[409],[393,3570,704],{"className":3571},[414],[393,3573,508],{"className":3574},[414,415],[393,3576],{"className":3577,"style":770},[430],[393,3579,1960],{"className":3580},[774,1959],[393,3582],{"className":3583,"style":770},[430],[393,3585,3587,3590],{"className":3586},[405],[393,3588],{"className":3589,"style":484},[409],[393,3591,508],{"className":3592},[414,415],[393,3594,3596],{"className":3595},[396],[393,3597,3599,3620],{"className":3598,"ariaHidden":401},[400],[393,3600,3602,3605,3608,3611,3614,3617],{"className":3601},[405],[393,3603],{"className":3604,"style":484},[409],[393,3606,704],{"className":3607},[414],[393,3609,508],{"className":3610},[414,415],[393,3612],{"className":3613,"style":770},[430],[393,3615,1490],{"className":3616},[774],[393,3618],{"className":3619,"style":770},[430],[393,3621,3623,3626],{"className":3622},[405],[393,3624],{"className":3625,"style":484},[409],[393,3627,508],{"className":3628},[414,415],". Now consider any\nassignment. If it sets ",[393,3631,3633],{"className":3632},[396],[393,3634,3636,3654],{"className":3635,"ariaHidden":401},[400],[393,3637,3639,3642,3645,3648,3651],{"className":3638},[405],[393,3640],{"className":3641,"style":484},[409],[393,3643,508],{"className":3644},[414,415],[393,3646],{"className":3647,"style":770},[430],[393,3649,775],{"className":3650},[774],[393,3652],{"className":3653,"style":770},[430],[393,3655,3657,3661],{"className":3656},[405],[393,3658],{"className":3659,"style":3660},[409],"height:0.6151em;",[393,3662,3664],{"className":3663},[414,1818],[393,3665,401],{"className":3666},[414],", then ",[393,3669,3671],{"className":3670},[396],[393,3672,3674,3692],{"className":3673,"ariaHidden":401},[400],[393,3675,3677,3680,3683,3686,3689],{"className":3676},[405],[393,3678],{"className":3679,"style":484},[409],[393,3681,508],{"className":3682},[414,415],[393,3684],{"className":3685,"style":770},[430],[393,3687,1490],{"className":3688},[774],[393,3690],{"className":3691,"style":770},[430],[393,3693,3695,3698,3701],{"className":3694},[405],[393,3696],{"className":3697,"style":484},[409],[393,3699,704],{"className":3700},[414],[393,3702,508],{"className":3703},[414,415]," forces\n",[393,3706,3708],{"className":3707},[396],[393,3709,3711],{"className":3710,"ariaHidden":401},[400],[393,3712,3714,3717,3720],{"className":3713},[405],[393,3715],{"className":3716,"style":484},[409],[393,3718,704],{"className":3719},[414],[393,3721,508],{"className":3722},[414,415]," true, i.e. ",[393,3725,3727],{"className":3726},[396],[393,3728,3730],{"className":3729,"ariaHidden":401},[400],[393,3731,3733,3736],{"className":3732},[405],[393,3734],{"className":3735,"style":484},[409],[393,3737,508],{"className":3738},[414,415]," false — a contradiction. If it sets ",[393,3741,3743],{"className":3742},[396],[393,3744,3746,3764],{"className":3745,"ariaHidden":401},[400],[393,3747,3749,3752,3755,3758,3761],{"className":3748},[405],[393,3750],{"className":3751,"style":484},[409],[393,3753,508],{"className":3754},[414,415],[393,3756],{"className":3757,"style":770},[430],[393,3759,775],{"className":3760},[774],[393,3762],{"className":3763,"style":770},[430],[393,3765,3767,3770],{"className":3766},[405],[393,3768],{"className":3769,"style":1246},[409],[393,3771,3773],{"className":3772},[414,1818],[393,3774,3776],{"className":3775},[414],"false",",\nthen ",[393,3779,3781],{"className":3780},[396],[393,3782,3784,3805],{"className":3783,"ariaHidden":401},[400],[393,3785,3787,3790,3793,3796,3799,3802],{"className":3786},[405],[393,3788],{"className":3789,"style":484},[409],[393,3791,704],{"className":3792},[414],[393,3794,508],{"className":3795},[414,415],[393,3797],{"className":3798,"style":770},[430],[393,3800,1490],{"className":3801},[774],[393,3803],{"className":3804,"style":770},[430],[393,3806,3808,3811],{"className":3807},[405],[393,3809],{"className":3810,"style":484},[409],[393,3812,508],{"className":3813},[414,415],[393,3815,3817],{"className":3816},[396],[393,3818,3820],{"className":3819,"ariaHidden":401},[400],[393,3821,3823,3826],{"className":3822},[405],[393,3824],{"className":3825,"style":484},[409],[393,3827,508],{"className":3828},[414,415]," true — again a contradiction. No\nassignment survives, so ",[393,3831,3833],{"className":3832},[396],[393,3834,3836],{"className":3835,"ariaHidden":401},[400],[393,3837,3839,3842],{"className":3838},[405],[393,3840],{"className":3841,"style":762},[409],[393,3843,766],{"className":3844},[414]," is unsatisfiable. ",[393,3847,3849],{"className":3848},[396],[393,3850,3852],{"className":3851,"ariaHidden":401},[400],[393,3853,3855,3859],{"className":3854},[405],[393,3856],{"className":3857,"style":3858},[409],"height:0.675em;",[393,3860,3864],{"className":3861},[3862,3863],"enclosing","qed",[393,3865,3867],{"className":3866},[414,1959],"□",[2195,3869,3871,3981],{"className":3870},[2198,2199],[2201,3872,3876],{"xmlns":2203,"width":3873,"height":3874,"viewBox":3875},"219.021","194.662","-75 -75 164.266 145.996",[2208,3877,3878,3890,3893,3900,3920,3923,3930,3933,3936,3939,3942,3945,3948,3951,3954],{"stroke":2210,"style":2211},[2208,3879,3880,3883],{"stroke":2282,"style":2273},[1937,3881],{"fill":2214,"d":3882},"M-39.596-33.659c0-7.071-5.732-12.804-12.804-12.804-7.071 0-12.803 5.733-12.803 12.804s5.732 12.804 12.803 12.804 12.804-5.733 12.804-12.804Zm-12.804 0",[2208,3884,3886],{"transform":3885},"translate(-2.622 1.937)",[1937,3887],{"d":3888,"fill":2282,"stroke":2282,"className":3889,"style":2224},"M-51.671-33.949Q-51.495-33.822-51.222-33.822Q-50.932-33.822-50.719-34.076Q-50.506-34.331-50.427-34.648L-50.023-36.261Q-49.935-36.638-49.935-36.827Q-49.935-37.052-50.062-37.214Q-50.190-37.377-50.409-37.377Q-50.827-37.377-51.159-37.027Q-51.490-36.678-51.609-36.225Q-51.627-36.142-51.697-36.142L-51.807-36.142Q-51.895-36.142-51.895-36.261Q-51.763-36.801-51.341-37.219Q-50.919-37.636-50.392-37.636Q-50.058-37.636-49.783-37.465Q-49.508-37.293-49.394-36.999Q-49.236-37.271-48.990-37.454Q-48.744-37.636-48.458-37.636Q-48.120-37.636-47.847-37.469Q-47.575-37.302-47.575-36.981Q-47.575-36.753-47.718-36.584Q-47.860-36.414-48.098-36.414Q-48.238-36.414-48.344-36.507Q-48.449-36.599-48.449-36.744Q-48.449-36.929-48.326-37.071Q-48.203-37.214-48.019-37.249Q-48.199-37.377-48.476-37.377Q-48.766-37.377-48.977-37.120Q-49.188-36.863-49.267-36.546L-49.671-34.938Q-49.763-34.577-49.763-34.380Q-49.763-34.147-49.634-33.984Q-49.504-33.822-49.275-33.822Q-48.990-33.822-48.742-33.991Q-48.493-34.160-48.320-34.432Q-48.146-34.705-48.080-34.973Q-48.071-35.004-48.047-35.028Q-48.023-35.052-47.988-35.052L-47.882-35.052Q-47.843-35.052-47.817-35.015Q-47.790-34.977-47.790-34.938Q-47.878-34.591-48.098-34.272Q-48.317-33.953-48.634-33.756Q-48.950-33.558-49.293-33.558Q-49.631-33.558-49.906-33.727Q-50.181-33.896-50.304-34.200Q-50.453-33.931-50.702-33.745Q-50.950-33.558-51.231-33.558Q-51.574-33.558-51.848-33.725Q-52.123-33.892-52.123-34.217Q-52.123-34.441-51.974-34.613Q-51.824-34.784-51.591-34.784Q-51.446-34.784-51.343-34.692Q-51.240-34.599-51.240-34.450Q-51.240-34.274-51.363-34.127Q-51.486-33.980-51.671-33.949",[2223],[1937,3891],{"fill":2214,"d":3892},"M23-59.266c0-7.072-5.732-12.804-12.804-12.804-7.071 0-12.803 5.732-12.803 12.804 0 7.071 5.732 12.803 12.803 12.803S23-52.195 23-59.266Zm-12.804 0",[2208,3894,3896],{"transform":3895},"translate(60.274 -24.545)",[1937,3897],{"d":3898,"fill":2210,"stroke":2210,"className":3899,"style":2224},"M-50.844-31.914L-52.589-31.914Q-52.624-31.914-52.657-31.952Q-52.690-31.989-52.690-32.020Q-52.690-32.090-52.657-32.158Q-52.624-32.226-52.563-32.226Q-52.268-32.226-52.163-32.277Q-52.057-32.327-51.996-32.560L-50.985-36.586Q-50.985-36.625-50.959-36.766Q-50.932-36.907-50.932-36.981Q-50.932-37.377-51.196-37.377Q-51.482-37.377-51.616-37.054Q-51.750-36.731-51.868-36.225Q-51.886-36.142-51.961-36.142L-52.066-36.142Q-52.114-36.142-52.136-36.181Q-52.158-36.221-52.158-36.261Q-51.996-36.880-51.796-37.258Q-51.596-37.636-51.174-37.636Q-50.862-37.636-50.622-37.469Q-50.383-37.302-50.313-37.008Q-49.733-37.636-49.126-37.636Q-48.731-37.636-48.445-37.432Q-48.159-37.227-48.012-36.893Q-47.865-36.559-47.865-36.168Q-47.865-35.742-48.038-35.278Q-48.212-34.815-48.520-34.424Q-48.827-34.033-49.240-33.795Q-49.653-33.558-50.097-33.558Q-50.365-33.558-50.581-33.699Q-50.796-33.839-50.932-34.081L-51.328-32.499Q-51.337-32.446-51.345-32.404Q-51.354-32.363-51.354-32.336Q-51.354-32.226-50.778-32.226Q-50.734-32.226-50.708-32.196Q-50.682-32.165-50.682-32.112Q-50.682-31.914-50.844-31.914M-50.080-33.822Q-49.711-33.822-49.407-34.145Q-49.104-34.468-48.946-34.863Q-48.801-35.219-48.680-35.727Q-48.559-36.234-48.559-36.555Q-48.559-36.885-48.702-37.131Q-48.845-37.377-49.144-37.377Q-49.741-37.377-50.313-36.577Q-50.313-36.546-50.321-36.537L-50.809-34.586Q-50.743-34.265-50.561-34.044Q-50.379-33.822-50.080-33.822",[2223],[2208,3901,3902,3905],{"stroke":2282,"style":2273},[1937,3903],{"fill":2214,"d":3904},"M85.596-33.659c0-7.071-5.732-12.804-12.804-12.804-7.071 0-12.803 5.733-12.803 12.804s5.732 12.804 12.803 12.804 12.804-5.733 12.804-12.804Zm-12.804 0",[2208,3906,3907,3914],{"fill":2282,"stroke":2214,"fontSize":2240},[2208,3908,3910],{"transform":3909},"translate(119.487 1.937)",[1937,3911],{"d":3912,"fill":2282,"stroke":2282,"className":3913,"style":2224},"M-47.144-36.493L-51.706-36.493Q-51.789-36.507-51.837-36.564Q-51.886-36.621-51.886-36.691Q-51.886-36.757-51.835-36.812Q-51.785-36.867-51.706-36.880L-46.929-36.880Q-46.793-36.880-46.757-36.709L-46.757-34.621Q-46.788-34.450-46.946-34.450Q-47.017-34.450-47.074-34.498Q-47.131-34.547-47.144-34.621",[2223],[2208,3915,3916],{"transform":3909},[1937,3917],{"d":3918,"fill":2282,"stroke":2282,"className":3919,"style":2224},"M-45.504-33.949Q-45.328-33.822-45.055-33.822Q-44.765-33.822-44.552-34.076Q-44.339-34.331-44.260-34.648L-43.856-36.261Q-43.768-36.638-43.768-36.827Q-43.768-37.052-43.895-37.214Q-44.023-37.377-44.242-37.377Q-44.660-37.377-44.992-37.027Q-45.323-36.678-45.442-36.225Q-45.460-36.142-45.530-36.142L-45.640-36.142Q-45.728-36.142-45.728-36.261Q-45.596-36.801-45.174-37.219Q-44.752-37.636-44.225-37.636Q-43.891-37.636-43.616-37.465Q-43.341-37.293-43.227-36.999Q-43.069-37.271-42.823-37.454Q-42.577-37.636-42.291-37.636Q-41.953-37.636-41.680-37.469Q-41.408-37.302-41.408-36.981Q-41.408-36.753-41.551-36.584Q-41.693-36.414-41.931-36.414Q-42.071-36.414-42.177-36.507Q-42.282-36.599-42.282-36.744Q-42.282-36.929-42.159-37.071Q-42.036-37.214-41.852-37.249Q-42.032-37.377-42.309-37.377Q-42.599-37.377-42.810-37.120Q-43.021-36.863-43.100-36.546L-43.504-34.938Q-43.596-34.577-43.596-34.380Q-43.596-34.147-43.467-33.984Q-43.337-33.822-43.108-33.822Q-42.823-33.822-42.575-33.991Q-42.326-34.160-42.153-34.432Q-41.979-34.705-41.913-34.973Q-41.904-35.004-41.880-35.028Q-41.856-35.052-41.821-35.052L-41.715-35.052Q-41.676-35.052-41.650-35.015Q-41.623-34.977-41.623-34.938Q-41.711-34.591-41.931-34.272Q-42.150-33.953-42.467-33.756Q-42.783-33.558-43.126-33.558Q-43.464-33.558-43.739-33.727Q-44.014-33.896-44.137-34.200Q-44.286-33.931-44.535-33.745Q-44.783-33.558-45.064-33.558Q-45.407-33.558-45.681-33.725Q-45.956-33.892-45.956-34.217Q-45.956-34.441-45.807-34.613Q-45.657-34.784-45.424-34.784Q-45.279-34.784-45.176-34.692Q-45.073-34.599-45.073-34.450Q-45.073-34.274-45.196-34.127Q-45.319-33.980-45.504-33.949",[2223],[1937,3921],{"fill":2214,"d":3922},"M23-8.052c0-7.071-5.732-12.803-12.804-12.803-7.071 0-12.803 5.732-12.803 12.803S3.125 4.752 10.196 4.752 23-.98 23-8.052Zm-12.804 0",[2208,3924,3926],{"transform":3925},"translate(60.368 26.67)",[1937,3927],{"d":3928,"fill":2210,"stroke":2210,"className":3929,"style":2224},"M-50.998-32.020Q-50.998-32.090-50.965-32.158Q-50.932-32.226-50.871-32.226Q-50.510-32.226-50.357-32.257Q-50.273-32.275-50.229-32.314Q-50.185-32.354-50.163-32.402Q-50.141-32.451-50.115-32.560L-49.746-34.046Q-50.269-33.558-50.778-33.558Q-51.174-33.558-51.460-33.762Q-51.745-33.967-51.892-34.301Q-52.040-34.635-52.040-35.026Q-52.040-35.461-51.866-35.922Q-51.692-36.384-51.380-36.775Q-51.068-37.166-50.658-37.401Q-50.247-37.636-49.807-37.636Q-49.530-37.636-49.297-37.473Q-49.065-37.311-48.946-37.052Q-48.854-37.197-48.632-37.416Q-48.410-37.636-48.304-37.636Q-48.260-37.636-48.230-37.605Q-48.199-37.575-48.199-37.531L-48.199-37.491L-49.447-32.499Q-49.456-32.446-49.464-32.404Q-49.473-32.363-49.473-32.336Q-49.473-32.226-48.898-32.226Q-48.854-32.226-48.827-32.196Q-48.801-32.165-48.801-32.112Q-48.801-31.914-48.963-31.914L-50.897-31.914Q-50.932-31.914-50.965-31.952Q-50.998-31.989-50.998-32.020M-50.761-33.822Q-50.427-33.822-50.121-34.059Q-49.816-34.296-49.601-34.621L-49.095-36.612Q-49.152-36.929-49.344-37.153Q-49.535-37.377-49.825-37.377Q-50.194-37.377-50.493-37.058Q-50.792-36.740-50.959-36.331Q-51.095-35.984-51.220-35.474Q-51.345-34.964-51.345-34.639Q-51.345-34.314-51.207-34.068Q-51.068-33.822-50.761-33.822",[2223],[1937,3931],{"fill":2214,"d":3932},"m-40.18-38.658 36.49-14.928",[1937,3934],{"stroke":2214,"d":3935},"m-1.839-54.343-3.567-.27 1.716 1.027-.505 1.935",[1937,3937],{"fill":2214,"d":3938},"m22.231-54.343 36.49 14.928",[1937,3940],{"stroke":2214,"d":3941},"m60.572-38.658-2.356-2.692.505 1.935-1.716 1.026",[1937,3943],{"fill":2214,"d":3944},"m60.572-28.66-36.49 14.928",[1937,3946],{"stroke":2214,"d":3947},"m22.231-12.975 3.568.27-1.717-1.027.505-1.935",[1937,3949],{"fill":2214,"d":3950},"m-1.839-12.975-36.49-14.928",[1937,3952],{"stroke":2214,"d":3953},"m-40.18-28.66 2.356 2.692-.505-1.935 1.717-1.026",[2208,3955,3956,3963,3969,3975],{"fill":2282,"stroke":2214,"fontSize":2291},[2208,3957,3959],{"transform":3958},"translate(16.27 56.838)",[1937,3960],{"d":3961,"fill":2282,"stroke":2282,"className":3962,"style":2299},"M-52.162-35.354Q-52.162-35.858-51.906-36.290Q-51.650-36.721-51.214-36.973Q-50.779-37.225-50.279-37.225Q-49.892-37.225-49.550-37.081Q-49.209-36.936-48.947-36.675Q-48.685-36.413-48.543-36.077Q-48.400-35.741-48.400-35.354Q-48.400-34.862-48.664-34.452Q-48.927-34.042-49.357-33.811Q-49.787-33.581-50.279-33.581Q-50.771-33.581-51.205-33.813Q-51.638-34.046-51.900-34.454Q-52.162-34.862-52.162-35.354M-50.279-33.858Q-49.822-33.858-49.570-34.081Q-49.318-34.304-49.230-34.655Q-49.142-35.007-49.142-35.452Q-49.142-35.882-49.236-36.220Q-49.330-36.557-49.584-36.764Q-49.837-36.971-50.279-36.971Q-50.927-36.971-51.171-36.555Q-51.416-36.139-51.416-35.452Q-51.416-35.007-51.328-34.655Q-51.240-34.304-50.988-34.081Q-50.736-33.858-50.279-33.858M-45.986-33.659L-47.841-33.659L-47.841-33.956Q-47.568-33.956-47.400-34.003Q-47.232-34.050-47.232-34.218L-47.232-36.354Q-47.232-36.569-47.295-36.665Q-47.357-36.761-47.476-36.782Q-47.595-36.804-47.841-36.804L-47.841-37.100L-46.650-37.186L-46.650-36.452Q-46.537-36.667-46.343-36.835Q-46.150-37.003-45.912-37.095Q-45.673-37.186-45.420-37.186Q-44.252-37.186-44.252-36.108L-44.252-34.218Q-44.252-34.050-44.082-34.003Q-43.912-33.956-43.642-33.956L-43.642-33.659L-45.498-33.659L-45.498-33.956Q-45.224-33.956-45.056-34.003Q-44.888-34.050-44.888-34.218L-44.888-36.093Q-44.888-36.475-45.009-36.704Q-45.130-36.932-45.482-36.932Q-45.795-36.932-46.048-36.770Q-46.302-36.608-46.449-36.339Q-46.595-36.069-46.595-35.772L-46.595-34.218Q-46.595-34.050-46.425-34.003Q-46.255-33.956-45.986-33.956L-45.986-33.659M-43.197-35.413Q-43.197-35.893-42.964-36.309Q-42.732-36.725-42.322-36.975Q-41.912-37.225-41.435-37.225Q-40.705-37.225-40.306-36.784Q-39.908-36.343-39.908-35.612Q-39.908-35.507-40.002-35.483L-42.451-35.483L-42.451-35.413Q-42.451-35.003-42.330-34.647Q-42.209-34.292-41.937-34.075Q-41.666-33.858-41.236-33.858Q-40.873-33.858-40.576-34.087Q-40.279-34.315-40.177-34.667Q-40.170-34.714-40.084-34.729L-40.002-34.729Q-39.908-34.702-39.908-34.620Q-39.908-34.612-39.916-34.581Q-39.978-34.354-40.117-34.171Q-40.255-33.987-40.447-33.854Q-40.638-33.721-40.857-33.651Q-41.076-33.581-41.314-33.581Q-41.685-33.581-42.023-33.718Q-42.361-33.854-42.629-34.106Q-42.896-34.358-43.046-34.698Q-43.197-35.038-43.197-35.413M-42.443-35.721L-40.482-35.721Q-40.482-36.026-40.584-36.317Q-40.685-36.608-40.902-36.790Q-41.119-36.971-41.435-36.971Q-41.736-36.971-41.966-36.784Q-42.197-36.596-42.320-36.305Q-42.443-36.014-42.443-35.721",[2223],[2208,3964,3965],{"transform":3958},[1937,3966],{"d":3967,"fill":2282,"stroke":2282,"className":3968,"style":2299},"M-36.343-33.581L-36.343-35.386Q-36.343-35.413-36.312-35.444Q-36.281-35.475-36.257-35.475L-36.152-35.475Q-36.121-35.475-36.091-35.446Q-36.062-35.417-36.062-35.386Q-36.062-34.604-35.546-34.196Q-35.031-33.788-34.222-33.788Q-33.925-33.788-33.670-33.938Q-33.414-34.089-33.263-34.345Q-33.113-34.600-33.113-34.897Q-33.113-35.296-33.359-35.600Q-33.605-35.905-33.976-35.987L-35.097-36.245Q-35.437-36.319-35.724-36.540Q-36.011-36.761-36.177-37.079Q-36.343-37.397-36.343-37.749Q-36.343-38.179-36.113-38.534Q-35.882-38.889-35.502-39.091Q-35.121-39.292-34.695-39.292Q-34.445-39.292-34.199-39.233Q-33.953-39.175-33.734-39.052Q-33.515-38.929-33.351-38.749L-33.023-39.245Q-32.992-39.292-32.953-39.292L-32.906-39.292Q-32.879-39.292-32.847-39.261Q-32.816-39.229-32.816-39.202L-32.816-37.393Q-32.816-37.370-32.847-37.339Q-32.879-37.307-32.906-37.307L-33.007-37.307Q-33.039-37.307-33.068-37.337Q-33.097-37.366-33.097-37.393Q-33.097-37.526-33.140-37.712Q-33.183-37.897-33.248-38.052Q-33.312-38.206-33.412-38.364Q-33.511-38.522-33.601-38.612Q-34.031-39.018-34.695-39.018Q-34.972-39.018-35.232-38.886Q-35.492-38.753-35.650-38.518Q-35.808-38.284-35.808-38.003Q-35.808-37.647-35.568-37.376Q-35.328-37.104-34.961-37.018L-33.847-36.764Q-33.570-36.698-33.337-36.544Q-33.105-36.389-32.935-36.171Q-32.765-35.952-32.671-35.694Q-32.578-35.436-32.578-35.147Q-32.578-34.819-32.703-34.516Q-32.828-34.214-33.062-33.977Q-33.296-33.741-33.589-33.616Q-33.882-33.491-34.222-33.491Q-35.238-33.491-35.808-34.034L-36.136-33.538Q-36.168-33.491-36.207-33.491L-36.257-33.491Q-36.281-33.491-36.312-33.522Q-36.343-33.554-36.343-33.581M-31.625-36.393Q-31.625-36.987-31.392-37.518Q-31.160-38.050-30.744-38.450Q-30.328-38.850-29.795-39.071Q-29.261-39.292-28.656-39.292Q-28.218-39.292-27.820-39.110Q-27.421-38.929-27.113-38.596L-26.640-39.261Q-26.609-39.292-26.578-39.292L-26.531-39.292Q-26.504-39.292-26.472-39.261Q-26.441-39.229-26.441-39.202L-26.441-37.065Q-26.441-37.042-26.472-37.011Q-26.504-36.979-26.531-36.979L-26.648-36.979Q-26.675-36.979-26.707-37.011Q-26.738-37.042-26.738-37.065Q-26.738-37.331-26.880-37.684Q-27.023-38.038-27.203-38.276Q-27.457-38.608-27.806-38.802Q-28.156-38.995-28.562-38.995Q-29.066-38.995-29.519-38.776Q-29.972-38.557-30.265-38.163Q-30.761-37.495-30.761-36.393Q-30.761-35.862-30.625-35.395Q-30.488-34.929-30.212-34.563Q-29.937-34.198-29.517-33.993Q-29.097-33.788-28.554-33.788Q-28.066-33.788-27.642-34.032Q-27.218-34.276-26.970-34.696Q-26.722-35.116-26.722-35.612Q-26.722-35.647-26.693-35.673Q-26.664-35.698-26.632-35.698L-26.531-35.698Q-26.488-35.698-26.464-35.669Q-26.441-35.639-26.441-35.596Q-26.441-35.159-26.617-34.770Q-26.793-34.382-27.103-34.098Q-27.414-33.815-27.824-33.653Q-28.234-33.491-28.656-33.491Q-29.246-33.491-29.787-33.712Q-30.328-33.932-30.744-34.337Q-31.160-34.741-31.392-35.270Q-31.625-35.800-31.625-36.393M-25.488-36.393Q-25.488-36.987-25.255-37.518Q-25.023-38.050-24.607-38.450Q-24.191-38.850-23.658-39.071Q-23.125-39.292-22.519-39.292Q-22.082-39.292-21.683-39.110Q-21.285-38.929-20.976-38.596L-20.504-39.261Q-20.472-39.292-20.441-39.292L-20.394-39.292Q-20.367-39.292-20.336-39.261Q-20.304-39.229-20.304-39.202L-20.304-37.065Q-20.304-37.042-20.336-37.011Q-20.367-36.979-20.394-36.979L-20.511-36.979Q-20.539-36.979-20.570-37.011Q-20.601-37.042-20.601-37.065Q-20.601-37.331-20.744-37.684Q-20.886-38.038-21.066-38.276Q-21.320-38.608-21.670-38.802Q-22.019-38.995-22.425-38.995Q-22.929-38.995-23.382-38.776Q-23.836-38.557-24.129-38.163Q-24.625-37.495-24.625-36.393Q-24.625-35.862-24.488-35.395Q-24.351-34.929-24.076-34.563Q-23.800-34.198-23.380-33.993Q-22.961-33.788-22.418-33.788Q-21.929-33.788-21.505-34.032Q-21.082-34.276-20.834-34.696Q-20.586-35.116-20.586-35.612Q-20.586-35.647-20.556-35.673Q-20.527-35.698-20.496-35.698L-20.394-35.698Q-20.351-35.698-20.328-35.669Q-20.304-35.639-20.304-35.596Q-20.304-35.159-20.480-34.770Q-20.656-34.382-20.966-34.098Q-21.277-33.815-21.687-33.653Q-22.097-33.491-22.519-33.491Q-23.109-33.491-23.650-33.712Q-24.191-33.932-24.607-34.337Q-25.023-34.741-25.255-35.270Q-25.488-35.800-25.488-36.393",[2223],[2208,3970,3971],{"transform":3958},[1937,3972],{"d":3973,"fill":2282,"stroke":2282,"className":3974,"style":2299},"M-11.302-34.636L-16.334-34.636Q-16.412-34.643-16.461-34.692Q-16.509-34.741-16.509-34.819Q-16.509-34.889-16.462-34.940Q-16.416-34.991-16.334-35.003L-10.904-35.003Q-10.654-35.202-10.373-35.370Q-10.091-35.538-9.798-35.659Q-10.400-35.913-10.904-36.323L-16.334-36.323Q-16.412-36.331-16.461-36.380Q-16.509-36.429-16.509-36.507Q-16.509-36.577-16.462-36.628Q-16.416-36.679-16.334-36.690L-11.302-36.690Q-11.771-37.171-12.080-37.796Q-12.087-37.827-12.087-37.835Q-12.087-37.921-11.990-37.948L-11.822-37.948Q-11.759-37.936-11.724-37.882Q-11.462-37.350-11.054-36.921Q-10.646-36.491-10.125-36.198Q-9.603-35.905-9.021-35.764Q-8.959-35.753-8.959-35.659Q-8.959-35.565-9.021-35.554Q-9.603-35.413-10.125-35.120Q-10.646-34.827-11.054-34.397Q-11.462-33.968-11.724-33.436Q-11.759-33.382-11.822-33.370L-11.990-33.370Q-12.087-33.397-12.087-33.483Q-12.087-33.491-12.080-33.522Q-11.775-34.139-11.302-34.636",[2223],[2208,3976,3977],{"transform":3958},[1937,3978],{"d":3979,"fill":2282,"stroke":2282,"className":3980,"style":2299},"M-4.727-34.612L-4.727-36.354Q-4.727-36.569-4.790-36.665Q-4.852-36.761-4.971-36.782Q-5.090-36.804-5.336-36.804L-5.336-37.100L-4.090-37.186L-4.090-34.636L-4.090-34.612Q-4.090-34.300-4.036-34.138Q-3.981-33.975-3.831-33.905Q-3.680-33.835-3.360-33.835Q-2.930-33.835-2.657-34.173Q-2.383-34.511-2.383-34.956L-2.383-36.354Q-2.383-36.569-2.446-36.665Q-2.508-36.761-2.628-36.782Q-2.747-36.804-2.993-36.804L-2.993-37.100L-1.747-37.186L-1.747-34.401Q-1.747-34.190-1.684-34.095Q-1.622-33.999-1.503-33.977Q-1.383-33.956-1.137-33.956L-1.137-33.659L-2.360-33.581L-2.360-34.202Q-2.528-33.913-2.809-33.747Q-3.090-33.581-3.411-33.581Q-4.727-33.581-4.727-34.612M1.238-33.659L-0.618-33.659L-0.618-33.956Q-0.344-33.956-0.176-34.003Q-0.008-34.050-0.008-34.218L-0.008-36.354Q-0.008-36.569-0.071-36.665Q-0.133-36.761-0.253-36.782Q-0.372-36.804-0.618-36.804L-0.618-37.100L0.574-37.186L0.574-36.452Q0.687-36.667 0.880-36.835Q1.074-37.003 1.312-37.095Q1.550-37.186 1.804-37.186Q2.972-37.186 2.972-36.108L2.972-34.218Q2.972-34.050 3.142-34.003Q3.312-33.956 3.581-33.956L3.581-33.659L1.726-33.659L1.726-33.956Q1.999-33.956 2.167-34.003Q2.335-34.050 2.335-34.218L2.335-36.093Q2.335-36.475 2.214-36.704Q2.093-36.932 1.742-36.932Q1.429-36.932 1.175-36.770Q0.921-36.608 0.775-36.339Q0.628-36.069 0.628-35.772L0.628-34.218Q0.628-34.050 0.798-34.003Q0.968-33.956 1.238-33.956L1.238-33.659M4.070-33.667L4.070-34.889Q4.070-34.917 4.101-34.948Q4.132-34.979 4.156-34.979L4.261-34.979Q4.331-34.979 4.347-34.917Q4.410-34.596 4.548-34.356Q4.687-34.116 4.919-33.975Q5.152-33.835 5.460-33.835Q5.699-33.835 5.908-33.895Q6.117-33.956 6.253-34.104Q6.390-34.253 6.390-34.499Q6.390-34.753 6.179-34.919Q5.968-35.085 5.699-35.139L5.078-35.253Q4.671-35.331 4.371-35.587Q4.070-35.843 4.070-36.218Q4.070-36.585 4.271-36.807Q4.472-37.030 4.796-37.128Q5.121-37.225 5.460-37.225Q5.925-37.225 6.222-37.018L6.445-37.202Q6.468-37.225 6.499-37.225L6.550-37.225Q6.581-37.225 6.609-37.198Q6.636-37.171 6.636-37.139L6.636-36.155Q6.636-36.124 6.611-36.095Q6.585-36.065 6.550-36.065L6.445-36.065Q6.410-36.065 6.382-36.093Q6.355-36.120 6.355-36.155Q6.355-36.554 6.103-36.774Q5.851-36.995 5.453-36.995Q5.097-36.995 4.814-36.872Q4.531-36.749 4.531-36.444Q4.531-36.225 4.732-36.093Q4.933-35.960 5.179-35.917L5.804-35.804Q6.234-35.714 6.542-35.417Q6.851-35.120 6.851-34.706Q6.851-34.136 6.453-33.858Q6.054-33.581 5.460-33.581Q4.910-33.581 4.558-33.917L4.261-33.604Q4.238-33.581 4.203-33.581L4.156-33.581Q4.132-33.581 4.101-33.612Q4.070-33.643 4.070-33.667M7.476-34.491Q7.476-34.975 7.878-35.270Q8.281-35.565 8.831-35.684Q9.382-35.804 9.874-35.804L9.874-36.093Q9.874-36.319 9.759-36.526Q9.644-36.733 9.447-36.852Q9.249-36.971 9.019-36.971Q8.593-36.971 8.308-36.866Q8.378-36.839 8.425-36.784Q8.472-36.729 8.497-36.659Q8.523-36.589 8.523-36.514Q8.523-36.409 8.472-36.317Q8.421-36.225 8.330-36.175Q8.238-36.124 8.132-36.124Q8.027-36.124 7.935-36.175Q7.843-36.225 7.792-36.317Q7.742-36.409 7.742-36.514Q7.742-36.932 8.130-37.079Q8.519-37.225 9.019-37.225Q9.351-37.225 9.705-37.095Q10.058-36.964 10.287-36.710Q10.515-36.456 10.515-36.108L10.515-34.307Q10.515-34.175 10.587-34.065Q10.660-33.956 10.788-33.956Q10.913-33.956 10.982-34.061Q11.050-34.167 11.050-34.307L11.050-34.819L11.331-34.819L11.331-34.307Q11.331-34.104 11.214-33.946Q11.097-33.788 10.915-33.704Q10.734-33.620 10.531-33.620Q10.300-33.620 10.148-33.792Q9.996-33.964 9.964-34.194Q9.804-33.913 9.496-33.747Q9.187-33.581 8.835-33.581Q8.324-33.581 7.900-33.804Q7.476-34.026 7.476-34.491M8.163-34.491Q8.163-34.206 8.390-34.020Q8.617-33.835 8.910-33.835Q9.156-33.835 9.380-33.952Q9.605-34.069 9.740-34.272Q9.874-34.475 9.874-34.729L9.874-35.561Q9.609-35.561 9.324-35.507Q9.038-35.452 8.767-35.323Q8.496-35.194 8.330-34.987Q8.163-34.780 8.163-34.491M12.249-34.620L12.249-36.811L11.546-36.811L11.546-37.065Q11.902-37.065 12.144-37.298Q12.386-37.530 12.497-37.878Q12.609-38.225 12.609-38.581L12.890-38.581L12.890-37.108L14.066-37.108L14.066-36.811L12.890-36.811L12.890-34.636Q12.890-34.315 13.009-34.087Q13.128-33.858 13.410-33.858Q13.589-33.858 13.706-33.981Q13.824-34.104 13.876-34.284Q13.929-34.464 13.929-34.636L13.929-35.108L14.210-35.108L14.210-34.620Q14.210-34.366 14.105-34.126Q13.999-33.886 13.802-33.733Q13.605-33.581 13.347-33.581Q13.031-33.581 12.779-33.704Q12.527-33.827 12.388-34.061Q12.249-34.296 12.249-34.620M16.788-33.659L15.011-33.659L15.011-33.956Q15.285-33.956 15.453-34.003Q15.621-34.050 15.621-34.218L15.621-36.354Q15.621-36.569 15.564-36.665Q15.507-36.761 15.394-36.782Q15.281-36.804 15.035-36.804L15.035-37.100L16.234-37.186L16.234-34.218Q16.234-34.050 16.380-34.003Q16.527-33.956 16.788-33.956L16.788-33.659M15.347-38.581Q15.347-38.772 15.482-38.903Q15.617-39.034 15.812-39.034Q15.933-39.034 16.037-38.971Q16.140-38.909 16.203-38.805Q16.265-38.702 16.265-38.581Q16.265-38.386 16.134-38.251Q16.003-38.116 15.812-38.116Q15.613-38.116 15.480-38.249Q15.347-38.382 15.347-38.581M17.331-33.667L17.331-34.889Q17.331-34.917 17.363-34.948Q17.394-34.979 17.417-34.979L17.523-34.979Q17.593-34.979 17.609-34.917Q17.671-34.596 17.810-34.356Q17.949-34.116 18.181-33.975Q18.413-33.835 18.722-33.835Q18.960-33.835 19.169-33.895Q19.378-33.956 19.515-34.104Q19.652-34.253 19.652-34.499Q19.652-34.753 19.441-34.919Q19.230-35.085 18.960-35.139L18.339-35.253Q17.933-35.331 17.632-35.587Q17.331-35.843 17.331-36.218Q17.331-36.585 17.533-36.807Q17.734-37.030 18.058-37.128Q18.382-37.225 18.722-37.225Q19.187-37.225 19.484-37.018L19.706-37.202Q19.730-37.225 19.761-37.225L19.812-37.225Q19.843-37.225 19.871-37.198Q19.898-37.171 19.898-37.139L19.898-36.155Q19.898-36.124 19.872-36.095Q19.847-36.065 19.812-36.065L19.706-36.065Q19.671-36.065 19.644-36.093Q19.617-36.120 19.617-36.155Q19.617-36.554 19.365-36.774Q19.113-36.995 18.714-36.995Q18.359-36.995 18.076-36.872Q17.792-36.749 17.792-36.444Q17.792-36.225 17.994-36.093Q18.195-35.960 18.441-35.917L19.066-35.804Q19.496-35.714 19.804-35.417Q20.113-35.120 20.113-34.706Q20.113-34.136 19.714-33.858Q19.316-33.581 18.722-33.581Q18.171-33.581 17.820-33.917L17.523-33.604Q17.499-33.581 17.464-33.581L17.417-33.581Q17.394-33.581 17.363-33.612Q17.331-33.643 17.331-33.667M22.499-33.659L20.667-33.659L20.667-33.956Q20.937-33.956 21.105-34.001Q21.273-34.046 21.273-34.218L21.273-36.811L20.632-36.811L20.632-37.108L21.273-37.108L21.273-38.042Q21.273-38.456 21.581-38.737Q21.890-39.018 22.335-39.155Q22.781-39.292 23.187-39.292Q23.589-39.292 23.908-39.065Q24.226-38.839 24.226-38.452Q24.226-38.276 24.113-38.163Q23.999-38.050 23.828-38.050Q23.652-38.050 23.538-38.163Q23.425-38.276 23.425-38.452Q23.425-38.596 23.515-38.706Q23.605-38.815 23.738-38.843Q23.453-39.034 23.105-39.034Q22.808-39.034 22.521-38.913Q22.234-38.792 22.050-38.559Q21.867-38.327 21.867-38.026L21.867-37.108L23.019-37.108L24.242-37.202L24.242-34.218Q24.242-34.050 24.410-34.003Q24.578-33.956 24.851-33.956L24.851-33.659L23.019-33.659L23.019-33.956Q23.288-33.956 23.456-34.001Q23.624-34.046 23.624-34.218L23.624-36.378Q23.624-36.585 23.578-36.684Q23.531-36.784 23.355-36.811L21.890-36.811L21.890-34.218Q21.890-34.050 22.058-34.003Q22.226-33.956 22.499-33.956L22.499-33.659M25.456-34.491Q25.456-34.975 25.859-35.270Q26.261-35.565 26.812-35.684Q27.363-35.804 27.855-35.804L27.855-36.093Q27.855-36.319 27.740-36.526Q27.624-36.733 27.427-36.852Q27.230-36.971 26.999-36.971Q26.574-36.971 26.288-36.866Q26.359-36.839 26.406-36.784Q26.453-36.729 26.478-36.659Q26.503-36.589 26.503-36.514Q26.503-36.409 26.453-36.317Q26.402-36.225 26.310-36.175Q26.218-36.124 26.113-36.124Q26.007-36.124 25.915-36.175Q25.824-36.225 25.773-36.317Q25.722-36.409 25.722-36.514Q25.722-36.932 26.111-37.079Q26.499-37.225 26.999-37.225Q27.331-37.225 27.685-37.095Q28.038-36.964 28.267-36.710Q28.496-36.456 28.496-36.108L28.496-34.307Q28.496-34.175 28.568-34.065Q28.640-33.956 28.769-33.956Q28.894-33.956 28.962-34.061Q29.031-34.167 29.031-34.307L29.031-34.819L29.312-34.819L29.312-34.307Q29.312-34.104 29.195-33.946Q29.078-33.788 28.896-33.704Q28.714-33.620 28.511-33.620Q28.281-33.620 28.128-33.792Q27.976-33.964 27.945-34.194Q27.785-33.913 27.476-33.747Q27.167-33.581 26.816-33.581Q26.304-33.581 25.880-33.804Q25.456-34.026 25.456-34.491M26.144-34.491Q26.144-34.206 26.371-34.020Q26.597-33.835 26.890-33.835Q27.136-33.835 27.361-33.952Q27.585-34.069 27.720-34.272Q27.855-34.475 27.855-34.729L27.855-35.561Q27.589-35.561 27.304-35.507Q27.019-35.452 26.747-35.323Q26.476-35.194 26.310-34.987Q26.144-34.780 26.144-34.491M30.519-33.659L30.238-33.659L30.238-38.378Q30.238-38.593 30.175-38.688Q30.113-38.784 29.996-38.805Q29.878-38.827 29.632-38.827L29.632-39.124L30.855-39.210L30.855-36.721Q31.331-37.186 32.031-37.186Q32.511-37.186 32.919-36.942Q33.328-36.698 33.564-36.284Q33.800-35.870 33.800-35.386Q33.800-35.011 33.652-34.682Q33.503-34.354 33.234-34.102Q32.964-33.850 32.621-33.716Q32.277-33.581 31.917-33.581Q31.597-33.581 31.298-33.729Q30.999-33.878 30.792-34.139L30.519-33.659M30.878-36.331L30.878-34.491Q31.031-34.194 31.290-34.014Q31.550-33.835 31.863-33.835Q32.288-33.835 32.556-34.054Q32.824-34.272 32.939-34.618Q33.054-34.964 33.054-35.386Q33.054-36.034 32.806-36.483Q32.558-36.932 31.960-36.932Q31.624-36.932 31.335-36.774Q31.046-36.616 30.878-36.331M36.238-33.659L34.406-33.659L34.406-33.956Q34.679-33.956 34.847-34.003Q35.015-34.050 35.015-34.218L35.015-38.378Q35.015-38.593 34.953-38.688Q34.890-38.784 34.771-38.805Q34.652-38.827 34.406-38.827L34.406-39.124L35.628-39.210L35.628-34.218Q35.628-34.050 35.796-34.003Q35.964-33.956 36.238-33.956L36.238-33.659M36.683-35.413Q36.683-35.893 36.915-36.309Q37.148-36.725 37.558-36.975Q37.968-37.225 38.445-37.225Q39.175-37.225 39.574-36.784Q39.972-36.343 39.972-35.612Q39.972-35.507 39.878-35.483L37.429-35.483L37.429-35.413Q37.429-35.003 37.550-34.647Q37.671-34.292 37.943-34.075Q38.214-33.858 38.644-33.858Q39.007-33.858 39.304-34.087Q39.601-34.315 39.703-34.667Q39.710-34.714 39.796-34.729L39.878-34.729Q39.972-34.702 39.972-34.620Q39.972-34.612 39.964-34.581Q39.902-34.354 39.763-34.171Q39.624-33.987 39.433-33.854Q39.242-33.721 39.023-33.651Q38.804-33.581 38.566-33.581Q38.195-33.581 37.857-33.718Q37.519-33.854 37.251-34.106Q36.984-34.358 36.833-34.698Q36.683-35.038 36.683-35.413M37.437-35.721L39.398-35.721Q39.398-36.026 39.296-36.317Q39.195-36.608 38.978-36.790Q38.761-36.971 38.445-36.971Q38.144-36.971 37.913-36.784Q37.683-36.596 37.560-36.305Q37.437-36.014 37.437-35.721",[2223],[2352,3982,3984,3985,3274,4021,4057,4058,3274,4094],{"className":3983},[2355],"UNSAT: ",[393,3986,3988],{"className":3987},[396],[393,3989,3991,4009],{"className":3990,"ariaHidden":401},[400],[393,3992,3994,3997,4000,4003,4006],{"className":3993},[405],[393,3995],{"className":3996,"style":484},[409],[393,3998,508],{"className":3999},[414,415],[393,4001],{"className":4002,"style":770},[430],[393,4004,1960],{"className":4005},[774,1959],[393,4007],{"className":4008,"style":770},[430],[393,4010,4012,4015,4018],{"className":4011},[405],[393,4013],{"className":4014,"style":484},[409],[393,4016,704],{"className":4017},[414],[393,4019,508],{"className":4020},[414,415],[393,4022,4024],{"className":4023},[396],[393,4025,4027,4048],{"className":4026,"ariaHidden":401},[400],[393,4028,4030,4033,4036,4039,4042,4045],{"className":4029},[405],[393,4031],{"className":4032,"style":484},[409],[393,4034,704],{"className":4035},[414],[393,4037,508],{"className":4038},[414,415],[393,4040],{"className":4041,"style":770},[430],[393,4043,1960],{"className":4044},[774,1959],[393,4046],{"className":4047,"style":770},[430],[393,4049,4051,4054],{"className":4050},[405],[393,4052],{"className":4053,"style":484},[409],[393,4055,508],{"className":4056},[414,415]," put both in one SCC, forcing ",[393,4059,4061],{"className":4060},[396],[393,4062,4064,4082],{"className":4063,"ariaHidden":401},[400],[393,4065,4067,4070,4073,4076,4079],{"className":4066},[405],[393,4068],{"className":4069,"style":484},[409],[393,4071,508],{"className":4072},[414,415],[393,4074],{"className":4075,"style":770},[430],[393,4077,1490],{"className":4078},[774],[393,4080],{"className":4081,"style":770},[430],[393,4083,4085,4088,4091],{"className":4084},[405],[393,4086],{"className":4087,"style":484},[409],[393,4089,704],{"className":4090},[414],[393,4092,508],{"className":4093},[414,415],[393,4095,4097],{"className":4096},[396],[393,4098,4100,4121],{"className":4099,"ariaHidden":401},[400],[393,4101,4103,4106,4109,4112,4115,4118],{"className":4102},[405],[393,4104],{"className":4105,"style":484},[409],[393,4107,704],{"className":4108},[414],[393,4110,508],{"className":4111},[414,415],[393,4113],{"className":4114,"style":770},[430],[393,4116,1490],{"className":4117},[774],[393,4119],{"className":4120,"style":770},[430],[393,4122,4124,4127],{"className":4123},[405],[393,4125],{"className":4126,"style":484},[409],[393,4128,508],{"className":4129},[414,415],[381,4131,4132,4133,4136,4137,4140,4141],{},"The ",[388,4134,4135],{},"converse",", that if no variable collides with its negation in an SCC then a\nsatisfying assignment ",[461,4138,4139],{},"exists",", is the more delicate half. We do not just assert\nit; the construction below builds an explicit assignment and the same skew-symmetry\nargument proves it consistent, which establishes the converse constructively.",[1254,4142,4143],{},[385,4144,880],{"href":4145,"ariaDescribedBy":4146,"dataFootnoteRef":376,"id":4147},"#user-content-fn-erickson-scc",[1260],"user-content-fnref-erickson-scc",[1263,4149,4151],{"id":4150},"constructing-a-satisfying-assignment","Constructing a satisfying assignment",[381,4153,4154,4155,3274,4207,4262,4263,4266,4267,4282],{},"Suppose the test passes: no ",[393,4156,4158],{"className":4157},[396],[393,4159,4161],{"className":4160,"ariaHidden":401},[400],[393,4162,4164,4167],{"className":4163},[405],[393,4165],{"className":4166,"style":645},[409],[393,4168,4170,4173],{"className":4169},[414],[393,4171,508],{"className":4172},[414,415],[393,4174,4176],{"className":4175},[512],[393,4177,4179,4199],{"className":4178},[516,517],[393,4180,4182,4196],{"className":4181},[521],[393,4183,4185],{"className":4184,"style":664},[525],[393,4186,4187,4190],{"style":529},[393,4188],{"className":4189,"style":534},[533],[393,4191,4193],{"className":4192},[538,539,540,541],[393,4194,676],{"className":4195},[414,415,541],[393,4197,550],{"className":4198},[549],[393,4200,4202],{"className":4201},[521],[393,4203,4205],{"className":4204,"style":557},[525],[393,4206],{},[393,4208,4210],{"className":4209},[396],[393,4211,4213],{"className":4212,"ariaHidden":401},[400],[393,4214,4216,4219,4222],{"className":4215},[405],[393,4217],{"className":4218,"style":645},[409],[393,4220,704],{"className":4221},[414],[393,4223,4225,4228],{"className":4224},[414],[393,4226,508],{"className":4227},[414,415],[393,4229,4231],{"className":4230},[512],[393,4232,4234,4254],{"className":4233},[516,517],[393,4235,4237,4251],{"className":4236},[521],[393,4238,4240],{"className":4239,"style":664},[525],[393,4241,4242,4245],{"style":529},[393,4243],{"className":4244,"style":534},[533],[393,4246,4248],{"className":4247},[538,539,540,541],[393,4249,676],{"className":4250},[414,415,541],[393,4252,550],{"className":4253},[549],[393,4255,4257],{"className":4256},[521],[393,4258,4260],{"className":4259,"style":557},[525],[393,4261],{}," share an SCC. Contract each SCC\nto a single super-vertex; the result is the ",[388,4264,4265],{},"condensation"," of ",[393,4268,4270],{"className":4269},[396],[393,4271,4273],{"className":4272,"ariaHidden":401},[400],[393,4274,4276,4279],{"className":4275},[405],[393,4277],{"className":4278,"style":762},[409],[393,4280,1582],{"className":4281},[414,415],", which is\nalways a directed acyclic graph (any cycle among components would have merged\nthem). A DAG has a topological order, and topological order is what we assign by.",[3141,4284,4286],{"type":4285},"remark",[381,4287,4288,4291,4292,4307,4308,4344,4345,4360,4361,4364,4365,4383,4384,4422],{},[388,4289,4290],{},"Remark (The assignment rule)."," For each variable ",[393,4293,4295],{"className":4294},[396],[393,4296,4298],{"className":4297,"ariaHidden":401},[400],[393,4299,4301,4304],{"className":4300},[405],[393,4302],{"className":4303,"style":484},[409],[393,4305,508],{"className":4306},[414,415],", set ",[393,4309,4311],{"className":4310},[396],[393,4312,4314,4332],{"className":4313,"ariaHidden":401},[400],[393,4315,4317,4320,4323,4326,4329],{"className":4316},[405],[393,4318],{"className":4319,"style":484},[409],[393,4321,508],{"className":4322},[414,415],[393,4324],{"className":4325,"style":770},[430],[393,4327,775],{"className":4328},[774],[393,4330],{"className":4331,"style":770},[430],[393,4333,4335,4338],{"className":4334},[405],[393,4336],{"className":4337,"style":3660},[409],[393,4339,4341],{"className":4340},[414,1818],[393,4342,401],{"className":4343},[414]," exactly when the SCC of\n",[393,4346,4348],{"className":4347},[396],[393,4349,4351],{"className":4350,"ariaHidden":401},[400],[393,4352,4354,4357],{"className":4353},[405],[393,4355],{"className":4356,"style":484},[409],[393,4358,508],{"className":4359},[414,415]," comes ",[461,4362,4363],{},"after"," the SCC of ",[393,4366,4368],{"className":4367},[396],[393,4369,4371],{"className":4370,"ariaHidden":401},[400],[393,4372,4374,4377,4380],{"className":4373},[405],[393,4375],{"className":4376,"style":484},[409],[393,4378,704],{"className":4379},[414],[393,4381,508],{"className":4382},[414,415]," in topological order of the condensation.\nEquivalently, ",[388,4385,4386,4387,4402,4403,4421],{},"assign true to whichever of ",[393,4388,4390],{"className":4389},[396],[393,4391,4393],{"className":4392,"ariaHidden":401},[400],[393,4394,4396,4399],{"className":4395},[405],[393,4397],{"className":4398,"style":484},[409],[393,4400,508],{"className":4401},[414,415],", ",[393,4404,4406],{"className":4405},[396],[393,4407,4409],{"className":4408,"ariaHidden":401},[400],[393,4410,4412,4415,4418],{"className":4411},[405],[393,4413],{"className":4414,"style":484},[409],[393,4416,704],{"className":4417},[414],[393,4419,508],{"className":4420},[414,415]," lies in the SCC\nthat is topologically later"," (closer to the sinks).",[381,4424,4425,4426,4429,4430,4433],{},"A two-pass SCC algorithm (Kosaraju or Tarjan) already numbers the components in a\n",[461,4427,4428],{},"reverse"," topological order: Tarjan emits components sink-first, and Kosaraju's\nsecond pass discovers them in the order of decreasing first-pass finish time. So\nthe comparison costs nothing extra: we set a literal true iff its component is\ndiscovered ",[461,4431,4432],{},"before"," its negation's in that reverse order (i.e. later\ntopologically).",[4435,4436,4440],"pre",{"className":4437,"code":4438,"language":4439,"meta":376,"style":376},"language-algorithm shiki shiki-themes Vesper Light - Orange Boost (Quick Open Adjusted) vesper","caption: $\\textsc{TwoSat}(n, \\text{clauses})$ — decide and assign in $O(n+m)$\nbuild implication graph $G$ on $2n$ literal-vertices\nfor each clause $(a \\vee b)$ do\n  add edge $\\lnot a \\to b$ and edge $\\lnot b \\to a$\n$comp[\\cdot] \\gets \\textsc{StronglyConnectedComponents}(G)$  \u002F\u002F comp in reverse topo order\nfor $i \\gets 1$ to $n$ do\n  if $comp[x_i] = comp[\\lnot x_i]$ then\n    return Unsatisfiable\nfor $i \\gets 1$ to $n$ do\n  $value[x_i] \\gets (comp[x_i] \u003C comp[\\lnot x_i])$  \u002F\u002F later topo $\\Rightarrow$ true\nreturn $value$\n","algorithm",[4441,4442,4443,4449,4454,4459,4464,4469,4474,4479,4484,4488,4493],"code",{"__ignoreMap":376},[393,4444,4446],{"class":4445,"line":6},"line",[393,4447,4448],{},"caption: $\\textsc{TwoSat}(n, \\text{clauses})$ — decide and assign in $O(n+m)$\n",[393,4450,4451],{"class":4445,"line":18},[393,4452,4453],{},"build implication graph $G$ on $2n$ literal-vertices\n",[393,4455,4456],{"class":4445,"line":24},[393,4457,4458],{},"for each clause $(a \\vee b)$ do\n",[393,4460,4461],{"class":4445,"line":73},[393,4462,4463],{},"  add edge $\\lnot a \\to b$ and edge $\\lnot b \\to a$\n",[393,4465,4466],{"class":4445,"line":102},[393,4467,4468],{},"$comp[\\cdot] \\gets \\textsc{StronglyConnectedComponents}(G)$  \u002F\u002F comp in reverse topo order\n",[393,4470,4471],{"class":4445,"line":108},[393,4472,4473],{},"for $i \\gets 1$ to $n$ do\n",[393,4475,4476],{"class":4445,"line":116},[393,4477,4478],{},"  if $comp[x_i] = comp[\\lnot x_i]$ then\n",[393,4480,4481],{"class":4445,"line":196},[393,4482,4483],{},"    return Unsatisfiable\n",[393,4485,4486],{"class":4445,"line":202},[393,4487,4473],{},[393,4489,4490],{"class":4445,"line":283},[393,4491,4492],{},"  $value[x_i] \\gets (comp[x_i] \u003C comp[\\lnot x_i])$  \u002F\u002F later topo $\\Rightarrow$ true\n",[393,4494,4495],{"class":4445,"line":333},[393,4496,4497],{},"return $value$\n",[381,4499,4500,4503,4504,4519,4520,4535,4536,4551,4552,4555,4556,3221,4589,4617,4618,4645,4646,4661,4662,4680,4681,4684,4685,4700,4701,4716,4717,4735,4736,4751,4752,4785,4786,1991,4825,4843,4844,4862,4863,4878,4879,4882,4883,4898,4899,4914,4915],{},[388,4501,4502],{},"Why the rule is consistent."," We must check the assignment never violates an\nimplication edge, never sets some ",[393,4505,4507],{"className":4506},[396],[393,4508,4510],{"className":4509,"ariaHidden":401},[400],[393,4511,4513,4516],{"className":4512},[405],[393,4514],{"className":4515,"style":484},[409],[393,4517,1871],{"className":4518},[414,415]," true and a forced ",[393,4521,4523],{"className":4522},[396],[393,4524,4526],{"className":4525,"ariaHidden":401},[400],[393,4527,4529,4532],{"className":4528},[405],[393,4530],{"className":4531,"style":484},[409],[393,4533,1892],{"className":4534,"style":1891},[414,415]," false. Two facts make\nthis automatic. First, edges of ",[393,4537,4539],{"className":4538},[396],[393,4540,4542],{"className":4541,"ariaHidden":401},[400],[393,4543,4545,4548],{"className":4544},[405],[393,4546],{"className":4547,"style":762},[409],[393,4549,1582],{"className":4550},[414,415]," run from earlier components to ",[461,4553,4554],{},"later"," ones in\ntopological order (that is what topological order means for a DAG), so an edge\n",[393,4557,4559],{"className":4558},[396],[393,4560,4562,4580],{"className":4561,"ariaHidden":401},[400],[393,4563,4565,4568,4571,4574,4577],{"className":4564},[405],[393,4566],{"className":4567,"style":484},[409],[393,4569,1871],{"className":4570},[414,415],[393,4572],{"className":4573,"style":770},[430],[393,4575,1878],{"className":4576},[774],[393,4578],{"className":4579,"style":770},[430],[393,4581,4583,4586],{"className":4582},[405],[393,4584],{"className":4585,"style":484},[409],[393,4587,1892],{"className":4588,"style":1891},[414,415],[393,4590,4592],{"className":4591},[396],[393,4593,4595],{"className":4594,"ariaHidden":401},[400],[393,4596,4598,4601,4608,4611,4614],{"className":4597},[405],[393,4599],{"className":4600,"style":410},[409],[393,4602,4604],{"className":4603},[414,1818],[393,4605,4607],{"className":4606},[414],"comp",[393,4609,422],{"className":4610},[421],[393,4612,1871],{"className":4613},[414,415],[393,4615,454],{"className":4616},[453]," no later than ",[393,4619,4621],{"className":4620},[396],[393,4622,4624],{"className":4623,"ariaHidden":401},[400],[393,4625,4627,4630,4636,4639,4642],{"className":4626},[405],[393,4628],{"className":4629,"style":410},[409],[393,4631,4633],{"className":4632},[414,1818],[393,4634,4607],{"className":4635},[414],[393,4637,422],{"className":4638},[421],[393,4640,1892],{"className":4641,"style":1891},[414,415],[393,4643,454],{"className":4644},[453],". Second, the\nskew-symmetry of ",[393,4647,4649],{"className":4648},[396],[393,4650,4652],{"className":4651,"ariaHidden":401},[400],[393,4653,4655,4658],{"className":4654},[405],[393,4656],{"className":4657,"style":762},[409],[393,4659,1582],{"className":4660},[414,415]," guarantees that the condensation has a matching central\nsymmetry: the component of ",[393,4663,4665],{"className":4664},[396],[393,4666,4668],{"className":4667,"ariaHidden":401},[400],[393,4669,4671,4674,4677],{"className":4670},[405],[393,4672],{"className":4673,"style":484},[409],[393,4675,704],{"className":4676},[414],[393,4678,1871],{"className":4679},[414,415]," sits in the ",[461,4682,4683],{},"mirror"," position to the\ncomponent of ",[393,4686,4688],{"className":4687},[396],[393,4689,4691],{"className":4690,"ariaHidden":401},[400],[393,4692,4694,4697],{"className":4693},[405],[393,4695],{"className":4696,"style":484},[409],[393,4698,1871],{"className":4699},[414,415],". Concretely, if ",[393,4702,4704],{"className":4703},[396],[393,4705,4707],{"className":4706,"ariaHidden":401},[400],[393,4708,4710,4713],{"className":4709},[405],[393,4711],{"className":4712,"style":484},[409],[393,4714,1871],{"className":4715},[414,415],"'s component is topologically later than\n",[393,4718,4720],{"className":4719},[396],[393,4721,4723],{"className":4722,"ariaHidden":401},[400],[393,4724,4726,4729,4732],{"className":4725},[405],[393,4727],{"className":4728,"style":484},[409],[393,4730,704],{"className":4731},[414],[393,4733,1871],{"className":4734},[414,415],"'s, so we set ",[393,4737,4739],{"className":4738},[396],[393,4740,4742],{"className":4741,"ariaHidden":401},[400],[393,4743,4745,4748],{"className":4744},[405],[393,4746],{"className":4747,"style":484},[409],[393,4749,1871],{"className":4750},[414,415]," true, then for any edge ",[393,4753,4755],{"className":4754},[396],[393,4756,4758,4776],{"className":4757,"ariaHidden":401},[400],[393,4759,4761,4764,4767,4770,4773],{"className":4760},[405],[393,4762],{"className":4763,"style":484},[409],[393,4765,1871],{"className":4766},[414,415],[393,4768],{"className":4769,"style":770},[430],[393,4771,1878],{"className":4772},[774],[393,4774],{"className":4775,"style":770},[430],[393,4777,4779,4782],{"className":4778},[405],[393,4780],{"className":4781,"style":484},[409],[393,4783,1892],{"className":4784,"style":1891},[414,415]," the mirror edge\n",[393,4787,4789],{"className":4788},[396],[393,4790,4792,4813],{"className":4791,"ariaHidden":401},[400],[393,4793,4795,4798,4801,4804,4807,4810],{"className":4794},[405],[393,4796],{"className":4797,"style":484},[409],[393,4799,704],{"className":4800},[414],[393,4802,1892],{"className":4803,"style":1891},[414,415],[393,4805],{"className":4806,"style":770},[430],[393,4808,1878],{"className":4809},[774],[393,4811],{"className":4812,"style":770},[430],[393,4814,4816,4819,4822],{"className":4815},[405],[393,4817],{"className":4818,"style":484},[409],[393,4820,704],{"className":4821},[414],[393,4823,1871],{"className":4824},[414,415],[393,4826,4828],{"className":4827},[396],[393,4829,4831],{"className":4830,"ariaHidden":401},[400],[393,4832,4834,4837,4840],{"className":4833},[405],[393,4835],{"className":4836,"style":484},[409],[393,4838,704],{"className":4839},[414],[393,4841,1892],{"className":4842,"style":1891},[414,415],"'s component to be no later than ",[393,4845,4847],{"className":4846},[396],[393,4848,4850],{"className":4849,"ariaHidden":401},[400],[393,4851,4853,4856,4859],{"className":4852},[405],[393,4854],{"className":4855,"style":484},[409],[393,4857,704],{"className":4858},[414],[393,4860,1871],{"className":4861},[414,415],"'s,\nhence ",[393,4864,4866],{"className":4865},[396],[393,4867,4869],{"className":4868,"ariaHidden":401},[400],[393,4870,4872,4875],{"className":4871},[405],[393,4873],{"className":4874,"style":484},[409],[393,4876,1892],{"className":4877,"style":1891},[414,415],"'s component is no ",[461,4880,4881],{},"earlier"," than ",[393,4884,4886],{"className":4885},[396],[393,4887,4889],{"className":4888,"ariaHidden":401},[400],[393,4890,4892,4895],{"className":4891},[405],[393,4893],{"className":4894,"style":484},[409],[393,4896,1871],{"className":4897},[414,415],"'s, so ",[393,4900,4902],{"className":4901},[396],[393,4903,4905],{"className":4904,"ariaHidden":401},[400],[393,4906,4908,4911],{"className":4907},[405],[393,4909],{"className":4910,"style":484},[409],[393,4912,1892],{"className":4913,"style":1891},[414,415]," is also assigned true. The\nedge is satisfied. No clause can be violated, and the converse of the theorem\nholds.",[1254,4916,4917],{},[385,4918,946],{"href":4919,"ariaDescribedBy":4920,"dataFootnoteRef":376,"id":4921},"#user-content-fn-clrs-scc",[1260],"user-content-fnref-clrs-scc",[2195,4923,4925,5225],{"className":4924},[2198,2199],[2201,4926,4930],{"xmlns":2203,"width":4927,"height":4928,"viewBox":4929},"400.238","86.837","-75 -75 300.179 65.128",[2208,4931,4932,4935,4962,4965,4989,4992,5016,5048,5077,5106],{"stroke":2210,"style":2211},[1937,4933],{"fill":2214,"d":4934},"M-38.177-71.87h-22.826a4 4 0 0 0-4 4v17.607a4 4 0 0 0 4 4h22.826a4 4 0 0 0 4-4V-67.87a4 4 0 0 0-4-4Zm-26.826 25.607",[2208,4936,4937,4944,4950,4956],{"stroke":2214},[2208,4938,4940],{"transform":4939},"translate(-12.413 2.25)",[1937,4941],{"d":4942,"fill":2210,"stroke":2210,"className":4943,"style":2224},"M-47.617-57.985L-47.617-60.173Q-47.617-60.639-47.997-60.914Q-48.377-61.189-48.861-61.189Q-48.887-61.189-48.920-61.213Q-48.953-61.237-48.953-61.272L-48.953-61.369Q-48.953-61.399-48.918-61.426Q-48.882-61.452-48.861-61.452Q-48.377-61.452-47.997-61.720Q-47.617-61.988-47.617-62.459L-47.617-64.647Q-47.617-65.065-47.325-65.328Q-47.032-65.592-46.606-65.704Q-46.180-65.816-45.784-65.816L-45.701-65.816Q-45.670-65.816-45.642-65.792Q-45.613-65.768-45.613-65.737L-45.613-65.636Q-45.613-65.614-45.646-65.585Q-45.679-65.557-45.701-65.557Q-46.175-65.557-46.560-65.306Q-46.944-65.056-46.944-64.612L-46.944-62.423Q-46.944-62.010-47.250-61.727Q-47.555-61.443-48.008-61.316Q-47.731-61.241-47.487-61.090Q-47.243-60.938-47.094-60.714Q-46.944-60.490-46.944-60.209L-46.944-58.020Q-46.944-57.717-46.760-57.504Q-46.575-57.291-46.292-57.183Q-46.008-57.075-45.701-57.075Q-45.670-57.075-45.642-57.051Q-45.613-57.027-45.613-56.996L-45.613-56.895Q-45.613-56.873-45.646-56.845Q-45.679-56.816-45.701-56.816L-45.784-56.816Q-46.180-56.816-46.606-56.928Q-47.032-57.040-47.325-57.304Q-47.617-57.567-47.617-57.985M-39.715-61.900L-44.277-61.900Q-44.361-61.914-44.409-61.971Q-44.457-62.028-44.457-62.098Q-44.457-62.164-44.407-62.219Q-44.356-62.274-44.277-62.287L-39.500-62.287Q-39.364-62.287-39.329-62.116L-39.329-60.028Q-39.360-59.857-39.518-59.857Q-39.588-59.857-39.645-59.905Q-39.702-59.954-39.715-60.028",[2223],[2208,4945,4946],{"transform":4939},[1937,4947],{"d":4948,"fill":2210,"stroke":2210,"className":4949,"style":2224},"M-38.070-59.356Q-37.894-59.229-37.621-59.229Q-37.331-59.229-37.118-59.483Q-36.905-59.738-36.826-60.055L-36.422-61.668Q-36.334-62.045-36.334-62.234Q-36.334-62.459-36.461-62.621Q-36.589-62.784-36.808-62.784Q-37.226-62.784-37.558-62.434Q-37.889-62.085-38.008-61.632Q-38.026-61.549-38.096-61.549L-38.206-61.549Q-38.294-61.549-38.294-61.668Q-38.162-62.208-37.740-62.626Q-37.318-63.043-36.791-63.043Q-36.457-63.043-36.182-62.872Q-35.907-62.700-35.793-62.406Q-35.635-62.678-35.389-62.861Q-35.143-63.043-34.857-63.043Q-34.519-63.043-34.246-62.876Q-33.974-62.709-33.974-62.388Q-33.974-62.160-34.117-61.991Q-34.259-61.821-34.497-61.821Q-34.637-61.821-34.743-61.914Q-34.848-62.006-34.848-62.151Q-34.848-62.336-34.725-62.478Q-34.602-62.621-34.418-62.656Q-34.598-62.784-34.875-62.784Q-35.165-62.784-35.376-62.527Q-35.587-62.270-35.666-61.953L-36.070-60.345Q-36.162-59.984-36.162-59.787Q-36.162-59.554-36.033-59.391Q-35.903-59.229-35.674-59.229Q-35.389-59.229-35.141-59.398Q-34.892-59.567-34.719-59.839Q-34.545-60.112-34.479-60.380Q-34.470-60.411-34.446-60.435Q-34.422-60.459-34.387-60.459L-34.281-60.459Q-34.242-60.459-34.216-60.422Q-34.189-60.384-34.189-60.345Q-34.277-59.998-34.497-59.679Q-34.716-59.360-35.033-59.163Q-35.349-58.965-35.692-58.965Q-36.030-58.965-36.305-59.134Q-36.580-59.303-36.703-59.607Q-36.852-59.338-37.101-59.152Q-37.349-58.965-37.630-58.965Q-37.973-58.965-38.247-59.132Q-38.522-59.299-38.522-59.624Q-38.522-59.848-38.373-60.020Q-38.223-60.191-37.990-60.191Q-37.845-60.191-37.742-60.099Q-37.639-60.006-37.639-59.857Q-37.639-59.681-37.762-59.534Q-37.885-59.387-38.070-59.356",[2223],[2208,4951,4952],{"transform":4939},[1937,4953],{"d":4954,"fill":2210,"stroke":2210,"className":4955,"style":2463},"M-32.783-58.517Q-32.487-58.180-31.757-58.180Q-31.499-58.180-31.319-58.308Q-31.139-58.435-31.051-58.643Q-30.963-58.851-30.963-59.109Q-30.963-59.504-31.170-59.775Q-31.376-60.046-31.763-60.046L-32.229-60.046Q-32.293-60.061-32.308-60.123L-32.308-60.190Q-32.293-60.246-32.229-60.263L-31.827-60.287Q-31.617-60.287-31.448-60.429Q-31.280-60.571-31.187-60.785Q-31.095-60.999-31.095-61.215Q-31.095-61.503-31.280-61.668Q-31.464-61.834-31.757-61.834Q-32.018-61.834-32.242-61.766Q-32.466-61.699-32.613-61.541Q-32.484-61.523-32.405-61.434Q-32.326-61.344-32.326-61.215Q-32.326-61.078-32.421-60.983Q-32.516-60.887-32.657-60.887Q-32.791-60.887-32.888-60.984Q-32.985-61.081-32.985-61.215Q-32.985-61.503-32.794-61.694Q-32.604-61.886-32.323-61.971Q-32.041-62.056-31.757-62.056Q-31.482-62.056-31.181-61.965Q-30.881-61.875-30.673-61.686Q-30.465-61.497-30.465-61.215Q-30.465-60.846-30.711-60.574Q-30.957-60.301-31.329-60.172Q-30.910-60.079-30.593-59.796Q-30.275-59.513-30.275-59.115Q-30.275-58.752-30.494-58.486Q-30.714-58.221-31.060-58.081Q-31.406-57.940-31.757-57.940Q-31.980-57.940-32.227-57.988Q-32.475-58.037-32.695-58.147Q-32.914-58.256-33.046-58.435Q-33.178-58.614-33.178-58.869Q-33.178-59.018-33.076-59.121Q-32.973-59.223-32.824-59.223Q-32.674-59.223-32.572-59.121Q-32.469-59.018-32.469-58.869Q-32.469-58.737-32.558-58.636Q-32.648-58.535-32.783-58.517",[2223],[2208,4957,4958],{"transform":4939},[1937,4959],{"d":4960,"fill":2210,"stroke":2210,"className":4961,"style":2224},"M-28.752-56.895L-28.752-56.996Q-28.752-57.027-28.721-57.051Q-28.690-57.075-28.660-57.075Q-28.352-57.075-28.068-57.183Q-27.785-57.291-27.600-57.504Q-27.416-57.717-27.416-58.020L-27.416-60.209Q-27.416-60.499-27.266-60.721Q-27.117-60.942-26.875-61.092Q-26.634-61.241-26.357-61.316Q-26.814-61.448-27.115-61.729Q-27.416-62.010-27.416-62.423L-27.416-64.612Q-27.416-64.915-27.600-65.128Q-27.785-65.341-28.068-65.449Q-28.352-65.557-28.660-65.557Q-28.677-65.557-28.714-65.585Q-28.752-65.614-28.752-65.636L-28.752-65.737Q-28.752-65.768-28.721-65.792Q-28.690-65.816-28.660-65.816L-28.580-65.816Q-28.181-65.816-27.754-65.704Q-27.328-65.592-27.036-65.328Q-26.743-65.065-26.743-64.647L-26.743-62.459Q-26.743-62.142-26.563-61.914Q-26.383-61.685-26.093-61.569Q-25.803-61.452-25.500-61.452Q-25.473-61.452-25.443-61.426Q-25.412-61.399-25.412-61.369L-25.412-61.272Q-25.412-61.237-25.441-61.213Q-25.469-61.189-25.500-61.189Q-25.983-61.189-26.363-60.914Q-26.743-60.639-26.743-60.173L-26.743-57.985Q-26.743-57.567-27.036-57.304Q-27.328-57.040-27.754-56.928Q-28.181-56.816-28.580-56.816L-28.660-56.816Q-28.677-56.816-28.714-56.845Q-28.752-56.873-28.752-56.895",[2223],[1937,4963],{"fill":2214,"d":4964},"M15.811-71.87H-7.015a4 4 0 0 0-4 4v17.607a4 4 0 0 0 4 4h22.826a4 4 0 0 0 4-4V-67.87a4 4 0 0 0-4-4Zm-26.826 25.607",[2208,4966,4967,4973,4978,4984],{"stroke":2214},[2208,4968,4970],{"transform":4969},"translate(41.575 2.25)",[1937,4971],{"d":4942,"fill":2210,"stroke":2210,"className":4972,"style":2224},[2223],[2208,4974,4975],{"transform":4969},[1937,4976],{"d":4948,"fill":2210,"stroke":2210,"className":4977,"style":2224},[2223],[2208,4979,4980],{"transform":4969},[1937,4981],{"d":4982,"fill":2210,"stroke":2210,"className":4983,"style":2463},"M-30.515-58.066L-33.125-58.066L-33.125-58.251Q-33.119-58.274-33.099-58.300L-31.948-59.355Q-31.608-59.666-31.428-59.852Q-31.247-60.038-31.102-60.298Q-30.957-60.559-30.957-60.855Q-30.957-61.128-31.083-61.343Q-31.209-61.558-31.429-61.678Q-31.649-61.798-31.924-61.798Q-32.100-61.798-32.270-61.741Q-32.440-61.684-32.572-61.577Q-32.703-61.470-32.783-61.312Q-32.695-61.312-32.617-61.268Q-32.539-61.224-32.495-61.148Q-32.452-61.072-32.452-60.975Q-32.452-60.835-32.548-60.738Q-32.645-60.641-32.788-60.641Q-32.926-60.641-33.026-60.741Q-33.125-60.840-33.125-60.975Q-33.125-61.300-32.935-61.548Q-32.744-61.795-32.441-61.926Q-32.138-62.056-31.822-62.056Q-31.441-62.056-31.098-61.921Q-30.755-61.787-30.541-61.514Q-30.327-61.242-30.327-60.855Q-30.327-60.580-30.452-60.353Q-30.577-60.126-30.757-59.954Q-30.937-59.783-31.262-59.543Q-31.587-59.302-31.672-59.235L-32.428-58.631L-31.895-58.631Q-31.406-58.631-31.075-58.639Q-30.743-58.646-30.729-58.661Q-30.670-58.731-30.638-58.866Q-30.606-59.001-30.574-59.212L-30.327-59.212",[2223],[2208,4985,4986],{"transform":4969},[1937,4987],{"d":4960,"fill":2210,"stroke":2210,"className":4988,"style":2224},[2223],[1937,4990],{"fill":2214,"d":4991},"M69.8-71.87H46.973a4 4 0 0 0-4 4v17.607a4 4 0 0 0 4 4H69.8a4 4 0 0 0 4-4V-67.87a4 4 0 0 0-4-4ZM42.973-46.263",[2208,4993,4994,5000,5005,5011],{"stroke":2214},[2208,4995,4997],{"transform":4996},"translate(95.564 2.25)",[1937,4998],{"d":4942,"fill":2210,"stroke":2210,"className":4999,"style":2224},[2223],[2208,5001,5002],{"transform":4996},[1937,5003],{"d":4948,"fill":2210,"stroke":2210,"className":5004,"style":2224},[2223],[2208,5006,5007],{"transform":4996},[1937,5008],{"d":5009,"fill":2210,"stroke":2210,"className":5010,"style":2463},"M-30.515-58.066L-32.806-58.066L-32.806-58.324Q-31.930-58.324-31.930-58.497L-31.930-61.576Q-32.123-61.488-32.355-61.451Q-32.586-61.415-32.841-61.415L-32.841-61.672Q-32.463-61.672-32.142-61.757Q-31.822-61.842-31.593-62.056L-31.473-62.056Q-31.441-62.056-31.416-62.033Q-31.391-62.009-31.391-61.971L-31.391-58.497Q-31.391-58.324-30.515-58.324",[2223],[2208,5012,5013],{"transform":4996},[1937,5014],{"d":4960,"fill":2210,"stroke":2210,"className":5015,"style":2224},[2223],[2208,5017,5018,5021],{"stroke":2282,"style":2273},[1937,5019],{"fill":2214,"d":5020},"M118.77-71.87h-17.608a4 4 0 0 0-4 4v17.607a4 4 0 0 0 4 4h17.607a4 4 0 0 0 4-4V-67.87a4 4 0 0 0-4-4ZM97.161-46.263",[2208,5022,5023,5030,5036,5042],{"fill":2282,"stroke":2214},[2208,5024,5026],{"transform":5025},"translate(150.226 2.25)",[1937,5027],{"d":5028,"fill":2282,"stroke":2282,"className":5029,"style":2224},"M-47.617-57.985L-47.617-60.173Q-47.617-60.639-47.997-60.914Q-48.377-61.189-48.861-61.189Q-48.887-61.189-48.920-61.213Q-48.953-61.237-48.953-61.272L-48.953-61.369Q-48.953-61.399-48.918-61.426Q-48.882-61.452-48.861-61.452Q-48.377-61.452-47.997-61.720Q-47.617-61.988-47.617-62.459L-47.617-64.647Q-47.617-65.065-47.325-65.328Q-47.032-65.592-46.606-65.704Q-46.180-65.816-45.784-65.816L-45.701-65.816Q-45.670-65.816-45.642-65.792Q-45.613-65.768-45.613-65.737L-45.613-65.636Q-45.613-65.614-45.646-65.585Q-45.679-65.557-45.701-65.557Q-46.175-65.557-46.560-65.306Q-46.944-65.056-46.944-64.612L-46.944-62.423Q-46.944-62.010-47.250-61.727Q-47.555-61.443-48.008-61.316Q-47.731-61.241-47.487-61.090Q-47.243-60.938-47.094-60.714Q-46.944-60.490-46.944-60.209L-46.944-58.020Q-46.944-57.717-46.760-57.504Q-46.575-57.291-46.292-57.183Q-46.008-57.075-45.701-57.075Q-45.670-57.075-45.642-57.051Q-45.613-57.027-45.613-56.996L-45.613-56.895Q-45.613-56.873-45.646-56.845Q-45.679-56.816-45.701-56.816L-45.784-56.816Q-46.180-56.816-46.606-56.928Q-47.032-57.040-47.325-57.304Q-47.617-57.567-47.617-57.985",[2223],[2208,5031,5032],{"transform":5025},[1937,5033],{"d":5034,"fill":2282,"stroke":2282,"className":5035,"style":2224},"M-44.236-59.356Q-44.060-59.229-43.787-59.229Q-43.497-59.229-43.284-59.483Q-43.071-59.738-42.992-60.055L-42.588-61.668Q-42.500-62.045-42.500-62.234Q-42.500-62.459-42.627-62.621Q-42.755-62.784-42.974-62.784Q-43.392-62.784-43.724-62.434Q-44.055-62.085-44.174-61.632Q-44.192-61.549-44.262-61.549L-44.372-61.549Q-44.460-61.549-44.460-61.668Q-44.328-62.208-43.906-62.626Q-43.484-63.043-42.957-63.043Q-42.623-63.043-42.348-62.872Q-42.073-62.700-41.959-62.406Q-41.801-62.678-41.555-62.861Q-41.309-63.043-41.023-63.043Q-40.685-63.043-40.412-62.876Q-40.140-62.709-40.140-62.388Q-40.140-62.160-40.283-61.991Q-40.425-61.821-40.663-61.821Q-40.803-61.821-40.909-61.914Q-41.014-62.006-41.014-62.151Q-41.014-62.336-40.891-62.478Q-40.768-62.621-40.584-62.656Q-40.764-62.784-41.041-62.784Q-41.331-62.784-41.542-62.527Q-41.753-62.270-41.832-61.953L-42.236-60.345Q-42.328-59.984-42.328-59.787Q-42.328-59.554-42.199-59.391Q-42.069-59.229-41.840-59.229Q-41.555-59.229-41.307-59.398Q-41.058-59.567-40.885-59.839Q-40.711-60.112-40.645-60.380Q-40.636-60.411-40.612-60.435Q-40.588-60.459-40.553-60.459L-40.447-60.459Q-40.408-60.459-40.382-60.422Q-40.355-60.384-40.355-60.345Q-40.443-59.998-40.663-59.679Q-40.882-59.360-41.199-59.163Q-41.515-58.965-41.858-58.965Q-42.196-58.965-42.471-59.134Q-42.746-59.303-42.869-59.607Q-43.018-59.338-43.267-59.152Q-43.515-58.965-43.796-58.965Q-44.139-58.965-44.413-59.132Q-44.688-59.299-44.688-59.624Q-44.688-59.848-44.539-60.020Q-44.389-60.191-44.156-60.191Q-44.011-60.191-43.908-60.099Q-43.805-60.006-43.805-59.857Q-43.805-59.681-43.928-59.534Q-44.051-59.387-44.236-59.356",[2223],[2208,5037,5038],{"transform":5025},[1937,5039],{"d":5040,"fill":2282,"stroke":2282,"className":5041,"style":2463},"M-36.681-58.066L-38.972-58.066L-38.972-58.324Q-38.096-58.324-38.096-58.497L-38.096-61.576Q-38.289-61.488-38.521-61.451Q-38.752-61.415-39.007-61.415L-39.007-61.672Q-38.629-61.672-38.308-61.757Q-37.988-61.842-37.759-62.056L-37.639-62.056Q-37.607-62.056-37.582-62.033Q-37.557-62.009-37.557-61.971L-37.557-58.497Q-37.557-58.324-36.681-58.324",[2223],[2208,5043,5044],{"transform":5025},[1937,5045],{"d":5046,"fill":2282,"stroke":2282,"className":5047,"style":2224},"M-34.919-56.895L-34.919-56.996Q-34.919-57.027-34.888-57.051Q-34.857-57.075-34.827-57.075Q-34.519-57.075-34.235-57.183Q-33.952-57.291-33.767-57.504Q-33.583-57.717-33.583-58.020L-33.583-60.209Q-33.583-60.499-33.433-60.721Q-33.284-60.942-33.042-61.092Q-32.801-61.241-32.524-61.316Q-32.981-61.448-33.282-61.729Q-33.583-62.010-33.583-62.423L-33.583-64.612Q-33.583-64.915-33.767-65.128Q-33.952-65.341-34.235-65.449Q-34.519-65.557-34.827-65.557Q-34.844-65.557-34.881-65.585Q-34.919-65.614-34.919-65.636L-34.919-65.737Q-34.919-65.768-34.888-65.792Q-34.857-65.816-34.827-65.816L-34.747-65.816Q-34.348-65.816-33.921-65.704Q-33.495-65.592-33.203-65.328Q-32.910-65.065-32.910-64.647L-32.910-62.459Q-32.910-62.142-32.730-61.914Q-32.550-61.685-32.260-61.569Q-31.970-61.452-31.667-61.452Q-31.640-61.452-31.610-61.426Q-31.579-61.399-31.579-61.369L-31.579-61.272Q-31.579-61.237-31.608-61.213Q-31.636-61.189-31.667-61.189Q-32.150-61.189-32.530-60.914Q-32.910-60.639-32.910-60.173L-32.910-57.985Q-32.910-57.567-33.203-57.304Q-33.495-57.040-33.921-56.928Q-34.348-56.816-34.747-56.816L-34.827-56.816Q-34.844-56.816-34.881-56.845Q-34.919-56.873-34.919-56.895",[2223],[2208,5049,5050,5053],{"stroke":2282,"style":2273},[1937,5051],{"fill":2214,"d":5052},"M167.939-71.87H150.33a4 4 0 0 0-4 4v17.607a4 4 0 0 0 4 4h17.608a4 4 0 0 0 4-4V-67.87a4 4 0 0 0-4-4ZM146.33-46.263",[2208,5054,5055,5061,5066,5072],{"fill":2282,"stroke":2214},[2208,5056,5058],{"transform":5057},"translate(199.396 2.25)",[1937,5059],{"d":5028,"fill":2282,"stroke":2282,"className":5060,"style":2224},[2223],[2208,5062,5063],{"transform":5057},[1937,5064],{"d":5034,"fill":2282,"stroke":2282,"className":5065,"style":2224},[2223],[2208,5067,5068],{"transform":5057},[1937,5069],{"d":5070,"fill":2282,"stroke":2282,"className":5071,"style":2463},"M-36.681-58.066L-39.291-58.066L-39.291-58.251Q-39.285-58.274-39.265-58.300L-38.114-59.355Q-37.774-59.666-37.594-59.852Q-37.413-60.038-37.268-60.298Q-37.123-60.559-37.123-60.855Q-37.123-61.128-37.249-61.343Q-37.375-61.558-37.595-61.678Q-37.815-61.798-38.090-61.798Q-38.266-61.798-38.436-61.741Q-38.606-61.684-38.738-61.577Q-38.869-61.470-38.949-61.312Q-38.861-61.312-38.783-61.268Q-38.705-61.224-38.661-61.148Q-38.618-61.072-38.618-60.975Q-38.618-60.835-38.714-60.738Q-38.811-60.641-38.954-60.641Q-39.092-60.641-39.192-60.741Q-39.291-60.840-39.291-60.975Q-39.291-61.300-39.101-61.548Q-38.910-61.795-38.607-61.926Q-38.304-62.056-37.988-62.056Q-37.607-62.056-37.264-61.921Q-36.921-61.787-36.707-61.514Q-36.493-61.242-36.493-60.855Q-36.493-60.580-36.618-60.353Q-36.743-60.126-36.923-59.954Q-37.103-59.783-37.428-59.543Q-37.753-59.302-37.838-59.235L-38.594-58.631L-38.061-58.631Q-37.572-58.631-37.241-58.639Q-36.910-58.646-36.895-58.661Q-36.836-58.731-36.804-58.866Q-36.772-59.001-36.740-59.212L-36.493-59.212",[2223],[2208,5073,5074],{"transform":5057},[1937,5075],{"d":5046,"fill":2282,"stroke":2282,"className":5076,"style":2224},[2223],[2208,5078,5079,5082],{"stroke":2282,"style":2273},[1937,5080],{"fill":2214,"d":5081},"M217.109-71.87H199.5a4 4 0 0 0-4 4v17.607a4 4 0 0 0 4 4h17.608a4 4 0 0 0 4-4V-67.87a4 4 0 0 0-4-4ZM195.5-46.263",[2208,5083,5084,5090,5095,5101],{"fill":2282,"stroke":2214},[2208,5085,5087],{"transform":5086},"translate(248.565 2.25)",[1937,5088],{"d":5028,"fill":2282,"stroke":2282,"className":5089,"style":2224},[2223],[2208,5091,5092],{"transform":5086},[1937,5093],{"d":5034,"fill":2282,"stroke":2282,"className":5094,"style":2224},[2223],[2208,5096,5097],{"transform":5086},[1937,5098],{"d":5099,"fill":2282,"stroke":2282,"className":5100,"style":2463},"M-38.949-58.517Q-38.653-58.180-37.923-58.180Q-37.665-58.180-37.485-58.308Q-37.305-58.435-37.217-58.643Q-37.129-58.851-37.129-59.109Q-37.129-59.504-37.336-59.775Q-37.542-60.046-37.929-60.046L-38.395-60.046Q-38.459-60.061-38.474-60.123L-38.474-60.190Q-38.459-60.246-38.395-60.263L-37.993-60.287Q-37.783-60.287-37.614-60.429Q-37.446-60.571-37.353-60.785Q-37.261-60.999-37.261-61.215Q-37.261-61.503-37.446-61.668Q-37.630-61.834-37.923-61.834Q-38.184-61.834-38.408-61.766Q-38.632-61.699-38.779-61.541Q-38.650-61.523-38.571-61.434Q-38.492-61.344-38.492-61.215Q-38.492-61.078-38.587-60.983Q-38.682-60.887-38.823-60.887Q-38.957-60.887-39.054-60.984Q-39.151-61.081-39.151-61.215Q-39.151-61.503-38.960-61.694Q-38.770-61.886-38.489-61.971Q-38.207-62.056-37.923-62.056Q-37.648-62.056-37.347-61.965Q-37.047-61.875-36.839-61.686Q-36.631-61.497-36.631-61.215Q-36.631-60.846-36.877-60.574Q-37.123-60.301-37.495-60.172Q-37.076-60.079-36.759-59.796Q-36.441-59.513-36.441-59.115Q-36.441-58.752-36.660-58.486Q-36.880-58.221-37.226-58.081Q-37.572-57.940-37.923-57.940Q-38.146-57.940-38.393-57.988Q-38.641-58.037-38.861-58.147Q-39.080-58.256-39.212-58.435Q-39.344-58.614-39.344-58.869Q-39.344-59.018-39.242-59.121Q-39.139-59.223-38.990-59.223Q-38.840-59.223-38.738-59.121Q-38.635-59.018-38.635-58.869Q-38.635-58.737-38.724-58.636Q-38.814-58.535-38.949-58.517",[2223],[2208,5102,5103],{"transform":5086},[1937,5104],{"d":5046,"fill":2282,"stroke":2282,"className":5105,"style":2224},[2223],[2208,5107,5108,5111,5114],{"style":2273},[1937,5109],{"fill":2214,"d":5110},"M-65.203-39.15h284.112",[1937,5112],{"stroke":2214,"d":5113},"m221.509-39.15-4.16-2.08 1.56 2.08-1.56 2.08",[2208,5115,5116,5123,5129,5135,5141,5147,5153,5159,5165,5171,5177,5183,5189,5195,5201,5207,5213,5219],{"stroke":2214,"fontSize":2291},[2208,5117,5119],{"transform":5118},"translate(-3.96 35.12)",[1937,5120],{"d":5121,"fill":2210,"stroke":2210,"className":5122,"style":2299},"M-48.727-60.027L-48.727-62.218L-49.430-62.218L-49.430-62.472Q-49.074-62.472-48.832-62.705Q-48.590-62.937-48.479-63.285Q-48.367-63.632-48.367-63.988L-48.086-63.988L-48.086-62.515L-46.910-62.515L-46.910-62.218L-48.086-62.218L-48.086-60.043Q-48.086-59.722-47.967-59.494Q-47.848-59.265-47.567-59.265Q-47.387-59.265-47.270-59.388Q-47.153-59.511-47.100-59.691Q-47.047-59.871-47.047-60.043L-47.047-60.515L-46.766-60.515L-46.766-60.027Q-46.766-59.773-46.871-59.533Q-46.977-59.293-47.174-59.140Q-47.371-58.988-47.629-58.988Q-47.945-58.988-48.197-59.111Q-48.449-59.234-48.588-59.468Q-48.727-59.703-48.727-60.027M-46.047-60.761Q-46.047-61.265-45.791-61.697Q-45.535-62.129-45.100-62.380Q-44.664-62.632-44.164-62.632Q-43.778-62.632-43.436-62.488Q-43.094-62.343-42.832-62.082Q-42.570-61.820-42.428-61.484Q-42.285-61.148-42.285-60.761Q-42.285-60.269-42.549-59.859Q-42.813-59.449-43.242-59.218Q-43.672-58.988-44.164-58.988Q-44.656-58.988-45.090-59.220Q-45.524-59.453-45.785-59.861Q-46.047-60.269-46.047-60.761M-44.164-59.265Q-43.707-59.265-43.455-59.488Q-43.203-59.711-43.115-60.062Q-43.028-60.414-43.028-60.859Q-43.028-61.289-43.121-61.627Q-43.215-61.964-43.469-62.171Q-43.723-62.379-44.164-62.379Q-44.813-62.379-45.057-61.962Q-45.301-61.546-45.301-60.859Q-45.301-60.414-45.213-60.062Q-45.125-59.711-44.873-59.488Q-44.621-59.265-44.164-59.265M-39.918-57.515L-41.774-57.515L-41.774-57.808Q-41.504-57.808-41.336-57.853Q-41.168-57.898-41.168-58.074L-41.168-61.898Q-41.168-62.105-41.324-62.158Q-41.481-62.211-41.774-62.211L-41.774-62.507L-40.551-62.593L-40.551-62.129Q-40.320-62.351-40.006-62.472Q-39.692-62.593-39.352-62.593Q-38.879-62.593-38.475-62.347Q-38.070-62.101-37.838-61.685Q-37.606-61.269-37.606-60.793Q-37.606-60.418-37.754-60.089Q-37.903-59.761-38.172-59.509Q-38.442-59.257-38.785-59.123Q-39.129-58.988-39.488-58.988Q-39.778-58.988-40.049-59.109Q-40.320-59.230-40.528-59.441L-40.528-58.074Q-40.528-57.898-40.360-57.853Q-40.192-57.808-39.918-57.808L-39.918-57.515M-40.528-61.730L-40.528-59.890Q-40.375-59.601-40.113-59.421Q-39.852-59.242-39.543-59.242Q-39.258-59.242-39.035-59.380Q-38.813-59.519-38.660-59.750Q-38.508-59.980-38.430-60.252Q-38.352-60.523-38.352-60.793Q-38.352-61.125-38.477-61.482Q-38.602-61.839-38.850-62.076Q-39.098-62.312-39.445-62.312Q-39.770-62.312-40.065-62.156Q-40.360-62-40.528-61.730",[2223],[2208,5124,5125],{"transform":5118},[1937,5126],{"d":5127,"fill":2210,"stroke":2210,"className":5128,"style":2299},"M-36.838-60.761Q-36.838-61.265-36.582-61.697Q-36.326-62.129-35.890-62.380Q-35.455-62.632-34.955-62.632Q-34.568-62.632-34.226-62.488Q-33.885-62.343-33.623-62.082Q-33.361-61.820-33.219-61.484Q-33.076-61.148-33.076-60.761Q-33.076-60.269-33.340-59.859Q-33.603-59.449-34.033-59.218Q-34.463-58.988-34.955-58.988Q-35.447-58.988-35.881-59.220Q-36.314-59.453-36.576-59.861Q-36.838-60.269-36.838-60.761M-34.955-59.265Q-34.498-59.265-34.246-59.488Q-33.994-59.711-33.906-60.062Q-33.818-60.414-33.818-60.859Q-33.818-61.289-33.912-61.627Q-34.006-61.964-34.260-62.171Q-34.514-62.379-34.955-62.379Q-35.603-62.379-35.847-61.962Q-36.092-61.546-36.092-60.859Q-36.092-60.414-36.004-60.062Q-35.916-59.711-35.664-59.488Q-35.412-59.265-34.955-59.265M-30.678-59.066L-32.510-59.066L-32.510-59.363Q-32.236-59.363-32.068-59.410Q-31.900-59.457-31.900-59.625L-31.900-63.785Q-31.900-64-31.963-64.095Q-32.025-64.191-32.144-64.212Q-32.264-64.234-32.510-64.234L-32.510-64.531L-31.287-64.617L-31.287-59.625Q-31.287-59.457-31.119-59.410Q-30.951-59.363-30.678-59.363L-30.678-59.066M-30.232-60.761Q-30.232-61.265-29.976-61.697Q-29.721-62.129-29.285-62.380Q-28.849-62.632-28.349-62.632Q-27.963-62.632-27.621-62.488Q-27.279-62.343-27.017-62.082Q-26.756-61.820-26.613-61.484Q-26.471-61.148-26.471-60.761Q-26.471-60.269-26.734-59.859Q-26.998-59.449-27.428-59.218Q-27.857-58.988-28.349-58.988Q-28.842-58.988-29.275-59.220Q-29.709-59.453-29.971-59.861Q-30.232-60.269-30.232-60.761M-28.349-59.265Q-27.892-59.265-27.640-59.488Q-27.389-59.711-27.301-60.062Q-27.213-60.414-27.213-60.859Q-27.213-61.289-27.306-61.627Q-27.400-61.964-27.654-62.171Q-27.908-62.379-28.349-62.379Q-28.998-62.379-29.242-61.962Q-29.486-61.546-29.486-60.859Q-29.486-60.414-29.398-60.062Q-29.310-59.711-29.058-59.488Q-28.806-59.265-28.349-59.265M-25.986-58.457Q-25.986-58.738-25.775-58.949Q-25.564-59.160-25.279-59.250Q-25.435-59.375-25.514-59.564Q-25.592-59.754-25.592-59.953Q-25.592-60.308-25.361-60.601Q-25.728-60.941-25.728-61.410Q-25.728-61.761-25.525-62.031Q-25.322-62.300-25.002-62.447Q-24.681-62.593-24.338-62.593Q-23.818-62.593-23.447-62.312Q-23.084-62.683-22.537-62.683Q-22.357-62.683-22.230-62.556Q-22.103-62.429-22.103-62.250Q-22.103-62.144-22.181-62.066Q-22.260-61.988-22.369-61.988Q-22.478-61.988-22.555-62.064Q-22.631-62.140-22.631-62.250Q-22.631-62.351-22.592-62.402Q-22.584-62.410-22.580-62.416Q-22.576-62.421-22.576-62.425Q-22.951-62.425-23.271-62.171Q-22.951-61.832-22.951-61.410Q-22.951-61.140-23.068-60.923Q-23.185-60.707-23.390-60.548Q-23.596-60.390-23.838-60.308Q-24.080-60.226-24.338-60.226Q-24.556-60.226-24.769-60.285Q-24.982-60.343-25.178-60.464Q-25.271-60.324-25.271-60.144Q-25.271-59.937-25.135-59.785Q-24.998-59.632-24.791-59.632L-24.096-59.632Q-23.607-59.632-23.195-59.548Q-22.783-59.464-22.504-59.207Q-22.224-58.949-22.224-58.457Q-22.224-58.093-22.545-57.861Q-22.865-57.629-23.306-57.527Q-23.748-57.425-24.103-57.425Q-24.459-57.425-24.902-57.527Q-25.346-57.629-25.666-57.861Q-25.986-58.093-25.986-58.457M-25.482-58.457Q-25.482-58.261-25.338-58.113Q-25.193-57.964-24.980-57.875Q-24.767-57.785-24.527-57.738Q-24.287-57.691-24.103-57.691Q-23.861-57.691-23.531-57.769Q-23.201-57.847-22.965-58.021Q-22.728-58.195-22.728-58.457Q-22.728-58.863-23.139-58.972Q-23.549-59.082-24.111-59.082L-24.791-59.082Q-25.060-59.082-25.271-58.904Q-25.482-58.726-25.482-58.457M-24.338-60.492Q-23.615-60.492-23.615-61.410Q-23.615-62.332-24.338-62.332Q-25.064-62.332-25.064-61.410Q-25.064-60.492-24.338-60.492M-19.881-59.066L-21.658-59.066L-21.658-59.363Q-21.385-59.363-21.217-59.410Q-21.049-59.457-21.049-59.625L-21.049-61.761Q-21.049-61.976-21.105-62.072Q-21.162-62.168-21.275-62.189Q-21.389-62.211-21.635-62.211L-21.635-62.507L-20.435-62.593L-20.435-59.625Q-20.435-59.457-20.289-59.410Q-20.142-59.363-19.881-59.363L-19.881-59.066M-21.322-63.988Q-21.322-64.179-21.187-64.310Q-21.053-64.441-20.857-64.441Q-20.736-64.441-20.633-64.379Q-20.529-64.316-20.467-64.212Q-20.404-64.109-20.404-63.988Q-20.404-63.793-20.535-63.658Q-20.666-63.523-20.857-63.523Q-21.056-63.523-21.189-63.656Q-21.322-63.789-21.322-63.988M-19.338-60.793Q-19.338-61.289-19.088-61.714Q-18.838-62.140-18.418-62.386Q-17.998-62.632-17.498-62.632Q-16.959-62.632-16.568-62.507Q-16.178-62.382-16.178-61.968Q-16.178-61.863-16.228-61.771Q-16.279-61.679-16.371-61.629Q-16.463-61.578-16.572-61.578Q-16.678-61.578-16.769-61.629Q-16.861-61.679-16.912-61.771Q-16.963-61.863-16.963-61.968Q-16.963-62.191-16.795-62.296Q-17.017-62.355-17.490-62.355Q-17.787-62.355-18.002-62.216Q-18.217-62.078-18.347-61.847Q-18.478-61.617-18.537-61.347Q-18.596-61.078-18.596-60.793Q-18.596-60.398-18.463-60.048Q-18.330-59.699-18.058-59.482Q-17.787-59.265-17.389-59.265Q-17.014-59.265-16.738-59.482Q-16.463-59.699-16.361-60.058Q-16.346-60.121-16.283-60.121L-16.178-60.121Q-16.142-60.121-16.117-60.093Q-16.092-60.066-16.092-60.027L-16.092-60.004Q-16.224-59.523-16.609-59.255Q-16.994-58.988-17.498-58.988Q-17.861-58.988-18.195-59.125Q-18.529-59.261-18.789-59.511Q-19.049-59.761-19.193-60.097Q-19.338-60.433-19.338-60.793M-15.506-59.898Q-15.506-60.382-15.103-60.677Q-14.701-60.972-14.150-61.091Q-13.599-61.211-13.107-61.211L-13.107-61.500Q-13.107-61.726-13.222-61.933Q-13.338-62.140-13.535-62.259Q-13.732-62.379-13.963-62.379Q-14.389-62.379-14.674-62.273Q-14.603-62.246-14.556-62.191Q-14.510-62.136-14.484-62.066Q-14.459-61.996-14.459-61.921Q-14.459-61.816-14.510-61.724Q-14.560-61.632-14.652-61.582Q-14.744-61.531-14.849-61.531Q-14.955-61.531-15.047-61.582Q-15.139-61.632-15.189-61.724Q-15.240-61.816-15.240-61.921Q-15.240-62.339-14.851-62.486Q-14.463-62.632-13.963-62.632Q-13.631-62.632-13.277-62.502Q-12.924-62.371-12.695-62.117Q-12.467-61.863-12.467-61.515L-12.467-59.714Q-12.467-59.582-12.394-59.472Q-12.322-59.363-12.193-59.363Q-12.068-59.363-12-59.468Q-11.931-59.574-11.931-59.714L-11.931-60.226L-11.650-60.226L-11.650-59.714Q-11.650-59.511-11.767-59.353Q-11.885-59.195-12.066-59.111Q-12.248-59.027-12.451-59.027Q-12.681-59.027-12.834-59.199Q-12.986-59.371-13.017-59.601Q-13.178-59.320-13.486-59.154Q-13.795-58.988-14.146-58.988Q-14.658-58.988-15.082-59.211Q-15.506-59.433-15.506-59.898M-14.818-59.898Q-14.818-59.613-14.592-59.427Q-14.365-59.242-14.072-59.242Q-13.826-59.242-13.601-59.359Q-13.377-59.476-13.242-59.679Q-13.107-59.882-13.107-60.136L-13.107-60.968Q-13.373-60.968-13.658-60.914Q-13.943-60.859-14.215-60.730Q-14.486-60.601-14.652-60.394Q-14.818-60.187-14.818-59.898M-9.443-59.066L-11.275-59.066L-11.275-59.363Q-11.002-59.363-10.834-59.410Q-10.666-59.457-10.666-59.625L-10.666-63.785Q-10.666-64-10.728-64.095Q-10.791-64.191-10.910-64.212Q-11.029-64.234-11.275-64.234L-11.275-64.531L-10.053-64.617L-10.053-59.625Q-10.053-59.457-9.885-59.410Q-9.717-59.363-9.443-59.363",[2223],[2208,5130,5131],{"transform":5118},[1937,5132],{"d":5133,"fill":2210,"stroke":2210,"className":5134,"style":2299},"M-6.143-60.761Q-6.143-61.265-5.887-61.697Q-5.631-62.129-5.195-62.380Q-4.760-62.632-4.260-62.632Q-3.873-62.632-3.531-62.488Q-3.190-62.343-2.928-62.082Q-2.666-61.820-2.524-61.484Q-2.381-61.148-2.381-60.761Q-2.381-60.269-2.645-59.859Q-2.908-59.449-3.338-59.218Q-3.768-58.988-4.260-58.988Q-4.752-58.988-5.186-59.220Q-5.619-59.453-5.881-59.861Q-6.143-60.269-6.143-60.761M-4.260-59.265Q-3.803-59.265-3.551-59.488Q-3.299-59.711-3.211-60.062Q-3.123-60.414-3.123-60.859Q-3.123-61.289-3.217-61.627Q-3.311-61.964-3.565-62.171Q-3.819-62.379-4.260-62.379Q-4.908-62.379-5.152-61.962Q-5.397-61.546-5.397-60.859Q-5.397-60.414-5.309-60.062Q-5.221-59.711-4.969-59.488Q-4.717-59.265-4.260-59.265M0.111-59.066L-1.869-59.066L-1.869-59.363Q-1.600-59.363-1.432-59.408Q-1.264-59.453-1.264-59.625L-1.264-61.761Q-1.264-61.976-1.326-62.072Q-1.389-62.168-1.506-62.189Q-1.623-62.211-1.869-62.211L-1.869-62.507L-0.701-62.593L-0.701-61.808Q-0.623-62.019-0.471-62.205Q-0.319-62.390-0.119-62.492Q0.080-62.593 0.306-62.593Q0.553-62.593 0.744-62.449Q0.935-62.304 0.935-62.074Q0.935-61.918 0.830-61.808Q0.724-61.699 0.568-61.699Q0.412-61.699 0.303-61.808Q0.193-61.918 0.193-62.074Q0.193-62.234 0.299-62.339Q-0.026-62.339-0.240-62.111Q-0.455-61.882-0.551-61.543Q-0.647-61.203-0.647-60.898L-0.647-59.625Q-0.647-59.457-0.420-59.410Q-0.194-59.363 0.111-59.363L0.111-59.066M3.232-58.988Q2.752-58.988 2.344-59.232Q1.935-59.476 1.697-59.890Q1.459-60.304 1.459-60.793Q1.459-61.285 1.717-61.701Q1.974-62.117 2.406-62.355Q2.838-62.593 3.330-62.593Q3.951-62.593 4.400-62.156L4.400-63.785Q4.400-64 4.338-64.095Q4.275-64.191 4.158-64.212Q4.041-64.234 3.795-64.234L3.795-64.531L5.017-64.617L5.017-59.808Q5.017-59.597 5.080-59.502Q5.142-59.406 5.260-59.384Q5.377-59.363 5.627-59.363L5.627-59.066L4.377-58.988L4.377-59.472Q3.912-58.988 3.232-58.988M3.299-59.242Q3.639-59.242 3.931-59.433Q4.224-59.625 4.377-59.921L4.377-61.754Q4.228-62.027 3.967-62.183Q3.705-62.339 3.392-62.339Q2.767-62.339 2.484-61.892Q2.201-61.445 2.201-60.785Q2.201-60.140 2.453-59.691Q2.705-59.242 3.299-59.242M6.135-60.820Q6.135-61.300 6.367-61.716Q6.599-62.132 7.010-62.382Q7.420-62.632 7.896-62.632Q8.627-62.632 9.025-62.191Q9.424-61.750 9.424-61.019Q9.424-60.914 9.330-60.890L6.881-60.890L6.881-60.820Q6.881-60.410 7.002-60.054Q7.123-59.699 7.394-59.482Q7.666-59.265 8.096-59.265Q8.459-59.265 8.756-59.494Q9.053-59.722 9.154-60.074Q9.162-60.121 9.248-60.136L9.330-60.136Q9.424-60.109 9.424-60.027Q9.424-60.019 9.416-59.988Q9.353-59.761 9.215-59.578Q9.076-59.394 8.885-59.261Q8.693-59.129 8.474-59.058Q8.256-58.988 8.017-58.988Q7.646-58.988 7.308-59.125Q6.971-59.261 6.703-59.513Q6.435-59.765 6.285-60.105Q6.135-60.445 6.135-60.820M6.889-61.129L8.849-61.129Q8.849-61.433 8.748-61.724Q8.646-62.015 8.430-62.197Q8.213-62.379 7.896-62.379Q7.596-62.379 7.365-62.191Q7.135-62.004 7.012-61.712Q6.889-61.421 6.889-61.129M11.920-59.066L9.939-59.066L9.939-59.363Q10.209-59.363 10.377-59.408Q10.545-59.453 10.545-59.625L10.545-61.761Q10.545-61.976 10.482-62.072Q10.420-62.168 10.303-62.189Q10.185-62.211 9.939-62.211L9.939-62.507L11.107-62.593L11.107-61.808Q11.185-62.019 11.338-62.205Q11.490-62.390 11.689-62.492Q11.889-62.593 12.115-62.593Q12.361-62.593 12.553-62.449Q12.744-62.304 12.744-62.074Q12.744-61.918 12.639-61.808Q12.533-61.699 12.377-61.699Q12.221-61.699 12.111-61.808Q12.002-61.918 12.002-62.074Q12.002-62.234 12.107-62.339Q11.783-62.339 11.568-62.111Q11.353-61.882 11.258-61.543Q11.162-61.203 11.162-60.898L11.162-59.625Q11.162-59.457 11.389-59.410Q11.615-59.363 11.920-59.363",[2223],[2208,5136,5137],{"transform":5118},[1937,5138],{"d":5139,"fill":2210,"stroke":2210,"className":5140,"style":2299},"M21.546-60.882L16.714-60.882Q16.639-60.894 16.589-60.943Q16.538-60.992 16.538-61.066Q16.538-61.218 16.714-61.250L21.546-61.250Q21.714-61.222 21.714-61.066Q21.714-60.910 21.546-60.882",[2223],[2208,5142,5143],{"transform":5118},[1937,5144],{"d":5145,"fill":2210,"stroke":2210,"className":5146,"style":2299},"M28.014-60.882L21.670-60.882Q21.596-60.882 21.545-60.939Q21.495-60.996 21.495-61.066Q21.495-61.136 21.542-61.193Q21.588-61.250 21.670-61.250L28.014-61.250Q27.561-61.578 27.264-62.045Q26.967-62.511 26.862-63.050Q26.862-63.152 26.959-63.179L27.127-63.179Q27.209-63.160 27.229-63.074Q27.358-62.398 27.838-61.880Q28.319-61.363 28.983-61.171Q29.045-61.148 29.045-61.066Q29.045-60.984 28.983-60.961Q28.319-60.773 27.838-60.254Q27.358-59.734 27.229-59.058Q27.209-58.972 27.127-58.953L26.959-58.953Q26.862-58.980 26.862-59.082Q26.936-59.449 27.094-59.781Q27.252-60.113 27.485-60.390Q27.717-60.668 28.014-60.882",[2223],[2208,5148,5149],{"transform":5118},[1937,5150],{"d":5151,"fill":2210,"stroke":2210,"className":5152,"style":2299},"M34.972-57.074Q34.359-57.531 33.957-58.166Q33.554-58.800 33.359-59.546Q33.164-60.293 33.164-61.066Q33.164-61.839 33.359-62.586Q33.554-63.332 33.957-63.966Q34.359-64.601 34.972-65.058Q34.984-65.062 34.992-65.064Q35-65.066 35.011-65.066L35.089-65.066Q35.128-65.066 35.154-65.039Q35.179-65.011 35.179-64.968Q35.179-64.918 35.148-64.898Q34.640-64.445 34.318-63.822Q33.996-63.199 33.855-62.504Q33.714-61.808 33.714-61.066Q33.714-60.332 33.853-59.632Q33.992-58.933 34.316-58.308Q34.640-57.683 35.148-57.234Q35.179-57.214 35.179-57.164Q35.179-57.121 35.154-57.093Q35.128-57.066 35.089-57.066L35.011-57.066Q35.003-57.070 34.994-57.072Q34.984-57.074 34.972-57.074M35.941-59.074L35.941-60.296Q35.941-60.324 35.972-60.355Q36.003-60.386 36.027-60.386L36.132-60.386Q36.203-60.386 36.218-60.324Q36.281-60.004 36.419-59.763Q36.558-59.523 36.791-59.382Q37.023-59.242 37.332-59.242Q37.570-59.242 37.779-59.302Q37.988-59.363 38.125-59.511Q38.261-59.660 38.261-59.906Q38.261-60.160 38.050-60.326Q37.839-60.492 37.570-60.546L36.949-60.660Q36.542-60.738 36.242-60.994Q35.941-61.250 35.941-61.625Q35.941-61.992 36.142-62.214Q36.343-62.437 36.667-62.535Q36.992-62.632 37.332-62.632Q37.796-62.632 38.093-62.425L38.316-62.609Q38.339-62.632 38.371-62.632L38.421-62.632Q38.453-62.632 38.480-62.605Q38.507-62.578 38.507-62.546L38.507-61.562Q38.507-61.531 38.482-61.502Q38.457-61.472 38.421-61.472L38.316-61.472Q38.281-61.472 38.253-61.500Q38.226-61.527 38.226-61.562Q38.226-61.961 37.974-62.181Q37.722-62.402 37.324-62.402Q36.968-62.402 36.685-62.279Q36.402-62.156 36.402-61.851Q36.402-61.632 36.603-61.500Q36.804-61.367 37.050-61.324L37.675-61.211Q38.105-61.121 38.414-60.824Q38.722-60.527 38.722-60.113Q38.722-59.543 38.324-59.265Q37.925-58.988 37.332-58.988Q36.781-58.988 36.429-59.324L36.132-59.011Q36.109-58.988 36.074-58.988L36.027-58.988Q36.003-58.988 35.972-59.019Q35.941-59.050 35.941-59.074M41.109-59.066L39.332-59.066L39.332-59.363Q39.605-59.363 39.773-59.410Q39.941-59.457 39.941-59.625L39.941-61.761Q39.941-61.976 39.884-62.072Q39.828-62.168 39.714-62.189Q39.601-62.211 39.355-62.211L39.355-62.507L40.554-62.593L40.554-59.625Q40.554-59.457 40.701-59.410Q40.847-59.363 41.109-59.363L41.109-59.066M39.667-63.988Q39.667-64.179 39.802-64.310Q39.937-64.441 40.132-64.441Q40.253-64.441 40.357-64.379Q40.460-64.316 40.523-64.212Q40.585-64.109 40.585-63.988Q40.585-63.793 40.455-63.658Q40.324-63.523 40.132-63.523Q39.933-63.523 39.800-63.656Q39.667-63.789 39.667-63.988M43.539-59.066L41.683-59.066L41.683-59.363Q41.957-59.363 42.125-59.410Q42.292-59.457 42.292-59.625L42.292-61.761Q42.292-61.976 42.230-62.072Q42.167-62.168 42.048-62.189Q41.929-62.211 41.683-62.211L41.683-62.507L42.875-62.593L42.875-61.859Q42.988-62.074 43.181-62.242Q43.375-62.410 43.613-62.502Q43.851-62.593 44.105-62.593Q45.273-62.593 45.273-61.515L45.273-59.625Q45.273-59.457 45.443-59.410Q45.613-59.363 45.882-59.363L45.882-59.066L44.027-59.066L44.027-59.363Q44.300-59.363 44.468-59.410Q44.636-59.457 44.636-59.625L44.636-61.500Q44.636-61.882 44.515-62.111Q44.394-62.339 44.042-62.339Q43.730-62.339 43.476-62.177Q43.222-62.015 43.076-61.746Q42.929-61.476 42.929-61.179L42.929-59.625Q42.929-59.457 43.099-59.410Q43.269-59.363 43.539-59.363L43.539-59.066M48.152-59.066L46.355-59.066L46.355-59.363Q46.625-59.363 46.792-59.408Q46.960-59.453 46.960-59.625L46.960-63.785Q46.960-64 46.898-64.095Q46.835-64.191 46.718-64.212Q46.601-64.234 46.355-64.234L46.355-64.531L47.578-64.617L47.578-60.851L48.675-61.738Q48.882-61.918 48.882-62.066Q48.882-62.132 48.830-62.175Q48.777-62.218 48.707-62.218L48.707-62.515L50.242-62.515L50.242-62.218Q49.710-62.218 49.113-61.738L48.503-61.242L49.578-59.843Q49.714-59.668 49.822-59.560Q49.929-59.453 50.064-59.408Q50.199-59.363 50.425-59.363L50.425-59.066L48.800-59.066L48.800-59.363Q49.042-59.363 49.042-59.515Q49.042-59.593 49-59.664Q48.957-59.734 48.875-59.843L48.074-60.890L47.546-60.464L47.546-59.625Q47.546-59.457 47.714-59.410Q47.882-59.363 48.152-59.363L48.152-59.066M50.851-59.074L50.851-60.296Q50.851-60.324 50.882-60.355Q50.914-60.386 50.937-60.386L51.042-60.386Q51.113-60.386 51.128-60.324Q51.191-60.004 51.330-59.763Q51.468-59.523 51.701-59.382Q51.933-59.242 52.242-59.242Q52.480-59.242 52.689-59.302Q52.898-59.363 53.035-59.511Q53.171-59.660 53.171-59.906Q53.171-60.160 52.960-60.326Q52.750-60.492 52.480-60.546L51.859-60.660Q51.453-60.738 51.152-60.994Q50.851-61.250 50.851-61.625Q50.851-61.992 51.052-62.214Q51.253-62.437 51.578-62.535Q51.902-62.632 52.242-62.632Q52.707-62.632 53.003-62.425L53.226-62.609Q53.250-62.632 53.281-62.632L53.332-62.632Q53.363-62.632 53.390-62.605Q53.417-62.578 53.417-62.546L53.417-61.562Q53.417-61.531 53.392-61.502Q53.367-61.472 53.332-61.472L53.226-61.472Q53.191-61.472 53.164-61.500Q53.136-61.527 53.136-61.562Q53.136-61.961 52.884-62.181Q52.632-62.402 52.234-62.402Q51.878-62.402 51.595-62.279Q51.312-62.156 51.312-61.851Q51.312-61.632 51.513-61.500Q51.714-61.367 51.960-61.324L52.585-61.211Q53.015-61.121 53.324-60.824Q53.632-60.527 53.632-60.113Q53.632-59.543 53.234-59.265Q52.835-58.988 52.242-58.988Q51.691-58.988 51.339-59.324L51.042-59.011Q51.019-58.988 50.984-58.988L50.937-58.988Q50.914-58.988 50.882-59.019Q50.851-59.050 50.851-59.074",[2223],[2208,5154,5155],{"transform":5118},[1937,5156],{"d":5157,"fill":2210,"stroke":2210,"className":5158,"style":2299},"M57.106-59.898Q57.106-60.382 57.508-60.677Q57.911-60.972 58.461-61.091Q59.012-61.211 59.504-61.211L59.504-61.500Q59.504-61.726 59.389-61.933Q59.274-62.140 59.077-62.259Q58.879-62.379 58.649-62.379Q58.223-62.379 57.938-62.273Q58.008-62.246 58.055-62.191Q58.102-62.136 58.127-62.066Q58.153-61.996 58.153-61.921Q58.153-61.816 58.102-61.724Q58.051-61.632 57.959-61.582Q57.868-61.531 57.762-61.531Q57.657-61.531 57.565-61.582Q57.473-61.632 57.422-61.724Q57.372-61.816 57.372-61.921Q57.372-62.339 57.760-62.486Q58.149-62.632 58.649-62.632Q58.981-62.632 59.334-62.502Q59.688-62.371 59.916-62.117Q60.145-61.863 60.145-61.515L60.145-59.714Q60.145-59.582 60.217-59.472Q60.290-59.363 60.418-59.363Q60.543-59.363 60.612-59.468Q60.680-59.574 60.680-59.714L60.680-60.226L60.961-60.226L60.961-59.714Q60.961-59.511 60.844-59.353Q60.727-59.195 60.545-59.111Q60.364-59.027 60.161-59.027Q59.930-59.027 59.778-59.199Q59.625-59.371 59.594-59.601Q59.434-59.320 59.125-59.154Q58.817-58.988 58.465-58.988Q57.954-58.988 57.530-59.211Q57.106-59.433 57.106-59.898M57.793-59.898Q57.793-59.613 58.020-59.427Q58.247-59.242 58.540-59.242Q58.786-59.242 59.010-59.359Q59.235-59.476 59.370-59.679Q59.504-59.882 59.504-60.136L59.504-60.968Q59.239-60.968 58.954-60.914Q58.668-60.859 58.397-60.730Q58.125-60.601 57.959-60.394Q57.793-60.187 57.793-59.898M61.879-60.027L61.879-62.218L61.176-62.218L61.176-62.472Q61.532-62.472 61.774-62.705Q62.016-62.937 62.127-63.285Q62.239-63.632 62.239-63.988L62.520-63.988L62.520-62.515L63.696-62.515L63.696-62.218L62.520-62.218L62.520-60.043Q62.520-59.722 62.639-59.494Q62.758-59.265 63.040-59.265Q63.219-59.265 63.336-59.388Q63.454-59.511 63.506-59.691Q63.559-59.871 63.559-60.043L63.559-60.515L63.840-60.515L63.840-60.027Q63.840-59.773 63.735-59.533Q63.629-59.293 63.432-59.140Q63.235-58.988 62.977-58.988Q62.661-58.988 62.409-59.111Q62.157-59.234 62.018-59.468Q61.879-59.703 61.879-60.027",[2223],[2208,5160,5161],{"transform":5118},[1937,5162],{"d":5163,"fill":2210,"stroke":2210,"className":5164,"style":2299},"M69.405-59.066L67.425-59.066L67.425-59.363Q67.694-59.363 67.862-59.408Q68.030-59.453 68.030-59.625L68.030-61.761Q68.030-61.976 67.968-62.072Q67.905-62.168 67.788-62.189Q67.671-62.211 67.425-62.211L67.425-62.507L68.593-62.593L68.593-61.808Q68.671-62.019 68.823-62.205Q68.975-62.390 69.175-62.492Q69.374-62.593 69.600-62.593Q69.847-62.593 70.038-62.449Q70.229-62.304 70.229-62.074Q70.229-61.918 70.124-61.808Q70.018-61.699 69.862-61.699Q69.706-61.699 69.597-61.808Q69.487-61.918 69.487-62.074Q69.487-62.234 69.593-62.339Q69.268-62.339 69.054-62.111Q68.839-61.882 68.743-61.543Q68.647-61.203 68.647-60.898L68.647-59.625Q68.647-59.457 68.874-59.410Q69.100-59.363 69.405-59.363L69.405-59.066M72.569-59.066L70.792-59.066L70.792-59.363Q71.065-59.363 71.233-59.410Q71.401-59.457 71.401-59.625L71.401-61.761Q71.401-61.976 71.345-62.072Q71.288-62.168 71.175-62.189Q71.061-62.211 70.815-62.211L70.815-62.507L72.014-62.593L72.014-59.625Q72.014-59.457 72.161-59.410Q72.307-59.363 72.569-59.363L72.569-59.066M71.128-63.988Q71.128-64.179 71.263-64.310Q71.397-64.441 71.593-64.441Q71.714-64.441 71.817-64.379Q71.921-64.316 71.983-64.212Q72.046-64.109 72.046-63.988Q72.046-63.793 71.915-63.658Q71.784-63.523 71.593-63.523Q71.393-63.523 71.261-63.656Q71.128-63.789 71.128-63.988M73.069-58.457Q73.069-58.738 73.280-58.949Q73.491-59.160 73.776-59.250Q73.620-59.375 73.542-59.564Q73.464-59.754 73.464-59.953Q73.464-60.308 73.694-60.601Q73.327-60.941 73.327-61.410Q73.327-61.761 73.530-62.031Q73.733-62.300 74.054-62.447Q74.374-62.593 74.718-62.593Q75.237-62.593 75.608-62.312Q75.972-62.683 76.518-62.683Q76.698-62.683 76.825-62.556Q76.952-62.429 76.952-62.250Q76.952-62.144 76.874-62.066Q76.796-61.988 76.686-61.988Q76.577-61.988 76.501-62.064Q76.425-62.140 76.425-62.250Q76.425-62.351 76.464-62.402Q76.472-62.410 76.475-62.416Q76.479-62.421 76.479-62.425Q76.104-62.425 75.784-62.171Q76.104-61.832 76.104-61.410Q76.104-61.140 75.987-60.923Q75.870-60.707 75.665-60.548Q75.460-60.390 75.218-60.308Q74.975-60.226 74.718-60.226Q74.499-60.226 74.286-60.285Q74.073-60.343 73.878-60.464Q73.784-60.324 73.784-60.144Q73.784-59.937 73.921-59.785Q74.057-59.632 74.264-59.632L74.960-59.632Q75.448-59.632 75.860-59.548Q76.272-59.464 76.552-59.207Q76.831-58.949 76.831-58.457Q76.831-58.093 76.511-57.861Q76.190-57.629 75.749-57.527Q75.307-57.425 74.952-57.425Q74.597-57.425 74.153-57.527Q73.710-57.629 73.389-57.861Q73.069-58.093 73.069-58.457M73.573-58.457Q73.573-58.261 73.718-58.113Q73.862-57.964 74.075-57.875Q74.288-57.785 74.528-57.738Q74.768-57.691 74.952-57.691Q75.194-57.691 75.524-57.769Q75.854-57.847 76.091-58.021Q76.327-58.195 76.327-58.457Q76.327-58.863 75.917-58.972Q75.507-59.082 74.944-59.082L74.264-59.082Q73.995-59.082 73.784-58.904Q73.573-58.726 73.573-58.457M74.718-60.492Q75.440-60.492 75.440-61.410Q75.440-62.332 74.718-62.332Q73.991-62.332 73.991-61.410Q73.991-60.492 74.718-60.492M79.245-59.066L77.389-59.066L77.389-59.363Q77.663-59.363 77.831-59.410Q77.999-59.457 77.999-59.625L77.999-63.785Q77.999-64 77.936-64.095Q77.874-64.191 77.755-64.212Q77.636-64.234 77.389-64.234L77.389-64.531L78.612-64.617L78.612-61.914Q78.737-62.125 78.925-62.275Q79.112-62.425 79.339-62.509Q79.565-62.593 79.811-62.593Q80.979-62.593 80.979-61.515L80.979-59.625Q80.979-59.457 81.149-59.410Q81.319-59.363 81.589-59.363L81.589-59.066L79.733-59.066L79.733-59.363Q80.007-59.363 80.175-59.410Q80.343-59.457 80.343-59.625L80.343-61.500Q80.343-61.882 80.222-62.111Q80.100-62.339 79.749-62.339Q79.436-62.339 79.182-62.177Q78.929-62.015 78.782-61.746Q78.636-61.476 78.636-61.179L78.636-59.625Q78.636-59.457 78.805-59.410Q78.975-59.363 79.245-59.363",[2223],[2208,5166,5167],{"transform":5118},[1937,5168],{"d":5169,"fill":2210,"stroke":2210,"className":5170,"style":2299},"M82.432-60.027L82.432-62.218L81.729-62.218L81.729-62.472Q82.085-62.472 82.327-62.705Q82.569-62.937 82.680-63.285Q82.792-63.632 82.792-63.988L83.073-63.988L83.073-62.515L84.249-62.515L84.249-62.218L83.073-62.218L83.073-60.043Q83.073-59.722 83.192-59.494Q83.311-59.265 83.592-59.265Q83.772-59.265 83.889-59.388Q84.007-59.511 84.059-59.691Q84.112-59.871 84.112-60.043L84.112-60.515L84.393-60.515L84.393-60.027Q84.393-59.773 84.288-59.533Q84.182-59.293 83.985-59.140Q83.788-58.988 83.530-58.988Q83.214-58.988 82.962-59.111Q82.710-59.234 82.571-59.468Q82.432-59.703 82.432-60.027M85.698-57.660Q85.698-57.699 85.721-57.722Q85.995-58.007 86.137-58.371Q86.280-58.734 86.280-59.121Q86.182-59.066 86.057-59.066Q85.866-59.066 85.729-59.199Q85.592-59.332 85.592-59.531Q85.592-59.722 85.729-59.855Q85.866-59.988 86.057-59.988Q86.538-59.988 86.538-59.113Q86.538-58.824 86.465-58.543Q86.393-58.261 86.251-58.007Q86.108-57.754 85.913-57.546Q85.882-57.515 85.842-57.515Q85.796-57.515 85.747-57.560Q85.698-57.605 85.698-57.660M85.592-62.058Q85.592-62.242 85.729-62.379Q85.866-62.515 86.057-62.515Q86.249-62.515 86.382-62.382Q86.514-62.250 86.514-62.058Q86.514-61.859 86.382-61.726Q86.249-61.593 86.057-61.593Q85.866-61.593 85.729-61.730Q85.592-61.867 85.592-62.058",[2223],[2208,5172,5173],{"transform":5118},[1937,5174],{"d":5175,"fill":2210,"stroke":2210,"className":5176,"style":2299},"M92.190-57.515L90.335-57.515L90.335-57.808Q90.604-57.808 90.772-57.853Q90.940-57.898 90.940-58.074L90.940-61.898Q90.940-62.105 90.784-62.158Q90.628-62.211 90.335-62.211L90.335-62.507L91.557-62.593L91.557-62.129Q91.788-62.351 92.102-62.472Q92.417-62.593 92.757-62.593Q93.229-62.593 93.633-62.347Q94.038-62.101 94.270-61.685Q94.503-61.269 94.503-60.793Q94.503-60.418 94.354-60.089Q94.206-59.761 93.936-59.509Q93.667-59.257 93.323-59.123Q92.979-58.988 92.620-58.988Q92.331-58.988 92.059-59.109Q91.788-59.230 91.581-59.441L91.581-58.074Q91.581-57.898 91.749-57.853Q91.917-57.808 92.190-57.808L92.190-57.515M91.581-61.730L91.581-59.890Q91.733-59.601 91.995-59.421Q92.257-59.242 92.565-59.242Q92.850-59.242 93.073-59.380Q93.296-59.519 93.448-59.750Q93.600-59.980 93.678-60.252Q93.757-60.523 93.757-60.793Q93.757-61.125 93.632-61.482Q93.507-61.839 93.258-62.076Q93.010-62.312 92.663-62.312Q92.339-62.312 92.044-62.156Q91.749-62 91.581-61.730M96.885-59.066L95.108-59.066L95.108-59.363Q95.382-59.363 95.549-59.410Q95.717-59.457 95.717-59.625L95.717-61.761Q95.717-61.976 95.661-62.072Q95.604-62.168 95.491-62.189Q95.378-62.211 95.132-62.211L95.132-62.507L96.331-62.593L96.331-59.625Q96.331-59.457 96.477-59.410Q96.624-59.363 96.885-59.363L96.885-59.066M95.444-63.988Q95.444-64.179 95.579-64.310Q95.714-64.441 95.909-64.441Q96.030-64.441 96.133-64.379Q96.237-64.316 96.299-64.212Q96.362-64.109 96.362-63.988Q96.362-63.793 96.231-63.658Q96.100-63.523 95.909-63.523Q95.710-63.523 95.577-63.656Q95.444-63.789 95.444-63.988M97.428-60.793Q97.428-61.289 97.678-61.714Q97.928-62.140 98.348-62.386Q98.768-62.632 99.268-62.632Q99.807-62.632 100.198-62.507Q100.589-62.382 100.589-61.968Q100.589-61.863 100.538-61.771Q100.487-61.679 100.395-61.629Q100.303-61.578 100.194-61.578Q100.089-61.578 99.997-61.629Q99.905-61.679 99.854-61.771Q99.803-61.863 99.803-61.968Q99.803-62.191 99.971-62.296Q99.749-62.355 99.276-62.355Q98.979-62.355 98.764-62.216Q98.549-62.078 98.419-61.847Q98.288-61.617 98.229-61.347Q98.171-61.078 98.171-60.793Q98.171-60.398 98.303-60.048Q98.436-59.699 98.708-59.482Q98.979-59.265 99.378-59.265Q99.753-59.265 100.028-59.482Q100.303-59.699 100.405-60.058Q100.421-60.121 100.483-60.121L100.589-60.121Q100.624-60.121 100.649-60.093Q100.674-60.066 100.674-60.027L100.674-60.004Q100.542-59.523 100.157-59.255Q99.772-58.988 99.268-58.988Q98.905-58.988 98.571-59.125Q98.237-59.261 97.977-59.511Q97.717-59.761 97.573-60.097Q97.428-60.433 97.428-60.793",[2223],[2208,5178,5179],{"transform":5118},[1937,5180],{"d":5181,"fill":2210,"stroke":2210,"className":5182,"style":2299},"M102.757-59.066L100.960-59.066L100.960-59.363Q101.229-59.363 101.397-59.408Q101.565-59.453 101.565-59.625L101.565-63.785Q101.565-64 101.503-64.095Q101.440-64.191 101.323-64.212Q101.206-64.234 100.960-64.234L100.960-64.531L102.182-64.617L102.182-60.851L103.280-61.738Q103.487-61.918 103.487-62.066Q103.487-62.132 103.434-62.175Q103.382-62.218 103.311-62.218L103.311-62.515L104.846-62.515L104.846-62.218Q104.315-62.218 103.717-61.738L103.108-61.242L104.182-59.843Q104.319-59.668 104.426-59.560Q104.534-59.453 104.669-59.408Q104.803-59.363 105.030-59.363L105.030-59.066L103.405-59.066L103.405-59.363Q103.647-59.363 103.647-59.515Q103.647-59.593 103.604-59.664Q103.561-59.734 103.479-59.843L102.678-60.890L102.151-60.464L102.151-59.625Q102.151-59.457 102.319-59.410Q102.487-59.363 102.757-59.363",[2223],[2208,5184,5185],{"transform":5118},[1937,5186],{"d":5187,"fill":2210,"stroke":2210,"className":5188,"style":2299},"M108.876-60.027L108.876-62.218L108.173-62.218L108.173-62.472Q108.529-62.472 108.771-62.705Q109.013-62.937 109.124-63.285Q109.236-63.632 109.236-63.988L109.517-63.988L109.517-62.515L110.693-62.515L110.693-62.218L109.517-62.218L109.517-60.043Q109.517-59.722 109.636-59.494Q109.755-59.265 110.036-59.265Q110.216-59.265 110.333-59.388Q110.451-59.511 110.503-59.691Q110.556-59.871 110.556-60.043L110.556-60.515L110.837-60.515L110.837-60.027Q110.837-59.773 110.732-59.533Q110.626-59.293 110.429-59.140Q110.232-58.988 109.974-58.988Q109.658-58.988 109.406-59.111Q109.154-59.234 109.015-59.468Q108.876-59.703 108.876-60.027M113.486-59.066L111.630-59.066L111.630-59.363Q111.904-59.363 112.072-59.410Q112.240-59.457 112.240-59.625L112.240-63.785Q112.240-64 112.177-64.095Q112.115-64.191 111.995-64.212Q111.876-64.234 111.630-64.234L111.630-64.531L112.853-64.617L112.853-61.914Q112.978-62.125 113.165-62.275Q113.353-62.425 113.579-62.509Q113.806-62.593 114.052-62.593Q115.220-62.593 115.220-61.515L115.220-59.625Q115.220-59.457 115.390-59.410Q115.560-59.363 115.829-59.363L115.829-59.066L113.974-59.066L113.974-59.363Q114.247-59.363 114.415-59.410Q114.583-59.457 114.583-59.625L114.583-61.500Q114.583-61.882 114.462-62.111Q114.341-62.339 113.990-62.339Q113.677-62.339 113.423-62.177Q113.169-62.015 113.023-61.746Q112.876-61.476 112.876-61.179L112.876-59.625Q112.876-59.457 113.046-59.410Q113.216-59.363 113.486-59.363L113.486-59.066M116.275-60.820Q116.275-61.300 116.507-61.716Q116.740-62.132 117.150-62.382Q117.560-62.632 118.036-62.632Q118.767-62.632 119.165-62.191Q119.564-61.750 119.564-61.019Q119.564-60.914 119.470-60.890L117.021-60.890L117.021-60.820Q117.021-60.410 117.142-60.054Q117.263-59.699 117.534-59.482Q117.806-59.265 118.236-59.265Q118.599-59.265 118.896-59.494Q119.193-59.722 119.294-60.074Q119.302-60.121 119.388-60.136L119.470-60.136Q119.564-60.109 119.564-60.027Q119.564-60.019 119.556-59.988Q119.493-59.761 119.355-59.578Q119.216-59.394 119.025-59.261Q118.833-59.129 118.615-59.058Q118.396-58.988 118.158-58.988Q117.786-58.988 117.449-59.125Q117.111-59.261 116.843-59.513Q116.576-59.765 116.425-60.105Q116.275-60.445 116.275-60.820M117.029-61.129L118.990-61.129Q118.990-61.433 118.888-61.724Q118.786-62.015 118.570-62.197Q118.353-62.379 118.036-62.379Q117.736-62.379 117.505-62.191Q117.275-62.004 117.152-61.712Q117.029-61.421 117.029-61.129",[2223],[2208,5190,5191],{"transform":5118},[1937,5192],{"d":5193,"fill":2210,"stroke":2210,"className":5194,"style":2299},"M124.804-59.066L122.972-59.066L122.972-59.363Q123.246-59.363 123.414-59.410Q123.582-59.457 123.582-59.625L123.582-63.785Q123.582-64 123.519-64.095Q123.457-64.191 123.338-64.212Q123.218-64.234 122.972-64.234L122.972-64.531L124.195-64.617L124.195-59.625Q124.195-59.457 124.363-59.410Q124.531-59.363 124.804-59.363L124.804-59.066M125.347-59.898Q125.347-60.382 125.750-60.677Q126.152-60.972 126.703-61.091Q127.254-61.211 127.746-61.211L127.746-61.500Q127.746-61.726 127.631-61.933Q127.515-62.140 127.318-62.259Q127.121-62.379 126.890-62.379Q126.465-62.379 126.179-62.273Q126.250-62.246 126.297-62.191Q126.343-62.136 126.369-62.066Q126.394-61.996 126.394-61.921Q126.394-61.816 126.343-61.724Q126.293-61.632 126.201-61.582Q126.109-61.531 126.004-61.531Q125.898-61.531 125.806-61.582Q125.715-61.632 125.664-61.724Q125.613-61.816 125.613-61.921Q125.613-62.339 126.002-62.486Q126.390-62.632 126.890-62.632Q127.222-62.632 127.576-62.502Q127.929-62.371 128.158-62.117Q128.386-61.863 128.386-61.515L128.386-59.714Q128.386-59.582 128.459-59.472Q128.531-59.363 128.660-59.363Q128.785-59.363 128.853-59.468Q128.922-59.574 128.922-59.714L128.922-60.226L129.203-60.226L129.203-59.714Q129.203-59.511 129.086-59.353Q128.968-59.195 128.787-59.111Q128.605-59.027 128.402-59.027Q128.172-59.027 128.019-59.199Q127.867-59.371 127.836-59.601Q127.675-59.320 127.367-59.154Q127.058-58.988 126.707-58.988Q126.195-58.988 125.771-59.211Q125.347-59.433 125.347-59.898M126.035-59.898Q126.035-59.613 126.261-59.427Q126.488-59.242 126.781-59.242Q127.027-59.242 127.252-59.359Q127.476-59.476 127.611-59.679Q127.746-59.882 127.746-60.136L127.746-60.968Q127.480-60.968 127.195-60.914Q126.910-60.859 126.638-60.730Q126.367-60.601 126.201-60.394Q126.035-60.187 126.035-59.898M130.121-60.027L130.121-62.218L129.418-62.218L129.418-62.472Q129.773-62.472 130.015-62.705Q130.257-62.937 130.369-63.285Q130.480-63.632 130.480-63.988L130.761-63.988L130.761-62.515L131.937-62.515L131.937-62.218L130.761-62.218L130.761-60.043Q130.761-59.722 130.881-59.494Q131-59.265 131.281-59.265Q131.461-59.265 131.578-59.388Q131.695-59.511 131.748-59.691Q131.800-59.871 131.800-60.043L131.800-60.515L132.082-60.515L132.082-60.027Q132.082-59.773 131.976-59.533Q131.871-59.293 131.673-59.140Q131.476-58.988 131.218-58.988Q130.902-58.988 130.650-59.111Q130.398-59.234 130.259-59.468Q130.121-59.703 130.121-60.027M132.800-60.820Q132.800-61.300 133.033-61.716Q133.265-62.132 133.675-62.382Q134.086-62.632 134.562-62.632Q135.293-62.632 135.691-62.191Q136.089-61.750 136.089-61.019Q136.089-60.914 135.996-60.890L133.547-60.890L133.547-60.820Q133.547-60.410 133.668-60.054Q133.789-59.699 134.060-59.482Q134.332-59.265 134.761-59.265Q135.125-59.265 135.422-59.494Q135.718-59.722 135.820-60.074Q135.828-60.121 135.914-60.136L135.996-60.136Q136.089-60.109 136.089-60.027Q136.089-60.019 136.082-59.988Q136.019-59.761 135.881-59.578Q135.742-59.394 135.550-59.261Q135.359-59.129 135.140-59.058Q134.922-58.988 134.683-58.988Q134.312-58.988 133.974-59.125Q133.636-59.261 133.369-59.513Q133.101-59.765 132.951-60.105Q132.800-60.445 132.800-60.820M133.554-61.129L135.515-61.129Q135.515-61.433 135.414-61.724Q135.312-62.015 135.095-62.197Q134.879-62.379 134.562-62.379Q134.261-62.379 134.031-62.191Q133.800-62.004 133.677-61.712Q133.554-61.421 133.554-61.129M138.586-59.066L136.605-59.066L136.605-59.363Q136.875-59.363 137.043-59.408Q137.211-59.453 137.211-59.625L137.211-61.761Q137.211-61.976 137.148-62.072Q137.086-62.168 136.968-62.189Q136.851-62.211 136.605-62.211L136.605-62.507L137.773-62.593L137.773-61.808Q137.851-62.019 138.004-62.205Q138.156-62.390 138.355-62.492Q138.554-62.593 138.781-62.593Q139.027-62.593 139.218-62.449Q139.410-62.304 139.410-62.074Q139.410-61.918 139.304-61.808Q139.199-61.699 139.043-61.699Q138.886-61.699 138.777-61.808Q138.668-61.918 138.668-62.074Q138.668-62.234 138.773-62.339Q138.449-62.339 138.234-62.111Q138.019-61.882 137.923-61.543Q137.828-61.203 137.828-60.898L137.828-59.625Q137.828-59.457 138.054-59.410Q138.281-59.363 138.586-59.363",[2223],[2208,5196,5197],{"transform":5118},[1937,5198],{"d":5199,"fill":2210,"stroke":2210,"className":5200,"style":2299},"M144.645-59.066L142.813-59.066L142.813-59.363Q143.087-59.363 143.255-59.410Q143.423-59.457 143.423-59.625L143.423-63.785Q143.423-64 143.360-64.095Q143.298-64.191 143.179-64.212Q143.059-64.234 142.813-64.234L142.813-64.531L144.036-64.617L144.036-59.625Q144.036-59.457 144.204-59.410Q144.372-59.363 144.645-59.363L144.645-59.066M146.950-59.066L145.173-59.066L145.173-59.363Q145.446-59.363 145.614-59.410Q145.782-59.457 145.782-59.625L145.782-61.761Q145.782-61.976 145.725-62.072Q145.669-62.168 145.555-62.189Q145.442-62.211 145.196-62.211L145.196-62.507L146.395-62.593L146.395-59.625Q146.395-59.457 146.542-59.410Q146.688-59.363 146.950-59.363L146.950-59.066M145.509-63.988Q145.509-64.179 145.643-64.310Q145.778-64.441 145.973-64.441Q146.095-64.441 146.198-64.379Q146.302-64.316 146.364-64.212Q146.427-64.109 146.427-63.988Q146.427-63.793 146.296-63.658Q146.165-63.523 145.973-63.523Q145.774-63.523 145.641-63.656Q145.509-63.789 145.509-63.988M148.075-60.027L148.075-62.218L147.372-62.218L147.372-62.472Q147.727-62.472 147.970-62.705Q148.212-62.937 148.323-63.285Q148.434-63.632 148.434-63.988L148.716-63.988L148.716-62.515L149.891-62.515L149.891-62.218L148.716-62.218L148.716-60.043Q148.716-59.722 148.835-59.494Q148.954-59.265 149.235-59.265Q149.415-59.265 149.532-59.388Q149.649-59.511 149.702-59.691Q149.755-59.871 149.755-60.043L149.755-60.515L150.036-60.515L150.036-60.027Q150.036-59.773 149.930-59.533Q149.825-59.293 149.628-59.140Q149.430-58.988 149.173-58.988Q148.856-58.988 148.604-59.111Q148.352-59.234 148.214-59.468Q148.075-59.703 148.075-60.027M150.755-60.820Q150.755-61.300 150.987-61.716Q151.220-62.132 151.630-62.382Q152.040-62.632 152.516-62.632Q153.247-62.632 153.645-62.191Q154.044-61.750 154.044-61.019Q154.044-60.914 153.950-60.890L151.501-60.890L151.501-60.820Q151.501-60.410 151.622-60.054Q151.743-59.699 152.014-59.482Q152.286-59.265 152.716-59.265Q153.079-59.265 153.376-59.494Q153.673-59.722 153.774-60.074Q153.782-60.121 153.868-60.136L153.950-60.136Q154.044-60.109 154.044-60.027Q154.044-60.019 154.036-59.988Q153.973-59.761 153.835-59.578Q153.696-59.394 153.505-59.261Q153.313-59.129 153.095-59.058Q152.876-58.988 152.638-58.988Q152.266-58.988 151.929-59.125Q151.591-59.261 151.323-59.513Q151.055-59.765 150.905-60.105Q150.755-60.445 150.755-60.820M151.509-61.129L153.470-61.129Q153.470-61.433 153.368-61.724Q153.266-62.015 153.050-62.197Q152.833-62.379 152.516-62.379Q152.216-62.379 151.985-62.191Q151.755-62.004 151.632-61.712Q151.509-61.421 151.509-61.129M156.540-59.066L154.559-59.066L154.559-59.363Q154.829-59.363 154.997-59.408Q155.165-59.453 155.165-59.625L155.165-61.761Q155.165-61.976 155.102-62.072Q155.040-62.168 154.923-62.189Q154.805-62.211 154.559-62.211L154.559-62.507L155.727-62.593L155.727-61.808Q155.805-62.019 155.958-62.205Q156.110-62.390 156.309-62.492Q156.509-62.593 156.735-62.593Q156.981-62.593 157.173-62.449Q157.364-62.304 157.364-62.074Q157.364-61.918 157.259-61.808Q157.153-61.699 156.997-61.699Q156.841-61.699 156.731-61.808Q156.622-61.918 156.622-62.074Q156.622-62.234 156.727-62.339Q156.403-62.339 156.188-62.111Q155.973-61.882 155.878-61.543Q155.782-61.203 155.782-60.898L155.782-59.625Q155.782-59.457 156.009-59.410Q156.235-59.363 156.540-59.363L156.540-59.066M157.942-59.898Q157.942-60.382 158.345-60.677Q158.747-60.972 159.298-61.091Q159.848-61.211 160.341-61.211L160.341-61.500Q160.341-61.726 160.225-61.933Q160.110-62.140 159.913-62.259Q159.716-62.379 159.485-62.379Q159.059-62.379 158.774-62.273Q158.845-62.246 158.891-62.191Q158.938-62.136 158.964-62.066Q158.989-61.996 158.989-61.921Q158.989-61.816 158.938-61.724Q158.888-61.632 158.796-61.582Q158.704-61.531 158.598-61.531Q158.493-61.531 158.401-61.582Q158.309-61.632 158.259-61.724Q158.208-61.816 158.208-61.921Q158.208-62.339 158.597-62.486Q158.985-62.632 159.485-62.632Q159.817-62.632 160.171-62.502Q160.524-62.371 160.753-62.117Q160.981-61.863 160.981-61.515L160.981-59.714Q160.981-59.582 161.054-59.472Q161.126-59.363 161.255-59.363Q161.380-59.363 161.448-59.468Q161.516-59.574 161.516-59.714L161.516-60.226L161.798-60.226L161.798-59.714Q161.798-59.511 161.680-59.353Q161.563-59.195 161.382-59.111Q161.200-59.027 160.997-59.027Q160.766-59.027 160.614-59.199Q160.462-59.371 160.430-59.601Q160.270-59.320 159.962-59.154Q159.653-58.988 159.302-58.988Q158.790-58.988 158.366-59.211Q157.942-59.433 157.942-59.898M158.630-59.898Q158.630-59.613 158.856-59.427Q159.083-59.242 159.376-59.242Q159.622-59.242 159.847-59.359Q160.071-59.476 160.206-59.679Q160.341-59.882 160.341-60.136L160.341-60.968Q160.075-60.968 159.790-60.914Q159.505-60.859 159.233-60.730Q158.962-60.601 158.796-60.394Q158.630-60.187 158.630-59.898M164.005-59.066L162.173-59.066L162.173-59.363Q162.446-59.363 162.614-59.410Q162.782-59.457 162.782-59.625L162.782-63.785Q162.782-64 162.720-64.095Q162.657-64.191 162.538-64.212Q162.419-64.234 162.173-64.234L162.173-64.531L163.395-64.617L163.395-59.625Q163.395-59.457 163.563-59.410Q163.731-59.363 164.005-59.363",[2223],[2208,5202,5203],{"transform":5118},[1937,5204],{"d":5205,"fill":2210,"stroke":2210,"className":5206,"style":2299},"M167.294-60.761Q167.294-61.265 167.550-61.697Q167.806-62.129 168.242-62.380Q168.677-62.632 169.177-62.632Q169.564-62.632 169.906-62.488Q170.247-62.343 170.509-62.082Q170.771-61.820 170.913-61.484Q171.056-61.148 171.056-60.761Q171.056-60.269 170.792-59.859Q170.529-59.449 170.099-59.218Q169.669-58.988 169.177-58.988Q168.685-58.988 168.251-59.220Q167.818-59.453 167.556-59.861Q167.294-60.269 167.294-60.761M169.177-59.265Q169.634-59.265 169.886-59.488Q170.138-59.711 170.226-60.062Q170.314-60.414 170.314-60.859Q170.314-61.289 170.220-61.627Q170.126-61.964 169.872-62.171Q169.619-62.379 169.177-62.379Q168.529-62.379 168.285-61.962Q168.040-61.546 168.040-60.859Q168.040-60.414 168.128-60.062Q168.216-59.711 168.468-59.488Q168.720-59.265 169.177-59.265M173.607-59.066L171.622-59.066L171.622-59.363Q171.896-59.363 172.064-59.410Q172.232-59.457 172.232-59.625L172.232-62.218L171.591-62.218L171.591-62.515L172.232-62.515L172.232-63.449Q172.232-63.714 172.349-63.951Q172.466-64.187 172.660-64.351Q172.853-64.515 173.101-64.607Q173.349-64.699 173.615-64.699Q173.900-64.699 174.124-64.541Q174.349-64.382 174.349-64.105Q174.349-63.949 174.244-63.839Q174.138-63.730 173.974-63.730Q173.818-63.730 173.708-63.839Q173.599-63.949 173.599-64.105Q173.599-64.312 173.759-64.418Q173.661-64.441 173.568-64.441Q173.337-64.441 173.165-64.285Q172.994-64.129 172.908-63.892Q172.822-63.656 172.822-63.433L172.822-62.515L173.790-62.515L173.790-62.218L172.845-62.218L172.845-59.625Q172.845-59.457 173.072-59.410Q173.298-59.363 173.607-59.363",[2223],[2208,5208,5209],{"transform":5118},[1937,5210],{"d":5211,"fill":2210,"stroke":2210,"className":5212,"style":2299},"M176.975-60.820Q176.975-61.300 177.208-61.716Q177.440-62.132 177.850-62.382Q178.260-62.632 178.737-62.632Q179.467-62.632 179.866-62.191Q180.264-61.750 180.264-61.019Q180.264-60.914 180.171-60.890L177.721-60.890L177.721-60.820Q177.721-60.410 177.842-60.054Q177.964-59.699 178.235-59.482Q178.507-59.265 178.936-59.265Q179.299-59.265 179.596-59.494Q179.893-59.722 179.995-60.074Q180.003-60.121 180.089-60.136L180.171-60.136Q180.264-60.109 180.264-60.027Q180.264-60.019 180.257-59.988Q180.194-59.761 180.055-59.578Q179.917-59.394 179.725-59.261Q179.534-59.129 179.315-59.058Q179.096-58.988 178.858-58.988Q178.487-58.988 178.149-59.125Q177.811-59.261 177.544-59.513Q177.276-59.765 177.126-60.105Q176.975-60.445 176.975-60.820M177.729-61.129L179.690-61.129Q179.690-61.433 179.589-61.724Q179.487-62.015 179.270-62.197Q179.053-62.379 178.737-62.379Q178.436-62.379 178.206-62.191Q177.975-62.004 177.852-61.712Q177.729-61.421 177.729-61.129M180.850-59.898Q180.850-60.382 181.253-60.677Q181.655-60.972 182.206-61.091Q182.757-61.211 183.249-61.211L183.249-61.500Q183.249-61.726 183.133-61.933Q183.018-62.140 182.821-62.259Q182.624-62.379 182.393-62.379Q181.967-62.379 181.682-62.273Q181.753-62.246 181.799-62.191Q181.846-62.136 181.872-62.066Q181.897-61.996 181.897-61.921Q181.897-61.816 181.846-61.724Q181.796-61.632 181.704-61.582Q181.612-61.531 181.507-61.531Q181.401-61.531 181.309-61.582Q181.217-61.632 181.167-61.724Q181.116-61.816 181.116-61.921Q181.116-62.339 181.505-62.486Q181.893-62.632 182.393-62.632Q182.725-62.632 183.079-62.502Q183.432-62.371 183.661-62.117Q183.889-61.863 183.889-61.515L183.889-59.714Q183.889-59.582 183.962-59.472Q184.034-59.363 184.163-59.363Q184.288-59.363 184.356-59.468Q184.424-59.574 184.424-59.714L184.424-60.226L184.706-60.226L184.706-59.714Q184.706-59.511 184.589-59.353Q184.471-59.195 184.290-59.111Q184.108-59.027 183.905-59.027Q183.674-59.027 183.522-59.199Q183.370-59.371 183.339-59.601Q183.178-59.320 182.870-59.154Q182.561-58.988 182.210-58.988Q181.698-58.988 181.274-59.211Q180.850-59.433 180.850-59.898M181.538-59.898Q181.538-59.613 181.764-59.427Q181.991-59.242 182.284-59.242Q182.530-59.242 182.755-59.359Q182.979-59.476 183.114-59.679Q183.249-59.882 183.249-60.136L183.249-60.968Q182.983-60.968 182.698-60.914Q182.413-60.859 182.141-60.730Q181.870-60.601 181.704-60.394Q181.538-60.187 181.538-59.898M185.042-60.793Q185.042-61.289 185.292-61.714Q185.542-62.140 185.962-62.386Q186.382-62.632 186.882-62.632Q187.421-62.632 187.811-62.507Q188.202-62.382 188.202-61.968Q188.202-61.863 188.151-61.771Q188.100-61.679 188.008-61.629Q187.917-61.578 187.807-61.578Q187.702-61.578 187.610-61.629Q187.518-61.679 187.467-61.771Q187.417-61.863 187.417-61.968Q187.417-62.191 187.585-62.296Q187.362-62.355 186.889-62.355Q186.592-62.355 186.378-62.216Q186.163-62.078 186.032-61.847Q185.901-61.617 185.842-61.347Q185.784-61.078 185.784-60.793Q185.784-60.398 185.917-60.048Q186.049-59.699 186.321-59.482Q186.592-59.265 186.991-59.265Q187.366-59.265 187.641-59.482Q187.917-59.699 188.018-60.058Q188.034-60.121 188.096-60.121L188.202-60.121Q188.237-60.121 188.262-60.093Q188.288-60.066 188.288-60.027L188.288-60.004Q188.155-59.523 187.770-59.255Q187.385-58.988 186.882-58.988Q186.518-58.988 186.184-59.125Q185.850-59.261 185.591-59.511Q185.331-59.761 185.186-60.097Q185.042-60.433 185.042-60.793",[2223],[2208,5214,5215],{"transform":5118},[1937,5216],{"d":5217,"fill":2210,"stroke":2210,"className":5218,"style":2299},"M190.474-59.066L188.619-59.066L188.619-59.363Q188.892-59.363 189.060-59.410Q189.228-59.457 189.228-59.625L189.228-63.785Q189.228-64 189.165-64.095Q189.103-64.191 188.984-64.212Q188.865-64.234 188.619-64.234L188.619-64.531L189.841-64.617L189.841-61.914Q189.966-62.125 190.154-62.275Q190.341-62.425 190.568-62.509Q190.794-62.593 191.040-62.593Q192.208-62.593 192.208-61.515L192.208-59.625Q192.208-59.457 192.378-59.410Q192.548-59.363 192.818-59.363L192.818-59.066L190.962-59.066L190.962-59.363Q191.236-59.363 191.404-59.410Q191.572-59.457 191.572-59.625L191.572-61.500Q191.572-61.882 191.451-62.111Q191.329-62.339 190.978-62.339Q190.665-62.339 190.411-62.177Q190.158-62.015 190.011-61.746Q189.865-61.476 189.865-61.179L189.865-59.625Q189.865-59.457 190.035-59.410Q190.204-59.363 190.474-59.363",[2223],[2208,5220,5221],{"transform":5118},[1937,5222],{"d":5223,"fill":2210,"stroke":2210,"className":5224,"style":2299},"M197.983-57.515L196.128-57.515L196.128-57.808Q196.397-57.808 196.565-57.853Q196.733-57.898 196.733-58.074L196.733-61.898Q196.733-62.105 196.577-62.158Q196.421-62.211 196.128-62.211L196.128-62.507L197.350-62.593L197.350-62.129Q197.581-62.351 197.895-62.472Q198.210-62.593 198.549-62.593Q199.022-62.593 199.426-62.347Q199.831-62.101 200.063-61.685Q200.296-61.269 200.296-60.793Q200.296-60.418 200.147-60.089Q199.999-59.761 199.729-59.509Q199.460-59.257 199.116-59.123Q198.772-58.988 198.413-58.988Q198.124-58.988 197.852-59.109Q197.581-59.230 197.374-59.441L197.374-58.074Q197.374-57.898 197.542-57.853Q197.710-57.808 197.983-57.808L197.983-57.515M197.374-61.730L197.374-59.890Q197.526-59.601 197.788-59.421Q198.049-59.242 198.358-59.242Q198.643-59.242 198.866-59.380Q199.089-59.519 199.241-59.750Q199.393-59.980 199.471-60.252Q199.549-60.523 199.549-60.793Q199.549-61.125 199.424-61.482Q199.299-61.839 199.051-62.076Q198.803-62.312 198.456-62.312Q198.132-62.312 197.837-62.156Q197.542-62 197.374-61.730M200.917-59.898Q200.917-60.382 201.319-60.677Q201.721-60.972 202.272-61.091Q202.823-61.211 203.315-61.211L203.315-61.500Q203.315-61.726 203.200-61.933Q203.085-62.140 202.887-62.259Q202.690-62.379 202.460-62.379Q202.034-62.379 201.749-62.273Q201.819-62.246 201.866-62.191Q201.913-62.136 201.938-62.066Q201.964-61.996 201.964-61.921Q201.964-61.816 201.913-61.724Q201.862-61.632 201.770-61.582Q201.678-61.531 201.573-61.531Q201.467-61.531 201.376-61.582Q201.284-61.632 201.233-61.724Q201.182-61.816 201.182-61.921Q201.182-62.339 201.571-62.486Q201.960-62.632 202.460-62.632Q202.792-62.632 203.145-62.502Q203.499-62.371 203.727-62.117Q203.956-61.863 203.956-61.515L203.956-59.714Q203.956-59.582 204.028-59.472Q204.100-59.363 204.229-59.363Q204.354-59.363 204.423-59.468Q204.491-59.574 204.491-59.714L204.491-60.226L204.772-60.226L204.772-59.714Q204.772-59.511 204.655-59.353Q204.538-59.195 204.356-59.111Q204.174-59.027 203.971-59.027Q203.741-59.027 203.589-59.199Q203.436-59.371 203.405-59.601Q203.245-59.320 202.936-59.154Q202.628-58.988 202.276-58.988Q201.764-58.988 201.341-59.211Q200.917-59.433 200.917-59.898M201.604-59.898Q201.604-59.613 201.831-59.427Q202.057-59.242 202.350-59.242Q202.596-59.242 202.821-59.359Q203.046-59.476 203.180-59.679Q203.315-59.882 203.315-60.136L203.315-60.968Q203.049-60.968 202.764-60.914Q202.479-60.859 202.208-60.730Q201.936-60.601 201.770-60.394Q201.604-60.187 201.604-59.898M206.924-59.066L205.147-59.066L205.147-59.363Q205.421-59.363 205.589-59.410Q205.757-59.457 205.757-59.625L205.757-61.761Q205.757-61.976 205.700-62.072Q205.643-62.168 205.530-62.189Q205.417-62.211 205.171-62.211L205.171-62.507L206.370-62.593L206.370-59.625Q206.370-59.457 206.516-59.410Q206.663-59.363 206.924-59.363L206.924-59.066M205.483-63.988Q205.483-64.179 205.618-64.310Q205.753-64.441 205.948-64.441Q206.069-64.441 206.173-64.379Q206.276-64.316 206.339-64.212Q206.401-64.109 206.401-63.988Q206.401-63.793 206.270-63.658Q206.139-63.523 205.948-63.523Q205.749-63.523 205.616-63.656Q205.483-63.789 205.483-63.988M209.432-59.066L207.452-59.066L207.452-59.363Q207.721-59.363 207.889-59.408Q208.057-59.453 208.057-59.625L208.057-61.761Q208.057-61.976 207.995-62.072Q207.932-62.168 207.815-62.189Q207.698-62.211 207.452-62.211L207.452-62.507L208.620-62.593L208.620-61.808Q208.698-62.019 208.850-62.205Q209.003-62.390 209.202-62.492Q209.401-62.593 209.628-62.593Q209.874-62.593 210.065-62.449Q210.257-62.304 210.257-62.074Q210.257-61.918 210.151-61.808Q210.046-61.699 209.889-61.699Q209.733-61.699 209.624-61.808Q209.514-61.918 209.514-62.074Q209.514-62.234 209.620-62.339Q209.296-62.339 209.081-62.111Q208.866-61.882 208.770-61.543Q208.674-61.203 208.674-60.898L208.674-59.625Q208.674-59.457 208.901-59.410Q209.128-59.363 209.432-59.363L209.432-59.066M211.139-57.066L211.057-57.066Q211.022-57.066 210.997-57.095Q210.971-57.125 210.971-57.164Q210.971-57.214 211.003-57.234Q211.389-57.570 211.673-58.019Q211.956-58.468 212.122-58.968Q212.288-59.468 212.362-59.986Q212.436-60.504 212.436-61.066Q212.436-61.636 212.362-62.152Q212.288-62.668 212.122-63.164Q211.956-63.660 211.676-64.107Q211.397-64.554 211.003-64.898Q210.971-64.918 210.971-64.968Q210.971-65.007 210.997-65.037Q211.022-65.066 211.057-65.066L211.139-65.066Q211.151-65.066 211.161-65.064Q211.171-65.062 211.178-65.058Q211.792-64.601 212.194-63.966Q212.596-63.332 212.792-62.586Q212.987-61.839 212.987-61.066Q212.987-60.293 212.792-59.546Q212.596-58.800 212.194-58.166Q211.792-57.531 211.178-57.074Q211.167-57.074 211.159-57.072Q211.151-57.070 211.139-57.066",[2223],[2352,5226,5228],{"className":5227},[2355],"assign by reverse topological order of SCCs",[381,5230,5231,5232,5287,5288,5340,5341,5393,5394,5396,5397,5452,5453,5340,5505,5557,5558,5560,5561,5576,5577,5592,5593,5635],{},"Here ",[393,5233,5235],{"className":5234},[396],[393,5236,5238],{"className":5237,"ariaHidden":401},[400],[393,5239,5241,5244,5247],{"className":5240},[405],[393,5242],{"className":5243,"style":645},[409],[393,5245,704],{"className":5246},[414],[393,5248,5250,5253],{"className":5249},[414],[393,5251,508],{"className":5252},[414,415],[393,5254,5256],{"className":5255},[512],[393,5257,5259,5279],{"className":5258},[516,517],[393,5260,5262,5276],{"className":5261},[521],[393,5263,5265],{"className":5264,"style":526},[525],[393,5266,5267,5270],{"style":529},[393,5268],{"className":5269,"style":534},[533],[393,5271,5273],{"className":5272},[538,539,540,541],[393,5274,545],{"className":5275},[414,541],[393,5277,550],{"className":5278},[549],[393,5280,5282],{"className":5281},[521],[393,5283,5285],{"className":5284,"style":557},[525],[393,5286],{}," sits in an earlier component than ",[393,5289,5291],{"className":5290},[396],[393,5292,5294],{"className":5293,"ariaHidden":401},[400],[393,5295,5297,5300],{"className":5296},[405],[393,5298],{"className":5299,"style":645},[409],[393,5301,5303,5306],{"className":5302},[414],[393,5304,508],{"className":5305},[414,415],[393,5307,5309],{"className":5308},[512],[393,5310,5312,5332],{"className":5311},[516,517],[393,5313,5315,5329],{"className":5314},[521],[393,5316,5318],{"className":5317,"style":526},[525],[393,5319,5320,5323],{"style":529},[393,5321],{"className":5322,"style":534},[533],[393,5324,5326],{"className":5325},[538,539,540,541],[393,5327,545],{"className":5328},[414,541],[393,5330,550],{"className":5331},[549],[393,5333,5335],{"className":5334},[521],[393,5336,5338],{"className":5337,"style":557},[525],[393,5339],{},", so ",[393,5342,5344],{"className":5343},[396],[393,5345,5347],{"className":5346,"ariaHidden":401},[400],[393,5348,5350,5353],{"className":5349},[405],[393,5351],{"className":5352,"style":645},[409],[393,5354,5356,5359],{"className":5355},[414],[393,5357,508],{"className":5358},[414,415],[393,5360,5362],{"className":5361},[512],[393,5363,5365,5385],{"className":5364},[516,517],[393,5366,5368,5382],{"className":5367},[521],[393,5369,5371],{"className":5370,"style":526},[525],[393,5372,5373,5376],{"style":529},[393,5374],{"className":5375,"style":534},[533],[393,5377,5379],{"className":5378},[538,539,540,541],[393,5380,545],{"className":5381},[414,541],[393,5383,550],{"className":5384},[549],[393,5386,5388],{"className":5387},[521],[393,5389,5391],{"className":5390,"style":557},[525],[393,5392],{}," is set ",[388,5395,401],{},"\n(its SCC, highlighted, is later); likewise ",[393,5398,5400],{"className":5399},[396],[393,5401,5403],{"className":5402,"ariaHidden":401},[400],[393,5404,5406,5409,5412],{"className":5405},[405],[393,5407],{"className":5408,"style":645},[409],[393,5410,704],{"className":5411},[414],[393,5413,5415,5418],{"className":5414},[414],[393,5416,508],{"className":5417},[414,415],[393,5419,5421],{"className":5420},[512],[393,5422,5424,5444],{"className":5423},[516,517],[393,5425,5427,5441],{"className":5426},[521],[393,5428,5430],{"className":5429,"style":526},[525],[393,5431,5432,5435],{"style":529},[393,5433],{"className":5434,"style":534},[533],[393,5436,5438],{"className":5437},[538,539,540,541],[393,5439,946],{"className":5440},[414,541],[393,5442,550],{"className":5443},[549],[393,5445,5447],{"className":5446},[521],[393,5448,5450],{"className":5449,"style":557},[525],[393,5451],{}," precedes ",[393,5454,5456],{"className":5455},[396],[393,5457,5459],{"className":5458,"ariaHidden":401},[400],[393,5460,5462,5465],{"className":5461},[405],[393,5463],{"className":5464,"style":645},[409],[393,5466,5468,5471],{"className":5467},[414],[393,5469,508],{"className":5470},[414,415],[393,5472,5474],{"className":5473},[512],[393,5475,5477,5497],{"className":5476},[516,517],[393,5478,5480,5494],{"className":5479},[521],[393,5481,5483],{"className":5482,"style":526},[525],[393,5484,5485,5488],{"style":529},[393,5486],{"className":5487,"style":534},[533],[393,5489,5491],{"className":5490},[538,539,540,541],[393,5492,946],{"className":5493},[414,541],[393,5495,550],{"className":5496},[549],[393,5498,5500],{"className":5499},[521],[393,5501,5503],{"className":5502,"style":557},[525],[393,5504],{},[393,5506,5508],{"className":5507},[396],[393,5509,5511],{"className":5510,"ariaHidden":401},[400],[393,5512,5514,5517],{"className":5513},[405],[393,5515],{"className":5516,"style":645},[409],[393,5518,5520,5523],{"className":5519},[414],[393,5521,508],{"className":5522},[414,415],[393,5524,5526],{"className":5525},[512],[393,5527,5529,5549],{"className":5528},[516,517],[393,5530,5532,5546],{"className":5531},[521],[393,5533,5535],{"className":5534,"style":526},[525],[393,5536,5537,5540],{"style":529},[393,5538],{"className":5539,"style":534},[533],[393,5541,5543],{"className":5542},[538,539,540,541],[393,5544,946],{"className":5545},[414,541],[393,5547,550],{"className":5548},[549],[393,5550,5552],{"className":5551},[521],[393,5553,5555],{"className":5554,"style":557},[525],[393,5556],{}," is\n",[388,5559,401],{},". The whole pipeline (build ",[393,5562,5564],{"className":5563},[396],[393,5565,5567],{"className":5566,"ariaHidden":401},[400],[393,5568,5570,5573],{"className":5569},[405],[393,5571],{"className":5572,"style":762},[409],[393,5574,1582],{"className":5575},[414,415],", run one SCC computation, scan the ",[393,5578,5580],{"className":5579},[396],[393,5581,5583],{"className":5582,"ariaHidden":401},[400],[393,5584,5586,5589],{"className":5585},[405],[393,5587],{"className":5588,"style":484},[409],[393,5590,426],{"className":5591},[414,415],"\nvariables twice) is ",[393,5594,5596],{"className":5595},[396],[393,5597,5599,5623],{"className":5598,"ariaHidden":401},[400],[393,5600,5602,5605,5608,5611,5614,5617,5620],{"className":5601},[405],[393,5603],{"className":5604,"style":410},[409],[393,5606,417],{"className":5607,"style":416},[414,415],[393,5609,422],{"className":5610},[421],[393,5612,426],{"className":5613},[414,415],[393,5615],{"className":5616,"style":431},[430],[393,5618,436],{"className":5619},[435],[393,5621],{"className":5622,"style":431},[430],[393,5624,5626,5629,5632],{"className":5625},[405],[393,5627],{"className":5628,"style":410},[409],[393,5630,449],{"className":5631},[414,415],[393,5633,454],{"className":5634},[453]," time and space, matching the cost of the SCC\nalgorithm it rests on.",[1263,5637,5639],{"id":5638},"where-2-sat-shows-up","Where 2-SAT shows up",[381,5641,5642,5643,5646,5647,5650,5651,5654,5655,5658,5659,5662,5663,5666,5667,5670,5671,5674],{},"The pattern to recognize is: each item has exactly ",[388,5644,5645],{},"two states",", and the\nconstraints are ",[388,5648,5649],{},"pairwise",". Then every constraint becomes a two-literal clause\nand the whole problem becomes one implication graph. This covers a surprising\nrange: placing labels on a map so adjacent labels do not collide (each label\ngoes left-or-right), scheduling tasks each offered in one of two slots, two-coloring\nunder ",[1895,5652,5653],{},"these two must differ \u002F must agree"," rules, and consistency checking in\nhardware and program verification, where 2-SAT is a standard subroutine. ",[461,5656,5657],{},"Pure","\n2-SAT rarely appears verbatim on LeetCode, but the implication-graph and pairwise-\nconstraint shape is common: ",[388,5660,5661],{},"Satisfiability of Equality Equations"," is a\nunion-find consistency check that is 2-SAT with only equalities and\ndisequalities; ",[388,5664,5665],{},"Possible Bipartition"," asks for a two-coloring under ",[1895,5668,5669],{},"must differ"," constraints, exactly the constraint-graph reduction; and ",[388,5672,5673],{},"Divide Nodes\nInto the Maximum Number of Groups"," layers a bipartiteness\u002FBFS-distance argument on\ntop. Knowing the implication-graph technique is what lets you see these as one\nfamily, and in competitive programming and formal verification 2-SAT in its raw\nform is common too.",[1263,5676,5678],{"id":5677},"takeaways","Takeaways",[5680,5681,5682,5740,5880,5977,5988],"ul",{},[5683,5684,5685,5688,5689,5692,5693,5735,5736,5739],"li",{},[388,5686,5687],{},"2-SAT"," (CNF satisfiability with ",[388,5690,5691],{},"exactly two literals per clause",") is\nsolvable in ",[393,5694,5696],{"className":5695},[396],[393,5697,5699,5723],{"className":5698,"ariaHidden":401},[400],[393,5700,5702,5705,5708,5711,5714,5717,5720],{"className":5701},[405],[393,5703],{"className":5704,"style":410},[409],[393,5706,417],{"className":5707,"style":416},[414,415],[393,5709,422],{"className":5710},[421],[393,5712,426],{"className":5713},[414,415],[393,5715],{"className":5716,"style":431},[430],[393,5718,436],{"className":5719},[435],[393,5721],{"className":5722,"style":431},[430],[393,5724,5726,5729,5732],{"className":5725},[405],[393,5727],{"className":5728,"style":410},[409],[393,5730,449],{"className":5731},[414,415],[393,5733,454],{"className":5734},[453],", unlike NP-complete ",[388,5737,5738],{},"3-SAT","; the gap from two to three\nliterals is the gap from polynomial to (conjecturally) exponential.",[5683,5741,5742,5743,5782,5783,5819,5820,5856,5857,5860,5861,5879],{},"Each clause ",[393,5744,5746],{"className":5745},[396],[393,5747,5749,5770],{"className":5748,"ariaHidden":401},[400],[393,5750,5752,5755,5758,5761,5764,5767],{"className":5751},[405],[393,5753],{"className":5754,"style":410},[409],[393,5756,422],{"className":5757},[421],[393,5759,385],{"className":5760},[414,415],[393,5762],{"className":5763,"style":431},[430],[393,5765,838],{"className":5766},[435],[393,5768],{"className":5769,"style":431},[430],[393,5771,5773,5776,5779],{"className":5772},[405],[393,5774],{"className":5775,"style":410},[409],[393,5777,1306],{"className":5778},[414,415],[393,5780,454],{"className":5781},[453]," is the implication pair ",[393,5784,5786],{"className":5785},[396],[393,5787,5789,5810],{"className":5788,"ariaHidden":401},[400],[393,5790,5792,5795,5798,5801,5804,5807],{"className":5791},[405],[393,5793],{"className":5794,"style":484},[409],[393,5796,704],{"className":5797},[414],[393,5799,385],{"className":5800},[414,415],[393,5802],{"className":5803,"style":770},[430],[393,5805,1490],{"className":5806},[774],[393,5808],{"className":5809,"style":770},[430],[393,5811,5813,5816],{"className":5812},[405],[393,5814],{"className":5815,"style":1246},[409],[393,5817,1306],{"className":5818},[414,415]," and\n",[393,5821,5823],{"className":5822},[396],[393,5824,5826,5847],{"className":5825,"ariaHidden":401},[400],[393,5827,5829,5832,5835,5838,5841,5844],{"className":5828},[405],[393,5830],{"className":5831,"style":1246},[409],[393,5833,704],{"className":5834},[414],[393,5836,1306],{"className":5837},[414,415],[393,5839],{"className":5840,"style":770},[430],[393,5842,1490],{"className":5843},[774],[393,5845],{"className":5846,"style":770},[430],[393,5848,5850,5853],{"className":5849},[405],[393,5851],{"className":5852,"style":484},[409],[393,5854,385],{"className":5855},[414,415],"; collecting them builds a ",[388,5858,5859],{},"skew-symmetric implication\ngraph"," on the ",[393,5862,5864],{"className":5863},[396],[393,5865,5867],{"className":5866,"ariaHidden":401},[400],[393,5868,5870,5873,5876],{"className":5869},[405],[393,5871],{"className":5872,"style":1596},[409],[393,5874,880],{"className":5875},[414],[393,5877,426],{"className":5878},[414,415]," literals, where reachability = forcing.",[5683,5881,5882,1566,5885,3164,5900,5903,5904,5819,5940,5976],{},[388,5883,5884],{},"Satisfiability theorem:",[393,5886,5888],{"className":5887},[396],[393,5889,5891],{"className":5890,"ariaHidden":401},[400],[393,5892,5894,5897],{"className":5893},[405],[393,5895],{"className":5896,"style":762},[409],[393,5898,766],{"className":5899},[414],[388,5901,5902],{},"iff"," no variable shares an\nSCC with its own negation; a collision means ",[393,5905,5907],{"className":5906},[396],[393,5908,5910,5928],{"className":5909,"ariaHidden":401},[400],[393,5911,5913,5916,5919,5922,5925],{"className":5912},[405],[393,5914],{"className":5915,"style":484},[409],[393,5917,508],{"className":5918},[414,415],[393,5920],{"className":5921,"style":770},[430],[393,5923,1490],{"className":5924},[774],[393,5926],{"className":5927,"style":770},[430],[393,5929,5931,5934,5937],{"className":5930},[405],[393,5932],{"className":5933,"style":484},[409],[393,5935,704],{"className":5936},[414],[393,5938,508],{"className":5939},[414,415],[393,5941,5943],{"className":5942},[396],[393,5944,5946,5967],{"className":5945,"ariaHidden":401},[400],[393,5947,5949,5952,5955,5958,5961,5964],{"className":5948},[405],[393,5950],{"className":5951,"style":484},[409],[393,5953,704],{"className":5954},[414],[393,5956,508],{"className":5957},[414,415],[393,5959],{"className":5960,"style":770},[430],[393,5962,1490],{"className":5963},[774],[393,5965],{"className":5966,"style":770},[430],[393,5968,5970,5973],{"className":5969},[405],[393,5971],{"className":5972,"style":484},[409],[393,5974,508],{"className":5975},[414,415],", an outright contradiction.",[5683,5978,5979,5980,5983,5984,5987],{},"An assignment is read straight off the ",[388,5981,5982],{},"condensation DAG",": set each literal\ntrue iff its SCC is ",[388,5985,5986],{},"topologically later"," than its negation's; skew-symmetry\nproves this never violates an implication edge.",[5683,5989,5990,5991,1566,5994,5997],{},"The whole algorithm is ",[461,5992,5993],{},"one",[388,5995,5996],{},"strongly-connected-components computation"," plus\ntwo linear scans, a clean and surprising payoff of the SCC machinery from the\nprevious lesson.",[5999,6000,6003,6008],"section",{"className":6001,"dataFootnotes":376},[6002],"footnotes",[1263,6004,6007],{"className":6005,"id":1260},[6006],"sr-only","Footnotes",[6009,6010,6011,6025,6037],"ol",{},[5683,6012,6014,6017,6018],{"id":6013},"user-content-fn-skiena-sat",[388,6015,6016],{},"Skiena",", § — Satisfiability: 2-SAT is polynomial via implication graphs, while general SAT and 3-SAT are NP-complete. ",[385,6019,6024],{"href":6020,"ariaLabel":6021,"className":6022,"dataFootnoteBackref":376},"#user-content-fnref-skiena-sat","Back to reference 1",[6023],"data-footnote-backref","↩",[5683,6026,6028,6031,6032],{"id":6027},"user-content-fn-erickson-scc",[388,6029,6030],{},"Erickson",", Ch. — Strong Connectivity \u002F Applications: the implication-graph reduction and the SCC characterization of 2-SAT satisfiability. ",[385,6033,6024],{"href":6034,"ariaLabel":6035,"className":6036,"dataFootnoteBackref":376},"#user-content-fnref-erickson-scc","Back to reference 2",[6023],[5683,6038,6040,6043,6044],{"id":6039},"user-content-fn-clrs-scc",[388,6041,6042],{},"CLRS",", Ch. 20 — (SCC applications): strongly connected components and the condensation DAG, the substrate the 2-SAT assignment rule runs on. ",[385,6045,6024],{"href":6046,"ariaLabel":6047,"className":6048,"dataFootnoteBackref":376},"#user-content-fnref-clrs-scc","Back to reference 3",[6023],[6050,6051,6052],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}html.dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}",{"title":376,"searchDepth":18,"depth":18,"links":6054},[6055,6056,6057,6058,6059,6060],{"id":1265,"depth":18,"text":1266},{"id":3065,"depth":18,"text":3066},{"id":4150,"depth":18,"text":4151},{"id":5638,"depth":18,"text":5639},{"id":5677,"depth":18,"text":5678},{"id":1260,"depth":18,"text":6007},"The previous lesson gave us strongly connected components: the maximal sets\nof vertices in a directed graph that can all reach one another, computable in\nO(n+m) by a two-pass depth-first search. It is a beautiful algorithm, and this\nlesson is its most surprising payoff. We will take a problem that looks like it\nbelongs to the world of intractable boolean satisfiability and show that one\nspecial case of it collapses to a single SCC computation.","md",{"moduleNumber":108,"lessonNumber":196,"order":6064},608,true,[6067,6070,6072],{"title":5661,"slug":6068,"difficulty":6069},"satisfiability-of-equality-equations","Medium",{"title":5665,"slug":6071,"difficulty":6069},"possible-bipartition",{"title":6073,"slug":6074,"difficulty":6075},"Divide Nodes Into the Maximum Number of Groups","divide-nodes-into-the-maximum-number-of-groups","Hard","---\ntitle: 2-SAT via Implication Graphs\nmodule: Graphs\nmoduleNumber: 6\nlessonNumber: 8\norder: 608\nsummary: >-\n  A boolean formula whose every clause has exactly two literals can be solved in\n  _linear_ time — even though its three-literal cousin is NP-complete. The trick\n  is to read each clause as a pair of implications, build a directed graph on the\n  $2n$ literals, and ask a question we already know how to answer: which literals\n  share a strongly connected component? The formula is satisfiable iff no variable\n  lands in the same SCC as its own negation, and the SCCs' topological order hands\n  us a satisfying assignment for free.\ntopics: [Graphs]\nsources:\n  - book: CLRS\n    ref: \"Ch. 20 — (SCC applications)\"\n  - book: Skiena\n    ref: \"§ — Satisfiability\"\n  - book: Erickson\n    ref: \"Ch. — Strong Connectivity \u002F Applications\"\npractice:\n  - title: 'Satisfiability of Equality Equations'\n    slug: satisfiability-of-equality-equations\n    difficulty: Medium\n  - title: 'Possible Bipartition'\n    slug: possible-bipartition\n    difficulty: Medium\n  - title: 'Divide Nodes Into the Maximum Number of Groups'\n    slug: divide-nodes-into-the-maximum-number-of-groups\n    difficulty: Hard\n---\n\nThe previous lesson gave us [**strongly connected components**](\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc): the maximal sets\nof vertices in a directed graph that can all reach one another, computable in\n$O(n+m)$ by a [two-pass depth-first search](\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal). It is a beautiful algorithm, and this\nlesson is its most surprising payoff. We will take a problem that _looks_ like it\nbelongs to the world of intractable boolean satisfiability and show that one\nspecial case of it collapses to a single SCC computation.\n\nThe problem is **2-satisfiability** (2-SAT). We are given $n$ boolean variables\n$x_1, \\dots, x_n$ and a formula in **conjunctive normal form** where every clause\nhas _exactly two_ literals, a literal being a variable $x_i$ or its negation\n$\\lnot x_i$:\n\n$$\n\\Phi = (\\ell_{1} \\vee \\ell_{2}) \\wedge (\\ell_{3} \\vee \\ell_{4}) \\wedge \\cdots\n\\wedge (\\ell_{2m-1} \\vee \\ell_{2m}).\n$$\n\nWe must decide whether some assignment of true\u002Ffalse to the variables makes\n_every_ clause true at once, and if so, produce one. Allowing **three** literals\nper clause gives 3-SAT, which is NP-complete, the canonical hard problem we will\nmeet in the intractability module. The jump from two literals to three is the\njump from $O(n+m)$ to (as far as anyone knows) exponential. 2-SAT sits firmly in\n$\\mathsf{P}$, and the reason is entirely graph-theoretic.[^skiena-sat]\n\n## Reading a clause as two implications\n\nThe key observation is that a two-literal disjunction is logically the same as a\npair of implications. The clause $(a \\vee b)$ asserts that at least one of $a$,\n$b$ is true. So if $a$ happens to be false, $b$ is _forced_ true; and symmetrically\nif $b$ is false, $a$ is forced. In symbols,\n\n$$\n(a \\vee b) \\;\\equiv\\; (\\lnot a \\Rightarrow b) \\;\\wedge\\; (\\lnot b \\Rightarrow a).\n$$\n\nThis rewriting is the whole idea. Build a directed **implication graph** $G$ on\n$2n$ vertices, one for each literal $x_i$ and one for its negation $\\lnot x_i$.\nFor every clause $(a \\vee b)$ in $\\Phi$, add the two edges\n\n$$\n\\lnot a \\longrightarrow b \\qquad\\text{and}\\qquad \\lnot b \\longrightarrow a.\n$$\n\nAn edge $u \\to v$ reads \"if $u$ is true, then $v$ must be true.\" Because\nimplication is **transitive**, a directed _path_ $u \\rightsquigarrow w$ means that\ncommitting to $u$ forces $w$: reachability in $G$ is exactly the relation\n\"forces.\" The graph is **skew-symmetric** by construction. The contrapositive\n$(\\lnot a \\Rightarrow b) \\equiv (\\lnot b \\Rightarrow a)$ means every edge\n$u \\to v$ has a mirror edge $\\lnot v \\to \\lnot u$, and this symmetry is what makes\nthe assignment step work.\n\n$$\n% caption: skew-symmetry: every edge $u\\to v$ has a mirror edge $\\lnot v\\to\\lnot u$\n\\begin{tikzpicture}[\n  >=stealth,\n  every node\u002F.style={circle, draw, minimum size=9mm, inner sep=1pt, font=\\small}]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node (u)  at (0,1.0)  {$u$};\n  \\node (v)  at (2.6,1.0) {$v$};\n  \\node (nv) at (0,-0.6)  {$\\lnot v$};\n  \\node (nu) at (2.6,-0.6) {$\\lnot u$};\n  \\draw[->, thick] (u) -- (v);\n  \\draw[->, acc, thick] (nv) -- (nu);\n  \\node[draw=none, font=\\footnotesize] at (1.3,1.5) {$u\\to v$};\n  \\node[draw=none, font=\\footnotesize, text=acc] at (1.3,-1.1) {mirror $\\lnot v\\to\\lnot u$};\n\\end{tikzpicture}\n$$\n\n$$\n% caption: clause $(a\\vee b) \\equiv \\lnot a\\Rightarrow b,\\ \\lnot b\\Rightarrow a$\n\\begin{tikzpicture}[\n  >=stealth, node distance=18mm,\n  every node\u002F.style={circle, draw, minimum size=9mm, inner sep=1pt, font=\\small}]\n  \\definecolor{acc}{HTML}{2348F2}\n  % literals for the formula (x1 v x2) ^ (~x1 v x3)\n  \\node (nx1) {$\\lnot x_1$};\n  \\node (x2)  [right=20mm of nx1] {$x_2$};\n  \\node (nx2) [below=12mm of nx1] {$\\lnot x_2$};\n  \\node (x1)  [below=12mm of x2] {$x_1$};\n  \\node (x3)  [right=24mm of x2] {$x_3$};\n  \\node (nx3) [right=24mm of x1] {$\\lnot x_3$};\n  % clause (x1 v x2): ~x1 -> x2 , ~x2 -> x1\n  \\draw[->] (nx1) -- (x2);\n  \\draw[->] (nx2) -- (x1);\n  % clause (~x1 v x3): x1 -> x3 , ~x3 -> ~x1\n  \\draw[->,acc, thick] (nx3) -- (nx1);\n  \\draw[->,acc, thick] (x1) -- (x3);\n\\end{tikzpicture}\n$$\n\nThe two highlighted edges are the implication pair of the clause\n$(\\lnot x_1 \\vee x_3) \\equiv (x_1 \\Rightarrow x_3) \\wedge (\\lnot x_3 \\Rightarrow\n\\lnot x_1)$. Mirror edges always come in such pairs.\n\n## When is the formula satisfiable?\n\nA satisfying assignment must respect every forced implication: if it sets $u$ true\nand $u \\rightsquigarrow v$, it must set $v$ true. The danger is a **cycle of\nforcing** that loops a literal back to its own negation. That danger is exactly an\nSCC.\n\n> **Theorem (2-SAT satisfiability).** $\\Phi$ is satisfiable **if and only if** no\n> variable $x_i$ has $x_i$ and $\\lnot x_i$ in the _same_ strongly connected\n> component of the implication graph $G$.\n\n> **Proof of the forward (contradiction) direction.** Suppose some variable $x$ has\n> both $x$ and $\\lnot x$ in one SCC. By definition of an SCC there is a path\n> $x \\rightsquigarrow \\lnot x$ and a path $\\lnot x \\rightsquigarrow x$. Reading the\n> edges as implications, $x \\rightsquigarrow \\lnot x$ says $x \\Rightarrow \\lnot x$\n> and $\\lnot x \\rightsquigarrow x$ says $\\lnot x \\Rightarrow x$. Now consider any\n> assignment. If it sets $x = \\text{true}$, then $x \\Rightarrow \\lnot x$ forces\n> $\\lnot x$ true, i.e. $x$ false — a contradiction. If it sets $x = \\text{false}$,\n> then $\\lnot x \\Rightarrow x$ forces $x$ true — again a contradiction. No\n> assignment survives, so $\\Phi$ is unsatisfiable. $\\qed$\n\n$$\n% caption: UNSAT: $x\\rightsquigarrow\\lnot x$ and $\\lnot x\\rightsquigarrow x$ put both in\n%          one SCC, forcing $x\\Rightarrow\\lnot x$ and $\\lnot x\\Rightarrow x$\n\\begin{tikzpicture}[\n  >=stealth,\n  every node\u002F.style={circle, draw, minimum size=9mm, inner sep=1pt, font=\\small}]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node[draw=acc, thick, text=acc] (x)  at (0,0)   {$x$};\n  \\node (p) at (2.2,0.9) {$p$};\n  \\node[draw=acc, thick, text=acc] (nx) at (4.4,0) {$\\lnot x$};\n  \\node (q) at (2.2,-0.9) {$q$};\n  \\draw[->] (x) -- (p);\n  \\draw[->] (p) -- (nx);\n  \\draw[->] (nx) -- (q);\n  \\draw[->] (q) -- (x);\n  \\node[draw=none, font=\\footnotesize, text=acc] at (2.2,-1.9) {one SCC $\\Rightarrow$ unsatisfiable};\n\\end{tikzpicture}\n$$\n\nThe **converse**, that if no variable collides with its negation in an SCC then a\nsatisfying assignment _exists_, is the more delicate half. We do not just assert\nit; the construction below builds an explicit assignment and the same skew-symmetry\nargument proves it consistent, which establishes the converse constructively.[^erickson-scc]\n\n## Constructing a satisfying assignment\n\nSuppose the test passes: no $x_i$ and $\\lnot x_i$ share an SCC. Contract each SCC\nto a single super-vertex; the result is the **condensation** of $G$, which is\nalways a directed acyclic graph (any cycle among components would have merged\nthem). A DAG has a topological order, and topological order is what we assign by.\n\n> **Remark (The assignment rule).** For each variable $x$, set $x = \\text{true}$ exactly when the SCC of\n> $x$ comes _after_ the SCC of $\\lnot x$ in topological order of the condensation.\n> Equivalently, **assign true to whichever of $x$, $\\lnot x$ lies in the SCC\n> that is topologically later** (closer to the sinks).\n\nA two-pass SCC algorithm (Kosaraju or Tarjan) already numbers the components in a\n_reverse_ topological order: Tarjan emits components sink-first, and Kosaraju's\nsecond pass discovers them in the order of decreasing first-pass finish time. So\nthe comparison costs nothing extra: we set a literal true iff its component is\ndiscovered _before_ its negation's in that reverse order (i.e. later\ntopologically).\n\n```algorithm\ncaption: $\\textsc{TwoSat}(n, \\text{clauses})$ — decide and assign in $O(n+m)$\nbuild implication graph $G$ on $2n$ literal-vertices\nfor each clause $(a \\vee b)$ do\n  add edge $\\lnot a \\to b$ and edge $\\lnot b \\to a$\n$comp[\\cdot] \\gets \\textsc{StronglyConnectedComponents}(G)$  \u002F\u002F comp in reverse topo order\nfor $i \\gets 1$ to $n$ do\n  if $comp[x_i] = comp[\\lnot x_i]$ then\n    return Unsatisfiable\nfor $i \\gets 1$ to $n$ do\n  $value[x_i] \\gets (comp[x_i] \u003C comp[\\lnot x_i])$  \u002F\u002F later topo $\\Rightarrow$ true\nreturn $value$\n```\n\n**Why the rule is consistent.** We must check the assignment never violates an\nimplication edge, never sets some $u$ true and a forced $v$ false. Two facts make\nthis automatic. First, edges of $G$ run from earlier components to _later_ ones in\ntopological order (that is what topological order means for a DAG), so an edge\n$u \\to v$ has $\\text{comp}(u)$ no later than $\\text{comp}(v)$. Second, the\nskew-symmetry of $G$ guarantees that the condensation has a matching central\nsymmetry: the component of $\\lnot u$ sits in the _mirror_ position to the\ncomponent of $u$. Concretely, if $u$'s component is topologically later than\n$\\lnot u$'s, so we set $u$ true, then for any edge $u \\to v$ the mirror edge\n$\\lnot v \\to \\lnot u$ forces $\\lnot v$'s component to be no later than $\\lnot u$'s,\nhence $v$'s component is no _earlier_ than $u$'s, so $v$ is also assigned true. The\nedge is satisfied. No clause can be violated, and the converse of the theorem\nholds.[^clrs-scc]\n\n$$\n% caption: assign by reverse topological order of SCCs\n\\begin{tikzpicture}[\n  >=stealth, node distance=8mm,\n  every node\u002F.style={draw, rounded corners, minimum size=9mm, inner sep=3pt, font=\\small}]\n  \\definecolor{acc}{HTML}{2348F2}\n  % condensation: every SCC is a singleton here (the implication graph is acyclic)\n  \\node (c1) {$\\{\\lnot x_3\\}$};\n  \\node (c2) [right=of c1] {$\\{\\lnot x_2\\}$};\n  \\node (c3) [right=of c2] {$\\{\\lnot x_1\\}$};\n  \\node (c4) [right=of c3, draw=acc, thick, text=acc] {$\\{x_1\\}$};\n  \\node (c5) [right=of c4, draw=acc, thick, text=acc] {$\\{x_2\\}$};\n  \\node (c6) [right=of c5, draw=acc, thick, text=acc] {$\\{x_3\\}$};\n  \\draw[->, thick] ([yshift=-7mm]c1.west) -- ([yshift=-7mm]c6.east)\n    node[midway, below, draw=none, font=\\footnotesize] {topological order $\\longrightarrow$ (sinks at right; pick the later literal of each pair)};\n\\end{tikzpicture}\n$$\n\nHere $\\lnot x_1$ sits in an earlier component than $x_1$, so $x_1$ is set **true**\n(its SCC, highlighted, is later); likewise $\\lnot x_3$ precedes $x_3$, so $x_3$ is\n**true**. The whole pipeline (build $G$, run one SCC computation, scan the $n$\nvariables twice) is $O(n+m)$ time and space, matching the cost of the SCC\nalgorithm it rests on.\n\n## Where 2-SAT shows up\n\nThe pattern to recognize is: each item has exactly **two states**, and the\nconstraints are **pairwise**. Then every constraint becomes a two-literal clause\nand the whole problem becomes one implication graph. This covers a surprising\nrange: placing labels on a map so adjacent labels do not collide (each label\ngoes left-or-right), scheduling tasks each offered in one of two slots, two-coloring\nunder \"these two must differ \u002F must agree\" rules, and consistency checking in\nhardware and program verification, where 2-SAT is a standard subroutine. _Pure_\n2-SAT rarely appears verbatim on LeetCode, but the implication-graph and pairwise-\nconstraint shape is common: **Satisfiability of Equality Equations** is a\nunion-find consistency check that is 2-SAT with only equalities and\ndisequalities; **Possible Bipartition** asks for a two-coloring under \"must\ndiffer\" constraints, exactly the constraint-graph reduction; and **Divide Nodes\nInto the Maximum Number of Groups** layers a bipartiteness\u002FBFS-distance argument on\ntop. Knowing the implication-graph technique is what lets you see these as one\nfamily, and in competitive programming and formal verification 2-SAT in its raw\nform is common too.\n\n## Takeaways\n\n- **2-SAT** (CNF satisfiability with **exactly two literals per clause**) is\n  solvable in $O(n+m)$, unlike NP-complete **3-SAT**; the gap from two to three\n  literals is the gap from polynomial to (conjecturally) exponential.\n- Each clause $(a \\vee b)$ is the implication pair $\\lnot a \\Rightarrow b$ and\n  $\\lnot b \\Rightarrow a$; collecting them builds a **skew-symmetric implication\n  graph** on the $2n$ literals, where reachability = forcing.\n- **Satisfiability theorem:** $\\Phi$ is satisfiable **iff** no variable shares an\n  SCC with its own negation; a collision means $x \\Rightarrow \\lnot x$ and\n  $\\lnot x \\Rightarrow x$, an outright contradiction.\n- An assignment is read straight off the **condensation DAG**: set each literal\n  true iff its SCC is **topologically later** than its negation's; skew-symmetry\n  proves this never violates an implication edge.\n- The whole algorithm is _one_ **strongly-connected-components computation** plus\n  two linear scans, a clean and surprising payoff of the SCC machinery from the\n  previous lesson.\n\n[^skiena-sat]: **Skiena**, § — Satisfiability: 2-SAT is polynomial via implication graphs, while general SAT and 3-SAT are NP-complete.\n[^erickson-scc]: **Erickson**, Ch. — Strong Connectivity \u002F Applications: the implication-graph reduction and the SCC characterization of 2-SAT satisfiability.\n[^clrs-scc]: **CLRS**, Ch. 20 — (SCC applications): strongly connected components and the condensation DAG, the substrate the 2-SAT assignment rule runs on.\n",{"text":6078,"minutes":6079,"time":6080,"words":6081},"7 min read",6.455,387300,1291,{"title":194,"description":6061},[6084,6086,6088],{"book":6042,"ref":6085},"Ch. 20 — (SCC applications)",{"book":6016,"ref":6087},"§ — Satisfiability",{"book":6030,"ref":6089},"Ch. — Strong Connectivity \u002F Applications","available","01.algorithms\u002F06.graphs\u002F08.two-sat",[153],"qz-I1BCtwglY_tk6TqdVOYSi5JvXCnsZ_BI6scOS3x4",{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":6095,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":6096,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":6097,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":6098,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":6099,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":6100,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":6101,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":6102,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":6103,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":6104,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":6105,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":6106,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":6107,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":6108,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":6109,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":6110,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":6111,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":6112,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":6113,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":6114,"\u002Falgorithms\u002Fsequences\u002Ftries":6115,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":6116,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":6117,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":6118,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":6119,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":6120,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":6121,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":6122,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":6081,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":6123,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":6124,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":6125,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":6126,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":6127,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":6128,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":6129,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":6130,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":6131,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":6132,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":6133,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":6134,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":6135,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":6136,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":6137,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":6138,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":6139,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":6140,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":6111,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":6141,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":6142,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":6143,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":6144,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":6126,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":6145,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":6146,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":6107,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":6147,"\u002Falgorithms":6148,"\u002Ftheory-of-computation":6149,"\u002Fcomputer-architecture":6149,"\u002Fphysical-computing":6149,"\u002Fdatabases":6149,"\u002Fdeep-learning":6149},1763,2107,1738,2628,1723,2048,1697,1044,1542,1565,1679,1586,1388,1465,1971,1455,1533,1483,1578,1791,1481,2704,1658,2070,1978,2080,1568,1451,1543,1883,1443,1599,2038,2241,1744,1678,2288,1929,1657,1412,1554,1418,1713,1798,1694,1762,1534,1595,1262,1495,1630,2306,2142,107,0,{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":6151,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":6152,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":6153,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":6154,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":6155,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":6156,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":6157,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":6158,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":6159,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":6160,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":6161,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":6162,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":6163,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":6164,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":6165,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":6166,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":6167,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":6168,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":6169,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":6170,"\u002Falgorithms\u002Fsequences\u002Ftries":6171,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":6172,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":6173,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":6174,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":6175,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":6176,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":6177,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":6178,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":6179,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":6180,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":6181,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":6182,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":6183,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":6184,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":6185,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":6186,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":6187,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":6188,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":6189,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":6190,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":6191,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":6192,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":6193,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":6194,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":6195,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":6196,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":6197,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":6198,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":6199,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":6200,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":6201,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":6202,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":6203,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":6204,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":6205,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":6206,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":6207,"\u002Falgorithms":6208,"\u002Ftheory-of-computation":6211,"\u002Fcomputer-architecture":6214,"\u002Fphysical-computing":6217,"\u002Fdatabases":6220,"\u002Fdeep-learning":6223},{"path":11,"title":10,"module":5,"summary":14},{"path":17,"title":16,"module":5,"summary":20},{"path":23,"title":22,"module":5,"summary":27},{"path":34,"title":33,"module":29,"summary":37},{"path":40,"title":39,"module":29,"summary":43},{"path":46,"title":45,"module":29,"summary":49},{"path":56,"title":55,"module":51,"summary":59},{"path":62,"title":61,"module":51,"summary":64},{"path":67,"title":66,"module":51,"summary":70},{"path":78,"title":77,"module":72,"summary":81},{"path":84,"title":83,"module":72,"summary":87},{"path":90,"title":89,"module":72,"summary":92},{"path":95,"title":94,"module":72,"summary":98},{"path":101,"title":100,"module":72,"summary":104},{"path":107,"title":106,"module":72,"summary":112},{"path":115,"title":114,"module":72,"summary":119},{"path":126,"title":125,"module":121,"summary":129},{"path":132,"title":131,"module":121,"summary":134},{"path":137,"title":136,"module":121,"summary":140},{"path":143,"title":142,"module":121,"summary":146},{"path":149,"title":148,"module":121,"summary":151},{"path":158,"title":157,"module":153,"summary":162},{"path":165,"title":164,"module":153,"summary":167},{"path":170,"title":169,"module":153,"summary":172},{"path":175,"title":174,"module":153,"summary":177},{"path":180,"title":179,"module":153,"summary":182},{"path":185,"title":184,"module":153,"summary":187},{"path":190,"title":189,"module":153,"summary":192},{"path":195,"title":194,"module":153,"summary":198},{"path":201,"title":200,"module":153,"summary":204},{"path":211,"title":210,"module":206,"summary":213},{"path":216,"title":215,"module":206,"summary":219},{"path":222,"title":221,"module":206,"summary":224},{"path":227,"title":226,"module":206,"summary":229},{"path":236,"title":235,"module":231,"summary":238},{"path":241,"title":240,"module":231,"summary":244},{"path":247,"title":246,"module":231,"summary":249},{"path":252,"title":251,"module":231,"summary":254},{"path":257,"title":256,"module":231,"summary":259},{"path":262,"title":261,"module":231,"summary":264},{"path":267,"title":266,"module":231,"summary":269},{"path":272,"title":271,"module":231,"summary":274},{"path":277,"title":276,"module":231,"summary":279},{"path":282,"title":281,"module":231,"summary":285},{"path":292,"title":291,"module":287,"summary":295},{"path":298,"title":297,"module":287,"summary":300},{"path":303,"title":302,"module":287,"summary":305},{"path":312,"title":311,"module":307,"summary":315},{"path":318,"title":317,"module":307,"summary":320},{"path":323,"title":322,"module":307,"summary":325},{"path":328,"title":327,"module":307,"summary":330},{"path":338,"title":337,"module":332,"summary":341},{"path":344,"title":343,"module":332,"summary":346},{"path":349,"title":348,"module":332,"summary":351},{"path":359,"title":358,"module":353,"summary":362},{"path":364,"title":361,"module":353,"summary":366},{"path":369,"title":368,"module":353,"summary":373},{"path":6209,"title":6210,"module":376,"summary":376},"\u002Falgorithms","Algorithms",{"path":6212,"title":6213,"module":376,"summary":376},"\u002Ftheory-of-computation","Theory of Computation",{"path":6215,"title":6216,"module":376,"summary":376},"\u002Fcomputer-architecture","Computer Architecture",{"path":6218,"title":6219,"module":376,"summary":376},"\u002Fphysical-computing","Physical Computing",{"path":6221,"title":6222,"module":376,"summary":376},"\u002Fdatabases","Databases",{"path":6224,"title":6225,"module":376,"summary":376},"\u002Fdeep-learning","Deep Learning",1781560524855]