[{"data":1,"prerenderedAt":12447},["ShallowReactive",2],{"nav:algorithms":3,"lesson:\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":374,"course-wordcounts":12315,"ref-card-index":12371},[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":317,"blurb":376,"body":377,"description":12277,"extension":12278,"meta":12279,"module":307,"navigation":12281,"path":318,"practice":12282,"rawbody":12296,"readingTime":12297,"seo":12302,"sources":12303,"status":12311,"stem":12312,"summary":320,"topics":12313,"__hash__":12314},"course\u002F01.algorithms\u002F10.mathematical-algorithms\u002F02.modular-exponentiation-and-primality.md","",{"type":378,"value":379,"toc":12264},"minimark",[380,729,734,1006,1414,1808,2217,2510,2565,2783,3178,3181,3675,3715,3889,4547,4688,5223,5227,5239,5428,5961,6081,6222,6612,6616,6635,6721,6980,7020,7147,7151,7613,7829,8102,8521,8525,8653,8763,8871,9268,9729,10089,10134,10493,10610,10814,10818,11070,11074,12015,12260],[381,382,383,384,388,389,469,470,474,475,491,492,508,509,524,525,605,606,621,622,637,638,668,669,684,685,724,725,728],"p",{},"The previous lesson built the ",[385,386,387],"a",{"href":312},"arithmetic"," of ",[390,391,394],"span",{"className":392},[393],"katex",[390,395,399],{"className":396,"ariaHidden":398},[397],"katex-html","true",[390,400,403,408],{"className":401},[402],"base",[390,404],{"className":405,"style":407},[406],"strut","height:0.8389em;vertical-align:-0.15em;",[390,409,412,417],{"className":410},[411],"mord",[390,413,416],{"className":414},[411,415],"mathbb","Z",[390,418,421],{"className":419},[420],"msupsub",[390,422,426,460],{"className":423},[424,425],"vlist-t","vlist-t2",[390,427,430,455],{"className":428},[429],"vlist-r",[390,431,435],{"className":432,"style":434},[433],"vlist","height:0.1514em;",[390,436,438,443],{"style":437},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[390,439],{"className":440,"style":442},[441],"pstrut","height:2.7em;",[390,444,450],{"className":445},[446,447,448,449],"sizing","reset-size6","size3","mtight",[390,451,454],{"className":452},[411,453,449],"mathnormal","m",[390,456,459],{"className":457},[458],"vlist-s","​",[390,461,463],{"className":462},[429],[390,464,467],{"className":465,"style":466},[433],"height:0.15em;",[390,468],{},": addition, multiplication,\nand the modular inverse via the extended Euclidean algorithm. One operation it left\non the table is ",[471,472,473],"strong",{},"exponentiation",": given ",[390,476,478],{"className":477},[393],[390,479,481],{"className":480,"ariaHidden":398},[397],[390,482,484,488],{"className":483},[402],[390,485],{"className":486,"style":487},[406],"height:0.4306em;",[390,489,385],{"className":490},[411,453],", ",[390,493,495],{"className":494},[393],[390,496,498],{"className":497,"ariaHidden":398},[397],[390,499,501,504],{"className":500},[402],[390,502],{"className":503,"style":487},[406],[390,505,507],{"className":506},[411,453],"n",", and a modulus ",[390,510,512],{"className":511},[393],[390,513,515],{"className":514,"ariaHidden":398},[397],[390,516,518,521],{"className":517},[402],[390,519],{"className":520,"style":487},[406],[390,522,454],{"className":523},[411,453],", compute\n",[390,526,528],{"className":527},[393],[390,529,531,596],{"className":530,"ariaHidden":398},[397],[390,532,534,538,569,574,578,590,593],{"className":533},[402],[390,535],{"className":536,"style":537},[406],"height:0.6944em;",[390,539,541,544],{"className":540},[411],[390,542,385],{"className":543},[411,453],[390,545,547],{"className":546},[420],[390,548,550],{"className":549},[424],[390,551,553],{"className":552},[429],[390,554,557],{"className":555,"style":556},[433],"height:0.6644em;",[390,558,560,563],{"style":559},"top:-3.063em;margin-right:0.05em;",[390,561],{"className":562,"style":442},[441],[390,564,566],{"className":565},[446,447,448,449],[390,567,507],{"className":568},[411,453,449],[390,570],{"className":571,"style":573},[572],"mspace","margin-right:0.0556em;",[390,575],{"className":576,"style":577},[572],"margin-right:0.2222em;",[390,579,582],{"className":580},[581],"mbin",[390,583,585],{"className":584},[411],[390,586,589],{"className":587},[411,588],"mathrm","mod",[390,591],{"className":592,"style":573},[572],[390,594],{"className":595,"style":577},[572],[390,597,599,602],{"className":598},[402],[390,600],{"className":601,"style":487},[406],[390,603,454],{"className":604},[411,453],". The obvious loop multiplies ",[390,607,609],{"className":608},[393],[390,610,612],{"className":611,"ariaHidden":398},[397],[390,613,615,618],{"className":614},[402],[390,616],{"className":617,"style":487},[406],[390,619,385],{"className":620},[411,453]," into an accumulator ",[390,623,625],{"className":624},[393],[390,626,628],{"className":627,"ariaHidden":398},[397],[390,629,631,634],{"className":630},[402],[390,632],{"className":633,"style":487},[406],[390,635,507],{"className":636},[411,453]," times, which is\n",[390,639,641],{"className":640},[393],[390,642,644],{"className":643,"ariaHidden":398},[397],[390,645,647,651,655,660,663],{"className":646},[402],[390,648],{"className":649,"style":650},[406],"height:1em;vertical-align:-0.25em;",[390,652,654],{"className":653},[411],"Θ",[390,656,659],{"className":657},[658],"mopen","(",[390,661,507],{"className":662},[411,453],[390,664,667],{"className":665},[666],"mclose",")",", hopelessly slow when ",[390,670,672],{"className":671},[393],[390,673,675],{"className":674,"ariaHidden":398},[397],[390,676,678,681],{"className":677},[402],[390,679],{"className":680,"style":487},[406],[390,682,507],{"className":683},[411,453]," is a 1024-bit number, as it routinely is in\ncryptography. This lesson's first result is that we can do it in ",[390,686,688],{"className":687},[393],[390,689,691],{"className":690,"ariaHidden":398},[397],[390,692,694,697,702,705,714,718,721],{"className":693},[402],[390,695],{"className":696,"style":650},[406],[390,698,701],{"className":699,"style":700},[411,453],"margin-right:0.0278em;","O",[390,703,659],{"className":704},[658],[390,706,709],{"className":707},[708],"mop",[390,710,713],{"className":711,"style":712},[411,588],"margin-right:0.0139em;","log",[390,715],{"className":716,"style":717},[572],"margin-right:0.1667em;",[390,719,507],{"className":720},[411,453],[390,722,667],{"className":723},[666],"\nmultiplications. That single trick, ",[471,726,727],{},"repeated squaring",", is the\nengine behind primality testing, the modular inverse, and the public-key primitives\nthat secure the internet.",[730,731,733],"h2",{"id":732},"binary-exponentiation-repeated-squaring","Binary exponentiation: repeated squaring",[381,735,736,737,752,753,911,912,1005],{},"The idea is to read ",[390,738,740],{"className":739},[393],[390,741,743],{"className":742,"ariaHidden":398},[397],[390,744,746,749],{"className":745},[402],[390,747],{"className":748,"style":487},[406],[390,750,507],{"className":751},[411,453]," in binary. Write ",[390,754,756],{"className":755},[393],[390,757,759,780],{"className":758,"ariaHidden":398},[397],[390,760,762,765,768,772,777],{"className":761},[402],[390,763],{"className":764,"style":487},[406],[390,766,507],{"className":767},[411,453],[390,769],{"className":770,"style":771},[572],"margin-right:0.2778em;",[390,773,776],{"className":774},[775],"mrel","=",[390,778],{"className":779,"style":771},[572],[390,781,783,787,835,838,880],{"className":782},[402],[390,784],{"className":785,"style":786},[406],"height:1.1244em;vertical-align:-0.2997em;",[390,788,790,797],{"className":789},[708],[390,791,796],{"className":792,"style":795},[708,793,794],"op-symbol","small-op","position:relative;top:0em;","∑",[390,798,800],{"className":799},[420],[390,801,803,826],{"className":802},[424,425],[390,804,806,823],{"className":805},[429],[390,807,810],{"className":808,"style":809},[433],"height:0.162em;",[390,811,813,816],{"style":812},"top:-2.4003em;margin-left:0em;margin-right:0.05em;",[390,814],{"className":815,"style":442},[441],[390,817,819],{"className":818},[446,447,448,449],[390,820,822],{"className":821},[411,453,449],"i",[390,824,459],{"className":825},[458],[390,827,829],{"className":828},[429],[390,830,833],{"className":831,"style":832},[433],"height:0.2997em;",[390,834],{},[390,836],{"className":837,"style":717},[572],[390,839,841,845],{"className":840},[411],[390,842,844],{"className":843},[411,453],"b",[390,846,848],{"className":847},[420],[390,849,851,872],{"className":850},[424,425],[390,852,854,869],{"className":853},[429],[390,855,858],{"className":856,"style":857},[433],"height:0.3117em;",[390,859,860,863],{"style":437},[390,861],{"className":862,"style":442},[441],[390,864,866],{"className":865},[446,447,448,449],[390,867,822],{"className":868},[411,453,449],[390,870,459],{"className":871},[458],[390,873,875],{"className":874},[429],[390,876,878],{"className":877,"style":466},[433],[390,879],{},[390,881,883,887],{"className":882},[411],[390,884,886],{"className":885},[411],"2",[390,888,890],{"className":889},[420],[390,891,893],{"className":892},[424],[390,894,896],{"className":895},[429],[390,897,900],{"className":898,"style":899},[433],"height:0.8247em;",[390,901,902,905],{"style":559},[390,903],{"className":904,"style":442},[441],[390,906,908],{"className":907},[446,447,448,449],[390,909,822],{"className":910},[411,453,449]," with ",[390,913,915],{"className":914},[393],[390,916,918,975],{"className":917,"ariaHidden":398},[397],[390,919,921,925,965,968,972],{"className":920},[402],[390,922],{"className":923,"style":924},[406],"height:0.8444em;vertical-align:-0.15em;",[390,926,928,931],{"className":927},[411],[390,929,844],{"className":930},[411,453],[390,932,934],{"className":933},[420],[390,935,937,957],{"className":936},[424,425],[390,938,940,954],{"className":939},[429],[390,941,943],{"className":942,"style":857},[433],[390,944,945,948],{"style":437},[390,946],{"className":947,"style":442},[441],[390,949,951],{"className":950},[446,447,448,449],[390,952,822],{"className":953},[411,453,449],[390,955,459],{"className":956},[458],[390,958,960],{"className":959},[429],[390,961,963],{"className":962,"style":466},[433],[390,964],{},[390,966],{"className":967,"style":771},[572],[390,969,971],{"className":970},[775],"∈",[390,973],{"className":974,"style":771},[572],[390,976,978,981,985,989,994,997,1001],{"className":977},[402],[390,979],{"className":980,"style":650},[406],[390,982,984],{"className":983},[658],"{",[390,986,988],{"className":987},[411],"0",[390,990,993],{"className":991},[992],"mpunct",",",[390,995],{"className":996,"style":717},[572],[390,998,1000],{"className":999},[411],"1",[390,1002,1004],{"className":1003},[666],"}",".\nThen",[390,1007,1010],{"className":1008},[1009],"katex-display",[390,1011,1013],{"className":1012},[393],[390,1014,1016,1062,1231],{"className":1015,"ariaHidden":398},[397],[390,1017,1019,1023,1053,1056,1059],{"className":1018},[402],[390,1020],{"className":1021,"style":1022},[406],"height:0.7144em;",[390,1024,1026,1029],{"className":1025},[411],[390,1027,385],{"className":1028},[411,453],[390,1030,1032],{"className":1031},[420],[390,1033,1035],{"className":1034},[424],[390,1036,1038],{"className":1037},[429],[390,1039,1041],{"className":1040,"style":1022},[433],[390,1042,1044,1047],{"style":1043},"top:-3.113em;margin-right:0.05em;",[390,1045],{"className":1046,"style":442},[441],[390,1048,1050],{"className":1049},[446,447,448,449],[390,1051,507],{"className":1052},[411,453,449],[390,1054],{"className":1055,"style":771},[572],[390,1057,776],{"className":1058},[775],[390,1060],{"className":1061,"style":771},[572],[390,1063,1065,1069,1222,1225,1228],{"className":1064},[402],[390,1066],{"className":1067,"style":1068},[406],"height:1.0445em;",[390,1070,1072,1075],{"className":1071},[411],[390,1073,385],{"className":1074},[411,453],[390,1076,1078],{"className":1077},[420],[390,1079,1081],{"className":1080},[424],[390,1082,1084],{"className":1083},[429],[390,1085,1087],{"className":1086,"style":1068},[433],[390,1088,1089,1092],{"style":1043},[390,1090],{"className":1091,"style":442},[441],[390,1093,1095],{"className":1094},[446,447,448,449],[390,1096,1098,1144,1148,1191],{"className":1097},[411,449],[390,1099,1101,1104],{"className":1100},[708,449],[390,1102,796],{"className":1103,"style":795},[708,793,794,449],[390,1105,1107],{"className":1106},[420],[390,1108,1110,1135],{"className":1109},[424,425],[390,1111,1113,1132],{"className":1112},[429],[390,1114,1117],{"className":1115,"style":1116},[433],"height:0.1496em;",[390,1118,1120,1124],{"style":1119},"top:-2.1786em;margin-left:0em;margin-right:0.0714em;",[390,1121],{"className":1122,"style":1123},[441],"height:2.5em;",[390,1125,1129],{"className":1126},[446,1127,1128,449],"reset-size3","size1",[390,1130,822],{"className":1131},[411,453,449],[390,1133,459],{"className":1134},[458],[390,1136,1138],{"className":1137},[429],[390,1139,1142],{"className":1140,"style":1141},[433],"height:0.3214em;",[390,1143],{},[390,1145],{"className":1146,"style":1147},[572,449],"margin-right:0.1952em;",[390,1149,1151,1154],{"className":1150},[411,449],[390,1152,844],{"className":1153},[411,453,449],[390,1155,1157],{"className":1156},[420],[390,1158,1160,1182],{"className":1159},[424,425],[390,1161,1163,1179],{"className":1162},[429],[390,1164,1167],{"className":1165,"style":1166},[433],"height:0.3281em;",[390,1168,1170,1173],{"style":1169},"top:-2.357em;margin-left:0em;margin-right:0.0714em;",[390,1171],{"className":1172,"style":1123},[441],[390,1174,1176],{"className":1175},[446,1127,1128,449],[390,1177,822],{"className":1178},[411,453,449],[390,1180,459],{"className":1181},[458],[390,1183,1185],{"className":1184},[429],[390,1186,1189],{"className":1187,"style":1188},[433],"height:0.143em;",[390,1190],{},[390,1192,1194,1197],{"className":1193},[411,449],[390,1195,886],{"className":1196},[411,449],[390,1198,1200],{"className":1199},[420],[390,1201,1203],{"className":1202},[424],[390,1204,1206],{"className":1205},[429],[390,1207,1210],{"className":1208,"style":1209},[433],"height:0.9021em;",[390,1211,1213,1216],{"style":1212},"top:-2.931em;margin-right:0.0714em;",[390,1214],{"className":1215,"style":1123},[441],[390,1217,1219],{"className":1218},[446,1127,1128,449],[390,1220,822],{"className":1221},[411,453,449],[390,1223],{"className":1224,"style":771},[572],[390,1226,776],{"className":1227},[775],[390,1229],{"className":1230,"style":771},[572],[390,1232,1234,1238,1349,1352,1410],{"className":1233},[402],[390,1235],{"className":1236,"style":1237},[406],"height:2.4522em;vertical-align:-1.4022em;",[390,1239,1242],{"className":1240},[708,1241],"op-limits",[390,1243,1245,1340],{"className":1244},[424,425],[390,1246,1248,1337],{"className":1247},[429],[390,1249,1252,1324],{"className":1250,"style":1251},[433],"height:1.05em;",[390,1253,1255,1259],{"style":1254},"top:-1.8479em;margin-left:0em;",[390,1256],{"className":1257,"style":1258},[441],"height:3.05em;",[390,1260,1262],{"className":1261},[446,447,448,449],[390,1263,1265,1268,1271,1275,1278,1318,1321],{"className":1264},[411,449],[390,1266,822],{"className":1267},[411,453,449],[390,1269],{"className":1270,"style":1147},[572,449],[390,1272,1274],{"className":1273},[775,449],":",[390,1276],{"className":1277,"style":1147},[572,449],[390,1279,1281,1284],{"className":1280},[411,449],[390,1282,844],{"className":1283},[411,453,449],[390,1285,1287],{"className":1286},[420],[390,1288,1290,1310],{"className":1289},[424,425],[390,1291,1293,1307],{"className":1292},[429],[390,1294,1296],{"className":1295,"style":1166},[433],[390,1297,1298,1301],{"style":1169},[390,1299],{"className":1300,"style":1123},[441],[390,1302,1304],{"className":1303},[446,1127,1128,449],[390,1305,822],{"className":1306},[411,453,449],[390,1308,459],{"className":1309},[458],[390,1311,1313],{"className":1312},[429],[390,1314,1316],{"className":1315,"style":1188},[433],[390,1317],{},[390,1319,776],{"className":1320},[775,449],[390,1322,1000],{"className":1323},[411,449],[390,1325,1327,1330],{"style":1326},"top:-3.05em;",[390,1328],{"className":1329,"style":1258},[441],[390,1331,1332],{},[390,1333,1336],{"className":1334},[708,793,1335],"large-op","∏",[390,1338,459],{"className":1339},[458],[390,1341,1343],{"className":1342},[429],[390,1344,1347],{"className":1345,"style":1346},[433],"height:1.4022em;",[390,1348],{},[390,1350],{"className":1351,"style":717},[572],[390,1353,1355,1358],{"className":1354},[411],[390,1356,385],{"className":1357},[411,453],[390,1359,1361],{"className":1360},[420],[390,1362,1364],{"className":1363},[424],[390,1365,1367],{"className":1366},[429],[390,1368,1370],{"className":1369,"style":1068},[433],[390,1371,1372,1375],{"style":1043},[390,1373],{"className":1374,"style":442},[441],[390,1376,1378],{"className":1377},[446,447,448,449],[390,1379,1381],{"className":1380},[411,449],[390,1382,1384,1387],{"className":1383},[411,449],[390,1385,886],{"className":1386},[411,449],[390,1388,1390],{"className":1389},[420],[390,1391,1393],{"className":1392},[424],[390,1394,1396],{"className":1395},[429],[390,1397,1399],{"className":1398,"style":1209},[433],[390,1400,1401,1404],{"style":1212},[390,1402],{"className":1403,"style":1123},[441],[390,1405,1407],{"className":1406},[446,1127,1128,449],[390,1408,822],{"className":1409},[411,453,449],[390,1411,1413],{"className":1412},[411],".",[381,1415,1416,1417,1488,1489,388,1492,1507,1508,1703,1704,1719,1720,1790,1791,1807],{},"The numbers ",[390,1418,1420],{"className":1419},[393],[390,1421,1423],{"className":1422,"ariaHidden":398},[397],[390,1424,1426,1430],{"className":1425},[402],[390,1427],{"className":1428,"style":1429},[406],"height:0.9945em;",[390,1431,1433,1436],{"className":1432},[411],[390,1434,385],{"className":1435},[411,453],[390,1437,1439],{"className":1438},[420],[390,1440,1442],{"className":1441},[424],[390,1443,1445],{"className":1444},[429],[390,1446,1448],{"className":1447,"style":1429},[433],[390,1449,1450,1453],{"style":559},[390,1451],{"className":1452,"style":442},[441],[390,1454,1456],{"className":1455},[446,447,448,449],[390,1457,1459],{"className":1458},[411,449],[390,1460,1462,1465],{"className":1461},[411,449],[390,1463,886],{"className":1464},[411,449],[390,1466,1468],{"className":1467},[420],[390,1469,1471],{"className":1470},[424],[390,1472,1474],{"className":1473},[429],[390,1475,1477],{"className":1476,"style":1209},[433],[390,1478,1479,1482],{"style":1212},[390,1480],{"className":1481,"style":1123},[441],[390,1483,1485],{"className":1484},[446,1127,1128,449],[390,1486,822],{"className":1487},[411,453,449]," are just the ",[471,1490,1491],{},"repeated squares",[390,1493,1495],{"className":1494},[393],[390,1496,1498],{"className":1497,"ariaHidden":398},[397],[390,1499,1501,1504],{"className":1500},[402],[390,1502],{"className":1503,"style":487},[406],[390,1505,385],{"className":1506},[411,453],": each one is the square\nof the previous, since ",[390,1509,1511],{"className":1510},[393],[390,1512,1514,1597],{"className":1513,"ariaHidden":398},[397],[390,1515,1517,1520,1588,1591,1594],{"className":1516},[402],[390,1518],{"className":1519,"style":1429},[406],[390,1521,1523,1526],{"className":1522},[411],[390,1524,385],{"className":1525},[411,453],[390,1527,1529],{"className":1528},[420],[390,1530,1532],{"className":1531},[424],[390,1533,1535],{"className":1534},[429],[390,1536,1538],{"className":1537,"style":1429},[433],[390,1539,1540,1543],{"style":559},[390,1541],{"className":1542,"style":442},[441],[390,1544,1546],{"className":1545},[446,447,448,449],[390,1547,1549],{"className":1548},[411,449],[390,1550,1552,1555],{"className":1551},[411,449],[390,1553,886],{"className":1554},[411,449],[390,1556,1558],{"className":1557},[420],[390,1559,1561],{"className":1560},[424],[390,1562,1564],{"className":1563},[429],[390,1565,1567],{"className":1566,"style":1209},[433],[390,1568,1569,1572],{"style":1212},[390,1570],{"className":1571,"style":1123},[441],[390,1573,1575],{"className":1574},[446,1127,1128,449],[390,1576,1578,1581,1585],{"className":1577},[411,449],[390,1579,822],{"className":1580},[411,453,449],[390,1582,1584],{"className":1583},[581,449],"+",[390,1586,1000],{"className":1587},[411,449],[390,1589],{"className":1590,"style":771},[572],[390,1592,776],{"className":1593},[775],[390,1595],{"className":1596,"style":771},[572],[390,1598,1600,1604,1611,1669],{"className":1599},[402],[390,1601],{"className":1602,"style":1603},[406],"height:1.404em;vertical-align:-0.35em;",[390,1605,1607],{"className":1606},[658],[390,1608,659],{"className":1609},[1610,1128],"delimsizing",[390,1612,1614,1617],{"className":1613},[411],[390,1615,385],{"className":1616},[411,453],[390,1618,1620],{"className":1619},[420],[390,1621,1623],{"className":1622},[424],[390,1624,1626],{"className":1625},[429],[390,1627,1629],{"className":1628,"style":1429},[433],[390,1630,1631,1634],{"style":559},[390,1632],{"className":1633,"style":442},[441],[390,1635,1637],{"className":1636},[446,447,448,449],[390,1638,1640],{"className":1639},[411,449],[390,1641,1643,1646],{"className":1642},[411,449],[390,1644,886],{"className":1645},[411,449],[390,1647,1649],{"className":1648},[420],[390,1650,1652],{"className":1651},[424],[390,1653,1655],{"className":1654},[429],[390,1656,1658],{"className":1657,"style":1209},[433],[390,1659,1660,1663],{"style":1212},[390,1661],{"className":1662,"style":1123},[441],[390,1664,1666],{"className":1665},[446,1127,1128,449],[390,1667,822],{"className":1668},[411,453,449],[390,1670,1672,1678],{"className":1671},[666],[390,1673,1675],{"className":1674},[666],[390,1676,667],{"className":1677},[1610,1128],[390,1679,1681],{"className":1680},[420],[390,1682,1684],{"className":1683},[424],[390,1685,1687],{"className":1686},[429],[390,1688,1691],{"className":1689,"style":1690},[433],"height:1.054em;",[390,1692,1694,1697],{"style":1693},"top:-3.3029em;margin-right:0.05em;",[390,1695],{"className":1696,"style":442},[441],[390,1698,1700],{"className":1699},[446,447,448,449],[390,1701,886],{"className":1702},[411,449],". So we sweep the bits of\n",[390,1705,1707],{"className":1706},[393],[390,1708,1710],{"className":1709,"ariaHidden":398},[397],[390,1711,1713,1716],{"className":1712},[402],[390,1714],{"className":1715,"style":487},[406],[390,1717,507],{"className":1718},[411,453]," from least to most significant, keeping a running square ",[390,1721,1723],{"className":1722},[393],[390,1724,1726],{"className":1725,"ariaHidden":398},[397],[390,1727,1729,1732],{"className":1728},[402],[390,1730],{"className":1731,"style":1429},[406],[390,1733,1735,1738],{"className":1734},[411],[390,1736,385],{"className":1737},[411,453],[390,1739,1741],{"className":1740},[420],[390,1742,1744],{"className":1743},[424],[390,1745,1747],{"className":1746},[429],[390,1748,1750],{"className":1749,"style":1429},[433],[390,1751,1752,1755],{"style":559},[390,1753],{"className":1754,"style":442},[441],[390,1756,1758],{"className":1757},[446,447,448,449],[390,1759,1761],{"className":1760},[411,449],[390,1762,1764,1767],{"className":1763},[411,449],[390,1765,886],{"className":1766},[411,449],[390,1768,1770],{"className":1769},[420],[390,1771,1773],{"className":1772},[424],[390,1774,1776],{"className":1775},[429],[390,1777,1779],{"className":1778,"style":1209},[433],[390,1780,1781,1784],{"style":1212},[390,1782],{"className":1783,"style":1123},[441],[390,1785,1787],{"className":1786},[446,1127,1128,449],[390,1788,822],{"className":1789},[411,453,449],", and whenever the\ncurrent bit is ",[390,1792,1794],{"className":1793},[393],[390,1795,1797],{"className":1796,"ariaHidden":398},[397],[390,1798,1800,1804],{"className":1799},[402],[390,1801],{"className":1802,"style":1803},[406],"height:0.6444em;",[390,1805,1000],{"className":1806},[411]," we multiply that square into the result.",[1809,1810,1814,2180],"figure",{"className":1811},[1812,1813],"tikz-figure","tikz-diagram-rendered",[1815,1816,1821],"svg",{"xmlns":1817,"width":1818,"height":1819,"viewBox":1820},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","417.446","158.841","-75 -75 313.085 119.131",[1822,1823,1826,1852,1874,1877,1904,1907,1932,1935,1959,1962,1986,1989,1996,1999,2013,2016,2030,2033,2047,2050,2053,2061,2064,2067,2073,2076,2079,2085,2155,2164,2172],"g",{"stroke":1824,"style":1825},"currentColor","stroke-miterlimit:10;stroke-width:.4",[1822,1827,1830,1840,1846],{"stroke":1828,"fontSize":1829},"none","9",[1822,1831,1833],{"transform":1832},"translate(-61.951 -8.48)",[1834,1835],"path",{"d":1836,"fill":1824,"stroke":1824,"className":1837,"style":1839},"M3.052-54.827Q3.052-54.880 3.061-54.915L3.729-57.583Q3.782-57.781 3.782-57.978Q3.782-58.374 3.518-58.374Q3.232-58.374 3.098-58.051Q2.964-57.728 2.846-57.222Q2.828-57.139 2.753-57.139L2.648-57.139Q2.600-57.139 2.578-57.178Q2.556-57.218 2.556-57.258Q2.718-57.877 2.918-58.255Q3.118-58.633 3.540-58.633Q3.760-58.633 3.964-58.539Q4.168-58.444 4.298-58.271Q4.428-58.097 4.428-57.877Q4.705-58.229 5.067-58.431Q5.430-58.633 5.843-58.633Q6.339-58.633 6.636-58.380Q6.933-58.128 6.933-57.644Q6.933-57.271 6.772-56.776Q6.612-56.282 6.357-55.610Q6.238-55.324 6.238-55.087Q6.238-54.819 6.427-54.819Q6.669-54.819 6.865-55.005Q7.060-55.192 7.181-55.458Q7.302-55.724 7.363-55.970Q7.372-56.001 7.396-56.025Q7.420-56.049 7.451-56.049L7.561-56.049Q7.605-56.049 7.627-56.016Q7.649-55.983 7.649-55.935Q7.517-55.403 7.199-54.979Q6.880-54.555 6.418-54.555Q6.089-54.555 5.854-54.768Q5.619-54.981 5.619-55.315Q5.619-55.495 5.680-55.645Q5.939-56.308 6.111-56.849Q6.282-57.389 6.282-57.781Q6.282-57.934 6.241-58.071Q6.199-58.207 6.098-58.290Q5.997-58.374 5.825-58.374Q5.329-58.374 4.960-58.062Q4.590-57.750 4.322-57.240L3.738-54.880Q3.707-54.744 3.591-54.649Q3.474-54.555 3.338-54.555Q3.219-54.555 3.136-54.630Q3.052-54.704 3.052-54.827",[1838],"tikz-text","stroke-width:0.270",[1822,1841,1842],{"transform":1832},[1834,1843],{"d":1844,"fill":1824,"stroke":1824,"className":1845,"style":1839},"M16.964-55.799L11.158-55.799Q11.079-55.812 11.029-55.862Q10.978-55.913 10.978-55.988Q10.978-56.137 11.158-56.185L16.964-56.185Q17.135-56.133 17.135-55.988Q17.135-55.834 16.964-55.799M16.964-57.627L11.158-57.627Q10.978-57.657 10.978-57.816Q10.978-57.965 11.158-58.013L16.964-58.013Q17.135-57.961 17.135-57.816Q17.135-57.662 16.964-57.627",[1838],[1822,1847,1848],{"transform":1832},[1834,1849],{"d":1850,"fill":1824,"stroke":1824,"className":1851,"style":1839},"M24.134-54.656L21.102-54.656L21.102-54.972Q22.253-54.972 22.253-55.267L22.253-59.991Q21.765-59.758 21.044-59.758L21.044-60.074Q22.174-60.074 22.736-60.650L22.881-60.650Q22.916-60.650 22.949-60.617Q22.982-60.584 22.982-60.549L22.982-55.267Q22.982-54.972 24.134-54.972L24.134-54.656M25.747-55.377L25.703-55.377Q25.905-55.060 26.291-54.902Q26.678-54.744 27.104-54.744Q27.641-54.744 27.880-55.179Q28.120-55.614 28.120-56.194Q28.120-56.774 27.873-57.214Q27.627-57.653 27.096-57.653L26.476-57.653Q26.450-57.653 26.417-57.682Q26.384-57.710 26.384-57.732L26.384-57.833Q26.384-57.864 26.412-57.888Q26.441-57.912 26.476-57.912L26.995-57.952Q27.460-57.952 27.706-58.424Q27.953-58.897 27.953-59.415Q27.953-59.842 27.739-60.116Q27.526-60.391 27.104-60.391Q26.762-60.391 26.436-60.261Q26.111-60.132 25.927-59.877L25.953-59.877Q26.155-59.877 26.291-59.736Q26.428-59.595 26.428-59.398Q26.428-59.200 26.294-59.066Q26.160-58.932 25.962-58.932Q25.760-58.932 25.621-59.066Q25.483-59.200 25.483-59.398Q25.483-59.987 25.986-60.318Q26.489-60.650 27.104-60.650Q27.482-60.650 27.884-60.510Q28.287-60.369 28.555-60.090Q28.823-59.811 28.823-59.415Q28.823-58.866 28.469-58.429Q28.115-57.991 27.575-57.807Q27.966-57.728 28.311-57.504Q28.656-57.280 28.867-56.939Q29.078-56.598 29.078-56.203Q29.078-55.821 28.915-55.498Q28.752-55.175 28.460-54.939Q28.168-54.704 27.821-54.581Q27.474-54.458 27.104-54.458Q26.656-54.458 26.226-54.619Q25.795-54.779 25.514-55.106Q25.232-55.434 25.232-55.891Q25.232-56.106 25.380-56.249Q25.527-56.392 25.747-56.392Q25.957-56.392 26.102-56.247Q26.248-56.102 26.248-55.891Q26.248-55.680 26.100-55.528Q25.953-55.377 25.747-55.377",[1838],[1822,1853,1854,1861,1867],{"stroke":1828},[1822,1855,1857],{"transform":1856},"translate(-64.585 5.245)",[1834,1858],{"d":1859,"fill":1824,"stroke":1824,"className":1860,"style":1839},"M8.814-55.799L3.008-55.799Q2.929-55.812 2.879-55.862Q2.828-55.913 2.828-55.988Q2.828-56.137 3.008-56.185L8.814-56.185Q8.985-56.133 8.985-55.988Q8.985-55.834 8.814-55.799M8.814-57.627L3.008-57.627Q2.828-57.657 2.828-57.816Q2.828-57.965 3.008-58.013L8.814-58.013Q8.985-57.961 8.985-57.816Q8.985-57.662 8.814-57.627",[1838],[1822,1862,1863],{"transform":1856},[1834,1864],{"d":1865,"fill":1824,"stroke":1824,"className":1866,"style":1839},"M15.985-54.656L12.953-54.656L12.953-54.972Q14.104-54.972 14.104-55.267L14.104-59.991Q13.616-59.758 12.895-59.758L12.895-60.074Q14.025-60.074 14.587-60.650L14.732-60.650Q14.767-60.650 14.800-60.617Q14.833-60.584 14.833-60.549L14.833-55.267Q14.833-54.972 15.985-54.972L15.985-54.656M20.603-54.656L17.571-54.656L17.571-54.972Q18.723-54.972 18.723-55.267L18.723-59.991Q18.235-59.758 17.514-59.758L17.514-60.074Q18.643-60.074 19.206-60.650L19.351-60.650Q19.386-60.650 19.419-60.617Q19.452-60.584 19.452-60.549L19.452-55.267Q19.452-54.972 20.603-54.972L20.603-54.656M23.627-54.458Q22.502-54.458 22.089-55.355Q21.676-56.251 21.676-57.526Q21.676-58.299 21.825-58.998Q21.974-59.697 22.410-60.173Q22.845-60.650 23.627-60.650Q24.405-60.650 24.840-60.171Q25.275-59.692 25.424-58.996Q25.574-58.299 25.574-57.526Q25.574-56.247 25.161-55.353Q24.747-54.458 23.627-54.458M23.627-54.718Q24.145-54.718 24.396-55.229Q24.646-55.741 24.703-56.352Q24.761-56.963 24.761-57.671Q24.761-58.356 24.703-58.916Q24.646-59.477 24.394-59.934Q24.141-60.391 23.627-60.391Q23.223-60.391 22.985-60.114Q22.748-59.837 22.640-59.396Q22.533-58.954 22.508-58.561Q22.484-58.167 22.484-57.671Q22.484-57.165 22.508-56.737Q22.533-56.308 22.640-55.825Q22.748-55.342 22.987-55.030Q23.227-54.718 23.627-54.718M29.841-54.656L26.808-54.656L26.808-54.972Q27.960-54.972 27.960-55.267L27.960-59.991Q27.472-59.758 26.751-59.758L26.751-60.074Q27.881-60.074 28.443-60.650L28.588-60.650Q28.623-60.650 28.656-60.617Q28.689-60.584 28.689-60.549L28.689-55.267Q28.689-54.972 29.841-54.972",[1838],[1822,1868,1869],{"transform":1856},[1834,1870],{"d":1871,"fill":1824,"stroke":1824,"className":1872,"style":1873},"M33.619-53.656L31.009-53.656L31.009-53.841Q31.015-53.864 31.035-53.890L32.186-54.945Q32.526-55.256 32.706-55.442Q32.887-55.628 33.032-55.888Q33.177-56.149 33.177-56.445Q33.177-56.718 33.051-56.933Q32.925-57.148 32.705-57.268Q32.485-57.388 32.210-57.388Q32.034-57.388 31.864-57.331Q31.694-57.274 31.562-57.167Q31.431-57.060 31.351-56.902Q31.439-56.902 31.517-56.858Q31.595-56.814 31.639-56.738Q31.682-56.662 31.682-56.565Q31.682-56.425 31.586-56.328Q31.489-56.231 31.346-56.231Q31.208-56.231 31.108-56.331Q31.009-56.430 31.009-56.565Q31.009-56.890 31.199-57.138Q31.390-57.385 31.693-57.516Q31.996-57.646 32.312-57.646Q32.693-57.646 33.036-57.511Q33.379-57.377 33.593-57.104Q33.807-56.832 33.807-56.445Q33.807-56.170 33.682-55.943Q33.557-55.716 33.377-55.544Q33.197-55.373 32.872-55.133Q32.547-54.892 32.462-54.825L31.706-54.221L32.239-54.221Q32.728-54.221 33.059-54.229Q33.391-54.236 33.405-54.251Q33.464-54.321 33.496-54.456Q33.528-54.591 33.560-54.802L33.807-54.802",[1838],"stroke-width:0.180",[1834,1875],{"fill":1828,"d":1876},"M-14.757-44.698h34.143v-19.917h-34.143Z",[1822,1878,1879,1886,1892,1898],{"stroke":1828},[1822,1880,1882],{"transform":1881},"translate(-9.975 2.625)",[1834,1883],{"d":1884,"fill":1824,"stroke":1824,"className":1885,"style":1839},"M3.936-54.555Q3.360-54.555 3.039-54.986Q2.718-55.416 2.718-55.996Q2.718-56.401 2.802-56.629L3.681-60.127Q3.716-60.277 3.716-60.351Q3.716-60.488 3.149-60.488Q3.052-60.488 3.052-60.606Q3.052-60.663 3.083-60.734Q3.114-60.804 3.180-60.804L4.401-60.901Q4.454-60.901 4.487-60.872Q4.520-60.843 4.520-60.795L4.520-60.760L3.861-58.150Q4.384-58.633 4.907-58.633Q5.293-58.633 5.584-58.429Q5.874-58.224 6.021-57.890Q6.168-57.556 6.168-57.165Q6.168-56.581 5.865-55.972Q5.562-55.364 5.041-54.959Q4.520-54.555 3.936-54.555M3.953-54.819Q4.322-54.819 4.626-55.142Q4.929-55.465 5.087-55.860Q5.232-56.216 5.353-56.724Q5.474-57.231 5.474-57.552Q5.474-57.877 5.329-58.125Q5.184-58.374 4.889-58.374Q4.287-58.374 3.716-57.574L3.474-56.581Q3.329-55.957 3.329-55.693Q3.329-55.350 3.481-55.084Q3.632-54.819 3.953-54.819",[1838],[1822,1887,1888],{"transform":1881},[1834,1889],{"d":1890,"fill":1824,"stroke":1824,"className":1891,"style":1873},"M8.109-53.530Q7.547-53.530 7.217-53.817Q6.887-54.104 6.760-54.554Q6.632-55.004 6.632-55.569Q6.632-55.973 6.698-56.338Q6.764-56.703 6.927-56.999Q7.090-57.295 7.381-57.470Q7.673-57.646 8.109-57.646Q8.546-57.646 8.836-57.470Q9.126-57.295 9.290-57Q9.454-56.706 9.518-56.348Q9.583-55.991 9.583-55.569Q9.583-55.004 9.455-54.554Q9.328-54.104 9.001-53.817Q8.674-53.530 8.109-53.530M8.109-53.747Q8.513-53.747 8.708-54.057Q8.903-54.368 8.947-54.760Q8.991-55.153 8.991-55.666Q8.991-56.161 8.947-56.520Q8.903-56.879 8.708-57.154Q8.513-57.429 8.109-57.429Q7.705-57.429 7.510-57.154Q7.315-56.879 7.271-56.520Q7.227-56.161 7.227-55.666Q7.227-55.153 7.271-54.760Q7.315-54.368 7.510-54.057Q7.705-53.747 8.109-53.747",[1838],[1822,1893,1894],{"transform":1881},[1834,1895],{"d":1896,"fill":1824,"stroke":1824,"className":1897,"style":1839},"M16.945-55.799L11.139-55.799Q11.060-55.812 11.010-55.862Q10.959-55.913 10.959-55.988Q10.959-56.137 11.139-56.185L16.945-56.185Q17.116-56.133 17.116-55.988Q17.116-55.834 16.945-55.799M16.945-57.627L11.139-57.627Q10.959-57.657 10.959-57.816Q10.959-57.965 11.139-58.013L16.945-58.013Q17.116-57.961 17.116-57.816Q17.116-57.662 16.945-57.627",[1838],[1822,1899,1900],{"transform":1881},[1834,1901],{"d":1902,"fill":1824,"stroke":1824,"className":1903,"style":1839},"M21.546-54.656L18.514-54.656L18.514-54.972Q19.665-54.972 19.665-55.267L19.665-59.991Q19.177-59.758 18.456-59.758L18.456-60.074Q19.586-60.074 20.148-60.650L20.293-60.650Q20.328-60.650 20.361-60.617Q20.394-60.584 20.394-60.549L20.394-55.267Q20.394-54.972 21.546-54.972",[1838],[1834,1905],{"fill":1828,"d":1906},"M-14.757-16.245h34.143v-19.917h-34.143Z",[1822,1908,1909,1915,1921,1926],{"stroke":1828},[1822,1910,1912],{"transform":1911},"translate(-9.975 31.078)",[1834,1913],{"d":1884,"fill":1824,"stroke":1824,"className":1914,"style":1839},[1838],[1822,1916,1917],{"transform":1911},[1834,1918],{"d":1919,"fill":1824,"stroke":1824,"className":1920,"style":1873},"M9.319-53.656L7.028-53.656L7.028-53.914Q7.904-53.914 7.904-54.087L7.904-57.166Q7.711-57.078 7.479-57.041Q7.248-57.005 6.993-57.005L6.993-57.262Q7.371-57.262 7.692-57.347Q8.012-57.432 8.241-57.646L8.361-57.646Q8.393-57.646 8.418-57.623Q8.443-57.599 8.443-57.561L8.443-54.087Q8.443-53.914 9.319-53.914",[1838],[1822,1922,1923],{"transform":1911},[1834,1924],{"d":1896,"fill":1824,"stroke":1824,"className":1925,"style":1839},[1838],[1822,1927,1928],{"transform":1911},[1834,1929],{"d":1930,"fill":1824,"stroke":1824,"className":1931,"style":1839},"M19.951-54.458Q18.826-54.458 18.412-55.355Q17.999-56.251 17.999-57.526Q17.999-58.299 18.149-58.998Q18.298-59.697 18.733-60.173Q19.168-60.650 19.951-60.650Q20.728-60.650 21.163-60.171Q21.598-59.692 21.748-58.996Q21.897-58.299 21.897-57.526Q21.897-56.247 21.484-55.353Q21.071-54.458 19.951-54.458M19.951-54.718Q20.469-54.718 20.720-55.229Q20.970-55.741 21.027-56.352Q21.084-56.963 21.084-57.671Q21.084-58.356 21.027-58.916Q20.970-59.477 20.717-59.934Q20.465-60.391 19.951-60.391Q19.546-60.391 19.309-60.114Q19.072-59.837 18.964-59.396Q18.856-58.954 18.832-58.561Q18.808-58.167 18.808-57.671Q18.808-57.165 18.832-56.737Q18.856-56.308 18.964-55.825Q19.072-55.342 19.311-55.030Q19.551-54.718 19.951-54.718",[1838],[1834,1933],{"fill":1828,"d":1934},"M-14.757 12.208h34.143V-7.71h-34.143Z",[1822,1936,1937,1943,1949,1954],{"stroke":1828},[1822,1938,1940],{"transform":1939},"translate(-9.975 59.53)",[1834,1941],{"d":1884,"fill":1824,"stroke":1824,"className":1942,"style":1839},[1838],[1822,1944,1945],{"transform":1939},[1834,1946],{"d":1947,"fill":1824,"stroke":1824,"className":1948,"style":1873},"M9.319-53.656L6.709-53.656L6.709-53.841Q6.715-53.864 6.735-53.890L7.886-54.945Q8.226-55.256 8.406-55.442Q8.587-55.628 8.732-55.888Q8.877-56.149 8.877-56.445Q8.877-56.718 8.751-56.933Q8.625-57.148 8.405-57.268Q8.185-57.388 7.910-57.388Q7.734-57.388 7.564-57.331Q7.394-57.274 7.262-57.167Q7.131-57.060 7.051-56.902Q7.139-56.902 7.217-56.858Q7.295-56.814 7.339-56.738Q7.382-56.662 7.382-56.565Q7.382-56.425 7.286-56.328Q7.189-56.231 7.046-56.231Q6.908-56.231 6.808-56.331Q6.709-56.430 6.709-56.565Q6.709-56.890 6.899-57.138Q7.090-57.385 7.393-57.516Q7.696-57.646 8.012-57.646Q8.393-57.646 8.736-57.511Q9.079-57.377 9.293-57.104Q9.507-56.832 9.507-56.445Q9.507-56.170 9.382-55.943Q9.257-55.716 9.077-55.544Q8.897-55.373 8.572-55.133Q8.247-54.892 8.162-54.825L7.406-54.221L7.939-54.221Q8.428-54.221 8.759-54.229Q9.090-54.236 9.105-54.251Q9.164-54.321 9.196-54.456Q9.228-54.591 9.260-54.802L9.507-54.802",[1838],[1822,1950,1951],{"transform":1939},[1834,1952],{"d":1896,"fill":1824,"stroke":1824,"className":1953,"style":1839},[1838],[1822,1955,1956],{"transform":1939},[1834,1957],{"d":1902,"fill":1824,"stroke":1824,"className":1958,"style":1839},[1838],[1834,1960],{"fill":1828,"d":1961},"M-14.757 40.66h34.143V20.745h-34.143Z",[1822,1963,1964,1970,1976,1981],{"stroke":1828},[1822,1965,1967],{"transform":1966},"translate(-9.975 87.983)",[1834,1968],{"d":1884,"fill":1824,"stroke":1824,"className":1969,"style":1839},[1838],[1822,1971,1972],{"transform":1966},[1834,1973],{"d":1974,"fill":1824,"stroke":1824,"className":1975,"style":1873},"M7.051-54.107Q7.347-53.770 8.077-53.770Q8.335-53.770 8.515-53.898Q8.695-54.025 8.783-54.233Q8.871-54.441 8.871-54.699Q8.871-55.094 8.664-55.365Q8.458-55.636 8.071-55.636L7.605-55.636Q7.541-55.651 7.526-55.713L7.526-55.780Q7.541-55.836 7.605-55.853L8.007-55.877Q8.217-55.877 8.386-56.019Q8.554-56.161 8.647-56.375Q8.739-56.589 8.739-56.805Q8.739-57.093 8.554-57.258Q8.370-57.424 8.077-57.424Q7.816-57.424 7.592-57.356Q7.368-57.289 7.221-57.131Q7.350-57.113 7.429-57.024Q7.508-56.934 7.508-56.805Q7.508-56.668 7.413-56.573Q7.318-56.477 7.177-56.477Q7.043-56.477 6.946-56.574Q6.849-56.671 6.849-56.805Q6.849-57.093 7.040-57.284Q7.230-57.476 7.511-57.561Q7.793-57.646 8.077-57.646Q8.352-57.646 8.653-57.555Q8.953-57.465 9.161-57.276Q9.369-57.087 9.369-56.805Q9.369-56.436 9.123-56.164Q8.877-55.891 8.505-55.762Q8.924-55.669 9.241-55.386Q9.559-55.103 9.559-54.705Q9.559-54.342 9.340-54.076Q9.120-53.811 8.774-53.671Q8.428-53.530 8.077-53.530Q7.854-53.530 7.607-53.578Q7.359-53.627 7.139-53.737Q6.920-53.846 6.788-54.025Q6.656-54.204 6.656-54.459Q6.656-54.608 6.758-54.711Q6.861-54.813 7.010-54.813Q7.160-54.813 7.262-54.711Q7.365-54.608 7.365-54.459Q7.365-54.327 7.276-54.226Q7.186-54.125 7.051-54.107",[1838],[1822,1977,1978],{"transform":1966},[1834,1979],{"d":1896,"fill":1824,"stroke":1824,"className":1980,"style":1839},[1838],[1822,1982,1983],{"transform":1966},[1834,1984],{"d":1902,"fill":1824,"stroke":1824,"className":1985,"style":1839},[1838],[1834,1987],{"fill":1828,"d":1988},"M70.6-44.698h34.144v-19.917H70.601Z",[1822,1990,1992],{"transform":1991},"translate(82.908 1.937)",[1834,1993],{"d":1994,"fill":1824,"stroke":1824,"className":1995,"style":1839},"M3.936-54.555Q3.540-54.555 3.254-54.759Q2.969-54.964 2.822-55.298Q2.674-55.632 2.674-56.023Q2.674-56.458 2.848-56.919Q3.022-57.381 3.334-57.772Q3.646-58.163 4.056-58.398Q4.467-58.633 4.907-58.633Q5.175-58.633 5.392-58.495Q5.610-58.356 5.742-58.110Q5.781-58.260 5.889-58.356Q5.997-58.453 6.137-58.453Q6.260-58.453 6.344-58.380Q6.427-58.308 6.427-58.185Q6.427-58.132 6.418-58.101L5.799-55.610Q5.742-55.412 5.742-55.214Q5.742-54.819 6.005-54.819Q6.291-54.819 6.425-55.142Q6.559-55.465 6.678-55.970Q6.687-56.001 6.711-56.025Q6.735-56.049 6.770-56.049L6.876-56.049Q6.924-56.049 6.946-56.016Q6.968-55.983 6.968-55.935Q6.854-55.504 6.763-55.251Q6.673-54.999 6.480-54.777Q6.287-54.555 5.988-54.555Q5.680-54.555 5.432-54.726Q5.184-54.898 5.113-55.188Q4.858-54.902 4.562-54.729Q4.265-54.555 3.936-54.555M3.953-54.819Q4.283-54.819 4.593-55.060Q4.902-55.302 5.113-55.618Q5.122-55.627 5.122-55.645L5.619-57.609Q5.562-57.926 5.370-58.150Q5.179-58.374 4.889-58.374Q4.520-58.374 4.221-58.055Q3.922-57.737 3.755-57.328Q3.619-56.981 3.494-56.471Q3.369-55.961 3.369-55.636Q3.369-55.311 3.507-55.065Q3.646-54.819 3.953-54.819",[1838],[1834,1997],{"fill":1828,"d":1998},"M70.6-16.245h34.144v-19.917H70.601Z",[1822,2000,2001,2007],{"stroke":1828},[1822,2002,2004],{"transform":2003},"translate(80.825 32.298)",[1834,2005],{"d":1994,"fill":1824,"stroke":1824,"className":2006,"style":1839},[1838],[1822,2008,2009],{"transform":2003},[1834,2010],{"d":2011,"fill":1824,"stroke":1824,"className":2012,"style":1873},"M10.256-58.479L7.646-58.479L7.646-58.664Q7.652-58.687 7.672-58.713L8.823-59.768Q9.163-60.079 9.343-60.265Q9.524-60.451 9.669-60.711Q9.814-60.972 9.814-61.268Q9.814-61.541 9.688-61.756Q9.562-61.971 9.342-62.091Q9.122-62.211 8.847-62.211Q8.671-62.211 8.501-62.154Q8.331-62.097 8.199-61.990Q8.068-61.883 7.988-61.725Q8.076-61.725 8.154-61.681Q8.232-61.637 8.276-61.561Q8.319-61.485 8.319-61.388Q8.319-61.248 8.223-61.151Q8.126-61.054 7.983-61.054Q7.845-61.054 7.745-61.154Q7.646-61.253 7.646-61.388Q7.646-61.713 7.836-61.961Q8.027-62.208 8.330-62.339Q8.633-62.469 8.949-62.469Q9.330-62.469 9.673-62.334Q10.016-62.200 10.230-61.927Q10.444-61.655 10.444-61.268Q10.444-60.993 10.319-60.766Q10.194-60.539 10.014-60.367Q9.834-60.196 9.509-59.956Q9.184-59.715 9.099-59.648L8.343-59.044L8.876-59.044Q9.365-59.044 9.696-59.052Q10.027-59.059 10.042-59.074Q10.101-59.144 10.133-59.279Q10.165-59.414 10.197-59.625L10.444-59.625",[1838],[1834,2014],{"fill":1828,"d":2015},"M70.6 12.208h34.144V-7.71H70.601Z",[1822,2017,2018,2024],{"stroke":1828},[1822,2019,2021],{"transform":2020},"translate(80.825 60.75)",[1834,2022],{"d":1994,"fill":1824,"stroke":1824,"className":2023,"style":1839},[1838],[1822,2025,2026],{"transform":2020},[1834,2027],{"d":2028,"fill":1824,"stroke":1824,"className":2029,"style":1873},"M9.345-59.458L7.490-59.458L7.490-59.715L9.585-62.422Q9.623-62.469 9.682-62.469L9.814-62.469Q9.855-62.469 9.882-62.441Q9.910-62.414 9.910-62.373L9.910-59.715L10.599-59.715L10.599-59.458L9.910-59.458L9.910-58.910Q9.910-58.737 10.587-58.737L10.587-58.479L8.668-58.479L8.668-58.737Q9.345-58.737 9.345-58.910L9.345-59.458M9.386-61.798L7.780-59.715L9.386-59.715",[1838],[1834,2031],{"fill":1828,"d":2032},"M70.6 40.66h34.144V20.745H70.601Z",[1822,2034,2035,2041],{"stroke":1828},[1822,2036,2038],{"transform":2037},"translate(80.825 89.203)",[1834,2039],{"d":1994,"fill":1824,"stroke":1824,"className":2040,"style":1839},[1838],[1822,2042,2043],{"transform":2037},[1834,2044],{"d":2045,"fill":1824,"stroke":1824,"className":2046,"style":1873},"M7.593-59.402Q7.593-59.789 7.854-60.060Q8.114-60.331 8.516-60.500L8.343-60.597Q8.094-60.744 7.940-60.962Q7.786-61.180 7.786-61.450Q7.786-61.760 7.972-61.993Q8.158-62.226 8.451-62.348Q8.744-62.469 9.046-62.469Q9.336-62.469 9.628-62.371Q9.919-62.273 10.112-62.068Q10.306-61.863 10.306-61.564Q10.306-61.245 10.096-61.025Q9.887-60.805 9.544-60.644L9.866-60.471Q10.148-60.307 10.322-60.061Q10.496-59.815 10.496-59.510Q10.496-59.147 10.281-58.885Q10.066-58.623 9.729-58.488Q9.392-58.353 9.046-58.353Q8.703-58.353 8.369-58.467Q8.035-58.582 7.814-58.817Q7.593-59.053 7.593-59.402M8-59.408Q8-59.033 8.330-58.813Q8.659-58.593 9.046-58.593Q9.280-58.593 9.521-58.668Q9.761-58.743 9.925-58.901Q10.089-59.059 10.089-59.302Q10.089-59.472 9.981-59.611Q9.872-59.750 9.711-59.841L8.774-60.357Q8.448-60.219 8.224-59.973Q8-59.727 8-59.408M8.422-61.262L9.298-60.782Q9.945-61.098 9.945-61.564Q9.945-61.778 9.809-61.935Q9.673-62.091 9.466-62.169Q9.260-62.247 9.046-62.247Q8.724-62.247 8.434-62.107Q8.144-61.968 8.144-61.678Q8.144-61.447 8.422-61.262",[1838],[1834,2048],{"fill":1828,"d":2049},"M87.673-44.498v6.136",[1834,2051],{"stroke":1828,"d":2052},"m87.673-36.362 1.6-3.2-1.6 1.2-1.6-1.2",[1822,2054,2056],{"transform":2055},"translate(88.891 15.17)",[1834,2057],{"d":2058,"fill":1824,"stroke":1824,"className":2059,"style":2060},"M2.595-54.664L2.595-55.886Q2.595-55.914 2.627-55.945Q2.658-55.976 2.681-55.976L2.787-55.976Q2.857-55.976 2.873-55.914Q2.935-55.593 3.074-55.353Q3.212-55.113 3.445-54.972Q3.677-54.832 3.986-54.832Q4.224-54.832 4.433-54.892Q4.642-54.953 4.779-55.101Q4.916-55.250 4.916-55.496Q4.916-55.750 4.705-55.916Q4.494-56.082 4.224-56.136L3.603-56.250Q3.197-56.328 2.896-56.584Q2.595-56.840 2.595-57.215Q2.595-57.582 2.796-57.804Q2.998-58.027 3.322-58.125Q3.646-58.222 3.986-58.222Q4.451-58.222 4.748-58.015L4.970-58.199Q4.994-58.222 5.025-58.222L5.076-58.222Q5.107-58.222 5.134-58.195Q5.162-58.168 5.162-58.136L5.162-57.152Q5.162-57.121 5.136-57.092Q5.111-57.062 5.076-57.062L4.970-57.062Q4.935-57.062 4.908-57.090Q4.880-57.117 4.880-57.152Q4.880-57.551 4.628-57.771Q4.377-57.992 3.978-57.992Q3.623-57.992 3.339-57.869Q3.056-57.746 3.056-57.441Q3.056-57.222 3.257-57.090Q3.459-56.957 3.705-56.914L4.330-56.801Q4.759-56.711 5.068-56.414Q5.377-56.117 5.377-55.703Q5.377-55.133 4.978-54.855Q4.580-54.578 3.986-54.578Q3.435-54.578 3.084-54.914L2.787-54.601Q2.763-54.578 2.728-54.578L2.681-54.578Q2.658-54.578 2.627-54.609Q2.595-54.640 2.595-54.664M10.123-53.105L8.267-53.105L8.267-53.398Q8.537-53.398 8.705-53.443Q8.873-53.488 8.873-53.664L8.873-55.113Q8.669-54.867 8.369-54.722Q8.068-54.578 7.736-54.578Q7.252-54.578 6.839-54.820Q6.427-55.062 6.187-55.474Q5.947-55.886 5.947-56.383Q5.947-56.879 6.203-57.293Q6.459-57.707 6.888-57.945Q7.318-58.183 7.810-58.183Q8.166-58.183 8.472-58.004Q8.779-57.824 8.970-57.511L9.259-58.183L9.513-58.183L9.513-53.664Q9.513-53.488 9.681-53.443Q9.849-53.398 10.123-53.398L10.123-53.105M7.794-54.832Q8.162-54.832 8.455-55.064Q8.748-55.297 8.896-55.656L8.896-56.992Q8.802-57.375 8.529-57.638Q8.255-57.902 7.880-57.902Q7.521-57.902 7.248-57.672Q6.974-57.441 6.832-57.084Q6.689-56.726 6.689-56.375Q6.689-56.039 6.814-55.677Q6.939-55.316 7.191-55.074Q7.443-54.832 7.794-54.832M11.068-55.609L11.068-57.351Q11.068-57.566 11.005-57.662Q10.943-57.758 10.824-57.779Q10.705-57.801 10.459-57.801L10.459-58.097L11.705-58.183L11.705-55.633L11.705-55.609Q11.705-55.297 11.759-55.135Q11.814-54.972 11.964-54.902Q12.115-54.832 12.435-54.832Q12.865-54.832 13.138-55.170Q13.412-55.508 13.412-55.953L13.412-57.351Q13.412-57.566 13.349-57.662Q13.287-57.758 13.168-57.779Q13.048-57.801 12.802-57.801L12.802-58.097L14.048-58.183L14.048-55.398Q14.048-55.187 14.111-55.092Q14.173-54.996 14.293-54.974Q14.412-54.953 14.658-54.953L14.658-54.656L13.435-54.578L13.435-55.199Q13.267-54.910 12.986-54.744Q12.705-54.578 12.384-54.578Q11.068-54.578 11.068-55.609M15.201-55.488Q15.201-55.972 15.603-56.267Q16.005-56.562 16.556-56.681Q17.107-56.801 17.599-56.801L17.599-57.090Q17.599-57.316 17.484-57.523Q17.369-57.730 17.171-57.849Q16.974-57.968 16.744-57.968Q16.318-57.968 16.033-57.863Q16.103-57.836 16.150-57.781Q16.197-57.726 16.222-57.656Q16.248-57.586 16.248-57.511Q16.248-57.406 16.197-57.314Q16.146-57.222 16.054-57.172Q15.962-57.121 15.857-57.121Q15.752-57.121 15.660-57.172Q15.568-57.222 15.517-57.314Q15.466-57.406 15.466-57.511Q15.466-57.929 15.855-58.076Q16.244-58.222 16.744-58.222Q17.076-58.222 17.429-58.092Q17.783-57.961 18.011-57.707Q18.240-57.453 18.240-57.105L18.240-55.304Q18.240-55.172 18.312-55.062Q18.384-54.953 18.513-54.953Q18.638-54.953 18.707-55.058Q18.775-55.164 18.775-55.304L18.775-55.816L19.056-55.816L19.056-55.304Q19.056-55.101 18.939-54.943Q18.822-54.785 18.640-54.701Q18.459-54.617 18.255-54.617Q18.025-54.617 17.873-54.789Q17.720-54.961 17.689-55.191Q17.529-54.910 17.220-54.744Q16.912-54.578 16.560-54.578Q16.048-54.578 15.625-54.801Q15.201-55.023 15.201-55.488M15.888-55.488Q15.888-55.203 16.115-55.017Q16.341-54.832 16.634-54.832Q16.880-54.832 17.105-54.949Q17.330-55.066 17.464-55.269Q17.599-55.472 17.599-55.726L17.599-56.558Q17.334-56.558 17.048-56.504Q16.763-56.449 16.492-56.320Q16.220-56.191 16.054-55.984Q15.888-55.777 15.888-55.488M21.357-54.656L19.377-54.656L19.377-54.953Q19.646-54.953 19.814-54.998Q19.982-55.043 19.982-55.215L19.982-57.351Q19.982-57.566 19.919-57.662Q19.857-57.758 19.740-57.779Q19.623-57.801 19.377-57.801L19.377-58.097L20.544-58.183L20.544-57.398Q20.623-57.609 20.775-57.795Q20.927-57.980 21.127-58.082Q21.326-58.183 21.552-58.183Q21.798-58.183 21.990-58.039Q22.181-57.894 22.181-57.664Q22.181-57.508 22.076-57.398Q21.970-57.289 21.814-57.289Q21.658-57.289 21.548-57.398Q21.439-57.508 21.439-57.664Q21.439-57.824 21.544-57.929Q21.220-57.929 21.005-57.701Q20.791-57.472 20.695-57.133Q20.599-56.793 20.599-56.488L20.599-55.215Q20.599-55.047 20.826-55Q21.052-54.953 21.357-54.953L21.357-54.656M22.662-56.410Q22.662-56.890 22.894-57.306Q23.127-57.722 23.537-57.972Q23.947-58.222 24.423-58.222Q25.154-58.222 25.552-57.781Q25.951-57.340 25.951-56.609Q25.951-56.504 25.857-56.480L23.408-56.480L23.408-56.410Q23.408-56 23.529-55.644Q23.650-55.289 23.921-55.072Q24.193-54.855 24.623-54.855Q24.986-54.855 25.283-55.084Q25.580-55.312 25.681-55.664Q25.689-55.711 25.775-55.726L25.857-55.726Q25.951-55.699 25.951-55.617Q25.951-55.609 25.943-55.578Q25.880-55.351 25.742-55.168Q25.603-54.984 25.412-54.851Q25.220-54.718 25.002-54.648Q24.783-54.578 24.544-54.578Q24.173-54.578 23.835-54.715Q23.498-54.851 23.230-55.103Q22.962-55.355 22.812-55.695Q22.662-56.035 22.662-56.410M23.416-56.718L25.377-56.718Q25.377-57.023 25.275-57.314Q25.173-57.605 24.957-57.787Q24.740-57.968 24.423-57.968Q24.123-57.968 23.892-57.781Q23.662-57.593 23.539-57.302Q23.416-57.011 23.416-56.718",[1838],"stroke-width:0.240",[1834,2062],{"fill":1828,"d":2063},"M87.673-16.045v6.136",[1834,2065],{"stroke":1828,"d":2066},"m87.673-7.91 1.6-3.199-1.6 1.2-1.6-1.2",[1822,2068,2070],{"transform":2069},"translate(88.891 43.624)",[1834,2071],{"d":2058,"fill":1824,"stroke":1824,"className":2072,"style":2060},[1838],[1834,2074],{"fill":1828,"d":2075},"M87.673 12.408v6.136",[1834,2077],{"stroke":1828,"d":2078},"m87.673 20.544 1.6-3.2-1.6 1.2-1.6-1.2",[1822,2080,2082],{"transform":2081},"translate(88.891 72.076)",[1834,2083],{"d":2058,"fill":1824,"stroke":1824,"className":2084,"style":2060},[1838],[1822,2086,2090,2093],{"fill":2087,"stroke":2088,"style":2089},"var(--tk-soft-accent)","var(--tk-accent)","stroke-width:1.2",[1834,2091],{"d":2092},"M168.753-2.019h65.462v-19.916h-65.462Z",[1822,2094,2095,2101,2107,2113,2119,2125,2131,2137,2143,2149],{"fill":1824,"stroke":1828},[1822,2096,2098],{"transform":2097},"translate(168.438 46.524)",[1834,2099],{"d":1994,"fill":1824,"stroke":1824,"className":2100,"style":1839},[1838],[1822,2102,2103],{"transform":2097},[1834,2104],{"d":2105,"fill":1824,"stroke":1824,"className":2106,"style":1839},"M10.043-56.906Q10.043-57.104 10.188-57.258Q10.333-57.411 10.549-57.411Q10.685-57.411 10.801-57.343Q10.918-57.275 10.986-57.159Q11.054-57.042 11.054-56.906Q11.054-56.704 10.903-56.552Q10.751-56.401 10.549-56.401Q10.342-56.401 10.193-56.554Q10.043-56.708 10.043-56.906",[1838],[1822,2108,2109],{"transform":2097},[1834,2110],{"d":2111,"fill":1824,"stroke":1824,"className":2112,"style":1839},"M15.517-54.555Q15.121-54.555 14.835-54.759Q14.550-54.964 14.403-55.298Q14.255-55.632 14.255-56.023Q14.255-56.458 14.429-56.919Q14.603-57.381 14.915-57.772Q15.227-58.163 15.637-58.398Q16.048-58.633 16.488-58.633Q16.756-58.633 16.973-58.495Q17.191-58.356 17.323-58.110Q17.362-58.260 17.470-58.356Q17.578-58.453 17.718-58.453Q17.841-58.453 17.925-58.380Q18.008-58.308 18.008-58.185Q18.008-58.132 17.999-58.101L17.380-55.610Q17.323-55.412 17.323-55.214Q17.323-54.819 17.586-54.819Q17.872-54.819 18.006-55.142Q18.140-55.465 18.259-55.970Q18.268-56.001 18.292-56.025Q18.316-56.049 18.351-56.049L18.457-56.049Q18.505-56.049 18.527-56.016Q18.549-55.983 18.549-55.935Q18.435-55.504 18.344-55.251Q18.254-54.999 18.061-54.777Q17.868-54.555 17.569-54.555Q17.261-54.555 17.013-54.726Q16.765-54.898 16.694-55.188Q16.439-54.902 16.143-54.729Q15.846-54.555 15.517-54.555M15.534-54.819Q15.864-54.819 16.174-55.060Q16.483-55.302 16.694-55.618Q16.703-55.627 16.703-55.645L17.200-57.609Q17.143-57.926 16.951-58.150Q16.760-58.374 16.470-58.374Q16.101-58.374 15.802-58.055Q15.503-57.737 15.336-57.328Q15.200-56.981 15.075-56.471Q14.950-55.961 14.950-55.636Q14.950-55.311 15.088-55.065Q15.227-54.819 15.534-54.819",[1838],[1822,2114,2115],{"transform":2097},[1834,2116],{"d":2117,"fill":1824,"stroke":1824,"className":2118,"style":1873},"M20.925-59.458L19.070-59.458L19.070-59.715L21.165-62.422Q21.203-62.469 21.262-62.469L21.394-62.469Q21.435-62.469 21.462-62.441Q21.490-62.414 21.490-62.373L21.490-59.715L22.179-59.715L22.179-59.458L21.490-59.458L21.490-58.910Q21.490-58.737 22.167-58.737L22.167-58.479L20.248-58.479L20.248-58.737Q20.925-58.737 20.925-58.910L20.925-59.458M20.966-61.798L19.360-59.715L20.966-59.715",[1838],[1822,2120,2121],{"transform":2097},[1834,2122],{"d":2123,"fill":1824,"stroke":1824,"className":2124,"style":1839},"M25.791-56.906Q25.791-57.104 25.936-57.258Q26.081-57.411 26.297-57.411Q26.433-57.411 26.549-57.343Q26.666-57.275 26.734-57.159Q26.802-57.042 26.802-56.906Q26.802-56.704 26.651-56.552Q26.499-56.401 26.297-56.401Q26.090-56.401 25.941-56.554Q25.791-56.708 25.791-56.906",[1838],[1822,2126,2127],{"transform":2097},[1834,2128],{"d":2129,"fill":1824,"stroke":1824,"className":2130,"style":1839},"M31.265-54.555Q30.869-54.555 30.583-54.759Q30.298-54.964 30.151-55.298Q30.003-55.632 30.003-56.023Q30.003-56.458 30.177-56.919Q30.351-57.381 30.663-57.772Q30.975-58.163 31.385-58.398Q31.796-58.633 32.236-58.633Q32.504-58.633 32.721-58.495Q32.939-58.356 33.071-58.110Q33.110-58.260 33.218-58.356Q33.326-58.453 33.466-58.453Q33.589-58.453 33.673-58.380Q33.756-58.308 33.756-58.185Q33.756-58.132 33.747-58.101L33.128-55.610Q33.071-55.412 33.071-55.214Q33.071-54.819 33.334-54.819Q33.620-54.819 33.754-55.142Q33.888-55.465 34.007-55.970Q34.016-56.001 34.040-56.025Q34.064-56.049 34.099-56.049L34.205-56.049Q34.253-56.049 34.275-56.016Q34.297-55.983 34.297-55.935Q34.183-55.504 34.092-55.251Q34.002-54.999 33.809-54.777Q33.616-54.555 33.317-54.555Q33.009-54.555 32.761-54.726Q32.513-54.898 32.442-55.188Q32.187-54.902 31.891-54.729Q31.594-54.555 31.265-54.555M31.282-54.819Q31.612-54.819 31.922-55.060Q32.231-55.302 32.442-55.618Q32.451-55.627 32.451-55.645L32.948-57.609Q32.891-57.926 32.699-58.150Q32.508-58.374 32.218-58.374Q31.849-58.374 31.550-58.055Q31.251-57.737 31.084-57.328Q30.948-56.981 30.823-56.471Q30.698-55.961 30.698-55.636Q30.698-55.311 30.836-55.065Q30.975-54.819 31.282-54.819",[1838],[1822,2132,2133],{"transform":2097},[1834,2134],{"d":2135,"fill":1824,"stroke":1824,"className":2136,"style":1873},"M34.921-59.402Q34.921-59.789 35.182-60.060Q35.442-60.331 35.844-60.500L35.671-60.597Q35.422-60.744 35.268-60.962Q35.114-61.180 35.114-61.450Q35.114-61.760 35.300-61.993Q35.486-62.226 35.779-62.348Q36.072-62.469 36.374-62.469Q36.664-62.469 36.956-62.371Q37.247-62.273 37.440-62.068Q37.634-61.863 37.634-61.564Q37.634-61.245 37.424-61.025Q37.215-60.805 36.872-60.644L37.194-60.471Q37.476-60.307 37.650-60.061Q37.824-59.815 37.824-59.510Q37.824-59.147 37.609-58.885Q37.394-58.623 37.057-58.488Q36.720-58.353 36.374-58.353Q36.031-58.353 35.697-58.467Q35.363-58.582 35.142-58.817Q34.921-59.053 34.921-59.402M35.328-59.408Q35.328-59.033 35.658-58.813Q35.987-58.593 36.374-58.593Q36.608-58.593 36.849-58.668Q37.089-58.743 37.253-58.901Q37.417-59.059 37.417-59.302Q37.417-59.472 37.309-59.611Q37.200-59.750 37.039-59.841L36.102-60.357Q35.776-60.219 35.552-59.973Q35.328-59.727 35.328-59.408M35.750-61.262L36.626-60.782Q37.273-61.098 37.273-61.564Q37.273-61.778 37.137-61.935Q37.001-62.091 36.794-62.169Q36.588-62.247 36.374-62.247Q36.052-62.247 35.762-62.107Q35.472-61.968 35.472-61.678Q35.472-61.447 35.750-61.262",[1838],[1822,2138,2139],{"transform":2097},[1834,2140],{"d":2141,"fill":1824,"stroke":1824,"className":2142,"style":1839},"M47.779-55.799L41.973-55.799Q41.894-55.812 41.844-55.862Q41.793-55.913 41.793-55.988Q41.793-56.137 41.973-56.185L47.779-56.185Q47.950-56.133 47.950-55.988Q47.950-55.834 47.779-55.799M47.779-57.627L41.973-57.627Q41.793-57.657 41.793-57.816Q41.793-57.965 41.973-58.013L47.779-58.013Q47.950-57.961 47.950-57.816Q47.950-57.662 47.779-57.627",[1838],[1822,2144,2145],{"transform":2097},[1834,2146],{"d":2147,"fill":1824,"stroke":1824,"className":2148,"style":1839},"M52.665-54.555Q52.269-54.555 51.983-54.759Q51.698-54.964 51.551-55.298Q51.403-55.632 51.403-56.023Q51.403-56.458 51.577-56.919Q51.751-57.381 52.063-57.772Q52.375-58.163 52.785-58.398Q53.196-58.633 53.636-58.633Q53.904-58.633 54.121-58.495Q54.339-58.356 54.471-58.110Q54.510-58.260 54.618-58.356Q54.726-58.453 54.866-58.453Q54.989-58.453 55.073-58.380Q55.156-58.308 55.156-58.185Q55.156-58.132 55.147-58.101L54.528-55.610Q54.471-55.412 54.471-55.214Q54.471-54.819 54.734-54.819Q55.020-54.819 55.154-55.142Q55.288-55.465 55.407-55.970Q55.416-56.001 55.440-56.025Q55.464-56.049 55.499-56.049L55.605-56.049Q55.653-56.049 55.675-56.016Q55.697-55.983 55.697-55.935Q55.583-55.504 55.492-55.251Q55.402-54.999 55.209-54.777Q55.016-54.555 54.717-54.555Q54.409-54.555 54.161-54.726Q53.913-54.898 53.842-55.188Q53.587-54.902 53.291-54.729Q52.994-54.555 52.665-54.555M52.682-54.819Q53.012-54.819 53.322-55.060Q53.631-55.302 53.842-55.618Q53.851-55.627 53.851-55.645L54.348-57.609Q54.291-57.926 54.099-58.150Q53.908-58.374 53.618-58.374Q53.249-58.374 52.950-58.055Q52.651-57.737 52.484-57.328Q52.348-56.981 52.223-56.471Q52.098-55.961 52.098-55.636Q52.098-55.311 52.236-55.065Q52.375-54.819 52.682-54.819",[1838],[1822,2150,2151],{"transform":2097},[1834,2152],{"d":2153,"fill":1824,"stroke":1824,"className":2154,"style":1873},"M58.984-58.479L56.693-58.479L56.693-58.737Q57.569-58.737 57.569-58.910L57.569-61.989Q57.376-61.901 57.144-61.864Q56.913-61.828 56.658-61.828L56.658-62.085Q57.036-62.085 57.357-62.170Q57.677-62.255 57.906-62.469L58.026-62.469Q58.058-62.469 58.083-62.446Q58.108-62.422 58.108-62.384L58.108-58.910Q58.108-58.737 58.984-58.737L58.984-58.479M60.381-58.930Q60.677-58.593 61.407-58.593Q61.665-58.593 61.845-58.721Q62.025-58.848 62.113-59.056Q62.201-59.264 62.201-59.522Q62.201-59.917 61.994-60.188Q61.788-60.459 61.401-60.459L60.935-60.459Q60.871-60.474 60.856-60.536L60.856-60.603Q60.871-60.659 60.935-60.676L61.337-60.700Q61.547-60.700 61.716-60.842Q61.884-60.984 61.977-61.198Q62.069-61.412 62.069-61.628Q62.069-61.916 61.884-62.081Q61.700-62.247 61.407-62.247Q61.146-62.247 60.922-62.179Q60.698-62.112 60.551-61.954Q60.680-61.936 60.759-61.847Q60.839-61.757 60.839-61.628Q60.839-61.491 60.743-61.396Q60.648-61.300 60.507-61.300Q60.373-61.300 60.276-61.397Q60.179-61.494 60.179-61.628Q60.179-61.916 60.370-62.107Q60.560-62.299 60.841-62.384Q61.123-62.469 61.407-62.469Q61.682-62.469 61.983-62.378Q62.283-62.288 62.491-62.099Q62.699-61.910 62.699-61.628Q62.699-61.259 62.453-60.987Q62.207-60.714 61.835-60.585Q62.254-60.492 62.571-60.209Q62.889-59.926 62.889-59.528Q62.889-59.165 62.670-58.899Q62.450-58.634 62.104-58.494Q61.758-58.353 61.407-58.353Q61.184-58.353 60.937-58.401Q60.689-58.450 60.469-58.560Q60.250-58.669 60.118-58.848Q59.986-59.027 59.986-59.282Q59.986-59.431 60.089-59.534Q60.191-59.636 60.340-59.636Q60.490-59.636 60.592-59.534Q60.695-59.431 60.695-59.282Q60.695-59.150 60.606-59.049Q60.516-58.948 60.381-58.930",[1838],[1822,2156,2158,2161],{"stroke":2088,"style":2157},"stroke-width:.8",[1834,2159],{"fill":1828,"d":2160},"m104.944-54.656 61.054 41.224",[1834,2162],{"fill":2088,"stroke":1828,"d":2163},"m168.153-11.977-2.284-4.052.129 2.597-2.457.851",[1822,2165,2166,2169],{"stroke":2088,"style":2157},[1834,2167],{"fill":1828,"d":2168},"m104.944 2.25 60.672-13.656",[1834,2170],{"fill":2088,"stroke":1828,"d":2171},"m168.153-11.977-4.515-1.116 1.978 1.687-1.065 2.371",[1822,2173,2174,2177],{"stroke":2088,"style":2157},[1834,2175],{"fill":1828,"d":2176},"m104.944 30.702 61.054-41.224",[1834,2178],{"fill":2088,"stroke":1828,"d":2179},"m168.153-11.977-4.612.604 2.457.85-.13 2.598",[2181,2182,2185,2186,2201,2202],"figcaption",{"className":2183},[2184],"tikz-cap","Square at each step; multiply the running square into the accumulator where the bit of ",[390,2187,2189],{"className":2188},[393],[390,2190,2192],{"className":2191,"ariaHidden":398},[397],[390,2193,2195,2198],{"className":2194},[402],[390,2196],{"className":2197,"style":487},[406],[390,2199,507],{"className":2200},[411,453]," is ",[390,2203,2205],{"className":2204},[393],[390,2206,2208],{"className":2207,"ariaHidden":398},[397],[390,2209,2211,2214],{"className":2210},[402],[390,2212],{"className":2213,"style":1803},[406],[390,2215,1000],{"className":2216},[411],[381,2218,2219,2220,2310,2311,2408,2409,1413,2442,2451,2452,2467,2468,1413],{},"Each square is one multiplication and there are ",[390,2221,2223],{"className":2222},[393],[390,2224,2226,2301],{"className":2225,"ariaHidden":398},[397],[390,2227,2229,2232,2236,2282,2285,2288,2292,2295,2298],{"className":2228},[402],[390,2230],{"className":2231,"style":650},[406],[390,2233,2235],{"className":2234},[658],"⌊",[390,2237,2239,2245],{"className":2238},[708],[390,2240,2242],{"className":2241},[708],[390,2243,713],{"className":2244,"style":712},[411,588],[390,2246,2248],{"className":2247},[420],[390,2249,2251,2273],{"className":2250},[424,425],[390,2252,2254,2270],{"className":2253},[429],[390,2255,2258],{"className":2256,"style":2257},[433],"height:0.207em;",[390,2259,2261,2264],{"style":2260},"top:-2.4559em;margin-right:0.05em;",[390,2262],{"className":2263,"style":442},[441],[390,2265,2267],{"className":2266},[446,447,448,449],[390,2268,886],{"className":2269},[411,449],[390,2271,459],{"className":2272},[458],[390,2274,2276],{"className":2275},[429],[390,2277,2280],{"className":2278,"style":2279},[433],"height:0.2441em;",[390,2281],{},[390,2283],{"className":2284,"style":717},[572],[390,2286,507],{"className":2287},[411,453],[390,2289,2291],{"className":2290},[666],"⌋",[390,2293],{"className":2294,"style":577},[572],[390,2296,1584],{"className":2297},[581],[390,2299],{"className":2300,"style":577},[572],[390,2302,2304,2307],{"className":2303},[402],[390,2305],{"className":2306,"style":1803},[406],[390,2308,1000],{"className":2309},[411]," of them;\neach bit costs at most one more multiplication into the accumulator. So the total is at\nmost ",[390,2312,2314],{"className":2313},[393],[390,2315,2317,2390],{"className":2316,"ariaHidden":398},[397],[390,2318,2320,2323,2326,2329,2372,2375,2378,2381,2384,2387],{"className":2319},[402],[390,2321],{"className":2322,"style":650},[406],[390,2324,886],{"className":2325},[411],[390,2327,2235],{"className":2328},[658],[390,2330,2332,2338],{"className":2331},[708],[390,2333,2335],{"className":2334},[708],[390,2336,713],{"className":2337,"style":712},[411,588],[390,2339,2341],{"className":2340},[420],[390,2342,2344,2364],{"className":2343},[424,425],[390,2345,2347,2361],{"className":2346},[429],[390,2348,2350],{"className":2349,"style":2257},[433],[390,2351,2352,2355],{"style":2260},[390,2353],{"className":2354,"style":442},[441],[390,2356,2358],{"className":2357},[446,447,448,449],[390,2359,886],{"className":2360},[411,449],[390,2362,459],{"className":2363},[458],[390,2365,2367],{"className":2366},[429],[390,2368,2370],{"className":2369,"style":2279},[433],[390,2371],{},[390,2373],{"className":2374,"style":717},[572],[390,2376,507],{"className":2377},[411,453],[390,2379,2291],{"className":2380},[666],[390,2382],{"className":2383,"style":577},[572],[390,2385,1584],{"className":2386},[581],[390,2388],{"className":2389,"style":577},[572],[390,2391,2393,2396,2399,2402,2405],{"className":2392},[402],[390,2394],{"className":2395,"style":650},[406],[390,2397,701],{"className":2398,"style":700},[411,453],[390,2400,659],{"className":2401},[658],[390,2403,1000],{"className":2404},[411],[390,2406,667],{"className":2407},[666]," multiplications, which is ",[390,2410,2412],{"className":2411},[393],[390,2413,2415],{"className":2414,"ariaHidden":398},[397],[390,2416,2418,2421,2424,2427,2433,2436,2439],{"className":2417},[402],[390,2419],{"className":2420,"style":650},[406],[390,2422,701],{"className":2423,"style":700},[411,453],[390,2425,659],{"className":2426},[658],[390,2428,2430],{"className":2429},[708],[390,2431,713],{"className":2432,"style":712},[411,588],[390,2434],{"className":2435,"style":717},[572],[390,2437,507],{"className":2438},[411,453],[390,2440,667],{"className":2441},[666],[2443,2444,2445],"sup",{},[385,2446,1000],{"href":2447,"ariaDescribedBy":2448,"dataFootnoteRef":376,"id":2450},"#user-content-fn-clrs-modexp",[2449],"footnote-label","user-content-fnref-clrs-modexp","\nReducing modulo ",[390,2453,2455],{"className":2454},[393],[390,2456,2458],{"className":2457,"ariaHidden":398},[397],[390,2459,2461,2464],{"className":2460},[402],[390,2462],{"className":2463,"style":487},[406],[390,2465,454],{"className":2466},[411,453]," after every multiplication keeps every intermediate value below\n",[390,2469,2471],{"className":2470},[393],[390,2472,2474],{"className":2473,"ariaHidden":398},[397],[390,2475,2477,2481],{"className":2476},[402],[390,2478],{"className":2479,"style":2480},[406],"height:0.8141em;",[390,2482,2484,2487],{"className":2483},[411],[390,2485,454],{"className":2486},[411,453],[390,2488,2490],{"className":2489},[420],[390,2491,2493],{"className":2492},[424],[390,2494,2496],{"className":2495},[429],[390,2497,2499],{"className":2498,"style":2480},[433],[390,2500,2501,2504],{"style":559},[390,2502],{"className":2503,"style":442},[441],[390,2505,2507],{"className":2506},[446,447,448,449],[390,2508,886],{"className":2509},[411,449],[2511,2512,2516],"pre",{"className":2513,"code":2514,"language":2515,"meta":376,"style":376},"language-algorithm shiki shiki-themes Vesper Light - Orange Boost (Quick Open Adjusted) vesper","caption: $\\textsc{ModPow}(a, n, m)$ — iterative bit-scan, returns $a^n \\bmod m$\n$result \\gets 1$\n$a \\gets a \\bmod m$\nwhile $n > 0$ do\n  if $n \\bmod 2 = 1$ then         \u002F\u002F low bit set\n    $result \\gets (result \\cdot a) \\bmod m$\n  $a \\gets (a \\cdot a) \\bmod m$    \u002F\u002F square for next bit\n  $n \\gets \\lfloor n \u002F 2 \\rfloor$\nreturn $result$\n","algorithm",[2517,2518,2519,2525,2530,2535,2540,2545,2550,2555,2560],"code",{"__ignoreMap":376},[390,2520,2522],{"class":2521,"line":6},"line",[390,2523,2524],{},"caption: $\\textsc{ModPow}(a, n, m)$ — iterative bit-scan, returns $a^n \\bmod m$\n",[390,2526,2527],{"class":2521,"line":18},[390,2528,2529],{},"$result \\gets 1$\n",[390,2531,2532],{"class":2521,"line":24},[390,2533,2534],{},"$a \\gets a \\bmod m$\n",[390,2536,2537],{"class":2521,"line":73},[390,2538,2539],{},"while $n > 0$ do\n",[390,2541,2542],{"class":2521,"line":102},[390,2543,2544],{},"  if $n \\bmod 2 = 1$ then         \u002F\u002F low bit set\n",[390,2546,2547],{"class":2521,"line":108},[390,2548,2549],{},"    $result \\gets (result \\cdot a) \\bmod m$\n",[390,2551,2552],{"class":2521,"line":116},[390,2553,2554],{},"  $a \\gets (a \\cdot a) \\bmod m$    \u002F\u002F square for next bit\n",[390,2556,2557],{"class":2521,"line":196},[390,2558,2559],{},"  $n \\gets \\lfloor n \u002F 2 \\rfloor$\n",[390,2561,2562],{"class":2521,"line":202},[390,2563,2564],{},"return $result$\n",[381,2566,2567,2568,2645,2646,2690,2691,2767,2768,1413],{},"Running this on ",[390,2569,2571],{"className":2570},[393],[390,2572,2574,2635],{"className":2573,"ariaHidden":398},[397],[390,2575,2577,2580,2614,2617,2620,2629,2632],{"className":2576},[402],[390,2578],{"className":2579,"style":2480},[406],[390,2581,2583,2587],{"className":2582},[411],[390,2584,2586],{"className":2585},[411],"3",[390,2588,2590],{"className":2589},[420],[390,2591,2593],{"className":2592},[424],[390,2594,2596],{"className":2595},[429],[390,2597,2599],{"className":2598,"style":2480},[433],[390,2600,2601,2604],{"style":559},[390,2602],{"className":2603,"style":442},[441],[390,2605,2607],{"className":2606},[446,447,448,449],[390,2608,2610],{"className":2609},[411,449],[390,2611,2613],{"className":2612},[411,449],"13",[390,2615],{"className":2616,"style":573},[572],[390,2618],{"className":2619,"style":577},[572],[390,2621,2623],{"className":2622},[581],[390,2624,2626],{"className":2625},[411],[390,2627,589],{"className":2628},[411,588],[390,2630],{"className":2631,"style":573},[572],[390,2633],{"className":2634,"style":577},[572],[390,2636,2638,2641],{"className":2637},[402],[390,2639],{"className":2640,"style":1803},[406],[390,2642,2644],{"className":2643},[411],"7"," makes the bit-scan concrete: the running square is\n",[390,2647,2649],{"className":2648},[393],[390,2650,2652],{"className":2651,"ariaHidden":398},[397],[390,2653,2655,2659,2662,2665,2668,2671,2674,2677,2681,2684,2687],{"className":2654},[402],[390,2656],{"className":2657,"style":2658},[406],"height:0.8389em;vertical-align:-0.1944em;",[390,2660,2586],{"className":2661},[411],[390,2663,993],{"className":2664},[992],[390,2666],{"className":2667,"style":717},[572],[390,2669,886],{"className":2670},[411],[390,2672,993],{"className":2673},[992],[390,2675],{"className":2676,"style":717},[572],[390,2678,2680],{"className":2679},[411],"4",[390,2682,993],{"className":2683},[992],[390,2685],{"className":2686,"style":717},[572],[390,2688,886],{"className":2689},[411]," across the bits of ",[390,2692,2694],{"className":2693},[393],[390,2695,2697,2715],{"className":2696,"ariaHidden":398},[397],[390,2698,2700,2703,2706,2709,2712],{"className":2699},[402],[390,2701],{"className":2702,"style":1803},[406],[390,2704,2613],{"className":2705},[411],[390,2707],{"className":2708,"style":771},[572],[390,2710,776],{"className":2711},[775],[390,2713],{"className":2714,"style":771},[572],[390,2716,2718,2722,2726],{"className":2717},[402],[390,2719],{"className":2720,"style":2721},[406],"height:0.7944em;vertical-align:-0.15em;",[390,2723,2725],{"className":2724},[411],"110",[390,2727,2729,2732],{"className":2728},[411],[390,2730,1000],{"className":2731},[411],[390,2733,2735],{"className":2734},[420],[390,2736,2738,2759],{"className":2737},[424,425],[390,2739,2741,2756],{"className":2740},[429],[390,2742,2745],{"className":2743,"style":2744},[433],"height:0.3011em;",[390,2746,2747,2750],{"style":437},[390,2748],{"className":2749,"style":442},[441],[390,2751,2753],{"className":2752},[446,447,448,449],[390,2754,886],{"className":2755},[411,449],[390,2757,459],{"className":2758},[458],[390,2760,2762],{"className":2761},[429],[390,2763,2765],{"className":2764,"style":466},[433],[390,2766],{},", and the accumulator picks up a factor at\neach set bit, finishing at ",[390,2769,2771],{"className":2770},[393],[390,2772,2774],{"className":2773,"ariaHidden":398},[397],[390,2775,2777,2780],{"className":2776},[402],[390,2778],{"className":2779,"style":1803},[406],[390,2781,2586],{"className":2782},[411],[1809,2784,2786,3048],{"className":2785},[1812,1813],[1815,2787,2791],{"xmlns":1817,"width":2788,"height":2789,"viewBox":2790},"253.165","175.751","-75 -75 189.874 131.813",[1822,2792,2793,2800,2840,2856,2863,2866,2873,2880,2897,2903,2910,2917,2924,2930,2936,2943,2958,2965,2971,2977,2992,2998,3001],{"stroke":1824,"style":1825},[1822,2794,2796],{"transform":2795},"translate(-5.653 3.125)",[1834,2797],{"d":2798,"fill":1824,"stroke":1824,"className":2799,"style":1839},"M-46.897-64.100L-47.187-64.100L-47.187-69.426Q-47.187-69.668-47.257-69.776Q-47.328-69.883-47.462-69.907Q-47.596-69.932-47.882-69.932L-47.882-70.248L-46.510-70.345L-46.510-67.545Q-46.264-67.796-45.930-67.936Q-45.596-68.077-45.245-68.077Q-44.845-68.077-44.482-67.914Q-44.120-67.752-43.863-67.473Q-43.606-67.194-43.456-66.816Q-43.307-66.438-43.307-66.042Q-43.307-65.480-43.584-65.014Q-43.861-64.548-44.335-64.274Q-44.810-63.999-45.359-63.999Q-45.724-63.999-46.045-64.168Q-46.365-64.337-46.585-64.632L-46.897-64.100M-46.484-67.132L-46.484-65.001Q-46.326-64.667-46.042-64.465Q-45.759-64.263-45.416-64.263Q-44.726-64.263-44.423-64.783Q-44.120-65.304-44.120-66.042Q-44.120-66.767-44.386-67.293Q-44.652-67.818-45.315-67.818Q-45.675-67.818-45.990-67.633Q-46.304-67.449-46.484-67.132M-40.701-64.100L-42.687-64.100L-42.687-64.416Q-42.380-64.416-42.188-64.469Q-41.997-64.522-41.997-64.711L-41.997-67.159Q-41.997-67.405-42.063-67.510Q-42.129-67.616-42.254-67.640Q-42.380-67.664-42.652-67.664L-42.652-67.980L-41.320-68.077L-41.320-64.711Q-41.320-64.517-41.156-64.467Q-40.991-64.416-40.701-64.416L-40.701-64.100M-42.300-69.624Q-42.300-69.830-42.151-69.980Q-42.002-70.129-41.799-70.129Q-41.668-70.129-41.551-70.059Q-41.435-69.989-41.364-69.872Q-41.294-69.756-41.294-69.624Q-41.294-69.422-41.444-69.272Q-41.593-69.123-41.799-69.123Q-42.002-69.123-42.151-69.272Q-42.300-69.422-42.300-69.624M-39.492-65.172L-39.492-67.664L-40.257-67.664L-40.257-67.923Q-39.853-67.923-39.587-68.189Q-39.321-68.455-39.200-68.855Q-39.079-69.255-39.079-69.637L-38.789-69.637L-38.789-67.980L-37.502-67.980L-37.502-67.664L-38.789-67.664L-38.789-65.207Q-38.789-64.838-38.664-64.564Q-38.539-64.289-38.214-64.289Q-37.915-64.289-37.776-64.583Q-37.638-64.878-37.638-65.207L-37.638-65.730L-37.352-65.730L-37.352-65.172Q-37.352-64.895-37.462-64.623Q-37.572-64.350-37.785-64.175Q-37.998-63.999-38.279-63.999Q-38.640-63.999-38.912-64.137Q-39.185-64.276-39.339-64.539Q-39.492-64.803-39.492-65.172",[1838],[1822,2801,2802,2809,2815,2822,2828,2834],{"stroke":1828},[1822,2803,2805],{"transform":2804},"translate(17.125 4.837)",[1834,2806],{"d":2807,"fill":1824,"stroke":1824,"className":2808,"style":1839},"M-46.510-63.999Q-46.906-63.999-47.192-64.203Q-47.477-64.408-47.624-64.742Q-47.772-65.076-47.772-65.467Q-47.772-65.902-47.598-66.363Q-47.424-66.825-47.112-67.216Q-46.800-67.607-46.390-67.842Q-45.979-68.077-45.539-68.077Q-45.271-68.077-45.054-67.939Q-44.836-67.800-44.704-67.554Q-44.665-67.704-44.557-67.800Q-44.449-67.897-44.309-67.897Q-44.186-67.897-44.102-67.824Q-44.019-67.752-44.019-67.629Q-44.019-67.576-44.028-67.545L-44.647-65.054Q-44.704-64.856-44.704-64.658Q-44.704-64.263-44.441-64.263Q-44.155-64.263-44.021-64.586Q-43.887-64.909-43.768-65.414Q-43.759-65.445-43.735-65.469Q-43.711-65.493-43.676-65.493L-43.570-65.493Q-43.522-65.493-43.500-65.460Q-43.478-65.427-43.478-65.379Q-43.592-64.948-43.683-64.695Q-43.773-64.443-43.966-64.221Q-44.159-63.999-44.458-63.999Q-44.766-63.999-45.014-64.170Q-45.262-64.342-45.333-64.632Q-45.588-64.346-45.884-64.173Q-46.181-63.999-46.510-63.999M-46.493-64.263Q-46.163-64.263-45.853-64.504Q-45.544-64.746-45.333-65.062Q-45.324-65.071-45.324-65.089L-44.827-67.053Q-44.884-67.370-45.076-67.594Q-45.267-67.818-45.557-67.818Q-45.926-67.818-46.225-67.499Q-46.524-67.181-46.691-66.772Q-46.827-66.425-46.952-65.915Q-47.077-65.405-47.077-65.080Q-47.077-64.755-46.939-64.509Q-46.800-64.263-46.493-64.263",[1838],[1822,2810,2811],{"transform":2804},[1834,2812],{"d":2813,"fill":1824,"stroke":1824,"className":2814,"style":1873},"M-40.190-67.924L-42.800-67.924L-42.800-68.109Q-42.794-68.132-42.774-68.158L-41.623-69.213Q-41.283-69.524-41.103-69.710Q-40.922-69.896-40.777-70.156Q-40.632-70.417-40.632-70.713Q-40.632-70.986-40.758-71.201Q-40.884-71.416-41.104-71.536Q-41.324-71.656-41.599-71.656Q-41.775-71.656-41.945-71.599Q-42.115-71.542-42.247-71.435Q-42.378-71.328-42.458-71.170Q-42.370-71.170-42.292-71.126Q-42.214-71.082-42.170-71.006Q-42.127-70.930-42.127-70.833Q-42.127-70.693-42.223-70.596Q-42.320-70.499-42.463-70.499Q-42.601-70.499-42.701-70.599Q-42.800-70.698-42.800-70.833Q-42.800-71.158-42.610-71.406Q-42.419-71.653-42.116-71.784Q-41.813-71.914-41.497-71.914Q-41.116-71.914-40.773-71.779Q-40.430-71.645-40.216-71.372Q-40.002-71.100-40.002-70.713Q-40.002-70.438-40.127-70.211Q-40.252-69.984-40.432-69.812Q-40.612-69.641-40.937-69.401Q-41.262-69.160-41.347-69.093L-42.103-68.489L-41.570-68.489Q-41.081-68.489-40.750-68.497Q-40.419-68.504-40.404-68.519Q-40.345-68.589-40.313-68.724Q-40.281-68.859-40.249-69.070L-40.002-69.070",[1838],[1822,2816,2817],{"transform":2804},[1834,2818],{"d":2819,"fill":1824,"stroke":1824,"className":2820,"style":2821},"M-38.711-70.827Q-38.711-70.922-38.669-71.005L-38.230-72.087Q-38.186-72.191-38.186-72.287Q-38.186-72.465-38.325-72.465Q-38.527-72.465-38.680-72.277Q-38.833-72.089-38.896-71.852Q-38.903-71.816-38.955-71.806L-39.060-71.806Q-39.121-71.823-39.121-71.877Q-39.121-71.881-39.116-71.906Q-39.040-72.199-38.817-72.425Q-38.593-72.650-38.310-72.650Q-38.090-72.650-37.921-72.537Q-37.751-72.423-37.751-72.211Q-37.751-72.121-37.790-72.030L-38.230-70.951Q-38.276-70.854-38.276-70.751Q-38.276-70.570-38.134-70.570Q-37.932-70.570-37.778-70.762Q-37.624-70.954-37.565-71.186Q-37.558-71.220-37.509-71.232L-37.404-71.232Q-37.341-71.210-37.341-71.161Q-37.341-71.156-37.346-71.132Q-37.377-70.998-37.456-70.860Q-37.534-70.722-37.634-70.620Q-37.734-70.519-37.869-70.452Q-38.005-70.385-38.149-70.385Q-38.366-70.385-38.538-70.502Q-38.711-70.619-38.711-70.827M-38.125-73.461Q-38.125-73.586-38.024-73.681Q-37.924-73.776-37.800-73.776Q-37.705-73.776-37.640-73.714Q-37.575-73.651-37.575-73.556Q-37.575-73.432-37.675-73.337Q-37.775-73.241-37.900-73.241Q-37.990-73.241-38.057-73.304Q-38.125-73.366-38.125-73.461",[1838],"stroke-width:0.150",[1822,2823,2824],{"transform":2804},[1834,2825],{"d":2826,"fill":1824,"stroke":1824,"className":2827,"style":1839},"M-30.941-64.100L-33.028-64.100L-33.028-64.416Q-32.721-64.416-32.529-64.469Q-32.338-64.522-32.338-64.711L-32.338-67.159Q-32.338-67.400-32.409-67.508Q-32.479-67.616-32.613-67.640Q-32.747-67.664-33.028-67.664L-33.028-67.980L-31.688-68.077L-31.688-67.242Q-31.490-67.620-31.130-67.849Q-30.769-68.077-30.348-68.077Q-29.302-68.077-29.117-67.268Q-28.915-67.638-28.557-67.857Q-28.199-68.077-27.781-68.077Q-27.157-68.077-26.832-67.783Q-26.507-67.488-26.507-66.864L-26.507-64.711Q-26.507-64.522-26.313-64.469Q-26.120-64.416-25.812-64.416L-25.812-64.100L-27.900-64.100L-27.900-64.416Q-27.592-64.416-27.399-64.469Q-27.205-64.522-27.205-64.711L-27.205-66.829Q-27.205-67.260-27.333-67.539Q-27.460-67.818-27.847-67.818Q-28.190-67.818-28.473-67.629Q-28.757-67.440-28.913-67.128Q-29.069-66.816-29.069-66.469L-29.069-64.711Q-29.069-64.522-28.878-64.469Q-28.686-64.416-28.379-64.416L-28.379-64.100L-30.466-64.100L-30.466-64.416Q-30.154-64.416-29.963-64.469Q-29.772-64.522-29.772-64.711L-29.772-66.829Q-29.772-67.088-29.816-67.310Q-29.860-67.532-30.005-67.675Q-30.150-67.818-30.409-67.818Q-30.945-67.818-31.290-67.411Q-31.635-67.005-31.635-66.469L-31.635-64.711Q-31.635-64.522-31.442-64.469Q-31.248-64.416-30.941-64.416L-30.941-64.100M-25.364-66.007Q-25.364-66.574-25.092-67.062Q-24.819-67.550-24.349-67.842Q-23.879-68.134-23.312-68.134Q-22.890-68.134-22.514-67.965Q-22.139-67.796-21.862-67.504Q-21.585-67.211-21.427-66.816Q-21.268-66.420-21.268-66.007Q-21.268-65.458-21.547-64.996Q-21.827-64.535-22.295-64.267Q-22.763-63.999-23.312-63.999Q-23.866-63.999-24.336-64.267Q-24.806-64.535-25.085-64.996Q-25.364-65.458-25.364-66.007M-23.312-64.289Q-22.815-64.289-22.538-64.550Q-22.262-64.812-22.169-65.216Q-22.077-65.621-22.077-66.117Q-22.077-66.592-22.176-66.981Q-22.275-67.370-22.547-67.620Q-22.820-67.871-23.312-67.871Q-24.024-67.871-24.287-67.376Q-24.551-66.882-24.551-66.117Q-24.551-65.317-24.296-64.803Q-24.041-64.289-23.312-64.289",[1838],[1822,2829,2830],{"transform":2804},[1834,2831],{"d":2832,"fill":1824,"stroke":1824,"className":2833,"style":1839},"M-18.487-63.999Q-19.032-63.999-19.476-64.282Q-19.920-64.566-20.174-65.038Q-20.429-65.511-20.429-66.042Q-20.429-66.596-20.153-67.062Q-19.876-67.528-19.403-67.802Q-18.931-68.077-18.386-68.077Q-18.052-68.077-17.749-67.945Q-17.445-67.813-17.226-67.576L-17.226-69.426Q-17.226-69.668-17.296-69.776Q-17.366-69.883-17.500-69.907Q-17.634-69.932-17.920-69.932L-17.920-70.248L-16.553-70.345L-16.553-64.917Q-16.553-64.680-16.483-64.572Q-16.413-64.465-16.277-64.441Q-16.140-64.416-15.859-64.416L-15.859-64.100L-17.252-63.999L-17.252-64.548Q-17.503-64.285-17.821-64.142Q-18.140-63.999-18.487-63.999M-18.425-64.263Q-18.056-64.263-17.747-64.474Q-17.437-64.684-17.252-65.027L-17.252-67.159Q-17.424-67.462-17.705-67.640Q-17.986-67.818-18.324-67.818Q-19.014-67.818-19.318-67.297Q-19.621-66.776-19.621-66.034Q-19.621-65.313-19.351-64.788Q-19.080-64.263-18.425-64.263",[1838],[1822,2835,2836],{"transform":2804},[1834,2837],{"d":2838,"fill":1824,"stroke":1824,"className":2839,"style":1839},"M-11.407-64.342Q-11.407-64.979-11.251-65.625Q-11.095-66.271-10.803-66.877Q-10.511-67.484-10.102-68.033L-9.285-69.141L-10.313-69.141Q-11.957-69.141-12.005-69.097Q-12.111-68.969-12.229-68.266L-12.515-68.266L-12.220-70.182L-11.930-70.182L-11.930-70.156Q-11.930-69.993-11.366-69.945Q-10.801-69.896-10.256-69.896L-8.538-69.896L-8.538-69.690Q-8.538-69.672-8.540-69.663Q-8.542-69.655-8.547-69.646L-9.834-67.897Q-10.085-67.545-10.232-67.119Q-10.379-66.693-10.445-66.229Q-10.511-65.766-10.524-65.355Q-10.537-64.944-10.537-64.342Q-10.537-64.162-10.663-64.032Q-10.788-63.902-10.968-63.902Q-11.087-63.902-11.190-63.959Q-11.293-64.017-11.350-64.120Q-11.407-64.223-11.407-64.342",[1838],[1822,2841,2843,2850],{"stroke":1828,"fontFamily":2842,"fontSize":1829},"cmr9",[1822,2844,2846],{"transform":2845},"translate(82.332 3.125)",[1834,2847],{"d":2848,"fill":1824,"stroke":1824,"className":2849,"style":1839},"M-45.746-64.100L-47.833-64.100L-47.833-64.416Q-47.526-64.416-47.334-64.469Q-47.143-64.522-47.143-64.711L-47.143-67.159Q-47.143-67.400-47.214-67.508Q-47.284-67.616-47.418-67.640Q-47.552-67.664-47.833-67.664L-47.833-67.980L-46.493-68.077L-46.493-67.242Q-46.295-67.620-45.935-67.849Q-45.574-68.077-45.153-68.077Q-44.107-68.077-43.922-67.268Q-43.720-67.638-43.362-67.857Q-43.004-68.077-42.586-68.077Q-41.962-68.077-41.637-67.783Q-41.312-67.488-41.312-66.864L-41.312-64.711Q-41.312-64.522-41.118-64.469Q-40.925-64.416-40.617-64.416L-40.617-64.100L-42.705-64.100L-42.705-64.416Q-42.397-64.416-42.204-64.469Q-42.010-64.522-42.010-64.711L-42.010-66.829Q-42.010-67.260-42.138-67.539Q-42.265-67.818-42.652-67.818Q-42.995-67.818-43.278-67.629Q-43.562-67.440-43.718-67.128Q-43.874-66.816-43.874-66.469L-43.874-64.711Q-43.874-64.522-43.683-64.469Q-43.491-64.416-43.184-64.416L-43.184-64.100L-45.271-64.100L-45.271-64.416Q-44.959-64.416-44.768-64.469Q-44.577-64.522-44.577-64.711L-44.577-66.829Q-44.577-67.088-44.621-67.310Q-44.665-67.532-44.810-67.675Q-44.955-67.818-45.214-67.818Q-45.750-67.818-46.095-67.411Q-46.440-67.005-46.440-66.469L-46.440-64.711Q-46.440-64.522-46.247-64.469Q-46.053-64.416-45.746-64.416",[1838],[1822,2851,2852],{"transform":2845},[1834,2853],{"d":2854,"fill":1824,"stroke":1824,"className":2855,"style":1839},"M-39.691-65.172L-39.691-67.159Q-39.691-67.400-39.762-67.508Q-39.832-67.616-39.966-67.640Q-40.100-67.664-40.381-67.664L-40.381-67.980L-38.988-68.077L-38.988-65.207Q-38.988-64.829-38.942-64.643Q-38.896-64.456-38.724-64.359Q-38.553-64.263-38.197-64.263Q-37.863-64.263-37.624-64.454Q-37.384-64.645-37.259-64.948Q-37.134-65.251-37.134-65.568L-37.134-67.159Q-37.134-67.400-37.204-67.508Q-37.274-67.616-37.408-67.640Q-37.542-67.664-37.828-67.664L-37.828-67.980L-36.430-68.077L-36.430-64.917Q-36.430-64.680-36.360-64.572Q-36.290-64.465-36.156-64.441Q-36.022-64.416-35.741-64.416L-35.741-64.100L-37.107-63.999L-37.107-64.720Q-37.274-64.394-37.580-64.197Q-37.885-63.999-38.241-63.999Q-38.900-63.999-39.296-64.269Q-39.691-64.539-39.691-65.172M-33.174-64.100L-35.235-64.100L-35.235-64.416Q-34.928-64.416-34.736-64.469Q-34.545-64.522-34.545-64.711L-34.545-69.426Q-34.545-69.668-34.616-69.776Q-34.686-69.883-34.820-69.907Q-34.954-69.932-35.235-69.932L-35.235-70.248L-33.868-70.345L-33.868-64.711Q-33.868-64.522-33.675-64.469Q-33.482-64.416-33.174-64.416L-33.174-64.100M-32.040-65.172L-32.040-67.664L-32.805-67.664L-32.805-67.923Q-32.401-67.923-32.135-68.189Q-31.869-68.455-31.748-68.855Q-31.627-69.255-31.627-69.637L-31.337-69.637L-31.337-67.980L-30.050-67.980L-30.050-67.664L-31.337-67.664L-31.337-65.207Q-31.337-64.838-31.212-64.564Q-31.087-64.289-30.762-64.289Q-30.463-64.289-30.324-64.583Q-30.186-64.878-30.186-65.207L-30.186-65.730L-29.900-65.730L-29.900-65.172Q-29.900-64.895-30.010-64.623Q-30.120-64.350-30.333-64.175Q-30.546-63.999-30.827-63.999Q-31.188-63.999-31.460-64.137Q-31.733-64.276-31.887-64.539Q-32.040-64.803-32.040-65.172M-27.839-64.605Q-27.839-64.803-27.688-64.955Q-27.536-65.106-27.334-65.106Q-27.132-65.106-26.980-64.959Q-26.828-64.812-26.828-64.605Q-26.828-64.394-26.980-64.247Q-27.132-64.100-27.334-64.100Q-27.536-64.100-27.688-64.252Q-27.839-64.403-27.839-64.605M-27.479-65.911L-27.479-66.376Q-27.479-67.106-27.154-67.743Q-26.947-68.156-26.622-68.481Q-26.354-68.749-26.354-69.228Q-26.354-69.598-26.448-69.802Q-26.543-70.006-26.754-70.094Q-26.965-70.182-27.334-70.182Q-27.677-70.182-27.984-70.048Q-28.292-69.914-28.459-69.655L-28.432-69.655Q-28.252-69.655-28.127-69.529Q-28.002-69.404-28.002-69.220Q-28.002-69.039-28.127-68.910Q-28.252-68.780-28.432-68.780Q-28.551-68.780-28.654-68.837Q-28.758-68.894-28.815-68.998Q-28.872-69.101-28.872-69.220Q-28.872-69.782-28.395-70.114Q-27.918-70.446-27.334-70.446Q-26.877-70.446-26.479-70.336Q-26.081-70.226-25.813-69.949Q-25.545-69.672-25.545-69.220Q-25.545-68.952-25.673-68.703Q-25.800-68.455-26.020-68.301Q-26.543-67.958-26.866-67.444Q-27.189-66.930-27.189-66.341L-27.189-65.911Q-27.189-65.875-27.222-65.851Q-27.255-65.827-27.281-65.827L-27.387-65.827Q-27.417-65.827-27.448-65.853Q-27.479-65.880-27.479-65.911",[1838],[1822,2857,2859],{"transform":2858},"translate(128.075 3.125)",[1834,2860],{"d":2861,"fill":1824,"stroke":1824,"className":2862,"style":1839},"M-45.649-64.100L-47.882-64.100L-47.882-64.416Q-47.569-64.416-47.378-64.469Q-47.187-64.522-47.187-64.711L-47.187-67.159Q-47.187-67.400-47.257-67.508Q-47.328-67.616-47.462-67.640Q-47.596-67.664-47.882-67.664L-47.882-67.980L-46.568-68.077L-46.568-67.216Q-46.405-67.607-46.137-67.842Q-45.869-68.077-45.478-68.077Q-45.205-68.077-44.990-67.914Q-44.775-67.752-44.775-67.493Q-44.775-67.317-44.893-67.198Q-45.012-67.079-45.188-67.079Q-45.368-67.079-45.486-67.198Q-45.605-67.317-45.605-67.493Q-45.605-67.708-45.451-67.818L-45.469-67.818Q-45.847-67.818-46.080-67.556Q-46.313-67.295-46.412-66.908Q-46.510-66.521-46.510-66.161L-46.510-64.711Q-46.510-64.522-46.253-64.469Q-45.996-64.416-45.649-64.416L-45.649-64.100M-42.204-63.999Q-42.762-63.999-43.234-64.282Q-43.707-64.566-43.981-65.043Q-44.256-65.519-44.256-66.073Q-44.256-66.469-44.113-66.844Q-43.970-67.220-43.713-67.508Q-43.456-67.796-43.098-67.965Q-42.740-68.134-42.336-68.134Q-41.791-68.134-41.419-67.897Q-41.048-67.660-40.861-67.242Q-40.674-66.825-40.674-66.288Q-40.674-66.236-40.699-66.198Q-40.723-66.161-40.771-66.161L-43.443-66.161L-43.443-66.082Q-43.443-65.335-43.131-64.812Q-42.819-64.289-42.120-64.289Q-41.716-64.289-41.395-64.546Q-41.074-64.803-40.951-65.207Q-40.934-65.287-40.850-65.287L-40.771-65.287Q-40.732-65.287-40.703-65.256Q-40.674-65.225-40.674-65.181L-40.674-65.146Q-40.780-64.803-41.002-64.544Q-41.224-64.285-41.538-64.142Q-41.852-63.999-42.204-63.999M-43.434-66.412L-41.320-66.412Q-41.320-66.680-41.373-66.926Q-41.426-67.172-41.547-67.394Q-41.668-67.616-41.865-67.743Q-42.063-67.871-42.336-67.871Q-42.678-67.871-42.931-67.646Q-43.184-67.422-43.309-67.084Q-43.434-66.746-43.434-66.412M-40.094-64.082L-40.094-65.524Q-40.094-65.555-40.066-65.579Q-40.037-65.603-40.007-65.603L-39.897-65.603Q-39.861-65.603-39.840-65.581Q-39.818-65.559-39.809-65.524Q-39.549-64.263-38.583-64.263Q-38.156-64.263-37.862-64.447Q-37.568-64.632-37.568-65.036Q-37.568-65.330-37.798-65.526Q-38.029-65.722-38.341-65.783L-38.943-65.902Q-39.409-65.990-39.752-66.273Q-40.094-66.557-40.094-66.996Q-40.094-67.589-39.657-67.862Q-39.220-68.134-38.583-68.134Q-38.104-68.134-37.757-67.888L-37.506-68.112Q-37.449-68.134-37.449-68.134L-37.396-68.134Q-37.370-68.134-37.337-68.108Q-37.304-68.081-37.304-68.051L-37.304-66.891Q-37.304-66.860-37.339-66.833Q-37.374-66.807-37.396-66.807L-37.506-66.807Q-37.528-66.807-37.561-66.836Q-37.594-66.864-37.594-66.891Q-37.594-67.356-37.860-67.627Q-38.126-67.897-38.591-67.897Q-38.996-67.897-39.299-67.752Q-39.602-67.607-39.602-67.251Q-39.602-67.005-39.385-66.851Q-39.167-66.697-38.890-66.640L-38.262-66.513Q-37.945-66.451-37.675-66.284Q-37.405-66.117-37.238-65.851Q-37.071-65.585-37.071-65.269Q-37.071-64.627-37.497-64.313Q-37.924-63.999-38.583-63.999Q-38.855-63.999-39.121-64.093Q-39.387-64.188-39.567-64.377L-39.888-64.038Q-39.905-63.999-39.954-63.999L-40.007-63.999Q-40.028-63.999-40.061-64.027Q-40.094-64.056-40.094-64.082M-35.770-65.172L-35.770-67.159Q-35.770-67.400-35.840-67.508Q-35.911-67.616-36.045-67.640Q-36.179-67.664-36.460-67.664L-36.460-67.980L-35.067-68.077L-35.067-65.207Q-35.067-64.829-35.021-64.643Q-34.975-64.456-34.803-64.359Q-34.632-64.263-34.276-64.263Q-33.942-64.263-33.703-64.454Q-33.463-64.645-33.338-64.948Q-33.213-65.251-33.213-65.568L-33.213-67.159Q-33.213-67.400-33.283-67.508Q-33.353-67.616-33.487-67.640Q-33.621-67.664-33.907-67.664L-33.907-67.980L-32.509-68.077L-32.509-64.917Q-32.509-64.680-32.439-64.572Q-32.369-64.465-32.235-64.441Q-32.101-64.416-31.819-64.416L-31.819-64.100L-33.186-63.999L-33.186-64.720Q-33.353-64.394-33.659-64.197Q-33.964-63.999-34.320-63.999Q-34.979-63.999-35.375-64.269Q-35.770-64.539-35.770-65.172M-29.253-64.100L-31.314-64.100L-31.314-64.416Q-31.007-64.416-30.815-64.469Q-30.624-64.522-30.624-64.711L-30.624-69.426Q-30.624-69.668-30.694-69.776Q-30.765-69.883-30.899-69.907Q-31.033-69.932-31.314-69.932L-31.314-70.248L-29.947-70.345L-29.947-64.711Q-29.947-64.522-29.754-64.469Q-29.561-64.416-29.253-64.416L-29.253-64.100M-28.119-65.172L-28.119-67.664L-28.884-67.664L-28.884-67.923Q-28.480-67.923-28.214-68.189Q-27.948-68.455-27.827-68.855Q-27.706-69.255-27.706-69.637L-27.416-69.637L-27.416-67.980L-26.129-67.980L-26.129-67.664L-27.416-67.664L-27.416-65.207Q-27.416-64.838-27.291-64.564Q-27.166-64.289-26.840-64.289Q-26.542-64.289-26.403-64.583Q-26.265-64.878-26.265-65.207L-26.265-65.730L-25.979-65.730L-25.979-65.172Q-25.979-64.895-26.089-64.623Q-26.199-64.350-26.412-64.175Q-26.625-63.999-26.906-63.999Q-27.267-63.999-27.539-64.137Q-27.812-64.276-27.965-64.539Q-28.119-64.803-28.119-65.172",[1838],[1834,2864],{"fill":1828,"d":2865,"style":2157},"M-65.203-52.72h176.407",[1822,2867,2869],{"transform":2868},"translate(-2.312 28.507)",[1834,2870],{"d":2871,"fill":1824,"stroke":1824,"className":2872,"style":1839},"M-44.225-64.100L-47.257-64.100L-47.257-64.416Q-46.106-64.416-46.106-64.711L-46.106-69.435Q-46.594-69.202-47.315-69.202L-47.315-69.518Q-46.185-69.518-45.623-70.094L-45.478-70.094Q-45.443-70.094-45.410-70.061Q-45.377-70.028-45.377-69.993L-45.377-64.711Q-45.377-64.416-44.225-64.416",[1838],[1822,2874,2876],{"transform":2875},"translate(34.676 28.507)",[1834,2877],{"d":2878,"fill":1824,"stroke":1824,"className":2879,"style":1839},"M-47.231-64.821L-47.275-64.821Q-47.073-64.504-46.686-64.346Q-46.299-64.188-45.873-64.188Q-45.337-64.188-45.098-64.623Q-44.858-65.058-44.858-65.638Q-44.858-66.218-45.104-66.658Q-45.350-67.097-45.882-67.097L-46.502-67.097Q-46.528-67.097-46.561-67.126Q-46.594-67.154-46.594-67.176L-46.594-67.277Q-46.594-67.308-46.565-67.332Q-46.537-67.356-46.502-67.356L-45.983-67.396Q-45.517-67.396-45.271-67.868Q-45.025-68.341-45.025-68.859Q-45.025-69.286-45.238-69.560Q-45.451-69.835-45.873-69.835Q-46.216-69.835-46.541-69.705Q-46.866-69.576-47.051-69.321L-47.025-69.321Q-46.822-69.321-46.686-69.180Q-46.550-69.039-46.550-68.842Q-46.550-68.644-46.684-68.510Q-46.818-68.376-47.016-68.376Q-47.218-68.376-47.356-68.510Q-47.495-68.644-47.495-68.842Q-47.495-69.431-46.992-69.762Q-46.488-70.094-45.873-70.094Q-45.495-70.094-45.093-69.954Q-44.691-69.813-44.423-69.534Q-44.155-69.255-44.155-68.859Q-44.155-68.310-44.509-67.873Q-44.862-67.435-45.403-67.251Q-45.012-67.172-44.667-66.948Q-44.322-66.724-44.111-66.383Q-43.900-66.042-43.900-65.647Q-43.900-65.265-44.063-64.942Q-44.225-64.619-44.517-64.383Q-44.810-64.148-45.157-64.025Q-45.504-63.902-45.873-63.902Q-46.321-63.902-46.752-64.063Q-47.183-64.223-47.464-64.550Q-47.745-64.878-47.745-65.335Q-47.745-65.550-47.598-65.693Q-47.451-65.836-47.231-65.836Q-47.020-65.836-46.875-65.691Q-46.730-65.546-46.730-65.335Q-46.730-65.124-46.877-64.972Q-47.025-64.821-47.231-64.821",[1838],[1822,2881,2882],{"fill":2088,"stroke":2088},[1822,2883,2884,2891],{"fill":2088,"stroke":1828,"fontFamily":2842,"fontSize":1829},[1822,2885,2887],{"transform":2886},"translate(87.7 26.67)",[1834,2888],{"d":2889,"fill":2088,"stroke":2088,"className":2890,"style":1839},"M-47.455-62.623Q-47.288-62.518-47.108-62.518Q-46.783-62.518-46.546-62.762Q-46.308-63.006-46.159-63.353L-45.856-64.100L-47.222-67.365Q-47.315-67.563-47.477-67.613Q-47.640-67.664-47.943-67.664L-47.943-67.980L-46.018-67.980L-46.018-67.664Q-46.510-67.664-46.510-67.449Q-46.510-67.427-46.493-67.365L-45.486-64.975L-44.586-67.115Q-44.550-67.198-44.550-67.304Q-44.550-67.466-44.671-67.565Q-44.792-67.664-44.955-67.664L-44.955-67.980L-43.452-67.980L-43.452-67.664Q-43.737-67.664-43.951-67.521Q-44.164-67.378-44.269-67.115L-45.856-63.353Q-46.045-62.900-46.359-62.577Q-46.673-62.254-47.108-62.254Q-47.433-62.254-47.693-62.474Q-47.952-62.694-47.952-63.019Q-47.952-63.186-47.833-63.300Q-47.715-63.414-47.548-63.414Q-47.433-63.414-47.343-63.364Q-47.253-63.313-47.203-63.225Q-47.152-63.138-47.152-63.019Q-47.152-62.874-47.233-62.764Q-47.315-62.654-47.455-62.623",[1838],[1822,2892,2893],{"transform":2886},[1834,2894],{"d":2895,"fill":2088,"stroke":2088,"className":2896,"style":1839},"M-41.195-63.999Q-41.754-63.999-42.226-64.282Q-42.698-64.566-42.973-65.043Q-43.248-65.519-43.248-66.073Q-43.248-66.469-43.105-66.844Q-42.962-67.220-42.705-67.508Q-42.448-67.796-42.090-67.965Q-41.732-68.134-41.327-68.134Q-40.782-68.134-40.411-67.897Q-40.040-67.660-39.853-67.242Q-39.666-66.825-39.666-66.288Q-39.666-66.236-39.690-66.198Q-39.715-66.161-39.763-66.161L-42.435-66.161L-42.435-66.082Q-42.435-65.335-42.123-64.812Q-41.811-64.289-41.112-64.289Q-40.708-64.289-40.387-64.546Q-40.066-64.803-39.943-65.207Q-39.925-65.287-39.842-65.287L-39.763-65.287Q-39.723-65.287-39.695-65.256Q-39.666-65.225-39.666-65.181L-39.666-65.146Q-39.772-64.803-39.994-64.544Q-40.215-64.285-40.530-64.142Q-40.844-63.999-41.195-63.999M-42.426-66.412L-40.312-66.412Q-40.312-66.680-40.365-66.926Q-40.418-67.172-40.538-67.394Q-40.659-67.616-40.857-67.743Q-41.055-67.871-41.327-67.871Q-41.670-67.871-41.923-67.646Q-42.175-67.422-42.301-67.084Q-42.426-66.746-42.426-66.412M-39.086-64.082L-39.086-65.524Q-39.086-65.555-39.058-65.579Q-39.029-65.603-38.998-65.603L-38.888-65.603Q-38.853-65.603-38.831-65.581Q-38.809-65.559-38.800-65.524Q-38.541-64.263-37.574-64.263Q-37.148-64.263-36.854-64.447Q-36.559-64.632-36.559-65.036Q-36.559-65.330-36.790-65.526Q-37.021-65.722-37.333-65.783L-37.935-65.902Q-38.401-65.990-38.743-66.273Q-39.086-66.557-39.086-66.996Q-39.086-67.589-38.649-67.862Q-38.212-68.134-37.574-68.134Q-37.095-68.134-36.748-67.888L-36.498-68.112Q-36.441-68.134-36.441-68.134L-36.388-68.134Q-36.361-68.134-36.329-68.108Q-36.296-68.081-36.296-68.051L-36.296-66.891Q-36.296-66.860-36.331-66.833Q-36.366-66.807-36.388-66.807L-36.498-66.807Q-36.520-66.807-36.553-66.836Q-36.586-66.864-36.586-66.891Q-36.586-67.356-36.851-67.627Q-37.117-67.897-37.583-67.897Q-37.987-67.897-38.291-67.752Q-38.594-67.607-38.594-67.251Q-38.594-67.005-38.376-66.851Q-38.159-66.697-37.882-66.640L-37.254-66.513Q-36.937-66.451-36.667-66.284Q-36.397-66.117-36.230-65.851Q-36.063-65.585-36.063-65.269Q-36.063-64.627-36.489-64.313Q-36.915-63.999-37.574-63.999Q-37.847-63.999-38.113-64.093Q-38.379-64.188-38.559-64.377L-38.880-64.038Q-38.897-63.999-38.945-63.999L-38.998-63.999Q-39.020-63.999-39.053-64.027Q-39.086-64.056-39.086-64.082",[1838],[1822,2898,2900],{"transform":2899},"translate(137.106 28.507)",[1834,2901],{"d":2878,"fill":1824,"stroke":1824,"className":2902,"style":1839},[1838],[1822,2904,2906],{"transform":2905},"translate(-2.312 48.425)",[1834,2907],{"d":2908,"fill":1824,"stroke":1824,"className":2909,"style":1839},"M-45.820-63.902Q-46.945-63.902-47.359-64.799Q-47.772-65.695-47.772-66.970Q-47.772-67.743-47.622-68.442Q-47.473-69.141-47.038-69.617Q-46.603-70.094-45.820-70.094Q-45.043-70.094-44.608-69.615Q-44.173-69.136-44.023-68.440Q-43.874-67.743-43.874-66.970Q-43.874-65.691-44.287-64.797Q-44.700-63.902-45.820-63.902M-45.820-64.162Q-45.302-64.162-45.051-64.673Q-44.801-65.185-44.744-65.796Q-44.687-66.407-44.687-67.115Q-44.687-67.800-44.744-68.360Q-44.801-68.921-45.054-69.378Q-45.306-69.835-45.820-69.835Q-46.225-69.835-46.462-69.558Q-46.699-69.281-46.807-68.840Q-46.915-68.398-46.939-68.005Q-46.963-67.611-46.963-67.115Q-46.963-66.609-46.939-66.181Q-46.915-65.752-46.807-65.269Q-46.699-64.786-46.460-64.474Q-46.220-64.162-45.820-64.162",[1838],[1822,2911,2913],{"transform":2912},"translate(34.676 48.425)",[1834,2914],{"d":2915,"fill":1824,"stroke":1824,"className":2916,"style":1839},"M-44.225-64.100L-47.675-64.100L-47.675-64.333Q-47.675-64.346-47.644-64.377L-46.190-65.954Q-45.724-66.451-45.471-66.756Q-45.218-67.062-45.027-67.473Q-44.836-67.884-44.836-68.323Q-44.836-68.912-45.159-69.345Q-45.482-69.778-46.062-69.778Q-46.326-69.778-46.572-69.668Q-46.818-69.558-46.994-69.371Q-47.170-69.184-47.266-68.934L-47.187-68.934Q-46.985-68.934-46.842-68.798Q-46.699-68.662-46.699-68.446Q-46.699-68.240-46.842-68.101Q-46.985-67.963-47.187-67.963Q-47.389-67.963-47.532-68.106Q-47.675-68.248-47.675-68.446Q-47.675-68.908-47.438-69.281Q-47.200-69.655-46.800-69.874Q-46.401-70.094-45.952-70.094Q-45.429-70.094-44.975-69.879Q-44.520-69.663-44.247-69.264Q-43.975-68.864-43.975-68.323Q-43.975-67.928-44.146-67.574Q-44.318-67.220-44.583-66.941Q-44.849-66.662-45.300-66.277Q-45.750-65.893-45.829-65.818L-46.853-64.856L-46.036-64.856Q-45.385-64.856-44.948-64.867Q-44.511-64.878-44.480-64.900Q-44.410-64.983-44.355-65.223Q-44.300-65.462-44.260-65.730L-43.975-65.730",[1838],[1822,2918,2920],{"transform":2919},"translate(89.012 47.462)",[1834,2921],{"d":2922,"fill":1824,"stroke":1824,"className":2923,"style":1839},"M-45.746-64.100L-47.833-64.100L-47.833-64.416Q-47.526-64.416-47.334-64.469Q-47.143-64.522-47.143-64.711L-47.143-67.159Q-47.143-67.400-47.214-67.508Q-47.284-67.616-47.418-67.640Q-47.552-67.664-47.833-67.664L-47.833-67.980L-46.493-68.077L-46.493-67.242Q-46.295-67.624-45.941-67.851Q-45.588-68.077-45.161-68.077Q-43.882-68.077-43.882-66.864L-43.882-64.711Q-43.882-64.522-43.691-64.469Q-43.500-64.416-43.193-64.416L-43.193-64.100L-45.280-64.100L-45.280-64.416Q-44.968-64.416-44.777-64.469Q-44.586-64.522-44.586-64.711L-44.586-66.829Q-44.586-67.088-44.630-67.310Q-44.674-67.532-44.819-67.675Q-44.964-67.818-45.223-67.818Q-45.566-67.818-45.847-67.629Q-46.128-67.440-46.284-67.128Q-46.440-66.816-46.440-66.469L-46.440-64.711Q-46.440-64.522-46.247-64.469Q-46.053-64.416-45.746-64.416L-45.746-64.100M-42.736-66.007Q-42.736-66.574-42.463-67.062Q-42.191-67.550-41.720-67.842Q-41.250-68.134-40.683-68.134Q-40.261-68.134-39.886-67.965Q-39.510-67.796-39.233-67.504Q-38.956-67.211-38.798-66.816Q-38.640-66.420-38.640-66.007Q-38.640-65.458-38.919-64.996Q-39.198-64.535-39.666-64.267Q-40.134-63.999-40.683-63.999Q-41.237-63.999-41.707-64.267Q-42.177-64.535-42.456-64.996Q-42.736-65.458-42.736-66.007M-40.683-64.289Q-40.187-64.289-39.910-64.550Q-39.633-64.812-39.541-65.216Q-39.448-65.621-39.448-66.117Q-39.448-66.592-39.547-66.981Q-39.646-67.370-39.919-67.620Q-40.191-67.871-40.683-67.871Q-41.395-67.871-41.659-67.376Q-41.923-66.882-41.923-66.117Q-41.923-65.317-41.668-64.803Q-41.413-64.289-40.683-64.289",[1838],[1822,2925,2927],{"transform":2926},"translate(137.106 48.425)",[1834,2928],{"d":2878,"fill":1824,"stroke":1824,"className":2929,"style":1839},[1838],[1822,2931,2933],{"transform":2932},"translate(-2.312 68.341)",[1834,2934],{"d":2871,"fill":1824,"stroke":1824,"className":2935,"style":1839},[1838],[1822,2937,2939],{"transform":2938},"translate(34.676 68.341)",[1834,2940],{"d":2941,"fill":1824,"stroke":1824,"className":2942,"style":1839},"M-45.434-65.577L-47.873-65.577L-47.873-65.893L-45.047-70.041Q-45.003-70.094-44.937-70.094L-44.783-70.094Q-44.744-70.094-44.711-70.061Q-44.678-70.028-44.678-69.984L-44.678-65.893L-43.777-65.893L-43.777-65.577L-44.678-65.577L-44.678-64.711Q-44.678-64.416-43.777-64.416L-43.777-64.100L-46.330-64.100L-46.330-64.416Q-45.970-64.416-45.702-64.471Q-45.434-64.526-45.434-64.711L-45.434-65.577M-45.377-69.066L-47.539-65.893L-45.377-65.893",[1838],[1822,2944,2945],{"fill":2088,"stroke":2088},[1822,2946,2947,2953],{"fill":2088,"stroke":1828,"fontFamily":2842,"fontSize":1829},[1822,2948,2950],{"transform":2949},"translate(87.7 66.504)",[1834,2951],{"d":2889,"fill":2088,"stroke":2088,"className":2952,"style":1839},[1838],[1822,2954,2955],{"transform":2949},[1834,2956],{"d":2895,"fill":2088,"stroke":2088,"className":2957,"style":1839},[1838],[1822,2959,2961],{"transform":2960},"translate(137.106 68.341)",[1834,2962],{"d":2963,"fill":1824,"stroke":1824,"className":2964,"style":1839},"M-47.306-65.106Q-47.165-64.693-46.805-64.441Q-46.444-64.188-46.009-64.188Q-45.557-64.188-45.291-64.441Q-45.025-64.693-44.922-65.078Q-44.819-65.462-44.819-65.919Q-44.819-67.620-45.728-67.620Q-46.049-67.620-46.278-67.526Q-46.506-67.431-46.636-67.312Q-46.765-67.194-46.877-67.055Q-46.989-66.917-47.025-66.908L-47.108-66.908Q-47.152-66.908-47.183-66.939Q-47.214-66.970-47.214-67.018L-47.214-70.015Q-47.214-70.046-47.178-70.070Q-47.143-70.094-47.117-70.094L-47.077-70.094Q-46.444-69.804-45.772-69.804Q-45.100-69.804-44.458-70.094L-44.432-70.094Q-44.401-70.094-44.368-70.072Q-44.335-70.050-44.335-70.015L-44.335-69.914Q-44.335-69.910-44.344-69.892Q-44.353-69.874-44.353-69.870Q-44.669-69.475-45.139-69.253Q-45.610-69.031-46.106-69.031Q-46.515-69.031-46.897-69.141L-46.897-67.422Q-46.440-67.879-45.728-67.879Q-45.218-67.879-44.819-67.598Q-44.419-67.317-44.197-66.862Q-43.975-66.407-43.975-65.902Q-43.975-65.352-44.254-64.893Q-44.533-64.434-44.999-64.168Q-45.465-63.902-46.009-63.902Q-46.449-63.902-46.833-64.129Q-47.218-64.355-47.446-64.735Q-47.675-65.115-47.675-65.559Q-47.675-65.752-47.543-65.884Q-47.411-66.016-47.214-66.016Q-47.082-66.016-46.978-65.957Q-46.875-65.897-46.816-65.794Q-46.757-65.691-46.757-65.559Q-46.757-65.361-46.884-65.229Q-47.011-65.098-47.214-65.098Q-47.275-65.098-47.306-65.106",[1838],[1822,2966,2968],{"transform":2967},"translate(-2.312 88.258)",[1834,2969],{"d":2871,"fill":1824,"stroke":1824,"className":2970,"style":1839},[1838],[1822,2972,2974],{"transform":2973},"translate(34.676 88.258)",[1834,2975],{"d":2915,"fill":1824,"stroke":1824,"className":2976,"style":1839},[1838],[1822,2978,2979],{"fill":2088,"stroke":2088},[1822,2980,2981,2987],{"fill":2088,"stroke":1828,"fontFamily":2842,"fontSize":1829},[1822,2982,2984],{"transform":2983},"translate(87.7 86.42)",[1834,2985],{"d":2889,"fill":2088,"stroke":2088,"className":2986,"style":1839},[1838],[1822,2988,2989],{"transform":2983},[1834,2990],{"d":2895,"fill":2088,"stroke":2088,"className":2991,"style":1839},[1838],[1822,2993,2995],{"transform":2994},"translate(137.106 88.258)",[1834,2996],{"d":2878,"fill":1824,"stroke":1824,"className":2997,"style":1839},[1838],[1834,2999],{"fill":1828,"stroke":2088,"d":3000,"style":2089},"M77.06 12.722v17.072h28.453V12.722Zm28.453 17.072",[1822,3002,3003],{"fill":2088,"stroke":2088},[1822,3004,3005,3012,3018,3024,3030,3036,3042],{"fill":2088,"stroke":1828},[1822,3006,3008],{"transform":3007},"translate(44.666 114.31)",[1834,3009],{"d":3010,"fill":2088,"stroke":2088,"className":3011,"style":2060},"M-47.339-64.733Q-47.148-64.459-46.792-64.332Q-46.437-64.205-46.054-64.205Q-45.718-64.205-45.509-64.391Q-45.300-64.577-45.204-64.870Q-45.109-65.162-45.109-65.475Q-45.109-65.799-45.206-66.094Q-45.304-66.389-45.517-66.573Q-45.730-66.756-46.062-66.756L-46.628-66.756Q-46.659-66.756-46.689-66.786Q-46.718-66.815-46.718-66.842L-46.718-66.924Q-46.718-66.959-46.689-66.985Q-46.659-67.010-46.628-67.010L-46.148-67.045Q-45.862-67.045-45.665-67.250Q-45.468-67.455-45.372-67.750Q-45.277-68.045-45.277-68.323Q-45.277-68.702-45.476-68.940Q-45.675-69.178-46.054-69.178Q-46.374-69.178-46.663-69.071Q-46.952-68.963-47.116-68.741Q-46.937-68.741-46.814-68.614Q-46.691-68.487-46.691-68.315Q-46.691-68.143-46.816-68.018Q-46.941-67.893-47.116-67.893Q-47.288-67.893-47.413-68.018Q-47.538-68.143-47.538-68.315Q-47.538-68.682-47.314-68.930Q-47.089-69.178-46.749-69.299Q-46.409-69.420-46.054-69.420Q-45.706-69.420-45.343-69.299Q-44.980-69.178-44.732-68.928Q-44.484-68.678-44.484-68.323Q-44.484-67.838-44.802-67.455Q-45.120-67.073-45.597-66.901Q-45.046-66.791-44.646-66.405Q-44.245-66.018-44.245-65.483Q-44.245-65.026-44.509-64.670Q-44.773-64.315-45.194-64.123Q-45.616-63.932-46.054-63.932Q-46.464-63.932-46.857-64.067Q-47.249-64.202-47.515-64.487Q-47.780-64.772-47.780-65.190Q-47.780-65.385-47.648-65.514Q-47.515-65.643-47.323-65.643Q-47.198-65.643-47.095-65.584Q-46.991-65.526-46.929-65.420Q-46.866-65.315-46.866-65.190Q-46.866-64.995-47.001-64.864Q-47.136-64.733-47.339-64.733",[1838],[1822,3013,3014],{"transform":3007},[1834,3015],{"d":3016,"fill":2088,"stroke":2088,"className":3017,"style":1873},"M-40.840-66.924L-43.131-66.924L-43.131-67.182Q-42.255-67.182-42.255-67.355L-42.255-70.434Q-42.448-70.346-42.680-70.309Q-42.911-70.273-43.166-70.273L-43.166-70.530Q-42.788-70.530-42.467-70.615Q-42.147-70.700-41.918-70.914L-41.798-70.914Q-41.766-70.914-41.741-70.891Q-41.716-70.867-41.716-70.829L-41.716-67.355Q-41.716-67.182-40.840-67.182L-40.840-66.924M-39.443-67.375Q-39.147-67.038-38.417-67.038Q-38.159-67.038-37.979-67.166Q-37.799-67.293-37.711-67.501Q-37.623-67.709-37.623-67.967Q-37.623-68.362-37.830-68.633Q-38.036-68.904-38.423-68.904L-38.889-68.904Q-38.953-68.919-38.968-68.981L-38.968-69.048Q-38.953-69.104-38.889-69.121L-38.487-69.145Q-38.277-69.145-38.108-69.287Q-37.940-69.429-37.847-69.643Q-37.755-69.857-37.755-70.073Q-37.755-70.361-37.940-70.526Q-38.124-70.692-38.417-70.692Q-38.678-70.692-38.902-70.624Q-39.126-70.557-39.273-70.399Q-39.144-70.381-39.065-70.292Q-38.985-70.202-38.985-70.073Q-38.985-69.936-39.081-69.841Q-39.176-69.745-39.317-69.745Q-39.451-69.745-39.548-69.842Q-39.645-69.939-39.645-70.073Q-39.645-70.361-39.454-70.552Q-39.264-70.744-38.983-70.829Q-38.701-70.914-38.417-70.914Q-38.142-70.914-37.841-70.823Q-37.541-70.733-37.333-70.544Q-37.125-70.355-37.125-70.073Q-37.125-69.704-37.371-69.432Q-37.617-69.159-37.989-69.030Q-37.570-68.937-37.253-68.654Q-36.935-68.371-36.935-67.973Q-36.935-67.610-37.154-67.344Q-37.374-67.079-37.720-66.939Q-38.066-66.798-38.417-66.798Q-38.640-66.798-38.887-66.846Q-39.135-66.895-39.355-67.005Q-39.574-67.114-39.706-67.293Q-39.838-67.472-39.838-67.727Q-39.838-67.876-39.735-67.979Q-39.633-68.081-39.484-68.081Q-39.334-68.081-39.232-67.979Q-39.129-67.876-39.129-67.727Q-39.129-67.595-39.218-67.494Q-39.308-67.393-39.443-67.375",[1838],[1822,3019,3020],{"transform":3007},[1834,3021],{"d":3022,"fill":2088,"stroke":2088,"className":3023,"style":2060},"M-31.519-64.100L-33.374-64.100L-33.374-64.397Q-33.101-64.397-32.933-64.444Q-32.765-64.491-32.765-64.659L-32.765-66.795Q-32.765-67.010-32.828-67.106Q-32.890-67.202-33.009-67.223Q-33.128-67.245-33.374-67.245L-33.374-67.541L-32.183-67.627L-32.183-66.893Q-32.070-67.108-31.876-67.276Q-31.683-67.444-31.445-67.536Q-31.207-67.627-30.953-67.627Q-29.992-67.627-29.816-66.916Q-29.632-67.245-29.304-67.436Q-28.976-67.627-28.597-67.627Q-27.421-67.627-27.421-66.549L-27.421-64.659Q-27.421-64.491-27.253-64.444Q-27.085-64.397-26.816-64.397L-26.816-64.100L-28.671-64.100L-28.671-64.397Q-28.398-64.397-28.230-64.442Q-28.062-64.487-28.062-64.659L-28.062-66.534Q-28.062-66.920-28.187-67.147Q-28.312-67.373-28.664-67.373Q-28.968-67.373-29.224-67.211Q-29.480-67.049-29.628-66.780Q-29.777-66.510-29.777-66.213L-29.777-64.659Q-29.777-64.491-29.607-64.444Q-29.437-64.397-29.167-64.397L-29.167-64.100L-31.023-64.100L-31.023-64.397Q-30.749-64.397-30.582-64.444Q-30.414-64.491-30.414-64.659L-30.414-66.534Q-30.414-66.920-30.539-67.147Q-30.664-67.373-31.015-67.373Q-31.320-67.373-31.576-67.211Q-31.832-67.049-31.980-66.780Q-32.128-66.510-32.128-66.213L-32.128-64.659Q-32.128-64.491-31.958-64.444Q-31.789-64.397-31.519-64.397L-31.519-64.100M-26.371-65.795Q-26.371-66.299-26.115-66.731Q-25.859-67.162-25.423-67.414Q-24.988-67.666-24.488-67.666Q-24.101-67.666-23.759-67.522Q-23.417-67.377-23.156-67.116Q-22.894-66.854-22.751-66.518Q-22.609-66.182-22.609-65.795Q-22.609-65.303-22.873-64.893Q-23.136-64.483-23.566-64.252Q-23.996-64.022-24.488-64.022Q-24.980-64.022-25.414-64.254Q-25.847-64.487-26.109-64.895Q-26.371-65.303-26.371-65.795M-24.488-64.299Q-24.031-64.299-23.779-64.522Q-23.527-64.745-23.439-65.096Q-23.351-65.448-23.351-65.893Q-23.351-66.323-23.445-66.661Q-23.539-66.998-23.792-67.205Q-24.046-67.412-24.488-67.412Q-25.136-67.412-25.380-66.996Q-25.624-66.580-25.624-65.893Q-25.624-65.448-25.537-65.096Q-25.449-64.745-25.197-64.522Q-24.945-64.299-24.488-64.299",[1838],[1822,3025,3026],{"transform":3007},[1834,3027],{"d":3028,"fill":2088,"stroke":2088,"className":3029,"style":2060},"M-20.063-64.022Q-20.544-64.022-20.952-64.266Q-21.360-64.510-21.598-64.924Q-21.837-65.338-21.837-65.827Q-21.837-66.319-21.579-66.735Q-21.321-67.151-20.889-67.389Q-20.458-67.627-19.966-67.627Q-19.345-67.627-18.895-67.190L-18.895-68.819Q-18.895-69.034-18.958-69.129Q-19.020-69.225-19.138-69.246Q-19.255-69.268-19.501-69.268L-19.501-69.565L-18.278-69.651L-18.278-64.842Q-18.278-64.631-18.216-64.536Q-18.153-64.440-18.036-64.418Q-17.919-64.397-17.669-64.397L-17.669-64.100L-18.919-64.022L-18.919-64.506Q-19.384-64.022-20.063-64.022M-19.997-64.276Q-19.657-64.276-19.364-64.467Q-19.071-64.659-18.919-64.955L-18.919-66.787Q-19.067-67.061-19.329-67.217Q-19.591-67.373-19.903-67.373Q-20.528-67.373-20.811-66.926Q-21.095-66.479-21.095-65.819Q-21.095-65.174-20.843-64.725Q-20.591-64.276-19.997-64.276",[1838],[1822,3031,3032],{"transform":3007},[1834,3033],{"d":3034,"fill":2088,"stroke":2088,"className":3035,"style":2060},"M-13.538-64.323Q-13.538-64.748-13.454-65.198Q-13.370-65.647-13.214-66.065Q-13.057-66.483-12.843-66.870Q-12.628-67.256-12.354-67.612L-11.628-68.565L-12.538-68.565Q-14.034-68.565-14.073-68.526Q-14.143-68.444-14.190-68.254Q-14.237-68.065-14.280-67.787L-14.561-67.787L-14.292-69.506L-14.011-69.506L-14.011-69.483Q-14.011-69.338-13.493-69.295Q-12.975-69.252-12.483-69.252L-10.913-69.252L-10.913-69.061Q-10.921-69.022-10.936-68.995L-12.112-67.459Q-12.413-67.041-12.552-66.534Q-12.690-66.026-12.722-65.532Q-12.753-65.037-12.753-64.323Q-12.753-64.217-12.804-64.125Q-12.854-64.034-12.946-63.983Q-13.038-63.932-13.147-63.932Q-13.253-63.932-13.345-63.983Q-13.436-64.034-13.487-64.125Q-13.538-64.217-13.538-64.323",[1838],[1822,3037,3038],{"transform":3007},[1834,3039],{"d":3040,"fill":2088,"stroke":2088,"className":3041,"style":2060},"M-2.462-65.077L-7.775-65.077Q-7.853-65.084-7.902-65.133Q-7.950-65.182-7.950-65.260Q-7.950-65.330-7.903-65.381Q-7.857-65.432-7.775-65.444L-2.462-65.444Q-2.388-65.432-2.341-65.381Q-2.294-65.330-2.294-65.260Q-2.294-65.182-2.343-65.133Q-2.392-65.084-2.462-65.077M-2.462-66.764L-7.775-66.764Q-7.853-66.772-7.902-66.821Q-7.950-66.870-7.950-66.948Q-7.950-67.018-7.903-67.069Q-7.857-67.120-7.775-67.131L-2.462-67.131Q-2.388-67.120-2.341-67.069Q-2.294-67.018-2.294-66.948Q-2.294-66.870-2.343-66.821Q-2.392-66.772-2.462-66.764",[1838],[1822,3043,3044],{"transform":3007},[1834,3045],{"d":3046,"fill":2088,"stroke":2088,"className":3047,"style":2060},"M1.342-64.733Q1.533-64.459 1.889-64.332Q2.244-64.205 2.627-64.205Q2.963-64.205 3.172-64.391Q3.381-64.577 3.477-64.870Q3.572-65.162 3.572-65.475Q3.572-65.799 3.475-66.094Q3.377-66.389 3.164-66.573Q2.951-66.756 2.619-66.756L2.053-66.756Q2.022-66.756 1.992-66.786Q1.963-66.815 1.963-66.842L1.963-66.924Q1.963-66.959 1.992-66.985Q2.022-67.010 2.053-67.010L2.533-67.045Q2.819-67.045 3.016-67.250Q3.213-67.455 3.309-67.750Q3.404-68.045 3.404-68.323Q3.404-68.702 3.205-68.940Q3.006-69.178 2.627-69.178Q2.307-69.178 2.018-69.071Q1.729-68.963 1.565-68.741Q1.744-68.741 1.867-68.614Q1.990-68.487 1.990-68.315Q1.990-68.143 1.865-68.018Q1.740-67.893 1.565-67.893Q1.393-67.893 1.268-68.018Q1.143-68.143 1.143-68.315Q1.143-68.682 1.367-68.930Q1.592-69.178 1.932-69.299Q2.272-69.420 2.627-69.420Q2.975-69.420 3.338-69.299Q3.701-69.178 3.949-68.928Q4.197-68.678 4.197-68.323Q4.197-67.838 3.879-67.455Q3.561-67.073 3.084-66.901Q3.635-66.791 4.035-66.405Q4.436-66.018 4.436-65.483Q4.436-65.026 4.172-64.670Q3.908-64.315 3.486-64.123Q3.065-63.932 2.627-63.932Q2.217-63.932 1.824-64.067Q1.432-64.202 1.166-64.487Q0.901-64.772 0.901-65.190Q0.901-65.385 1.033-65.514Q1.166-65.643 1.358-65.643Q1.483-65.643 1.586-65.584Q1.690-65.526 1.752-65.420Q1.815-65.315 1.815-65.190Q1.815-64.995 1.680-64.864Q1.545-64.733 1.342-64.733",[1838],[2181,3049,3051,3103,3104,3177],{"className":3050},[2184],[390,3052,3054],{"className":3053},[393],[390,3055,3057],{"className":3056,"ariaHidden":398},[397],[390,3058,3060,3063,3076,3079,3082,3085,3088,3091,3094,3097,3100],{"className":3059},[402],[390,3061],{"className":3062,"style":650},[406],[390,3064,3068],{"className":3065},[3066,3067],"enclosing","textsc",[390,3069,3072],{"className":3070},[411,3071],"text",[390,3073,3075],{"className":3074},[411],"ModPow",[390,3077,659],{"className":3078},[658],[390,3080,2586],{"className":3081},[411],[390,3083,993],{"className":3084},[992],[390,3086],{"className":3087,"style":717},[572],[390,3089,2613],{"className":3090},[411],[390,3092,993],{"className":3093},[992],[390,3095],{"className":3096,"style":717},[572],[390,3098,2644],{"className":3099},[411],[390,3101,667],{"className":3102},[666]," traced — bits of ",[390,3105,3107],{"className":3106},[393],[390,3108,3110,3128],{"className":3109,"ariaHidden":398},[397],[390,3111,3113,3116,3119,3122,3125],{"className":3112},[402],[390,3114],{"className":3115,"style":1803},[406],[390,3117,2613],{"className":3118},[411],[390,3120],{"className":3121,"style":771},[572],[390,3123,776],{"className":3124},[775],[390,3126],{"className":3127,"style":771},[572],[390,3129,3131,3134,3137],{"className":3130},[402],[390,3132],{"className":3133,"style":2721},[406],[390,3135,2725],{"className":3136},[411],[390,3138,3140,3143],{"className":3139},[411],[390,3141,1000],{"className":3142},[411],[390,3144,3146],{"className":3145},[420],[390,3147,3149,3169],{"className":3148},[424,425],[390,3150,3152,3166],{"className":3151},[429],[390,3153,3155],{"className":3154,"style":2744},[433],[390,3156,3157,3160],{"style":437},[390,3158],{"className":3159,"style":442},[441],[390,3161,3163],{"className":3162},[446,447,448,449],[390,3164,886],{"className":3165},[411,449],[390,3167,459],{"className":3168},[458],[390,3170,3172],{"className":3171},[429],[390,3173,3175],{"className":3174,"style":466},[433],[390,3176],{}," drive square-and-multiply",[381,3179,3180],{},"The same computation has a clean recursive shape, splitting the exponent in half:",[390,3182,3184],{"className":3183},[1009],[390,3185,3187],{"className":3186},[393],[390,3188,3190,3234],{"className":3189,"ariaHidden":398},[397],[390,3191,3193,3196,3225,3228,3231],{"className":3192},[402],[390,3194],{"className":3195,"style":1022},[406],[390,3197,3199,3202],{"className":3198},[411],[390,3200,385],{"className":3201},[411,453],[390,3203,3205],{"className":3204},[420],[390,3206,3208],{"className":3207},[424],[390,3209,3211],{"className":3210},[429],[390,3212,3214],{"className":3213,"style":1022},[433],[390,3215,3216,3219],{"style":1043},[390,3217],{"className":3218,"style":442},[441],[390,3220,3222],{"className":3221},[446,447,448,449],[390,3223,507],{"className":3224},[411,453,449],[390,3226],{"className":3227,"style":771},[572],[390,3229,776],{"className":3230},[775],[390,3232],{"className":3233,"style":771},[572],[390,3235,3237,3241],{"className":3236},[402],[390,3238],{"className":3239,"style":3240},[406],"height:4.812em;vertical-align:-2.156em;",[390,3242,3245,3344,3671],{"className":3243},[3244],"minner",[390,3246,3248],{"className":3247},[658],[390,3249,3252],{"className":3250},[1610,3251],"mult",[390,3253,3255,3335],{"className":3254},[424,425],[390,3256,3258,3332],{"className":3257},[429],[390,3259,3262,3277,3296,3308,3320],{"className":3260,"style":3261},[433],"height:2.65em;",[390,3263,3265,3269],{"style":3264},"top:-1.9em;",[390,3266],{"className":3267,"style":3268},[441],"height:3.15em;",[390,3270,3274],{"className":3271},[3272,3273],"delimsizinginner","delim-size4",[390,3275,3276],{},"⎩",[390,3278,3280,3283],{"style":3279},"top:-1.892em;",[390,3281],{"className":3282,"style":3268},[441],[390,3284,3286],{"style":3285},"height:0.616em;width:0.8889em;",[1815,3287,3293],{"xmlns":1817,"width":3288,"height":3289,"style":3290,"viewBox":3291,"preserveAspectRatio":3292},"0.8889em","0.616em","width:0.8889em","0 0 888.89 616","xMinYMin",[1834,3294],{"d":3295},"M384 0 H504 V616 H384z M384 0 H504 V616 H384z",[390,3297,3299,3302],{"style":3298},"top:-3.15em;",[390,3300],{"className":3301,"style":3268},[441],[390,3303,3305],{"className":3304},[3272,3273],[390,3306,3307],{},"⎨",[390,3309,3311,3314],{"style":3310},"top:-4.292em;",[390,3312],{"className":3313,"style":3268},[441],[390,3315,3316],{"style":3285},[1815,3317,3318],{"xmlns":1817,"width":3288,"height":3289,"style":3290,"viewBox":3291,"preserveAspectRatio":3292},[1834,3319],{"d":3295},[390,3321,3323,3326],{"style":3322},"top:-4.9em;",[390,3324],{"className":3325,"style":3268},[441],[390,3327,3329],{"className":3328},[3272,3273],[390,3330,3331],{},"⎧",[390,3333,459],{"className":3334},[458],[390,3336,3338],{"className":3337},[429],[390,3339,3342],{"className":3340,"style":3341},[433],"height:2.15em;",[390,3343],{},[390,3345,3347],{"className":3346},[411],[390,3348,3351,3575,3580],{"className":3349},[3350],"mtable",[390,3352,3355],{"className":3353},[3354],"col-align-l",[390,3356,3358,3566],{"className":3357},[424,425],[390,3359,3361,3563],{"className":3360},[429],[390,3362,3365,3378,3462],{"className":3363,"style":3364},[433],"height:2.656em;",[390,3366,3368,3372],{"style":3367},"top:-4.702em;",[390,3369],{"className":3370,"style":3371},[441],"height:3.054em;",[390,3373,3375],{"className":3374},[411],[390,3376,1000],{"className":3377},[411],[390,3379,3381,3384],{"style":3380},"top:-3.016em;",[390,3382],{"className":3383,"style":3371},[441],[390,3385,3387,3393,3430],{"className":3386},[411],[390,3388,3390],{"className":3389},[658],[390,3391,659],{"className":3392},[1610,1128],[390,3394,3396,3399],{"className":3395},[411],[390,3397,385],{"className":3398},[411,453],[390,3400,3402],{"className":3401},[420],[390,3403,3405],{"className":3404},[424],[390,3406,3408],{"className":3407},[429],[390,3409,3412],{"className":3410,"style":3411},[433],"height:0.888em;",[390,3413,3414,3417],{"style":559},[390,3415],{"className":3416,"style":442},[441],[390,3418,3420],{"className":3419},[446,447,448,449],[390,3421,3423,3426],{"className":3422},[411,449],[390,3424,507],{"className":3425},[411,453,449],[390,3427,3429],{"className":3428},[411,449],"\u002F2",[390,3431,3433,3439],{"className":3432},[666],[390,3434,3436],{"className":3435},[666],[390,3437,667],{"className":3438},[1610,1128],[390,3440,3442],{"className":3441},[420],[390,3443,3445],{"className":3444},[424],[390,3446,3448],{"className":3447},[429],[390,3449,3451],{"className":3450,"style":1690},[433],[390,3452,3453,3456],{"style":1693},[390,3454],{"className":3455,"style":442},[441],[390,3457,3459],{"className":3458},[446,447,448,449],[390,3460,886],{"className":3461},[411,449],[390,3463,3465,3468],{"style":3464},"top:-1.33em;",[390,3466],{"className":3467,"style":3371},[441],[390,3469,3471,3477,3518,3550,3553,3557,3560],{"className":3470},[411],[390,3472,3474],{"className":3473},[658],[390,3475,659],{"className":3476},[1610,1128],[390,3478,3480,3483],{"className":3479},[411],[390,3481,385],{"className":3482},[411,453],[390,3484,3486],{"className":3485},[420],[390,3487,3489],{"className":3488},[424],[390,3490,3492],{"className":3491},[429],[390,3493,3495],{"className":3494,"style":3411},[433],[390,3496,3497,3500],{"style":559},[390,3498],{"className":3499,"style":442},[441],[390,3501,3503],{"className":3502},[446,447,448,449],[390,3504,3506,3509,3512,3515],{"className":3505},[411,449],[390,3507,2235],{"className":3508},[658,449],[390,3510,507],{"className":3511},[411,453,449],[390,3513,3429],{"className":3514},[411,449],[390,3516,2291],{"className":3517},[666,449],[390,3519,3521,3527],{"className":3520},[666],[390,3522,3524],{"className":3523},[666],[390,3525,667],{"className":3526},[1610,1128],[390,3528,3530],{"className":3529},[420],[390,3531,3533],{"className":3532},[424],[390,3534,3536],{"className":3535},[429],[390,3537,3539],{"className":3538,"style":1690},[433],[390,3540,3541,3544],{"style":1693},[390,3542],{"className":3543,"style":442},[441],[390,3545,3547],{"className":3546},[446,447,448,449],[390,3548,886],{"className":3549},[411,449],[390,3551],{"className":3552,"style":577},[572],[390,3554,3556],{"className":3555},[581],"⋅",[390,3558],{"className":3559,"style":577},[572],[390,3561,385],{"className":3562},[411,453],[390,3564,459],{"className":3565},[458],[390,3567,3569],{"className":3568},[429],[390,3570,3573],{"className":3571,"style":3572},[433],"height:2.156em;",[390,3574],{},[390,3576],{"className":3577,"style":3579},[3578],"arraycolsep","width:1em;",[390,3581,3583],{"className":3582},[3354],[390,3584,3586,3663],{"className":3585},[424,425],[390,3587,3589,3660],{"className":3588},[429],[390,3590,3592,3618,3639],{"className":3591,"style":3364},[433],[390,3593,3594,3597],{"style":3367},[390,3595],{"className":3596,"style":3371},[441],[390,3598,3600,3603,3606,3609,3612,3615],{"className":3599},[411],[390,3601,507],{"className":3602},[411,453],[390,3604],{"className":3605,"style":771},[572],[390,3607,776],{"className":3608},[775],[390,3610],{"className":3611,"style":771},[572],[390,3613,988],{"className":3614},[411],[390,3616,993],{"className":3617},[992],[390,3619,3620,3623],{"style":3380},[390,3621],{"className":3622,"style":3371},[441],[390,3624,3626,3629,3636],{"className":3625},[411],[390,3627,507],{"className":3628},[411,453],[390,3630,3632],{"className":3631},[411,3071],[390,3633,3635],{"className":3634},[411]," even",[390,3637,993],{"className":3638},[992],[390,3640,3641,3644],{"style":3464},[390,3642],{"className":3643,"style":3371},[441],[390,3645,3647,3650,3657],{"className":3646},[411],[390,3648,507],{"className":3649},[411,453],[390,3651,3653],{"className":3652},[411,3071],[390,3654,3656],{"className":3655},[411]," odd",[390,3658,1413],{"className":3659},[411],[390,3661,459],{"className":3662},[458],[390,3664,3666],{"className":3665},[429],[390,3667,3669],{"className":3668,"style":3572},[433],[390,3670],{},[390,3672],{"className":3673},[666,3674],"nulldelimiter",[2511,3676,3678],{"className":2513,"code":3677,"language":2515,"meta":376,"style":376},"caption: $\\textsc{ModPow-Rec}(a, n, m)$ — recursive halving\nif $n = 0$ then return $1$\n$h \\gets \\textsc{ModPow-Rec}(a, \\lfloor n\u002F2 \\rfloor, m)$\n$h \\gets (h \\cdot h) \\bmod m$\nif $n \\bmod 2 = 1$ then\n  $h \\gets (h \\cdot a) \\bmod m$\nreturn $h$\n",[2517,3679,3680,3685,3690,3695,3700,3705,3710],{"__ignoreMap":376},[390,3681,3682],{"class":2521,"line":6},[390,3683,3684],{},"caption: $\\textsc{ModPow-Rec}(a, n, m)$ — recursive halving\n",[390,3686,3687],{"class":2521,"line":18},[390,3688,3689],{},"if $n = 0$ then return $1$\n",[390,3691,3692],{"class":2521,"line":24},[390,3693,3694],{},"$h \\gets \\textsc{ModPow-Rec}(a, \\lfloor n\u002F2 \\rfloor, m)$\n",[390,3696,3697],{"class":2521,"line":73},[390,3698,3699],{},"$h \\gets (h \\cdot h) \\bmod m$\n",[390,3701,3702],{"class":2521,"line":102},[390,3703,3704],{},"if $n \\bmod 2 = 1$ then\n",[390,3706,3707],{"class":2521,"line":108},[390,3708,3709],{},"  $h \\gets (h \\cdot a) \\bmod m$\n",[390,3711,3712],{"class":2521,"line":116},[390,3713,3714],{},"return $h$\n",[381,3716,3717,3718,3733,3734,3778,3779,3868,3869,3888],{},"The recursion descends by halving the exponent and rebuilds the answer on the way\nback up: each return squares the child's value, and an odd exponent multiplies one\nextra copy of ",[390,3719,3721],{"className":3720},[393],[390,3722,3724],{"className":3723,"ariaHidden":398},[397],[390,3725,3727,3730],{"className":3726},[402],[390,3728],{"className":3729,"style":487},[406],[390,3731,385],{"className":3732},[411,453],". For ",[390,3735,3737],{"className":3736},[393],[390,3738,3740],{"className":3739,"ariaHidden":398},[397],[390,3741,3743,3746],{"className":3742},[402],[390,3744],{"className":3745,"style":2480},[406],[390,3747,3749,3752],{"className":3748},[411],[390,3750,385],{"className":3751},[411,453],[390,3753,3755],{"className":3754},[420],[390,3756,3758],{"className":3757},[424],[390,3759,3761],{"className":3760},[429],[390,3762,3764],{"className":3763,"style":2480},[433],[390,3765,3766,3769],{"style":559},[390,3767],{"className":3768,"style":442},[441],[390,3770,3772],{"className":3771},[446,447,448,449],[390,3773,3775],{"className":3774},[411,449],[390,3776,2613],{"className":3777},[411,449]," the four downward halvings ",[390,3780,3782],{"className":3781},[393],[390,3783,3785,3804,3823,3841,3859],{"className":3784,"ariaHidden":398},[397],[390,3786,3788,3791,3794,3797,3801],{"className":3787},[402],[390,3789],{"className":3790,"style":1803},[406],[390,3792,2613],{"className":3793},[411],[390,3795],{"className":3796,"style":771},[572],[390,3798,3800],{"className":3799},[775],"→",[390,3802],{"className":3803,"style":771},[572],[390,3805,3807,3810,3814,3817,3820],{"className":3806},[402],[390,3808],{"className":3809,"style":1803},[406],[390,3811,3813],{"className":3812},[411],"6",[390,3815],{"className":3816,"style":771},[572],[390,3818,3800],{"className":3819},[775],[390,3821],{"className":3822,"style":771},[572],[390,3824,3826,3829,3832,3835,3838],{"className":3825},[402],[390,3827],{"className":3828,"style":1803},[406],[390,3830,2586],{"className":3831},[411],[390,3833],{"className":3834,"style":771},[572],[390,3836,3800],{"className":3837},[775],[390,3839],{"className":3840,"style":771},[572],[390,3842,3844,3847,3850,3853,3856],{"className":3843},[402],[390,3845],{"className":3846,"style":1803},[406],[390,3848,1000],{"className":3849},[411],[390,3851],{"className":3852,"style":771},[572],[390,3854,3800],{"className":3855},[775],[390,3857],{"className":3858,"style":771},[572],[390,3860,3862,3865],{"className":3861},[402],[390,3863],{"className":3864,"style":1803},[406],[390,3866,988],{"className":3867},[411]," unwind\ninto four squarings, three of them carrying the extra ",[390,3870,3872],{"className":3871},[393],[390,3873,3875],{"className":3874,"ariaHidden":398},[397],[390,3876,3878,3882,3885],{"className":3877},[402],[390,3879],{"className":3880,"style":3881},[406],"height:0.4445em;",[390,3883,3556],{"className":3884},[411],[390,3886,385],{"className":3887},[411,453]," from an odd level.",[1809,3890,3892,4483],{"className":3891},[1812,1813],[1815,3893,3897],{"xmlns":1817,"width":3894,"height":3895,"viewBox":3896},"232.925","217.720","-75 -75 174.694 163.290",[1822,3898,3899,3902,3917,3920,3934,3937,3951,3954,3968,3999,4002,4005,4069,4072,4075,4126,4129,4132,4195,4198,4201,4257,4304,4357,4416],{"stroke":1824,"style":1825},[1834,3900],{"fill":1828,"d":3901},"M-1.902-52.153h39.834V-72.07H-1.902Z",[1822,3903,3904,3911],{"stroke":1828},[1822,3905,3907],{"transform":3906},"translate(-6.367 3.845)",[1834,3908],{"d":3909,"fill":1824,"stroke":1824,"className":3910,"style":1839},"M19.637-62.011Q19.241-62.011 18.955-62.215Q18.670-62.420 18.523-62.754Q18.375-63.088 18.375-63.479Q18.375-63.914 18.549-64.375Q18.723-64.837 19.035-65.228Q19.347-65.619 19.757-65.854Q20.168-66.089 20.608-66.089Q20.876-66.089 21.093-65.951Q21.311-65.812 21.443-65.566Q21.482-65.716 21.590-65.812Q21.698-65.909 21.838-65.909Q21.961-65.909 22.045-65.836Q22.128-65.764 22.128-65.641Q22.128-65.588 22.119-65.557L21.500-63.066Q21.443-62.868 21.443-62.670Q21.443-62.275 21.706-62.275Q21.992-62.275 22.126-62.598Q22.260-62.921 22.379-63.426Q22.388-63.457 22.412-63.481Q22.436-63.505 22.471-63.505L22.577-63.505Q22.625-63.505 22.647-63.472Q22.669-63.439 22.669-63.391Q22.555-62.960 22.464-62.707Q22.374-62.455 22.181-62.233Q21.988-62.011 21.689-62.011Q21.381-62.011 21.133-62.182Q20.885-62.354 20.814-62.644Q20.559-62.358 20.263-62.185Q19.966-62.011 19.637-62.011M19.654-62.275Q19.984-62.275 20.294-62.516Q20.603-62.758 20.814-63.074Q20.823-63.083 20.823-63.101L21.320-65.065Q21.263-65.382 21.071-65.606Q20.880-65.830 20.590-65.830Q20.221-65.830 19.922-65.511Q19.623-65.193 19.456-64.784Q19.320-64.437 19.195-63.927Q19.070-63.417 19.070-63.092Q19.070-62.767 19.208-62.521Q19.347-62.275 19.654-62.275",[1838],[1822,3912,3913],{"transform":3906},[1834,3914],{"d":3915,"fill":1824,"stroke":1824,"className":3916,"style":1873},"M25.957-65.935L23.666-65.935L23.666-66.193Q24.542-66.193 24.542-66.366L24.542-69.445Q24.349-69.357 24.117-69.320Q23.886-69.284 23.631-69.284L23.631-69.541Q24.009-69.541 24.330-69.626Q24.650-69.711 24.879-69.925L24.999-69.925Q25.031-69.925 25.056-69.902Q25.081-69.878 25.081-69.840L25.081-66.366Q25.081-66.193 25.957-66.193L25.957-65.935M27.354-66.386Q27.650-66.049 28.380-66.049Q28.638-66.049 28.818-66.177Q28.998-66.304 29.086-66.512Q29.174-66.720 29.174-66.978Q29.174-67.373 28.967-67.644Q28.761-67.915 28.374-67.915L27.908-67.915Q27.844-67.930 27.829-67.992L27.829-68.059Q27.844-68.115 27.908-68.132L28.310-68.156Q28.520-68.156 28.689-68.298Q28.857-68.440 28.950-68.654Q29.042-68.868 29.042-69.084Q29.042-69.372 28.857-69.537Q28.673-69.703 28.380-69.703Q28.119-69.703 27.895-69.635Q27.671-69.568 27.524-69.410Q27.653-69.392 27.732-69.303Q27.812-69.213 27.812-69.084Q27.812-68.947 27.716-68.852Q27.621-68.756 27.480-68.756Q27.346-68.756 27.249-68.853Q27.152-68.950 27.152-69.084Q27.152-69.372 27.343-69.563Q27.533-69.755 27.814-69.840Q28.096-69.925 28.380-69.925Q28.655-69.925 28.956-69.834Q29.256-69.744 29.464-69.555Q29.672-69.366 29.672-69.084Q29.672-68.715 29.426-68.443Q29.180-68.170 28.808-68.041Q29.227-67.948 29.544-67.665Q29.862-67.382 29.862-66.984Q29.862-66.621 29.643-66.355Q29.423-66.090 29.077-65.950Q28.731-65.809 28.380-65.809Q28.157-65.809 27.910-65.857Q27.662-65.906 27.442-66.016Q27.223-66.125 27.091-66.304Q26.959-66.483 26.959-66.738Q26.959-66.887 27.062-66.990Q27.164-67.092 27.313-67.092Q27.463-67.092 27.565-66.990Q27.668-66.887 27.668-66.738Q27.668-66.606 27.579-66.505Q27.489-66.404 27.354-66.386",[1838],[1834,3918],{"fill":1828,"d":3919},"M-1.902-18.01h39.834v-19.917H-1.902Z",[1822,3921,3922,3928],{"stroke":1828},[1822,3923,3925],{"transform":3924},"translate(-4.533 37.988)",[1834,3926],{"d":3909,"fill":1824,"stroke":1824,"className":3927,"style":1839},[1838],[1822,3929,3930],{"transform":3924},[1834,3931],{"d":3932,"fill":1824,"stroke":1824,"className":3933,"style":1873},"M24.747-65.809Q24.337-65.809 24.053-65.988Q23.769-66.166 23.600-66.474Q23.432-66.782 23.363-67.143Q23.294-67.505 23.294-67.874Q23.294-68.390 23.527-68.866Q23.760-69.342 24.180-69.634Q24.601-69.925 25.137-69.925Q25.509-69.925 25.767-69.758Q26.024-69.591 26.024-69.234Q26.024-69.105 25.939-69.020Q25.854-68.935 25.723-68.935Q25.594-68.935 25.506-69.020Q25.418-69.105 25.418-69.234Q25.418-69.345 25.488-69.429Q25.559-69.512 25.664-69.536Q25.503-69.703 25.137-69.703Q24.835-69.703 24.582-69.546Q24.328-69.389 24.164-69.128Q24.023-68.885 23.971-68.588Q23.918-68.290 23.918-67.956Q24.258-68.504 24.823-68.504Q25.201-68.504 25.515-68.329Q25.828-68.153 26.013-67.848Q26.197-67.543 26.197-67.165Q26.197-66.773 25.998-66.462Q25.799-66.152 25.465-65.980Q25.131-65.809 24.747-65.809M24.747-66.049Q25.081-66.049 25.266-66.196Q25.450-66.342 25.512-66.580Q25.573-66.817 25.573-67.154L25.573-67.171Q25.573-67.687 25.416-67.987Q25.260-68.288 24.788-68.288Q24.533-68.288 24.338-68.143Q24.144-67.998 24.040-67.769Q23.936-67.540 23.936-67.291Q23.936-67.212 23.941-67.171Q23.941-67.151 23.938-67.151Q23.936-67.151 23.936-67.130Q23.936-66.700 24.136-66.374Q24.337-66.049 24.747-66.049",[1838],[1834,3935],{"fill":1828,"d":3936},"M-1.902 16.133h39.834V-3.784H-1.902Z",[1822,3938,3939,3945],{"stroke":1828},[1822,3940,3942],{"transform":3941},"translate(-4.533 72.131)",[1834,3943],{"d":3909,"fill":1824,"stroke":1824,"className":3944,"style":1839},[1838],[1822,3946,3947],{"transform":3941},[1834,3948],{"d":3949,"fill":1824,"stroke":1824,"className":3950,"style":1873},"M23.689-66.386Q23.985-66.049 24.715-66.049Q24.973-66.049 25.153-66.177Q25.333-66.304 25.421-66.512Q25.509-66.720 25.509-66.978Q25.509-67.373 25.302-67.644Q25.096-67.915 24.709-67.915L24.243-67.915Q24.179-67.930 24.164-67.992L24.164-68.059Q24.179-68.115 24.243-68.132L24.645-68.156Q24.855-68.156 25.024-68.298Q25.192-68.440 25.285-68.654Q25.377-68.868 25.377-69.084Q25.377-69.372 25.192-69.537Q25.008-69.703 24.715-69.703Q24.454-69.703 24.230-69.635Q24.006-69.568 23.859-69.410Q23.988-69.392 24.067-69.303Q24.146-69.213 24.146-69.084Q24.146-68.947 24.051-68.852Q23.956-68.756 23.815-68.756Q23.681-68.756 23.584-68.853Q23.487-68.950 23.487-69.084Q23.487-69.372 23.678-69.563Q23.868-69.755 24.149-69.840Q24.431-69.925 24.715-69.925Q24.990-69.925 25.291-69.834Q25.591-69.744 25.799-69.555Q26.007-69.366 26.007-69.084Q26.007-68.715 25.761-68.443Q25.515-68.170 25.143-68.041Q25.562-67.948 25.879-67.665Q26.197-67.382 26.197-66.984Q26.197-66.621 25.978-66.355Q25.758-66.090 25.412-65.950Q25.066-65.809 24.715-65.809Q24.492-65.809 24.245-65.857Q23.997-65.906 23.777-66.016Q23.558-66.125 23.426-66.304Q23.294-66.483 23.294-66.738Q23.294-66.887 23.396-66.990Q23.499-67.092 23.648-67.092Q23.798-67.092 23.900-66.990Q24.003-66.887 24.003-66.738Q24.003-66.606 23.914-66.505Q23.824-66.404 23.689-66.386",[1838],[1834,3952],{"fill":1828,"d":3953},"M-1.902 50.277h39.834V30.36H-1.902Z",[1822,3955,3956,3962],{"stroke":1828},[1822,3957,3959],{"transform":3958},"translate(-4.533 106.275)",[1834,3960],{"d":3909,"fill":1824,"stroke":1824,"className":3961,"style":1839},[1838],[1822,3963,3964],{"transform":3958},[1834,3965],{"d":3966,"fill":1824,"stroke":1824,"className":3967,"style":1873},"M25.957-65.935L23.666-65.935L23.666-66.193Q24.542-66.193 24.542-66.366L24.542-69.445Q24.349-69.357 24.117-69.320Q23.886-69.284 23.631-69.284L23.631-69.541Q24.009-69.541 24.330-69.626Q24.650-69.711 24.879-69.925L24.999-69.925Q25.031-69.925 25.056-69.902Q25.081-69.878 25.081-69.840L25.081-66.366Q25.081-66.193 25.957-66.193",[1838],[1822,3969,3970,3973],{"fill":2087,"stroke":2088,"style":2089},[1834,3971],{"d":3972},"M-1.902 84.42h39.834V64.503H-1.902Z",[1822,3974,3975,3981,3987,3993],{"fill":1824,"stroke":1828},[1822,3976,3978],{"transform":3977},"translate(-10.443 140.418)",[1834,3979],{"d":3909,"fill":1824,"stroke":1824,"className":3980,"style":1839},[1838],[1822,3982,3983],{"transform":3977},[1834,3984],{"d":3985,"fill":1824,"stroke":1824,"className":3986,"style":1873},"M24.747-65.809Q24.185-65.809 23.855-66.096Q23.525-66.383 23.398-66.833Q23.270-67.283 23.270-67.848Q23.270-68.252 23.336-68.617Q23.402-68.982 23.565-69.278Q23.728-69.574 24.019-69.749Q24.311-69.925 24.747-69.925Q25.184-69.925 25.474-69.749Q25.764-69.574 25.928-69.279Q26.092-68.985 26.156-68.627Q26.221-68.270 26.221-67.848Q26.221-67.283 26.093-66.833Q25.966-66.383 25.639-66.096Q25.312-65.809 24.747-65.809M24.747-66.026Q25.151-66.026 25.346-66.336Q25.541-66.647 25.585-67.039Q25.629-67.432 25.629-67.945Q25.629-68.440 25.585-68.799Q25.541-69.158 25.346-69.433Q25.151-69.708 24.747-69.708Q24.343-69.708 24.148-69.433Q23.953-69.158 23.909-68.799Q23.865-68.440 23.865-67.945Q23.865-67.432 23.909-67.039Q23.953-66.647 24.148-66.336Q24.343-66.026 24.747-66.026",[1838],[1822,3988,3989],{"transform":3977},[1834,3990],{"d":3991,"fill":1824,"stroke":1824,"className":3992,"style":1839},"M33.582-63.255L27.776-63.255Q27.697-63.268 27.647-63.318Q27.596-63.369 27.596-63.444Q27.596-63.593 27.776-63.641L33.582-63.641Q33.753-63.589 33.753-63.444Q33.753-63.290 33.582-63.255M33.582-65.083L27.776-65.083Q27.596-65.113 27.596-65.272Q27.596-65.421 27.776-65.469L33.582-65.469Q33.753-65.417 33.753-65.272Q33.753-65.118 33.582-65.083",[1838],[1822,3994,3995],{"transform":3977},[1834,3996],{"d":3997,"fill":1824,"stroke":1824,"className":3998,"style":1839},"M38.184-62.112L35.152-62.112L35.152-62.428Q36.303-62.428 36.303-62.723L36.303-67.447Q35.815-67.214 35.094-67.214L35.094-67.530Q36.224-67.530 36.786-68.106L36.931-68.106Q36.966-68.106 36.999-68.073Q37.032-68.040 37.032-68.005L37.032-62.723Q37.032-62.428 38.184-62.428",[1838],[1834,4000],{"fill":1828,"d":4001},"M18.015-51.953v11.826",[1834,4003],{"stroke":1828,"d":4004},"m18.015-38.127 1.6-3.2-1.6 1.2-1.6-1.2",[1822,4006,4008,4015,4021,4027,4033,4039,4045,4051,4057,4063],{"stroke":1828,"fontSize":4007},"8",[1822,4009,4011],{"transform":4010},"translate(3.533 19.072)",[1834,4012],{"d":4013,"fill":1824,"stroke":1824,"className":4014,"style":2060},"M21.609-62.112L18.816-62.112L18.816-62.409Q19.878-62.409 19.878-62.671L19.878-66.839Q19.449-66.624 18.769-66.624L18.769-66.921Q19.788-66.921 20.304-67.432L20.449-67.432Q20.523-67.413 20.542-67.335L20.542-62.671Q20.542-62.409 21.609-62.409L21.609-62.112M23.054-62.745Q23.245-62.471 23.601-62.344Q23.956-62.217 24.339-62.217Q24.675-62.217 24.884-62.403Q25.093-62.589 25.189-62.882Q25.285-63.175 25.285-63.487Q25.285-63.811 25.187-64.106Q25.089-64.401 24.876-64.585Q24.663-64.768 24.331-64.768L23.765-64.768Q23.734-64.768 23.704-64.798Q23.675-64.827 23.675-64.854L23.675-64.936Q23.675-64.971 23.704-64.997Q23.734-65.022 23.765-65.022L24.245-65.057Q24.531-65.057 24.728-65.262Q24.925-65.467 25.021-65.762Q25.117-66.057 25.117-66.335Q25.117-66.714 24.917-66.952Q24.718-67.190 24.339-67.190Q24.019-67.190 23.730-67.083Q23.441-66.975 23.277-66.753Q23.456-66.753 23.579-66.626Q23.703-66.499 23.703-66.327Q23.703-66.155 23.578-66.030Q23.453-65.905 23.277-65.905Q23.105-65.905 22.980-66.030Q22.855-66.155 22.855-66.327Q22.855-66.694 23.079-66.942Q23.304-67.190 23.644-67.311Q23.984-67.432 24.339-67.432Q24.687-67.432 25.050-67.311Q25.413-67.190 25.661-66.940Q25.910-66.690 25.910-66.335Q25.910-65.850 25.591-65.467Q25.273-65.085 24.796-64.913Q25.347-64.803 25.747-64.417Q26.148-64.030 26.148-63.495Q26.148-63.038 25.884-62.682Q25.620-62.327 25.199-62.135Q24.777-61.944 24.339-61.944Q23.929-61.944 23.536-62.079Q23.144-62.214 22.878-62.499Q22.613-62.784 22.613-63.202Q22.613-63.397 22.745-63.526Q22.878-63.655 23.070-63.655Q23.195-63.655 23.298-63.596Q23.402-63.538 23.464-63.432Q23.527-63.327 23.527-63.202Q23.527-63.007 23.392-62.876Q23.257-62.745 23.054-62.745",[1838],[1822,4016,4017],{"transform":4010},[1834,4018],{"d":4019,"fill":1824,"stroke":1824,"className":4020,"style":2060},"M29.587-63.807Q29.587-64.311 29.843-64.743Q30.099-65.174 30.535-65.426Q30.970-65.678 31.470-65.678Q31.857-65.678 32.199-65.534Q32.540-65.389 32.802-65.128Q33.064-64.866 33.206-64.530Q33.349-64.194 33.349-63.807Q33.349-63.315 33.085-62.905Q32.822-62.495 32.392-62.264Q31.962-62.034 31.470-62.034Q30.978-62.034 30.544-62.266Q30.111-62.499 29.849-62.907Q29.587-63.315 29.587-63.807M31.470-62.311Q31.927-62.311 32.179-62.534Q32.431-62.757 32.519-63.108Q32.607-63.460 32.607-63.905Q32.607-64.335 32.513-64.673Q32.419-65.010 32.165-65.217Q31.912-65.424 31.470-65.424Q30.822-65.424 30.578-65.008Q30.333-64.592 30.333-63.905Q30.333-63.460 30.421-63.108Q30.509-62.757 30.761-62.534Q31.013-62.311 31.470-62.311",[1838],[1822,4022,4023],{"transform":4010},[1834,4024],{"d":4025,"fill":1824,"stroke":1824,"className":4026,"style":2060},"M35.890-62.034Q35.409-62.034 35.001-62.278Q34.593-62.522 34.355-62.936Q34.116-63.350 34.116-63.839Q34.116-64.331 34.374-64.747Q34.632-65.163 35.064-65.401Q35.495-65.639 35.987-65.639Q36.608-65.639 37.058-65.202L37.058-66.831Q37.058-67.046 36.995-67.141Q36.933-67.237 36.815-67.258Q36.698-67.280 36.452-67.280L36.452-67.577L37.675-67.663L37.675-62.854Q37.675-62.643 37.737-62.548Q37.800-62.452 37.917-62.430Q38.034-62.409 38.284-62.409L38.284-62.112L37.034-62.034L37.034-62.518Q36.569-62.034 35.890-62.034M35.956-62.288Q36.296-62.288 36.589-62.479Q36.882-62.671 37.034-62.967L37.034-64.799Q36.886-65.073 36.624-65.229Q36.362-65.385 36.050-65.385Q35.425-65.385 35.142-64.938Q34.858-64.491 34.858-63.831Q34.858-63.186 35.110-62.737Q35.362-62.288 35.956-62.288M40.608-62.034Q40.128-62.034 39.720-62.278Q39.312-62.522 39.073-62.936Q38.835-63.350 38.835-63.839Q38.835-64.331 39.093-64.747Q39.351-65.163 39.782-65.401Q40.214-65.639 40.706-65.639Q41.327-65.639 41.776-65.202L41.776-66.831Q41.776-67.046 41.714-67.141Q41.651-67.237 41.534-67.258Q41.417-67.280 41.171-67.280L41.171-67.577L42.394-67.663L42.394-62.854Q42.394-62.643 42.456-62.548Q42.519-62.452 42.636-62.430Q42.753-62.409 43.003-62.409L43.003-62.112L41.753-62.034L41.753-62.518Q41.288-62.034 40.608-62.034M40.675-62.288Q41.015-62.288 41.308-62.479Q41.601-62.671 41.753-62.967L41.753-64.799Q41.605-65.073 41.343-65.229Q41.081-65.385 40.769-65.385Q40.144-65.385 39.860-64.938Q39.577-64.491 39.577-63.831Q39.577-63.186 39.829-62.737Q40.081-62.288 40.675-62.288M43.991-62.577Q43.991-62.760 44.128-62.897Q44.265-63.034 44.456-63.034Q44.648-63.034 44.780-62.901Q44.913-62.768 44.913-62.577Q44.913-62.378 44.780-62.245Q44.648-62.112 44.456-62.112Q44.265-62.112 44.128-62.249Q43.991-62.385 43.991-62.577M43.991-65.104Q43.991-65.288 44.128-65.424Q44.265-65.561 44.456-65.561Q44.648-65.561 44.780-65.428Q44.913-65.296 44.913-65.104Q44.913-64.905 44.780-64.772Q44.648-64.639 44.456-64.639Q44.265-64.639 44.128-64.776Q43.991-64.913 43.991-65.104",[1838],[1822,4028,4029],{"transform":4010},[1834,4030],{"d":4031,"fill":1824,"stroke":1824,"className":4032,"style":2060},"M50.892-60.280L50.892-67.944Q50.919-68.112 51.075-68.112Q51.231-68.112 51.259-67.944L51.259-60.479L52.860-60.479Q53.028-60.452 53.028-60.296Q53.028-60.139 52.860-60.112L51.067-60.112Q50.915-60.135 50.892-60.280",[1838],[1822,4034,4035],{"transform":4010},[1834,4036],{"d":4037,"fill":1824,"stroke":1824,"className":4038,"style":2060},"M56.790-62.112L53.997-62.112L53.997-62.409Q55.059-62.409 55.059-62.671L55.059-66.839Q54.630-66.624 53.950-66.624L53.950-66.921Q54.969-66.921 55.485-67.432L55.630-67.432Q55.704-67.413 55.723-67.335L55.723-62.671Q55.723-62.409 56.790-62.409L56.790-62.112M58.235-62.745Q58.426-62.471 58.782-62.344Q59.137-62.217 59.520-62.217Q59.856-62.217 60.065-62.403Q60.274-62.589 60.370-62.882Q60.466-63.175 60.466-63.487Q60.466-63.811 60.368-64.106Q60.270-64.401 60.057-64.585Q59.844-64.768 59.512-64.768L58.946-64.768Q58.915-64.768 58.885-64.798Q58.856-64.827 58.856-64.854L58.856-64.936Q58.856-64.971 58.885-64.997Q58.915-65.022 58.946-65.022L59.426-65.057Q59.712-65.057 59.909-65.262Q60.106-65.467 60.202-65.762Q60.298-66.057 60.298-66.335Q60.298-66.714 60.098-66.952Q59.899-67.190 59.520-67.190Q59.200-67.190 58.911-67.083Q58.622-66.975 58.458-66.753Q58.637-66.753 58.760-66.626Q58.883-66.499 58.883-66.327Q58.883-66.155 58.758-66.030Q58.633-65.905 58.458-65.905Q58.286-65.905 58.161-66.030Q58.036-66.155 58.036-66.327Q58.036-66.694 58.260-66.942Q58.485-67.190 58.825-67.311Q59.165-67.432 59.520-67.432Q59.868-67.432 60.231-67.311Q60.594-67.190 60.842-66.940Q61.091-66.690 61.091-66.335Q61.091-65.850 60.772-65.467Q60.454-65.085 59.977-64.913Q60.528-64.803 60.928-64.417Q61.329-64.030 61.329-63.495Q61.329-63.038 61.065-62.682Q60.801-62.327 60.380-62.135Q59.958-61.944 59.520-61.944Q59.110-61.944 58.717-62.079Q58.325-62.214 58.059-62.499Q57.794-62.784 57.794-63.202Q57.794-63.397 57.926-63.526Q58.059-63.655 58.251-63.655Q58.376-63.655 58.479-63.596Q58.583-63.538 58.645-63.432Q58.708-63.327 58.708-63.202Q58.708-63.007 58.573-62.876Q58.438-62.745 58.235-62.745",[1838],[1822,4040,4041],{"transform":4010},[1834,4042],{"d":4043,"fill":1824,"stroke":1824,"className":4044,"style":2060},"M62.170-60.296Q62.170-60.315 62.185-60.370L65.111-68.007Q65.177-68.112 65.283-68.112Q65.361-68.112 65.414-68.059Q65.467-68.007 65.467-67.928Q65.467-67.909 65.451-67.854L62.521-60.217Q62.459-60.112 62.353-60.112Q62.279-60.112 62.224-60.167Q62.170-60.221 62.170-60.296",[1838],[1822,4046,4047],{"transform":4010},[1834,4048],{"d":4049,"fill":1824,"stroke":1824,"className":4050,"style":2060},"M69.533-62.112L66.373-62.112L66.373-62.319Q66.373-62.346 66.396-62.378L67.748-63.776Q68.127-64.163 68.375-64.452Q68.623-64.741 68.797-65.098Q68.970-65.456 68.970-65.846Q68.970-66.194 68.838-66.487Q68.705-66.780 68.451-66.958Q68.197-67.135 67.842-67.135Q67.482-67.135 67.191-66.940Q66.900-66.745 66.756-66.417L66.810-66.417Q66.994-66.417 67.119-66.296Q67.244-66.174 67.244-65.983Q67.244-65.803 67.119-65.674Q66.994-65.546 66.810-65.546Q66.631-65.546 66.502-65.674Q66.373-65.803 66.373-65.983Q66.373-66.385 66.593-66.721Q66.814-67.057 67.179-67.245Q67.545-67.432 67.947-67.432Q68.427-67.432 68.843-67.245Q69.260-67.057 69.511-66.696Q69.763-66.335 69.763-65.846Q69.763-65.487 69.609-65.184Q69.455-64.882 69.203-64.622Q68.951-64.362 68.601-64.077Q68.252-63.792 68.084-63.639L67.154-62.800L67.869-62.800Q69.244-62.800 69.283-62.839Q69.353-62.917 69.396-63.102Q69.439-63.288 69.482-63.577L69.763-63.577",[1838],[1822,4052,4053],{"transform":4010},[1834,4054],{"d":4055,"fill":1824,"stroke":1824,"className":4056,"style":2060},"M72.326-60.112L70.525-60.112Q70.357-60.139 70.357-60.296Q70.357-60.452 70.525-60.479L72.127-60.479L72.127-67.944Q72.154-68.112 72.310-68.112Q72.385-68.112 72.433-68.063Q72.482-68.014 72.494-67.944L72.494-60.280Q72.470-60.135 72.326-60.112",[1838],[1822,4058,4059],{"transform":4010},[1834,4060],{"d":4061,"fill":1824,"stroke":1824,"className":4062,"style":2060},"M82.297-63.089L76.984-63.089Q76.906-63.096 76.857-63.145Q76.809-63.194 76.809-63.272Q76.809-63.342 76.856-63.393Q76.902-63.444 76.984-63.456L82.297-63.456Q82.371-63.444 82.418-63.393Q82.465-63.342 82.465-63.272Q82.465-63.194 82.416-63.145Q82.367-63.096 82.297-63.089M82.297-64.776L76.984-64.776Q76.906-64.784 76.857-64.833Q76.809-64.882 76.809-64.960Q76.809-65.030 76.856-65.081Q76.902-65.132 76.984-65.143L82.297-65.143Q82.371-65.132 82.418-65.081Q82.465-65.030 82.465-64.960Q82.465-64.882 82.416-64.833Q82.367-64.784 82.297-64.776",[1838],[1822,4064,4065],{"transform":4010},[1834,4066],{"d":4067,"fill":1824,"stroke":1824,"className":4068,"style":2060},"M87.429-61.944Q86.757-61.944 86.361-62.368Q85.964-62.792 85.812-63.411Q85.660-64.030 85.660-64.698Q85.660-65.358 85.931-65.991Q86.203-66.624 86.716-67.028Q87.230-67.432 87.902-67.432Q88.191-67.432 88.439-67.333Q88.687-67.233 88.833-67.032Q88.980-66.831 88.980-66.526Q88.980-66.421 88.929-66.329Q88.878-66.237 88.787-66.186Q88.695-66.135 88.589-66.135Q88.421-66.135 88.308-66.249Q88.195-66.362 88.195-66.526Q88.195-66.686 88.304-66.803Q88.413-66.921 88.581-66.921Q88.382-67.190 87.902-67.190Q87.484-67.190 87.152-66.913Q86.820-66.635 86.644-66.217Q86.445-65.717 86.445-64.815Q86.609-65.139 86.888-65.339Q87.167-65.538 87.515-65.538Q87.999-65.538 88.384-65.292Q88.769-65.046 88.982-64.637Q89.195-64.229 89.195-63.745Q89.195-63.253 88.964-62.841Q88.734-62.428 88.324-62.186Q87.913-61.944 87.429-61.944M87.429-62.217Q87.855-62.217 88.072-62.438Q88.288-62.659 88.351-62.985Q88.413-63.311 88.413-63.745Q88.413-64.057 88.388-64.307Q88.363-64.557 88.273-64.782Q88.183-65.007 87.988-65.143Q87.792-65.280 87.476-65.280Q87.148-65.280 86.915-65.071Q86.683-64.862 86.572-64.544Q86.460-64.225 86.460-63.913Q86.464-63.874 86.466-63.841Q86.468-63.807 86.468-63.753Q86.468-63.737 86.466-63.729Q86.464-63.721 86.460-63.714Q86.460-63.139 86.687-62.678Q86.913-62.217 87.429-62.217",[1838],[1834,4070],{"fill":1828,"d":4071},"M18.015-17.81v11.826",[1834,4073],{"stroke":1828,"d":4074},"m18.015-3.984 1.6-3.2-1.6 1.2-1.6-1.2",[1822,4076,4077,4084,4090,4096,4102,4108,4114,4120],{"stroke":1828,"fontSize":4007},[1822,4078,4080],{"transform":4079},"translate(3.533 53.215)",[1834,4081],{"d":4082,"fill":1824,"stroke":1824,"className":4083,"style":2060},"M20.136-61.944Q19.464-61.944 19.068-62.368Q18.671-62.792 18.519-63.411Q18.367-64.030 18.367-64.698Q18.367-65.358 18.638-65.991Q18.910-66.624 19.423-67.028Q19.937-67.432 20.609-67.432Q20.898-67.432 21.146-67.333Q21.394-67.233 21.540-67.032Q21.687-66.831 21.687-66.526Q21.687-66.421 21.636-66.329Q21.585-66.237 21.494-66.186Q21.402-66.135 21.296-66.135Q21.128-66.135 21.015-66.249Q20.902-66.362 20.902-66.526Q20.902-66.686 21.011-66.803Q21.120-66.921 21.288-66.921Q21.089-67.190 20.609-67.190Q20.191-67.190 19.859-66.913Q19.527-66.635 19.351-66.217Q19.152-65.717 19.152-64.815Q19.316-65.139 19.595-65.339Q19.874-65.538 20.222-65.538Q20.706-65.538 21.091-65.292Q21.476-65.046 21.689-64.637Q21.902-64.229 21.902-63.745Q21.902-63.253 21.671-62.841Q21.441-62.428 21.031-62.186Q20.620-61.944 20.136-61.944M20.136-62.217Q20.562-62.217 20.779-62.438Q20.995-62.659 21.058-62.985Q21.120-63.311 21.120-63.745Q21.120-64.057 21.095-64.307Q21.070-64.557 20.980-64.782Q20.890-65.007 20.695-65.143Q20.499-65.280 20.183-65.280Q19.855-65.280 19.622-65.071Q19.390-64.862 19.279-64.544Q19.167-64.225 19.167-63.913Q19.171-63.874 19.173-63.841Q19.175-63.807 19.175-63.753Q19.175-63.737 19.173-63.729Q19.171-63.721 19.167-63.714Q19.167-63.139 19.394-62.678Q19.620-62.217 20.136-62.217",[1838],[1822,4085,4086],{"transform":4079},[1834,4087],{"d":4088,"fill":1824,"stroke":1824,"className":4089,"style":2060},"M25.337-63.866Q25.337-64.346 25.570-64.762Q25.802-65.178 26.212-65.428Q26.622-65.678 27.099-65.678Q27.829-65.678 28.228-65.237Q28.626-64.796 28.626-64.065Q28.626-63.960 28.533-63.936L26.083-63.936L26.083-63.866Q26.083-63.456 26.204-63.100Q26.326-62.745 26.597-62.528Q26.869-62.311 27.298-62.311Q27.662-62.311 27.958-62.540Q28.255-62.768 28.357-63.120Q28.365-63.167 28.451-63.182L28.533-63.182Q28.626-63.155 28.626-63.073Q28.626-63.065 28.619-63.034Q28.556-62.807 28.417-62.624Q28.279-62.440 28.087-62.307Q27.896-62.175 27.677-62.104Q27.458-62.034 27.220-62.034Q26.849-62.034 26.511-62.171Q26.173-62.307 25.906-62.559Q25.638-62.811 25.488-63.151Q25.337-63.491 25.337-63.866M26.091-64.174L28.052-64.174Q28.052-64.479 27.951-64.770Q27.849-65.061 27.632-65.243Q27.415-65.424 27.099-65.424Q26.798-65.424 26.568-65.237Q26.337-65.049 26.214-64.758Q26.091-64.467 26.091-64.174M30.915-62.143L29.693-64.999Q29.611-65.174 29.466-65.219Q29.322-65.264 29.052-65.264L29.052-65.561L30.763-65.561L30.763-65.264Q30.341-65.264 30.341-65.081Q30.341-65.046 30.357-64.999L31.302-62.807L32.142-64.784Q32.181-64.862 32.181-64.952Q32.181-65.092 32.076-65.178Q31.970-65.264 31.829-65.264L31.829-65.561L33.181-65.561L33.181-65.264Q32.658-65.264 32.443-64.784L31.318-62.143Q31.255-62.034 31.150-62.034L31.083-62.034Q30.970-62.034 30.915-62.143",[1838],[1822,4091,4092],{"transform":4079},[1834,4093],{"d":4094,"fill":1824,"stroke":1824,"className":4095,"style":2060},"M33.365-63.866Q33.365-64.346 33.598-64.762Q33.830-65.178 34.240-65.428Q34.650-65.678 35.127-65.678Q35.857-65.678 36.256-65.237Q36.654-64.796 36.654-64.065Q36.654-63.960 36.561-63.936L34.111-63.936L34.111-63.866Q34.111-63.456 34.232-63.100Q34.354-62.745 34.625-62.528Q34.897-62.311 35.326-62.311Q35.690-62.311 35.986-62.540Q36.283-62.768 36.385-63.120Q36.393-63.167 36.479-63.182L36.561-63.182Q36.654-63.155 36.654-63.073Q36.654-63.065 36.647-63.034Q36.584-62.807 36.445-62.624Q36.307-62.440 36.115-62.307Q35.924-62.175 35.705-62.104Q35.486-62.034 35.248-62.034Q34.877-62.034 34.539-62.171Q34.201-62.307 33.934-62.559Q33.666-62.811 33.516-63.151Q33.365-63.491 33.365-63.866M34.119-64.174L36.080-64.174Q36.080-64.479 35.979-64.770Q35.877-65.061 35.660-65.243Q35.443-65.424 35.127-65.424Q34.826-65.424 34.596-65.237Q34.365-65.049 34.242-64.758Q34.119-64.467 34.119-64.174M39.072-62.112L37.217-62.112L37.217-62.409Q37.490-62.409 37.658-62.456Q37.826-62.503 37.826-62.671L37.826-64.807Q37.826-65.022 37.764-65.118Q37.701-65.214 37.582-65.235Q37.463-65.257 37.217-65.257L37.217-65.553L38.408-65.639L38.408-64.905Q38.522-65.120 38.715-65.288Q38.908-65.456 39.147-65.548Q39.385-65.639 39.639-65.639Q40.807-65.639 40.807-64.561L40.807-62.671Q40.807-62.503 40.977-62.456Q41.147-62.409 41.416-62.409L41.416-62.112L39.561-62.112L39.561-62.409Q39.834-62.409 40.002-62.456Q40.170-62.503 40.170-62.671L40.170-64.546Q40.170-64.928 40.049-65.157Q39.928-65.385 39.576-65.385Q39.264-65.385 39.010-65.223Q38.756-65.061 38.609-64.792Q38.463-64.522 38.463-64.225L38.463-62.671Q38.463-62.503 38.633-62.456Q38.803-62.409 39.072-62.409L39.072-62.112M42.342-62.577Q42.342-62.760 42.479-62.897Q42.615-63.034 42.807-63.034Q42.998-63.034 43.131-62.901Q43.264-62.768 43.264-62.577Q43.264-62.378 43.131-62.245Q42.998-62.112 42.807-62.112Q42.615-62.112 42.479-62.249Q42.342-62.385 42.342-62.577M42.342-65.104Q42.342-65.288 42.479-65.424Q42.615-65.561 42.807-65.561Q42.998-65.561 43.131-65.428Q43.264-65.296 43.264-65.104Q43.264-64.905 43.131-64.772Q42.998-64.639 42.807-64.639Q42.615-64.639 42.479-64.776Q42.342-64.913 42.342-65.104",[1838],[1822,4097,4098],{"transform":4079},[1834,4099],{"d":4100,"fill":1824,"stroke":1824,"className":4101,"style":2060},"M49.887-61.944Q49.215-61.944 48.819-62.368Q48.422-62.792 48.270-63.411Q48.118-64.030 48.118-64.698Q48.118-65.358 48.389-65.991Q48.661-66.624 49.174-67.028Q49.688-67.432 50.360-67.432Q50.649-67.432 50.897-67.333Q51.145-67.233 51.291-67.032Q51.438-66.831 51.438-66.526Q51.438-66.421 51.387-66.329Q51.336-66.237 51.245-66.186Q51.153-66.135 51.047-66.135Q50.879-66.135 50.766-66.249Q50.653-66.362 50.653-66.526Q50.653-66.686 50.762-66.803Q50.871-66.921 51.039-66.921Q50.840-67.190 50.360-67.190Q49.942-67.190 49.610-66.913Q49.278-66.635 49.102-66.217Q48.903-65.717 48.903-64.815Q49.067-65.139 49.346-65.339Q49.625-65.538 49.973-65.538Q50.457-65.538 50.842-65.292Q51.227-65.046 51.440-64.637Q51.653-64.229 51.653-63.745Q51.653-63.253 51.422-62.841Q51.192-62.428 50.782-62.186Q50.371-61.944 49.887-61.944M49.887-62.217Q50.313-62.217 50.530-62.438Q50.746-62.659 50.809-62.985Q50.871-63.311 50.871-63.745Q50.871-64.057 50.846-64.307Q50.821-64.557 50.731-64.782Q50.641-65.007 50.446-65.143Q50.250-65.280 49.934-65.280Q49.606-65.280 49.373-65.071Q49.141-64.862 49.030-64.544Q48.918-64.225 48.918-63.913Q48.922-63.874 48.924-63.841Q48.926-63.807 48.926-63.753Q48.926-63.737 48.924-63.729Q48.922-63.721 48.918-63.714Q48.918-63.139 49.145-62.678Q49.371-62.217 49.887-62.217",[1838],[1822,4103,4104],{"transform":4079},[1834,4105],{"d":4106,"fill":1824,"stroke":1824,"className":4107,"style":2060},"M52.489-60.296Q52.489-60.315 52.504-60.370L55.430-68.007Q55.496-68.112 55.602-68.112Q55.680-68.112 55.733-68.059Q55.786-68.007 55.786-67.928Q55.786-67.909 55.770-67.854L52.840-60.217Q52.778-60.112 52.672-60.112Q52.598-60.112 52.543-60.167Q52.489-60.221 52.489-60.296",[1838],[1822,4109,4110],{"transform":4079},[1834,4111],{"d":4112,"fill":1824,"stroke":1824,"className":4113,"style":2060},"M59.852-62.112L56.692-62.112L56.692-62.319Q56.692-62.346 56.715-62.378L58.067-63.776Q58.446-64.163 58.694-64.452Q58.942-64.741 59.116-65.098Q59.289-65.456 59.289-65.846Q59.289-66.194 59.157-66.487Q59.024-66.780 58.770-66.958Q58.516-67.135 58.161-67.135Q57.801-67.135 57.510-66.940Q57.219-66.745 57.075-66.417L57.129-66.417Q57.313-66.417 57.438-66.296Q57.563-66.174 57.563-65.983Q57.563-65.803 57.438-65.674Q57.313-65.546 57.129-65.546Q56.950-65.546 56.821-65.674Q56.692-65.803 56.692-65.983Q56.692-66.385 56.912-66.721Q57.133-67.057 57.498-67.245Q57.864-67.432 58.266-67.432Q58.746-67.432 59.162-67.245Q59.578-67.057 59.830-66.696Q60.082-66.335 60.082-65.846Q60.082-65.487 59.928-65.184Q59.774-64.882 59.522-64.622Q59.270-64.362 58.920-64.077Q58.571-63.792 58.403-63.639L57.473-62.800L58.188-62.800Q59.563-62.800 59.602-62.839Q59.672-62.917 59.715-63.102Q59.758-63.288 59.801-63.577L60.082-63.577",[1838],[1822,4115,4116],{"transform":4079},[1834,4117],{"d":4118,"fill":1824,"stroke":1824,"className":4119,"style":2060},"M68.838-63.089L63.525-63.089Q63.447-63.096 63.398-63.145Q63.350-63.194 63.350-63.272Q63.350-63.342 63.397-63.393Q63.443-63.444 63.525-63.456L68.838-63.456Q68.912-63.444 68.959-63.393Q69.006-63.342 69.006-63.272Q69.006-63.194 68.957-63.145Q68.908-63.096 68.838-63.089M68.838-64.776L63.525-64.776Q63.447-64.784 63.398-64.833Q63.350-64.882 63.350-64.960Q63.350-65.030 63.397-65.081Q63.443-65.132 63.525-65.143L68.838-65.143Q68.912-65.132 68.959-65.081Q69.006-65.030 69.006-64.960Q69.006-64.882 68.957-64.833Q68.908-64.784 68.838-64.776",[1838],[1822,4121,4122],{"transform":4079},[1834,4123],{"d":4124,"fill":1824,"stroke":1824,"className":4125,"style":2060},"M72.643-62.745Q72.834-62.471 73.190-62.344Q73.545-62.217 73.928-62.217Q74.264-62.217 74.473-62.403Q74.682-62.589 74.778-62.882Q74.873-63.175 74.873-63.487Q74.873-63.811 74.776-64.106Q74.678-64.401 74.465-64.585Q74.252-64.768 73.920-64.768L73.354-64.768Q73.323-64.768 73.293-64.798Q73.264-64.827 73.264-64.854L73.264-64.936Q73.264-64.971 73.293-64.997Q73.323-65.022 73.354-65.022L73.834-65.057Q74.120-65.057 74.317-65.262Q74.514-65.467 74.610-65.762Q74.705-66.057 74.705-66.335Q74.705-66.714 74.506-66.952Q74.307-67.190 73.928-67.190Q73.608-67.190 73.319-67.083Q73.030-66.975 72.866-66.753Q73.045-66.753 73.168-66.626Q73.291-66.499 73.291-66.327Q73.291-66.155 73.166-66.030Q73.041-65.905 72.866-65.905Q72.694-65.905 72.569-66.030Q72.444-66.155 72.444-66.327Q72.444-66.694 72.668-66.942Q72.893-67.190 73.233-67.311Q73.573-67.432 73.928-67.432Q74.276-67.432 74.639-67.311Q75.002-67.190 75.250-66.940Q75.498-66.690 75.498-66.335Q75.498-65.850 75.180-65.467Q74.862-65.085 74.385-64.913Q74.936-64.803 75.336-64.417Q75.737-64.030 75.737-63.495Q75.737-63.038 75.473-62.682Q75.209-62.327 74.787-62.135Q74.366-61.944 73.928-61.944Q73.518-61.944 73.125-62.079Q72.733-62.214 72.467-62.499Q72.202-62.784 72.202-63.202Q72.202-63.397 72.334-63.526Q72.467-63.655 72.659-63.655Q72.784-63.655 72.887-63.596Q72.991-63.538 73.053-63.432Q73.116-63.327 73.116-63.202Q73.116-63.007 72.981-62.876Q72.846-62.745 72.643-62.745",[1838],[1834,4127],{"fill":1828,"d":4128},"M18.015 16.333V28.16",[1834,4130],{"stroke":1828,"d":4131},"m18.015 30.16 1.6-3.2-1.6 1.2-1.6-1.2",[1822,4133,4134,4141,4147,4153,4159,4165,4171,4177,4183,4189],{"stroke":1828,"fontSize":4007},[1822,4135,4137],{"transform":4136},"translate(3.533 87.358)",[1834,4138],{"d":4139,"fill":1824,"stroke":1824,"className":4140,"style":2060},"M18.808-62.745Q18.999-62.471 19.355-62.344Q19.710-62.217 20.093-62.217Q20.429-62.217 20.638-62.403Q20.847-62.589 20.943-62.882Q21.038-63.175 21.038-63.487Q21.038-63.811 20.941-64.106Q20.843-64.401 20.630-64.585Q20.417-64.768 20.085-64.768L19.519-64.768Q19.488-64.768 19.458-64.798Q19.429-64.827 19.429-64.854L19.429-64.936Q19.429-64.971 19.458-64.997Q19.488-65.022 19.519-65.022L19.999-65.057Q20.285-65.057 20.482-65.262Q20.679-65.467 20.775-65.762Q20.870-66.057 20.870-66.335Q20.870-66.714 20.671-66.952Q20.472-67.190 20.093-67.190Q19.773-67.190 19.484-67.083Q19.195-66.975 19.031-66.753Q19.210-66.753 19.333-66.626Q19.456-66.499 19.456-66.327Q19.456-66.155 19.331-66.030Q19.206-65.905 19.031-65.905Q18.859-65.905 18.734-66.030Q18.609-66.155 18.609-66.327Q18.609-66.694 18.833-66.942Q19.058-67.190 19.398-67.311Q19.738-67.432 20.093-67.432Q20.441-67.432 20.804-67.311Q21.167-67.190 21.415-66.940Q21.663-66.690 21.663-66.335Q21.663-65.850 21.345-65.467Q21.027-65.085 20.550-64.913Q21.101-64.803 21.501-64.417Q21.902-64.030 21.902-63.495Q21.902-63.038 21.638-62.682Q21.374-62.327 20.953-62.135Q20.531-61.944 20.093-61.944Q19.683-61.944 19.290-62.079Q18.898-62.214 18.632-62.499Q18.367-62.784 18.367-63.202Q18.367-63.397 18.499-63.526Q18.632-63.655 18.824-63.655Q18.949-63.655 19.052-63.596Q19.156-63.538 19.218-63.432Q19.281-63.327 19.281-63.202Q19.281-63.007 19.146-62.876Q19.011-62.745 18.808-62.745",[1838],[1822,4142,4143],{"transform":4136},[1834,4144],{"d":4145,"fill":1824,"stroke":1824,"className":4146,"style":2060},"M25.337-63.807Q25.337-64.311 25.593-64.743Q25.849-65.174 26.285-65.426Q26.720-65.678 27.220-65.678Q27.607-65.678 27.949-65.534Q28.290-65.389 28.552-65.128Q28.814-64.866 28.956-64.530Q29.099-64.194 29.099-63.807Q29.099-63.315 28.835-62.905Q28.572-62.495 28.142-62.264Q27.712-62.034 27.220-62.034Q26.728-62.034 26.294-62.266Q25.861-62.499 25.599-62.907Q25.337-63.315 25.337-63.807M27.220-62.311Q27.677-62.311 27.929-62.534Q28.181-62.757 28.269-63.108Q28.357-63.460 28.357-63.905Q28.357-64.335 28.263-64.673Q28.169-65.010 27.915-65.217Q27.662-65.424 27.220-65.424Q26.572-65.424 26.328-65.008Q26.083-64.592 26.083-63.905Q26.083-63.460 26.171-63.108Q26.259-62.757 26.511-62.534Q26.763-62.311 27.220-62.311",[1838],[1822,4148,4149],{"transform":4136},[1834,4150],{"d":4151,"fill":1824,"stroke":1824,"className":4152,"style":2060},"M31.640-62.034Q31.159-62.034 30.751-62.278Q30.343-62.522 30.105-62.936Q29.866-63.350 29.866-63.839Q29.866-64.331 30.124-64.747Q30.382-65.163 30.814-65.401Q31.245-65.639 31.737-65.639Q32.358-65.639 32.808-65.202L32.808-66.831Q32.808-67.046 32.745-67.141Q32.683-67.237 32.565-67.258Q32.448-67.280 32.202-67.280L32.202-67.577L33.425-67.663L33.425-62.854Q33.425-62.643 33.487-62.548Q33.550-62.452 33.667-62.430Q33.784-62.409 34.034-62.409L34.034-62.112L32.784-62.034L32.784-62.518Q32.319-62.034 31.640-62.034M31.706-62.288Q32.046-62.288 32.339-62.479Q32.632-62.671 32.784-62.967L32.784-64.799Q32.636-65.073 32.374-65.229Q32.112-65.385 31.800-65.385Q31.175-65.385 30.892-64.938Q30.608-64.491 30.608-63.831Q30.608-63.186 30.860-62.737Q31.112-62.288 31.706-62.288M36.358-62.034Q35.878-62.034 35.470-62.278Q35.062-62.522 34.823-62.936Q34.585-63.350 34.585-63.839Q34.585-64.331 34.843-64.747Q35.101-65.163 35.532-65.401Q35.964-65.639 36.456-65.639Q37.077-65.639 37.526-65.202L37.526-66.831Q37.526-67.046 37.464-67.141Q37.401-67.237 37.284-67.258Q37.167-67.280 36.921-67.280L36.921-67.577L38.144-67.663L38.144-62.854Q38.144-62.643 38.206-62.548Q38.269-62.452 38.386-62.430Q38.503-62.409 38.753-62.409L38.753-62.112L37.503-62.034L37.503-62.518Q37.038-62.034 36.358-62.034M36.425-62.288Q36.765-62.288 37.058-62.479Q37.351-62.671 37.503-62.967L37.503-64.799Q37.355-65.073 37.093-65.229Q36.831-65.385 36.519-65.385Q35.894-65.385 35.610-64.938Q35.327-64.491 35.327-63.831Q35.327-63.186 35.579-62.737Q35.831-62.288 36.425-62.288M39.741-62.577Q39.741-62.760 39.878-62.897Q40.015-63.034 40.206-63.034Q40.398-63.034 40.530-62.901Q40.663-62.768 40.663-62.577Q40.663-62.378 40.530-62.245Q40.398-62.112 40.206-62.112Q40.015-62.112 39.878-62.249Q39.741-62.385 39.741-62.577M39.741-65.104Q39.741-65.288 39.878-65.424Q40.015-65.561 40.206-65.561Q40.398-65.561 40.530-65.428Q40.663-65.296 40.663-65.104Q40.663-64.905 40.530-64.772Q40.398-64.639 40.206-64.639Q40.015-64.639 39.878-64.776Q39.741-64.913 39.741-65.104",[1838],[1822,4154,4155],{"transform":4136},[1834,4156],{"d":4157,"fill":1824,"stroke":1824,"className":4158,"style":2060},"M46.642-60.280L46.642-67.944Q46.669-68.112 46.825-68.112Q46.981-68.112 47.009-67.944L47.009-60.479L48.610-60.479Q48.778-60.452 48.778-60.296Q48.778-60.139 48.610-60.112L46.817-60.112Q46.665-60.135 46.642-60.280",[1838],[1822,4160,4161],{"transform":4136},[1834,4162],{"d":4163,"fill":1824,"stroke":1824,"className":4164,"style":2060},"M49.739-62.745Q49.930-62.471 50.286-62.344Q50.641-62.217 51.024-62.217Q51.360-62.217 51.569-62.403Q51.778-62.589 51.874-62.882Q51.969-63.175 51.969-63.487Q51.969-63.811 51.872-64.106Q51.774-64.401 51.561-64.585Q51.348-64.768 51.016-64.768L50.450-64.768Q50.419-64.768 50.389-64.798Q50.360-64.827 50.360-64.854L50.360-64.936Q50.360-64.971 50.389-64.997Q50.419-65.022 50.450-65.022L50.930-65.057Q51.216-65.057 51.413-65.262Q51.610-65.467 51.706-65.762Q51.801-66.057 51.801-66.335Q51.801-66.714 51.602-66.952Q51.403-67.190 51.024-67.190Q50.704-67.190 50.415-67.083Q50.126-66.975 49.962-66.753Q50.141-66.753 50.264-66.626Q50.387-66.499 50.387-66.327Q50.387-66.155 50.262-66.030Q50.137-65.905 49.962-65.905Q49.790-65.905 49.665-66.030Q49.540-66.155 49.540-66.327Q49.540-66.694 49.764-66.942Q49.989-67.190 50.329-67.311Q50.669-67.432 51.024-67.432Q51.372-67.432 51.735-67.311Q52.098-67.190 52.346-66.940Q52.594-66.690 52.594-66.335Q52.594-65.850 52.276-65.467Q51.958-65.085 51.481-64.913Q52.032-64.803 52.432-64.417Q52.833-64.030 52.833-63.495Q52.833-63.038 52.569-62.682Q52.305-62.327 51.883-62.135Q51.462-61.944 51.024-61.944Q50.614-61.944 50.221-62.079Q49.829-62.214 49.563-62.499Q49.298-62.784 49.298-63.202Q49.298-63.397 49.430-63.526Q49.563-63.655 49.755-63.655Q49.880-63.655 49.983-63.596Q50.087-63.538 50.149-63.432Q50.212-63.327 50.212-63.202Q50.212-63.007 50.077-62.876Q49.942-62.745 49.739-62.745",[1838],[1822,4166,4167],{"transform":4136},[1834,4168],{"d":4169,"fill":1824,"stroke":1824,"className":4170,"style":2060},"M53.669-60.296Q53.669-60.315 53.684-60.370L56.610-68.007Q56.676-68.112 56.782-68.112Q56.860-68.112 56.913-68.059Q56.966-68.007 56.966-67.928Q56.966-67.909 56.950-67.854L54.020-60.217Q53.958-60.112 53.852-60.112Q53.778-60.112 53.723-60.167Q53.669-60.221 53.669-60.296",[1838],[1822,4172,4173],{"transform":4136},[1834,4174],{"d":4175,"fill":1824,"stroke":1824,"className":4176,"style":2060},"M61.033-62.112L57.873-62.112L57.873-62.319Q57.873-62.346 57.896-62.378L59.248-63.776Q59.627-64.163 59.875-64.452Q60.123-64.741 60.297-65.098Q60.470-65.456 60.470-65.846Q60.470-66.194 60.338-66.487Q60.205-66.780 59.951-66.958Q59.697-67.135 59.342-67.135Q58.982-67.135 58.691-66.940Q58.400-66.745 58.256-66.417L58.310-66.417Q58.494-66.417 58.619-66.296Q58.744-66.174 58.744-65.983Q58.744-65.803 58.619-65.674Q58.494-65.546 58.310-65.546Q58.131-65.546 58.002-65.674Q57.873-65.803 57.873-65.983Q57.873-66.385 58.093-66.721Q58.314-67.057 58.679-67.245Q59.045-67.432 59.447-67.432Q59.927-67.432 60.343-67.245Q60.760-67.057 61.011-66.696Q61.263-66.335 61.263-65.846Q61.263-65.487 61.109-65.184Q60.955-64.882 60.703-64.622Q60.451-64.362 60.101-64.077Q59.752-63.792 59.584-63.639L58.654-62.800L59.369-62.800Q60.744-62.800 60.783-62.839Q60.853-62.917 60.896-63.102Q60.939-63.288 60.982-63.577L61.263-63.577",[1838],[1822,4178,4179],{"transform":4136},[1834,4180],{"d":4181,"fill":1824,"stroke":1824,"className":4182,"style":2060},"M63.826-60.112L62.025-60.112Q61.857-60.139 61.857-60.296Q61.857-60.452 62.025-60.479L63.627-60.479L63.627-67.944Q63.654-68.112 63.810-68.112Q63.885-68.112 63.933-68.063Q63.982-68.014 63.994-67.944L63.994-60.280Q63.970-60.135 63.826-60.112",[1838],[1822,4184,4185],{"transform":4136},[1834,4186],{"d":4187,"fill":1824,"stroke":1824,"className":4188,"style":2060},"M73.797-63.089L68.484-63.089Q68.406-63.096 68.357-63.145Q68.309-63.194 68.309-63.272Q68.309-63.342 68.356-63.393Q68.402-63.444 68.484-63.456L73.797-63.456Q73.871-63.444 73.918-63.393Q73.965-63.342 73.965-63.272Q73.965-63.194 73.916-63.145Q73.867-63.096 73.797-63.089M73.797-64.776L68.484-64.776Q68.406-64.784 68.357-64.833Q68.309-64.882 68.309-64.960Q68.309-65.030 68.356-65.081Q68.402-65.132 68.484-65.143L73.797-65.143Q73.871-65.132 73.918-65.081Q73.965-65.030 73.965-64.960Q73.965-64.882 73.916-64.833Q73.867-64.784 73.797-64.776",[1838],[1822,4190,4191],{"transform":4136},[1834,4192],{"d":4193,"fill":1824,"stroke":1824,"className":4194,"style":2060},"M80.402-62.112L77.609-62.112L77.609-62.409Q78.671-62.409 78.671-62.671L78.671-66.839Q78.242-66.624 77.562-66.624L77.562-66.921Q78.581-66.921 79.097-67.432L79.242-67.432Q79.316-67.413 79.335-67.335L79.335-62.671Q79.335-62.409 80.402-62.409",[1838],[1834,4196],{"fill":1828,"d":4197},"M18.015 50.477v11.426",[1834,4199],{"stroke":1828,"d":4200},"m18.015 63.903 1.6-3.2-1.6 1.2-1.6-1.2",[1822,4202,4203,4210,4215,4220,4225,4231,4236,4241,4246,4251],{"stroke":1828,"fontSize":4007},[1822,4204,4206],{"transform":4205},"translate(3.533 121.301)",[1834,4207],{"d":4208,"fill":1824,"stroke":1824,"className":4209,"style":2060},"M21.609-62.112L18.816-62.112L18.816-62.409Q19.878-62.409 19.878-62.671L19.878-66.839Q19.449-66.624 18.769-66.624L18.769-66.921Q19.788-66.921 20.304-67.432L20.449-67.432Q20.523-67.413 20.542-67.335L20.542-62.671Q20.542-62.409 21.609-62.409",[1838],[1822,4211,4212],{"transform":4205},[1834,4213],{"d":4145,"fill":1824,"stroke":1824,"className":4214,"style":2060},[1838],[1822,4216,4217],{"transform":4205},[1834,4218],{"d":4151,"fill":1824,"stroke":1824,"className":4219,"style":2060},[1838],[1822,4221,4222],{"transform":4205},[1834,4223],{"d":4157,"fill":1824,"stroke":1824,"className":4224,"style":2060},[1838],[1822,4226,4227],{"transform":4205},[1834,4228],{"d":4229,"fill":1824,"stroke":1824,"className":4230,"style":2060},"M52.540-62.112L49.747-62.112L49.747-62.409Q50.809-62.409 50.809-62.671L50.809-66.839Q50.380-66.624 49.700-66.624L49.700-66.921Q50.719-66.921 51.235-67.432L51.380-67.432Q51.454-67.413 51.473-67.335L51.473-62.671Q51.473-62.409 52.540-62.409",[1838],[1822,4232,4233],{"transform":4205},[1834,4234],{"d":4169,"fill":1824,"stroke":1824,"className":4235,"style":2060},[1838],[1822,4237,4238],{"transform":4205},[1834,4239],{"d":4175,"fill":1824,"stroke":1824,"className":4240,"style":2060},[1838],[1822,4242,4243],{"transform":4205},[1834,4244],{"d":4181,"fill":1824,"stroke":1824,"className":4245,"style":2060},[1838],[1822,4247,4248],{"transform":4205},[1834,4249],{"d":4187,"fill":1824,"stroke":1824,"className":4250,"style":2060},[1838],[1822,4252,4253],{"transform":4205},[1834,4254],{"d":4255,"fill":1824,"stroke":1824,"className":4256,"style":2060},"M78.929-61.944Q78.226-61.944 77.826-62.344Q77.425-62.745 77.281-63.354Q77.136-63.964 77.136-64.663Q77.136-65.186 77.206-65.649Q77.277-66.112 77.470-66.524Q77.663-66.936 78.021-67.184Q78.378-67.432 78.929-67.432Q79.480-67.432 79.837-67.184Q80.195-66.936 80.386-66.526Q80.578-66.116 80.648-65.647Q80.718-65.178 80.718-64.663Q80.718-63.964 80.576-63.356Q80.433-62.749 80.033-62.346Q79.632-61.944 78.929-61.944M78.929-62.202Q79.402-62.202 79.634-62.637Q79.867-63.073 79.921-63.612Q79.976-64.151 79.976-64.792Q79.976-65.788 79.792-66.481Q79.609-67.174 78.929-67.174Q78.562-67.174 78.341-66.936Q78.121-66.698 78.025-66.341Q77.929-65.983 77.904-65.612Q77.878-65.241 77.878-64.792Q77.878-64.151 77.933-63.612Q77.988-63.073 78.220-62.637Q78.453-62.202 78.929-62.202",[1838],[1822,4258,4259,4262,4265],{"fill":2088,"stroke":2088,"style":2157},[1834,4260],{"fill":1828,"d":4261},"M-2.502 74.461c-8.47-10.339-8.31-24.005-1.294-32.171",[1834,4263],{"stroke":1828,"d":4264},"m-2.102 40.318-4.288 1.8 2.594.172.56 2.539",[1822,4266,4267,4274,4280,4286,4292,4298],{"fill":2088,"stroke":1828},[1822,4268,4270],{"transform":4269},"translate(-63.051 122.77)",[1834,4271],{"d":4272,"fill":2088,"stroke":2088,"className":4273,"style":2060},"M23.026-62.112L20.233-62.112L20.233-62.409Q21.295-62.409 21.295-62.671L21.295-66.839Q20.866-66.624 20.186-66.624L20.186-66.921Q21.205-66.921 21.721-67.432L21.866-67.432Q21.940-67.413 21.959-67.335L21.959-62.671Q21.959-62.409 23.026-62.409",[1838],[1822,4275,4276],{"transform":4269},[1834,4277],{"d":4278,"fill":2088,"stroke":2088,"className":4279,"style":1873},"M26.723-64.935L24.113-64.935L24.113-65.120Q24.119-65.143 24.139-65.169L25.290-66.224Q25.630-66.535 25.810-66.721Q25.991-66.907 26.136-67.167Q26.281-67.428 26.281-67.724Q26.281-67.997 26.155-68.212Q26.029-68.427 25.809-68.547Q25.589-68.667 25.314-68.667Q25.138-68.667 24.968-68.610Q24.798-68.553 24.666-68.446Q24.535-68.339 24.455-68.181Q24.543-68.181 24.621-68.137Q24.699-68.093 24.743-68.017Q24.786-67.941 24.786-67.844Q24.786-67.704 24.690-67.607Q24.593-67.510 24.450-67.510Q24.312-67.510 24.212-67.610Q24.113-67.709 24.113-67.844Q24.113-68.169 24.303-68.417Q24.494-68.664 24.797-68.795Q25.100-68.925 25.416-68.925Q25.797-68.925 26.140-68.790Q26.483-68.656 26.697-68.383Q26.911-68.111 26.911-67.724Q26.911-67.449 26.786-67.222Q26.661-66.995 26.481-66.823Q26.301-66.652 25.976-66.412Q25.651-66.171 25.566-66.104L24.810-65.500L25.343-65.500Q25.832-65.500 26.163-65.508Q26.494-65.515 26.509-65.530Q26.568-65.600 26.600-65.735Q26.632-65.870 26.664-66.081L26.911-66.081",[1838],[1822,4281,4282],{"transform":4269},[1834,4283],{"d":4284,"fill":2088,"stroke":2088,"className":4285,"style":2060},"M28.568-64.120Q28.568-64.303 28.704-64.440Q28.841-64.577 29.033-64.577Q29.224-64.577 29.357-64.444Q29.490-64.311 29.490-64.120Q29.490-63.928 29.353-63.792Q29.216-63.655 29.033-63.655Q28.849-63.655 28.708-63.796Q28.568-63.936 28.568-64.120",[1838],[1822,4287,4288],{"transform":4269},[1834,4289],{"d":4290,"fill":2088,"stroke":2088,"className":4291,"style":2060},"M31.714-62.034Q31.358-62.034 31.089-62.214Q30.819-62.393 30.679-62.688Q30.538-62.983 30.538-63.342Q30.538-63.729 30.700-64.143Q30.862-64.557 31.146-64.895Q31.429-65.233 31.798-65.436Q32.167-65.639 32.569-65.639Q33.062-65.639 33.339-65.190Q33.370-65.323 33.474-65.405Q33.577-65.487 33.706-65.487Q33.819-65.487 33.899-65.417Q33.980-65.346 33.980-65.233Q33.980-65.206 33.964-65.143L33.409-62.944Q33.370-62.698 33.370-62.647Q33.370-62.288 33.616-62.288Q33.761-62.288 33.862-62.395Q33.964-62.503 34.028-62.657Q34.093-62.811 34.142-63.001Q34.190-63.190 34.210-63.288Q34.237-63.358 34.300-63.358L34.401-63.358Q34.440-63.358 34.466-63.325Q34.491-63.292 34.491-63.264Q34.491-63.249 34.483-63.233Q34.370-62.741 34.171-62.387Q33.972-62.034 33.601-62.034Q33.319-62.034 33.093-62.176Q32.866-62.319 32.784-62.577Q32.562-62.335 32.288-62.184Q32.015-62.034 31.714-62.034M31.730-62.288Q31.940-62.288 32.149-62.401Q32.358-62.514 32.528-62.688Q32.698-62.862 32.827-63.057Q32.815-63.042 32.806-63.028Q32.796-63.014 32.784-62.999L33.218-64.721Q33.179-64.901 33.093-65.051Q33.007-65.202 32.870-65.294Q32.733-65.385 32.554-65.385Q32.218-65.385 31.946-65.104Q31.675-64.823 31.515-64.448Q31.390-64.128 31.292-63.708Q31.194-63.288 31.194-63.007Q31.194-62.717 31.327-62.503Q31.460-62.288 31.730-62.288",[1838],[1822,4293,4294],{"transform":4269},[1834,4295],{"d":4296,"fill":2088,"stroke":2088,"className":4297,"style":2060},"M43.047-63.089L37.734-63.089Q37.656-63.096 37.607-63.145Q37.559-63.194 37.559-63.272Q37.559-63.342 37.606-63.393Q37.652-63.444 37.734-63.456L43.047-63.456Q43.121-63.444 43.168-63.393Q43.215-63.342 43.215-63.272Q43.215-63.194 43.166-63.145Q43.117-63.096 43.047-63.089M43.047-64.776L37.734-64.776Q37.656-64.784 37.607-64.833Q37.559-64.882 37.559-64.960Q37.559-65.030 37.606-65.081Q37.652-65.132 37.734-65.143L43.047-65.143Q43.121-65.132 43.168-65.081Q43.215-65.030 43.215-64.960Q43.215-64.882 43.166-64.833Q43.117-64.784 43.047-64.776",[1838],[1822,4299,4300],{"transform":4269},[1834,4301],{"d":4302,"fill":2088,"stroke":2088,"className":4303,"style":2060},"M47.562-62.034Q47.206-62.034 46.937-62.214Q46.667-62.393 46.527-62.688Q46.386-62.983 46.386-63.342Q46.386-63.729 46.548-64.143Q46.710-64.557 46.994-64.895Q47.277-65.233 47.646-65.436Q48.015-65.639 48.417-65.639Q48.910-65.639 49.187-65.190Q49.218-65.323 49.322-65.405Q49.425-65.487 49.554-65.487Q49.667-65.487 49.747-65.417Q49.828-65.346 49.828-65.233Q49.828-65.206 49.812-65.143L49.257-62.944Q49.218-62.698 49.218-62.647Q49.218-62.288 49.464-62.288Q49.609-62.288 49.710-62.395Q49.812-62.503 49.876-62.657Q49.941-62.811 49.990-63.001Q50.038-63.190 50.058-63.288Q50.085-63.358 50.148-63.358L50.249-63.358Q50.288-63.358 50.314-63.325Q50.339-63.292 50.339-63.264Q50.339-63.249 50.331-63.233Q50.218-62.741 50.019-62.387Q49.820-62.034 49.449-62.034Q49.167-62.034 48.941-62.176Q48.714-62.319 48.632-62.577Q48.410-62.335 48.136-62.184Q47.863-62.034 47.562-62.034M47.578-62.288Q47.788-62.288 47.997-62.401Q48.206-62.514 48.376-62.688Q48.546-62.862 48.675-63.057Q48.663-63.042 48.654-63.028Q48.644-63.014 48.632-62.999L49.066-64.721Q49.027-64.901 48.941-65.051Q48.855-65.202 48.718-65.294Q48.581-65.385 48.402-65.385Q48.066-65.385 47.794-65.104Q47.523-64.823 47.363-64.448Q47.238-64.128 47.140-63.708Q47.042-63.288 47.042-63.007Q47.042-62.717 47.175-62.503Q47.308-62.288 47.578-62.288",[1838],[1822,4305,4306,4309,4312],{"fill":2088,"stroke":2088,"style":2157},[1834,4307],{"fill":1828,"d":4308},"M-2.102 40.318c-8.558-10.2-8.558-23.943-1.67-32.152",[1834,4310],{"stroke":1828,"d":4311},"m-2.102 6.175-4.267 1.85 2.596.141.59 2.532",[1822,4313,4314,4321,4327,4333,4339,4345,4351],{"fill":2088,"stroke":1828},[1822,4315,4317],{"transform":4316},"translate(-65.841 88.703)",[1834,4318],{"d":4319,"fill":2088,"stroke":2088,"className":4320,"style":2060},"M19.519-62.034Q19.163-62.034 18.894-62.214Q18.624-62.393 18.484-62.688Q18.343-62.983 18.343-63.342Q18.343-63.729 18.505-64.143Q18.667-64.557 18.951-64.895Q19.234-65.233 19.603-65.436Q19.972-65.639 20.374-65.639Q20.867-65.639 21.144-65.190Q21.175-65.323 21.279-65.405Q21.382-65.487 21.511-65.487Q21.624-65.487 21.704-65.417Q21.785-65.346 21.785-65.233Q21.785-65.206 21.769-65.143L21.214-62.944Q21.175-62.698 21.175-62.647Q21.175-62.288 21.421-62.288Q21.566-62.288 21.667-62.395Q21.769-62.503 21.833-62.657Q21.898-62.811 21.947-63.001Q21.995-63.190 22.015-63.288Q22.042-63.358 22.105-63.358L22.206-63.358Q22.245-63.358 22.271-63.325Q22.296-63.292 22.296-63.264Q22.296-63.249 22.288-63.233Q22.175-62.741 21.976-62.387Q21.777-62.034 21.406-62.034Q21.124-62.034 20.898-62.176Q20.671-62.319 20.589-62.577Q20.367-62.335 20.093-62.184Q19.820-62.034 19.519-62.034M19.535-62.288Q19.745-62.288 19.954-62.401Q20.163-62.514 20.333-62.688Q20.503-62.862 20.632-63.057Q20.620-63.042 20.611-63.028Q20.601-63.014 20.589-62.999L21.023-64.721Q20.984-64.901 20.898-65.051Q20.812-65.202 20.675-65.294Q20.538-65.385 20.359-65.385Q20.023-65.385 19.751-65.104Q19.480-64.823 19.320-64.448Q19.195-64.128 19.097-63.708Q18.999-63.288 18.999-63.007Q18.999-62.717 19.132-62.503Q19.265-62.288 19.535-62.288",[1838],[1822,4322,4323],{"transform":4316},[1834,4324],{"d":4325,"fill":2088,"stroke":2088,"className":4326,"style":1873},"M25.571-64.935L22.961-64.935L22.961-65.120Q22.967-65.143 22.987-65.169L24.138-66.224Q24.478-66.535 24.658-66.721Q24.839-66.907 24.984-67.167Q25.129-67.428 25.129-67.724Q25.129-67.997 25.003-68.212Q24.877-68.427 24.657-68.547Q24.437-68.667 24.162-68.667Q23.986-68.667 23.816-68.610Q23.646-68.553 23.514-68.446Q23.383-68.339 23.303-68.181Q23.391-68.181 23.469-68.137Q23.547-68.093 23.591-68.017Q23.634-67.941 23.634-67.844Q23.634-67.704 23.538-67.607Q23.441-67.510 23.298-67.510Q23.160-67.510 23.060-67.610Q22.961-67.709 22.961-67.844Q22.961-68.169 23.151-68.417Q23.342-68.664 23.645-68.795Q23.948-68.925 24.264-68.925Q24.645-68.925 24.988-68.790Q25.331-68.656 25.545-68.383Q25.759-68.111 25.759-67.724Q25.759-67.449 25.634-67.222Q25.509-66.995 25.329-66.823Q25.149-66.652 24.824-66.412Q24.499-66.171 24.414-66.104L23.658-65.500L24.191-65.500Q24.680-65.500 25.011-65.508Q25.343-65.515 25.357-65.530Q25.416-65.600 25.448-65.735Q25.480-65.870 25.512-66.081L25.759-66.081",[1838],[1822,4328,4329],{"transform":4316},[1834,4330],{"d":4331,"fill":2088,"stroke":2088,"className":4332,"style":2060},"M27.416-64.120Q27.416-64.303 27.552-64.440Q27.689-64.577 27.881-64.577Q28.072-64.577 28.205-64.444Q28.338-64.311 28.338-64.120Q28.338-63.928 28.201-63.792Q28.064-63.655 27.881-63.655Q27.697-63.655 27.556-63.796Q27.416-63.936 27.416-64.120",[1838],[1822,4334,4335],{"transform":4316},[1834,4336],{"d":4337,"fill":2088,"stroke":2088,"className":4338,"style":2060},"M30.562-62.034Q30.206-62.034 29.937-62.214Q29.667-62.393 29.527-62.688Q29.386-62.983 29.386-63.342Q29.386-63.729 29.548-64.143Q29.710-64.557 29.994-64.895Q30.277-65.233 30.646-65.436Q31.015-65.639 31.417-65.639Q31.910-65.639 32.187-65.190Q32.218-65.323 32.322-65.405Q32.425-65.487 32.554-65.487Q32.667-65.487 32.747-65.417Q32.828-65.346 32.828-65.233Q32.828-65.206 32.812-65.143L32.257-62.944Q32.218-62.698 32.218-62.647Q32.218-62.288 32.464-62.288Q32.609-62.288 32.710-62.395Q32.812-62.503 32.876-62.657Q32.941-62.811 32.990-63.001Q33.038-63.190 33.058-63.288Q33.085-63.358 33.148-63.358L33.249-63.358Q33.288-63.358 33.314-63.325Q33.339-63.292 33.339-63.264Q33.339-63.249 33.331-63.233Q33.218-62.741 33.019-62.387Q32.820-62.034 32.449-62.034Q32.167-62.034 31.941-62.176Q31.714-62.319 31.632-62.577Q31.410-62.335 31.136-62.184Q30.863-62.034 30.562-62.034M30.578-62.288Q30.788-62.288 30.997-62.401Q31.206-62.514 31.376-62.688Q31.546-62.862 31.675-63.057Q31.663-63.042 31.654-63.028Q31.644-63.014 31.632-62.999L32.066-64.721Q32.027-64.901 31.941-65.051Q31.855-65.202 31.718-65.294Q31.581-65.385 31.402-65.385Q31.066-65.385 30.794-65.104Q30.523-64.823 30.363-64.448Q30.238-64.128 30.140-63.708Q30.042-63.288 30.042-63.007Q30.042-62.717 30.175-62.503Q30.308-62.288 30.578-62.288",[1838],[1822,4340,4341],{"transform":4316},[1834,4342],{"d":4343,"fill":2088,"stroke":2088,"className":4344,"style":2060},"M41.895-63.089L36.582-63.089Q36.504-63.096 36.455-63.145Q36.407-63.194 36.407-63.272Q36.407-63.342 36.454-63.393Q36.500-63.444 36.582-63.456L41.895-63.456Q41.969-63.444 42.016-63.393Q42.063-63.342 42.063-63.272Q42.063-63.194 42.014-63.145Q41.965-63.096 41.895-63.089M41.895-64.776L36.582-64.776Q36.504-64.784 36.455-64.833Q36.407-64.882 36.407-64.960Q36.407-65.030 36.454-65.081Q36.500-65.132 36.582-65.143L41.895-65.143Q41.969-65.132 42.016-65.081Q42.063-65.030 42.063-64.960Q42.063-64.882 42.014-64.833Q41.965-64.784 41.895-64.776",[1838],[1822,4346,4347],{"transform":4316},[1834,4348],{"d":4349,"fill":2088,"stroke":2088,"className":4350,"style":2060},"M46.410-62.034Q46.054-62.034 45.785-62.214Q45.515-62.393 45.375-62.688Q45.234-62.983 45.234-63.342Q45.234-63.729 45.396-64.143Q45.558-64.557 45.842-64.895Q46.125-65.233 46.494-65.436Q46.863-65.639 47.265-65.639Q47.758-65.639 48.035-65.190Q48.066-65.323 48.170-65.405Q48.273-65.487 48.402-65.487Q48.515-65.487 48.595-65.417Q48.676-65.346 48.676-65.233Q48.676-65.206 48.660-65.143L48.105-62.944Q48.066-62.698 48.066-62.647Q48.066-62.288 48.312-62.288Q48.457-62.288 48.558-62.395Q48.660-62.503 48.724-62.657Q48.789-62.811 48.838-63.001Q48.886-63.190 48.906-63.288Q48.933-63.358 48.996-63.358L49.097-63.358Q49.136-63.358 49.162-63.325Q49.187-63.292 49.187-63.264Q49.187-63.249 49.179-63.233Q49.066-62.741 48.867-62.387Q48.668-62.034 48.297-62.034Q48.015-62.034 47.789-62.176Q47.562-62.319 47.480-62.577Q47.258-62.335 46.984-62.184Q46.711-62.034 46.410-62.034M46.426-62.288Q46.636-62.288 46.845-62.401Q47.054-62.514 47.224-62.688Q47.394-62.862 47.523-63.057Q47.511-63.042 47.502-63.028Q47.492-63.014 47.480-62.999L47.914-64.721Q47.875-64.901 47.789-65.051Q47.703-65.202 47.566-65.294Q47.429-65.385 47.250-65.385Q46.914-65.385 46.642-65.104Q46.371-64.823 46.211-64.448Q46.086-64.128 45.988-63.708Q45.890-63.288 45.890-63.007Q45.890-62.717 46.023-62.503Q46.156-62.288 46.426-62.288",[1838],[1822,4352,4353],{"transform":4316},[1834,4354],{"d":4355,"fill":2088,"stroke":2088,"className":4356,"style":1873},"M50.194-65.386Q50.490-65.049 51.220-65.049Q51.478-65.049 51.658-65.177Q51.838-65.304 51.926-65.512Q52.014-65.720 52.014-65.978Q52.014-66.373 51.807-66.644Q51.601-66.915 51.214-66.915L50.748-66.915Q50.684-66.930 50.669-66.992L50.669-67.059Q50.684-67.115 50.748-67.132L51.150-67.156Q51.360-67.156 51.529-67.298Q51.697-67.440 51.790-67.654Q51.882-67.868 51.882-68.084Q51.882-68.372 51.697-68.537Q51.513-68.703 51.220-68.703Q50.959-68.703 50.735-68.635Q50.511-68.568 50.364-68.410Q50.493-68.392 50.572-68.303Q50.651-68.213 50.651-68.084Q50.651-67.947 50.556-67.852Q50.461-67.756 50.320-67.756Q50.186-67.756 50.089-67.853Q49.992-67.950 49.992-68.084Q49.992-68.372 50.183-68.563Q50.373-68.755 50.654-68.840Q50.936-68.925 51.220-68.925Q51.495-68.925 51.796-68.834Q52.096-68.744 52.304-68.555Q52.512-68.366 52.512-68.084Q52.512-67.715 52.266-67.443Q52.020-67.170 51.648-67.041Q52.067-66.948 52.384-66.665Q52.702-66.382 52.702-65.984Q52.702-65.621 52.483-65.355Q52.263-65.090 51.917-64.950Q51.571-64.809 51.220-64.809Q50.997-64.809 50.750-64.857Q50.502-64.906 50.282-65.016Q50.063-65.125 49.931-65.304Q49.799-65.483 49.799-65.738Q49.799-65.887 49.901-65.990Q50.004-66.092 50.153-66.092Q50.303-66.092 50.405-65.990Q50.508-65.887 50.508-65.738Q50.508-65.606 50.419-65.505Q50.329-65.404 50.194-65.386",[1838],[1822,4358,4359,4362,4365],{"fill":2088,"stroke":2088,"style":2157},[1834,4360],{"fill":1828,"d":4361},"M-2.102 6.175c-8.558-10.2-8.558-23.944-1.67-32.152",[1834,4363],{"stroke":1828,"d":4364},"m-2.102-27.968-4.267 1.85 2.596.141.59 2.532",[1822,4366,4367,4374,4380,4386,4392,4398,4404,4410],{"fill":2088,"stroke":1828},[1822,4368,4370],{"transform":4369},"translate(-69.743 53.56)",[1834,4371],{"d":4372,"fill":2088,"stroke":2088,"className":4373,"style":2060},"M20.632-60.120Q20.019-60.577 19.617-61.212Q19.214-61.846 19.019-62.592Q18.824-63.339 18.824-64.112Q18.824-64.885 19.019-65.632Q19.214-66.378 19.617-67.012Q20.019-67.647 20.632-68.104Q20.644-68.108 20.652-68.110Q20.660-68.112 20.671-68.112L20.749-68.112Q20.788-68.112 20.814-68.085Q20.839-68.057 20.839-68.014Q20.839-67.964 20.808-67.944Q20.300-67.491 19.978-66.868Q19.656-66.245 19.515-65.549Q19.374-64.854 19.374-64.112Q19.374-63.378 19.513-62.678Q19.652-61.979 19.976-61.354Q20.300-60.729 20.808-60.280Q20.839-60.260 20.839-60.210Q20.839-60.167 20.814-60.139Q20.788-60.112 20.749-60.112L20.671-60.112Q20.663-60.116 20.654-60.118Q20.644-60.120 20.632-60.120",[1838],[1822,4375,4376],{"transform":4369},[1834,4377],{"d":4378,"fill":2088,"stroke":2088,"className":4379,"style":2060},"M22.825-62.034Q22.469-62.034 22.200-62.214Q21.930-62.393 21.790-62.688Q21.649-62.983 21.649-63.342Q21.649-63.729 21.811-64.143Q21.973-64.557 22.257-64.895Q22.540-65.233 22.909-65.436Q23.278-65.639 23.680-65.639Q24.173-65.639 24.450-65.190Q24.481-65.323 24.585-65.405Q24.688-65.487 24.817-65.487Q24.930-65.487 25.010-65.417Q25.091-65.346 25.091-65.233Q25.091-65.206 25.075-65.143L24.520-62.944Q24.481-62.698 24.481-62.647Q24.481-62.288 24.727-62.288Q24.872-62.288 24.973-62.395Q25.075-62.503 25.139-62.657Q25.204-62.811 25.253-63.001Q25.301-63.190 25.321-63.288Q25.348-63.358 25.411-63.358L25.512-63.358Q25.551-63.358 25.577-63.325Q25.602-63.292 25.602-63.264Q25.602-63.249 25.594-63.233Q25.481-62.741 25.282-62.387Q25.083-62.034 24.712-62.034Q24.430-62.034 24.204-62.176Q23.977-62.319 23.895-62.577Q23.673-62.335 23.399-62.184Q23.126-62.034 22.825-62.034M22.841-62.288Q23.051-62.288 23.260-62.401Q23.469-62.514 23.639-62.688Q23.809-62.862 23.938-63.057Q23.926-63.042 23.917-63.028Q23.907-63.014 23.895-62.999L24.329-64.721Q24.290-64.901 24.204-65.051Q24.118-65.202 23.981-65.294Q23.844-65.385 23.665-65.385Q23.329-65.385 23.057-65.104Q22.786-64.823 22.626-64.448Q22.501-64.128 22.403-63.708Q22.305-63.288 22.305-63.007Q22.305-62.717 22.438-62.503Q22.571-62.288 22.841-62.288",[1838],[1822,4381,4382],{"transform":4369},[1834,4383],{"d":4384,"fill":2088,"stroke":2088,"className":4385,"style":1873},"M26.609-65.386Q26.905-65.049 27.635-65.049Q27.893-65.049 28.073-65.177Q28.253-65.304 28.341-65.512Q28.429-65.720 28.429-65.978Q28.429-66.373 28.222-66.644Q28.016-66.915 27.629-66.915L27.163-66.915Q27.099-66.930 27.084-66.992L27.084-67.059Q27.099-67.115 27.163-67.132L27.565-67.156Q27.775-67.156 27.944-67.298Q28.112-67.440 28.205-67.654Q28.297-67.868 28.297-68.084Q28.297-68.372 28.112-68.537Q27.928-68.703 27.635-68.703Q27.374-68.703 27.150-68.635Q26.926-68.568 26.779-68.410Q26.908-68.392 26.987-68.303Q27.066-68.213 27.066-68.084Q27.066-67.947 26.971-67.852Q26.876-67.756 26.735-67.756Q26.601-67.756 26.504-67.853Q26.407-67.950 26.407-68.084Q26.407-68.372 26.598-68.563Q26.788-68.755 27.069-68.840Q27.351-68.925 27.635-68.925Q27.910-68.925 28.211-68.834Q28.511-68.744 28.719-68.555Q28.927-68.366 28.927-68.084Q28.927-67.715 28.681-67.443Q28.435-67.170 28.063-67.041Q28.482-66.948 28.799-66.665Q29.117-66.382 29.117-65.984Q29.117-65.621 28.898-65.355Q28.678-65.090 28.332-64.950Q27.986-64.809 27.635-64.809Q27.412-64.809 27.165-64.857Q26.917-64.906 26.697-65.016Q26.478-65.125 26.346-65.304Q26.214-65.483 26.214-65.738Q26.214-65.887 26.316-65.990Q26.419-66.092 26.568-66.092Q26.718-66.092 26.820-65.990Q26.923-65.887 26.923-65.738Q26.923-65.606 26.834-65.505Q26.744-65.404 26.609-65.386",[1838],[1822,4387,4388],{"transform":4369},[1834,4389],{"d":4390,"fill":2088,"stroke":2088,"className":4391,"style":2060},"M30.643-60.112L30.561-60.112Q30.525-60.112 30.500-60.141Q30.475-60.171 30.475-60.210Q30.475-60.260 30.506-60.280Q30.893-60.616 31.176-61.065Q31.459-61.514 31.625-62.014Q31.791-62.514 31.865-63.032Q31.939-63.550 31.939-64.112Q31.939-64.682 31.865-65.198Q31.791-65.714 31.625-66.210Q31.459-66.706 31.180-67.153Q30.900-67.600 30.506-67.944Q30.475-67.964 30.475-68.014Q30.475-68.053 30.500-68.083Q30.525-68.112 30.561-68.112L30.643-68.112Q30.654-68.112 30.664-68.110Q30.674-68.108 30.682-68.104Q31.295-67.647 31.697-67.012Q32.100-66.378 32.295-65.632Q32.490-64.885 32.490-64.112Q32.490-63.339 32.295-62.592Q32.100-61.846 31.697-61.212Q31.295-60.577 30.682-60.120Q30.670-60.120 30.662-60.118Q30.654-60.116 30.643-60.112",[1838],[1822,4393,4394],{"transform":4369},[1834,4395],{"d":4396,"fill":2088,"stroke":2088,"className":4397,"style":1873},"M36.349-64.935L33.739-64.935L33.739-65.120Q33.745-65.143 33.765-65.169L34.916-66.224Q35.256-66.535 35.436-66.721Q35.617-66.907 35.762-67.167Q35.907-67.428 35.907-67.724Q35.907-67.997 35.781-68.212Q35.655-68.427 35.435-68.547Q35.215-68.667 34.940-68.667Q34.764-68.667 34.594-68.610Q34.424-68.553 34.292-68.446Q34.161-68.339 34.081-68.181Q34.169-68.181 34.247-68.137Q34.325-68.093 34.369-68.017Q34.412-67.941 34.412-67.844Q34.412-67.704 34.316-67.607Q34.219-67.510 34.076-67.510Q33.938-67.510 33.838-67.610Q33.739-67.709 33.739-67.844Q33.739-68.169 33.929-68.417Q34.120-68.664 34.423-68.795Q34.726-68.925 35.042-68.925Q35.423-68.925 35.766-68.790Q36.109-68.656 36.323-68.383Q36.537-68.111 36.537-67.724Q36.537-67.449 36.412-67.222Q36.287-66.995 36.107-66.823Q35.927-66.652 35.602-66.412Q35.277-66.171 35.192-66.104L34.436-65.500L34.969-65.500Q35.458-65.500 35.789-65.508Q36.120-65.515 36.135-65.530Q36.194-65.600 36.226-65.735Q36.258-65.870 36.290-66.081L36.537-66.081",[1838],[1822,4399,4400],{"transform":4369},[1834,4401],{"d":4402,"fill":2088,"stroke":2088,"className":4403,"style":2060},"M45.797-63.089L40.484-63.089Q40.406-63.096 40.357-63.145Q40.309-63.194 40.309-63.272Q40.309-63.342 40.356-63.393Q40.402-63.444 40.484-63.456L45.797-63.456Q45.871-63.444 45.918-63.393Q45.965-63.342 45.965-63.272Q45.965-63.194 45.916-63.145Q45.867-63.096 45.797-63.089M45.797-64.776L40.484-64.776Q40.406-64.784 40.357-64.833Q40.309-64.882 40.309-64.960Q40.309-65.030 40.356-65.081Q40.402-65.132 40.484-65.143L45.797-65.143Q45.871-65.132 45.918-65.081Q45.965-65.030 45.965-64.960Q45.965-64.882 45.916-64.833Q45.867-64.784 45.797-64.776",[1838],[1822,4405,4406],{"transform":4369},[1834,4407],{"d":4408,"fill":2088,"stroke":2088,"className":4409,"style":2060},"M50.312-62.034Q49.956-62.034 49.687-62.214Q49.417-62.393 49.277-62.688Q49.136-62.983 49.136-63.342Q49.136-63.729 49.298-64.143Q49.460-64.557 49.744-64.895Q50.027-65.233 50.396-65.436Q50.765-65.639 51.167-65.639Q51.660-65.639 51.937-65.190Q51.968-65.323 52.072-65.405Q52.175-65.487 52.304-65.487Q52.417-65.487 52.497-65.417Q52.578-65.346 52.578-65.233Q52.578-65.206 52.562-65.143L52.007-62.944Q51.968-62.698 51.968-62.647Q51.968-62.288 52.214-62.288Q52.359-62.288 52.460-62.395Q52.562-62.503 52.626-62.657Q52.691-62.811 52.740-63.001Q52.788-63.190 52.808-63.288Q52.835-63.358 52.898-63.358L52.999-63.358Q53.038-63.358 53.064-63.325Q53.089-63.292 53.089-63.264Q53.089-63.249 53.081-63.233Q52.968-62.741 52.769-62.387Q52.570-62.034 52.199-62.034Q51.917-62.034 51.691-62.176Q51.464-62.319 51.382-62.577Q51.160-62.335 50.886-62.184Q50.613-62.034 50.312-62.034M50.328-62.288Q50.538-62.288 50.747-62.401Q50.956-62.514 51.126-62.688Q51.296-62.862 51.425-63.057Q51.413-63.042 51.404-63.028Q51.394-63.014 51.382-62.999L51.816-64.721Q51.777-64.901 51.691-65.051Q51.605-65.202 51.468-65.294Q51.331-65.385 51.152-65.385Q50.816-65.385 50.544-65.104Q50.273-64.823 50.113-64.448Q49.988-64.128 49.890-63.708Q49.792-63.288 49.792-63.007Q49.792-62.717 49.925-62.503Q50.058-62.288 50.328-62.288",[1838],[1822,4411,4412],{"transform":4369},[1834,4413],{"d":4414,"fill":2088,"stroke":2088,"className":4415,"style":1873},"M55.154-64.809Q54.744-64.809 54.460-64.988Q54.176-65.166 54.007-65.474Q53.839-65.782 53.770-66.143Q53.701-66.505 53.701-66.874Q53.701-67.390 53.934-67.866Q54.167-68.342 54.587-68.634Q55.008-68.925 55.544-68.925Q55.916-68.925 56.174-68.758Q56.431-68.591 56.431-68.234Q56.431-68.105 56.346-68.020Q56.261-67.935 56.130-67.935Q56.001-67.935 55.913-68.020Q55.825-68.105 55.825-68.234Q55.825-68.345 55.895-68.429Q55.966-68.512 56.071-68.536Q55.910-68.703 55.544-68.703Q55.242-68.703 54.989-68.546Q54.735-68.389 54.571-68.128Q54.430-67.885 54.378-67.588Q54.325-67.290 54.325-66.956Q54.665-67.504 55.230-67.504Q55.608-67.504 55.922-67.329Q56.235-67.153 56.420-66.848Q56.604-66.543 56.604-66.165Q56.604-65.773 56.405-65.462Q56.206-65.152 55.872-64.980Q55.538-64.809 55.154-64.809M55.154-65.049Q55.488-65.049 55.673-65.196Q55.857-65.342 55.919-65.580Q55.980-65.817 55.980-66.154L55.980-66.171Q55.980-66.687 55.823-66.987Q55.667-67.288 55.195-67.288Q54.940-67.288 54.745-67.143Q54.551-66.998 54.447-66.769Q54.343-66.540 54.343-66.291Q54.343-66.212 54.348-66.171Q54.348-66.151 54.345-66.151Q54.343-66.151 54.343-66.130Q54.343-65.700 54.543-65.374Q54.744-65.049 55.154-65.049",[1838],[1822,4417,4418,4421,4424],{"fill":2088,"stroke":2088,"style":2157},[1834,4419],{"fill":1828,"d":4420},"M-2.102-27.968c-8.558-10.2-8.558-23.944-1.67-32.152",[1834,4422],{"stroke":1828,"d":4423},"m-2.102-62.112-4.267 1.85 2.596.142.59 2.532",[1822,4425,4426,4432,4437,4443,4448,4453,4459,4465,4471,4477],{"fill":2088,"stroke":1828},[1822,4427,4429],{"transform":4428},"translate(-80.286 19.417)",[1834,4430],{"d":4372,"fill":2088,"stroke":2088,"className":4431,"style":2060},[1838],[1822,4433,4434],{"transform":4428},[1834,4435],{"d":4378,"fill":2088,"stroke":2088,"className":4436,"style":2060},[1838],[1822,4438,4439],{"transform":4428},[1834,4440],{"d":4441,"fill":2088,"stroke":2088,"className":4442,"style":1873},"M27.667-64.809Q27.257-64.809 26.973-64.988Q26.689-65.166 26.520-65.474Q26.352-65.782 26.283-66.143Q26.214-66.505 26.214-66.874Q26.214-67.390 26.447-67.866Q26.680-68.342 27.100-68.634Q27.521-68.925 28.057-68.925Q28.429-68.925 28.687-68.758Q28.944-68.591 28.944-68.234Q28.944-68.105 28.859-68.020Q28.774-67.935 28.643-67.935Q28.514-67.935 28.426-68.020Q28.338-68.105 28.338-68.234Q28.338-68.345 28.408-68.429Q28.479-68.512 28.584-68.536Q28.423-68.703 28.057-68.703Q27.755-68.703 27.502-68.546Q27.248-68.389 27.084-68.128Q26.943-67.885 26.891-67.588Q26.838-67.290 26.838-66.956Q27.178-67.504 27.743-67.504Q28.121-67.504 28.435-67.329Q28.748-67.153 28.933-66.848Q29.117-66.543 29.117-66.165Q29.117-65.773 28.918-65.462Q28.719-65.152 28.385-64.980Q28.051-64.809 27.667-64.809M27.667-65.049Q28.001-65.049 28.186-65.196Q28.370-65.342 28.432-65.580Q28.493-65.817 28.493-66.154L28.493-66.171Q28.493-66.687 28.336-66.987Q28.180-67.288 27.708-67.288Q27.453-67.288 27.258-67.143Q27.064-66.998 26.960-66.769Q26.856-66.540 26.856-66.291Q26.856-66.212 26.861-66.171Q26.861-66.151 26.858-66.151Q26.856-66.151 26.856-66.130Q26.856-65.700 27.056-65.374Q27.257-65.049 27.667-65.049",[1838],[1822,4444,4445],{"transform":4428},[1834,4446],{"d":4390,"fill":2088,"stroke":2088,"className":4447,"style":2060},[1838],[1822,4449,4450],{"transform":4428},[1834,4451],{"d":4396,"fill":2088,"stroke":2088,"className":4452,"style":1873},[1838],[1822,4454,4455],{"transform":4428},[1834,4456],{"d":4457,"fill":2088,"stroke":2088,"className":4458,"style":2060},"M38.194-64.120Q38.194-64.303 38.330-64.440Q38.467-64.577 38.659-64.577Q38.850-64.577 38.983-64.444Q39.116-64.311 39.116-64.120Q39.116-63.928 38.979-63.792Q38.842-63.655 38.659-63.655Q38.475-63.655 38.334-63.796Q38.194-63.936 38.194-64.120",[1838],[1822,4460,4461],{"transform":4428},[1834,4462],{"d":4463,"fill":2088,"stroke":2088,"className":4464,"style":2060},"M41.340-62.034Q40.984-62.034 40.715-62.214Q40.445-62.393 40.305-62.688Q40.164-62.983 40.164-63.342Q40.164-63.729 40.326-64.143Q40.488-64.557 40.772-64.895Q41.055-65.233 41.424-65.436Q41.793-65.639 42.195-65.639Q42.688-65.639 42.965-65.190Q42.996-65.323 43.100-65.405Q43.203-65.487 43.332-65.487Q43.445-65.487 43.525-65.417Q43.606-65.346 43.606-65.233Q43.606-65.206 43.590-65.143L43.035-62.944Q42.996-62.698 42.996-62.647Q42.996-62.288 43.242-62.288Q43.387-62.288 43.488-62.395Q43.590-62.503 43.654-62.657Q43.719-62.811 43.768-63.001Q43.816-63.190 43.836-63.288Q43.863-63.358 43.926-63.358L44.027-63.358Q44.066-63.358 44.092-63.325Q44.117-63.292 44.117-63.264Q44.117-63.249 44.109-63.233Q43.996-62.741 43.797-62.387Q43.598-62.034 43.227-62.034Q42.945-62.034 42.719-62.176Q42.492-62.319 42.410-62.577Q42.188-62.335 41.914-62.184Q41.641-62.034 41.340-62.034M41.356-62.288Q41.566-62.288 41.775-62.401Q41.984-62.514 42.154-62.688Q42.324-62.862 42.453-63.057Q42.441-63.042 42.432-63.028Q42.422-63.014 42.410-62.999L42.844-64.721Q42.805-64.901 42.719-65.051Q42.633-65.202 42.496-65.294Q42.359-65.385 42.180-65.385Q41.844-65.385 41.572-65.104Q41.301-64.823 41.141-64.448Q41.016-64.128 40.918-63.708Q40.820-63.288 40.820-63.007Q40.820-62.717 40.953-62.503Q41.086-62.288 41.356-62.288",[1838],[1822,4466,4467],{"transform":4428},[1834,4468],{"d":4469,"fill":2088,"stroke":2088,"className":4470,"style":2060},"M52.673-63.089L47.360-63.089Q47.282-63.096 47.233-63.145Q47.185-63.194 47.185-63.272Q47.185-63.342 47.232-63.393Q47.278-63.444 47.360-63.456L52.673-63.456Q52.747-63.444 52.794-63.393Q52.841-63.342 52.841-63.272Q52.841-63.194 52.792-63.145Q52.743-63.096 52.673-63.089M52.673-64.776L47.360-64.776Q47.282-64.784 47.233-64.833Q47.185-64.882 47.185-64.960Q47.185-65.030 47.232-65.081Q47.278-65.132 47.360-65.143L52.673-65.143Q52.747-65.132 52.794-65.081Q52.841-65.030 52.841-64.960Q52.841-64.882 52.792-64.833Q52.743-64.784 52.673-64.776",[1838],[1822,4472,4473],{"transform":4428},[1834,4474],{"d":4475,"fill":2088,"stroke":2088,"className":4476,"style":2060},"M57.188-62.034Q56.832-62.034 56.563-62.214Q56.293-62.393 56.153-62.688Q56.012-62.983 56.012-63.342Q56.012-63.729 56.174-64.143Q56.336-64.557 56.620-64.895Q56.903-65.233 57.272-65.436Q57.641-65.639 58.043-65.639Q58.536-65.639 58.813-65.190Q58.844-65.323 58.948-65.405Q59.051-65.487 59.180-65.487Q59.293-65.487 59.373-65.417Q59.454-65.346 59.454-65.233Q59.454-65.206 59.438-65.143L58.883-62.944Q58.844-62.698 58.844-62.647Q58.844-62.288 59.090-62.288Q59.235-62.288 59.336-62.395Q59.438-62.503 59.502-62.657Q59.567-62.811 59.616-63.001Q59.664-63.190 59.684-63.288Q59.711-63.358 59.774-63.358L59.875-63.358Q59.914-63.358 59.940-63.325Q59.965-63.292 59.965-63.264Q59.965-63.249 59.957-63.233Q59.844-62.741 59.645-62.387Q59.446-62.034 59.075-62.034Q58.793-62.034 58.567-62.176Q58.340-62.319 58.258-62.577Q58.036-62.335 57.762-62.184Q57.489-62.034 57.188-62.034M57.204-62.288Q57.414-62.288 57.623-62.401Q57.832-62.514 58.002-62.688Q58.172-62.862 58.301-63.057Q58.289-63.042 58.280-63.028Q58.270-63.014 58.258-62.999L58.692-64.721Q58.653-64.901 58.567-65.051Q58.481-65.202 58.344-65.294Q58.207-65.385 58.028-65.385Q57.692-65.385 57.420-65.104Q57.149-64.823 56.989-64.448Q56.864-64.128 56.766-63.708Q56.668-63.288 56.668-63.007Q56.668-62.717 56.801-62.503Q56.934-62.288 57.204-62.288",[1838],[1822,4478,4479],{"transform":4428},[1834,4480],{"d":4481,"fill":2088,"stroke":2088,"className":4482,"style":1873},"M63.240-64.935L60.949-64.935L60.949-65.193Q61.825-65.193 61.825-65.366L61.825-68.445Q61.632-68.357 61.400-68.320Q61.169-68.284 60.914-68.284L60.914-68.541Q61.292-68.541 61.613-68.626Q61.933-68.711 62.162-68.925L62.282-68.925Q62.314-68.925 62.339-68.902Q62.364-68.878 62.364-68.840L62.364-65.366Q62.364-65.193 63.240-65.193L63.240-64.935M64.637-65.386Q64.933-65.049 65.663-65.049Q65.921-65.049 66.101-65.177Q66.281-65.304 66.369-65.512Q66.457-65.720 66.457-65.978Q66.457-66.373 66.250-66.644Q66.044-66.915 65.657-66.915L65.191-66.915Q65.127-66.930 65.112-66.992L65.112-67.059Q65.127-67.115 65.191-67.132L65.593-67.156Q65.803-67.156 65.972-67.298Q66.140-67.440 66.233-67.654Q66.325-67.868 66.325-68.084Q66.325-68.372 66.140-68.537Q65.956-68.703 65.663-68.703Q65.402-68.703 65.178-68.635Q64.954-68.568 64.807-68.410Q64.936-68.392 65.015-68.303Q65.095-68.213 65.095-68.084Q65.095-67.947 64.999-67.852Q64.904-67.756 64.763-67.756Q64.629-67.756 64.532-67.853Q64.435-67.950 64.435-68.084Q64.435-68.372 64.626-68.563Q64.816-68.755 65.097-68.840Q65.379-68.925 65.663-68.925Q65.938-68.925 66.239-68.834Q66.539-68.744 66.747-68.555Q66.955-68.366 66.955-68.084Q66.955-67.715 66.709-67.443Q66.463-67.170 66.091-67.041Q66.510-66.948 66.827-66.665Q67.145-66.382 67.145-65.984Q67.145-65.621 66.926-65.355Q66.706-65.090 66.360-64.950Q66.014-64.809 65.663-64.809Q65.440-64.809 65.193-64.857Q64.945-64.906 64.725-65.016Q64.506-65.125 64.374-65.304Q64.242-65.483 64.242-65.738Q64.242-65.887 64.345-65.990Q64.447-66.092 64.596-66.092Q64.746-66.092 64.848-65.990Q64.951-65.887 64.951-65.738Q64.951-65.606 64.862-65.505Q64.772-65.404 64.637-65.386",[1838],[2181,4484,4486,4487,4531,4532],{"className":4485},[2184],"Recursive halving for ",[390,4488,4490],{"className":4489},[393],[390,4491,4493],{"className":4492,"ariaHidden":398},[397],[390,4494,4496,4499],{"className":4495},[402],[390,4497],{"className":4498,"style":2480},[406],[390,4500,4502,4505],{"className":4501},[411],[390,4503,385],{"className":4504},[411,453],[390,4506,4508],{"className":4507},[420],[390,4509,4511],{"className":4510},[424],[390,4512,4514],{"className":4513},[429],[390,4515,4517],{"className":4516,"style":2480},[433],[390,4518,4519,4522],{"style":559},[390,4520],{"className":4521,"style":442},[441],[390,4523,4525],{"className":4524},[446,447,448,449],[390,4526,4528],{"className":4527},[411,449],[390,4529,2613],{"className":4530},[411,449]," — each level squares, odd exponents multiply one extra ",[390,4533,4535],{"className":4534},[393],[390,4536,4538],{"className":4537,"ariaHidden":398},[397],[390,4539,4541,4544],{"className":4540},[402],[390,4542],{"className":4543,"style":487},[406],[390,4545,385],{"className":4546},[411,453],[4548,4549,4551],"callout",{"type":4550},"warning",[381,4552,4553,4556,4557,4572,4573,4624,4625,4628,4629,4632,4633,4655,4656,4671,4672,4687],{},[471,4554,4555],{},"Warning (Overflow)."," If ",[390,4558,4560],{"className":4559},[393],[390,4561,4563],{"className":4562,"ariaHidden":398},[397],[390,4564,4566,4569],{"className":4565},[402],[390,4567],{"className":4568,"style":487},[406],[390,4570,454],{"className":4571},[411,453]," is near the machine word size, the product ",[390,4574,4576],{"className":4575},[393],[390,4577,4579,4615],{"className":4578,"ariaHidden":398},[397],[390,4580,4582,4585,4589,4593,4597,4602,4606,4609,4612],{"className":4581},[402],[390,4583],{"className":4584,"style":537},[406],[390,4586,4588],{"className":4587,"style":700},[411,453],"r",[390,4590,4592],{"className":4591},[411,453],"es",[390,4594,4596],{"className":4595},[411,453],"u",[390,4598,4601],{"className":4599,"style":4600},[411,453],"margin-right:0.0197em;","l",[390,4603,4605],{"className":4604},[411,453],"t",[390,4607],{"className":4608,"style":577},[572],[390,4610,3556],{"className":4611},[581],[390,4613],{"className":4614,"style":577},[572],[390,4616,4618,4621],{"className":4617},[402],[390,4619],{"className":4620,"style":487},[406],[390,4622,385],{"className":4623},[411,453]," can\nexceed 64 bits before the reduction. Use a ",[471,4626,4627],{},"128-bit"," accumulator (",[2517,4630,4631],{},"__int128","), or a\n",[390,4634,4636],{"className":4635},[393],[390,4637,4639],{"className":4638,"ariaHidden":398},[397],[390,4640,4642,4645],{"className":4641},[402],[390,4643],{"className":4644,"style":537},[406],[390,4646,4648],{"className":4647},[3066,3067],[390,4649,4651],{"className":4650},[411,3071],[390,4652,4654],{"className":4653},[411],"MulMod"," routine that multiplies modulo ",[390,4657,4659],{"className":4658},[393],[390,4660,4662],{"className":4661,"ariaHidden":398},[397],[390,4663,4665,4668],{"className":4664},[402],[390,4666],{"className":4667,"style":487},[406],[390,4669,454],{"className":4670},[411,453]," without overflowing. This bites\nexactly in the Miller–Rabin tests below, where ",[390,4673,4675],{"className":4674},[393],[390,4676,4678],{"className":4677,"ariaHidden":398},[397],[390,4679,4681,4684],{"className":4680},[402],[390,4682],{"className":4683,"style":487},[406],[390,4685,454],{"className":4686},[411,453]," may be a full 64-bit number.",[381,4689,4690,4691,4695,4696,4699,4700,5168,5169,5184,5185,5188,5189,5222],{},"The doubling structure is not special to integers. Replace ",[4692,4693,4694],"q",{},"multiply"," with\n",[471,4697,4698],{},"matrix multiply"," and the identity ",[390,4701,4703],{"className":4702},[393],[390,4704,4706,4871],{"className":4705,"ariaHidden":398},[397],[390,4707,4709,4713,4720,4828,4862,4865,4868],{"className":4708},[402],[390,4710],{"className":4711,"style":4712},[406],"height:1.2854em;vertical-align:-0.3811em;",[390,4714,4716],{"className":4715},[658],[390,4717,4719],{"className":4718},[1610,1128],"[",[390,4721,4723],{"className":4722},[411],[390,4724,4726,4776,4780,4783],{"className":4725},[3350],[390,4727,4730],{"className":4728},[4729],"col-align-c",[390,4731,4733,4767],{"className":4732},[424,425],[390,4734,4736,4764],{"className":4735},[429],[390,4737,4740,4752],{"className":4738,"style":4739},[433],"height:0.8811em;",[390,4741,4743,4746],{"style":4742},"top:-3.13em;",[390,4744],{"className":4745,"style":442},[441],[390,4747,4749],{"className":4748},[411,449,446,447,448],[390,4750,1000],{"className":4751},[411,449],[390,4753,4755,4758],{"style":4754},"top:-2.4989em;",[390,4756],{"className":4757,"style":442},[441],[390,4759,4761],{"className":4760},[411,449,446,447,448],[390,4762,1000],{"className":4763},[411,449],[390,4765,459],{"className":4766},[458],[390,4768,4770],{"className":4769},[429],[390,4771,4774],{"className":4772,"style":4773},[433],"height:0.3811em;",[390,4775],{},[390,4777],{"className":4778,"style":4779},[3578],"width:0.1945em;",[390,4781],{"className":4782,"style":4779},[3578],[390,4784,4786],{"className":4785},[4729],[390,4787,4789,4820],{"className":4788},[424,425],[390,4790,4792,4817],{"className":4791},[429],[390,4793,4795,4806],{"className":4794,"style":4739},[433],[390,4796,4797,4800],{"style":4742},[390,4798],{"className":4799,"style":442},[441],[390,4801,4803],{"className":4802},[411,449,446,447,448],[390,4804,1000],{"className":4805},[411,449],[390,4807,4808,4811],{"style":4754},[390,4809],{"className":4810,"style":442},[441],[390,4812,4814],{"className":4813},[411,449,446,447,448],[390,4815,988],{"className":4816},[411,449],[390,4818,459],{"className":4819},[458],[390,4821,4823],{"className":4822},[429],[390,4824,4826],{"className":4825,"style":4773},[433],[390,4827],{},[390,4829,4831,4838],{"className":4830},[666],[390,4832,4834],{"className":4833},[666],[390,4835,4837],{"className":4836},[1610,1128],"]",[390,4839,4841],{"className":4840},[420],[390,4842,4844],{"className":4843},[424],[390,4845,4847],{"className":4846},[429],[390,4848,4851],{"className":4849,"style":4850},[433],"height:0.9043em;",[390,4852,4853,4856],{"style":1693},[390,4854],{"className":4855,"style":442},[441],[390,4857,4859],{"className":4858},[446,447,448,449],[390,4860,507],{"className":4861},[411,453,449],[390,4863],{"className":4864,"style":771},[572],[390,4866,776],{"className":4867},[775],[390,4869],{"className":4870,"style":771},[572],[390,4872,4874,4878,4884,5162],{"className":4873},[402],[390,4875],{"className":4876,"style":4877},[406],"height:1.3167em;vertical-align:-0.4083em;",[390,4879,4881],{"className":4880},[658],[390,4882,4719],{"className":4883},[1610,1128],[390,4885,4887],{"className":4886},[411],[390,4888,4890,5027,5030,5033],{"className":4889},[3350],[390,4891,4893],{"className":4892},[4729],[390,4894,4896,5018],{"className":4895},[424,425],[390,4897,4899,5015],{"className":4898},[429],[390,4900,4903,4965],{"className":4901,"style":4902},[433],"height:0.9083em;",[390,4904,4905,4908],{"style":4742},[390,4906],{"className":4907,"style":442},[441],[390,4909,4911],{"className":4910},[411,449,446,447,448],[390,4912,4914,4919],{"className":4913},[411,449],[390,4915,4918],{"className":4916,"style":4917},[411,453,449],"margin-right:0.1389em;","F",[390,4920,4922],{"className":4921},[420],[390,4923,4925,4956],{"className":4924},[424,425],[390,4926,4928,4953],{"className":4927},[429],[390,4929,4932],{"className":4930,"style":4931},[433],"height:0.3173em;",[390,4933,4935,4938],{"style":4934},"top:-2.357em;margin-left:-0.1389em;margin-right:0.0714em;",[390,4936],{"className":4937,"style":1123},[441],[390,4939,4941],{"className":4940},[446,1127,1128,449],[390,4942,4944,4947,4950],{"className":4943},[411,449],[390,4945,507],{"className":4946},[411,453,449],[390,4948,1584],{"className":4949},[581,449],[390,4951,1000],{"className":4952},[411,449],[390,4954,459],{"className":4955},[458],[390,4957,4959],{"className":4958},[429],[390,4960,4963],{"className":4961,"style":4962},[433],"height:0.2025em;",[390,4964],{},[390,4966,4968,4971],{"style":4967},"top:-2.4717em;",[390,4969],{"className":4970,"style":442},[441],[390,4972,4974],{"className":4973},[411,449,446,447,448],[390,4975,4977,4980],{"className":4976},[411,449],[390,4978,4918],{"className":4979,"style":4917},[411,453,449],[390,4981,4983],{"className":4982},[420],[390,4984,4986,5007],{"className":4985},[424,425],[390,4987,4989,5004],{"className":4988},[429],[390,4990,4993],{"className":4991,"style":4992},[433],"height:0.1645em;",[390,4994,4995,4998],{"style":4934},[390,4996],{"className":4997,"style":1123},[441],[390,4999,5001],{"className":5000},[446,1127,1128,449],[390,5002,507],{"className":5003},[411,453,449],[390,5005,459],{"className":5006},[458],[390,5008,5010],{"className":5009},[429],[390,5011,5013],{"className":5012,"style":1188},[433],[390,5014],{},[390,5016,459],{"className":5017},[458],[390,5019,5021],{"className":5020},[429],[390,5022,5025],{"className":5023,"style":5024},[433],"height:0.4083em;",[390,5026],{},[390,5028],{"className":5029,"style":4779},[3578],[390,5031],{"className":5032,"style":4779},[3578],[390,5034,5036],{"className":5035},[4729],[390,5037,5039,5154],{"className":5038},[424,425],[390,5040,5042,5151],{"className":5041},[429],[390,5043,5045,5093],{"className":5044,"style":4902},[433],[390,5046,5047,5050],{"style":4742},[390,5048],{"className":5049,"style":442},[441],[390,5051,5053],{"className":5052},[411,449,446,447,448],[390,5054,5056,5059],{"className":5055},[411,449],[390,5057,4918],{"className":5058,"style":4917},[411,453,449],[390,5060,5062],{"className":5061},[420],[390,5063,5065,5085],{"className":5064},[424,425],[390,5066,5068,5082],{"className":5067},[429],[390,5069,5071],{"className":5070,"style":4992},[433],[390,5072,5073,5076],{"style":4934},[390,5074],{"className":5075,"style":1123},[441],[390,5077,5079],{"className":5078},[446,1127,1128,449],[390,5080,507],{"className":5081},[411,453,449],[390,5083,459],{"className":5084},[458],[390,5086,5088],{"className":5087},[429],[390,5089,5091],{"className":5090,"style":1188},[433],[390,5092],{},[390,5094,5095,5098],{"style":4967},[390,5096],{"className":5097,"style":442},[441],[390,5099,5101],{"className":5100},[411,449,446,447,448],[390,5102,5104,5107],{"className":5103},[411,449],[390,5105,4918],{"className":5106,"style":4917},[411,453,449],[390,5108,5110],{"className":5109},[420],[390,5111,5113,5143],{"className":5112},[424,425],[390,5114,5116,5140],{"className":5115},[429],[390,5117,5119],{"className":5118,"style":4931},[433],[390,5120,5121,5124],{"style":4934},[390,5122],{"className":5123,"style":1123},[441],[390,5125,5127],{"className":5126},[446,1127,1128,449],[390,5128,5130,5133,5137],{"className":5129},[411,449],[390,5131,507],{"className":5132},[411,453,449],[390,5134,5136],{"className":5135},[581,449],"−",[390,5138,1000],{"className":5139},[411,449],[390,5141,459],{"className":5142},[458],[390,5144,5146],{"className":5145},[429],[390,5147,5149],{"className":5148,"style":4962},[433],[390,5150],{},[390,5152,459],{"className":5153},[458],[390,5155,5157],{"className":5156},[429],[390,5158,5160],{"className":5159,"style":5024},[433],[390,5161],{},[390,5163,5165],{"className":5164},[666],[390,5166,4837],{"className":5167},[1610,1128]," gives the\n",[390,5170,5172],{"className":5171},[393],[390,5173,5175],{"className":5174,"ariaHidden":398},[397],[390,5176,5178,5181],{"className":5177},[402],[390,5179],{"className":5180,"style":487},[406],[390,5182,507],{"className":5183},[411,453],"-th ",[471,5186,5187],{},"Fibonacci number"," in ",[390,5190,5192],{"className":5191},[393],[390,5193,5195],{"className":5194,"ariaHidden":398},[397],[390,5196,5198,5201,5204,5207,5213,5216,5219],{"className":5197},[402],[390,5199],{"className":5200,"style":650},[406],[390,5202,701],{"className":5203,"style":700},[411,453],[390,5205,659],{"className":5206},[658],[390,5208,5210],{"className":5209},[708],[390,5211,713],{"className":5212,"style":712},[411,588],[390,5214],{"className":5215,"style":717},[572],[390,5217,507],{"className":5218},[411,453],[390,5220,667],{"className":5221},[666]," matrix multiplications by the very same\nrepeated-squaring loop.",[730,5224,5226],{"id":5225},"fermats-little-theorem","Fermat's little theorem",[381,5228,5229,5230,5234,5235,5238],{},"Repeated squaring lets us ",[5231,5232,5233],"em",{},"compute"," large powers; number theory tells us what those\npowers ",[5231,5236,5237],{},"are"," modulo a prime.",[4548,5240,5242],{"type":5241},"theorem",[381,5243,5244,4556,5247,5263,5264,5319,5320],{},[471,5245,5246],{},"Theorem (Fermat's little).",[390,5248,5250],{"className":5249},[393],[390,5251,5253],{"className":5252,"ariaHidden":398},[397],[390,5254,5256,5260],{"className":5255},[402],[390,5257],{"className":5258,"style":5259},[406],"height:0.625em;vertical-align:-0.1944em;",[390,5261,381],{"className":5262},[411,453]," is prime and ",[390,5265,5267],{"className":5266},[393],[390,5268,5270,5310],{"className":5269,"ariaHidden":398},[397],[390,5271,5273,5276,5283,5286,5289,5292,5295,5298,5301,5304,5307],{"className":5272},[402],[390,5274],{"className":5275,"style":650},[406],[390,5277,5279],{"className":5278},[708],[390,5280,5282],{"className":5281},[411,588],"gcd",[390,5284,659],{"className":5285},[658],[390,5287,385],{"className":5288},[411,453],[390,5290,993],{"className":5291},[992],[390,5293],{"className":5294,"style":717},[572],[390,5296,381],{"className":5297},[411,453],[390,5299,667],{"className":5300},[666],[390,5302],{"className":5303,"style":771},[572],[390,5305,776],{"className":5306},[775],[390,5308],{"className":5309,"style":771},[572],[390,5311,5313,5316],{"className":5312},[402],[390,5314],{"className":5315,"style":1803},[406],[390,5317,1000],{"className":5318},[411],", then\n",[390,5321,5323],{"className":5322},[393],[390,5324,5326,5380,5397],{"className":5325,"ariaHidden":398},[397],[390,5327,5329,5332,5370,5373,5377],{"className":5328},[402],[390,5330],{"className":5331,"style":2480},[406],[390,5333,5335,5338],{"className":5334},[411],[390,5336,385],{"className":5337},[411,453],[390,5339,5341],{"className":5340},[420],[390,5342,5344],{"className":5343},[424],[390,5345,5347],{"className":5346},[429],[390,5348,5350],{"className":5349,"style":2480},[433],[390,5351,5352,5355],{"style":559},[390,5353],{"className":5354,"style":442},[441],[390,5356,5358],{"className":5357},[446,447,448,449],[390,5359,5361,5364,5367],{"className":5360},[411,449],[390,5362,381],{"className":5363},[411,453,449],[390,5365,5136],{"className":5366},[581,449],[390,5368,1000],{"className":5369},[411,449],[390,5371],{"className":5372,"style":771},[572],[390,5374,5376],{"className":5375},[775],"≡",[390,5378],{"className":5379,"style":771},[572],[390,5381,5383,5386,5389,5393],{"className":5382},[402],[390,5384],{"className":5385,"style":1803},[406],[390,5387,1000],{"className":5388},[411],[390,5390],{"className":5391},[572,5392],"allowbreak",[390,5394],{"className":5395,"style":5396},[572],"margin-right:0.4444em;",[390,5398,5400,5403,5406,5415,5419,5422,5425],{"className":5399},[402],[390,5401],{"className":5402,"style":650},[406],[390,5404,659],{"className":5405},[658],[390,5407,5409],{"className":5408},[411],[390,5410,5412],{"className":5411},[411],[390,5413,589],{"className":5414},[411,588],[390,5416],{"className":5417,"style":5418},[572],"margin-right:0.3333em;",[390,5420,381],{"className":5421},[411,453],[390,5423,667],{"className":5424},[666],[390,5426,1413],{"className":5427},[411],[4548,5429,5431],{"type":5430},"proof",[381,5432,5433,5436,5437,5519,5520,5535,5536,5605,5606,5674,5675,5829,5830,5869,5870,5938,5939],{},[471,5434,5435],{},"Proof sketch."," The set ",[390,5438,5440],{"className":5439},[393],[390,5441,5443,5501],{"className":5442,"ariaHidden":398},[397],[390,5444,5446,5449,5452,5455,5458,5461,5464,5467,5470,5473,5477,5480,5483,5486,5489,5492,5495,5498],{"className":5445},[402],[390,5447],{"className":5448,"style":650},[406],[390,5450,984],{"className":5451},[658],[390,5453,385],{"className":5454},[411,453],[390,5456,993],{"className":5457},[992],[390,5459],{"className":5460,"style":717},[572],[390,5462,886],{"className":5463},[411],[390,5465,385],{"className":5466},[411,453],[390,5468,993],{"className":5469},[992],[390,5471],{"className":5472,"style":717},[572],[390,5474,5476],{"className":5475},[3244],"…",[390,5478],{"className":5479,"style":717},[572],[390,5481,993],{"className":5482},[992],[390,5484],{"className":5485,"style":717},[572],[390,5487,659],{"className":5488},[658],[390,5490,381],{"className":5491},[411,453],[390,5493],{"className":5494,"style":577},[572],[390,5496,5136],{"className":5497},[581],[390,5499],{"className":5500,"style":577},[572],[390,5502,5504,5507,5510,5513,5516],{"className":5503},[402],[390,5505],{"className":5506,"style":650},[406],[390,5508,1000],{"className":5509},[411],[390,5511,667],{"className":5512},[666],[390,5514,385],{"className":5515},[411,453],[390,5517,1004],{"className":5518},[666]," taken mod ",[390,5521,5523],{"className":5522},[393],[390,5524,5526],{"className":5525,"ariaHidden":398},[397],[390,5527,5529,5532],{"className":5528},[402],[390,5530],{"className":5531,"style":5259},[406],[390,5533,381],{"className":5534},[411,453]," is a permutation of\n",[390,5537,5539],{"className":5538},[393],[390,5540,5542,5593],{"className":5541,"ariaHidden":398},[397],[390,5543,5545,5548,5551,5554,5557,5560,5563,5566,5569,5572,5575,5578,5581,5584,5587,5590],{"className":5544},[402],[390,5546],{"className":5547,"style":650},[406],[390,5549,984],{"className":5550},[658],[390,5552,1000],{"className":5553},[411],[390,5555,993],{"className":5556},[992],[390,5558],{"className":5559,"style":717},[572],[390,5561,886],{"className":5562},[411],[390,5564,993],{"className":5565},[992],[390,5567],{"className":5568,"style":717},[572],[390,5570,5476],{"className":5571},[3244],[390,5573],{"className":5574,"style":717},[572],[390,5576,993],{"className":5577},[992],[390,5579],{"className":5580,"style":717},[572],[390,5582,381],{"className":5583},[411,453],[390,5585],{"className":5586,"style":577},[572],[390,5588,5136],{"className":5589},[581],[390,5591],{"className":5592,"style":577},[572],[390,5594,5596,5599,5602],{"className":5595},[402],[390,5597],{"className":5598,"style":650},[406],[390,5600,1000],{"className":5601},[411],[390,5603,1004],{"className":5604},[666]," (multiplication by a unit is a bijection on ",[390,5607,5609],{"className":5608},[393],[390,5610,5612],{"className":5611,"ariaHidden":398},[397],[390,5613,5615,5619],{"className":5614},[402],[390,5616],{"className":5617,"style":5618},[406],"height:1.072em;vertical-align:-0.3831em;",[390,5620,5622,5625],{"className":5621},[411],[390,5623,416],{"className":5624},[411,415],[390,5626,5628],{"className":5627},[420],[390,5629,5631,5665],{"className":5630},[424,425],[390,5632,5634,5662],{"className":5633},[429],[390,5635,5638,5650],{"className":5636,"style":5637},[433],"height:0.6887em;",[390,5639,5641,5644],{"style":5640},"top:-2.453em;margin-left:0em;margin-right:0.05em;",[390,5642],{"className":5643,"style":442},[441],[390,5645,5647],{"className":5646},[446,447,448,449],[390,5648,381],{"className":5649},[411,453,449],[390,5651,5652,5655],{"style":559},[390,5653],{"className":5654,"style":442},[441],[390,5656,5658],{"className":5657},[446,447,448,449],[390,5659,5661],{"className":5660},[581,449],"∗",[390,5663,459],{"className":5664},[458],[390,5666,5668],{"className":5667},[429],[390,5669,5672],{"className":5670,"style":5671},[433],"height:0.3831em;",[390,5673],{},").\nMultiplying both lists, ",[390,5676,5678],{"className":5677},[393],[390,5679,5681,5741,5763,5784,5802],{"className":5680,"ariaHidden":398},[397],[390,5682,5684,5688,5726,5729,5732,5735,5738],{"className":5683},[402],[390,5685],{"className":5686,"style":5687},[406],"height:1.0641em;vertical-align:-0.25em;",[390,5689,5691,5694],{"className":5690},[411],[390,5692,385],{"className":5693},[411,453],[390,5695,5697],{"className":5696},[420],[390,5698,5700],{"className":5699},[424],[390,5701,5703],{"className":5702},[429],[390,5704,5706],{"className":5705,"style":2480},[433],[390,5707,5708,5711],{"style":559},[390,5709],{"className":5710,"style":442},[441],[390,5712,5714],{"className":5713},[446,447,448,449],[390,5715,5717,5720,5723],{"className":5716},[411,449],[390,5718,381],{"className":5719},[411,453,449],[390,5721,5136],{"className":5722},[581,449],[390,5724,1000],{"className":5725},[411,449],[390,5727,659],{"className":5728},[658],[390,5730,381],{"className":5731},[411,453],[390,5733],{"className":5734,"style":577},[572],[390,5736,5136],{"className":5737},[581],[390,5739],{"className":5740,"style":577},[572],[390,5742,5744,5747,5750,5754,5757,5760],{"className":5743},[402],[390,5745],{"className":5746,"style":650},[406],[390,5748,1000],{"className":5749},[411],[390,5751,5753],{"className":5752},[666],")!",[390,5755],{"className":5756,"style":771},[572],[390,5758,5376],{"className":5759},[775],[390,5761],{"className":5762,"style":771},[572],[390,5764,5766,5769,5772,5775,5778,5781],{"className":5765},[402],[390,5767],{"className":5768,"style":650},[406],[390,5770,659],{"className":5771},[658],[390,5773,381],{"className":5774},[411,453],[390,5776],{"className":5777,"style":577},[572],[390,5779,5136],{"className":5780},[581],[390,5782],{"className":5783,"style":577},[572],[390,5785,5787,5790,5793,5796,5799],{"className":5786},[402],[390,5788],{"className":5789,"style":650},[406],[390,5791,1000],{"className":5792},[411],[390,5794,5753],{"className":5795},[666],[390,5797],{"className":5798},[572,5392],[390,5800],{"className":5801,"style":5396},[572],[390,5803,5805,5808,5811,5820,5823,5826],{"className":5804},[402],[390,5806],{"className":5807,"style":650},[406],[390,5809,659],{"className":5810},[658],[390,5812,5814],{"className":5813},[411],[390,5815,5817],{"className":5816},[411],[390,5818,589],{"className":5819},[411,588],[390,5821],{"className":5822,"style":5418},[572],[390,5824,381],{"className":5825},[411,453],[390,5827,667],{"className":5828},[666],", and canceling the unit\n",[390,5831,5833],{"className":5832},[393],[390,5834,5836,5857],{"className":5835,"ariaHidden":398},[397],[390,5837,5839,5842,5845,5848,5851,5854],{"className":5838},[402],[390,5840],{"className":5841,"style":650},[406],[390,5843,659],{"className":5844},[658],[390,5846,381],{"className":5847},[411,453],[390,5849],{"className":5850,"style":577},[572],[390,5852,5136],{"className":5853},[581],[390,5855],{"className":5856,"style":577},[572],[390,5858,5860,5863,5866],{"className":5859},[402],[390,5861],{"className":5862,"style":650},[406],[390,5864,1000],{"className":5865},[411],[390,5867,5753],{"className":5868},[666]," gives ",[390,5871,5873],{"className":5872},[393],[390,5874,5876,5929],{"className":5875,"ariaHidden":398},[397],[390,5877,5879,5882,5920,5923,5926],{"className":5878},[402],[390,5880],{"className":5881,"style":2480},[406],[390,5883,5885,5888],{"className":5884},[411],[390,5886,385],{"className":5887},[411,453],[390,5889,5891],{"className":5890},[420],[390,5892,5894],{"className":5893},[424],[390,5895,5897],{"className":5896},[429],[390,5898,5900],{"className":5899,"style":2480},[433],[390,5901,5902,5905],{"style":559},[390,5903],{"className":5904,"style":442},[441],[390,5906,5908],{"className":5907},[446,447,448,449],[390,5909,5911,5914,5917],{"className":5910},[411,449],[390,5912,381],{"className":5913},[411,453,449],[390,5915,5136],{"className":5916},[581,449],[390,5918,1000],{"className":5919},[411,449],[390,5921],{"className":5922,"style":771},[572],[390,5924,5376],{"className":5925},[775],[390,5927],{"className":5928,"style":771},[572],[390,5930,5932,5935],{"className":5931},[402],[390,5933],{"className":5934,"style":1803},[406],[390,5936,1000],{"className":5937},[411],". ",[390,5940,5942],{"className":5941},[393],[390,5943,5945],{"className":5944,"ariaHidden":398},[397],[390,5946,5948,5952],{"className":5947},[402],[390,5949],{"className":5950,"style":5951},[406],"height:0.675em;",[390,5953,5956],{"className":5954},[3066,5955],"qed",[390,5957,5960],{"className":5958},[411,5959],"amsrm","□",[381,5962,5963,5964,6032,6033,6080],{},"A corollary recovers the modular inverse from the previous lesson without the extended\nEuclidean algorithm: multiplying ",[390,5965,5967],{"className":5966},[393],[390,5968,5970,6023],{"className":5969,"ariaHidden":398},[397],[390,5971,5973,5976,6014,6017,6020],{"className":5972},[402],[390,5974],{"className":5975,"style":2480},[406],[390,5977,5979,5982],{"className":5978},[411],[390,5980,385],{"className":5981},[411,453],[390,5983,5985],{"className":5984},[420],[390,5986,5988],{"className":5987},[424],[390,5989,5991],{"className":5990},[429],[390,5992,5994],{"className":5993,"style":2480},[433],[390,5995,5996,5999],{"style":559},[390,5997],{"className":5998,"style":442},[441],[390,6000,6002],{"className":6001},[446,447,448,449],[390,6003,6005,6008,6011],{"className":6004},[411,449],[390,6006,381],{"className":6007},[411,453,449],[390,6009,5136],{"className":6010},[581,449],[390,6012,1000],{"className":6013},[411,449],[390,6015],{"className":6016,"style":771},[572],[390,6018,5376],{"className":6019},[775],[390,6021],{"className":6022,"style":771},[572],[390,6024,6026,6029],{"className":6025},[402],[390,6027],{"className":6028,"style":1803},[406],[390,6030,1000],{"className":6031},[411]," by ",[390,6034,6036],{"className":6035},[393],[390,6037,6039],{"className":6038,"ariaHidden":398},[397],[390,6040,6042,6045],{"className":6041},[402],[390,6043],{"className":6044,"style":2480},[406],[390,6046,6048,6051],{"className":6047},[411],[390,6049,385],{"className":6050},[411,453],[390,6052,6054],{"className":6053},[420],[390,6055,6057],{"className":6056},[424],[390,6058,6060],{"className":6059},[429],[390,6061,6063],{"className":6062,"style":2480},[433],[390,6064,6065,6068],{"style":559},[390,6066],{"className":6067,"style":442},[441],[390,6069,6071],{"className":6070},[446,447,448,449],[390,6072,6074,6077],{"className":6073},[411,449],[390,6075,5136],{"className":6076},[411,449],[390,6078,1000],{"className":6079},[411,449]," gives",[390,6082,6084],{"className":6083},[1009],[390,6085,6087],{"className":6086},[393],[390,6088,6090,6141,6192],{"className":6089,"ariaHidden":398},[397],[390,6091,6093,6097,6132,6135,6138],{"className":6092},[402],[390,6094],{"className":6095,"style":6096},[406],"height:0.8641em;",[390,6098,6100,6103],{"className":6099},[411],[390,6101,385],{"className":6102},[411,453],[390,6104,6106],{"className":6105},[420],[390,6107,6109],{"className":6108},[424],[390,6110,6112],{"className":6111},[429],[390,6113,6115],{"className":6114,"style":6096},[433],[390,6116,6117,6120],{"style":1043},[390,6118],{"className":6119,"style":442},[441],[390,6121,6123],{"className":6122},[446,447,448,449],[390,6124,6126,6129],{"className":6125},[411,449],[390,6127,5136],{"className":6128},[411,449],[390,6130,1000],{"className":6131},[411,449],[390,6133],{"className":6134,"style":771},[572],[390,6136,5376],{"className":6137},[775],[390,6139],{"className":6140,"style":771},[572],[390,6142,6144,6147,6185,6188],{"className":6143},[402],[390,6145],{"className":6146,"style":6096},[406],[390,6148,6150,6153],{"className":6149},[411],[390,6151,385],{"className":6152},[411,453],[390,6154,6156],{"className":6155},[420],[390,6157,6159],{"className":6158},[424],[390,6160,6162],{"className":6161},[429],[390,6163,6165],{"className":6164,"style":6096},[433],[390,6166,6167,6170],{"style":1043},[390,6168],{"className":6169,"style":442},[441],[390,6171,6173],{"className":6172},[446,447,448,449],[390,6174,6176,6179,6182],{"className":6175},[411,449],[390,6177,381],{"className":6178},[411,453,449],[390,6180,5136],{"className":6181},[581,449],[390,6183,886],{"className":6184},[411,449],[390,6186],{"className":6187},[572,5392],[390,6189],{"className":6190,"style":6191},[572],"margin-right:1em;",[390,6193,6195,6198,6201,6210,6213,6216,6219],{"className":6194},[402],[390,6196],{"className":6197,"style":650},[406],[390,6199,659],{"className":6200},[658],[390,6202,6204],{"className":6203},[411],[390,6205,6207],{"className":6206},[411],[390,6208,589],{"className":6209},[411,588],[390,6211],{"className":6212,"style":5418},[572],[390,6214,381],{"className":6215},[411,453],[390,6217,667],{"className":6218},[666],[390,6220,993],{"className":6221},[992],[381,6223,6224,6225,6246,6247,6250,6251,1413,6314,6321,6322,6325,6326,6380,6381,6486,6487,6502,6503,1413],{},"a single ",[390,6226,6228],{"className":6227},[393],[390,6229,6231],{"className":6230,"ariaHidden":398},[397],[390,6232,6234,6237],{"className":6233},[402],[390,6235],{"className":6236,"style":537},[406],[390,6238,6240],{"className":6239},[3066,3067],[390,6241,6243],{"className":6242},[411,3071],[390,6244,3075],{"className":6245},[411]," call. This only works for a ",[471,6248,6249],{},"prime"," modulus, but that is\nexactly the common case in competitive programming, where arithmetic is done modulo a\nfixed prime such as ",[390,6252,6254],{"className":6253},[393],[390,6255,6257,6305],{"className":6256,"ariaHidden":398},[397],[390,6258,6260,6264,6267,6296,6299,6302],{"className":6259},[402],[390,6261],{"className":6262,"style":6263},[406],"height:0.8974em;vertical-align:-0.0833em;",[390,6265,1000],{"className":6266},[411],[390,6268,6270,6273],{"className":6269},[411],[390,6271,988],{"className":6272},[411],[390,6274,6276],{"className":6275},[420],[390,6277,6279],{"className":6278},[424],[390,6280,6282],{"className":6281},[429],[390,6283,6285],{"className":6284,"style":2480},[433],[390,6286,6287,6290],{"style":559},[390,6288],{"className":6289,"style":442},[441],[390,6291,6293],{"className":6292},[446,447,448,449],[390,6294,1829],{"className":6295},[411,449],[390,6297],{"className":6298,"style":577},[572],[390,6300,1584],{"className":6301},[581],[390,6303],{"className":6304,"style":577},[572],[390,6306,6308,6311],{"className":6307},[402],[390,6309],{"className":6310,"style":1803},[406],[390,6312,2644],{"className":6313},[411],[2443,6315,6316],{},[385,6317,886],{"href":6318,"ariaDescribedBy":6319,"dataFootnoteRef":376,"id":6320},"#user-content-fn-skiena-nt",[2449],"user-content-fnref-skiena-nt"," For a general modulus, ",[471,6323,6324],{},"Euler's theorem","\ngeneralizes Fermat: if ",[390,6327,6329],{"className":6328},[393],[390,6330,6332,6371],{"className":6331,"ariaHidden":398},[397],[390,6333,6335,6338,6344,6347,6350,6353,6356,6359,6362,6365,6368],{"className":6334},[402],[390,6336],{"className":6337,"style":650},[406],[390,6339,6341],{"className":6340},[708],[390,6342,5282],{"className":6343},[411,588],[390,6345,659],{"className":6346},[658],[390,6348,385],{"className":6349},[411,453],[390,6351,993],{"className":6352},[992],[390,6354],{"className":6355,"style":717},[572],[390,6357,454],{"className":6358},[411,453],[390,6360,667],{"className":6361},[666],[390,6363],{"className":6364,"style":771},[572],[390,6366,776],{"className":6367},[775],[390,6369],{"className":6370,"style":771},[572],[390,6372,6374,6377],{"className":6373},[402],[390,6375],{"className":6376,"style":1803},[406],[390,6378,1000],{"className":6379},[411]," then ",[390,6382,6384],{"className":6383},[393],[390,6385,6387,6444,6459],{"className":6386,"ariaHidden":398},[397],[390,6388,6390,6393,6435,6438,6441],{"className":6389},[402],[390,6391],{"className":6392,"style":3411},[406],[390,6394,6396,6399],{"className":6395},[411],[390,6397,385],{"className":6398},[411,453],[390,6400,6402],{"className":6401},[420],[390,6403,6405],{"className":6404},[424],[390,6406,6408],{"className":6407},[429],[390,6409,6411],{"className":6410,"style":3411},[433],[390,6412,6413,6416],{"style":559},[390,6414],{"className":6415,"style":442},[441],[390,6417,6419],{"className":6418},[446,447,448,449],[390,6420,6422,6426,6429,6432],{"className":6421},[411,449],[390,6423,6425],{"className":6424},[411,453,449],"φ",[390,6427,659],{"className":6428},[658,449],[390,6430,454],{"className":6431},[411,453,449],[390,6433,667],{"className":6434},[666,449],[390,6436],{"className":6437,"style":771},[572],[390,6439,5376],{"className":6440},[775],[390,6442],{"className":6443,"style":771},[572],[390,6445,6447,6450,6453,6456],{"className":6446},[402],[390,6448],{"className":6449,"style":1803},[406],[390,6451,1000],{"className":6452},[411],[390,6454],{"className":6455},[572,5392],[390,6457],{"className":6458,"style":5396},[572],[390,6460,6462,6465,6468,6477,6480,6483],{"className":6461},[402],[390,6463],{"className":6464,"style":650},[406],[390,6466,659],{"className":6467},[658],[390,6469,6471],{"className":6470},[411],[390,6472,6474],{"className":6473},[411],[390,6475,589],{"className":6476},[411,588],[390,6478],{"className":6479,"style":5418},[572],[390,6481,454],{"className":6482},[411,453],[390,6484,667],{"className":6485},[666],", where\n",[390,6488,6490],{"className":6489},[393],[390,6491,6493],{"className":6492,"ariaHidden":398},[397],[390,6494,6496,6499],{"className":6495},[402],[390,6497],{"className":6498,"style":5259},[406],[390,6500,6425],{"className":6501},[411,453]," is Euler's totient, giving ",[390,6504,6506],{"className":6505},[393],[390,6507,6509,6559],{"className":6508,"ariaHidden":398},[397],[390,6510,6512,6515,6550,6553,6556],{"className":6511},[402],[390,6513],{"className":6514,"style":2480},[406],[390,6516,6518,6521],{"className":6517},[411],[390,6519,385],{"className":6520},[411,453],[390,6522,6524],{"className":6523},[420],[390,6525,6527],{"className":6526},[424],[390,6528,6530],{"className":6529},[429],[390,6531,6533],{"className":6532,"style":2480},[433],[390,6534,6535,6538],{"style":559},[390,6536],{"className":6537,"style":442},[441],[390,6539,6541],{"className":6540},[446,447,448,449],[390,6542,6544,6547],{"className":6543},[411,449],[390,6545,5136],{"className":6546},[411,449],[390,6548,1000],{"className":6549},[411,449],[390,6551],{"className":6552,"style":771},[572],[390,6554,5376],{"className":6555},[775],[390,6557],{"className":6558,"style":771},[572],[390,6560,6562,6565],{"className":6561},[402],[390,6563],{"className":6564,"style":3411},[406],[390,6566,6568,6571],{"className":6567},[411],[390,6569,385],{"className":6570},[411,453],[390,6572,6574],{"className":6573},[420],[390,6575,6577],{"className":6576},[424],[390,6578,6580],{"className":6579},[429],[390,6581,6583],{"className":6582,"style":3411},[433],[390,6584,6585,6588],{"style":559},[390,6586],{"className":6587,"style":442},[441],[390,6589,6591],{"className":6590},[446,447,448,449],[390,6592,6594,6597,6600,6603,6606,6609],{"className":6593},[411,449],[390,6595,6425],{"className":6596},[411,453,449],[390,6598,659],{"className":6599},[658,449],[390,6601,454],{"className":6602},[411,453,449],[390,6604,667],{"className":6605},[666,449],[390,6607,5136],{"className":6608},[581,449],[390,6610,1000],{"className":6611},[411,449],[730,6613,6615],{"id":6614},"primality-testing","Primality testing",[381,6617,6618,6619,6634],{},"How do we decide whether a number ",[390,6620,6622],{"className":6621},[393],[390,6623,6625],{"className":6624,"ariaHidden":398},[397],[390,6626,6628,6631],{"className":6627},[402],[390,6629],{"className":6630,"style":487},[406],[390,6632,507],{"className":6633},[411,453]," is prime? Three approaches, in increasing power.",[6636,6637,6639,6640],"h3",{"id":6638},"trial-division-on","Trial division — ",[390,6641,6643],{"className":6642},[393],[390,6644,6646],{"className":6645,"ariaHidden":398},[397],[390,6647,6649,6653,6656,6659,6718],{"className":6648},[402],[390,6650],{"className":6651,"style":6652},[406],"height:1.0503em;vertical-align:-0.25em;",[390,6654,701],{"className":6655,"style":700},[411,453],[390,6657,659],{"className":6658},[658],[390,6660,6663],{"className":6661},[411,6662],"sqrt",[390,6664,6666,6709],{"className":6665},[424,425],[390,6667,6669,6706],{"className":6668},[429],[390,6670,6673,6686],{"className":6671,"style":6672},[433],"height:0.8003em;",[390,6674,6678,6682],{"className":6675,"style":6677},[6676],"svg-align","top:-3em;",[390,6679],{"className":6680,"style":6681},[441],"height:3em;",[390,6683,507],{"className":6684,"style":6685},[411,453],"padding-left:0.833em;",[390,6687,6689,6692],{"style":6688},"top:-2.7603em;",[390,6690],{"className":6691,"style":6681},[441],[390,6693,6697],{"className":6694,"style":6696},[6695],"hide-tail","min-width:0.853em;height:1.08em;",[1815,6698,6703],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},"400em","1.08em","0 0 400000 1080","xMinYMin slice",[1834,6704],{"d":6705},"M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z",[390,6707,459],{"className":6708},[458],[390,6710,6712],{"className":6711},[429],[390,6713,6716],{"className":6714,"style":6715},[433],"height:0.2397em;",[390,6717],{},[390,6719,667],{"className":6720},[666],[381,6722,6723,6724,6739,6740,6797,6798,6845,6846,6916,6917,6979],{},"If ",[390,6725,6727],{"className":6726},[393],[390,6728,6730],{"className":6729,"ariaHidden":398},[397],[390,6731,6733,6736],{"className":6732},[402],[390,6734],{"className":6735,"style":487},[406],[390,6737,507],{"className":6738},[411,453]," has a nontrivial factor it has one no larger than ",[390,6741,6743],{"className":6742},[393],[390,6744,6746],{"className":6745,"ariaHidden":398},[397],[390,6747,6749,6753],{"className":6748},[402],[390,6750],{"className":6751,"style":6752},[406],"height:1.04em;vertical-align:-0.2397em;",[390,6754,6756],{"className":6755},[411,6662],[390,6757,6759,6789],{"className":6758},[424,425],[390,6760,6762,6786],{"className":6761},[429],[390,6763,6765,6774],{"className":6764,"style":6672},[433],[390,6766,6768,6771],{"className":6767,"style":6677},[6676],[390,6769],{"className":6770,"style":6681},[441],[390,6772,507],{"className":6773,"style":6685},[411,453],[390,6775,6776,6779],{"style":6688},[390,6777],{"className":6778,"style":6681},[441],[390,6780,6782],{"className":6781,"style":6696},[6695],[1815,6783,6784],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},[1834,6785],{"d":6705},[390,6787,459],{"className":6788},[458],[390,6790,6792],{"className":6791},[429],[390,6793,6795],{"className":6794,"style":6715},[433],[390,6796],{}," (factors come in pairs\n",[390,6799,6801],{"className":6800},[393],[390,6802,6804,6823],{"className":6803,"ariaHidden":398},[397],[390,6805,6807,6810,6814,6817,6820],{"className":6806},[402],[390,6808],{"className":6809,"style":537},[406],[390,6811,6813],{"className":6812},[411,453],"d",[390,6815],{"className":6816,"style":577},[572],[390,6818,3556],{"className":6819},[581],[390,6821],{"className":6822,"style":577},[572],[390,6824,6826,6829,6832,6835,6839,6842],{"className":6825},[402],[390,6827],{"className":6828,"style":650},[406],[390,6830,659],{"className":6831},[658],[390,6833,507],{"className":6834},[411,453],[390,6836,6838],{"className":6837},[411],"\u002F",[390,6840,6813],{"className":6841},[411,453],[390,6843,667],{"className":6844},[666],", and the smaller is ",[390,6847,6849],{"className":6848},[393],[390,6850,6852,6866],{"className":6851,"ariaHidden":398},[397],[390,6853,6855,6859,6863],{"className":6854},[402],[390,6856],{"className":6857,"style":6858},[406],"height:0.7719em;vertical-align:-0.136em;",[390,6860,6862],{"className":6861},[775],"≤",[390,6864],{"className":6865,"style":771},[572],[390,6867,6869,6872],{"className":6868},[402],[390,6870],{"className":6871,"style":6752},[406],[390,6873,6875],{"className":6874},[411,6662],[390,6876,6878,6908],{"className":6877},[424,425],[390,6879,6881,6905],{"className":6880},[429],[390,6882,6884,6893],{"className":6883,"style":6672},[433],[390,6885,6887,6890],{"className":6886,"style":6677},[6676],[390,6888],{"className":6889,"style":6681},[441],[390,6891,507],{"className":6892,"style":6685},[411,453],[390,6894,6895,6898],{"style":6688},[390,6896],{"className":6897,"style":6681},[441],[390,6899,6901],{"className":6900,"style":6696},[6695],[1815,6902,6903],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},[1834,6904],{"d":6705},[390,6906,459],{"className":6907},[458],[390,6909,6911],{"className":6910},[429],[390,6912,6914],{"className":6913,"style":6715},[433],[390,6915],{},"). So testing every candidate divisor up\nto ",[390,6918,6920],{"className":6919},[393],[390,6921,6923],{"className":6922,"ariaHidden":398},[397],[390,6924,6926,6929,6932,6976],{"className":6925},[402],[390,6927],{"className":6928,"style":6652},[406],[390,6930,2235],{"className":6931},[658],[390,6933,6935],{"className":6934},[411,6662],[390,6936,6938,6968],{"className":6937},[424,425],[390,6939,6941,6965],{"className":6940},[429],[390,6942,6944,6953],{"className":6943,"style":6672},[433],[390,6945,6947,6950],{"className":6946,"style":6677},[6676],[390,6948],{"className":6949,"style":6681},[441],[390,6951,507],{"className":6952,"style":6685},[411,453],[390,6954,6955,6958],{"style":6688},[390,6956],{"className":6957,"style":6681},[441],[390,6959,6961],{"className":6960,"style":6696},[6695],[1815,6962,6963],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},[1834,6964],{"d":6705},[390,6966,459],{"className":6967},[458],[390,6969,6971],{"className":6970},[429],[390,6972,6974],{"className":6973,"style":6715},[433],[390,6975],{},[390,6977,2291],{"className":6978},[666]," settles the question.",[2511,6981,6983],{"className":2513,"code":6982,"language":2515,"meta":376,"style":376},"caption: $\\textsc{IsPrime-Trial}(n)$ — $O(\\sqrt n)$ deterministic test\nif $n \u003C 2$ then return false\n$d \\gets 2$\nwhile $d \\cdot d \\le n$ do\n  if $n \\bmod d = 0$ then return false\n  $d \\gets d + 1$\nreturn true\n",[2517,6984,6985,6990,6995,7000,7005,7010,7015],{"__ignoreMap":376},[390,6986,6987],{"class":2521,"line":6},[390,6988,6989],{},"caption: $\\textsc{IsPrime-Trial}(n)$ — $O(\\sqrt n)$ deterministic test\n",[390,6991,6992],{"class":2521,"line":18},[390,6993,6994],{},"if $n \u003C 2$ then return false\n",[390,6996,6997],{"class":2521,"line":24},[390,6998,6999],{},"$d \\gets 2$\n",[390,7001,7002],{"class":2521,"line":73},[390,7003,7004],{},"while $d \\cdot d \\le n$ do\n",[390,7006,7007],{"class":2521,"line":102},[390,7008,7009],{},"  if $n \\bmod d = 0$ then return false\n",[390,7011,7012],{"class":2521,"line":108},[390,7013,7014],{},"  $d \\gets d + 1$\n",[390,7016,7017],{"class":2521,"line":116},[390,7018,7019],{},"return true\n",[381,7021,7022,7023,7089,7090,7146],{},"This is perfectly adequate for one moderate number (say ",[390,7024,7026],{"className":7025},[393],[390,7027,7029,7047],{"className":7028,"ariaHidden":398},[397],[390,7030,7032,7035,7038,7041,7044],{"className":7031},[402],[390,7033],{"className":7034,"style":6858},[406],[390,7036,507],{"className":7037},[411,453],[390,7039],{"className":7040,"style":771},[572],[390,7042,6862],{"className":7043},[775],[390,7045],{"className":7046,"style":771},[572],[390,7048,7050,7053,7056],{"className":7049},[402],[390,7051],{"className":7052,"style":2480},[406],[390,7054,1000],{"className":7055},[411],[390,7057,7059,7062],{"className":7058},[411],[390,7060,988],{"className":7061},[411],[390,7063,7065],{"className":7064},[420],[390,7066,7068],{"className":7067},[424],[390,7069,7071],{"className":7070},[429],[390,7072,7074],{"className":7073,"style":2480},[433],[390,7075,7076,7079],{"style":559},[390,7077],{"className":7078,"style":442},[441],[390,7080,7082],{"className":7081},[446,447,448,449],[390,7083,7085],{"className":7084},[411,449],[390,7086,7088],{"className":7087},[411,449],"14","), and is the\nright tool when a problem hands you a single value. It is hopeless for a 200-digit\ncryptographic number, where ",[390,7091,7093],{"className":7092},[393],[390,7094,7096],{"className":7095,"ariaHidden":398},[397],[390,7097,7099,7102],{"className":7098},[402],[390,7100],{"className":7101,"style":6752},[406],[390,7103,7105],{"className":7104},[411,6662],[390,7106,7108,7138],{"className":7107},[424,425],[390,7109,7111,7135],{"className":7110},[429],[390,7112,7114,7123],{"className":7113,"style":6672},[433],[390,7115,7117,7120],{"className":7116,"style":6677},[6676],[390,7118],{"className":7119,"style":6681},[441],[390,7121,507],{"className":7122,"style":6685},[411,453],[390,7124,7125,7128],{"style":6688},[390,7126],{"className":7127,"style":6681},[441],[390,7129,7131],{"className":7130,"style":6696},[6695],[1815,7132,7133],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},[1834,7134],{"d":6705},[390,7136,459],{"className":7137},[458],[390,7139,7141],{"className":7140},[429],[390,7142,7144],{"className":7143,"style":6715},[433],[390,7145],{}," is astronomically large.",[6636,7148,7150],{"id":7149},"the-fermat-test-probabilistic","The Fermat test — probabilistic",[381,7152,7153,7154,7157,7158,7173,7174,7275,7276,7291,7292,7307,7308,7311,7312,911,7327,7467,7468,2201,7483,7486,7487,7508,7509,7467,7577,7592,7593,7596,7597,7612],{},"Fermat's little theorem runs in reverse as a ",[5231,7155,7156],{},"compositeness"," detector. If ",[390,7159,7161],{"className":7160},[393],[390,7162,7164],{"className":7163,"ariaHidden":398},[397],[390,7165,7167,7170],{"className":7166},[402],[390,7168],{"className":7169,"style":487},[406],[390,7171,507],{"className":7172},[411,453]," is prime,\nthen ",[390,7175,7177],{"className":7176},[393],[390,7178,7180,7233,7248],{"className":7179,"ariaHidden":398},[397],[390,7181,7183,7186,7224,7227,7230],{"className":7182},[402],[390,7184],{"className":7185,"style":2480},[406],[390,7187,7189,7192],{"className":7188},[411],[390,7190,385],{"className":7191},[411,453],[390,7193,7195],{"className":7194},[420],[390,7196,7198],{"className":7197},[424],[390,7199,7201],{"className":7200},[429],[390,7202,7204],{"className":7203,"style":2480},[433],[390,7205,7206,7209],{"style":559},[390,7207],{"className":7208,"style":442},[441],[390,7210,7212],{"className":7211},[446,447,448,449],[390,7213,7215,7218,7221],{"className":7214},[411,449],[390,7216,507],{"className":7217},[411,453,449],[390,7219,5136],{"className":7220},[581,449],[390,7222,1000],{"className":7223},[411,449],[390,7225],{"className":7226,"style":771},[572],[390,7228,5376],{"className":7229},[775],[390,7231],{"className":7232,"style":771},[572],[390,7234,7236,7239,7242,7245],{"className":7235},[402],[390,7237],{"className":7238,"style":1803},[406],[390,7240,1000],{"className":7241},[411],[390,7243],{"className":7244},[572,5392],[390,7246],{"className":7247,"style":5396},[572],[390,7249,7251,7254,7257,7266,7269,7272],{"className":7250},[402],[390,7252],{"className":7253,"style":650},[406],[390,7255,659],{"className":7256},[658],[390,7258,7260],{"className":7259},[411],[390,7261,7263],{"className":7262},[411],[390,7264,589],{"className":7265},[411,588],[390,7267],{"className":7268,"style":5418},[572],[390,7270,507],{"className":7271},[411,453],[390,7273,667],{"className":7274},[666]," for every ",[390,7277,7279],{"className":7278},[393],[390,7280,7282],{"className":7281,"ariaHidden":398},[397],[390,7283,7285,7288],{"className":7284},[402],[390,7286],{"className":7287,"style":487},[406],[390,7289,385],{"className":7290},[411,453]," coprime to ",[390,7293,7295],{"className":7294},[393],[390,7296,7298],{"className":7297,"ariaHidden":398},[397],[390,7299,7301,7304],{"className":7300},[402],[390,7302],{"className":7303,"style":487},[406],[390,7305,507],{"className":7306},[411,453],". So if we find a single\n",[471,7309,7310],{},"witness"," ",[390,7313,7315],{"className":7314},[393],[390,7316,7318],{"className":7317,"ariaHidden":398},[397],[390,7319,7321,7324],{"className":7320},[402],[390,7322],{"className":7323,"style":487},[406],[390,7325,385],{"className":7326},[411,453],[390,7328,7330],{"className":7329},[393],[390,7331,7333,7425,7440],{"className":7332,"ariaHidden":398},[397],[390,7334,7336,7340,7378,7381,7415,7419,7422],{"className":7335},[402],[390,7337],{"className":7338,"style":7339},[406],"height:1.0085em;vertical-align:-0.1944em;",[390,7341,7343,7346],{"className":7342},[411],[390,7344,385],{"className":7345},[411,453],[390,7347,7349],{"className":7348},[420],[390,7350,7352],{"className":7351},[424],[390,7353,7355],{"className":7354},[429],[390,7356,7358],{"className":7357,"style":2480},[433],[390,7359,7360,7363],{"style":559},[390,7361],{"className":7362,"style":442},[441],[390,7364,7366],{"className":7365},[446,447,448,449],[390,7367,7369,7372,7375],{"className":7368},[411,449],[390,7370,507],{"className":7371},[411,453,449],[390,7373,5136],{"className":7374},[581,449],[390,7376,1000],{"className":7377},[411,449],[390,7379],{"className":7380,"style":771},[572],[390,7382,7384],{"className":7383},[775],[390,7385,7388],{"className":7386},[411,7387],"vbox",[390,7389,7392],{"className":7390},[7391],"thinbox",[390,7393,7396,7400,7411],{"className":7394},[7395],"rlap",[390,7397],{"className":7398,"style":7399},[406],"height:0.8889em;vertical-align:-0.1944em;",[390,7401,7404],{"className":7402},[7403],"inner",[390,7405,7407],{"className":7406},[411],[390,7408,7410],{"className":7409},[775],"",[390,7412],{"className":7413},[7414],"fix",[390,7416],{"className":7417},[572,7418],"nobreak",[390,7420,5376],{"className":7421},[775],[390,7423],{"className":7424,"style":771},[572],[390,7426,7428,7431,7434,7437],{"className":7427},[402],[390,7429],{"className":7430,"style":1803},[406],[390,7432,1000],{"className":7433},[411],[390,7435],{"className":7436},[572,5392],[390,7438],{"className":7439,"style":5396},[572],[390,7441,7443,7446,7449,7458,7461,7464],{"className":7442},[402],[390,7444],{"className":7445,"style":650},[406],[390,7447,659],{"className":7448},[658],[390,7450,7452],{"className":7451},[411],[390,7453,7455],{"className":7454},[411],[390,7456,589],{"className":7457},[411,588],[390,7459],{"className":7460,"style":5418},[572],[390,7462,507],{"className":7463},[411,453],[390,7465,667],{"className":7466},[666],", then ",[390,7469,7471],{"className":7470},[393],[390,7472,7474],{"className":7473,"ariaHidden":398},[397],[390,7475,7477,7480],{"className":7476},[402],[390,7478],{"className":7479,"style":487},[406],[390,7481,507],{"className":7482},[411,453],[5231,7484,7485],{},"certainly composite",",\nand one ",[390,7488,7490],{"className":7489},[393],[390,7491,7493],{"className":7492,"ariaHidden":398},[397],[390,7494,7496,7499],{"className":7495},[402],[390,7497],{"className":7498,"style":537},[406],[390,7500,7502],{"className":7501},[3066,3067],[390,7503,7505],{"className":7504},[411,3071],[390,7506,3075],{"className":7507},[411]," call refutes primality. If instead ",[390,7510,7512],{"className":7511},[393],[390,7513,7515,7568],{"className":7514,"ariaHidden":398},[397],[390,7516,7518,7521,7559,7562,7565],{"className":7517},[402],[390,7519],{"className":7520,"style":2480},[406],[390,7522,7524,7527],{"className":7523},[411],[390,7525,385],{"className":7526},[411,453],[390,7528,7530],{"className":7529},[420],[390,7531,7533],{"className":7532},[424],[390,7534,7536],{"className":7535},[429],[390,7537,7539],{"className":7538,"style":2480},[433],[390,7540,7541,7544],{"style":559},[390,7542],{"className":7543,"style":442},[441],[390,7545,7547],{"className":7546},[446,447,448,449],[390,7548,7550,7553,7556],{"className":7549},[411,449],[390,7551,507],{"className":7552},[411,453,449],[390,7554,5136],{"className":7555},[581,449],[390,7557,1000],{"className":7558},[411,449],[390,7560],{"className":7561,"style":771},[572],[390,7563,5376],{"className":7564},[775],[390,7566],{"className":7567,"style":771},[572],[390,7569,7571,7574],{"className":7570},[402],[390,7572],{"className":7573,"style":1803},[406],[390,7575,1000],{"className":7576},[411],[390,7578,7580],{"className":7579},[393],[390,7581,7583],{"className":7582,"ariaHidden":398},[397],[390,7584,7586,7589],{"className":7585},[402],[390,7587],{"className":7588,"style":487},[406],[390,7590,507],{"className":7591},[411,453]," is\nonly ",[5231,7594,7595],{},"probably"," prime; repeat with several random ",[390,7598,7600],{"className":7599},[393],[390,7601,7603],{"className":7602,"ariaHidden":398},[397],[390,7604,7606,7609],{"className":7605},[402],[390,7607],{"className":7608,"style":487},[406],[390,7610,385],{"className":7611},[411,453]," to raise confidence.",[381,7614,7615,7616,7619,7620,7692,7693,7794,7795,7311,7798,7291,7813,7828],{},"The fatal caveat is the ",[471,7617,7618],{},"Carmichael numbers",", composites such as ",[390,7621,7623],{"className":7622},[393],[390,7624,7626,7645,7663,7682],{"className":7625,"ariaHidden":398},[397],[390,7627,7629,7632,7636,7639,7642],{"className":7628},[402],[390,7630],{"className":7631,"style":1803},[406],[390,7633,7635],{"className":7634},[411],"561",[390,7637],{"className":7638,"style":771},[572],[390,7640,776],{"className":7641},[775],[390,7643],{"className":7644,"style":771},[572],[390,7646,7648,7651,7654,7657,7660],{"className":7647},[402],[390,7649],{"className":7650,"style":1803},[406],[390,7652,2586],{"className":7653},[411],[390,7655],{"className":7656,"style":577},[572],[390,7658,3556],{"className":7659},[581],[390,7661],{"className":7662,"style":577},[572],[390,7664,7666,7669,7673,7676,7679],{"className":7665},[402],[390,7667],{"className":7668,"style":1803},[406],[390,7670,7672],{"className":7671},[411],"11",[390,7674],{"className":7675,"style":577},[572],[390,7677,3556],{"className":7678},[581],[390,7680],{"className":7681,"style":577},[572],[390,7683,7685,7688],{"className":7684},[402],[390,7686],{"className":7687,"style":1803},[406],[390,7689,7691],{"className":7690},[411],"17"," for which ",[390,7694,7696],{"className":7695},[393],[390,7697,7699,7752,7767],{"className":7698,"ariaHidden":398},[397],[390,7700,7702,7705,7743,7746,7749],{"className":7701},[402],[390,7703],{"className":7704,"style":2480},[406],[390,7706,7708,7711],{"className":7707},[411],[390,7709,385],{"className":7710},[411,453],[390,7712,7714],{"className":7713},[420],[390,7715,7717],{"className":7716},[424],[390,7718,7720],{"className":7719},[429],[390,7721,7723],{"className":7722,"style":2480},[433],[390,7724,7725,7728],{"style":559},[390,7726],{"className":7727,"style":442},[441],[390,7729,7731],{"className":7730},[446,447,448,449],[390,7732,7734,7737,7740],{"className":7733},[411,449],[390,7735,507],{"className":7736},[411,453,449],[390,7738,5136],{"className":7739},[581,449],[390,7741,1000],{"className":7742},[411,449],[390,7744],{"className":7745,"style":771},[572],[390,7747,5376],{"className":7748},[775],[390,7750],{"className":7751,"style":771},[572],[390,7753,7755,7758,7761,7764],{"className":7754},[402],[390,7756],{"className":7757,"style":1803},[406],[390,7759,1000],{"className":7760},[411],[390,7762],{"className":7763},[572,5392],[390,7765],{"className":7766,"style":5396},[572],[390,7768,7770,7773,7776,7785,7788,7791],{"className":7769},[402],[390,7771],{"className":7772,"style":650},[406],[390,7774,659],{"className":7775},[658],[390,7777,7779],{"className":7778},[411],[390,7780,7782],{"className":7781},[411],[390,7783,589],{"className":7784},[411,588],[390,7786],{"className":7787,"style":5418},[572],[390,7789,507],{"className":7790},[411,453],[390,7792,667],{"className":7793},[666]," holds for ",[5231,7796,7797],{},"every",[390,7799,7801],{"className":7800},[393],[390,7802,7804],{"className":7803,"ariaHidden":398},[397],[390,7805,7807,7810],{"className":7806},[402],[390,7808],{"className":7809,"style":487},[406],[390,7811,385],{"className":7812},[411,453],[390,7814,7816],{"className":7815},[393],[390,7817,7819],{"className":7818,"ariaHidden":398},[397],[390,7820,7822,7825],{"className":7821},[402],[390,7823],{"className":7824,"style":487},[406],[390,7826,507],{"className":7827},[411,453],". No\nchoice of coprime witness ever exposes them, so the Fermat test silently declares them\nprime. There are infinitely many. We need a test that looks deeper.",[381,7830,7831,7832,7847,7848,7881,7882,7961,7962,7977,7978,7993,7994,8010,8011,8030,8031,8049,8050,8069,8070,8085,8086,8101],{},"Watching the full square-root chain for ",[390,7833,7835],{"className":7834},[393],[390,7836,7838],{"className":7837,"ariaHidden":398},[397],[390,7839,7841,7844],{"className":7840},[402],[390,7842],{"className":7843,"style":1803},[406],[390,7845,7635],{"className":7846},[411]," shows exactly what the Fermat test\nmisses. With witness ",[390,7849,7851],{"className":7850},[393],[390,7852,7854,7872],{"className":7853,"ariaHidden":398},[397],[390,7855,7857,7860,7863,7866,7869],{"className":7856},[402],[390,7858],{"className":7859,"style":487},[406],[390,7861,385],{"className":7862},[411,453],[390,7864],{"className":7865,"style":771},[572],[390,7867,776],{"className":7868},[775],[390,7870],{"className":7871,"style":771},[572],[390,7873,7875,7878],{"className":7874},[402],[390,7876],{"className":7877,"style":1803},[406],[390,7879,886],{"className":7880},[411]," and ",[390,7883,7885],{"className":7884},[393],[390,7886,7888,7907,7951],{"className":7887,"ariaHidden":398},[397],[390,7889,7891,7894,7898,7901,7904],{"className":7890},[402],[390,7892],{"className":7893,"style":1803},[406],[390,7895,7897],{"className":7896},[411],"560",[390,7899],{"className":7900,"style":771},[572],[390,7902,776],{"className":7903},[775],[390,7905],{"className":7906,"style":771},[572],[390,7908,7910,7913,7942,7945,7948],{"className":7909},[402],[390,7911],{"className":7912,"style":2480},[406],[390,7914,7916,7919],{"className":7915},[411],[390,7917,886],{"className":7918},[411],[390,7920,7922],{"className":7921},[420],[390,7923,7925],{"className":7924},[424],[390,7926,7928],{"className":7927},[429],[390,7929,7931],{"className":7930,"style":2480},[433],[390,7932,7933,7936],{"style":559},[390,7934],{"className":7935,"style":442},[441],[390,7937,7939],{"className":7938},[446,447,448,449],[390,7940,2680],{"className":7941},[411,449],[390,7943],{"className":7944,"style":577},[572],[390,7946,3556],{"className":7947},[581],[390,7949],{"className":7950,"style":577},[572],[390,7952,7954,7957],{"className":7953},[402],[390,7955],{"className":7956,"style":1803},[406],[390,7958,7960],{"className":7959},[411],"35",", the chain ends at ",[390,7963,7965],{"className":7964},[393],[390,7966,7968],{"className":7967,"ariaHidden":398},[397],[390,7969,7971,7974],{"className":7970},[402],[390,7972],{"className":7973,"style":1803},[406],[390,7975,1000],{"className":7976},[411]," — so\nFermat, which sees only that last entry, is fooled — yet it reaches ",[390,7979,7981],{"className":7980},[393],[390,7982,7984],{"className":7983,"ariaHidden":398},[397],[390,7985,7987,7990],{"className":7986},[402],[390,7988],{"className":7989,"style":1803},[406],[390,7991,1000],{"className":7992},[411]," from\n",[390,7995,7997],{"className":7996},[393],[390,7998,8000],{"className":7999,"ariaHidden":398},[397],[390,8001,8003,8006],{"className":8002},[402],[390,8004],{"className":8005,"style":1803},[406],[390,8007,8009],{"className":8008},[411],"67",", a value that is neither ",[390,8012,8014],{"className":8013},[393],[390,8015,8017],{"className":8016,"ariaHidden":398},[397],[390,8018,8020,8024,8027],{"className":8019},[402],[390,8021],{"className":8022,"style":8023},[406],"height:0.7278em;vertical-align:-0.0833em;",[390,8025,1584],{"className":8026},[411],[390,8028,1000],{"className":8029},[411]," nor ",[390,8032,8034],{"className":8033},[393],[390,8035,8037],{"className":8036,"ariaHidden":398},[397],[390,8038,8040,8043,8046],{"className":8039},[402],[390,8041],{"className":8042,"style":8023},[406],[390,8044,5136],{"className":8045},[411],[390,8047,1000],{"className":8048},[411],". A prime can never square a non-",[390,8051,8053],{"className":8052},[393],[390,8054,8056],{"className":8055,"ariaHidden":398},[397],[390,8057,8059,8062,8066],{"className":8058},[402],[390,8060],{"className":8061,"style":8023},[406],[390,8063,8065],{"className":8064},[411],"±",[390,8067,1000],{"className":8068},[411],"\nresidue to ",[390,8071,8073],{"className":8072},[393],[390,8074,8076],{"className":8075,"ariaHidden":398},[397],[390,8077,8079,8082],{"className":8078},[402],[390,8080],{"className":8081,"style":1803},[406],[390,8083,1000],{"className":8084},[411],", so that one extra observation convicts ",[390,8087,8089],{"className":8088},[393],[390,8090,8092],{"className":8091,"ariaHidden":398},[397],[390,8093,8095,8098],{"className":8094},[402],[390,8096],{"className":8097,"style":1803},[406],[390,8099,7635],{"className":8100},[411]," as composite.",[1809,8103,8105,8391],{"className":8104},[1812,1813],[1815,8106,8110],{"xmlns":1817,"width":8107,"height":8108,"viewBox":8109},"468.339","155.954","-75 -75 351.254 116.966",[1822,8111,8112,8115,8122,8125,8132,8144,8147,8154,8157,8163,8178,8192,8206,8220,8234,8237,8240,8247,8250,8253,8259,8262,8265,8271,8274,8277,8283,8348],{"stroke":1824,"style":1825},[1834,8113],{"fill":1828,"d":8114},"M-38.573-6.829h31.298V-29.59h-31.298Z",[1822,8116,8118],{"transform":8117},"translate(-6.937 2.9)",[1834,8119],{"d":8120,"fill":1824,"stroke":1824,"className":8121,"style":1839},"M-19.017-18.210L-22.467-18.210L-22.467-18.443Q-22.467-18.456-22.436-18.487L-20.982-20.064Q-20.516-20.561-20.263-20.866Q-20.010-21.172-19.819-21.583Q-19.628-21.994-19.628-22.433Q-19.628-23.022-19.951-23.455Q-20.274-23.888-20.854-23.888Q-21.118-23.888-21.364-23.778Q-21.610-23.668-21.786-23.481Q-21.962-23.294-22.058-23.044L-21.979-23.044Q-21.777-23.044-21.634-22.908Q-21.491-22.772-21.491-22.556Q-21.491-22.350-21.634-22.211Q-21.777-22.073-21.979-22.073Q-22.181-22.073-22.324-22.216Q-22.467-22.358-22.467-22.556Q-22.467-23.018-22.230-23.391Q-21.992-23.765-21.592-23.984Q-21.193-24.204-20.744-24.204Q-20.221-24.204-19.767-23.989Q-19.312-23.773-19.039-23.374Q-18.767-22.974-18.767-22.433Q-18.767-22.038-18.938-21.684Q-19.110-21.330-19.375-21.051Q-19.641-20.772-20.092-20.387Q-20.542-20.003-20.621-19.928L-21.645-18.966L-20.828-18.966Q-20.177-18.966-19.740-18.977Q-19.303-18.988-19.272-19.010Q-19.202-19.093-19.147-19.333Q-19.092-19.572-19.052-19.840L-18.767-19.840L-19.017-18.210M-15.994-18.012Q-16.728-18.012-17.158-18.493Q-17.589-18.975-17.754-19.667Q-17.919-20.359-17.919-21.106Q-17.919-21.835-17.626-22.558Q-17.334-23.281-16.780-23.743Q-16.227-24.204-15.480-24.204Q-14.983-24.204-14.647-23.938Q-14.311-23.672-14.311-23.189Q-14.311-23.009-14.438-22.881Q-14.566-22.754-14.741-22.754Q-14.922-22.754-15.051-22.879Q-15.181-23.004-15.181-23.189Q-15.181-23.303-15.124-23.407Q-15.067-23.510-14.966-23.569Q-14.864-23.628-14.741-23.628Q-14.737-23.628-14.733-23.626Q-14.728-23.624-14.724-23.620Q-14.838-23.787-15.047-23.866Q-15.256-23.945-15.480-23.945Q-15.924-23.945-16.282-23.644Q-16.640-23.343-16.829-22.890Q-17.062-22.284-17.062-21.251Q-16.890-21.616-16.589-21.844Q-16.288-22.073-15.902-22.073Q-15.497-22.073-15.152-21.906Q-14.807-21.739-14.570-21.458Q-14.333-21.176-14.203-20.814Q-14.073-20.451-14.073-20.047Q-14.073-19.502-14.317-19.036Q-14.561-18.570-15.001-18.291Q-15.440-18.012-15.994-18.012M-15.994-18.298Q-15.532-18.298-15.297-18.555Q-15.062-18.812-14.996-19.186Q-14.930-19.559-14.930-20.029L-14.930-20.064Q-14.930-20.552-14.987-20.917Q-15.045-21.282-15.273-21.545Q-15.502-21.809-15.945-21.809Q-16.315-21.809-16.565-21.565Q-16.816-21.321-16.930-20.957Q-17.044-20.592-17.044-20.245Q-17.044-20.126-17.035-20.064Q-17.035-20.047-17.038-20.036Q-17.040-20.025-17.044-20.012Q-17.044-19.361-16.807-18.830Q-16.570-18.298-15.994-18.298M-12.786-18.931L-12.830-18.931Q-12.628-18.614-12.241-18.456Q-11.854-18.298-11.428-18.298Q-10.892-18.298-10.652-18.733Q-10.413-19.168-10.413-19.748Q-10.413-20.328-10.659-20.768Q-10.905-21.207-11.437-21.207L-12.056-21.207Q-12.083-21.207-12.116-21.236Q-12.149-21.264-12.149-21.286L-12.149-21.387Q-12.149-21.418-12.120-21.442Q-12.091-21.466-12.056-21.466L-11.538-21.506Q-11.072-21.506-10.826-21.978Q-10.580-22.451-10.580-22.969Q-10.580-23.396-10.793-23.670Q-11.006-23.945-11.428-23.945Q-11.771-23.945-12.096-23.815Q-12.421-23.686-12.606-23.431L-12.579-23.431Q-12.377-23.431-12.241-23.290Q-12.105-23.149-12.105-22.952Q-12.105-22.754-12.239-22.620Q-12.373-22.486-12.570-22.486Q-12.773-22.486-12.911-22.620Q-13.049-22.754-13.049-22.952Q-13.049-23.541-12.546-23.872Q-12.043-24.204-11.428-24.204Q-11.050-24.204-10.648-24.064Q-10.246-23.923-9.978-23.644Q-9.710-23.365-9.710-22.969Q-9.710-22.420-10.063-21.983Q-10.417-21.545-10.958-21.361Q-10.567-21.282-10.222-21.058Q-9.877-20.834-9.666-20.493Q-9.455-20.152-9.455-19.757Q-9.455-19.375-9.617-19.052Q-9.780-18.729-10.072-18.493Q-10.364-18.258-10.712-18.135Q-11.059-18.012-11.428-18.012Q-11.876-18.012-12.307-18.173Q-12.737-18.333-13.019-18.660Q-13.300-18.988-13.300-19.445Q-13.300-19.660-13.153-19.803Q-13.006-19.946-12.786-19.946Q-12.575-19.946-12.430-19.801Q-12.285-19.656-12.285-19.445Q-12.285-19.234-12.432-19.082Q-12.579-18.931-12.786-18.931",[1838],[1834,8123],{"fill":1828,"d":8124},"M24.023-6.829H55.32V-29.59H24.023Z",[1822,8126,8128],{"transform":8127},"translate(55.659 2.9)",[1834,8129],{"d":8130,"fill":1824,"stroke":1824,"className":8131,"style":1839},"M-19.017-18.210L-22.049-18.210L-22.049-18.526Q-20.898-18.526-20.898-18.821L-20.898-23.545Q-21.386-23.312-22.107-23.312L-22.107-23.628Q-20.977-23.628-20.415-24.204L-20.270-24.204Q-20.235-24.204-20.202-24.171Q-20.169-24.138-20.169-24.103L-20.169-18.821Q-20.169-18.526-19.017-18.526L-19.017-18.210M-15.994-18.012Q-16.728-18.012-17.158-18.493Q-17.589-18.975-17.754-19.667Q-17.919-20.359-17.919-21.106Q-17.919-21.835-17.626-22.558Q-17.334-23.281-16.780-23.743Q-16.227-24.204-15.480-24.204Q-14.983-24.204-14.647-23.938Q-14.311-23.672-14.311-23.189Q-14.311-23.009-14.438-22.881Q-14.566-22.754-14.741-22.754Q-14.922-22.754-15.051-22.879Q-15.181-23.004-15.181-23.189Q-15.181-23.303-15.124-23.407Q-15.067-23.510-14.966-23.569Q-14.864-23.628-14.741-23.628Q-14.737-23.628-14.733-23.626Q-14.728-23.624-14.724-23.620Q-14.838-23.787-15.047-23.866Q-15.256-23.945-15.480-23.945Q-15.924-23.945-16.282-23.644Q-16.640-23.343-16.829-22.890Q-17.062-22.284-17.062-21.251Q-16.890-21.616-16.589-21.844Q-16.288-22.073-15.902-22.073Q-15.497-22.073-15.152-21.906Q-14.807-21.739-14.570-21.458Q-14.333-21.176-14.203-20.814Q-14.073-20.451-14.073-20.047Q-14.073-19.502-14.317-19.036Q-14.561-18.570-15.001-18.291Q-15.440-18.012-15.994-18.012M-15.994-18.298Q-15.532-18.298-15.297-18.555Q-15.062-18.812-14.996-19.186Q-14.930-19.559-14.930-20.029L-14.930-20.064Q-14.930-20.552-14.987-20.917Q-15.045-21.282-15.273-21.545Q-15.502-21.809-15.945-21.809Q-16.315-21.809-16.565-21.565Q-16.816-21.321-16.930-20.957Q-17.044-20.592-17.044-20.245Q-17.044-20.126-17.035-20.064Q-17.035-20.047-17.038-20.036Q-17.040-20.025-17.044-20.012Q-17.044-19.361-16.807-18.830Q-16.570-18.298-15.994-18.298M-11.375-18.012Q-12.109-18.012-12.540-18.493Q-12.970-18.975-13.135-19.667Q-13.300-20.359-13.300-21.106Q-13.300-21.835-13.008-22.558Q-12.716-23.281-12.162-23.743Q-11.608-24.204-10.861-24.204Q-10.364-24.204-10.028-23.938Q-9.692-23.672-9.692-23.189Q-9.692-23.009-9.820-22.881Q-9.947-22.754-10.123-22.754Q-10.303-22.754-10.433-22.879Q-10.562-23.004-10.562-23.189Q-10.562-23.303-10.505-23.407Q-10.448-23.510-10.347-23.569Q-10.246-23.628-10.123-23.628Q-10.118-23.628-10.114-23.626Q-10.110-23.624-10.105-23.620Q-10.219-23.787-10.428-23.866Q-10.637-23.945-10.861-23.945Q-11.305-23.945-11.663-23.644Q-12.021-23.343-12.210-22.890Q-12.443-22.284-12.443-21.251Q-12.272-21.616-11.971-21.844Q-11.670-22.073-11.283-22.073Q-10.879-22.073-10.534-21.906Q-10.189-21.739-9.951-21.458Q-9.714-21.176-9.584-20.814Q-9.455-20.451-9.455-20.047Q-9.455-19.502-9.699-19.036Q-9.943-18.570-10.382-18.291Q-10.821-18.012-11.375-18.012M-11.375-18.298Q-10.914-18.298-10.679-18.555Q-10.444-18.812-10.378-19.186Q-10.312-19.559-10.312-20.029L-10.312-20.064Q-10.312-20.552-10.369-20.917Q-10.426-21.282-10.654-21.545Q-10.883-21.809-11.327-21.809Q-11.696-21.809-11.946-21.565Q-12.197-21.321-12.311-20.957Q-12.425-20.592-12.425-20.245Q-12.425-20.126-12.417-20.064Q-12.417-20.047-12.419-20.036Q-12.421-20.025-12.425-20.012Q-12.425-19.361-12.188-18.830Q-11.951-18.298-11.375-18.298",[1838],[1822,8133,8134,8137],{"fill":2087,"stroke":2088,"style":2089},[1834,8135],{"d":8136},"M86.619-6.829h31.298V-29.59H86.619Z",[1822,8138,8140],{"transform":8139},"translate(120.567 2.9)",[1834,8141],{"d":8142,"fill":1824,"stroke":1824,"className":8143,"style":1839},"M-20.612-18.012Q-21.346-18.012-21.777-18.493Q-22.208-18.975-22.372-19.667Q-22.537-20.359-22.537-21.106Q-22.537-21.835-22.245-22.558Q-21.953-23.281-21.399-23.743Q-20.845-24.204-20.098-24.204Q-19.602-24.204-19.266-23.938Q-18.929-23.672-18.929-23.189Q-18.929-23.009-19.057-22.881Q-19.184-22.754-19.360-22.754Q-19.540-22.754-19.670-22.879Q-19.799-23.004-19.799-23.189Q-19.799-23.303-19.742-23.407Q-19.685-23.510-19.584-23.569Q-19.483-23.628-19.360-23.628Q-19.356-23.628-19.351-23.626Q-19.347-23.624-19.342-23.620Q-19.457-23.787-19.665-23.866Q-19.874-23.945-20.098-23.945Q-20.542-23.945-20.900-23.644Q-21.258-23.343-21.447-22.890Q-21.680-22.284-21.680-21.251Q-21.509-21.616-21.208-21.844Q-20.907-22.073-20.520-22.073Q-20.116-22.073-19.771-21.906Q-19.426-21.739-19.189-21.458Q-18.951-21.176-18.822-20.814Q-18.692-20.451-18.692-20.047Q-18.692-19.502-18.936-19.036Q-19.180-18.570-19.619-18.291Q-20.059-18.012-20.612-18.012M-20.612-18.298Q-20.151-18.298-19.916-18.555Q-19.681-18.812-19.615-19.186Q-19.549-19.559-19.549-20.029L-19.549-20.064Q-19.549-20.552-19.606-20.917Q-19.663-21.282-19.892-21.545Q-20.120-21.809-20.564-21.809Q-20.933-21.809-21.184-21.565Q-21.434-21.321-21.549-20.957Q-21.663-20.592-21.663-20.245Q-21.663-20.126-21.654-20.064Q-21.654-20.047-21.656-20.036Q-21.658-20.025-21.663-20.012Q-21.663-19.361-21.425-18.830Q-21.188-18.298-20.612-18.298M-16.684-18.452Q-16.684-19.089-16.528-19.735Q-16.372-20.381-16.080-20.987Q-15.787-21.594-15.379-22.143L-14.561-23.251L-15.590-23.251Q-17.233-23.251-17.281-23.207Q-17.387-23.079-17.506-22.376L-17.791-22.376L-17.497-24.292L-17.207-24.292L-17.207-24.266Q-17.207-24.103-16.642-24.055Q-16.077-24.006-15.532-24.006L-13.814-24.006L-13.814-23.800Q-13.814-23.782-13.816-23.773Q-13.819-23.765-13.823-23.756L-15.111-22.007Q-15.361-21.655-15.508-21.229Q-15.655-20.803-15.721-20.339Q-15.787-19.876-15.800-19.465Q-15.814-19.054-15.814-18.452Q-15.814-18.272-15.939-18.142Q-16.064-18.012-16.244-18.012Q-16.363-18.012-16.466-18.069Q-16.570-18.127-16.627-18.230Q-16.684-18.333-16.684-18.452",[1838],[1834,8145],{"fill":1828,"d":8146},"M154.905-6.829h31.298V-29.59h-31.298Z",[1822,8148,8150],{"transform":8149},"translate(191.166 2.9)",[1834,8151],{"d":8152,"fill":1824,"stroke":1824,"className":8153,"style":1839},"M-19.017-18.210L-22.049-18.210L-22.049-18.526Q-20.898-18.526-20.898-18.821L-20.898-23.545Q-21.386-23.312-22.107-23.312L-22.107-23.628Q-20.977-23.628-20.415-24.204L-20.270-24.204Q-20.235-24.204-20.202-24.171Q-20.169-24.138-20.169-24.103L-20.169-18.821Q-20.169-18.526-19.017-18.526",[1838],[1834,8155],{"fill":1828,"d":8156},"M217.501-6.829H248.8V-29.59h-31.298Z",[1822,8158,8160],{"transform":8159},"translate(253.762 2.9)",[1834,8161],{"d":8152,"fill":1824,"stroke":1824,"className":8162,"style":1839},[1838],[1822,8164,8165,8172],{"stroke":1828},[1822,8166,8168],{"transform":8167},"translate(-6.174 -20.84)",[1834,8169],{"d":8170,"fill":1824,"stroke":1824,"className":8171,"style":2060},"M-21.420-18.132Q-21.776-18.132-22.045-18.312Q-22.315-18.491-22.455-18.786Q-22.596-19.081-22.596-19.440Q-22.596-19.827-22.434-20.241Q-22.272-20.655-21.988-20.993Q-21.705-21.331-21.336-21.534Q-20.967-21.737-20.565-21.737Q-20.072-21.737-19.795-21.288Q-19.764-21.421-19.660-21.503Q-19.557-21.585-19.428-21.585Q-19.315-21.585-19.235-21.515Q-19.154-21.444-19.154-21.331Q-19.154-21.304-19.170-21.241L-19.725-19.042Q-19.764-18.796-19.764-18.745Q-19.764-18.386-19.518-18.386Q-19.373-18.386-19.272-18.493Q-19.170-18.601-19.106-18.755Q-19.041-18.909-18.992-19.099Q-18.944-19.288-18.924-19.386Q-18.897-19.456-18.834-19.456L-18.733-19.456Q-18.694-19.456-18.668-19.423Q-18.643-19.390-18.643-19.362Q-18.643-19.347-18.651-19.331Q-18.764-18.839-18.963-18.485Q-19.162-18.132-19.533-18.132Q-19.815-18.132-20.041-18.274Q-20.268-18.417-20.350-18.675Q-20.572-18.433-20.846-18.282Q-21.119-18.132-21.420-18.132M-21.404-18.386Q-21.194-18.386-20.985-18.499Q-20.776-18.612-20.606-18.786Q-20.436-18.960-20.307-19.155Q-20.319-19.140-20.328-19.126Q-20.338-19.112-20.350-19.097L-19.916-20.819Q-19.955-20.999-20.041-21.149Q-20.127-21.300-20.264-21.392Q-20.401-21.483-20.580-21.483Q-20.916-21.483-21.188-21.202Q-21.459-20.921-21.619-20.546Q-21.744-20.226-21.842-19.806Q-21.940-19.386-21.940-19.105Q-21.940-18.815-21.807-18.601Q-21.674-18.386-21.404-18.386",[1838],[1822,8173,8174],{"transform":8167},[1834,8175],{"d":8176,"fill":1824,"stroke":1824,"className":8177,"style":1873},"M-17.636-21.484Q-17.340-21.147-16.610-21.147Q-16.352-21.147-16.172-21.275Q-15.992-21.402-15.904-21.610Q-15.816-21.818-15.816-22.076Q-15.816-22.471-16.023-22.742Q-16.229-23.013-16.616-23.013L-17.082-23.013Q-17.146-23.028-17.161-23.090L-17.161-23.157Q-17.146-23.213-17.082-23.230L-16.680-23.254Q-16.470-23.254-16.301-23.396Q-16.133-23.538-16.040-23.752Q-15.948-23.966-15.948-24.182Q-15.948-24.470-16.133-24.635Q-16.317-24.801-16.610-24.801Q-16.871-24.801-17.095-24.733Q-17.319-24.666-17.466-24.508Q-17.337-24.490-17.258-24.401Q-17.179-24.311-17.179-24.182Q-17.179-24.045-17.274-23.950Q-17.369-23.854-17.510-23.854Q-17.644-23.854-17.741-23.951Q-17.838-24.048-17.838-24.182Q-17.838-24.470-17.647-24.661Q-17.457-24.853-17.176-24.938Q-16.894-25.023-16.610-25.023Q-16.335-25.023-16.034-24.932Q-15.734-24.842-15.526-24.653Q-15.318-24.464-15.318-24.182Q-15.318-23.813-15.564-23.541Q-15.810-23.268-16.182-23.139Q-15.763-23.046-15.446-22.763Q-15.128-22.480-15.128-22.082Q-15.128-21.719-15.347-21.453Q-15.567-21.188-15.913-21.048Q-16.259-20.907-16.610-20.907Q-16.833-20.907-17.080-20.955Q-17.328-21.004-17.548-21.114Q-17.767-21.223-17.899-21.402Q-18.031-21.581-18.031-21.836Q-18.031-21.985-17.929-22.088Q-17.826-22.190-17.677-22.190Q-17.527-22.190-17.425-22.088Q-17.322-21.985-17.322-21.836Q-17.322-21.704-17.411-21.603Q-17.501-21.502-17.636-21.484M-13.988-21.675Q-13.912-21.508-13.764-21.389Q-13.616-21.270-13.427-21.209Q-13.238-21.147-13.051-21.147Q-12.734-21.147-12.531-21.289Q-12.327-21.431-12.233-21.678Q-12.139-21.924-12.139-22.234Q-12.139-22.688-12.287-23.009Q-12.435-23.330-12.837-23.330Q-13.086-23.330-13.254-23.268Q-13.423-23.207-13.528-23.122Q-13.634-23.037-13.710-22.953Q-13.786-22.870-13.821-22.864L-13.886-22.864Q-13.915-22.864-13.943-22.895Q-13.971-22.926-13.971-22.952L-13.971-24.950Q-13.962-25.023-13.886-25.023Q-13.880-25.023-13.856-25.017Q-13.367-24.830-12.884-24.830Q-12.394-24.830-11.905-25.017Q-11.882-25.023-11.876-25.023Q-11.811-25.023-11.791-24.950L-11.791-24.886Q-11.794-24.862-11.811-24.836Q-12.072-24.563-12.410-24.412Q-12.749-24.262-13.112-24.262Q-13.434-24.262-13.713-24.338L-13.713-23.254Q-13.540-23.403-13.314-23.475Q-13.089-23.547-12.837-23.547Q-12.476-23.547-12.173-23.369Q-11.870-23.192-11.693-22.892Q-11.515-22.592-11.515-22.234Q-11.515-21.850-11.738-21.544Q-11.961-21.238-12.315-21.073Q-12.670-20.907-13.051-20.907Q-13.361-20.907-13.656-21.042Q-13.950-21.177-14.132-21.426Q-14.313-21.675-14.313-22Q-14.313-22.135-14.222-22.225Q-14.132-22.316-13.994-22.316Q-13.859-22.316-13.764-22.225Q-13.669-22.135-13.669-22Q-13.669-21.862-13.760-21.768Q-13.850-21.675-13.988-21.675",[1838],[1822,8179,8180,8186],{"stroke":1828},[1822,8181,8183],{"transform":8182},"translate(56.422 -20.84)",[1834,8184],{"d":8170,"fill":1824,"stroke":1824,"className":8185,"style":2060},[1838],[1822,8187,8188],{"transform":8182},[1834,8189],{"d":8190,"fill":1824,"stroke":1824,"className":8191,"style":1873},"M-17.070-21.212Q-17.070-21.651-16.954-22.086Q-16.839-22.521-16.623-22.923Q-16.408-23.324-16.118-23.667L-15.553-24.332L-16.262-24.332Q-17.498-24.332-17.527-24.303Q-17.621-24.197-17.688-23.752L-17.934-23.752L-17.718-25.088L-17.474-25.088L-17.474-25.070Q-17.474-25.009-17.401-24.971Q-17.328-24.932-17.263-24.932Q-16.845-24.897-16.212-24.897L-14.929-24.897L-14.929-24.730Q-14.929-24.710-14.946-24.675L-15.901-23.547Q-16.264-23.122-16.364-22.558Q-16.464-21.994-16.464-21.200Q-16.464-21.077-16.555-20.992Q-16.645-20.907-16.765-20.907Q-16.894-20.907-16.982-20.995Q-17.070-21.083-17.070-21.212M-12.913-20.907Q-13.475-20.907-13.805-21.194Q-14.135-21.481-14.262-21.931Q-14.389-22.381-14.389-22.946Q-14.389-23.350-14.324-23.715Q-14.258-24.080-14.095-24.376Q-13.932-24.672-13.641-24.847Q-13.349-25.023-12.913-25.023Q-12.476-25.023-12.186-24.847Q-11.896-24.672-11.732-24.377Q-11.568-24.083-11.504-23.725Q-11.439-23.368-11.439-22.946Q-11.439-22.381-11.567-21.931Q-11.694-21.481-12.021-21.194Q-12.347-20.907-12.913-20.907M-12.913-21.124Q-12.509-21.124-12.314-21.434Q-12.119-21.745-12.075-22.137Q-12.031-22.530-12.031-23.043Q-12.031-23.538-12.075-23.897Q-12.119-24.256-12.314-24.531Q-12.509-24.806-12.913-24.806Q-13.317-24.806-13.512-24.531Q-13.707-24.256-13.751-23.897Q-13.795-23.538-13.795-23.043Q-13.795-22.530-13.751-22.137Q-13.707-21.745-13.512-21.434Q-13.317-21.124-12.913-21.124",[1838],[1822,8193,8194,8200],{"stroke":1828},[1822,8195,8197],{"transform":8196},"translate(117.185 -20.84)",[1834,8198],{"d":8170,"fill":1824,"stroke":1824,"className":8199,"style":2060},[1838],[1822,8201,8202],{"transform":8196},[1834,8203],{"d":8204,"fill":1824,"stroke":1824,"className":8205,"style":1873},"M-15.368-21.033L-17.659-21.033L-17.659-21.291Q-16.783-21.291-16.783-21.464L-16.783-24.543Q-16.976-24.455-17.208-24.418Q-17.439-24.382-17.694-24.382L-17.694-24.639Q-17.316-24.639-16.995-24.724Q-16.675-24.809-16.446-25.023L-16.326-25.023Q-16.294-25.023-16.269-25Q-16.244-24.976-16.244-24.938L-16.244-21.464Q-16.244-21.291-15.368-21.291L-15.368-21.033M-12.614-22.012L-14.469-22.012L-14.469-22.269L-12.374-24.976Q-12.336-25.023-12.277-25.023L-12.145-25.023Q-12.104-25.023-12.076-24.995Q-12.049-24.968-12.049-24.927L-12.049-22.269L-11.360-22.269L-11.360-22.012L-12.049-22.012L-12.049-21.464Q-12.049-21.291-11.372-21.291L-11.372-21.033L-13.291-21.033L-13.291-21.291Q-12.614-21.291-12.614-21.464L-12.614-22.012M-12.573-24.352L-14.179-22.269L-12.573-22.269L-12.573-24.352M-9.248-20.907Q-9.810-20.907-10.140-21.194Q-10.470-21.481-10.597-21.931Q-10.724-22.381-10.724-22.946Q-10.724-23.350-10.659-23.715Q-10.593-24.080-10.430-24.376Q-10.267-24.672-9.976-24.847Q-9.684-25.023-9.248-25.023Q-8.811-25.023-8.521-24.847Q-8.231-24.672-8.067-24.377Q-7.903-24.083-7.839-23.725Q-7.774-23.368-7.774-22.946Q-7.774-22.381-7.902-21.931Q-8.029-21.481-8.356-21.194Q-8.682-20.907-9.248-20.907M-9.248-21.124Q-8.844-21.124-8.649-21.434Q-8.454-21.745-8.410-22.137Q-8.366-22.530-8.366-23.043Q-8.366-23.538-8.410-23.897Q-8.454-24.256-8.649-24.531Q-8.844-24.806-9.248-24.806Q-9.652-24.806-9.847-24.531Q-10.042-24.256-10.086-23.897Q-10.130-23.538-10.130-23.043Q-10.130-22.530-10.086-22.137Q-10.042-21.745-9.847-21.434Q-9.652-21.124-9.248-21.124",[1838],[1822,8207,8208,8214],{"stroke":1828},[1822,8209,8211],{"transform":8210},"translate(185.471 -20.84)",[1834,8212],{"d":8170,"fill":1824,"stroke":1824,"className":8213,"style":2060},[1838],[1822,8215,8216],{"transform":8210},[1834,8217],{"d":8218,"fill":1824,"stroke":1824,"className":8219,"style":1873},"M-15.368-21.033L-17.978-21.033L-17.978-21.218Q-17.972-21.241-17.952-21.267L-16.801-22.322Q-16.461-22.633-16.281-22.819Q-16.100-23.005-15.955-23.265Q-15.810-23.526-15.810-23.822Q-15.810-24.095-15.936-24.310Q-16.062-24.525-16.282-24.645Q-16.502-24.765-16.777-24.765Q-16.953-24.765-17.123-24.708Q-17.293-24.651-17.425-24.544Q-17.556-24.437-17.636-24.279Q-17.548-24.279-17.470-24.235Q-17.392-24.191-17.348-24.115Q-17.305-24.039-17.305-23.942Q-17.305-23.802-17.401-23.705Q-17.498-23.608-17.641-23.608Q-17.779-23.608-17.879-23.708Q-17.978-23.807-17.978-23.942Q-17.978-24.267-17.788-24.515Q-17.597-24.762-17.294-24.893Q-16.991-25.023-16.675-25.023Q-16.294-25.023-15.951-24.888Q-15.608-24.754-15.394-24.481Q-15.180-24.209-15.180-23.822Q-15.180-23.547-15.305-23.320Q-15.430-23.093-15.610-22.921Q-15.790-22.750-16.115-22.510Q-16.440-22.269-16.525-22.202L-17.281-21.598L-16.748-21.598Q-16.259-21.598-15.928-21.606Q-15.596-21.613-15.582-21.628Q-15.523-21.698-15.491-21.833Q-15.459-21.968-15.427-22.179L-15.180-22.179L-15.368-21.033M-14.366-21.956Q-14.366-22.343-14.105-22.614Q-13.845-22.885-13.443-23.054L-13.616-23.151Q-13.865-23.298-14.019-23.516Q-14.173-23.734-14.173-24.004Q-14.173-24.314-13.987-24.547Q-13.801-24.780-13.508-24.902Q-13.215-25.023-12.913-25.023Q-12.623-25.023-12.331-24.925Q-12.040-24.827-11.846-24.622Q-11.653-24.417-11.653-24.118Q-11.653-23.799-11.863-23.579Q-12.072-23.359-12.415-23.198L-12.093-23.025Q-11.811-22.861-11.637-22.615Q-11.463-22.369-11.463-22.064Q-11.463-21.701-11.678-21.439Q-11.893-21.177-12.230-21.042Q-12.567-20.907-12.913-20.907Q-13.256-20.907-13.590-21.021Q-13.924-21.136-14.145-21.371Q-14.366-21.607-14.366-21.956M-13.959-21.962Q-13.959-21.587-13.629-21.367Q-13.300-21.147-12.913-21.147Q-12.679-21.147-12.438-21.222Q-12.198-21.297-12.034-21.455Q-11.870-21.613-11.870-21.856Q-11.870-22.026-11.978-22.165Q-12.087-22.304-12.248-22.395L-13.185-22.911Q-13.511-22.773-13.735-22.527Q-13.959-22.281-13.959-21.962M-13.537-23.816L-12.661-23.336Q-12.013-23.652-12.013-24.118Q-12.013-24.332-12.150-24.489Q-12.286-24.645-12.492-24.723Q-12.699-24.801-12.913-24.801Q-13.235-24.801-13.525-24.661Q-13.815-24.522-13.815-24.232Q-13.815-24.001-13.537-23.816M-9.248-20.907Q-9.810-20.907-10.140-21.194Q-10.470-21.481-10.597-21.931Q-10.724-22.381-10.724-22.946Q-10.724-23.350-10.659-23.715Q-10.593-24.080-10.430-24.376Q-10.267-24.672-9.976-24.847Q-9.684-25.023-9.248-25.023Q-8.811-25.023-8.521-24.847Q-8.231-24.672-8.067-24.377Q-7.903-24.083-7.839-23.725Q-7.774-23.368-7.774-22.946Q-7.774-22.381-7.902-21.931Q-8.029-21.481-8.356-21.194Q-8.682-20.907-9.248-20.907M-9.248-21.124Q-8.844-21.124-8.649-21.434Q-8.454-21.745-8.410-22.137Q-8.366-22.530-8.366-23.043Q-8.366-23.538-8.410-23.897Q-8.454-24.256-8.649-24.531Q-8.844-24.806-9.248-24.806Q-9.652-24.806-9.847-24.531Q-10.042-24.256-10.086-23.897Q-10.130-23.538-10.130-23.043Q-10.130-22.530-10.086-22.137Q-10.042-21.745-9.847-21.434Q-9.652-21.124-9.248-21.124",[1838],[1822,8221,8222,8228],{"stroke":1828},[1822,8223,8225],{"transform":8224},"translate(248.067 -20.84)",[1834,8226],{"d":8170,"fill":1824,"stroke":1824,"className":8227,"style":2060},[1838],[1822,8229,8230],{"transform":8224},[1834,8231],{"d":8232,"fill":1824,"stroke":1824,"className":8233,"style":1873},"M-17.653-21.675Q-17.577-21.508-17.429-21.389Q-17.281-21.270-17.092-21.209Q-16.903-21.147-16.716-21.147Q-16.399-21.147-16.196-21.289Q-15.992-21.431-15.898-21.678Q-15.805-21.924-15.805-22.234Q-15.805-22.688-15.952-23.009Q-16.100-23.330-16.502-23.330Q-16.751-23.330-16.919-23.268Q-17.088-23.207-17.193-23.122Q-17.299-23.037-17.375-22.953Q-17.451-22.870-17.486-22.864L-17.551-22.864Q-17.580-22.864-17.608-22.895Q-17.636-22.926-17.636-22.952L-17.636-24.950Q-17.627-25.023-17.551-25.023Q-17.545-25.023-17.521-25.017Q-17.032-24.830-16.549-24.830Q-16.059-24.830-15.570-25.017Q-15.547-25.023-15.541-25.023Q-15.476-25.023-15.456-24.950L-15.456-24.886Q-15.459-24.862-15.476-24.836Q-15.737-24.563-16.076-24.412Q-16.414-24.262-16.777-24.262Q-17.099-24.262-17.378-24.338L-17.378-23.254Q-17.205-23.403-16.979-23.475Q-16.754-23.547-16.502-23.547Q-16.141-23.547-15.838-23.369Q-15.535-23.192-15.358-22.892Q-15.180-22.592-15.180-22.234Q-15.180-21.850-15.403-21.544Q-15.626-21.238-15.980-21.073Q-16.335-20.907-16.716-20.907Q-17.026-20.907-17.321-21.042Q-17.615-21.177-17.797-21.426Q-17.978-21.675-17.978-22Q-17.978-22.135-17.888-22.225Q-17.797-22.316-17.659-22.316Q-17.524-22.316-17.429-22.225Q-17.334-22.135-17.334-22Q-17.334-21.862-17.425-21.768Q-17.515-21.675-17.653-21.675M-12.913-20.907Q-13.323-20.907-13.607-21.086Q-13.891-21.264-14.060-21.572Q-14.228-21.880-14.297-22.241Q-14.366-22.603-14.366-22.972Q-14.366-23.488-14.133-23.964Q-13.900-24.440-13.480-24.732Q-13.059-25.023-12.523-25.023Q-12.151-25.023-11.893-24.856Q-11.636-24.689-11.636-24.332Q-11.636-24.203-11.721-24.118Q-11.805-24.033-11.937-24.033Q-12.066-24.033-12.154-24.118Q-12.242-24.203-12.242-24.332Q-12.242-24.443-12.172-24.527Q-12.101-24.610-11.996-24.634Q-12.157-24.801-12.523-24.801Q-12.825-24.801-13.078-24.644Q-13.332-24.487-13.496-24.226Q-13.637-23.983-13.689-23.686Q-13.742-23.388-13.742-23.054Q-13.402-23.602-12.837-23.602Q-12.459-23.602-12.145-23.427Q-11.832-23.251-11.647-22.946Q-11.463-22.641-11.463-22.263Q-11.463-21.871-11.662-21.560Q-11.861-21.250-12.195-21.078Q-12.529-20.907-12.913-20.907M-12.913-21.147Q-12.579-21.147-12.394-21.294Q-12.210-21.440-12.148-21.678Q-12.087-21.915-12.087-22.252L-12.087-22.269Q-12.087-22.785-12.243-23.085Q-12.400-23.386-12.872-23.386Q-13.127-23.386-13.322-23.241Q-13.516-23.096-13.620-22.867Q-13.724-22.638-13.724-22.389Q-13.724-22.310-13.719-22.269Q-13.719-22.249-13.721-22.249Q-13.724-22.249-13.724-22.228Q-13.724-21.798-13.524-21.472Q-13.323-21.147-12.913-21.147M-9.248-20.907Q-9.810-20.907-10.140-21.194Q-10.470-21.481-10.597-21.931Q-10.724-22.381-10.724-22.946Q-10.724-23.350-10.659-23.715Q-10.593-24.080-10.430-24.376Q-10.267-24.672-9.976-24.847Q-9.684-25.023-9.248-25.023Q-8.811-25.023-8.521-24.847Q-8.231-24.672-8.067-24.377Q-7.903-24.083-7.839-23.725Q-7.774-23.368-7.774-22.946Q-7.774-22.381-7.902-21.931Q-8.029-21.481-8.356-21.194Q-8.682-20.907-9.248-20.907M-9.248-21.124Q-8.844-21.124-8.649-21.434Q-8.454-21.745-8.410-22.137Q-8.366-22.530-8.366-23.043Q-8.366-23.538-8.410-23.897Q-8.454-24.256-8.649-24.531Q-8.844-24.806-9.248-24.806Q-9.652-24.806-9.847-24.531Q-10.042-24.256-10.086-23.897Q-10.130-23.538-10.130-23.043Q-10.130-22.530-10.086-22.137Q-10.042-21.745-9.847-21.434Q-9.652-21.124-9.248-21.124",[1838],[1834,8235],{"fill":1828,"d":8236},"M-7.075-18.21h28.898",[1834,8238],{"stroke":1828,"d":8239},"m23.823-18.21-3.2-1.6 1.2 1.6-1.2 1.6",[1822,8241,8243],{"transform":8242},"translate(27.378 -5.089)",[1834,8244],{"d":8245,"fill":1824,"stroke":1824,"className":8246,"style":2060},"M-22.643-18.218L-22.643-19.440Q-22.643-19.468-22.611-19.499Q-22.580-19.530-22.557-19.530L-22.451-19.530Q-22.381-19.530-22.365-19.468Q-22.303-19.148-22.164-18.907Q-22.026-18.667-21.793-18.526Q-21.561-18.386-21.252-18.386Q-21.014-18.386-20.805-18.446Q-20.596-18.507-20.459-18.655Q-20.322-18.804-20.322-19.050Q-20.322-19.304-20.533-19.470Q-20.744-19.636-21.014-19.690L-21.635-19.804Q-22.041-19.882-22.342-20.138Q-22.643-20.394-22.643-20.769Q-22.643-21.136-22.442-21.358Q-22.240-21.581-21.916-21.679Q-21.592-21.776-21.252-21.776Q-20.787-21.776-20.490-21.569L-20.268-21.753Q-20.244-21.776-20.213-21.776L-20.162-21.776Q-20.131-21.776-20.104-21.749Q-20.076-21.722-20.076-21.690L-20.076-20.706Q-20.076-20.675-20.102-20.646Q-20.127-20.616-20.162-20.616L-20.268-20.616Q-20.303-20.616-20.330-20.644Q-20.358-20.671-20.358-20.706Q-20.358-21.105-20.610-21.325Q-20.861-21.546-21.260-21.546Q-21.615-21.546-21.899-21.423Q-22.182-21.300-22.182-20.995Q-22.182-20.776-21.981-20.644Q-21.779-20.511-21.533-20.468L-20.908-20.355Q-20.479-20.265-20.170-19.968Q-19.861-19.671-19.861-19.257Q-19.861-18.687-20.260-18.409Q-20.658-18.132-21.252-18.132Q-21.803-18.132-22.154-18.468L-22.451-18.155Q-22.475-18.132-22.510-18.132L-22.557-18.132Q-22.580-18.132-22.611-18.163Q-22.643-18.194-22.643-18.218M-15.115-16.659L-16.971-16.659L-16.971-16.952Q-16.701-16.952-16.533-16.997Q-16.365-17.042-16.365-17.218L-16.365-18.667Q-16.569-18.421-16.869-18.276Q-17.170-18.132-17.502-18.132Q-17.986-18.132-18.399-18.374Q-18.811-18.616-19.051-19.028Q-19.291-19.440-19.291-19.937Q-19.291-20.433-19.035-20.847Q-18.779-21.261-18.350-21.499Q-17.920-21.737-17.428-21.737Q-17.072-21.737-16.766-21.558Q-16.459-21.378-16.268-21.065L-15.979-21.737L-15.725-21.737L-15.725-17.218Q-15.725-17.042-15.557-16.997Q-15.389-16.952-15.115-16.952L-15.115-16.659M-17.444-18.386Q-17.076-18.386-16.783-18.618Q-16.490-18.851-16.342-19.210L-16.342-20.546Q-16.436-20.929-16.709-21.192Q-16.983-21.456-17.358-21.456Q-17.717-21.456-17.990-21.226Q-18.264-20.995-18.406-20.638Q-18.549-20.280-18.549-19.929Q-18.549-19.593-18.424-19.231Q-18.299-18.870-18.047-18.628Q-17.795-18.386-17.444-18.386",[1838],[1834,8248],{"fill":1828,"d":8249},"M55.52-18.21H84.02",[1834,8251],{"stroke":1828,"d":8252},"m86.019-18.21-3.2-1.6 1.2 1.6-1.2 1.6",[1822,8254,8256],{"transform":8255},"translate(89.774 -5.089)",[1834,8257],{"d":8245,"fill":1824,"stroke":1824,"className":8258,"style":2060},[1838],[1834,8260],{"fill":1828,"d":8261},"M118.517-18.21h34.189",[1834,8263],{"stroke":1828,"d":8264},"m154.705-18.21-3.2-1.6 1.2 1.6-1.2 1.6",[1822,8266,8268],{"transform":8267},"translate(155.616 -5.089)",[1834,8269],{"d":8245,"fill":1824,"stroke":1824,"className":8270,"style":2060},[1838],[1834,8272],{"fill":1828,"d":8273},"M186.403-18.21h28.898",[1834,8275],{"stroke":1828,"d":8276},"m217.301-18.21-3.2-1.6 1.2 1.6-1.2 1.6",[1822,8278,8280],{"transform":8279},"translate(220.857 -5.089)",[1834,8281],{"d":8245,"fill":1824,"stroke":1824,"className":8282,"style":2060},[1838],[1822,8284,8285],{"fill":2088,"stroke":2088},[1822,8286,8287,8294,8300,8306,8312,8318,8324,8330,8336,8342],{"fill":2088,"stroke":1828},[1822,8288,8290],{"transform":8289},"translate(102.053 38.615)",[1834,8291],{"d":8292,"fill":2088,"stroke":2088,"className":8293,"style":2060},"M-12.970-27.542Q-13.642-27.542-14.038-27.966Q-14.435-28.390-14.587-29.009Q-14.739-29.628-14.739-30.296Q-14.739-30.956-14.468-31.589Q-14.196-32.222-13.683-32.626Q-13.169-33.030-12.497-33.030Q-12.208-33.030-11.960-32.931Q-11.712-32.831-11.566-32.630Q-11.419-32.429-11.419-32.124Q-11.419-32.019-11.470-31.927Q-11.521-31.835-11.612-31.784Q-11.704-31.733-11.810-31.733Q-11.978-31.733-12.091-31.847Q-12.204-31.960-12.204-32.124Q-12.204-32.284-12.095-32.401Q-11.986-32.519-11.818-32.519Q-12.017-32.788-12.497-32.788Q-12.915-32.788-13.247-32.511Q-13.579-32.233-13.755-31.815Q-13.954-31.315-13.954-30.413Q-13.790-30.737-13.511-30.937Q-13.232-31.136-12.884-31.136Q-12.400-31.136-12.015-30.890Q-11.630-30.644-11.417-30.235Q-11.204-29.827-11.204-29.343Q-11.204-28.851-11.435-28.439Q-11.665-28.026-12.075-27.784Q-12.486-27.542-12.970-27.542M-12.970-27.815Q-12.544-27.815-12.327-28.036Q-12.111-28.257-12.048-28.583Q-11.986-28.909-11.986-29.343Q-11.986-29.655-12.011-29.905Q-12.036-30.155-12.126-30.380Q-12.216-30.605-12.411-30.741Q-12.607-30.878-12.923-30.878Q-13.251-30.878-13.484-30.669Q-13.716-30.460-13.827-30.142Q-13.939-29.823-13.939-29.511Q-13.935-29.472-13.933-29.439Q-13.931-29.405-13.931-29.351Q-13.931-29.335-13.933-29.327Q-13.935-29.319-13.939-29.312Q-13.939-28.737-13.712-28.276Q-13.486-27.815-12.970-27.815M-9.349-27.933Q-9.349-28.358-9.265-28.808Q-9.181-29.257-9.025-29.675Q-8.868-30.093-8.653-30.480Q-8.439-30.866-8.165-31.222L-7.439-32.175L-8.349-32.175Q-9.845-32.175-9.884-32.136Q-9.954-32.054-10.001-31.864Q-10.048-31.675-10.091-31.398L-10.372-31.398L-10.103-33.116L-9.821-33.116L-9.821-33.093Q-9.821-32.948-9.304-32.905Q-8.786-32.862-8.294-32.862L-6.724-32.862L-6.724-32.671Q-6.732-32.632-6.747-32.605L-7.923-31.069Q-8.224-30.651-8.362-30.144Q-8.501-29.636-8.532-29.142Q-8.564-28.648-8.564-27.933Q-8.564-27.827-8.614-27.735Q-8.665-27.644-8.757-27.593Q-8.849-27.542-8.958-27.542Q-9.064-27.542-9.155-27.593Q-9.247-27.644-9.298-27.735Q-9.349-27.827-9.349-27.933",[1838],[1822,8295,8296],{"transform":8289},[1834,8297],{"d":8298,"fill":2088,"stroke":2088,"className":8299,"style":1873},"M-3.550-30.533L-6.160-30.533L-6.160-30.718Q-6.154-30.741-6.134-30.767L-4.983-31.822Q-4.643-32.133-4.463-32.319Q-4.282-32.505-4.137-32.765Q-3.992-33.026-3.992-33.322Q-3.992-33.595-4.118-33.810Q-4.244-34.025-4.464-34.145Q-4.684-34.265-4.959-34.265Q-5.135-34.265-5.305-34.208Q-5.475-34.151-5.607-34.044Q-5.738-33.937-5.818-33.779Q-5.730-33.779-5.652-33.735Q-5.574-33.691-5.530-33.615Q-5.487-33.539-5.487-33.442Q-5.487-33.302-5.583-33.205Q-5.680-33.108-5.823-33.108Q-5.961-33.108-6.061-33.208Q-6.160-33.307-6.160-33.442Q-6.160-33.767-5.970-34.015Q-5.779-34.262-5.476-34.393Q-5.173-34.523-4.857-34.523Q-4.476-34.523-4.133-34.388Q-3.790-34.254-3.576-33.981Q-3.362-33.709-3.362-33.322Q-3.362-33.047-3.487-32.820Q-3.612-32.593-3.792-32.421Q-3.972-32.250-4.297-32.010Q-4.622-31.769-4.707-31.702L-5.463-31.098L-4.930-31.098Q-4.441-31.098-4.110-31.106Q-3.779-31.113-3.764-31.128Q-3.705-31.198-3.673-31.333Q-3.641-31.468-3.609-31.679L-3.362-31.679",[1838],[1822,8301,8302],{"transform":8289},[1834,8303],{"d":8304,"fill":2088,"stroke":2088,"className":8305,"style":2060},"M5.898-27.839L0.585-27.839Q0.507-27.851 0.458-27.899Q0.410-27.948 0.410-28.023Q0.410-28.097 0.458-28.146Q0.507-28.194 0.585-28.206L5.898-28.206Q6.066-28.175 6.066-28.023Q6.066-27.870 5.898-27.839M5.898-29.526L0.585-29.526Q0.507-29.538 0.458-29.587Q0.410-29.636 0.410-29.710Q0.410-29.784 0.458-29.833Q0.507-29.882 0.585-29.894L5.898-29.894Q6.066-29.862 6.066-29.710Q6.066-29.558 5.898-29.526M5.898-31.214L0.585-31.214Q0.507-31.226 0.458-31.274Q0.410-31.323 0.410-31.398Q0.410-31.472 0.458-31.521Q0.507-31.569 0.585-31.581L5.898-31.581Q6.066-31.550 6.066-31.398Q6.066-31.245 5.898-31.214",[1838],[1822,8307,8308],{"transform":8289},[1834,8309],{"d":8310,"fill":2088,"stroke":2088,"className":8311,"style":2060},"M12.503-27.710L9.710-27.710L9.710-28.007Q10.772-28.007 10.772-28.269L10.772-32.437Q10.343-32.222 9.663-32.222L9.663-32.519Q10.682-32.519 11.198-33.030L11.343-33.030Q11.417-33.011 11.436-32.933L11.436-28.269Q11.436-28.007 12.503-28.007L12.503-27.710M13.979-26.304Q13.979-26.327 14.011-26.374Q14.304-26.636 14.470-27.003Q14.636-27.370 14.636-27.757L14.636-27.815Q14.507-27.710 14.339-27.710Q14.147-27.710 14.011-27.843Q13.874-27.976 13.874-28.175Q13.874-28.366 14.011-28.499Q14.147-28.632 14.339-28.632Q14.639-28.632 14.764-28.362Q14.889-28.093 14.889-27.757Q14.889-27.308 14.708-26.894Q14.526-26.480 14.186-26.183Q14.163-26.159 14.124-26.159Q14.077-26.159 14.028-26.204Q13.979-26.249 13.979-26.304",[1838],[1822,8313,8314],{"transform":8289},[1834,8315],{"d":8316,"fill":2088,"stroke":2088,"className":8317,"style":2060},"M-21.772-18.210L-22.053-18.210L-22.053-22.929Q-22.053-23.144-22.115-23.239Q-22.178-23.335-22.295-23.356Q-22.412-23.378-22.658-23.378L-22.658-23.675L-21.436-23.761L-21.436-21.273Q-20.959-21.737-20.260-21.737Q-19.779-21.737-19.371-21.493Q-18.963-21.249-18.727-20.835Q-18.490-20.421-18.490-19.937Q-18.490-19.562-18.639-19.233Q-18.787-18.905-19.057-18.653Q-19.326-18.401-19.670-18.267Q-20.014-18.132-20.373-18.132Q-20.694-18.132-20.992-18.280Q-21.291-18.429-21.498-18.690L-21.772-18.210M-21.412-20.882L-21.412-19.042Q-21.260-18.745-21-18.565Q-20.740-18.386-20.428-18.386Q-20.002-18.386-19.735-18.605Q-19.467-18.823-19.352-19.169Q-19.236-19.515-19.236-19.937Q-19.236-20.585-19.485-21.034Q-19.733-21.483-20.330-21.483Q-20.666-21.483-20.955-21.325Q-21.244-21.167-21.412-20.882M-17.283-19.163L-17.283-20.905Q-17.283-21.120-17.346-21.216Q-17.408-21.312-17.528-21.333Q-17.647-21.355-17.893-21.355L-17.893-21.651L-16.647-21.737L-16.647-19.187L-16.647-19.163Q-16.647-18.851-16.592-18.689Q-16.537-18.526-16.387-18.456Q-16.236-18.386-15.916-18.386Q-15.486-18.386-15.213-18.724Q-14.940-19.062-14.940-19.507L-14.940-20.905Q-14.940-21.120-15.002-21.216Q-15.065-21.312-15.184-21.333Q-15.303-21.355-15.549-21.355L-15.549-21.651L-14.303-21.737L-14.303-18.952Q-14.303-18.741-14.240-18.646Q-14.178-18.550-14.059-18.528Q-13.940-18.507-13.694-18.507L-13.694-18.210L-14.916-18.132L-14.916-18.753Q-15.084-18.464-15.365-18.298Q-15.647-18.132-15.967-18.132Q-17.283-18.132-17.283-19.163M-12.623-19.171L-12.623-21.362L-13.326-21.362L-13.326-21.616Q-12.971-21.616-12.729-21.849Q-12.486-22.081-12.375-22.429Q-12.264-22.776-12.264-23.132L-11.983-23.132L-11.983-21.659L-10.807-21.659L-10.807-21.362L-11.983-21.362L-11.983-19.187Q-11.983-18.866-11.863-18.638Q-11.744-18.409-11.463-18.409Q-11.283-18.409-11.166-18.532Q-11.049-18.655-10.996-18.835Q-10.944-19.015-10.944-19.187L-10.944-19.659L-10.662-19.659L-10.662-19.171Q-10.662-18.917-10.768-18.677Q-10.873-18.437-11.070-18.284Q-11.268-18.132-11.526-18.132Q-11.842-18.132-12.094-18.255Q-12.346-18.378-12.485-18.612Q-12.623-18.847-12.623-19.171",[1838],[1822,8319,8320],{"transform":8289},[1834,8321],{"d":8322,"fill":2088,"stroke":2088,"className":8323,"style":2060},"M-5.220-18.042Q-5.892-18.042-6.288-18.466Q-6.685-18.890-6.837-19.509Q-6.989-20.128-6.989-20.796Q-6.989-21.456-6.718-22.089Q-6.446-22.722-5.933-23.126Q-5.419-23.530-4.747-23.530Q-4.458-23.530-4.210-23.431Q-3.962-23.331-3.816-23.130Q-3.669-22.929-3.669-22.624Q-3.669-22.519-3.720-22.427Q-3.771-22.335-3.862-22.284Q-3.954-22.233-4.060-22.233Q-4.228-22.233-4.341-22.347Q-4.454-22.460-4.454-22.624Q-4.454-22.784-4.345-22.901Q-4.236-23.019-4.068-23.019Q-4.267-23.288-4.747-23.288Q-5.165-23.288-5.497-23.011Q-5.829-22.733-6.005-22.315Q-6.204-21.815-6.204-20.913Q-6.040-21.237-5.761-21.437Q-5.482-21.636-5.134-21.636Q-4.650-21.636-4.265-21.390Q-3.880-21.144-3.667-20.735Q-3.454-20.327-3.454-19.843Q-3.454-19.351-3.685-18.939Q-3.915-18.526-4.325-18.284Q-4.736-18.042-5.220-18.042M-5.220-18.315Q-4.794-18.315-4.577-18.536Q-4.361-18.757-4.298-19.083Q-4.236-19.409-4.236-19.843Q-4.236-20.155-4.261-20.405Q-4.286-20.655-4.376-20.880Q-4.466-21.105-4.661-21.241Q-4.857-21.378-5.173-21.378Q-5.501-21.378-5.734-21.169Q-5.966-20.960-6.077-20.642Q-6.189-20.323-6.189-20.011Q-6.185-19.972-6.183-19.939Q-6.181-19.905-6.181-19.851Q-6.181-19.835-6.183-19.827Q-6.185-19.819-6.189-19.812Q-6.189-19.237-5.962-18.776Q-5.736-18.315-5.220-18.315M-1.599-18.433Q-1.599-18.858-1.515-19.308Q-1.431-19.757-1.275-20.175Q-1.118-20.593-0.904-20.980Q-0.689-21.366-0.415-21.722L0.311-22.675L-0.599-22.675Q-2.095-22.675-2.134-22.636Q-2.204-22.554-2.251-22.364Q-2.298-22.175-2.341-21.898L-2.622-21.898L-2.353-23.616L-2.071-23.616L-2.071-23.593Q-2.071-23.448-1.554-23.405Q-1.036-23.362-0.544-23.362L1.026-23.362L1.026-23.171Q1.018-23.132 1.003-23.105L-0.173-21.569Q-0.474-21.151-0.612-20.644Q-0.751-20.136-0.782-19.642Q-0.814-19.148-0.814-18.433Q-0.814-18.327-0.864-18.235Q-0.915-18.144-1.007-18.093Q-1.099-18.042-1.208-18.042Q-1.314-18.042-1.405-18.093Q-1.497-18.144-1.548-18.235Q-1.599-18.327-1.599-18.433",[1838],[1822,8325,8326],{"transform":8289},[1834,8327],{"d":8328,"fill":2088,"stroke":2088,"className":8329,"style":2060},"M4.705-16.675Q4.705-16.698 4.720-16.745L8.591-23.835Q8.650-23.929 8.751-23.929Q8.826-23.929 8.880-23.874Q8.935-23.819 8.935-23.745Q8.935-23.722 8.919-23.675L5.056-16.585Q4.990-16.491 4.888-16.491Q4.810-16.491 4.757-16.544Q4.705-16.597 4.705-16.675",[1838],[1822,8331,8332],{"transform":8289},[1834,8333],{"d":8334,"fill":2088,"stroke":2088,"className":8335,"style":2060},"M9.482-19.187L4.169-19.187Q4.091-19.194 4.042-19.243Q3.994-19.292 3.994-19.370Q3.994-19.440 4.041-19.491Q4.087-19.542 4.169-19.554L9.482-19.554Q9.556-19.542 9.603-19.491Q9.650-19.440 9.650-19.370Q9.650-19.292 9.601-19.243Q9.552-19.194 9.482-19.187M9.482-20.874L4.169-20.874Q4.091-20.882 4.042-20.931Q3.994-20.980 3.994-21.058Q3.994-21.128 4.041-21.179Q4.087-21.230 4.169-21.241L9.482-21.241Q9.556-21.230 9.603-21.179Q9.650-21.128 9.650-21.058Q9.650-20.980 9.601-20.931Q9.552-20.882 9.482-20.874",[1838],[1822,8337,8338],{"transform":8289},[1834,8339],{"d":8340,"fill":2088,"stroke":2088,"className":8341,"style":2060},"M18.454-18.089L13.141-18.089Q13.063-18.101 13.014-18.149Q12.966-18.198 12.966-18.273Q12.966-18.347 13.014-18.396Q13.063-18.444 13.141-18.456L15.614-18.456L15.614-20.737L13.141-20.737Q13.063-20.749 13.014-20.798Q12.966-20.847 12.966-20.921Q12.966-20.995 13.014-21.044Q13.063-21.093 13.141-21.105L15.614-21.105L15.614-23.585Q15.618-23.651 15.669-23.702Q15.720-23.753 15.798-23.753Q15.868-23.753 15.919-23.702Q15.970-23.651 15.981-23.585L15.981-21.105L18.454-21.105Q18.622-21.073 18.622-20.921Q18.622-20.769 18.454-20.737L15.981-20.737L15.981-18.456L18.454-18.456Q18.622-18.425 18.622-18.273Q18.622-18.120 18.454-18.089",[1838],[1822,8343,8344],{"transform":8289},[1834,8345],{"d":8346,"fill":2088,"stroke":2088,"className":8347,"style":2060},"M22.698-18.210L19.905-18.210L19.905-18.507Q20.967-18.507 20.967-18.769L20.967-22.937Q20.538-22.722 19.858-22.722L19.858-23.019Q20.877-23.019 21.393-23.530L21.538-23.530Q21.612-23.511 21.631-23.433L21.631-18.769Q21.631-18.507 22.698-18.507",[1838],[1822,8349,8351],{"fill":8350,"stroke":8350},"var(--tk-warn)",[1822,8352,8354,8361,8367,8373,8379,8385],{"fill":8350,"stroke":1828,"fontFamily":8353,"fontSize":4007},"cmr8",[1822,8355,8357],{"transform":8356},"translate(233.465 38.826)",[1834,8358],{"d":8359,"fill":8350,"stroke":8350,"className":8360,"style":2060},"M-20.002-27.710L-22.588-27.710L-22.588-28.007Q-22.268-28.007-22.024-28.054Q-21.779-28.101-21.779-28.269L-21.779-32.612Q-21.779-32.784-22.024-32.831Q-22.268-32.878-22.588-32.878L-22.588-33.175L-17.971-33.175L-17.740-31.327L-18.022-31.327Q-18.108-32.011-18.270-32.331Q-18.432-32.651-18.772-32.765Q-19.111-32.878-19.803-32.878L-20.611-32.878Q-20.830-32.878-20.922-32.835Q-21.014-32.792-21.014-32.612L-21.014-30.589L-20.404-30.589Q-19.979-30.589-19.781-30.655Q-19.584-30.722-19.502-30.915Q-19.420-31.108-19.420-31.526L-19.139-31.526L-19.139-29.358L-19.420-29.358Q-19.420-29.776-19.502-29.970Q-19.584-30.163-19.781-30.230Q-19.979-30.296-20.404-30.296L-21.014-30.296L-21.014-28.269Q-21.014-28.105-20.695-28.056Q-20.377-28.007-20.002-28.007",[1838],[1822,8362,8363],{"transform":8356},[1834,8364],{"d":8365,"fill":8350,"stroke":8350,"className":8366,"style":2060},"M-17.850-29.464Q-17.850-29.944-17.617-30.360Q-17.385-30.776-16.975-31.026Q-16.565-31.276-16.088-31.276Q-15.358-31.276-14.959-30.835Q-14.561-30.394-14.561-29.663Q-14.561-29.558-14.654-29.534L-17.104-29.534L-17.104-29.464Q-17.104-29.054-16.983-28.698Q-16.861-28.343-16.590-28.126Q-16.318-27.909-15.889-27.909Q-15.526-27.909-15.229-28.138Q-14.932-28.366-14.830-28.718Q-14.822-28.765-14.736-28.780L-14.654-28.780Q-14.561-28.753-14.561-28.671Q-14.561-28.663-14.568-28.632Q-14.631-28.405-14.770-28.222Q-14.908-28.038-15.100-27.905Q-15.291-27.773-15.510-27.702Q-15.729-27.632-15.967-27.632Q-16.338-27.632-16.676-27.769Q-17.014-27.905-17.281-28.157Q-17.549-28.409-17.699-28.749Q-17.850-29.089-17.850-29.464M-17.096-29.773L-15.135-29.773Q-15.135-30.077-15.236-30.368Q-15.338-30.659-15.555-30.841Q-15.772-31.023-16.088-31.023Q-16.389-31.023-16.619-30.835Q-16.850-30.648-16.973-30.356Q-17.096-30.065-17.096-29.773M-12.065-27.710L-14.045-27.710L-14.045-28.007Q-13.776-28.007-13.608-28.052Q-13.440-28.097-13.440-28.269L-13.440-30.405Q-13.440-30.620-13.502-30.716Q-13.565-30.812-13.682-30.833Q-13.799-30.855-14.045-30.855L-14.045-31.151L-12.877-31.237L-12.877-30.452Q-12.799-30.663-12.647-30.849Q-12.494-31.034-12.295-31.136Q-12.096-31.237-11.869-31.237Q-11.623-31.237-11.432-31.093Q-11.240-30.948-11.240-30.718Q-11.240-30.562-11.346-30.452Q-11.451-30.343-11.608-30.343Q-11.764-30.343-11.873-30.452Q-11.983-30.562-11.983-30.718Q-11.983-30.878-11.877-30.983Q-12.201-30.983-12.416-30.755Q-12.631-30.526-12.727-30.187Q-12.822-29.847-12.822-29.542L-12.822-28.269Q-12.822-28.101-12.596-28.054Q-12.369-28.007-12.065-28.007L-12.065-27.710M-8.830-27.710L-10.686-27.710L-10.686-28.007Q-10.412-28.007-10.244-28.054Q-10.076-28.101-10.076-28.269L-10.076-30.405Q-10.076-30.620-10.139-30.716Q-10.201-30.812-10.320-30.833Q-10.440-30.855-10.686-30.855L-10.686-31.151L-9.494-31.237L-9.494-30.503Q-9.381-30.718-9.188-30.886Q-8.994-31.054-8.756-31.146Q-8.518-31.237-8.264-31.237Q-7.303-31.237-7.127-30.526Q-6.943-30.855-6.615-31.046Q-6.287-31.237-5.908-31.237Q-4.733-31.237-4.733-30.159L-4.733-28.269Q-4.733-28.101-4.565-28.054Q-4.397-28.007-4.127-28.007L-4.127-27.710L-5.983-27.710L-5.983-28.007Q-5.709-28.007-5.541-28.052Q-5.373-28.097-5.373-28.269L-5.373-30.144Q-5.373-30.530-5.498-30.757Q-5.623-30.983-5.975-30.983Q-6.279-30.983-6.535-30.821Q-6.791-30.659-6.940-30.390Q-7.088-30.120-7.088-29.823L-7.088-28.269Q-7.088-28.101-6.918-28.054Q-6.748-28.007-6.479-28.007L-6.479-27.710L-8.334-27.710L-8.334-28.007Q-8.061-28.007-7.893-28.054Q-7.725-28.101-7.725-28.269L-7.725-30.144Q-7.725-30.530-7.850-30.757Q-7.975-30.983-8.326-30.983Q-8.631-30.983-8.887-30.821Q-9.143-30.659-9.291-30.390Q-9.440-30.120-9.440-29.823L-9.440-28.269Q-9.440-28.101-9.270-28.054Q-9.100-28.007-8.830-28.007L-8.830-27.710M-3.584-28.542Q-3.584-29.026-3.182-29.321Q-2.779-29.616-2.229-29.735Q-1.678-29.855-1.186-29.855L-1.186-30.144Q-1.186-30.370-1.301-30.577Q-1.416-30.784-1.613-30.903Q-1.811-31.023-2.041-31.023Q-2.467-31.023-2.752-30.917Q-2.682-30.890-2.635-30.835Q-2.588-30.780-2.563-30.710Q-2.537-30.640-2.537-30.565Q-2.537-30.460-2.588-30.368Q-2.639-30.276-2.731-30.226Q-2.822-30.175-2.928-30.175Q-3.033-30.175-3.125-30.226Q-3.217-30.276-3.268-30.368Q-3.318-30.460-3.318-30.565Q-3.318-30.983-2.930-31.130Q-2.541-31.276-2.041-31.276Q-1.709-31.276-1.356-31.146Q-1.002-31.015-0.774-30.761Q-0.545-30.507-0.545-30.159L-0.545-28.358Q-0.545-28.226-0.473-28.116Q-0.401-28.007-0.272-28.007Q-0.147-28.007-0.078-28.112Q-0.010-28.218-0.010-28.358L-0.010-28.870L0.271-28.870L0.271-28.358Q0.271-28.155 0.154-27.997Q0.037-27.839-0.145-27.755Q-0.326-27.671-0.529-27.671Q-0.760-27.671-0.912-27.843Q-1.065-28.015-1.096-28.245Q-1.256-27.964-1.565-27.798Q-1.873-27.632-2.225-27.632Q-2.736-27.632-3.160-27.855Q-3.584-28.077-3.584-28.542M-2.897-28.542Q-2.897-28.257-2.670-28.071Q-2.443-27.886-2.151-27.886Q-1.904-27.886-1.680-28.003Q-1.455-28.120-1.320-28.323Q-1.186-28.526-1.186-28.780L-1.186-29.612Q-1.451-29.612-1.736-29.558Q-2.022-29.503-2.293-29.374Q-2.565-29.245-2.731-29.038Q-2.897-28.831-2.897-28.542M1.189-28.671L1.189-30.862L0.486-30.862L0.486-31.116Q0.842-31.116 1.084-31.349Q1.326-31.581 1.437-31.929Q1.549-32.276 1.549-32.632L1.830-32.632L1.830-31.159L3.006-31.159L3.006-30.862L1.830-30.862L1.830-28.687Q1.830-28.366 1.949-28.138Q2.068-27.909 2.349-27.909Q2.529-27.909 2.646-28.032Q2.764-28.155 2.816-28.335Q2.869-28.515 2.869-28.687L2.869-29.159L3.150-29.159L3.150-28.671Q3.150-28.417 3.045-28.177Q2.939-27.937 2.742-27.784Q2.545-27.632 2.287-27.632Q1.971-27.632 1.719-27.755Q1.467-27.878 1.328-28.112Q1.189-28.347 1.189-28.671",[1838],[1822,8368,8369],{"transform":8356},[1834,8370],{"d":8371,"fill":8350,"stroke":8350,"className":8372,"style":2060},"M6.713-29.405Q6.713-29.909 6.969-30.341Q7.225-30.773 7.661-31.024Q8.096-31.276 8.596-31.276Q8.983-31.276 9.325-31.132Q9.666-30.987 9.928-30.726Q10.190-30.464 10.332-30.128Q10.475-29.792 10.475-29.405Q10.475-28.913 10.211-28.503Q9.948-28.093 9.518-27.862Q9.088-27.632 8.596-27.632Q8.104-27.632 7.670-27.864Q7.237-28.097 6.975-28.505Q6.713-28.913 6.713-29.405M8.596-27.909Q9.053-27.909 9.305-28.132Q9.557-28.355 9.645-28.706Q9.733-29.058 9.733-29.503Q9.733-29.933 9.639-30.271Q9.545-30.608 9.291-30.815Q9.037-31.023 8.596-31.023Q7.948-31.023 7.704-30.606Q7.459-30.190 7.459-29.503Q7.459-29.058 7.547-28.706Q7.635-28.355 7.887-28.132Q8.139-27.909 8.596-27.909M12.889-27.710L11.034-27.710L11.034-28.007Q11.307-28.007 11.475-28.054Q11.643-28.101 11.643-28.269L11.643-30.405Q11.643-30.620 11.580-30.716Q11.518-30.812 11.399-30.833Q11.280-30.855 11.034-30.855L11.034-31.151L12.225-31.237L12.225-30.503Q12.338-30.718 12.532-30.886Q12.725-31.054 12.963-31.146Q13.202-31.237 13.455-31.237Q14.623-31.237 14.623-30.159L14.623-28.269Q14.623-28.101 14.793-28.054Q14.963-28.007 15.233-28.007L15.233-27.710L13.377-27.710L13.377-28.007Q13.651-28.007 13.819-28.054Q13.987-28.101 13.987-28.269L13.987-30.144Q13.987-30.526 13.866-30.755Q13.745-30.983 13.393-30.983Q13.080-30.983 12.827-30.821Q12.573-30.659 12.426-30.390Q12.280-30.120 12.280-29.823L12.280-28.269Q12.280-28.101 12.450-28.054Q12.620-28.007 12.889-28.007L12.889-27.710M17.592-27.710L15.760-27.710L15.760-28.007Q16.034-28.007 16.202-28.054Q16.370-28.101 16.370-28.269L16.370-32.429Q16.370-32.644 16.307-32.739Q16.245-32.835 16.125-32.856Q16.006-32.878 15.760-32.878L15.760-33.175L16.983-33.261L16.983-28.269Q16.983-28.101 17.151-28.054Q17.319-28.007 17.592-28.007L17.592-27.710M18.455-26.413Q18.569-26.335 18.745-26.335Q19.034-26.335 19.254-26.548Q19.475-26.761 19.600-27.062L19.889-27.710L18.616-30.597Q18.534-30.773 18.389-30.817Q18.245-30.862 17.975-30.862L17.975-31.159L19.694-31.159L19.694-30.862Q19.272-30.862 19.272-30.679Q19.272-30.667 19.288-30.597L20.225-28.472L21.057-30.382Q21.096-30.472 21.096-30.550Q21.096-30.690 20.995-30.776Q20.893-30.862 20.752-30.862L20.752-31.159L22.104-31.159L22.104-30.862Q21.850-30.862 21.657-30.737Q21.463-30.612 21.358-30.382L19.913-27.062Q19.799-26.808 19.633-26.585Q19.467-26.362 19.239-26.220Q19.010-26.077 18.745-26.077Q18.448-26.077 18.207-26.269Q17.967-26.460 17.967-26.749Q17.967-26.905 18.073-27.007Q18.178-27.108 18.327-27.108Q18.432-27.108 18.512-27.062Q18.592-27.015 18.639-26.937Q18.686-26.858 18.686-26.749Q18.686-26.628 18.625-26.540Q18.565-26.452 18.455-26.413",[1838],[1822,8374,8375],{"transform":8356},[1834,8376],{"d":8377,"fill":8350,"stroke":8350,"className":8378,"style":2060},"M-18.994-18.218L-18.994-19.440Q-18.994-19.468-18.962-19.499Q-18.931-19.530-18.908-19.530L-18.802-19.530Q-18.732-19.530-18.716-19.468Q-18.654-19.148-18.515-18.907Q-18.377-18.667-18.144-18.526Q-17.912-18.386-17.603-18.386Q-17.365-18.386-17.156-18.446Q-16.947-18.507-16.810-18.655Q-16.673-18.804-16.673-19.050Q-16.673-19.304-16.884-19.470Q-17.095-19.636-17.365-19.690L-17.986-19.804Q-18.392-19.882-18.693-20.138Q-18.994-20.394-18.994-20.769Q-18.994-21.136-18.793-21.358Q-18.591-21.581-18.267-21.679Q-17.943-21.776-17.603-21.776Q-17.138-21.776-16.841-21.569L-16.619-21.753Q-16.595-21.776-16.564-21.776L-16.513-21.776Q-16.482-21.776-16.455-21.749Q-16.427-21.722-16.427-21.690L-16.427-20.706Q-16.427-20.675-16.453-20.646Q-16.478-20.616-16.513-20.616L-16.619-20.616Q-16.654-20.616-16.681-20.644Q-16.709-20.671-16.709-20.706Q-16.709-21.105-16.961-21.325Q-17.212-21.546-17.611-21.546Q-17.966-21.546-18.250-21.423Q-18.533-21.300-18.533-20.995Q-18.533-20.776-18.332-20.644Q-18.130-20.511-17.884-20.468L-17.259-20.355Q-16.830-20.265-16.521-19.968Q-16.212-19.671-16.212-19.257Q-16.212-18.687-16.611-18.409Q-17.009-18.132-17.603-18.132Q-18.154-18.132-18.505-18.468L-18.802-18.155Q-18.826-18.132-18.861-18.132L-18.908-18.132Q-18.931-18.132-18.962-18.163Q-18.994-18.194-18.994-18.218M-15.685-19.964Q-15.685-20.444-15.453-20.860Q-15.220-21.276-14.810-21.526Q-14.400-21.776-13.923-21.776Q-13.193-21.776-12.795-21.335Q-12.396-20.894-12.396-20.163Q-12.396-20.058-12.490-20.034L-14.939-20.034L-14.939-19.964Q-14.939-19.554-14.818-19.198Q-14.697-18.843-14.425-18.626Q-14.154-18.409-13.724-18.409Q-13.361-18.409-13.064-18.638Q-12.767-18.866-12.666-19.218Q-12.658-19.265-12.572-19.280L-12.490-19.280Q-12.396-19.253-12.396-19.171Q-12.396-19.163-12.404-19.132Q-12.466-18.905-12.605-18.722Q-12.744-18.538-12.935-18.405Q-13.127-18.273-13.345-18.202Q-13.564-18.132-13.802-18.132Q-14.173-18.132-14.511-18.269Q-14.849-18.405-15.117-18.657Q-15.384-18.909-15.535-19.249Q-15.685-19.589-15.685-19.964M-14.931-20.273L-12.970-20.273Q-12.970-20.577-13.072-20.868Q-13.173-21.159-13.390-21.341Q-13.607-21.523-13.923-21.523Q-14.224-21.523-14.455-21.335Q-14.685-21.148-14.808-20.856Q-14.931-20.565-14.931-20.273M-11.908-19.964Q-11.908-20.444-11.675-20.860Q-11.443-21.276-11.033-21.526Q-10.623-21.776-10.146-21.776Q-9.416-21.776-9.017-21.335Q-8.619-20.894-8.619-20.163Q-8.619-20.058-8.712-20.034L-11.162-20.034L-11.162-19.964Q-11.162-19.554-11.041-19.198Q-10.920-18.843-10.648-18.626Q-10.377-18.409-9.947-18.409Q-9.584-18.409-9.287-18.638Q-8.990-18.866-8.888-19.218Q-8.880-19.265-8.795-19.280L-8.712-19.280Q-8.619-19.253-8.619-19.171Q-8.619-19.163-8.627-19.132Q-8.689-18.905-8.828-18.722Q-8.966-18.538-9.158-18.405Q-9.349-18.273-9.568-18.202Q-9.787-18.132-10.025-18.132Q-10.396-18.132-10.734-18.269Q-11.072-18.405-11.339-18.657Q-11.607-18.909-11.757-19.249Q-11.908-19.589-11.908-19.964M-11.154-20.273L-9.193-20.273Q-9.193-20.577-9.295-20.868Q-9.396-21.159-9.613-21.341Q-9.830-21.523-10.146-21.523Q-10.447-21.523-10.677-21.335Q-10.908-21.148-11.031-20.856Q-11.154-20.565-11.154-20.273M-8.087-18.218L-8.087-19.440Q-8.087-19.468-8.056-19.499Q-8.025-19.530-8.002-19.530L-7.896-19.530Q-7.826-19.530-7.810-19.468Q-7.748-19.148-7.609-18.907Q-7.470-18.667-7.238-18.526Q-7.005-18.386-6.697-18.386Q-6.459-18.386-6.250-18.446Q-6.041-18.507-5.904-18.655Q-5.767-18.804-5.767-19.050Q-5.767-19.304-5.978-19.470Q-6.189-19.636-6.459-19.690L-7.080-19.804Q-7.486-19.882-7.787-20.138Q-8.087-20.394-8.087-20.769Q-8.087-21.136-7.886-21.358Q-7.685-21.581-7.361-21.679Q-7.037-21.776-6.697-21.776Q-6.232-21.776-5.935-21.569L-5.712-21.753Q-5.689-21.776-5.658-21.776L-5.607-21.776Q-5.576-21.776-5.548-21.749Q-5.521-21.722-5.521-21.690L-5.521-20.706Q-5.521-20.675-5.546-20.646Q-5.572-20.616-5.607-20.616L-5.712-20.616Q-5.748-20.616-5.775-20.644Q-5.802-20.671-5.802-20.706Q-5.802-21.105-6.054-21.325Q-6.306-21.546-6.705-21.546Q-7.060-21.546-7.343-21.423Q-7.627-21.300-7.627-20.995Q-7.627-20.776-7.425-20.644Q-7.224-20.511-6.978-20.468L-6.353-20.355Q-5.923-20.265-5.615-19.968Q-5.306-19.671-5.306-19.257Q-5.306-18.687-5.705-18.409Q-6.103-18.132-6.697-18.132Q-7.248-18.132-7.599-18.468L-7.896-18.155Q-7.920-18.132-7.955-18.132L-8.002-18.132Q-8.025-18.132-8.056-18.163Q-8.087-18.194-8.087-18.218",[1838],[1822,8380,8381],{"transform":8356},[1834,8382],{"d":8383,"fill":8350,"stroke":8350,"className":8384,"style":2060},"M-1.317-19.171L-1.317-21.362L-2.020-21.362L-2.020-21.616Q-1.664-21.616-1.422-21.849Q-1.180-22.081-1.069-22.429Q-0.957-22.776-0.957-23.132L-0.676-23.132L-0.676-21.659L0.500-21.659L0.500-21.362L-0.676-21.362L-0.676-19.187Q-0.676-18.866-0.557-18.638Q-0.438-18.409-0.157-18.409Q0.023-18.409 0.140-18.532Q0.257-18.655 0.310-18.835Q0.363-19.015 0.363-19.187L0.363-19.659L0.644-19.659L0.644-19.171Q0.644-18.917 0.539-18.677Q0.433-18.437 0.236-18.284Q0.039-18.132-0.219-18.132Q-0.535-18.132-0.787-18.255Q-1.039-18.378-1.178-18.612Q-1.317-18.847-1.317-19.171M3.293-18.210L1.437-18.210L1.437-18.507Q1.711-18.507 1.879-18.554Q2.047-18.601 2.047-18.769L2.047-22.929Q2.047-23.144 1.984-23.239Q1.922-23.335 1.802-23.356Q1.683-23.378 1.437-23.378L1.437-23.675L2.660-23.761L2.660-21.058Q2.785-21.269 2.972-21.419Q3.160-21.569 3.386-21.653Q3.613-21.737 3.859-21.737Q5.027-21.737 5.027-20.659L5.027-18.769Q5.027-18.601 5.197-18.554Q5.367-18.507 5.636-18.507L5.636-18.210L3.781-18.210L3.781-18.507Q4.054-18.507 4.222-18.554Q4.390-18.601 4.390-18.769L4.390-20.644Q4.390-21.026 4.269-21.255Q4.148-21.483 3.797-21.483Q3.484-21.483 3.230-21.321Q2.976-21.159 2.830-20.890Q2.683-20.620 2.683-20.323L2.683-18.769Q2.683-18.601 2.853-18.554Q3.023-18.507 3.293-18.507L3.293-18.210M7.941-18.210L6.164-18.210L6.164-18.507Q6.437-18.507 6.605-18.554Q6.773-18.601 6.773-18.769L6.773-20.905Q6.773-21.120 6.716-21.216Q6.660-21.312 6.547-21.333Q6.433-21.355 6.187-21.355L6.187-21.651L7.386-21.737L7.386-18.769Q7.386-18.601 7.533-18.554Q7.679-18.507 7.941-18.507L7.941-18.210M6.500-23.132Q6.500-23.323 6.634-23.454Q6.769-23.585 6.965-23.585Q7.086-23.585 7.189-23.523Q7.293-23.460 7.355-23.356Q7.418-23.253 7.418-23.132Q7.418-22.937 7.287-22.802Q7.156-22.667 6.965-22.667Q6.765-22.667 6.633-22.800Q6.500-22.933 6.500-23.132M8.484-18.218L8.484-19.440Q8.484-19.468 8.515-19.499Q8.547-19.530 8.570-19.530L8.675-19.530Q8.746-19.530 8.761-19.468Q8.824-19.148 8.963-18.907Q9.101-18.667 9.334-18.526Q9.566-18.386 9.875-18.386Q10.113-18.386 10.322-18.446Q10.531-18.507 10.668-18.655Q10.804-18.804 10.804-19.050Q10.804-19.304 10.593-19.470Q10.383-19.636 10.113-19.690L9.492-19.804Q9.086-19.882 8.785-20.138Q8.484-20.394 8.484-20.769Q8.484-21.136 8.685-21.358Q8.886-21.581 9.211-21.679Q9.535-21.776 9.875-21.776Q10.340-21.776 10.636-21.569L10.859-21.753Q10.883-21.776 10.914-21.776L10.965-21.776Q10.996-21.776 11.023-21.749Q11.050-21.722 11.050-21.690L11.050-20.706Q11.050-20.675 11.025-20.646Q11-20.616 10.965-20.616L10.859-20.616Q10.824-20.616 10.797-20.644Q10.769-20.671 10.769-20.706Q10.769-21.105 10.517-21.325Q10.265-21.546 9.867-21.546Q9.511-21.546 9.228-21.423Q8.945-21.300 8.945-20.995Q8.945-20.776 9.146-20.644Q9.347-20.511 9.593-20.468L10.218-20.355Q10.648-20.265 10.957-19.968Q11.265-19.671 11.265-19.257Q11.265-18.687 10.867-18.409Q10.468-18.132 9.875-18.132Q9.324-18.132 8.972-18.468L8.675-18.155Q8.652-18.132 8.617-18.132L8.570-18.132Q8.547-18.132 8.515-18.163Q8.484-18.194 8.484-18.218",[1838],[1822,8386,8387],{"transform":8356},[1834,8388],{"d":8389,"fill":8350,"stroke":8350,"className":8390,"style":2060},"M17.989-18.210L15.196-18.210L15.196-18.507Q16.258-18.507 16.258-18.769L16.258-22.937Q15.829-22.722 15.149-22.722L15.149-23.019Q16.168-23.019 16.684-23.530L16.829-23.530Q16.903-23.511 16.922-23.433L16.922-18.769Q16.922-18.507 17.989-18.507",[1838],[2181,8392,8394,8395,8410,8411,8473,8474,8489,8490,8505,8506,1413],{"className":8393},[2184],"The Carmichael number ",[390,8396,8398],{"className":8397},[393],[390,8399,8401],{"className":8400,"ariaHidden":398},[397],[390,8402,8404,8407],{"className":8403},[402],[390,8405],{"className":8406,"style":1803},[406],[390,8408,7635],{"className":8409},[411]," passes Fermat (",[390,8412,8414],{"className":8413},[393],[390,8415,8417,8464],{"className":8416,"ariaHidden":398},[397],[390,8418,8420,8423,8455,8458,8461],{"className":8419},[402],[390,8421],{"className":8422,"style":2480},[406],[390,8424,8426,8429],{"className":8425},[411],[390,8427,385],{"className":8428},[411,453],[390,8430,8432],{"className":8431},[420],[390,8433,8435],{"className":8434},[424],[390,8436,8438],{"className":8437},[429],[390,8439,8441],{"className":8440,"style":2480},[433],[390,8442,8443,8446],{"style":559},[390,8444],{"className":8445,"style":442},[441],[390,8447,8449],{"className":8448},[446,447,448,449],[390,8450,8452],{"className":8451},[411,449],[390,8453,7897],{"className":8454},[411,449],[390,8456],{"className":8457,"style":771},[572],[390,8459,5376],{"className":8460},[775],[390,8462],{"className":8463,"style":771},[572],[390,8465,8467,8470],{"className":8466},[402],[390,8468],{"className":8469,"style":1803},[406],[390,8471,1000],{"className":8472},[411],") but fails Miller–Rabin: the chain hits ",[390,8475,8477],{"className":8476},[393],[390,8478,8480],{"className":8479,"ariaHidden":398},[397],[390,8481,8483,8486],{"className":8482},[402],[390,8484],{"className":8485,"style":1803},[406],[390,8487,1000],{"className":8488},[411]," from ",[390,8491,8493],{"className":8492},[393],[390,8494,8496],{"className":8495,"ariaHidden":398},[397],[390,8497,8499,8502],{"className":8498},[402],[390,8500],{"className":8501,"style":1803},[406],[390,8503,8009],{"className":8504},[411],", a nontrivial square root of ",[390,8507,8509],{"className":8508},[393],[390,8510,8512],{"className":8511,"ariaHidden":398},[397],[390,8513,8515,8518],{"className":8514},[402],[390,8516],{"className":8517,"style":1803},[406],[390,8519,1000],{"className":8520},[411],[6636,8522,8524],{"id":8523},"millerrabin","Miller–Rabin",[381,8526,8527,8528,8582,8583,8598,8599,8617,8618,8652],{},"Miller–Rabin strengthens the Fermat test by exploiting a second fact about primes: in\n",[390,8529,8531],{"className":8530},[393],[390,8532,8534],{"className":8533,"ariaHidden":398},[397],[390,8535,8537,8541],{"className":8536},[402],[390,8538],{"className":8539,"style":8540},[406],"height:0.975em;vertical-align:-0.2861em;",[390,8542,8544,8547],{"className":8543},[411],[390,8545,416],{"className":8546},[411,415],[390,8548,8550],{"className":8549},[420],[390,8551,8553,8573],{"className":8552},[424,425],[390,8554,8556,8570],{"className":8555},[429],[390,8557,8559],{"className":8558,"style":434},[433],[390,8560,8561,8564],{"style":437},[390,8562],{"className":8563,"style":442},[441],[390,8565,8567],{"className":8566},[446,447,448,449],[390,8568,381],{"className":8569},[411,453,449],[390,8571,459],{"className":8572},[458],[390,8574,8576],{"className":8575},[429],[390,8577,8580],{"className":8578,"style":8579},[433],"height:0.2861em;",[390,8581],{},", the only square roots of ",[390,8584,8586],{"className":8585},[393],[390,8587,8589],{"className":8588,"ariaHidden":398},[397],[390,8590,8592,8595],{"className":8591},[402],[390,8593],{"className":8594,"style":1803},[406],[390,8596,1000],{"className":8597},[411]," are ",[390,8600,8602],{"className":8601},[393],[390,8603,8605],{"className":8604,"ariaHidden":398},[397],[390,8606,8608,8611,8614],{"className":8607},[402],[390,8609],{"className":8610,"style":8023},[406],[390,8612,8065],{"className":8613},[411],[390,8615,1000],{"className":8616},[411],". Write the even number ",[390,8619,8621],{"className":8620},[393],[390,8622,8624,8643],{"className":8623,"ariaHidden":398},[397],[390,8625,8627,8631,8634,8637,8640],{"className":8626},[402],[390,8628],{"className":8629,"style":8630},[406],"height:0.6667em;vertical-align:-0.0833em;",[390,8632,507],{"className":8633},[411,453],[390,8635],{"className":8636,"style":577},[572],[390,8638,5136],{"className":8639},[581],[390,8641],{"className":8642,"style":577},[572],[390,8644,8646,8649],{"className":8645},[402],[390,8647],{"className":8648,"style":1803},[406],[390,8650,1000],{"className":8651},[411]," as",[390,8654,8656],{"className":8655},[1009],[390,8657,8659],{"className":8658},[393],[390,8660,8662,8680,8698],{"className":8661,"ariaHidden":398},[397],[390,8663,8665,8668,8671,8674,8677],{"className":8664},[402],[390,8666],{"className":8667,"style":8630},[406],[390,8669,507],{"className":8670},[411,453],[390,8672],{"className":8673,"style":577},[572],[390,8675,5136],{"className":8676},[581],[390,8678],{"className":8679,"style":577},[572],[390,8681,8683,8686,8689,8692,8695],{"className":8682},[402],[390,8684],{"className":8685,"style":1803},[406],[390,8687,1000],{"className":8688},[411],[390,8690],{"className":8691,"style":771},[572],[390,8693,776],{"className":8694},[775],[390,8696],{"className":8697,"style":771},[572],[390,8699,8701,8705,8738,8741,8744,8748,8751,8754,8760],{"className":8700},[402],[390,8702],{"className":8703,"style":8704},[406],"height:0.9088em;vertical-align:-0.1944em;",[390,8706,8708,8711],{"className":8707},[411],[390,8709,886],{"className":8710},[411],[390,8712,8714],{"className":8713},[420],[390,8715,8717],{"className":8716},[424],[390,8718,8720],{"className":8719},[429],[390,8721,8723],{"className":8722,"style":1022},[433],[390,8724,8725,8728],{"style":1043},[390,8726],{"className":8727,"style":442},[441],[390,8729,8731],{"className":8730},[446,447,448,449],[390,8732,8734],{"className":8733},[411,449],[390,8735,8737],{"className":8736},[411,453,449],"s",[390,8739,6813],{"className":8740},[411,453],[390,8742,993],{"className":8743},[992],[390,8745],{"className":8746,"style":8747},[572],"margin-right:2em;",[390,8749],{"className":8750,"style":717},[572],[390,8752,6813],{"className":8753},[411,453],[390,8755,8757],{"className":8756},[411,3071],[390,8758,3656],{"className":8759},[411],[390,8761,1413],{"className":8762},[411],[381,8764,8765,8766,8781,8782,8854,8855,8870],{},"For a witness ",[390,8767,8769],{"className":8768},[393],[390,8770,8772],{"className":8771,"ariaHidden":398},[397],[390,8773,8775,8778],{"className":8774},[402],[390,8776],{"className":8777,"style":487},[406],[390,8779,385],{"className":8780},[411,453],", consider the chain obtained by computing ",[390,8783,8785],{"className":8784},[393],[390,8786,8788,8845],{"className":8787,"ariaHidden":398},[397],[390,8789,8791,8795,8824,8827,8830,8839,8842],{"className":8790},[402],[390,8792],{"className":8793,"style":8794},[406],"height:0.8491em;",[390,8796,8798,8801],{"className":8797},[411],[390,8799,385],{"className":8800},[411,453],[390,8802,8804],{"className":8803},[420],[390,8805,8807],{"className":8806},[424],[390,8808,8810],{"className":8809},[429],[390,8811,8813],{"className":8812,"style":8794},[433],[390,8814,8815,8818],{"style":559},[390,8816],{"className":8817,"style":442},[441],[390,8819,8821],{"className":8820},[446,447,448,449],[390,8822,6813],{"className":8823},[411,453,449],[390,8825],{"className":8826,"style":573},[572],[390,8828],{"className":8829,"style":577},[572],[390,8831,8833],{"className":8832},[581],[390,8834,8836],{"className":8835},[411],[390,8837,589],{"className":8838},[411,588],[390,8840],{"className":8841,"style":573},[572],[390,8843],{"className":8844,"style":577},[572],[390,8846,8848,8851],{"className":8847},[402],[390,8849],{"className":8850,"style":487},[406],[390,8852,507],{"className":8853},[411,453]," and then\nsquaring it ",[390,8856,8858],{"className":8857},[393],[390,8859,8861],{"className":8860,"ariaHidden":398},[397],[390,8862,8864,8867],{"className":8863},[402],[390,8865],{"className":8866,"style":487},[406],[390,8868,8737],{"className":8869},[411,453]," times:",[390,8872,8874],{"className":8873},[1009],[390,8875,8877],{"className":8876},[393],[390,8878,8880,9188,9238],{"className":8879,"ariaHidden":398},[397],[390,8881,8883,8887,8920,8923,8926,8929,8964,8967,8970,8973,9008,9011,9014,9017,9020,9023,9026,9029,9032,9104,9107,9110,9113,9179,9182,9185],{"className":8882},[402],[390,8884],{"className":8885,"style":8886},[406],"height:1.2314em;vertical-align:-0.1944em;",[390,8888,8890,8893],{"className":8889},[411],[390,8891,385],{"className":8892},[411,453],[390,8894,8896],{"className":8895},[420],[390,8897,8899],{"className":8898},[424],[390,8900,8902],{"className":8901},[429],[390,8903,8906],{"className":8904,"style":8905},[433],"height:0.8991em;",[390,8907,8908,8911],{"style":1043},[390,8909],{"className":8910,"style":442},[441],[390,8912,8914],{"className":8913},[446,447,448,449],[390,8915,8917],{"className":8916},[411,449],[390,8918,6813],{"className":8919},[411,453,449],[390,8921,993],{"className":8922},[992],[390,8924],{"className":8925,"style":771},[572],[390,8927],{"className":8928,"style":717},[572],[390,8930,8932,8935],{"className":8931},[411],[390,8933,385],{"className":8934},[411,453],[390,8936,8938],{"className":8937},[420],[390,8939,8941],{"className":8940},[424],[390,8942,8944],{"className":8943},[429],[390,8945,8947],{"className":8946,"style":8905},[433],[390,8948,8949,8952],{"style":1043},[390,8950],{"className":8951,"style":442},[441],[390,8953,8955],{"className":8954},[446,447,448,449],[390,8956,8958,8961],{"className":8957},[411,449],[390,8959,886],{"className":8960},[411,449],[390,8962,6813],{"className":8963},[411,453,449],[390,8965,993],{"className":8966},[992],[390,8968],{"className":8969,"style":771},[572],[390,8971],{"className":8972,"style":717},[572],[390,8974,8976,8979],{"className":8975},[411],[390,8977,385],{"className":8978},[411,453],[390,8980,8982],{"className":8981},[420],[390,8983,8985],{"className":8984},[424],[390,8986,8988],{"className":8987},[429],[390,8989,8991],{"className":8990,"style":8905},[433],[390,8992,8993,8996],{"style":1043},[390,8994],{"className":8995,"style":442},[441],[390,8997,8999],{"className":8998},[446,447,448,449],[390,9000,9002,9005],{"className":9001},[411,449],[390,9003,2680],{"className":9004},[411,449],[390,9006,6813],{"className":9007},[411,453,449],[390,9009,993],{"className":9010},[992],[390,9012],{"className":9013,"style":771},[572],[390,9015],{"className":9016,"style":717},[572],[390,9018,5476],{"className":9019},[3244],[390,9021],{"className":9022,"style":717},[572],[390,9024,993],{"className":9025},[992],[390,9027],{"className":9028,"style":771},[572],[390,9030],{"className":9031,"style":717},[572],[390,9033,9035,9038],{"className":9034},[411],[390,9036,385],{"className":9037},[411,453],[390,9039,9041],{"className":9040},[420],[390,9042,9044],{"className":9043},[424],[390,9045,9047],{"className":9046},[429],[390,9048,9051],{"className":9049,"style":9050},[433],"height:1.0369em;",[390,9052,9053,9056],{"style":1043},[390,9054],{"className":9055,"style":442},[441],[390,9057,9059],{"className":9058},[446,447,448,449],[390,9060,9062,9101],{"className":9061},[411,449],[390,9063,9065,9068],{"className":9064},[411,449],[390,9066,886],{"className":9067},[411,449],[390,9069,9071],{"className":9070},[420],[390,9072,9074],{"className":9073},[424],[390,9075,9077],{"className":9076},[429],[390,9078,9081],{"className":9079,"style":9080},[433],"height:0.8913em;",[390,9082,9083,9086],{"style":1212},[390,9084],{"className":9085,"style":1123},[441],[390,9087,9089],{"className":9088},[446,1127,1128,449],[390,9090,9092,9095,9098],{"className":9091},[411,449],[390,9093,8737],{"className":9094},[411,453,449],[390,9096,5136],{"className":9097},[581,449],[390,9099,1000],{"className":9100},[411,449],[390,9102,6813],{"className":9103},[411,453,449],[390,9105,993],{"className":9106},[992],[390,9108],{"className":9109,"style":771},[572],[390,9111],{"className":9112,"style":717},[572],[390,9114,9116,9119],{"className":9115},[411],[390,9117,385],{"className":9118},[411,453],[390,9120,9122],{"className":9121},[420],[390,9123,9125],{"className":9124},[424],[390,9126,9128],{"className":9127},[429],[390,9129,9132],{"className":9130,"style":9131},[433],"height:0.93em;",[390,9133,9134,9137],{"style":1043},[390,9135],{"className":9136,"style":442},[441],[390,9138,9140],{"className":9139},[446,447,448,449],[390,9141,9143,9176],{"className":9142},[411,449],[390,9144,9146,9149],{"className":9145},[411,449],[390,9147,886],{"className":9148},[411,449],[390,9150,9152],{"className":9151},[420],[390,9153,9155],{"className":9154},[424],[390,9156,9158],{"className":9157},[429],[390,9159,9162],{"className":9160,"style":9161},[433],"height:0.7385em;",[390,9163,9164,9167],{"style":1212},[390,9165],{"className":9166,"style":1123},[441],[390,9168,9170],{"className":9169},[446,1127,1128,449],[390,9171,9173],{"className":9172},[411,449],[390,9174,8737],{"className":9175},[411,453,449],[390,9177,6813],{"className":9178},[411,453,449],[390,9180],{"className":9181,"style":771},[572],[390,9183,776],{"className":9184},[775],[390,9186],{"className":9187,"style":771},[572],[390,9189,9191,9194,9232,9235],{"className":9190},[402],[390,9192],{"className":9193,"style":6096},[406],[390,9195,9197,9200],{"className":9196},[411],[390,9198,385],{"className":9199},[411,453],[390,9201,9203],{"className":9202},[420],[390,9204,9206],{"className":9205},[424],[390,9207,9209],{"className":9208},[429],[390,9210,9212],{"className":9211,"style":6096},[433],[390,9213,9214,9217],{"style":1043},[390,9215],{"className":9216,"style":442},[441],[390,9218,9220],{"className":9219},[446,447,448,449],[390,9221,9223,9226,9229],{"className":9222},[411,449],[390,9224,507],{"className":9225},[411,453,449],[390,9227,5136],{"className":9228},[581,449],[390,9230,1000],{"className":9231},[411,449],[390,9233],{"className":9234},[572,5392],[390,9236],{"className":9237,"style":6191},[572],[390,9239,9241,9244,9247,9256,9259,9262,9265],{"className":9240},[402],[390,9242],{"className":9243,"style":650},[406],[390,9245,659],{"className":9246},[658],[390,9248,9250],{"className":9249},[411],[390,9251,9253],{"className":9252},[411],[390,9254,589],{"className":9255},[411,588],[390,9257],{"className":9258,"style":5418},[572],[390,9260,507],{"className":9261},[411,453],[390,9263,667],{"className":9264},[666],[390,9266,1413],{"className":9267},[411],[381,9269,6723,9270,9285,9286,9301,9302,9305,9306,9321,9322,9340,9341,9356,9357,9375,9376,9435,9436,9531,9532,9586,9587,9590,9591,9638,9639,9654,9655,9670,9671,9689,9690,9705,9706,9721,9722],{},[390,9271,9273],{"className":9272},[393],[390,9274,9276],{"className":9275,"ariaHidden":398},[397],[390,9277,9279,9282],{"className":9278},[402],[390,9280],{"className":9281,"style":487},[406],[390,9283,507],{"className":9284},[411,453]," is prime, this chain must end at ",[390,9287,9289],{"className":9288},[393],[390,9290,9292],{"className":9291,"ariaHidden":398},[397],[390,9293,9295,9298],{"className":9294},[402],[390,9296],{"className":9297,"style":1803},[406],[390,9299,1000],{"className":9300},[411]," (Fermat), and the ",[5231,9303,9304],{},"first"," time it reaches ",[390,9307,9309],{"className":9308},[393],[390,9310,9312],{"className":9311,"ariaHidden":398},[397],[390,9313,9315,9318],{"className":9314},[402],[390,9316],{"className":9317,"style":1803},[406],[390,9319,1000],{"className":9320},[411],"\nit must arrive from ",[390,9323,9325],{"className":9324},[393],[390,9326,9328],{"className":9327,"ariaHidden":398},[397],[390,9329,9331,9334,9337],{"className":9330},[402],[390,9332],{"className":9333,"style":8023},[406],[390,9335,5136],{"className":9336},[411],[390,9338,1000],{"className":9339},[411],", because ",[390,9342,9344],{"className":9343},[393],[390,9345,9347],{"className":9346,"ariaHidden":398},[397],[390,9348,9350,9353],{"className":9349},[402],[390,9351],{"className":9352,"style":1803},[406],[390,9354,1000],{"className":9355},[411]," has no square root other than ",[390,9358,9360],{"className":9359},[393],[390,9361,9363],{"className":9362,"ariaHidden":398},[397],[390,9364,9366,9369,9372],{"className":9365},[402],[390,9367],{"className":9368,"style":8023},[406],[390,9370,8065],{"className":9371},[411],[390,9373,1000],{"className":9374},[411],". So a prime\nforces one of two patterns: either ",[390,9377,9379],{"className":9378},[393],[390,9380,9382,9426],{"className":9381,"ariaHidden":398},[397],[390,9383,9385,9388,9417,9420,9423],{"className":9384},[402],[390,9386],{"className":9387,"style":8794},[406],[390,9389,9391,9394],{"className":9390},[411],[390,9392,385],{"className":9393},[411,453],[390,9395,9397],{"className":9396},[420],[390,9398,9400],{"className":9399},[424],[390,9401,9403],{"className":9402},[429],[390,9404,9406],{"className":9405,"style":8794},[433],[390,9407,9408,9411],{"style":559},[390,9409],{"className":9410,"style":442},[441],[390,9412,9414],{"className":9413},[446,447,448,449],[390,9415,6813],{"className":9416},[411,453,449],[390,9418],{"className":9419,"style":771},[572],[390,9421,5376],{"className":9422},[775],[390,9424],{"className":9425,"style":771},[572],[390,9427,9429,9432],{"className":9428},[402],[390,9430],{"className":9431,"style":1803},[406],[390,9433,1000],{"className":9434},[411],", or some ",[390,9437,9439],{"className":9438},[393],[390,9440,9442,9519],{"className":9441,"ariaHidden":398},[397],[390,9443,9445,9449,9510,9513,9516],{"className":9444},[402],[390,9446],{"className":9447,"style":9448},[406],"height:0.88em;",[390,9450,9452,9455],{"className":9451},[411],[390,9453,385],{"className":9454},[411,453],[390,9456,9458],{"className":9457},[420],[390,9459,9461],{"className":9460},[424],[390,9462,9464],{"className":9463},[429],[390,9465,9467],{"className":9466,"style":9448},[433],[390,9468,9469,9472],{"style":559},[390,9470],{"className":9471,"style":442},[441],[390,9473,9475],{"className":9474},[446,447,448,449],[390,9476,9478,9507],{"className":9477},[411,449],[390,9479,9481,9484],{"className":9480},[411,449],[390,9482,886],{"className":9483},[411,449],[390,9485,9487],{"className":9486},[420],[390,9488,9490],{"className":9489},[424],[390,9491,9493],{"className":9492},[429],[390,9494,9496],{"className":9495,"style":9161},[433],[390,9497,9498,9501],{"style":1212},[390,9499],{"className":9500,"style":1123},[441],[390,9502,9504],{"className":9503},[446,1127,1128,449],[390,9505,4588],{"className":9506,"style":700},[411,453,449],[390,9508,6813],{"className":9509},[411,453,449],[390,9511],{"className":9512,"style":771},[572],[390,9514,5376],{"className":9515},[775],[390,9517],{"className":9518,"style":771},[572],[390,9520,9522,9525,9528],{"className":9521},[402],[390,9523],{"className":9524,"style":8023},[406],[390,9526,5136],{"className":9527},[411],[390,9529,1000],{"className":9530},[411]," for\n",[390,9533,9535],{"className":9534},[393],[390,9536,9538,9557,9577],{"className":9537,"ariaHidden":398},[397],[390,9539,9541,9545,9548,9551,9554],{"className":9540},[402],[390,9542],{"className":9543,"style":9544},[406],"height:0.7804em;vertical-align:-0.136em;",[390,9546,988],{"className":9547},[411],[390,9549],{"className":9550,"style":771},[572],[390,9552,6862],{"className":9553},[775],[390,9555],{"className":9556,"style":771},[572],[390,9558,9560,9564,9567,9570,9574],{"className":9559},[402],[390,9561],{"className":9562,"style":9563},[406],"height:0.5782em;vertical-align:-0.0391em;",[390,9565,4588],{"className":9566,"style":700},[411,453],[390,9568],{"className":9569,"style":771},[572],[390,9571,9573],{"className":9572},[775],"\u003C",[390,9575],{"className":9576,"style":771},[572],[390,9578,9580,9583],{"className":9579},[402],[390,9581],{"className":9582,"style":487},[406],[390,9584,8737],{"className":9585},[411,453],". If ",[471,9588,9589],{},"neither"," holds, we have found a ",[390,9592,9594],{"className":9593},[393],[390,9595,9597],{"className":9596,"ariaHidden":398},[397],[390,9598,9600,9603,9635],{"className":9599},[402],[390,9601],{"className":9602,"style":537},[406],[390,9604,9606,9609],{"className":9605},[411],[390,9607,886],{"className":9608},[411],[390,9610,9612],{"className":9611},[420],[390,9613,9615],{"className":9614},[424],[390,9616,9618],{"className":9617},[429],[390,9619,9621],{"className":9620,"style":556},[433],[390,9622,9623,9626],{"style":559},[390,9624],{"className":9625,"style":442},[441],[390,9627,9629],{"className":9628},[446,447,448,449],[390,9630,9632],{"className":9631},[411,449],[390,9633,4588],{"className":9634,"style":700},[411,453,449],[390,9636,6813],{"className":9637},[411,453],"-step value that is a\nnontrivial square root of ",[390,9640,9642],{"className":9641},[393],[390,9643,9645],{"className":9644,"ariaHidden":398},[397],[390,9646,9648,9651],{"className":9647},[402],[390,9649],{"className":9650,"style":1803},[406],[390,9652,1000],{"className":9653},[411]," (it squares to ",[390,9656,9658],{"className":9657},[393],[390,9659,9661],{"className":9660,"ariaHidden":398},[397],[390,9662,9664,9667],{"className":9663},[402],[390,9665],{"className":9666,"style":1803},[406],[390,9668,1000],{"className":9669},[411]," but is not ",[390,9672,9674],{"className":9673},[393],[390,9675,9677],{"className":9676,"ariaHidden":398},[397],[390,9678,9680,9683,9686],{"className":9679},[402],[390,9681],{"className":9682,"style":8023},[406],[390,9684,8065],{"className":9685},[411],[390,9687,1000],{"className":9688},[411],"), which a prime can\nnever have, so ",[390,9691,9693],{"className":9692},[393],[390,9694,9696],{"className":9695,"ariaHidden":398},[397],[390,9697,9699,9702],{"className":9698},[402],[390,9700],{"className":9701,"style":487},[406],[390,9703,385],{"className":9704},[411,453]," is a witness that ",[390,9707,9709],{"className":9708},[393],[390,9710,9712],{"className":9711,"ariaHidden":398},[397],[390,9713,9715,9718],{"className":9714},[402],[390,9716],{"className":9717,"style":487},[406],[390,9719,507],{"className":9720},[411,453]," is composite.",[2443,9723,9724],{},[385,9725,2586],{"href":9726,"ariaDescribedBy":9727,"dataFootnoteRef":376,"id":9728},"#user-content-fn-clrs-mr",[2449],"user-content-fnref-clrs-mr",[1809,9730,9732,10069],{"className":9731},[1812,1813],[1815,9733,9737],{"xmlns":1817,"width":9734,"height":9735,"viewBox":9736},"440.069","128.251","-75 -75 330.052 96.188",[1822,9738,9739,9784,9787,9802,9805,9825,9849,9852,9883,9886,9889,9896,9899,9902,9908,9911,9914,9920,9947,9979,9994],{"stroke":1824,"style":1825},[1822,9740,9741,9748,9754,9760,9766,9772,9778],{"stroke":1828},[1822,9742,9744],{"transform":9743},"translate(-83.385 2.787)",[1834,9745],{"d":9746,"fill":1824,"stroke":1824,"className":9747,"style":1839},"M21.853-32.445Q21.853-32.498 21.862-32.533L22.530-35.201Q22.583-35.399 22.583-35.596Q22.583-35.992 22.319-35.992Q22.033-35.992 21.899-35.669Q21.765-35.346 21.647-34.840Q21.629-34.757 21.554-34.757L21.449-34.757Q21.401-34.757 21.379-34.796Q21.357-34.836 21.357-34.876Q21.519-35.495 21.719-35.873Q21.919-36.251 22.341-36.251Q22.561-36.251 22.765-36.157Q22.969-36.062 23.099-35.889Q23.229-35.715 23.229-35.495Q23.506-35.847 23.868-36.049Q24.231-36.251 24.644-36.251Q25.140-36.251 25.437-35.998Q25.734-35.746 25.734-35.262Q25.734-34.889 25.573-34.394Q25.413-33.900 25.158-33.228Q25.039-32.942 25.039-32.705Q25.039-32.437 25.228-32.437Q25.470-32.437 25.666-32.623Q25.861-32.810 25.982-33.076Q26.103-33.342 26.164-33.588Q26.173-33.619 26.197-33.643Q26.221-33.667 26.252-33.667L26.362-33.667Q26.406-33.667 26.428-33.634Q26.450-33.601 26.450-33.553Q26.318-33.021 26-32.597Q25.681-32.173 25.219-32.173Q24.890-32.173 24.655-32.386Q24.420-32.599 24.420-32.933Q24.420-33.113 24.481-33.263Q24.740-33.926 24.912-34.467Q25.083-35.007 25.083-35.399Q25.083-35.552 25.042-35.689Q25-35.825 24.899-35.908Q24.798-35.992 24.626-35.992Q24.130-35.992 23.761-35.680Q23.391-35.368 23.123-34.858L22.539-32.498Q22.508-32.362 22.392-32.267Q22.275-32.173 22.139-32.173Q22.020-32.173 21.937-32.248Q21.853-32.322 21.853-32.445",[1838],[1822,9749,9750],{"transform":9743},[1834,9751],{"d":9752,"fill":1824,"stroke":1824,"className":9753,"style":1839},"M34.986-34.326L29.704-34.326Q29.629-34.339 29.576-34.392Q29.523-34.445 29.523-34.524Q29.523-34.590 29.578-34.645Q29.633-34.700 29.704-34.713L34.986-34.713Q35.056-34.700 35.107-34.649Q35.157-34.599 35.157-34.524Q35.157-34.357 34.986-34.326",[1838],[1822,9755,9756],{"transform":9743},[1834,9757],{"d":9758,"fill":1824,"stroke":1824,"className":9759,"style":1839},"M41.907-32.274L38.875-32.274L38.875-32.590Q40.026-32.590 40.026-32.885L40.026-37.609Q39.538-37.376 38.817-37.376L38.817-37.692Q39.947-37.692 40.509-38.268L40.654-38.268Q40.689-38.268 40.722-38.235Q40.755-38.202 40.755-38.167L40.755-32.885Q40.755-32.590 41.907-32.590",[1838],[1822,9761,9762],{"transform":9743},[1834,9763],{"d":9764,"fill":1824,"stroke":1824,"className":9765,"style":1839},"M51.694-33.417L45.888-33.417Q45.809-33.430 45.759-33.480Q45.708-33.531 45.708-33.606Q45.708-33.755 45.888-33.803L51.694-33.803Q51.865-33.751 51.865-33.606Q51.865-33.452 51.694-33.417M51.694-35.245L45.888-35.245Q45.708-35.275 45.708-35.434Q45.708-35.583 45.888-35.631L51.694-35.631Q51.865-35.579 51.865-35.434Q51.865-35.280 51.694-35.245",[1838],[1822,9767,9768],{"transform":9743},[1834,9769],{"d":9770,"fill":1824,"stroke":1824,"className":9771,"style":1839},"M58.865-32.274L55.415-32.274L55.415-32.507Q55.415-32.520 55.446-32.551L56.900-34.128Q57.366-34.625 57.619-34.930Q57.872-35.236 58.063-35.647Q58.254-36.058 58.254-36.497Q58.254-37.086 57.931-37.519Q57.608-37.952 57.028-37.952Q56.764-37.952 56.518-37.842Q56.272-37.732 56.096-37.545Q55.920-37.358 55.824-37.108L55.903-37.108Q56.105-37.108 56.248-36.972Q56.391-36.836 56.391-36.620Q56.391-36.414 56.248-36.275Q56.105-36.137 55.903-36.137Q55.701-36.137 55.558-36.280Q55.415-36.422 55.415-36.620Q55.415-37.082 55.652-37.455Q55.890-37.829 56.290-38.048Q56.689-38.268 57.138-38.268Q57.661-38.268 58.115-38.053Q58.570-37.837 58.843-37.438Q59.115-37.038 59.115-36.497Q59.115-36.102 58.944-35.748Q58.772-35.394 58.507-35.115Q58.241-34.836 57.790-34.451Q57.340-34.067 57.261-33.992L56.237-33.030L57.054-33.030Q57.705-33.030 58.142-33.041Q58.579-33.052 58.610-33.074Q58.680-33.157 58.735-33.397Q58.790-33.636 58.830-33.904L59.115-33.904",[1838],[1822,9773,9774],{"transform":9743},[1834,9775],{"d":9776,"fill":1824,"stroke":1824,"className":9777,"style":1873},"M60.406-36.451Q60.588-36.252 61.124-36.252Q61.329-36.252 61.553-36.308Q61.777-36.364 61.934-36.497Q62.091-36.630 62.091-36.841Q62.091-36.996 61.950-37.081Q61.810-37.166 61.622-37.201L61.221-37.266Q60.969-37.316 60.783-37.474Q60.597-37.632 60.597-37.872Q60.597-38.069 60.714-38.258Q60.831-38.447 61.004-38.558Q61.314-38.743 61.742-38.743Q62.062-38.743 62.325-38.622Q62.589-38.502 62.589-38.221Q62.589-38.077 62.504-37.969Q62.419-37.861 62.278-37.861Q62.190-37.861 62.126-37.919Q62.062-37.978 62.062-38.066Q62.062-38.171 62.125-38.252Q62.187-38.332 62.290-38.359Q62.144-38.526 61.736-38.526Q61.572-38.526 61.399-38.479Q61.227-38.432 61.109-38.326Q60.992-38.221 60.992-38.054Q60.992-37.937 61.096-37.865Q61.200-37.793 61.347-37.764L61.742-37.694Q61.941-37.659 62.107-37.575Q62.272-37.492 62.379-37.348Q62.486-37.204 62.486-37.014Q62.486-36.791 62.352-36.583Q62.217-36.375 62.012-36.252Q61.654-36.038 61.118-36.038Q60.734-36.038 60.411-36.167Q60.087-36.296 60.087-36.618Q60.087-36.788 60.188-36.914Q60.289-37.040 60.453-37.040Q60.559-37.040 60.632-36.974Q60.705-36.909 60.705-36.806Q60.705-36.677 60.620-36.577Q60.535-36.478 60.406-36.451",[1838],[1822,9779,9780],{"transform":9743},[1834,9781],{"d":9782,"fill":1824,"stroke":1824,"className":9783,"style":1839},"M65.212-32.173Q64.816-32.173 64.530-32.377Q64.245-32.582 64.098-32.916Q63.950-33.250 63.950-33.641Q63.950-34.076 64.124-34.537Q64.298-34.999 64.610-35.390Q64.922-35.781 65.332-36.016Q65.743-36.251 66.183-36.251Q66.451-36.251 66.668-36.113Q66.886-35.974 67.018-35.728L67.523-37.745Q67.558-37.895 67.558-37.969Q67.558-38.106 66.991-38.106Q66.895-38.106 66.895-38.224Q66.895-38.281 66.925-38.352Q66.956-38.422 67.018-38.422L68.244-38.519Q68.297-38.519 68.327-38.490Q68.358-38.462 68.358-38.413L68.358-38.378L67.075-33.228Q67.075-33.170 67.046-33.039Q67.018-32.907 67.018-32.832Q67.018-32.437 67.281-32.437Q67.567-32.437 67.701-32.760Q67.835-33.083 67.954-33.588Q67.963-33.619 67.987-33.643Q68.011-33.667 68.046-33.667L68.152-33.667Q68.200-33.667 68.222-33.634Q68.244-33.601 68.244-33.553Q68.130-33.122 68.039-32.869Q67.949-32.617 67.756-32.395Q67.563-32.173 67.264-32.173Q66.956-32.173 66.708-32.344Q66.460-32.516 66.389-32.806Q66.134-32.520 65.838-32.347Q65.541-32.173 65.212-32.173M65.229-32.437Q65.559-32.437 65.869-32.678Q66.178-32.920 66.389-33.236Q66.398-33.245 66.398-33.272L66.895-35.227Q66.838-35.544 66.646-35.768Q66.455-35.992 66.165-35.992Q65.796-35.992 65.497-35.673Q65.198-35.355 65.031-34.946Q64.895-34.599 64.770-34.089Q64.645-33.579 64.645-33.254Q64.645-32.929 64.783-32.683Q64.922-32.437 65.229-32.437",[1838],[1834,9785],{"fill":1828,"d":9786},"M1.198-22.316h39.834v-19.916H1.198Z",[1822,9788,9789,9796],{"stroke":1828},[1822,9790,9792],{"transform":9791},"translate(-4.628 3.995)",[1834,9793],{"d":9794,"fill":1824,"stroke":1824,"className":9795,"style":1839},"M22.737-32.173Q22.341-32.173 22.055-32.377Q21.770-32.582 21.623-32.916Q21.475-33.250 21.475-33.641Q21.475-34.076 21.649-34.537Q21.823-34.999 22.135-35.390Q22.447-35.781 22.857-36.016Q23.268-36.251 23.708-36.251Q23.976-36.251 24.193-36.113Q24.411-35.974 24.543-35.728Q24.582-35.878 24.690-35.974Q24.798-36.071 24.938-36.071Q25.061-36.071 25.145-35.998Q25.228-35.926 25.228-35.803Q25.228-35.750 25.219-35.719L24.600-33.228Q24.543-33.030 24.543-32.832Q24.543-32.437 24.806-32.437Q25.092-32.437 25.226-32.760Q25.360-33.083 25.479-33.588Q25.488-33.619 25.512-33.643Q25.536-33.667 25.571-33.667L25.677-33.667Q25.725-33.667 25.747-33.634Q25.769-33.601 25.769-33.553Q25.655-33.122 25.564-32.869Q25.474-32.617 25.281-32.395Q25.088-32.173 24.789-32.173Q24.481-32.173 24.233-32.344Q23.985-32.516 23.914-32.806Q23.659-32.520 23.363-32.347Q23.066-32.173 22.737-32.173M22.754-32.437Q23.084-32.437 23.394-32.678Q23.703-32.920 23.914-33.236Q23.923-33.245 23.923-33.263L24.420-35.227Q24.363-35.544 24.171-35.768Q23.980-35.992 23.690-35.992Q23.321-35.992 23.022-35.673Q22.723-35.355 22.556-34.946Q22.420-34.599 22.295-34.089Q22.170-33.579 22.170-33.254Q22.170-32.929 22.308-32.683Q22.447-32.437 22.754-32.437",[1838],[1822,9797,9798],{"transform":9791},[1834,9799],{"d":9800,"fill":1824,"stroke":1824,"className":9801,"style":1873},"M27.436-36.038Q27.152-36.038 26.928-36.172Q26.703-36.305 26.579-36.538Q26.454-36.771 26.454-37.058Q26.454-37.360 26.585-37.661Q26.715-37.963 26.942-38.208Q27.169-38.452 27.464-38.597Q27.758-38.743 28.066-38.743Q28.265-38.743 28.438-38.655Q28.611-38.567 28.716-38.406L29.038-39.703Q29.062-39.806 29.068-39.859Q29.068-39.938 28.678-39.938Q28.643-39.938 28.619-39.972Q28.596-40.005 28.596-40.040Q28.619-40.131 28.631-40.159Q28.643-40.187 28.696-40.196L29.572-40.260Q29.668-40.260 29.668-40.158L28.804-36.715Q28.786-36.624 28.786-36.542Q28.786-36.422 28.838-36.337Q28.889-36.252 28.997-36.252Q29.188-36.252 29.292-36.473Q29.396-36.695 29.466-36.991Q29.487-37.023 29.531-37.046L29.627-37.046Q29.686-37.029 29.706-36.967Q29.706-36.964 29.703-36.951Q29.701-36.938 29.698-36.926Q29.475-36.038 28.986-36.038Q28.845-36.038 28.706-36.082Q28.567-36.126 28.457-36.219Q28.347-36.311 28.306-36.446Q28.127-36.261 27.902-36.150Q27.676-36.038 27.436-36.038M27.448-36.252Q27.697-36.252 27.921-36.408Q28.145-36.563 28.312-36.794L28.619-38.022Q28.573-38.239 28.420-38.382Q28.268-38.526 28.054-38.526Q27.726-38.526 27.483-38.237Q27.240-37.949 27.114-37.544Q26.988-37.140 26.988-36.818Q26.988-36.580 27.106-36.416Q27.225-36.252 27.448-36.252",[1838],[1834,9803],{"fill":1828,"d":9804},"M69.484-22.316h39.834v-19.916H69.484Z",[1822,9806,9807,9813,9819],{"stroke":1828},[1822,9808,9810],{"transform":9809},"translate(61.826 3.995)",[1834,9811],{"d":9794,"fill":1824,"stroke":1824,"className":9812,"style":1839},[1838],[1822,9814,9815],{"transform":9809},[1834,9816],{"d":9817,"fill":1824,"stroke":1824,"className":9818,"style":1873},"M29.056-36.097L26.446-36.097L26.446-36.282Q26.452-36.305 26.472-36.331L27.623-37.386Q27.963-37.697 28.143-37.883Q28.324-38.069 28.469-38.329Q28.614-38.590 28.614-38.886Q28.614-39.159 28.488-39.374Q28.362-39.589 28.142-39.709Q27.922-39.829 27.647-39.829Q27.471-39.829 27.301-39.772Q27.131-39.715 26.999-39.608Q26.868-39.501 26.788-39.343Q26.876-39.343 26.954-39.299Q27.032-39.255 27.076-39.179Q27.119-39.103 27.119-39.006Q27.119-38.866 27.023-38.769Q26.926-38.672 26.783-38.672Q26.645-38.672 26.545-38.772Q26.446-38.871 26.446-39.006Q26.446-39.331 26.636-39.579Q26.827-39.826 27.130-39.957Q27.433-40.087 27.749-40.087Q28.130-40.087 28.473-39.952Q28.816-39.818 29.030-39.545Q29.244-39.273 29.244-38.886Q29.244-38.611 29.119-38.384Q28.994-38.157 28.814-37.985Q28.634-37.814 28.309-37.574Q27.984-37.333 27.899-37.266L27.143-36.662L27.676-36.662Q28.165-36.662 28.496-36.670Q28.828-36.677 28.842-36.692Q28.901-36.762 28.933-36.897Q28.965-37.032 28.997-37.243L29.244-37.243",[1838],[1822,9820,9821],{"transform":9809},[1834,9822],{"d":9823,"fill":1824,"stroke":1824,"className":9824,"style":1873},"M31.103-36.038Q30.819-36.038 30.595-36.172Q30.370-36.305 30.246-36.538Q30.121-36.771 30.121-37.058Q30.121-37.360 30.252-37.661Q30.382-37.963 30.609-38.208Q30.836-38.452 31.131-38.597Q31.425-38.743 31.733-38.743Q31.932-38.743 32.105-38.655Q32.278-38.567 32.383-38.406L32.705-39.703Q32.729-39.806 32.735-39.859Q32.735-39.938 32.345-39.938Q32.310-39.938 32.286-39.972Q32.263-40.005 32.263-40.040Q32.286-40.131 32.298-40.159Q32.310-40.187 32.363-40.196L33.239-40.260Q33.335-40.260 33.335-40.158L32.471-36.715Q32.453-36.624 32.453-36.542Q32.453-36.422 32.505-36.337Q32.556-36.252 32.664-36.252Q32.855-36.252 32.959-36.473Q33.063-36.695 33.133-36.991Q33.154-37.023 33.198-37.046L33.294-37.046Q33.353-37.029 33.373-36.967Q33.373-36.964 33.370-36.951Q33.368-36.938 33.365-36.926Q33.142-36.038 32.653-36.038Q32.512-36.038 32.373-36.082Q32.234-36.126 32.124-36.219Q32.014-36.311 31.973-36.446Q31.794-36.261 31.569-36.150Q31.343-36.038 31.103-36.038M31.115-36.252Q31.364-36.252 31.588-36.408Q31.812-36.563 31.979-36.794L32.286-38.022Q32.240-38.239 32.087-38.382Q31.935-38.526 31.721-38.526Q31.393-38.526 31.150-38.237Q30.907-37.949 30.781-37.544Q30.655-37.140 30.655-36.818Q30.655-36.580 30.773-36.416Q30.892-36.252 31.115-36.252",[1838],[1822,9826,9827,9830],{"fill":2087,"stroke":2088,"style":2089},[1834,9828],{"d":9829},"M137.771-22.316h39.834v-19.916H137.77Z",[1822,9831,9832,9838,9844],{"fill":1824,"stroke":1828},[1822,9833,9835],{"transform":9834},"translate(130.112 3.995)",[1834,9836],{"d":9794,"fill":1824,"stroke":1824,"className":9837,"style":1839},[1838],[1822,9839,9840],{"transform":9834},[1834,9841],{"d":9842,"fill":1824,"stroke":1824,"className":9843,"style":1873},"M28.145-37.076L26.290-37.076L26.290-37.333L28.385-40.040Q28.423-40.087 28.482-40.087L28.614-40.087Q28.655-40.087 28.682-40.059Q28.710-40.032 28.710-39.991L28.710-37.333L29.399-37.333L29.399-37.076L28.710-37.076L28.710-36.528Q28.710-36.355 29.387-36.355L29.387-36.097L27.468-36.097L27.468-36.355Q28.145-36.355 28.145-36.528L28.145-37.076M28.186-39.416L26.580-37.333L28.186-37.333",[1838],[1822,9845,9846],{"transform":9834},[1834,9847],{"d":9823,"fill":1824,"stroke":1824,"className":9848,"style":1873},[1838],[1834,9850],{"fill":1828,"d":9851},"M211.748-22.316h39.834v-19.916h-39.834Z",[1822,9853,9854,9860,9866,9871,9877],{"stroke":1828},[1822,9855,9857],{"transform":9856},"translate(198.18 3.995)",[1834,9858],{"d":9794,"fill":1824,"stroke":1824,"className":9859,"style":1839},[1838],[1822,9861,9862],{"transform":9856},[1834,9863],{"d":9864,"fill":1824,"stroke":1824,"className":9865,"style":1873},"M26.393-37.020Q26.393-37.407 26.654-37.678Q26.914-37.949 27.316-38.118L27.143-38.215Q26.894-38.362 26.740-38.580Q26.586-38.798 26.586-39.068Q26.586-39.378 26.772-39.611Q26.958-39.844 27.251-39.966Q27.544-40.087 27.846-40.087Q28.136-40.087 28.428-39.989Q28.719-39.891 28.912-39.686Q29.106-39.481 29.106-39.182Q29.106-38.863 28.896-38.643Q28.687-38.423 28.344-38.262L28.666-38.089Q28.948-37.925 29.122-37.679Q29.296-37.433 29.296-37.128Q29.296-36.765 29.081-36.503Q28.866-36.241 28.529-36.106Q28.192-35.971 27.846-35.971Q27.503-35.971 27.169-36.085Q26.835-36.200 26.614-36.435Q26.393-36.671 26.393-37.020M26.800-37.026Q26.800-36.651 27.130-36.431Q27.459-36.211 27.846-36.211Q28.080-36.211 28.321-36.286Q28.561-36.361 28.725-36.519Q28.889-36.677 28.889-36.920Q28.889-37.090 28.781-37.229Q28.672-37.368 28.511-37.459L27.574-37.975Q27.248-37.837 27.024-37.591Q26.800-37.345 26.800-37.026M27.222-38.880L28.098-38.400Q28.745-38.716 28.745-39.182Q28.745-39.396 28.609-39.553Q28.473-39.709 28.266-39.787Q28.060-39.865 27.846-39.865Q27.524-39.865 27.234-39.725Q26.944-39.586 26.944-39.296Q26.944-39.065 27.222-38.880",[1838],[1822,9867,9868],{"transform":9856},[1834,9869],{"d":9823,"fill":1824,"stroke":1824,"className":9870,"style":1873},[1838],[1822,9872,9873],{"transform":9856},[1834,9874],{"d":9875,"fill":1824,"stroke":1824,"className":9876,"style":1839},"M40.536-33.417L34.730-33.417Q34.651-33.430 34.601-33.480Q34.550-33.531 34.550-33.606Q34.550-33.755 34.730-33.803L40.536-33.803Q40.707-33.751 40.707-33.606Q40.707-33.452 40.536-33.417M40.536-35.245L34.730-35.245Q34.550-35.275 34.550-35.434Q34.550-35.583 34.730-35.631L40.536-35.631Q40.707-35.579 40.707-35.434Q40.707-35.280 40.536-35.245",[1838],[1822,9878,9879],{"transform":9856},[1834,9880],{"d":9881,"fill":1824,"stroke":1824,"className":9882,"style":1839},"M45.138-32.274L42.106-32.274L42.106-32.590Q43.257-32.590 43.257-32.885L43.257-37.609Q42.769-37.376 42.048-37.376L42.048-37.692Q43.178-37.692 43.740-38.268L43.885-38.268Q43.920-38.268 43.953-38.235Q43.986-38.202 43.986-38.167L43.986-32.885Q43.986-32.590 45.138-32.590",[1838],[1834,9884],{"fill":1828,"d":9885},"M41.232-32.274h26.052",[1834,9887],{"stroke":1828,"d":9888},"m69.284-32.274-3.2-1.6 1.2 1.6-1.2 1.6",[1822,9890,9892],{"transform":9891},"translate(30.224 -5.089)",[1834,9893],{"d":9894,"fill":1824,"stroke":1824,"className":9895,"style":2060},"M21.396-32.282L21.396-33.504Q21.396-33.532 21.427-33.563Q21.459-33.594 21.482-33.594L21.588-33.594Q21.658-33.594 21.674-33.532Q21.736-33.212 21.875-32.971Q22.013-32.731 22.246-32.590Q22.478-32.450 22.787-32.450Q23.025-32.450 23.234-32.510Q23.443-32.571 23.580-32.719Q23.717-32.868 23.717-33.114Q23.717-33.368 23.506-33.534Q23.295-33.700 23.025-33.754L22.404-33.868Q21.998-33.946 21.697-34.202Q21.396-34.458 21.396-34.833Q21.396-35.200 21.597-35.422Q21.799-35.645 22.123-35.743Q22.447-35.840 22.787-35.840Q23.252-35.840 23.549-35.633L23.771-35.817Q23.795-35.840 23.826-35.840L23.877-35.840Q23.908-35.840 23.935-35.813Q23.963-35.786 23.963-35.754L23.963-34.770Q23.963-34.739 23.937-34.710Q23.912-34.680 23.877-34.680L23.771-34.680Q23.736-34.680 23.709-34.708Q23.681-34.735 23.681-34.770Q23.681-35.169 23.429-35.389Q23.177-35.610 22.779-35.610Q22.424-35.610 22.140-35.487Q21.857-35.364 21.857-35.059Q21.857-34.840 22.058-34.708Q22.260-34.575 22.506-34.532L23.131-34.419Q23.560-34.329 23.869-34.032Q24.177-33.735 24.177-33.321Q24.177-32.751 23.779-32.473Q23.381-32.196 22.787-32.196Q22.236-32.196 21.885-32.532L21.588-32.219Q21.564-32.196 21.529-32.196L21.482-32.196Q21.459-32.196 21.427-32.227Q21.396-32.258 21.396-32.282M28.924-30.723L27.068-30.723L27.068-31.016Q27.338-31.016 27.506-31.061Q27.674-31.106 27.674-31.282L27.674-32.731Q27.470-32.485 27.170-32.340Q26.869-32.196 26.537-32.196Q26.052-32.196 25.640-32.438Q25.228-32.680 24.988-33.092Q24.748-33.504 24.748-34.001Q24.748-34.497 25.004-34.911Q25.260-35.325 25.689-35.563Q26.119-35.801 26.611-35.801Q26.967-35.801 27.273-35.622Q27.580-35.442 27.771-35.129L28.060-35.801L28.314-35.801L28.314-31.282Q28.314-31.106 28.482-31.061Q28.650-31.016 28.924-31.016L28.924-30.723M26.595-32.450Q26.963-32.450 27.256-32.682Q27.549-32.915 27.697-33.274L27.697-34.610Q27.603-34.993 27.330-35.256Q27.056-35.520 26.681-35.520Q26.322-35.520 26.049-35.290Q25.775-35.059 25.633-34.702Q25.490-34.344 25.490-33.993Q25.490-33.657 25.615-33.295Q25.740-32.934 25.992-32.692Q26.244-32.450 26.595-32.450",[1838],[1834,9897],{"fill":1828,"d":9898},"M109.518-32.274h25.653",[1834,9900],{"stroke":1828,"d":9901},"m137.171-32.274-3.2-1.6 1.2 1.6-1.2 1.6",[1822,9903,9905],{"transform":9904},"translate(98.31 -5.089)",[1834,9906],{"d":9894,"fill":1824,"stroke":1824,"className":9907,"style":2060},[1838],[1834,9909],{"fill":1828,"d":9910},"M178.205-32.274h31.343",[1834,9912],{"stroke":1828,"d":9913},"m211.548-32.274-3.2-1.6 1.2 1.6-1.2 1.6",[1822,9915,9917],{"transform":9916},"translate(169.842 -5.089)",[1834,9918],{"d":9894,"fill":1824,"stroke":1824,"className":9919,"style":2060},[1838],[1822,9921,9922,9929,9935,9941],{"stroke":1828,"fontSize":4007},[1822,9923,9925],{"transform":9924},"translate(126.656 29.03)",[1834,9926],{"d":9927,"fill":1824,"stroke":1824,"className":9928,"style":2060},"M22.299-30.739Q22.299-30.762 22.314-30.809L26.185-37.899Q26.244-37.993 26.345-37.993Q26.420-37.993 26.474-37.938Q26.529-37.883 26.529-37.809Q26.529-37.786 26.513-37.739L22.650-30.649Q22.584-30.555 22.482-30.555Q22.404-30.555 22.351-30.608Q22.299-30.661 22.299-30.739",[1838],[1822,9930,9931],{"transform":9924},[1834,9932],{"d":9933,"fill":1824,"stroke":1824,"className":9934,"style":2060},"M27.076-33.251L21.763-33.251Q21.685-33.258 21.636-33.307Q21.588-33.356 21.588-33.434Q21.588-33.504 21.635-33.555Q21.681-33.606 21.763-33.618L27.076-33.618Q27.150-33.606 27.197-33.555Q27.244-33.504 27.244-33.434Q27.244-33.356 27.195-33.307Q27.146-33.258 27.076-33.251M27.076-34.938L21.763-34.938Q21.685-34.946 21.636-34.995Q21.588-35.044 21.588-35.122Q21.588-35.192 21.635-35.243Q21.681-35.294 21.763-35.305L27.076-35.305Q27.150-35.294 27.197-35.243Q27.244-35.192 27.244-35.122Q27.244-35.044 27.195-34.995Q27.146-34.946 27.076-34.938",[1838],[1822,9936,9937],{"transform":9924},[1834,9938],{"d":9939,"fill":1824,"stroke":1824,"className":9940,"style":2060},"M36.048-32.153L30.735-32.153Q30.657-32.165 30.608-32.213Q30.560-32.262 30.560-32.337Q30.560-32.411 30.608-32.460Q30.657-32.508 30.735-32.520L33.208-32.520L33.208-34.801L30.735-34.801Q30.657-34.813 30.608-34.862Q30.560-34.911 30.560-34.985Q30.560-35.059 30.608-35.108Q30.657-35.157 30.735-35.169L33.208-35.169L33.208-37.649Q33.212-37.715 33.263-37.766Q33.314-37.817 33.392-37.817Q33.462-37.817 33.513-37.766Q33.564-37.715 33.575-37.649L33.575-35.169L36.048-35.169Q36.216-35.137 36.216-34.985Q36.216-34.833 36.048-34.801L33.575-34.801L33.575-32.520L36.048-32.520Q36.216-32.489 36.216-32.337Q36.216-32.184 36.048-32.153",[1838],[1822,9942,9943],{"transform":9924},[1834,9944],{"d":9945,"fill":1824,"stroke":1824,"className":9946,"style":2060},"M40.292-32.274L37.499-32.274L37.499-32.571Q38.561-32.571 38.561-32.833L38.561-37.001Q38.132-36.786 37.452-36.786L37.452-37.083Q38.471-37.083 38.987-37.594L39.132-37.594Q39.206-37.575 39.225-37.497L39.225-32.833Q39.225-32.571 40.292-32.571",[1838],[1822,9948,9949],{"fill":2088,"stroke":2088},[1822,9950,9951,9958,9964,9970,9973],{"fill":2088,"stroke":1828},[1822,9952,9954],{"transform":9953},"translate(111.542 45.842)",[1834,9955],{"d":9956,"fill":2088,"stroke":2088,"className":9957,"style":2060},"M23.283-32.274L21.427-32.274L21.427-32.571Q21.701-32.571 21.869-32.618Q22.037-32.665 22.037-32.833L22.037-34.969Q22.037-35.184 21.974-35.280Q21.912-35.376 21.793-35.397Q21.674-35.419 21.427-35.419L21.427-35.715L22.619-35.801L22.619-35.067Q22.732-35.282 22.926-35.450Q23.119-35.618 23.357-35.710Q23.595-35.801 23.849-35.801Q25.017-35.801 25.017-34.723L25.017-32.833Q25.017-32.665 25.187-32.618Q25.357-32.571 25.627-32.571L25.627-32.274L23.771-32.274L23.771-32.571Q24.045-32.571 24.213-32.618Q24.381-32.665 24.381-32.833L24.381-34.708Q24.381-35.090 24.260-35.319Q24.138-35.547 23.787-35.547Q23.474-35.547 23.220-35.385Q22.967-35.223 22.820-34.954Q22.674-34.684 22.674-34.387L22.674-32.833Q22.674-32.665 22.844-32.618Q23.013-32.571 23.283-32.571L23.283-32.274M26.072-33.969Q26.072-34.473 26.328-34.905Q26.584-35.337 27.019-35.588Q27.455-35.840 27.955-35.840Q28.342-35.840 28.683-35.696Q29.025-35.551 29.287-35.290Q29.549-35.028 29.691-34.692Q29.834-34.356 29.834-33.969Q29.834-33.477 29.570-33.067Q29.306-32.657 28.877-32.426Q28.447-32.196 27.955-32.196Q27.463-32.196 27.029-32.428Q26.595-32.661 26.334-33.069Q26.072-33.477 26.072-33.969M27.955-32.473Q28.412-32.473 28.664-32.696Q28.916-32.919 29.004-33.270Q29.092-33.622 29.092-34.067Q29.092-34.497 28.998-34.835Q28.904-35.172 28.650-35.379Q28.396-35.587 27.955-35.587Q27.306-35.587 27.062-35.170Q26.818-34.754 26.818-34.067Q26.818-33.622 26.906-33.270Q26.994-32.919 27.246-32.696Q27.498-32.473 27.955-32.473M32.248-32.274L30.392-32.274L30.392-32.571Q30.666-32.571 30.834-32.618Q31.002-32.665 31.002-32.833L31.002-34.969Q31.002-35.184 30.939-35.280Q30.877-35.376 30.758-35.397Q30.638-35.419 30.392-35.419L30.392-35.715L31.584-35.801L31.584-35.067Q31.697-35.282 31.890-35.450Q32.084-35.618 32.322-35.710Q32.560-35.801 32.814-35.801Q33.982-35.801 33.982-34.723L33.982-32.833Q33.982-32.665 34.152-32.618Q34.322-32.571 34.592-32.571L34.592-32.274L32.736-32.274L32.736-32.571Q33.010-32.571 33.177-32.618Q33.345-32.665 33.345-32.833L33.345-34.708Q33.345-35.090 33.224-35.319Q33.103-35.547 32.752-35.547Q32.439-35.547 32.185-35.385Q31.931-35.223 31.785-34.954Q31.638-34.684 31.638-34.387L31.638-32.833Q31.638-32.665 31.808-32.618Q31.978-32.571 32.248-32.571",[1838],[1822,9959,9960],{"transform":9953},[1834,9961],{"d":9962,"fill":2088,"stroke":2088,"className":9963,"style":2060},"M35.436-33.235L35.436-35.426L34.733-35.426L34.733-35.680Q35.089-35.680 35.331-35.913Q35.573-36.145 35.684-36.493Q35.796-36.840 35.796-37.196L36.077-37.196L36.077-35.723L37.253-35.723L37.253-35.426L36.077-35.426L36.077-33.251Q36.077-32.930 36.196-32.702Q36.315-32.473 36.596-32.473Q36.776-32.473 36.893-32.596Q37.011-32.719 37.063-32.899Q37.116-33.079 37.116-33.251L37.116-33.723L37.397-33.723L37.397-33.235Q37.397-32.981 37.292-32.741Q37.186-32.501 36.989-32.348Q36.792-32.196 36.534-32.196Q36.218-32.196 35.966-32.319Q35.714-32.442 35.575-32.676Q35.436-32.911 35.436-33.235M40.124-32.274L38.143-32.274L38.143-32.571Q38.413-32.571 38.581-32.616Q38.749-32.661 38.749-32.833L38.749-34.969Q38.749-35.184 38.686-35.280Q38.624-35.376 38.507-35.397Q38.389-35.419 38.143-35.419L38.143-35.715L39.311-35.801L39.311-35.016Q39.389-35.227 39.542-35.413Q39.694-35.598 39.893-35.700Q40.093-35.801 40.319-35.801Q40.565-35.801 40.757-35.657Q40.948-35.512 40.948-35.282Q40.948-35.126 40.843-35.016Q40.737-34.907 40.581-34.907Q40.425-34.907 40.315-35.016Q40.206-35.126 40.206-35.282Q40.206-35.442 40.311-35.547Q39.987-35.547 39.772-35.319Q39.557-35.090 39.462-34.751Q39.366-34.411 39.366-34.106L39.366-32.833Q39.366-32.665 39.593-32.618Q39.819-32.571 40.124-32.571L40.124-32.274M43.288-32.274L41.511-32.274L41.511-32.571Q41.784-32.571 41.952-32.618Q42.120-32.665 42.120-32.833L42.120-34.969Q42.120-35.184 42.063-35.280Q42.007-35.376 41.893-35.397Q41.780-35.419 41.534-35.419L41.534-35.715L42.733-35.801L42.733-32.833Q42.733-32.665 42.880-32.618Q43.026-32.571 43.288-32.571L43.288-32.274M41.846-37.196Q41.846-37.387 41.981-37.518Q42.116-37.649 42.311-37.649Q42.432-37.649 42.536-37.587Q42.639-37.524 42.702-37.420Q42.764-37.317 42.764-37.196Q42.764-37.001 42.634-36.866Q42.503-36.731 42.311-36.731Q42.112-36.731 41.979-36.864Q41.846-36.997 41.846-37.196M45.589-32.305L44.366-35.161Q44.284-35.337 44.139-35.381Q43.995-35.426 43.725-35.426L43.725-35.723L45.436-35.723L45.436-35.426Q45.014-35.426 45.014-35.243Q45.014-35.208 45.030-35.161L45.975-32.969L46.815-34.946Q46.854-35.024 46.854-35.114Q46.854-35.254 46.749-35.340Q46.643-35.426 46.503-35.426L46.503-35.723L47.854-35.723L47.854-35.426Q47.331-35.426 47.116-34.946L45.991-32.305Q45.928-32.196 45.823-32.196L45.757-32.196Q45.643-32.196 45.589-32.305M50.128-32.274L48.350-32.274L48.350-32.571Q48.624-32.571 48.792-32.618Q48.960-32.665 48.960-32.833L48.960-34.969Q48.960-35.184 48.903-35.280Q48.846-35.376 48.733-35.397Q48.620-35.419 48.374-35.419L48.374-35.715L49.573-35.801L49.573-32.833Q49.573-32.665 49.719-32.618Q49.866-32.571 50.128-32.571L50.128-32.274M48.686-37.196Q48.686-37.387 48.821-37.518Q48.956-37.649 49.151-37.649Q49.272-37.649 49.376-37.587Q49.479-37.524 49.542-37.420Q49.604-37.317 49.604-37.196Q49.604-37.001 49.473-36.866Q49.343-36.731 49.151-36.731Q48.952-36.731 48.819-36.864Q48.686-36.997 48.686-37.196M50.725-33.106Q50.725-33.590 51.128-33.885Q51.530-34.180 52.081-34.299Q52.632-34.419 53.124-34.419L53.124-34.708Q53.124-34.934 53.009-35.141Q52.893-35.348 52.696-35.467Q52.499-35.587 52.268-35.587Q51.843-35.587 51.557-35.481Q51.628-35.454 51.675-35.399Q51.721-35.344 51.747-35.274Q51.772-35.204 51.772-35.129Q51.772-35.024 51.721-34.932Q51.671-34.840 51.579-34.790Q51.487-34.739 51.382-34.739Q51.276-34.739 51.184-34.790Q51.093-34.840 51.042-34.932Q50.991-35.024 50.991-35.129Q50.991-35.547 51.380-35.694Q51.768-35.840 52.268-35.840Q52.600-35.840 52.954-35.710Q53.307-35.579 53.536-35.325Q53.764-35.071 53.764-34.723L53.764-32.922Q53.764-32.790 53.837-32.680Q53.909-32.571 54.038-32.571Q54.163-32.571 54.231-32.676Q54.300-32.782 54.300-32.922L54.300-33.434L54.581-33.434L54.581-32.922Q54.581-32.719 54.464-32.561Q54.346-32.403 54.165-32.319Q53.983-32.235 53.780-32.235Q53.550-32.235 53.397-32.407Q53.245-32.579 53.214-32.809Q53.053-32.528 52.745-32.362Q52.436-32.196 52.085-32.196Q51.573-32.196 51.149-32.419Q50.725-32.641 50.725-33.106M51.413-33.106Q51.413-32.821 51.639-32.635Q51.866-32.450 52.159-32.450Q52.405-32.450 52.630-32.567Q52.854-32.684 52.989-32.887Q53.124-33.090 53.124-33.344L53.124-34.176Q52.858-34.176 52.573-34.122Q52.288-34.067 52.016-33.938Q51.745-33.809 51.579-33.602Q51.413-33.395 51.413-33.106M56.788-32.274L54.956-32.274L54.956-32.571Q55.229-32.571 55.397-32.618Q55.565-32.665 55.565-32.833L55.565-36.993Q55.565-37.208 55.503-37.303Q55.440-37.399 55.321-37.420Q55.202-37.442 54.956-37.442L54.956-37.739L56.178-37.825L56.178-32.833Q56.178-32.665 56.346-32.618Q56.514-32.571 56.788-32.571",[1838],[1822,9965,9966],{"transform":9953},[1834,9967],{"d":9968,"fill":2088,"stroke":2088,"className":9969,"style":2060},"M62.813-31.323L61.117-34.799L60.637-34.456Q60.602-34.432 60.571-34.432Q60.528-34.432 60.483-34.477Q60.438-34.522 60.438-34.569Q60.438-34.624 60.485-34.667L61.461-35.354Q61.477-35.370 61.524-35.370Q61.606-35.370 61.629-35.303L63.157-32.170L66.766-39.170Q66.805-39.264 66.922-39.264Q67.004-39.264 67.057-39.211Q67.110-39.159 67.110-39.081Q67.110-39.042 67.090-39.002L63.157-31.354Q63.125-31.307 63.086-31.282Q63.047-31.256 63.004-31.256L62.907-31.256Q62.832-31.268 62.813-31.323",[1838],[1834,9971],{"d":9972},"M178.47 6.585h4.25v.36h-4.25z",[1822,9974,9975],{"transform":9953},[1834,9976],{"d":9977,"fill":2088,"stroke":2088,"className":9978,"style":2060},"M70.522-32.274L67.729-32.274L67.729-32.571Q68.791-32.571 68.791-32.833L68.791-37.001Q68.362-36.786 67.682-36.786L67.682-37.083Q68.701-37.083 69.217-37.594L69.362-37.594Q69.436-37.575 69.455-37.497L69.455-32.833Q69.455-32.571 70.522-32.571",[1838],[1822,9980,9981,9988],{"stroke":1828,"fontSize":4007},[1822,9982,9984],{"transform":9983},"translate(202.994 29.608)",[1834,9985],{"d":9986,"fill":1824,"stroke":1824,"className":9987,"style":2060},"M28.107-34.090L21.763-34.090Q21.689-34.090 21.638-34.147Q21.588-34.204 21.588-34.274Q21.588-34.344 21.635-34.401Q21.681-34.458 21.763-34.458L28.107-34.458Q27.654-34.786 27.357-35.253Q27.060-35.719 26.955-36.258Q26.955-36.360 27.052-36.387L27.220-36.387Q27.302-36.368 27.322-36.282Q27.451-35.606 27.931-35.088Q28.412-34.571 29.076-34.379Q29.138-34.356 29.138-34.274Q29.138-34.192 29.076-34.169Q28.412-33.981 27.931-33.462Q27.451-32.942 27.322-32.266Q27.302-32.180 27.220-32.161L27.052-32.161Q26.955-32.188 26.955-32.290Q27.029-32.657 27.187-32.989Q27.345-33.321 27.578-33.598Q27.810-33.876 28.107-34.090",[1838],[1822,9989,9990],{"transform":9983},[1834,9991],{"d":9992,"fill":1824,"stroke":1824,"className":9993,"style":2060},"M35.570-32.274L32.777-32.274L32.777-32.571Q33.839-32.571 33.839-32.833L33.839-37.001Q33.410-36.786 32.730-36.786L32.730-37.083Q33.749-37.083 34.265-37.594L34.410-37.594Q34.484-37.575 34.503-37.497L34.503-32.833Q34.503-32.571 35.570-32.571",[1838],[1822,9995,9996,10003,10009,10015,10021,10027,10033,10039,10045,10051,10057,10063],{"stroke":1828,"fontSize":4007},[1822,9997,9999],{"transform":9998},"translate(97.233 -21.798)",[1834,10000],{"d":10001,"fill":1824,"stroke":1824,"className":10002,"style":2060},"M27.492-42.606Q27.492-43.090 27.894-43.385Q28.297-43.680 28.847-43.799Q29.398-43.919 29.890-43.919L29.890-44.208Q29.890-44.434 29.775-44.641Q29.660-44.848 29.463-44.967Q29.265-45.087 29.035-45.087Q28.609-45.087 28.324-44.981Q28.394-44.954 28.441-44.899Q28.488-44.844 28.513-44.774Q28.539-44.704 28.539-44.629Q28.539-44.524 28.488-44.432Q28.437-44.340 28.345-44.290Q28.254-44.239 28.148-44.239Q28.043-44.239 27.951-44.290Q27.859-44.340 27.808-44.432Q27.758-44.524 27.758-44.629Q27.758-45.047 28.146-45.194Q28.535-45.340 29.035-45.340Q29.367-45.340 29.720-45.210Q30.074-45.079 30.302-44.825Q30.531-44.571 30.531-44.223L30.531-42.422Q30.531-42.290 30.603-42.180Q30.676-42.071 30.804-42.071Q30.929-42.071 30.998-42.176Q31.066-42.282 31.066-42.422L31.066-42.934L31.347-42.934L31.347-42.422Q31.347-42.219 31.230-42.061Q31.113-41.903 30.931-41.819Q30.750-41.735 30.547-41.735Q30.316-41.735 30.164-41.907Q30.011-42.079 29.980-42.309Q29.820-42.028 29.511-41.862Q29.203-41.696 28.851-41.696Q28.340-41.696 27.916-41.919Q27.492-42.141 27.492-42.606M28.179-42.606Q28.179-42.321 28.406-42.135Q28.633-41.950 28.926-41.950Q29.172-41.950 29.396-42.067Q29.621-42.184 29.756-42.387Q29.890-42.590 29.890-42.844L29.890-43.676Q29.625-43.676 29.340-43.622Q29.054-43.567 28.783-43.438Q28.511-43.309 28.345-43.102Q28.179-42.895 28.179-42.606",[1838],[1822,10004,10005],{"transform":9998},[1834,10006],{"d":10007,"fill":1824,"stroke":1824,"className":10008,"style":2060},"M36.360-40.223L34.505-40.223L34.505-40.516Q34.774-40.516 34.942-40.561Q35.110-40.606 35.110-40.782L35.110-44.606Q35.110-44.813 34.954-44.866Q34.798-44.919 34.505-44.919L34.505-45.215L35.727-45.301L35.727-44.837Q35.958-45.059 36.272-45.180Q36.587-45.301 36.926-45.301Q37.399-45.301 37.803-45.055Q38.208-44.809 38.440-44.393Q38.673-43.977 38.673-43.501Q38.673-43.126 38.524-42.797Q38.376-42.469 38.106-42.217Q37.837-41.965 37.493-41.831Q37.149-41.696 36.790-41.696Q36.501-41.696 36.229-41.817Q35.958-41.938 35.751-42.149L35.751-40.782Q35.751-40.606 35.919-40.561Q36.087-40.516 36.360-40.516L36.360-40.223M35.751-44.438L35.751-42.598Q35.903-42.309 36.165-42.129Q36.426-41.950 36.735-41.950Q37.020-41.950 37.243-42.088Q37.466-42.227 37.618-42.458Q37.770-42.688 37.848-42.960Q37.926-43.231 37.926-43.501Q37.926-43.833 37.801-44.190Q37.676-44.547 37.428-44.784Q37.180-45.020 36.833-45.020Q36.509-45.020 36.214-44.864Q35.919-44.708 35.751-44.438M41.204-41.774L39.223-41.774L39.223-42.071Q39.493-42.071 39.661-42.116Q39.829-42.161 39.829-42.333L39.829-44.469Q39.829-44.684 39.766-44.780Q39.704-44.876 39.587-44.897Q39.469-44.919 39.223-44.919L39.223-45.215L40.391-45.301L40.391-44.516Q40.469-44.727 40.622-44.913Q40.774-45.098 40.973-45.200Q41.173-45.301 41.399-45.301Q41.645-45.301 41.837-45.157Q42.028-45.012 42.028-44.782Q42.028-44.626 41.923-44.516Q41.817-44.407 41.661-44.407Q41.505-44.407 41.395-44.516Q41.286-44.626 41.286-44.782Q41.286-44.942 41.391-45.047Q41.067-45.047 40.852-44.819Q40.637-44.590 40.542-44.251Q40.446-43.911 40.446-43.606L40.446-42.333Q40.446-42.165 40.673-42.118Q40.899-42.071 41.204-42.071L41.204-41.774M44.368-41.774L42.591-41.774L42.591-42.071Q42.864-42.071 43.032-42.118Q43.200-42.165 43.200-42.333L43.200-44.469Q43.200-44.684 43.143-44.780Q43.087-44.876 42.973-44.897Q42.860-44.919 42.614-44.919L42.614-45.215L43.813-45.301L43.813-42.333Q43.813-42.165 43.960-42.118Q44.106-42.071 44.368-42.071L44.368-41.774M42.926-46.696Q42.926-46.887 43.061-47.018Q43.196-47.149 43.391-47.149Q43.512-47.149 43.616-47.087Q43.719-47.024 43.782-46.920Q43.844-46.817 43.844-46.696Q43.844-46.501 43.714-46.366Q43.583-46.231 43.391-46.231Q43.192-46.231 43.059-46.364Q42.926-46.497 42.926-46.696M46.798-41.774L44.942-41.774L44.942-42.071Q45.216-42.071 45.384-42.118Q45.551-42.165 45.551-42.333L45.551-44.469Q45.551-44.684 45.489-44.780Q45.426-44.876 45.307-44.897Q45.188-44.919 44.942-44.919L44.942-45.215L46.134-45.301L46.134-44.567Q46.247-44.782 46.440-44.950Q46.634-45.118 46.872-45.210Q47.110-45.301 47.364-45.301Q48.325-45.301 48.501-44.590Q48.684-44.919 49.012-45.110Q49.341-45.301 49.719-45.301Q50.895-45.301 50.895-44.223L50.895-42.333Q50.895-42.165 51.063-42.118Q51.231-42.071 51.501-42.071L51.501-41.774L49.645-41.774L49.645-42.071Q49.919-42.071 50.087-42.116Q50.255-42.161 50.255-42.333L50.255-44.208Q50.255-44.594 50.130-44.821Q50.005-45.047 49.653-45.047Q49.348-45.047 49.093-44.885Q48.837-44.723 48.688-44.454Q48.540-44.184 48.540-43.887L48.540-42.333Q48.540-42.165 48.710-42.118Q48.880-42.071 49.149-42.071L49.149-41.774L47.294-41.774L47.294-42.071Q47.567-42.071 47.735-42.118Q47.903-42.165 47.903-42.333L47.903-44.208Q47.903-44.594 47.778-44.821Q47.653-45.047 47.301-45.047Q46.997-45.047 46.741-44.885Q46.485-44.723 46.337-44.454Q46.188-44.184 46.188-43.887L46.188-42.333Q46.188-42.165 46.358-42.118Q46.528-42.071 46.798-42.071L46.798-41.774M51.946-43.528Q51.946-44.008 52.178-44.424Q52.411-44.840 52.821-45.090Q53.231-45.340 53.708-45.340Q54.438-45.340 54.837-44.899Q55.235-44.458 55.235-43.727Q55.235-43.622 55.141-43.598L52.692-43.598L52.692-43.528Q52.692-43.118 52.813-42.762Q52.934-42.407 53.206-42.190Q53.477-41.973 53.907-41.973Q54.270-41.973 54.567-42.202Q54.864-42.430 54.966-42.782Q54.973-42.829 55.059-42.844L55.141-42.844Q55.235-42.817 55.235-42.735Q55.235-42.727 55.227-42.696Q55.165-42.469 55.026-42.286Q54.887-42.102 54.696-41.969Q54.505-41.837 54.286-41.766Q54.067-41.696 53.829-41.696Q53.458-41.696 53.120-41.833Q52.782-41.969 52.514-42.221Q52.247-42.473 52.096-42.813Q51.946-43.153 51.946-43.528M52.700-43.837L54.661-43.837Q54.661-44.141 54.559-44.432Q54.458-44.723 54.241-44.905Q54.024-45.087 53.708-45.087Q53.407-45.087 53.176-44.899Q52.946-44.712 52.823-44.420Q52.700-44.129 52.700-43.837",[1838],[1822,10010,10011],{"transform":9998},[1834,10012],{"d":10013,"fill":1824,"stroke":1824,"className":10014,"style":2060},"M58.611-43.501Q58.611-43.997 58.861-44.422Q59.111-44.848 59.531-45.094Q59.951-45.340 60.451-45.340Q60.990-45.340 61.381-45.215Q61.771-45.090 61.771-44.676Q61.771-44.571 61.721-44.479Q61.670-44.387 61.578-44.337Q61.486-44.286 61.377-44.286Q61.271-44.286 61.180-44.337Q61.088-44.387 61.037-44.479Q60.986-44.571 60.986-44.676Q60.986-44.899 61.154-45.004Q60.932-45.063 60.459-45.063Q60.162-45.063 59.947-44.924Q59.732-44.786 59.601-44.555Q59.471-44.325 59.412-44.055Q59.353-43.786 59.353-43.501Q59.353-43.106 59.486-42.756Q59.619-42.407 59.891-42.190Q60.162-41.973 60.560-41.973Q60.935-41.973 61.211-42.190Q61.486-42.407 61.588-42.766Q61.603-42.829 61.666-42.829L61.771-42.829Q61.807-42.829 61.832-42.801Q61.857-42.774 61.857-42.735L61.857-42.712Q61.725-42.231 61.340-41.963Q60.955-41.696 60.451-41.696Q60.088-41.696 59.754-41.833Q59.420-41.969 59.160-42.219Q58.900-42.469 58.756-42.805Q58.611-43.141 58.611-43.501M62.443-42.606Q62.443-43.090 62.846-43.385Q63.248-43.680 63.799-43.799Q64.350-43.919 64.842-43.919L64.842-44.208Q64.842-44.434 64.726-44.641Q64.611-44.848 64.414-44.967Q64.217-45.087 63.986-45.087Q63.560-45.087 63.275-44.981Q63.346-44.954 63.392-44.899Q63.439-44.844 63.465-44.774Q63.490-44.704 63.490-44.629Q63.490-44.524 63.439-44.432Q63.389-44.340 63.297-44.290Q63.205-44.239 63.100-44.239Q62.994-44.239 62.902-44.290Q62.810-44.340 62.760-44.432Q62.709-44.524 62.709-44.629Q62.709-45.047 63.098-45.194Q63.486-45.340 63.986-45.340Q64.318-45.340 64.672-45.210Q65.025-45.079 65.254-44.825Q65.482-44.571 65.482-44.223L65.482-42.422Q65.482-42.290 65.555-42.180Q65.627-42.071 65.756-42.071Q65.881-42.071 65.949-42.176Q66.017-42.282 66.017-42.422L66.017-42.934L66.299-42.934L66.299-42.422Q66.299-42.219 66.182-42.061Q66.064-41.903 65.883-41.819Q65.701-41.735 65.498-41.735Q65.267-41.735 65.115-41.907Q64.963-42.079 64.932-42.309Q64.771-42.028 64.463-41.862Q64.154-41.696 63.803-41.696Q63.291-41.696 62.867-41.919Q62.443-42.141 62.443-42.606M63.131-42.606Q63.131-42.321 63.357-42.135Q63.584-41.950 63.877-41.950Q64.123-41.950 64.348-42.067Q64.572-42.184 64.707-42.387Q64.842-42.590 64.842-42.844L64.842-43.676Q64.576-43.676 64.291-43.622Q64.006-43.567 63.734-43.438Q63.463-43.309 63.297-43.102Q63.131-42.895 63.131-42.606M68.521-41.774L66.666-41.774L66.666-42.071Q66.939-42.071 67.107-42.118Q67.275-42.165 67.275-42.333L67.275-44.469Q67.275-44.684 67.213-44.780Q67.150-44.876 67.031-44.897Q66.912-44.919 66.666-44.919L66.666-45.215L67.857-45.301L67.857-44.567Q67.971-44.782 68.164-44.950Q68.357-45.118 68.596-45.210Q68.834-45.301 69.088-45.301Q70.256-45.301 70.256-44.223L70.256-42.333Q70.256-42.165 70.426-42.118Q70.596-42.071 70.865-42.071L70.865-41.774L69.010-41.774L69.010-42.071Q69.283-42.071 69.451-42.118Q69.619-42.165 69.619-42.333L69.619-44.208Q69.619-44.590 69.498-44.819Q69.377-45.047 69.025-45.047Q68.713-45.047 68.459-44.885Q68.205-44.723 68.059-44.454Q67.912-44.184 67.912-43.887L67.912-42.333Q67.912-42.165 68.082-42.118Q68.252-42.071 68.521-42.071",[1838],[1822,10016,10017],{"transform":9998},[1834,10018],{"d":10019,"fill":1824,"stroke":1824,"className":10020,"style":2060},"M76.081-41.774L74.225-41.774L74.225-42.071Q74.499-42.071 74.667-42.118Q74.835-42.165 74.835-42.333L74.835-44.469Q74.835-44.684 74.772-44.780Q74.710-44.876 74.591-44.897Q74.472-44.919 74.225-44.919L74.225-45.215L75.417-45.301L75.417-44.567Q75.530-44.782 75.724-44.950Q75.917-45.118 76.155-45.210Q76.393-45.301 76.647-45.301Q77.815-45.301 77.815-44.223L77.815-42.333Q77.815-42.165 77.985-42.118Q78.155-42.071 78.425-42.071L78.425-41.774L76.569-41.774L76.569-42.071Q76.843-42.071 77.011-42.118Q77.179-42.165 77.179-42.333L77.179-44.208Q77.179-44.590 77.058-44.819Q76.936-45.047 76.585-45.047Q76.272-45.047 76.018-44.885Q75.765-44.723 75.618-44.454Q75.472-44.184 75.472-43.887L75.472-42.333Q75.472-42.165 75.642-42.118Q75.811-42.071 76.081-42.071L76.081-41.774M78.870-43.528Q78.870-44.008 79.102-44.424Q79.335-44.840 79.745-45.090Q80.155-45.340 80.632-45.340Q81.362-45.340 81.761-44.899Q82.159-44.458 82.159-43.727Q82.159-43.622 82.065-43.598L79.616-43.598L79.616-43.528Q79.616-43.118 79.737-42.762Q79.858-42.407 80.130-42.190Q80.401-41.973 80.831-41.973Q81.194-41.973 81.491-42.202Q81.788-42.430 81.890-42.782Q81.897-42.829 81.983-42.844L82.065-42.844Q82.159-42.817 82.159-42.735Q82.159-42.727 82.151-42.696Q82.089-42.469 81.950-42.286Q81.811-42.102 81.620-41.969Q81.429-41.837 81.210-41.766Q80.991-41.696 80.753-41.696Q80.382-41.696 80.044-41.833Q79.706-41.969 79.438-42.221Q79.171-42.473 79.020-42.813Q78.870-43.153 78.870-43.528M79.624-43.837L81.585-43.837Q81.585-44.141 81.483-44.432Q81.382-44.723 81.165-44.905Q80.948-45.087 80.632-45.087Q80.331-45.087 80.100-44.899Q79.870-44.712 79.747-44.420Q79.624-44.129 79.624-43.837M84.448-41.805L83.225-44.661Q83.143-44.837 82.999-44.881Q82.854-44.926 82.585-44.926L82.585-45.223L84.296-45.223L84.296-44.926Q83.874-44.926 83.874-44.743Q83.874-44.708 83.890-44.661L84.835-42.469L85.675-44.446Q85.714-44.524 85.714-44.614Q85.714-44.754 85.608-44.840Q85.503-44.926 85.362-44.926L85.362-45.223L86.714-45.223L86.714-44.926Q86.190-44.926 85.975-44.446L84.850-41.805Q84.788-41.696 84.683-41.696L84.616-41.696Q84.503-41.696 84.448-41.805",[1838],[1822,10022,10023],{"transform":9998},[1834,10024],{"d":10025,"fill":1824,"stroke":1824,"className":10026,"style":2060},"M86.901-43.528Q86.901-44.008 87.134-44.424Q87.366-44.840 87.776-45.090Q88.186-45.340 88.663-45.340Q89.393-45.340 89.792-44.899Q90.190-44.458 90.190-43.727Q90.190-43.622 90.097-43.598L87.647-43.598L87.647-43.528Q87.647-43.118 87.768-42.762Q87.890-42.407 88.161-42.190Q88.433-41.973 88.862-41.973Q89.225-41.973 89.522-42.202Q89.819-42.430 89.921-42.782Q89.929-42.829 90.015-42.844L90.097-42.844Q90.190-42.817 90.190-42.735Q90.190-42.727 90.183-42.696Q90.120-42.469 89.981-42.286Q89.843-42.102 89.651-41.969Q89.460-41.837 89.241-41.766Q89.022-41.696 88.784-41.696Q88.413-41.696 88.075-41.833Q87.737-41.969 87.470-42.221Q87.202-42.473 87.052-42.813Q86.901-43.153 86.901-43.528M87.655-43.837L89.616-43.837Q89.616-44.141 89.515-44.432Q89.413-44.723 89.196-44.905Q88.979-45.087 88.663-45.087Q88.362-45.087 88.132-44.899Q87.901-44.712 87.778-44.420Q87.655-44.129 87.655-43.837M92.686-41.774L90.706-41.774L90.706-42.071Q90.975-42.071 91.143-42.116Q91.311-42.161 91.311-42.333L91.311-44.469Q91.311-44.684 91.249-44.780Q91.186-44.876 91.069-44.897Q90.952-44.919 90.706-44.919L90.706-45.215L91.874-45.301L91.874-44.516Q91.952-44.727 92.104-44.913Q92.257-45.098 92.456-45.200Q92.655-45.301 92.882-45.301Q93.128-45.301 93.319-45.157Q93.511-45.012 93.511-44.782Q93.511-44.626 93.405-44.516Q93.300-44.407 93.143-44.407Q92.987-44.407 92.878-44.516Q92.768-44.626 92.768-44.782Q92.768-44.942 92.874-45.047Q92.550-45.047 92.335-44.819Q92.120-44.590 92.024-44.251Q91.929-43.911 91.929-43.606L91.929-42.333Q91.929-42.165 92.155-42.118Q92.382-42.071 92.686-42.071",[1838],[1822,10028,10029],{"transform":9998},[1834,10030],{"d":10031,"fill":1824,"stroke":1824,"className":10032,"style":2060},"M21.396-32.282L21.396-33.504Q21.396-33.532 21.427-33.563Q21.459-33.594 21.482-33.594L21.588-33.594Q21.658-33.594 21.674-33.532Q21.736-33.212 21.875-32.971Q22.013-32.731 22.246-32.590Q22.478-32.450 22.787-32.450Q23.025-32.450 23.234-32.510Q23.443-32.571 23.580-32.719Q23.717-32.868 23.717-33.114Q23.717-33.368 23.506-33.534Q23.295-33.700 23.025-33.754L22.404-33.868Q21.998-33.946 21.697-34.202Q21.396-34.458 21.396-34.833Q21.396-35.200 21.597-35.422Q21.799-35.645 22.123-35.743Q22.447-35.840 22.787-35.840Q23.252-35.840 23.549-35.633L23.771-35.817Q23.795-35.840 23.826-35.840L23.877-35.840Q23.908-35.840 23.935-35.813Q23.963-35.786 23.963-35.754L23.963-34.770Q23.963-34.739 23.937-34.710Q23.912-34.680 23.877-34.680L23.771-34.680Q23.736-34.680 23.709-34.708Q23.681-34.735 23.681-34.770Q23.681-35.169 23.429-35.389Q23.177-35.610 22.779-35.610Q22.424-35.610 22.140-35.487Q21.857-35.364 21.857-35.059Q21.857-34.840 22.058-34.708Q22.260-34.575 22.506-34.532L23.131-34.419Q23.560-34.329 23.869-34.032Q24.177-33.735 24.177-33.321Q24.177-32.751 23.779-32.473Q23.381-32.196 22.787-32.196Q22.236-32.196 21.885-32.532L21.588-32.219Q21.564-32.196 21.529-32.196L21.482-32.196Q21.459-32.196 21.427-32.227Q21.396-32.258 21.396-32.282M28.924-30.723L27.068-30.723L27.068-31.016Q27.338-31.016 27.506-31.061Q27.674-31.106 27.674-31.282L27.674-32.731Q27.470-32.485 27.170-32.340Q26.869-32.196 26.537-32.196Q26.052-32.196 25.640-32.438Q25.228-32.680 24.988-33.092Q24.748-33.504 24.748-34.001Q24.748-34.497 25.004-34.911Q25.260-35.325 25.689-35.563Q26.119-35.801 26.611-35.801Q26.967-35.801 27.273-35.622Q27.580-35.442 27.771-35.129L28.060-35.801L28.314-35.801L28.314-31.282Q28.314-31.106 28.482-31.061Q28.650-31.016 28.924-31.016L28.924-30.723M26.595-32.450Q26.963-32.450 27.256-32.682Q27.549-32.915 27.697-33.274L27.697-34.610Q27.603-34.993 27.330-35.256Q27.056-35.520 26.681-35.520Q26.322-35.520 26.049-35.290Q25.775-35.059 25.633-34.702Q25.490-34.344 25.490-33.993Q25.490-33.657 25.615-33.295Q25.740-32.934 25.992-32.692Q26.244-32.450 26.595-32.450M29.869-33.227L29.869-34.969Q29.869-35.184 29.806-35.280Q29.744-35.376 29.625-35.397Q29.506-35.419 29.260-35.419L29.260-35.715L30.506-35.801L30.506-33.251L30.506-33.227Q30.506-32.915 30.560-32.753Q30.615-32.590 30.765-32.520Q30.916-32.450 31.236-32.450Q31.666-32.450 31.939-32.788Q32.213-33.126 32.213-33.571L32.213-34.969Q32.213-35.184 32.150-35.280Q32.088-35.376 31.969-35.397Q31.849-35.419 31.603-35.419L31.603-35.715L32.849-35.801L32.849-33.016Q32.849-32.805 32.912-32.710Q32.974-32.614 33.094-32.592Q33.213-32.571 33.459-32.571L33.459-32.274L32.236-32.196L32.236-32.817Q32.068-32.528 31.787-32.362Q31.506-32.196 31.185-32.196Q29.869-32.196 29.869-33.227M34.002-33.106Q34.002-33.590 34.404-33.885Q34.806-34.180 35.357-34.299Q35.908-34.419 36.400-34.419L36.400-34.708Q36.400-34.934 36.285-35.141Q36.170-35.348 35.972-35.467Q35.775-35.587 35.545-35.587Q35.119-35.587 34.834-35.481Q34.904-35.454 34.951-35.399Q34.998-35.344 35.023-35.274Q35.049-35.204 35.049-35.129Q35.049-35.024 34.998-34.932Q34.947-34.840 34.855-34.790Q34.763-34.739 34.658-34.739Q34.552-34.739 34.461-34.790Q34.369-34.840 34.318-34.932Q34.267-35.024 34.267-35.129Q34.267-35.547 34.656-35.694Q35.045-35.840 35.545-35.840Q35.877-35.840 36.230-35.710Q36.584-35.579 36.812-35.325Q37.041-35.071 37.041-34.723L37.041-32.922Q37.041-32.790 37.113-32.680Q37.185-32.571 37.314-32.571Q37.439-32.571 37.508-32.676Q37.576-32.782 37.576-32.922L37.576-33.434L37.857-33.434L37.857-32.922Q37.857-32.719 37.740-32.561Q37.623-32.403 37.441-32.319Q37.260-32.235 37.056-32.235Q36.826-32.235 36.674-32.407Q36.521-32.579 36.490-32.809Q36.330-32.528 36.021-32.362Q35.713-32.196 35.361-32.196Q34.849-32.196 34.426-32.419Q34.002-32.641 34.002-33.106M34.689-33.106Q34.689-32.821 34.916-32.635Q35.142-32.450 35.435-32.450Q35.681-32.450 35.906-32.567Q36.131-32.684 36.265-32.887Q36.400-33.090 36.400-33.344L36.400-34.176Q36.135-34.176 35.849-34.122Q35.564-34.067 35.293-33.938Q35.021-33.809 34.855-33.602Q34.689-33.395 34.689-33.106M40.158-32.274L38.177-32.274L38.177-32.571Q38.447-32.571 38.615-32.616Q38.783-32.661 38.783-32.833L38.783-34.969Q38.783-35.184 38.720-35.280Q38.658-35.376 38.541-35.397Q38.424-35.419 38.177-35.419L38.177-35.715L39.345-35.801L39.345-35.016Q39.424-35.227 39.576-35.413Q39.728-35.598 39.927-35.700Q40.127-35.801 40.353-35.801Q40.599-35.801 40.791-35.657Q40.982-35.512 40.982-35.282Q40.982-35.126 40.877-35.016Q40.771-34.907 40.615-34.907Q40.459-34.907 40.349-35.016Q40.240-35.126 40.240-35.282Q40.240-35.442 40.345-35.547Q40.021-35.547 39.806-35.319Q39.592-35.090 39.496-34.751Q39.400-34.411 39.400-34.106L39.400-32.833Q39.400-32.665 39.627-32.618Q39.853-32.571 40.158-32.571L40.158-32.274M41.463-34.028Q41.463-34.508 41.695-34.924Q41.927-35.340 42.338-35.590Q42.748-35.840 43.224-35.840Q43.955-35.840 44.353-35.399Q44.752-34.958 44.752-34.227Q44.752-34.122 44.658-34.098L42.209-34.098L42.209-34.028Q42.209-33.618 42.330-33.262Q42.451-32.907 42.722-32.690Q42.994-32.473 43.424-32.473Q43.787-32.473 44.084-32.702Q44.381-32.930 44.482-33.282Q44.490-33.329 44.576-33.344L44.658-33.344Q44.752-33.317 44.752-33.235Q44.752-33.227 44.744-33.196Q44.681-32.969 44.543-32.786Q44.404-32.602 44.213-32.469Q44.021-32.337 43.802-32.266Q43.584-32.196 43.345-32.196Q42.974-32.196 42.636-32.333Q42.299-32.469 42.031-32.721Q41.763-32.973 41.613-33.313Q41.463-33.653 41.463-34.028M42.217-34.337L44.177-34.337Q44.177-34.641 44.076-34.932Q43.974-35.223 43.758-35.405Q43.541-35.587 43.224-35.587Q42.924-35.587 42.693-35.399Q42.463-35.212 42.340-34.920Q42.217-34.629 42.217-34.337",[1838],[1822,10034,10035],{"transform":9998},[1834,10036],{"d":10037,"fill":1824,"stroke":1824,"className":10038,"style":2060},"M48.186-33.106Q48.186-33.590 48.588-33.885Q48.991-34.180 49.541-34.299Q50.092-34.419 50.584-34.419L50.584-34.708Q50.584-34.934 50.469-35.141Q50.354-35.348 50.157-35.467Q49.959-35.587 49.729-35.587Q49.303-35.587 49.018-35.481Q49.088-35.454 49.135-35.399Q49.182-35.344 49.207-35.274Q49.233-35.204 49.233-35.129Q49.233-35.024 49.182-34.932Q49.131-34.840 49.039-34.790Q48.948-34.739 48.842-34.739Q48.737-34.739 48.645-34.790Q48.553-34.840 48.502-34.932Q48.452-35.024 48.452-35.129Q48.452-35.547 48.840-35.694Q49.229-35.840 49.729-35.840Q50.061-35.840 50.414-35.710Q50.768-35.579 50.996-35.325Q51.225-35.071 51.225-34.723L51.225-32.922Q51.225-32.790 51.297-32.680Q51.370-32.571 51.498-32.571Q51.623-32.571 51.692-32.676Q51.760-32.782 51.760-32.922L51.760-33.434L52.041-33.434L52.041-32.922Q52.041-32.719 51.924-32.561Q51.807-32.403 51.625-32.319Q51.444-32.235 51.241-32.235Q51.010-32.235 50.858-32.407Q50.705-32.579 50.674-32.809Q50.514-32.528 50.205-32.362Q49.897-32.196 49.545-32.196Q49.034-32.196 48.610-32.419Q48.186-32.641 48.186-33.106M48.873-33.106Q48.873-32.821 49.100-32.635Q49.327-32.450 49.620-32.450Q49.866-32.450 50.090-32.567Q50.315-32.684 50.450-32.887Q50.584-33.090 50.584-33.344L50.584-34.176Q50.319-34.176 50.034-34.122Q49.748-34.067 49.477-33.938Q49.205-33.809 49.039-33.602Q48.873-33.395 48.873-33.106",[1838],[1822,10040,10041],{"transform":9998},[1834,10042],{"d":10043,"fill":1824,"stroke":1824,"className":10044,"style":2060},"M57.101-32.274L55.245-32.274L55.245-32.571Q55.519-32.571 55.687-32.618Q55.855-32.665 55.855-32.833L55.855-34.969Q55.855-35.184 55.792-35.280Q55.730-35.376 55.611-35.397Q55.492-35.419 55.245-35.419L55.245-35.715L56.437-35.801L56.437-35.067Q56.550-35.282 56.744-35.450Q56.937-35.618 57.175-35.710Q57.413-35.801 57.667-35.801Q58.835-35.801 58.835-34.723L58.835-32.833Q58.835-32.665 59.005-32.618Q59.175-32.571 59.445-32.571L59.445-32.274L57.589-32.274L57.589-32.571Q57.863-32.571 58.031-32.618Q58.199-32.665 58.199-32.833L58.199-34.708Q58.199-35.090 58.078-35.319Q57.956-35.547 57.605-35.547Q57.292-35.547 57.038-35.385Q56.785-35.223 56.638-34.954Q56.492-34.684 56.492-34.387L56.492-32.833Q56.492-32.665 56.662-32.618Q56.831-32.571 57.101-32.571L57.101-32.274M59.890-33.969Q59.890-34.473 60.146-34.905Q60.402-35.337 60.837-35.588Q61.273-35.840 61.773-35.840Q62.160-35.840 62.501-35.696Q62.843-35.551 63.105-35.290Q63.367-35.028 63.509-34.692Q63.652-34.356 63.652-33.969Q63.652-33.477 63.388-33.067Q63.124-32.657 62.695-32.426Q62.265-32.196 61.773-32.196Q61.281-32.196 60.847-32.428Q60.413-32.661 60.152-33.069Q59.890-33.477 59.890-33.969M61.773-32.473Q62.230-32.473 62.482-32.696Q62.734-32.919 62.822-33.270Q62.910-33.622 62.910-34.067Q62.910-34.497 62.816-34.835Q62.722-35.172 62.468-35.379Q62.214-35.587 61.773-35.587Q61.124-35.587 60.880-35.170Q60.636-34.754 60.636-34.067Q60.636-33.622 60.724-33.270Q60.812-32.919 61.064-32.696Q61.316-32.473 61.773-32.473M66.066-32.274L64.210-32.274L64.210-32.571Q64.484-32.571 64.652-32.618Q64.820-32.665 64.820-32.833L64.820-34.969Q64.820-35.184 64.757-35.280Q64.695-35.376 64.576-35.397Q64.456-35.419 64.210-35.419L64.210-35.715L65.402-35.801L65.402-35.067Q65.515-35.282 65.708-35.450Q65.902-35.618 66.140-35.710Q66.378-35.801 66.632-35.801Q67.800-35.801 67.800-34.723L67.800-32.833Q67.800-32.665 67.970-32.618Q68.140-32.571 68.410-32.571L68.410-32.274L66.554-32.274L66.554-32.571Q66.828-32.571 66.995-32.618Q67.163-32.665 67.163-32.833L67.163-34.708Q67.163-35.090 67.042-35.319Q66.921-35.547 66.570-35.547Q66.257-35.547 66.003-35.385Q65.749-35.223 65.603-34.954Q65.456-34.684 65.456-34.387L65.456-32.833Q65.456-32.665 65.626-32.618Q65.796-32.571 66.066-32.571L66.066-32.274M70.968-33.723L68.714-33.723L68.714-34.274L70.968-34.274",[1838],[1822,10046,10047],{"transform":9998},[1834,10048],{"d":10049,"fill":1824,"stroke":1824,"className":10050,"style":2060},"M77.422-32.153L72.109-32.153Q72.031-32.165 71.982-32.213Q71.934-32.262 71.934-32.337Q71.934-32.411 71.982-32.460Q72.031-32.508 72.109-32.520L74.582-32.520L74.582-34.801L72.109-34.801Q72.031-34.813 71.982-34.862Q71.934-34.911 71.934-34.985Q71.934-35.059 71.982-35.108Q72.031-35.157 72.109-35.169L74.582-35.169L74.582-37.649Q74.586-37.715 74.637-37.766Q74.688-37.817 74.766-37.817Q74.836-37.817 74.887-37.766Q74.938-37.715 74.949-37.649L74.949-35.169L77.422-35.169Q77.590-35.137 77.590-34.985Q77.590-34.833 77.422-34.801L74.949-34.801L74.949-32.520L77.422-32.520Q77.590-32.489 77.590-32.337Q77.590-32.184 77.422-32.153",[1838],[1822,10052,10053],{"transform":9998},[1834,10054],{"d":10055,"fill":1824,"stroke":1824,"className":10056,"style":2060},"M81.666-32.274L78.873-32.274L78.873-32.571Q79.935-32.571 79.935-32.833L79.935-37.001Q79.506-36.786 78.826-36.786L78.826-37.083Q79.845-37.083 80.361-37.594L80.506-37.594Q80.580-37.575 80.599-37.497L80.599-32.833Q80.599-32.571 81.666-32.571",[1838],[1822,10058,10059],{"transform":9998},[1834,10060],{"d":10061,"fill":1824,"stroke":1824,"className":10062,"style":2060},"M86.019-33.235L86.019-35.426L85.316-35.426L85.316-35.680Q85.672-35.680 85.914-35.913Q86.156-36.145 86.267-36.493Q86.379-36.840 86.379-37.196L86.660-37.196L86.660-35.723L87.836-35.723L87.836-35.426L86.660-35.426L86.660-33.251Q86.660-32.930 86.779-32.702Q86.898-32.473 87.179-32.473Q87.359-32.473 87.476-32.596Q87.594-32.719 87.646-32.899Q87.699-33.079 87.699-33.251L87.699-33.723L87.980-33.723L87.980-33.235Q87.980-32.981 87.875-32.741Q87.769-32.501 87.572-32.348Q87.375-32.196 87.117-32.196Q86.801-32.196 86.549-32.319Q86.297-32.442 86.158-32.676Q86.019-32.911 86.019-33.235M88.699-33.969Q88.699-34.473 88.955-34.905Q89.211-35.337 89.646-35.588Q90.082-35.840 90.582-35.840Q90.969-35.840 91.310-35.696Q91.652-35.551 91.914-35.290Q92.176-35.028 92.318-34.692Q92.461-34.356 92.461-33.969Q92.461-33.477 92.197-33.067Q91.933-32.657 91.504-32.426Q91.074-32.196 90.582-32.196Q90.090-32.196 89.656-32.428Q89.222-32.661 88.961-33.069Q88.699-33.477 88.699-33.969M90.582-32.473Q91.039-32.473 91.291-32.696Q91.543-32.919 91.631-33.270Q91.719-33.622 91.719-34.067Q91.719-34.497 91.625-34.835Q91.531-35.172 91.277-35.379Q91.023-35.587 90.582-35.587Q89.933-35.587 89.689-35.170Q89.445-34.754 89.445-34.067Q89.445-33.622 89.533-33.270Q89.621-32.919 89.873-32.696Q90.125-32.473 90.582-32.473",[1838],[1822,10064,10065],{"transform":9998},[1834,10066],{"d":10067,"fill":1824,"stroke":1824,"className":10068,"style":2060},"M99.139-32.274L96.346-32.274L96.346-32.571Q97.408-32.571 97.408-32.833L97.408-37.001Q96.979-36.786 96.299-36.786L96.299-37.083Q97.318-37.083 97.834-37.594L97.979-37.594Q98.053-37.575 98.072-37.497L98.072-32.833Q98.072-32.571 99.139-32.571",[1838],[2181,10070,10072,10073,10088],{"className":10071},[2184],"A nontrivial square root of ",[390,10074,10076],{"className":10075},[393],[390,10077,10079],{"className":10078,"ariaHidden":398},[397],[390,10080,10082,10085],{"className":10081},[402],[390,10083],{"className":10084,"style":1803},[406],[390,10086,1000],{"className":10087},[411]," in the chain betrays a composite",[2511,10090,10092],{"className":2513,"code":10091,"language":2515,"meta":376,"style":376},"caption: $\\textsc{Miller-Rabin}(n, a)$ — true if $a$ fails to witness compositeness\nwrite $n - 1 = 2^{s} d$ with $d$ odd\n$x \\gets \\textsc{ModPow}(a, d, n)$\nif $x = 1$ or $x = n - 1$ then return true   \u002F\u002F probably prime\nrepeat $s - 1$ times\n  $x \\gets (x \\cdot x) \\bmod n$\n  if $x = n - 1$ then return true            \u002F\u002F hit $-1$\nreturn false                                  \u002F\u002F nontrivial $\\sqrt 1$ ⇒ composite\n",[2517,10093,10094,10099,10104,10109,10114,10119,10124,10129],{"__ignoreMap":376},[390,10095,10096],{"class":2521,"line":6},[390,10097,10098],{},"caption: $\\textsc{Miller-Rabin}(n, a)$ — true if $a$ fails to witness compositeness\n",[390,10100,10101],{"class":2521,"line":18},[390,10102,10103],{},"write $n - 1 = 2^{s} d$ with $d$ odd\n",[390,10105,10106],{"class":2521,"line":24},[390,10107,10108],{},"$x \\gets \\textsc{ModPow}(a, d, n)$\n",[390,10110,10111],{"class":2521,"line":73},[390,10112,10113],{},"if $x = 1$ or $x = n - 1$ then return true   \u002F\u002F probably prime\n",[390,10115,10116],{"class":2521,"line":102},[390,10117,10118],{},"repeat $s - 1$ times\n",[390,10120,10121],{"class":2521,"line":108},[390,10122,10123],{},"  $x \\gets (x \\cdot x) \\bmod n$\n",[390,10125,10126],{"class":2521,"line":116},[390,10127,10128],{},"  if $x = n - 1$ then return true            \u002F\u002F hit $-1$\n",[390,10130,10131],{"class":2521,"line":196},[390,10132,10133],{},"return false                                  \u002F\u002F nontrivial $\\sqrt 1$ ⇒ composite\n",[381,10135,10136,10137,10140,10141,10156,10157,10172,10173,10190,10191,10193,10194,10241,10242,10245,10246,10249,10250,10376,10377,10463,10464,10485,10486],{},"With ",[471,10138,10139],{},"random witnesses",", each composite ",[390,10142,10144],{"className":10143},[393],[390,10145,10147],{"className":10146,"ariaHidden":398},[397],[390,10148,10150,10153],{"className":10149},[402],[390,10151],{"className":10152,"style":487},[406],[390,10154,507],{"className":10155},[411,453]," is exposed by at least three quarters of\nthe possible ",[390,10158,10160],{"className":10159},[393],[390,10161,10163],{"className":10162,"ariaHidden":398},[397],[390,10164,10166,10169],{"className":10165},[402],[390,10167],{"className":10168,"style":487},[406],[390,10170,385],{"className":10171},[411,453],", so ",[390,10174,10176],{"className":10175},[393],[390,10177,10179],{"className":10178,"ariaHidden":398},[397],[390,10180,10182,10185],{"className":10181},[402],[390,10183],{"className":10184,"style":537},[406],[390,10186,10189],{"className":10187,"style":10188},[411,453],"margin-right:0.0315em;","k"," independent rounds leave a false-:q",[390,10192,6249],{}," probability below\n",[390,10195,10197],{"className":10196},[393],[390,10198,10200],{"className":10199,"ariaHidden":398},[397],[390,10201,10203,10206],{"className":10202},[402],[390,10204],{"className":10205,"style":8794},[406],[390,10207,10209,10212],{"className":10208},[411],[390,10210,2680],{"className":10211},[411],[390,10213,10215],{"className":10214},[420],[390,10216,10218],{"className":10217},[424],[390,10219,10221],{"className":10220},[429],[390,10222,10224],{"className":10223,"style":8794},[433],[390,10225,10226,10229],{"style":559},[390,10227],{"className":10228,"style":442},[441],[390,10230,10232],{"className":10231},[446,447,448,449],[390,10233,10235,10238],{"className":10234},[411,449],[390,10236,5136],{"className":10237},[411,449],[390,10239,10189],{"className":10240,"style":10188},[411,453,449],", and crucially, Carmichael numbers are ",[5231,10243,10244],{},"not"," immune, because the square-root\ntest sees structure the Fermat test cannot. Better still, the test can be made\n",[471,10247,10248],{},"deterministic"," for bounded inputs: there is a fixed small set of bases that never\nerrs below a threshold. Testing against the first twelve primes\n",[390,10251,10253],{"className":10252},[393],[390,10254,10256],{"className":10255,"ariaHidden":398},[397],[390,10257,10259,10262,10265,10268,10271,10274,10277,10280,10283,10287,10290,10293,10296,10299,10302,10305,10308,10311,10314,10317,10320,10323,10326,10329,10333,10336,10339,10343,10346,10349,10353,10356,10359,10363,10366,10369,10373],{"className":10258},[402],[390,10260],{"className":10261,"style":650},[406],[390,10263,984],{"className":10264},[658],[390,10266,886],{"className":10267},[411],[390,10269,993],{"className":10270},[992],[390,10272],{"className":10273,"style":717},[572],[390,10275,2586],{"className":10276},[411],[390,10278,993],{"className":10279},[992],[390,10281],{"className":10282,"style":717},[572],[390,10284,10286],{"className":10285},[411],"5",[390,10288,993],{"className":10289},[992],[390,10291],{"className":10292,"style":717},[572],[390,10294,2644],{"className":10295},[411],[390,10297,993],{"className":10298},[992],[390,10300],{"className":10301,"style":717},[572],[390,10303,7672],{"className":10304},[411],[390,10306,993],{"className":10307},[992],[390,10309],{"className":10310,"style":717},[572],[390,10312,2613],{"className":10313},[411],[390,10315,993],{"className":10316},[992],[390,10318],{"className":10319,"style":717},[572],[390,10321,7691],{"className":10322},[411],[390,10324,993],{"className":10325},[992],[390,10327],{"className":10328,"style":717},[572],[390,10330,10332],{"className":10331},[411],"19",[390,10334,993],{"className":10335},[992],[390,10337],{"className":10338,"style":717},[572],[390,10340,10342],{"className":10341},[411],"23",[390,10344,993],{"className":10345},[992],[390,10347],{"className":10348,"style":717},[572],[390,10350,10352],{"className":10351},[411],"29",[390,10354,993],{"className":10355},[992],[390,10357],{"className":10358,"style":717},[572],[390,10360,10362],{"className":10361},[411],"31",[390,10364,993],{"className":10365},[992],[390,10367],{"className":10368,"style":717},[572],[390,10370,10372],{"className":10371},[411],"37",[390,10374,1004],{"className":10375},[666]," is a proven-correct deterministic primality test\nfor all ",[390,10378,10380],{"className":10379},[393],[390,10381,10383,10401,10421],{"className":10382,"ariaHidden":398},[397],[390,10384,10386,10389,10392,10395,10398],{"className":10385},[402],[390,10387],{"className":10388,"style":9563},[406],[390,10390,507],{"className":10391},[411,453],[390,10393],{"className":10394,"style":771},[572],[390,10396,9573],{"className":10397},[775],[390,10399],{"className":10400,"style":771},[572],[390,10402,10404,10407,10411,10414,10418],{"className":10403},[402],[390,10405],{"className":10406,"style":8023},[406],[390,10408,10410],{"className":10409},[411],"3.3",[390,10412],{"className":10413,"style":577},[572],[390,10415,10417],{"className":10416},[581],"×",[390,10419],{"className":10420,"style":577},[572],[390,10422,10424,10427,10430],{"className":10423},[402],[390,10425],{"className":10426,"style":2480},[406],[390,10428,1000],{"className":10429},[411],[390,10431,10433,10436],{"className":10432},[411],[390,10434,988],{"className":10435},[411],[390,10437,10439],{"className":10438},[420],[390,10440,10442],{"className":10441},[424],[390,10443,10445],{"className":10444},[429],[390,10446,10448],{"className":10447,"style":2480},[433],[390,10449,10450,10453],{"style":559},[390,10451],{"className":10452,"style":442},[441],[390,10454,10456],{"className":10455},[446,447,448,449],[390,10457,10459],{"className":10458},[411,449],[390,10460,10462],{"className":10461},[411,449],"24",", covering every 64-bit (indeed every 80-bit) integer\nwith a dozen ",[390,10465,10467],{"className":10466},[393],[390,10468,10470],{"className":10469,"ariaHidden":398},[397],[390,10471,10473,10476],{"className":10472},[402],[390,10474],{"className":10475,"style":537},[406],[390,10477,10479],{"className":10478},[3066,3067],[390,10480,10482],{"className":10481},[411,3071],[390,10483,3075],{"className":10484},[411]," calls.",[2443,10487,10488],{},[385,10489,2680],{"href":10490,"ariaDescribedBy":10491,"dataFootnoteRef":376,"id":10492},"#user-content-fn-skiena-mr",[2449],"user-content-fnref-skiena-mr",[4548,10494,10496],{"type":10495},"note",[381,10497,10498,10501,10502,10505,10506,10574,10575,10590,10591,10609],{},[471,10499,10500],{},"Intuition."," The Fermat test checks only the ",[5231,10503,10504],{},"last"," link of the chain (",[390,10507,10509],{"className":10508},[393],[390,10510,10512,10565],{"className":10511,"ariaHidden":398},[397],[390,10513,10515,10518,10556,10559,10562],{"className":10514},[402],[390,10516],{"className":10517,"style":2480},[406],[390,10519,10521,10524],{"className":10520},[411],[390,10522,385],{"className":10523},[411,453],[390,10525,10527],{"className":10526},[420],[390,10528,10530],{"className":10529},[424],[390,10531,10533],{"className":10532},[429],[390,10534,10536],{"className":10535,"style":2480},[433],[390,10537,10538,10541],{"style":559},[390,10539],{"className":10540,"style":442},[441],[390,10542,10544],{"className":10543},[446,447,448,449],[390,10545,10547,10550,10553],{"className":10546},[411,449],[390,10548,507],{"className":10549},[411,453,449],[390,10551,5136],{"className":10552},[581,449],[390,10554,1000],{"className":10555},[411,449],[390,10557],{"className":10558,"style":771},[572],[390,10560,776],{"className":10561},[775],[390,10563],{"className":10564,"style":771},[572],[390,10566,10568,10571],{"className":10567},[402],[390,10569],{"className":10570,"style":1803},[406],[390,10572,1000],{"className":10573},[411],");\nMiller–Rabin watches the whole chain collapse to ",[390,10576,10578],{"className":10577},[393],[390,10579,10581],{"className":10580,"ariaHidden":398},[397],[390,10582,10584,10587],{"className":10583},[402],[390,10585],{"className":10586,"style":1803},[406],[390,10588,1000],{"className":10589},[411]," and demands it pass through ",[390,10592,10594],{"className":10593},[393],[390,10595,10597],{"className":10596,"ariaHidden":398},[397],[390,10598,10600,10603,10606],{"className":10599},[402],[390,10601],{"className":10602,"style":8023},[406],[390,10604,5136],{"className":10605},[411],[390,10607,1000],{"className":10608},[411],".\nThat extra check is exactly what catches Carmichael numbers.",[381,10611,10612,10613,7311,10616,10631,10632,10637,10638,10641,10642,10697,10698,10809,10810,10813],{},"Miller–Rabin decides ",[5231,10614,10615],{},"whether",[390,10617,10619],{"className":10618},[393],[390,10620,10622],{"className":10621,"ariaHidden":398},[397],[390,10623,10625,10628],{"className":10624},[402],[390,10626],{"className":10627,"style":487},[406],[390,10629,507],{"className":10630},[411,453]," is prime but never produces a factor. ",[385,10633,10634],{"href":323},[471,10635,10636],{},"Factoring"," a\nlarge composite is a separate, much harder problem; ",[471,10639,10640],{},"Pollard's rho"," finds a nontrivial\nfactor in expected ",[390,10643,10645],{"className":10644},[393],[390,10646,10648],{"className":10647,"ariaHidden":398},[397],[390,10649,10651,10655,10658,10661,10694],{"className":10650},[402],[390,10652],{"className":10653,"style":10654},[406],"height:1.138em;vertical-align:-0.25em;",[390,10656,701],{"className":10657,"style":700},[411,453],[390,10659,659],{"className":10660},[658],[390,10662,10664,10667],{"className":10663},[411],[390,10665,507],{"className":10666},[411,453],[390,10668,10670],{"className":10669},[420],[390,10671,10673],{"className":10672},[424],[390,10674,10676],{"className":10675},[429],[390,10677,10679],{"className":10678,"style":3411},[433],[390,10680,10681,10684],{"style":559},[390,10682],{"className":10683,"style":442},[441],[390,10685,10687],{"className":10686},[446,447,448,449],[390,10688,10690],{"className":10689},[411,449],[390,10691,10693],{"className":10692},[411,449],"1\u002F4",[390,10695,667],{"className":10696},[666]," time using a cycle-detection trick on ",[390,10699,10701],{"className":10700},[393],[390,10702,10704,10725,10769,10800],{"className":10703,"ariaHidden":398},[397],[390,10705,10707,10711,10715,10718,10722],{"className":10706},[402],[390,10708],{"className":10709,"style":10710},[406],"height:0.522em;vertical-align:-0.011em;",[390,10712,10714],{"className":10713},[411,453],"x",[390,10716],{"className":10717,"style":771},[572],[390,10719,10721],{"className":10720},[775],"↦",[390,10723],{"className":10724,"style":771},[572],[390,10726,10728,10731,10760,10763,10766],{"className":10727},[402],[390,10729],{"className":10730,"style":6263},[406],[390,10732,10734,10737],{"className":10733},[411],[390,10735,10714],{"className":10736},[411,453],[390,10738,10740],{"className":10739},[420],[390,10741,10743],{"className":10742},[424],[390,10744,10746],{"className":10745},[429],[390,10747,10749],{"className":10748,"style":2480},[433],[390,10750,10751,10754],{"style":559},[390,10752],{"className":10753,"style":442},[441],[390,10755,10757],{"className":10756},[446,447,448,449],[390,10758,886],{"className":10759},[411,449],[390,10761],{"className":10762,"style":577},[572],[390,10764,1584],{"className":10765},[581],[390,10767],{"className":10768,"style":577},[572],[390,10770,10772,10775,10779,10782,10785,10794,10797],{"className":10771},[402],[390,10773],{"className":10774,"style":537},[406],[390,10776,10778],{"className":10777},[411,453],"c",[390,10780],{"className":10781,"style":573},[572],[390,10783],{"className":10784,"style":577},[572],[390,10786,10788],{"className":10787},[581],[390,10789,10791],{"className":10790},[411],[390,10792,589],{"className":10793},[411,588],[390,10795],{"className":10796,"style":573},[572],[390,10798],{"className":10799,"style":577},[572],[390,10801,10803,10806],{"className":10802},[402],[390,10804],{"className":10805,"style":487},[406],[390,10807,507],{"className":10808},[411,453],", and is the standard tool for splitting numbers too big for trial division. (The\nnext lesson handles factoring ",[5231,10811,10812],{},"small"," numbers wholesale with a sieve.)",[730,10815,10817],{"id":10816},"why-this-matters-cryptography","Why this matters: cryptography",[381,10819,10820,10821,10824,10825,5938,10918,10921,10922,10994,10995,10998,10999,11014,11015,11036,11037,1413],{},"These two ingredients, fast modular exponentiation and fast primality testing, are the\nbeating heart of public-key cryptography. ",[471,10822,10823],{},"RSA"," picks two large random primes (found by\nMiller–Rabin), and both encryption and decryption are a single modular exponentiation\n",[390,10826,10828],{"className":10827},[393],[390,10829,10831,10849,10906],{"className":10830,"ariaHidden":398},[397],[390,10832,10834,10837,10840,10843,10846],{"className":10833},[402],[390,10835],{"className":10836,"style":10710},[406],[390,10838,454],{"className":10839},[411,453],[390,10841],{"className":10842,"style":771},[572],[390,10844,10721],{"className":10845},[775],[390,10847],{"className":10848,"style":771},[572],[390,10850,10852,10855,10885,10888,10891,10900,10903],{"className":10851},[402],[390,10853],{"className":10854,"style":537},[406],[390,10856,10858,10861],{"className":10857},[411],[390,10859,454],{"className":10860},[411,453],[390,10862,10864],{"className":10863},[420],[390,10865,10867],{"className":10866},[424],[390,10868,10870],{"className":10869},[429],[390,10871,10873],{"className":10872,"style":556},[433],[390,10874,10875,10878],{"style":559},[390,10876],{"className":10877,"style":442},[441],[390,10879,10881],{"className":10880},[446,447,448,449],[390,10882,10884],{"className":10883},[411,453,449],"e",[390,10886],{"className":10887,"style":573},[572],[390,10889],{"className":10890,"style":577},[572],[390,10892,10894],{"className":10893},[581],[390,10895,10897],{"className":10896},[411],[390,10898,589],{"className":10899},[411,588],[390,10901],{"className":10902,"style":573},[572],[390,10904],{"className":10905,"style":577},[572],[390,10907,10909,10913],{"className":10908},[402],[390,10910],{"className":10911,"style":10912},[406],"height:0.6833em;",[390,10914,10917],{"className":10915,"style":10916},[411,453],"margin-right:0.109em;","N",[471,10919,10920],{},"Diffie–Hellman"," key exchange computes ",[390,10923,10925],{"className":10924},[393],[390,10926,10928,10985],{"className":10927,"ariaHidden":398},[397],[390,10929,10931,10934,10964,10967,10970,10979,10982],{"className":10930},[402],[390,10932],{"className":10933,"style":7399},[406],[390,10935,10937,10941],{"className":10936},[411],[390,10938,1822],{"className":10939,"style":10940},[411,453],"margin-right:0.0359em;",[390,10942,10944],{"className":10943},[420],[390,10945,10947],{"className":10946},[424],[390,10948,10950],{"className":10949},[429],[390,10951,10953],{"className":10952,"style":556},[433],[390,10954,10955,10958],{"style":559},[390,10956],{"className":10957,"style":442},[441],[390,10959,10961],{"className":10960},[446,447,448,449],[390,10962,10714],{"className":10963},[411,453,449],[390,10965],{"className":10966,"style":573},[572],[390,10968],{"className":10969,"style":577},[572],[390,10971,10973],{"className":10972},[581],[390,10974,10976],{"className":10975},[411],[390,10977,589],{"className":10978},[411,588],[390,10980],{"className":10981,"style":573},[572],[390,10983],{"className":10984,"style":577},[572],[390,10986,10988,10991],{"className":10987},[402],[390,10989],{"className":10990,"style":5259},[406],[390,10992,381],{"className":10993},[411,453]," the same\nway. In every case the security rests on a power being easy to compute but its\n",[5231,10996,10997],{},"inverse"," (factoring ",[390,11000,11002],{"className":11001},[393],[390,11003,11005],{"className":11004,"ariaHidden":398},[397],[390,11006,11008,11011],{"className":11007},[402],[390,11009],{"className":11010,"style":10912},[406],[390,11012,10917],{"className":11013,"style":10916},[411,453],", or the discrete logarithm) being infeasible, and\n",[390,11016,11018],{"className":11017},[393],[390,11019,11021],{"className":11020,"ariaHidden":398},[397],[390,11022,11024,11027],{"className":11023},[402],[390,11025],{"className":11026,"style":537},[406],[390,11028,11030],{"className":11029},[3066,3067],[390,11031,11033],{"className":11032},[411,3071],[390,11034,3075],{"className":11035},[411]," is what makes the easy direction ",[390,11038,11040],{"className":11039},[393],[390,11041,11043],{"className":11042,"ariaHidden":398},[397],[390,11044,11046,11049,11052,11055,11061,11064,11067],{"className":11045},[402],[390,11047],{"className":11048,"style":650},[406],[390,11050,701],{"className":11051,"style":700},[411,453],[390,11053,659],{"className":11054},[658],[390,11056,11058],{"className":11057},[708],[390,11059,713],{"className":11060,"style":712},[411,588],[390,11062],{"className":11063,"style":717},[572],[390,11065,507],{"className":11066},[411,453],[390,11068,667],{"className":11069},[666],[730,11071,11073],{"id":11072},"takeaways","Takeaways",[11075,11076,11077,11303,11601,11729,11740,12004],"ul",{},[11078,11079,11080,11083,11084,5188,11155,11188,11189,11191,11192,11207,11208,11223,11224,11239,11240,11243,11244,11265,11266,7311,11299,11302],"li",{},[471,11081,11082],{},"Binary exponentiation"," computes ",[390,11085,11087],{"className":11086},[393],[390,11088,11090,11146],{"className":11089,"ariaHidden":398},[397],[390,11091,11093,11096,11125,11128,11131,11140,11143],{"className":11092},[402],[390,11094],{"className":11095,"style":537},[406],[390,11097,11099,11102],{"className":11098},[411],[390,11100,385],{"className":11101},[411,453],[390,11103,11105],{"className":11104},[420],[390,11106,11108],{"className":11107},[424],[390,11109,11111],{"className":11110},[429],[390,11112,11114],{"className":11113,"style":556},[433],[390,11115,11116,11119],{"style":559},[390,11117],{"className":11118,"style":442},[441],[390,11120,11122],{"className":11121},[446,447,448,449],[390,11123,507],{"className":11124},[411,453,449],[390,11126],{"className":11127,"style":573},[572],[390,11129],{"className":11130,"style":577},[572],[390,11132,11134],{"className":11133},[581],[390,11135,11137],{"className":11136},[411],[390,11138,589],{"className":11139},[411,588],[390,11141],{"className":11142,"style":573},[572],[390,11144],{"className":11145,"style":577},[572],[390,11147,11149,11152],{"className":11148},[402],[390,11150],{"className":11151,"style":487},[406],[390,11153,454],{"className":11154},[411,453],[390,11156,11158],{"className":11157},[393],[390,11159,11161],{"className":11160,"ariaHidden":398},[397],[390,11162,11164,11167,11170,11173,11179,11182,11185],{"className":11163},[402],[390,11165],{"className":11166,"style":650},[406],[390,11168,701],{"className":11169,"style":700},[411,453],[390,11171,659],{"className":11172},[658],[390,11174,11176],{"className":11175},[708],[390,11177,713],{"className":11178,"style":712},[411,588],[390,11180],{"className":11181,"style":717},[572],[390,11183,507],{"className":11184},[411,453],[390,11186,667],{"className":11187},[666]," multiplications by\n",[471,11190,727],{},", reading the bits of ",[390,11193,11195],{"className":11194},[393],[390,11196,11198],{"className":11197,"ariaHidden":398},[397],[390,11199,11201,11204],{"className":11200},[402],[390,11202],{"className":11203,"style":487},[406],[390,11205,507],{"className":11206},[411,453]," and multiplying in each square whose bit\nis ",[390,11209,11211],{"className":11210},[393],[390,11212,11214],{"className":11213,"ariaHidden":398},[397],[390,11215,11217,11220],{"className":11216},[402],[390,11218],{"className":11219,"style":1803},[406],[390,11221,1000],{"className":11222},[411],"; reduce mod ",[390,11225,11227],{"className":11226},[393],[390,11228,11230],{"className":11229,"ariaHidden":398},[397],[390,11231,11233,11236],{"className":11232},[402],[390,11234],{"className":11235,"style":487},[406],[390,11237,454],{"className":11238},[411,453]," every step, and guard against ",[471,11241,11242],{},"overflow"," with 128-bit or\n",[390,11245,11247],{"className":11246},[393],[390,11248,11250],{"className":11249,"ariaHidden":398},[397],[390,11251,11253,11256],{"className":11252},[402],[390,11254],{"className":11255,"style":537},[406],[390,11257,11259],{"className":11258},[3066,3067],[390,11260,11262],{"className":11261},[411,3071],[390,11263,4654],{"className":11264},[411]," arithmetic. The same doubling gives ",[390,11267,11269],{"className":11268},[393],[390,11270,11272],{"className":11271,"ariaHidden":398},[397],[390,11273,11275,11278,11281,11284,11290,11293,11296],{"className":11274},[402],[390,11276],{"className":11277,"style":650},[406],[390,11279,701],{"className":11280,"style":700},[411,453],[390,11282,659],{"className":11283},[658],[390,11285,11287],{"className":11286},[708],[390,11288,713],{"className":11289,"style":712},[411,588],[390,11291],{"className":11292,"style":717},[572],[390,11294,507],{"className":11295},[411,453],[390,11297,667],{"className":11298},[666],[471,11300,11301],{},"Fibonacci"," via\nmatrix powers.",[11078,11304,11305,11307,11308,11409,11410,11510,11511,11513,11514,11585,11586,1413],{},[471,11306,5226],{}," (",[390,11309,11311],{"className":11310},[393],[390,11312,11314,11367,11382],{"className":11313,"ariaHidden":398},[397],[390,11315,11317,11320,11358,11361,11364],{"className":11316},[402],[390,11318],{"className":11319,"style":2480},[406],[390,11321,11323,11326],{"className":11322},[411],[390,11324,385],{"className":11325},[411,453],[390,11327,11329],{"className":11328},[420],[390,11330,11332],{"className":11331},[424],[390,11333,11335],{"className":11334},[429],[390,11336,11338],{"className":11337,"style":2480},[433],[390,11339,11340,11343],{"style":559},[390,11341],{"className":11342,"style":442},[441],[390,11344,11346],{"className":11345},[446,447,448,449],[390,11347,11349,11352,11355],{"className":11348},[411,449],[390,11350,381],{"className":11351},[411,453,449],[390,11353,5136],{"className":11354},[581,449],[390,11356,1000],{"className":11357},[411,449],[390,11359],{"className":11360,"style":771},[572],[390,11362,5376],{"className":11363},[775],[390,11365],{"className":11366,"style":771},[572],[390,11368,11370,11373,11376,11379],{"className":11369},[402],[390,11371],{"className":11372,"style":1803},[406],[390,11374,1000],{"className":11375},[411],[390,11377],{"className":11378},[572,5392],[390,11380],{"className":11381,"style":5396},[572],[390,11383,11385,11388,11391,11400,11403,11406],{"className":11384},[402],[390,11386],{"className":11387,"style":650},[406],[390,11389,659],{"className":11390},[658],[390,11392,11394],{"className":11393},[411],[390,11395,11397],{"className":11396},[411],[390,11398,589],{"className":11399},[411,588],[390,11401],{"className":11402,"style":5418},[572],[390,11404,381],{"className":11405},[411,453],[390,11407,667],{"className":11408},[666],") gives the modular inverse\n",[390,11411,11413],{"className":11412},[393],[390,11414,11416,11466],{"className":11415,"ariaHidden":398},[397],[390,11417,11419,11422,11457,11460,11463],{"className":11418},[402],[390,11420],{"className":11421,"style":2480},[406],[390,11423,11425,11428],{"className":11424},[411],[390,11426,385],{"className":11427},[411,453],[390,11429,11431],{"className":11430},[420],[390,11432,11434],{"className":11433},[424],[390,11435,11437],{"className":11436},[429],[390,11438,11440],{"className":11439,"style":2480},[433],[390,11441,11442,11445],{"style":559},[390,11443],{"className":11444,"style":442},[441],[390,11446,11448],{"className":11447},[446,447,448,449],[390,11449,11451,11454],{"className":11450},[411,449],[390,11452,5136],{"className":11453},[411,449],[390,11455,1000],{"className":11456},[411,449],[390,11458],{"className":11459,"style":771},[572],[390,11461,5376],{"className":11462},[775],[390,11464],{"className":11465,"style":771},[572],[390,11467,11469,11472],{"className":11468},[402],[390,11470],{"className":11471,"style":2480},[406],[390,11473,11475,11478],{"className":11474},[411],[390,11476,385],{"className":11477},[411,453],[390,11479,11481],{"className":11480},[420],[390,11482,11484],{"className":11483},[424],[390,11485,11487],{"className":11486},[429],[390,11488,11490],{"className":11489,"style":2480},[433],[390,11491,11492,11495],{"style":559},[390,11493],{"className":11494,"style":442},[441],[390,11496,11498],{"className":11497},[446,447,448,449],[390,11499,11501,11504,11507],{"className":11500},[411,449],[390,11502,381],{"className":11503},[411,453,449],[390,11505,5136],{"className":11506},[581,449],[390,11508,886],{"className":11509},[411,449]," for a prime modulus; ",[471,11512,6324],{}," generalizes it to\n",[390,11515,11517],{"className":11516},[393],[390,11518,11520,11576],{"className":11519,"ariaHidden":398},[397],[390,11521,11523,11526,11567,11570,11573],{"className":11522},[402],[390,11524],{"className":11525,"style":3411},[406],[390,11527,11529,11532],{"className":11528},[411],[390,11530,385],{"className":11531},[411,453],[390,11533,11535],{"className":11534},[420],[390,11536,11538],{"className":11537},[424],[390,11539,11541],{"className":11540},[429],[390,11542,11544],{"className":11543,"style":3411},[433],[390,11545,11546,11549],{"style":559},[390,11547],{"className":11548,"style":442},[441],[390,11550,11552],{"className":11551},[446,447,448,449],[390,11553,11555,11558,11561,11564],{"className":11554},[411,449],[390,11556,6425],{"className":11557},[411,453,449],[390,11559,659],{"className":11560},[658,449],[390,11562,454],{"className":11563},[411,453,449],[390,11565,667],{"className":11566},[666,449],[390,11568],{"className":11569,"style":771},[572],[390,11571,5376],{"className":11572},[775],[390,11574],{"className":11575,"style":771},[572],[390,11577,11579,11582],{"className":11578},[402],[390,11580],{"className":11581,"style":1803},[406],[390,11583,1000],{"className":11584},[411]," for any coprime ",[390,11587,11589],{"className":11588},[393],[390,11590,11592],{"className":11591,"ariaHidden":398},[397],[390,11593,11595,11598],{"className":11594},[402],[390,11596],{"className":11597,"style":487},[406],[390,11599,385],{"className":11600},[411,453],[11078,11602,11603,11606,11607,5188,11663,11728],{},[471,11604,11605],{},"Trial division"," tests divisors up to ",[390,11608,11610],{"className":11609},[393],[390,11611,11613],{"className":11612,"ariaHidden":398},[397],[390,11614,11616,11619],{"className":11615},[402],[390,11617],{"className":11618,"style":6752},[406],[390,11620,11622],{"className":11621},[411,6662],[390,11623,11625,11655],{"className":11624},[424,425],[390,11626,11628,11652],{"className":11627},[429],[390,11629,11631,11640],{"className":11630,"style":6672},[433],[390,11632,11634,11637],{"className":11633,"style":6677},[6676],[390,11635],{"className":11636,"style":6681},[441],[390,11638,507],{"className":11639,"style":6685},[411,453],[390,11641,11642,11645],{"style":6688},[390,11643],{"className":11644,"style":6681},[441],[390,11646,11648],{"className":11647,"style":6696},[6695],[1815,11649,11650],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},[1834,11651],{"d":6705},[390,11653,459],{"className":11654},[458],[390,11656,11658],{"className":11657},[429],[390,11659,11661],{"className":11660,"style":6715},[433],[390,11662],{},[390,11664,11666],{"className":11665},[393],[390,11667,11669],{"className":11668,"ariaHidden":398},[397],[390,11670,11672,11675,11678,11681,11725],{"className":11671},[402],[390,11673],{"className":11674,"style":6652},[406],[390,11676,701],{"className":11677,"style":700},[411,453],[390,11679,659],{"className":11680},[658],[390,11682,11684],{"className":11683},[411,6662],[390,11685,11687,11717],{"className":11686},[424,425],[390,11688,11690,11714],{"className":11689},[429],[390,11691,11693,11702],{"className":11692,"style":6672},[433],[390,11694,11696,11699],{"className":11695,"style":6677},[6676],[390,11697],{"className":11698,"style":6681},[441],[390,11700,507],{"className":11701,"style":6685},[411,453],[390,11703,11704,11707],{"style":6688},[390,11705],{"className":11706,"style":6681},[441],[390,11708,11710],{"className":11709,"style":6696},[6695],[1815,11711,11712],{"xmlns":1817,"width":6699,"height":6700,"viewBox":6701,"preserveAspectRatio":6702},[1834,11713],{"d":6705},[390,11715,459],{"className":11716},[458],[390,11718,11720],{"className":11719},[429],[390,11721,11723],{"className":11722,"style":6715},[433],[390,11724],{},[390,11726,667],{"className":11727},[666]," time, deterministic, fine\nfor one moderate number.",[11078,11730,11731,11732,11735,11736,11739],{},"The ",[471,11733,11734],{},"Fermat test"," detects composites probabilistically but is fooled by ",[471,11737,11738],{},"Carmichael\nnumbers"," for every coprime witness.",[11078,11741,11742,11744,11745,11825,11826,11918,11919,11934,11935,11937,11938,12003],{},[471,11743,8524],{}," writes ",[390,11746,11748],{"className":11747},[393],[390,11749,11751,11769,11787],{"className":11750,"ariaHidden":398},[397],[390,11752,11754,11757,11760,11763,11766],{"className":11753},[402],[390,11755],{"className":11756,"style":8630},[406],[390,11758,507],{"className":11759},[411,453],[390,11761],{"className":11762,"style":577},[572],[390,11764,5136],{"className":11765},[581],[390,11767],{"className":11768,"style":577},[572],[390,11770,11772,11775,11778,11781,11784],{"className":11771},[402],[390,11773],{"className":11774,"style":1803},[406],[390,11776,1000],{"className":11777},[411],[390,11779],{"className":11780,"style":771},[572],[390,11782,776],{"className":11783},[775],[390,11785],{"className":11786,"style":771},[572],[390,11788,11790,11793,11822],{"className":11789},[402],[390,11791],{"className":11792,"style":537},[406],[390,11794,11796,11799],{"className":11795},[411],[390,11797,886],{"className":11798},[411],[390,11800,11802],{"className":11801},[420],[390,11803,11805],{"className":11804},[424],[390,11806,11808],{"className":11807},[429],[390,11809,11811],{"className":11810,"style":556},[433],[390,11812,11813,11816],{"style":559},[390,11814],{"className":11815,"style":442},[441],[390,11817,11819],{"className":11818},[446,447,448,449],[390,11820,8737],{"className":11821},[411,453,449],[390,11823,6813],{"className":11824},[411,453]," and watches the square-root chain ",[390,11827,11829],{"className":11828},[393],[390,11830,11832],{"className":11831,"ariaHidden":398},[397],[390,11833,11835,11839,11868,11871,11874,11909,11912,11915],{"className":11834},[402],[390,11836],{"className":11837,"style":11838},[406],"height:1.0435em;vertical-align:-0.1944em;",[390,11840,11842,11845],{"className":11841},[411],[390,11843,385],{"className":11844},[411,453],[390,11846,11848],{"className":11847},[420],[390,11849,11851],{"className":11850},[424],[390,11852,11854],{"className":11853},[429],[390,11855,11857],{"className":11856,"style":8794},[433],[390,11858,11859,11862],{"style":559},[390,11860],{"className":11861,"style":442},[441],[390,11863,11865],{"className":11864},[446,447,448,449],[390,11866,6813],{"className":11867},[411,453,449],[390,11869,993],{"className":11870},[992],[390,11872],{"className":11873,"style":717},[572],[390,11875,11877,11880],{"className":11876},[411],[390,11878,385],{"className":11879},[411,453],[390,11881,11883],{"className":11882},[420],[390,11884,11886],{"className":11885},[424],[390,11887,11889],{"className":11888},[429],[390,11890,11892],{"className":11891,"style":8794},[433],[390,11893,11894,11897],{"style":559},[390,11895],{"className":11896,"style":442},[441],[390,11898,11900],{"className":11899},[446,447,448,449],[390,11901,11903,11906],{"className":11902},[411,449],[390,11904,886],{"className":11905},[411,449],[390,11907,6813],{"className":11908},[411,453,449],[390,11910,993],{"className":11911},[992],[390,11913],{"className":11914,"style":717},[572],[390,11916,5476],{"className":11917},[3244]," collapse to ",[390,11920,11922],{"className":11921},[393],[390,11923,11925],{"className":11924,"ariaHidden":398},[397],[390,11926,11928,11931],{"className":11927},[402],[390,11929],{"className":11930,"style":1803},[406],[390,11932,1000],{"className":11933},[411],", catching the nontrivial square roots that betray a composite;\nit is probabilistic with random witnesses and ",[471,11936,10248],{}," below ",[390,11939,11941],{"className":11940},[393],[390,11942,11944,11962],{"className":11943,"ariaHidden":398},[397],[390,11945,11947,11950,11953,11956,11959],{"className":11946},[402],[390,11948],{"className":11949,"style":8023},[406],[390,11951,10410],{"className":11952},[411],[390,11954],{"className":11955,"style":577},[572],[390,11957,10417],{"className":11958},[581],[390,11960],{"className":11961,"style":577},[572],[390,11963,11965,11968,11971],{"className":11964},[402],[390,11966],{"className":11967,"style":2480},[406],[390,11969,1000],{"className":11970},[411],[390,11972,11974,11977],{"className":11973},[411],[390,11975,988],{"className":11976},[411],[390,11978,11980],{"className":11979},[420],[390,11981,11983],{"className":11982},[424],[390,11984,11986],{"className":11985},[429],[390,11987,11989],{"className":11988,"style":2480},[433],[390,11990,11991,11994],{"style":559},[390,11992],{"className":11993,"style":442},[441],[390,11995,11997],{"className":11996},[446,447,448,449],[390,11998,12000],{"className":11999},[411,449],[390,12001,10462],{"className":12002},[411,449]," with the first twelve primes as bases.",[11078,12005,12006,12007,7881,12009,12011,12012,12014],{},"Modular exponentiation and primality testing power ",[471,12008,10823],{},[471,12010,10920],{},";\n",[471,12013,10640],{}," handles factoring of large numbers when a factor is actually needed.",[12016,12017,12020,12025],"section",{"className":12018,"dataFootnotes":376},[12019],"footnotes",[730,12021,12024],{"className":12022,"id":2449},[12023],"sr-only","Footnotes",[12026,12027,12028,12092,12155,12249],"ol",{},[11078,12029,12031,12034,12035,12068,12069,12084,12085],{"id":12030},"user-content-fn-clrs-modexp",[471,12032,12033],{},"CLRS",", Ch. 31 — Number-Theoretic Algorithms (§31.6): modular exponentiation by repeated squaring in ",[390,12036,12038],{"className":12037},[393],[390,12039,12041],{"className":12040,"ariaHidden":398},[397],[390,12042,12044,12047,12050,12053,12059,12062,12065],{"className":12043},[402],[390,12045],{"className":12046,"style":650},[406],[390,12048,701],{"className":12049,"style":700},[411,453],[390,12051,659],{"className":12052},[658],[390,12054,12056],{"className":12055},[708],[390,12057,713],{"className":12058,"style":712},[411,588],[390,12060],{"className":12061,"style":717},[572],[390,12063,507],{"className":12064},[411,453],[390,12066,667],{"className":12067},[666]," multiplications, reducing mod ",[390,12070,12072],{"className":12071},[393],[390,12073,12075],{"className":12074,"ariaHidden":398},[397],[390,12076,12078,12081],{"className":12077},[402],[390,12079],{"className":12080,"style":487},[406],[390,12082,454],{"className":12083},[411,453]," at each step. ",[385,12086,12091],{"href":12087,"ariaLabel":12088,"className":12089,"dataFootnoteBackref":376},"#user-content-fnref-clrs-modexp","Back to reference 1",[12090],"data-footnote-backref","↩",[11078,12093,12095,12098,12099,12149,12150],{"id":12094},"user-content-fn-skiena-nt",[471,12096,12097],{},"Skiena",", § — Number Theory: Fermat's little theorem and modular inverse via ",[390,12100,12102],{"className":12101},[393],[390,12103,12105],{"className":12104,"ariaHidden":398},[397],[390,12106,12108,12111],{"className":12107},[402],[390,12109],{"className":12110,"style":2480},[406],[390,12112,12114,12117],{"className":12113},[411],[390,12115,385],{"className":12116},[411,453],[390,12118,12120],{"className":12119},[420],[390,12121,12123],{"className":12122},[424],[390,12124,12126],{"className":12125},[429],[390,12127,12129],{"className":12128,"style":2480},[433],[390,12130,12131,12134],{"style":559},[390,12132],{"className":12133,"style":442},[441],[390,12135,12137],{"className":12136},[446,447,448,449],[390,12138,12140,12143,12146],{"className":12139},[411,449],[390,12141,381],{"className":12142},[411,453,449],[390,12144,5136],{"className":12145},[581,449],[390,12147,886],{"className":12148},[411,449]," for a prime modulus. ",[385,12151,12091],{"href":12152,"ariaLabel":12153,"className":12154,"dataFootnoteBackref":376},"#user-content-fnref-skiena-nt","Back to reference 2",[12090],[11078,12156,12158,12160,12161,12176,12177,12227,12228,12243,12244],{"id":12157},"user-content-fn-clrs-mr",[471,12159,12033],{},", Ch. 31 — Number-Theoretic Algorithms (§31.8): the Miller–Rabin witness test built on nontrivial square roots of ",[390,12162,12164],{"className":12163},[393],[390,12165,12167],{"className":12166,"ariaHidden":398},[397],[390,12168,12170,12173],{"className":12169},[402],[390,12171],{"className":12172,"style":1803},[406],[390,12174,1000],{"className":12175},[411],", with error below ",[390,12178,12180],{"className":12179},[393],[390,12181,12183],{"className":12182,"ariaHidden":398},[397],[390,12184,12186,12189],{"className":12185},[402],[390,12187],{"className":12188,"style":8794},[406],[390,12190,12192,12195],{"className":12191},[411],[390,12193,886],{"className":12194},[411],[390,12196,12198],{"className":12197},[420],[390,12199,12201],{"className":12200},[424],[390,12202,12204],{"className":12203},[429],[390,12205,12207],{"className":12206,"style":8794},[433],[390,12208,12209,12212],{"style":559},[390,12210],{"className":12211,"style":442},[441],[390,12213,12215],{"className":12214},[446,447,448,449],[390,12216,12218,12221,12224],{"className":12217},[411,449],[390,12219,5136],{"className":12220},[411,449],[390,12222,886],{"className":12223},[411,449],[390,12225,10189],{"className":12226,"style":10188},[411,453,449]," over ",[390,12229,12231],{"className":12230},[393],[390,12232,12234],{"className":12233,"ariaHidden":398},[397],[390,12235,12237,12240],{"className":12236},[402],[390,12238],{"className":12239,"style":537},[406],[390,12241,10189],{"className":12242,"style":10188},[411,453]," rounds. ",[385,12245,12091],{"href":12246,"ariaLabel":12247,"className":12248,"dataFootnoteBackref":376},"#user-content-fnref-clrs-mr","Back to reference 3",[12090],[11078,12250,12252,12254,12255],{"id":12251},"user-content-fn-skiena-mr",[471,12253,12097],{},", § — Number Theory: deterministic Miller–Rabin with a fixed small base set, and Pollard's rho for factoring. ",[385,12256,12091],{"href":12257,"ariaLabel":12258,"className":12259,"dataFootnoteBackref":376},"#user-content-fnref-skiena-mr","Back to reference 4",[12090],[12261,12262,12263],"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":12265},[12266,12267,12268,12274,12275,12276],{"id":732,"depth":18,"text":733},{"id":5225,"depth":18,"text":5226},{"id":6614,"depth":18,"text":6615,"children":12269},[12270,12272,12273],{"id":6638,"depth":24,"text":12271},"Trial division — O(n​)",{"id":7149,"depth":24,"text":7150},{"id":8523,"depth":24,"text":8524},{"id":10816,"depth":18,"text":10817},{"id":11072,"depth":18,"text":11073},{"id":2449,"depth":18,"text":12024},"The previous lesson built the arithmetic of Zm​: addition, multiplication,\nand the modular inverse via the extended Euclidean algorithm. One operation it left\non the table is exponentiation: given a, n, and a modulus m, compute\nanmodm. The obvious loop multiplies a into an accumulator n times, which is\nΘ(n), hopelessly slow when n is a 1024-bit number, as it routinely is in\ncryptography. This lesson's first result is that we can do it in O(logn)\nmultiplications. That single trick, repeated squaring, is the\nengine behind primality testing, the modular inverse, and the public-key primitives\nthat secure the internet.","md",{"moduleNumber":283,"lessonNumber":18,"order":12280},1002,true,[12283,12287,12290,12293],{"title":12284,"slug":12285,"difficulty":12286},"Pow(x, n)","powx-n","Medium",{"title":12288,"slug":12289,"difficulty":12286},"Super Pow","super-pow",{"title":12291,"slug":12292,"difficulty":12286},"Count Primes","count-primes",{"title":12294,"slug":12295,"difficulty":12286},"Closest Prime Numbers in Range","closest-prime-numbers-in-range","---\ntitle: Modular Exponentiation & Primality\nmodule: Mathematical Algorithms\nmoduleNumber: 10\nlessonNumber: 2\norder: 1002\nsummary: >-\n  Computing $a^n \\bmod m$ naively costs $n$ multiplications; **repeated squaring**\n  does it in $O(\\log n)$ by reading the bits of the exponent. We use this routine\n  to state **Fermat's little theorem** (and the modular inverse it gives), then to\n  test primality — trial division, the probabilistic **Fermat** and **Miller–Rabin**\n  tests, and the deterministic witness set that settles primality for every 64-bit\n  number.\ntopics: [Number Theory]\nsources:\n  - book: CLRS\n    ref: \"Ch. 31 — Number-Theoretic Algorithms (§31.6, §31.8)\"\n  - book: Skiena\n    ref: \"§ — Number Theory\"\n  - book: Erickson\n    ref: \"Ch. — (number theory)\"\npractice:\n  - title: 'Pow(x, n)'\n    slug: powx-n\n    difficulty: Medium\n  - title: 'Super Pow'\n    slug: super-pow\n    difficulty: Medium\n  - title: 'Count Primes'\n    slug: count-primes\n    difficulty: Medium\n  - title: 'Closest Prime Numbers in Range'\n    slug: closest-prime-numbers-in-range\n    difficulty: Medium\n---\n\nThe previous lesson built the [arithmetic](\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics) of $\\mathbb{Z}_m$: addition, multiplication,\nand the modular inverse via the extended Euclidean algorithm. One operation it left\non the table is **exponentiation**: given $a$, $n$, and a modulus $m$, compute\n$a^n \\bmod m$. The obvious loop multiplies $a$ into an accumulator $n$ times, which is\n$\\Theta(n)$, hopelessly slow when $n$ is a 1024-bit number, as it routinely is in\ncryptography. This lesson's first result is that we can do it in $O(\\log n)$\nmultiplications. That single trick, **repeated squaring**, is the\nengine behind primality testing, the modular inverse, and the public-key primitives\nthat secure the internet.\n\n## Binary exponentiation: repeated squaring\n\nThe idea is to read $n$ in binary. Write $n = \\sum_i b_i 2^i$ with $b_i \\in \\{0,1\\}$.\nThen\n\n$$\na^n = a^{\\sum_i b_i 2^i} = \\prod_{i \\,:\\, b_i = 1} a^{2^i}.\n$$\n\nThe numbers $a^{2^i}$ are just the **repeated squares** of $a$: each one is the square\nof the previous, since $a^{2^{i+1}} = \\bigl(a^{2^i}\\bigr)^2$. So we sweep the bits of\n$n$ from least to most significant, keeping a running square $a^{2^i}$, and whenever the\ncurrent bit is $1$ we multiply that square into the result.\n\n$$\n% caption: Square at each step; multiply the running square into the accumulator where the\n%          bit of $n$ is $1$\n\\begin{tikzpicture}[\n  every node\u002F.style={font=\\small},\n  box\u002F.style={draw, minimum width=12mm, minimum height=7mm, inner sep=2pt},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  % bit column of n = 13 = 1101\n  \\node (lab) at (-1.7,0.4) {$n=13$};\n  \\node (lab2) at (-1.7,-0.1) {$=1101_2$};\n  \\node[box] (b0) at (0,0) {$b_0{=}1$};\n  \\node[box] (b1) at (0,-1) {$b_1{=}0$};\n  \\node[box] (b2) at (0,-2) {$b_2{=}1$};\n  \\node[box] (b3) at (0,-3) {$b_3{=}1$};\n  % squares column\n  \\node[box] (s0) at (3,0) {$a$};\n  \\node[box] (s1) at (3,-1) {$a^2$};\n  \\node[box] (s2) at (3,-2) {$a^4$};\n  \\node[box] (s3) at (3,-3) {$a^8$};\n  \\draw[->] (s0) -- node[right, font=\\footnotesize] {square} (s1);\n  \\draw[->] (s1) -- node[right, font=\\footnotesize] {square} (s2);\n  \\draw[->] (s2) -- node[right, font=\\footnotesize] {square} (s3);\n  % accumulator: selected squares (bits 0,2,3) multiplied in\n  \\node[box, fill=acc!15, draw=acc, very thick] (r) at (7,-1.5) {$a\\cdot a^4\\cdot a^8=a^{13}$};\n  \\draw[->, draw=acc, thick] (s0.east) -- (r.west);\n  \\draw[->, draw=acc, thick] (s2.east) -- (r.west);\n  \\draw[->, draw=acc, thick] (s3.east) -- (r.west);\n\\end{tikzpicture}\n$$\n\nEach square is one multiplication and there are $\\lfloor \\log_2 n \\rfloor + 1$ of them;\neach bit costs at most one more multiplication into the accumulator. So the total is at\nmost $2\\lfloor \\log_2 n \\rfloor + O(1)$ multiplications, which is $O(\\log n)$.[^clrs-modexp]\nReducing modulo $m$ after every multiplication keeps every intermediate value below\n$m^2$.\n\n```algorithm\ncaption: $\\textsc{ModPow}(a, n, m)$ — iterative bit-scan, returns $a^n \\bmod m$\n$result \\gets 1$\n$a \\gets a \\bmod m$\nwhile $n > 0$ do\n  if $n \\bmod 2 = 1$ then         \u002F\u002F low bit set\n    $result \\gets (result \\cdot a) \\bmod m$\n  $a \\gets (a \\cdot a) \\bmod m$    \u002F\u002F square for next bit\n  $n \\gets \\lfloor n \u002F 2 \\rfloor$\nreturn $result$\n```\n\nRunning this on $3^{13}\\bmod 7$ makes the bit-scan concrete: the running square is\n$3,2,4,2$ across the bits of $13=1101_2$, and the accumulator picks up a factor at\neach set bit, finishing at $3$.\n\n$$\n% caption: $\\textsc{ModPow}(3,13,7)$ traced — bits of $13=1101_2$ drive\n%          square-and-multiply\n\\begin{tikzpicture}[every node\u002F.style={font=\\small}, x=1cm, y=1cm]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node at (0,0) {bit};\n  \\node at (1.3,0) {$a^{2^i}\\bmod 7$};\n  \\node at (3.3,0) {mult?};\n  \\node at (4.9,0) {result};\n  \\draw[thick] (-0.6,-0.4) -- (5.6,-0.4);\n  \\node at (0,-0.9) {$1$}; \\node at (1.3,-0.9) {$3$};  \\node[acc] at (3.3,-0.9) {yes}; \\node at (4.9,-0.9) {$3$};\n  \\node at (0,-1.6) {$0$}; \\node at (1.3,-1.6) {$2$};  \\node at (3.3,-1.6) {no};  \\node at (4.9,-1.6) {$3$};\n  \\node at (0,-2.3) {$1$}; \\node at (1.3,-2.3) {$4$};  \\node[acc] at (3.3,-2.3) {yes}; \\node at (4.9,-2.3) {$5$};\n  \\node at (0,-3.0) {$1$}; \\node at (1.3,-3.0) {$2$};  \\node[acc] at (3.3,-3.0) {yes}; \\node at (4.9,-3.0) {$3$};\n  \\draw[acc, very thick] (4.4,-2.7) rectangle (5.4,-3.3);\n  \\node[acc, font=\\footnotesize] at (2.5,-3.9) {$3^{13}\\bmod 7 = 3$};\n\\end{tikzpicture}\n$$\n\nThe same computation has a clean recursive shape, splitting the exponent in half:\n\n$$\na^n =\n\\begin{cases}\n1 & n = 0,\\\\[2pt]\n\\bigl(a^{n\u002F2}\\bigr)^2 & n \\text{ even},\\\\[2pt]\n\\bigl(a^{\\lfloor n\u002F2 \\rfloor}\\bigr)^2 \\cdot a & n \\text{ odd}.\n\\end{cases}\n$$\n\n```algorithm\ncaption: $\\textsc{ModPow-Rec}(a, n, m)$ — recursive halving\nif $n = 0$ then return $1$\n$h \\gets \\textsc{ModPow-Rec}(a, \\lfloor n\u002F2 \\rfloor, m)$\n$h \\gets (h \\cdot h) \\bmod m$\nif $n \\bmod 2 = 1$ then\n  $h \\gets (h \\cdot a) \\bmod m$\nreturn $h$\n```\n\nThe recursion descends by halving the exponent and rebuilds the answer on the way\nback up: each return squares the child's value, and an odd exponent multiplies one\nextra copy of $a$. For $a^{13}$ the four downward halvings $13\\to6\\to3\\to1\\to0$ unwind\ninto four squarings, three of them carrying the extra $\\cdot a$ from an odd level.\n\n$$\n% caption: Recursive halving for $a^{13}$ — each level squares, odd exponents multiply one\n%          extra $a$\n\\begin{tikzpicture}[\n  every node\u002F.style={font=\\small},\n  box\u002F.style={draw, minimum width=14mm, minimum height=7mm, inner sep=2pt},\n  >=stealth, x=1cm, y=1.2cm]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node[box] (e13) at (0,0) {$a^{13}$};\n  \\node[box] (e6)  at (0,-1) {$a^{6}$};\n  \\node[box] (e3)  at (0,-2) {$a^{3}$};\n  \\node[box] (e1)  at (0,-3) {$a^{1}$};\n  \\node[box, fill=acc!15, draw=acc, very thick] (e0) at (0,-4) {$a^{0}{=}1$};\n  \\draw[->] (e13) -- node[right, font=\\footnotesize] {$13$ odd: $\\lfloor 13\u002F2\\rfloor=6$} (e6);\n  \\draw[->] (e6)  -- node[right, font=\\footnotesize] {$6$ even: $6\u002F2=3$} (e3);\n  \\draw[->] (e3)  -- node[right, font=\\footnotesize] {$3$ odd: $\\lfloor 3\u002F2\\rfloor=1$} (e1);\n  \\draw[->] (e1)  -- node[right, font=\\footnotesize] {$1$ odd: $\\lfloor 1\u002F2\\rfloor=0$} (e0);\n  \\draw[->, acc, thick] (e0.west) to[bend left=40] node[left, font=\\footnotesize] {$\\,1^2{\\cdot}a=a$} (e1.west);\n  \\draw[->, acc, thick] (e1.west) to[bend left=40] node[left, font=\\footnotesize] {$a^2{\\cdot}a=a^3$} (e3.west);\n  \\draw[->, acc, thick] (e3.west) to[bend left=40] node[left, font=\\footnotesize] {$(a^3)^2=a^6$} (e6.west);\n  \\draw[->, acc, thick] (e6.west) to[bend left=40] node[left, font=\\footnotesize] {$(a^6)^2{\\cdot}a=a^{13}$} (e13.west);\n\\end{tikzpicture}\n$$\n\n> **Warning (Overflow).** If $m$ is near the machine word size, the product $result \\cdot a$ can\n> exceed 64 bits before the reduction. Use a **128-bit** accumulator (`__int128`), or a\n> $\\textsc{MulMod}$ routine that multiplies modulo $m$ without overflowing. This bites\n> exactly in the Miller–Rabin tests below, where $m$ may be a full 64-bit number.\n\nThe doubling structure is not special to integers. Replace \"multiply\" with\n**matrix multiply** and the identity $\\bigl[\\begin{smallmatrix}1&1\\\\1&0\\end{smallmatrix}\\bigr]^n\n= \\bigl[\\begin{smallmatrix}F_{n+1}&F_n\\\\F_n&F_{n-1}\\end{smallmatrix}\\bigr]$ gives the\n$n$-th **Fibonacci number** in $O(\\log n)$ matrix multiplications by the very same\nrepeated-squaring loop.\n\n## Fermat's little theorem\n\nRepeated squaring lets us _compute_ large powers; number theory tells us what those\npowers _are_ modulo a prime.\n\n> **Theorem (Fermat's little).** If $p$ is prime and $\\gcd(a, p) = 1$, then\n> $$a^{p-1} \\equiv 1 \\pmod p.$$\n\n> **Proof sketch.** The set $\\{a, 2a, \\dots, (p-1)a\\}$ taken mod $p$ is a permutation of\n> $\\{1, 2, \\dots, p-1\\}$ (multiplication by a unit is a bijection on $\\mathbb{Z}_p^*$).\n> Multiplying both lists, $a^{p-1}(p-1)! \\equiv (p-1)! \\pmod p$, and canceling the unit\n> $(p-1)!$ gives $a^{p-1} \\equiv 1$. $\\qed$\n\nA corollary recovers the modular inverse from the previous lesson without the extended\nEuclidean algorithm: multiplying $a^{p-1} \\equiv 1$ by $a^{-1}$ gives\n\n$$\na^{-1} \\equiv a^{p-2} \\pmod p,\n$$\n\na single $\\textsc{ModPow}$ call. This only works for a **prime** modulus, but that is\nexactly the common case in competitive programming, where arithmetic is done modulo a\nfixed prime such as $10^9 + 7$.[^skiena-nt] For a general modulus, **Euler's theorem**\ngeneralizes Fermat: if $\\gcd(a, m) = 1$ then $a^{\\varphi(m)} \\equiv 1 \\pmod m$, where\n$\\varphi$ is Euler's totient, giving $a^{-1} \\equiv a^{\\varphi(m) - 1}$.\n\n## Primality testing\n\nHow do we decide whether a number $n$ is prime? Three approaches, in increasing power.\n\n### Trial division — $O(\\sqrt n)$\n\nIf $n$ has a nontrivial factor it has one no larger than $\\sqrt n$ (factors come in pairs\n$d \\cdot (n\u002Fd)$, and the smaller is $\\le \\sqrt n$). So testing every candidate divisor up\nto $\\lfloor \\sqrt n \\rfloor$ settles the question.\n\n```algorithm\ncaption: $\\textsc{IsPrime-Trial}(n)$ — $O(\\sqrt n)$ deterministic test\nif $n \u003C 2$ then return false\n$d \\gets 2$\nwhile $d \\cdot d \\le n$ do\n  if $n \\bmod d = 0$ then return false\n  $d \\gets d + 1$\nreturn true\n```\n\nThis is perfectly adequate for one moderate number (say $n \\le 10^{14}$), and is the\nright tool when a problem hands you a single value. It is hopeless for a 200-digit\ncryptographic number, where $\\sqrt n$ is astronomically large.\n\n### The Fermat test — probabilistic\n\nFermat's little theorem runs in reverse as a _compositeness_ detector. If $n$ is prime,\nthen $a^{n-1} \\equiv 1 \\pmod n$ for every $a$ coprime to $n$. So if we find a single\n**witness** $a$ with $a^{n-1} \\not\\equiv 1 \\pmod n$, then $n$ is _certainly composite_,\nand one $\\textsc{ModPow}$ call refutes primality. If instead $a^{n-1} \\equiv 1$, then $n$ is\nonly _probably_ prime; repeat with several random $a$ to raise confidence.\n\nThe fatal caveat is the **Carmichael numbers**, composites such as $561 = 3 \\cdot 11\n\\cdot 17$ for which $a^{n-1} \\equiv 1 \\pmod n$ holds for *every* $a$ coprime to $n$. No\nchoice of coprime witness ever exposes them, so the Fermat test silently declares them\nprime. There are infinitely many. We need a test that looks deeper.\n\nWatching the full square-root chain for $561$ shows exactly what the Fermat test\nmisses. With witness $a=2$ and $560 = 2^4\\cdot 35$, the chain ends at $1$ — so\nFermat, which sees only that last entry, is fooled — yet it reaches $1$ from\n$67$, a value that is neither $+1$ nor $-1$. A prime can never square a non-$\\pm1$\nresidue to $1$, so that one extra observation convicts $561$ as composite.\n\n$$\n% caption: The Carmichael number $561$ passes Fermat ($a^{560}\\equiv 1$) but fails\n%          Miller–Rabin: the chain hits $1$ from $67$, a nontrivial square root of $1$.\n\\begin{tikzpicture}[\n  every node\u002F.style={font=\\small},\n  box\u002F.style={draw, minimum width=11mm, minimum height=8mm, inner sep=2pt},\n  >=stealth, x=1cm, y=1cm]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\useasboundingbox (-1.5,1.9) rectangle (10.4,-2.0);\n  \\node[box] (x0) at (0,0) {$263$};\n  \\node[box] (x1) at (2.2,0) {$166$};\n  \\node[box, fill=acc!15, draw=acc, very thick] (x2) at (4.4,0) {$67$};\n  \\node[box] (x3) at (6.8,0) {$1$};\n  \\node[box] (x4) at (9.0,0) {$1$};\n  \\node[font=\\footnotesize] at (0,0.85) {$a^{35}$};\n  \\node[font=\\footnotesize] at (2.2,0.85) {$a^{70}$};\n  \\node[font=\\footnotesize] at (4.4,0.85) {$a^{140}$};\n  \\node[font=\\footnotesize] at (6.8,0.85) {$a^{280}$};\n  \\node[font=\\footnotesize] at (9.0,0.85) {$a^{560}$};\n  \\draw[->] (x0) -- node[above, font=\\footnotesize] {sq} (x1);\n  \\draw[->] (x1) -- node[above, font=\\footnotesize] {sq} (x2);\n  \\draw[->] (x2) -- node[above, font=\\footnotesize] {sq} (x3);\n  \\draw[->] (x3) -- node[above, font=\\footnotesize] {sq} (x4);\n  \\node[acc, font=\\footnotesize, align=center] at (4.4,-1.1) {$67^2\\equiv 1$,\\\\ but $67\\ne\\pm1$};\n  \\node[red!75!black, font=\\footnotesize, align=center] at (9.0,-1.1) {Fermat only\\\\ sees this $1$};\n\\end{tikzpicture}\n$$\n\n### Miller–Rabin\n\nMiller–Rabin strengthens the Fermat test by exploiting a second fact about primes: in\n$\\mathbb{Z}_p$, the only square roots of $1$ are $\\pm 1$. Write the even number $n - 1$ as\n\n$$\nn - 1 = 2^{s} d, \\qquad d \\text{ odd}.\n$$\n\nFor a witness $a$, consider the chain obtained by computing $a^d \\bmod n$ and then\nsquaring it $s$ times:\n\n$$\na^{d},\\; a^{2d},\\; a^{4d},\\; \\dots,\\; a^{2^{s-1}d},\\; a^{2^{s}d} = a^{n-1} \\pmod n.\n$$\n\nIf $n$ is prime, this chain must end at $1$ (Fermat), and the _first_ time it reaches $1$\nit must arrive from $-1$, because $1$ has no square root other than $\\pm 1$. So a prime\nforces one of two patterns: either $a^d \\equiv 1$, or some $a^{2^r d} \\equiv -1$ for\n$0 \\le r \u003C s$. If **neither** holds, we have found a $2^{r}d$-step value that is a\nnontrivial square root of $1$ (it squares to $1$ but is not $\\pm 1$), which a prime can\nnever have, so $a$ is a witness that $n$ is composite.[^clrs-mr]\n\n$$\n% caption: A nontrivial square root of $1$ in the chain betrays a composite\n\\begin{tikzpicture}[\n  every node\u002F.style={font=\\small},\n  box\u002F.style={draw, minimum width=14mm, minimum height=7mm, inner sep=2pt},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node (lab) at (-2.1,0) {$n-1=2^s d$};\n  \\node[box] (x0) at (0,0) {$a^{d}$};\n  \\node[box] (x1) at (2.4,0) {$a^{2d}$};\n  \\node[box, fill=acc!15, draw=acc, very thick] (x2) at (4.8,0) {$a^{4d}$};\n  \\node[box] (x3) at (7.4,0) {$a^{8d}{=}1$};\n  \\draw[->] (x0) -- node[above, font=\\footnotesize] {sq} (x1);\n  \\draw[->] (x1) -- node[above, font=\\footnotesize] {sq} (x2);\n  \\draw[->] (x2) -- node[above, font=\\footnotesize] {sq} (x3);\n  % annotations\n  \\node[font=\\footnotesize] at (4.8,-0.95) {$\\ne \\pm1$};\n  \\node[acc, font=\\footnotesize] at (4.8,-1.5) {nontrivial $\\sqrt{1}$};\n  \\node[font=\\footnotesize] at (7.4,-0.95) {$\\to 1$};\n  \\node[font=\\footnotesize, align=center] at (4.8,1.0)\n    {a prime can never\\\\ square a non-$\\pm1$ to $1$};\n\\end{tikzpicture}\n$$\n\n```algorithm\ncaption: $\\textsc{Miller-Rabin}(n, a)$ — true if $a$ fails to witness compositeness\nwrite $n - 1 = 2^{s} d$ with $d$ odd\n$x \\gets \\textsc{ModPow}(a, d, n)$\nif $x = 1$ or $x = n - 1$ then return true   \u002F\u002F probably prime\nrepeat $s - 1$ times\n  $x \\gets (x \\cdot x) \\bmod n$\n  if $x = n - 1$ then return true            \u002F\u002F hit $-1$\nreturn false                                  \u002F\u002F nontrivial $\\sqrt 1$ ⇒ composite\n```\n\nWith **random witnesses**, each composite $n$ is exposed by at least three quarters of\nthe possible $a$, so $k$ independent rounds leave a false-\"prime\" probability below\n$4^{-k}$, and crucially, Carmichael numbers are _not_ immune, because the square-root\ntest sees structure the Fermat test cannot. Better still, the test can be made\n**deterministic** for bounded inputs: there is a fixed small set of bases that never\nerrs below a threshold. Testing against the first twelve primes\n$\\{2,3,5,7,11,13,17,19,23,29,31,37\\}$ is a proven-correct deterministic primality test\nfor all $n \u003C 3.3 \\times 10^{24}$, covering every 64-bit (indeed every 80-bit) integer\nwith a dozen $\\textsc{ModPow}$ calls.[^skiena-mr]\n\n> **Intuition.** The Fermat test checks only the _last_ link of the chain ($a^{n-1}=1$);\n> Miller–Rabin watches the whole chain collapse to $1$ and demands it pass through $-1$.\n> That extra check is exactly what catches Carmichael numbers.\n\nMiller–Rabin decides _whether_ $n$ is prime but never produces a factor. [**Factoring**](\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization) a\nlarge composite is a separate, much harder problem; **Pollard's rho** finds a nontrivial\nfactor in expected $O(n^{1\u002F4})$ time using a cycle-detection trick on $x \\mapsto x^2 + c\n\\bmod n$, and is the standard tool for splitting numbers too big for trial division. (The\nnext lesson handles factoring _small_ numbers wholesale with a sieve.)\n\n## Why this matters: cryptography\n\nThese two ingredients, fast modular exponentiation and fast primality testing, are the\nbeating heart of public-key cryptography. **RSA** picks two large random primes (found by\nMiller–Rabin), and both encryption and decryption are a single modular exponentiation\n$m \\mapsto m^e \\bmod N$. **Diffie–Hellman** key exchange computes $g^x \\bmod p$ the same\nway. In every case the security rests on a power being easy to compute but its\n_inverse_ (factoring $N$, or the discrete logarithm) being infeasible, and\n$\\textsc{ModPow}$ is what makes the easy direction $O(\\log n)$.\n\n## Takeaways\n\n- **Binary exponentiation** computes $a^n \\bmod m$ in $O(\\log n)$ multiplications by\n  **repeated squaring**, reading the bits of $n$ and multiplying in each square whose bit\n  is $1$; reduce mod $m$ every step, and guard against **overflow** with 128-bit or\n  $\\textsc{MulMod}$ arithmetic. The same doubling gives $O(\\log n)$ **Fibonacci** via\n  matrix powers.\n- **Fermat's little theorem** ($a^{p-1} \\equiv 1 \\pmod p$) gives the modular inverse\n  $a^{-1} \\equiv a^{p-2}$ for a prime modulus; **Euler's theorem** generalizes it to\n  $a^{\\varphi(m)} \\equiv 1$ for any coprime $a$.\n- **Trial division** tests divisors up to $\\sqrt n$ in $O(\\sqrt n)$ time, deterministic, fine\n  for one moderate number.\n- The **Fermat test** detects composites probabilistically but is fooled by **Carmichael\n  numbers** for every coprime witness.\n- **Miller–Rabin** writes $n-1 = 2^s d$ and watches the square-root chain $a^d, a^{2d},\n  \\dots$ collapse to $1$, catching the nontrivial square roots that betray a composite;\n  it is probabilistic with random witnesses and **deterministic** below $3.3 \\times\n  10^{24}$ with the first twelve primes as bases.\n- Modular exponentiation and primality testing power **RSA** and **Diffie–Hellman**;\n  **Pollard's rho** handles factoring of large numbers when a factor is actually needed.\n\n[^clrs-modexp]: **CLRS**, Ch. 31 — Number-Theoretic Algorithms (§31.6): modular exponentiation by repeated squaring in $O(\\log n)$ multiplications, reducing mod $m$ at each step.\n[^skiena-nt]: **Skiena**, § — Number Theory: Fermat's little theorem and modular inverse via $a^{p-2}$ for a prime modulus.\n[^clrs-mr]: **CLRS**, Ch. 31 — Number-Theoretic Algorithms (§31.8): the Miller–Rabin witness test built on nontrivial square roots of $1$, with error below $2^{-2k}$ over $k$ rounds.\n[^skiena-mr]: **Skiena**, § — Number Theory: deterministic Miller–Rabin with a fixed small base set, and Pollard's rho for factoring.\n",{"text":12298,"minutes":12299,"time":12300,"words":12301},"8 min read",7.67,460200,1534,{"title":317,"description":12277},[12304,12306,12308],{"book":12033,"ref":12305},"Ch. 31 — Number-Theoretic Algorithms (§31.6, §31.8)",{"book":12097,"ref":12307},"§ — Number Theory",{"book":12309,"ref":12310},"Erickson","Ch. — (number theory)","available","01.algorithms\u002F10.mathematical-algorithms\u002F02.modular-exponentiation-and-primality",[314],"7eEsCuPi-wq5U6kTJNHEPxQxmqTMGMxrnykuauZXQOg",{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":12316,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":12317,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":12318,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":12319,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":12320,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":12321,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":12322,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":12323,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":12324,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":12325,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":12326,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":12327,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":12328,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":12329,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":12330,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":12331,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":12332,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":12333,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":12334,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":12335,"\u002Falgorithms\u002Fsequences\u002Ftries":12336,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":12337,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":12338,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":12339,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":12340,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":12341,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":12342,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":12343,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":12344,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":12345,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":12346,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":12347,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":12348,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":12349,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":12350,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":12351,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":12352,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":12353,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":12354,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":12355,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":12356,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":12357,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":12358,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":12359,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":12360,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":12361,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":12362,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":12332,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":12301,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":12363,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":12364,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":12365,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":12348,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":12366,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":12367,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":12328,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":12368,"\u002Falgorithms":12369,"\u002Ftheory-of-computation":12370,"\u002Fcomputer-architecture":12370,"\u002Fphysical-computing":12370,"\u002Fdatabases":12370,"\u002Fdeep-learning":12370},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,1291,1543,1883,1443,1599,2038,2241,1744,1678,2288,1929,1657,1412,1554,1418,1713,1798,1694,1762,1595,1262,1495,1630,2306,2142,107,0,{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":12372,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":12373,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":12374,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":12375,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":12376,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":12377,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":12378,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":12379,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":12380,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":12381,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":12382,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":12383,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":12384,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":12385,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":12386,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":12387,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":12388,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":12389,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":12390,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":12391,"\u002Falgorithms\u002Fsequences\u002Ftries":12392,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":12393,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":12394,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":12395,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":12396,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":12397,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":12398,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":12399,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":12400,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":12401,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":12402,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":12403,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":12404,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":12405,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":12406,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":12407,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":12408,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":12409,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":12410,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":12411,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":12412,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":12413,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":12414,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":12415,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":12416,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":12417,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":12418,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":12419,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":12420,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":12421,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":12422,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":12423,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":12424,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":12425,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":12426,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":12427,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":12428,"\u002Falgorithms":12429,"\u002Ftheory-of-computation":12432,"\u002Fcomputer-architecture":12435,"\u002Fphysical-computing":12438,"\u002Fdatabases":12441,"\u002Fdeep-learning":12444},{"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":12430,"title":12431,"module":376,"summary":376},"\u002Falgorithms","Algorithms",{"path":12433,"title":12434,"module":376,"summary":376},"\u002Ftheory-of-computation","Theory of Computation",{"path":12436,"title":12437,"module":376,"summary":376},"\u002Fcomputer-architecture","Computer Architecture",{"path":12439,"title":12440,"module":376,"summary":376},"\u002Fphysical-computing","Physical Computing",{"path":12442,"title":12443,"module":376,"summary":376},"\u002Fdatabases","Databases",{"path":12445,"title":12446,"module":376,"summary":376},"\u002Fdeep-learning","Deep Learning",1781560527460]