[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"all-docs-sidebar":3,"docs-\u002Fdocs\u002Fdrift-scanner\u002Fenvironments":3269,"docs-siblings-\u002Fdocs\u002Fdrift-scanner\u002Fenvironments":3497},[4,281,367,693,1062,1549],{"id":5,"title":6,"body":7,"description":270,"extension":271,"meta":272,"navigation":273,"order":274,"path":275,"section":276,"seo":277,"stem":278,"updatedAt":279,"__hash__":280},"docs\u002Fdocs\u002Fdrift-scanner\u002Fquickstart.md","Quickstart",{"type":8,"value":9,"toc":261},"minimark",[10,14,19,30,34,37,90,93,97,105,116,138,155,158,162,165,168,187,191,198,218,225,229,236,239],[11,12,13],"p",{},"This guide takes you from zero to a monitored PostgreSQL environment in about five minutes.",[15,16,18],"h2",{"id":17},"_1-create-an-account","1. Create an account",[11,20,21,22,29],{},"Sign up at ",[23,24,28],"a",{"href":25,"rel":26},"https:\u002F\u002Farcnull.com\u002Fregister",[27],"nofollow","arcnull.com\u002Fregister",". You only need an email address and a password. Once you are in, head to your dashboard.",[15,31,33],{"id":32},"_2-subscribe-to-drift-scanner","2. Subscribe to Drift Scanner",[11,35,36],{},"Drift Scanner has two tiers:",[38,39,40,59],"table",{},[41,42,43],"thead",{},[44,45,46,50,53,56],"tr",{},[47,48,49],"th",{},"Tier",[47,51,52],{},"Environments",[47,54,55],{},"Scan cadence",[47,57,58],{},"Manual scan rate limit",[60,61,62,77],"tbody",{},[44,63,64,68,71,74],{},[65,66,67],"td",{},"Free",[65,69,70],{},"2",[65,72,73],{},"Hourly cron (configurable)",[65,75,76],{},"3 per minute",[44,78,79,82,85,87],{},[65,80,81],{},"Pro",[65,83,84],{},"10",[65,86,73],{},[65,88,89],{},"10 per minute",[11,91,92],{},"Free is enough to try the product against a single staging database. You can upgrade from the dashboard at any time.",[15,94,96],{"id":95},"_3-add-your-first-environment","3. Add your first environment",[11,98,99,100,104],{},"An environment is a single PostgreSQL database you want to monitor. From the dashboard, open ",[101,102,103],"strong",{},"Drift → Environments → New environment"," and paste a JDBC URL.",[106,107,113],"pre",{"className":108,"code":110,"language":111,"meta":112},[109],"language-text","jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\n","text","",[114,115,110],"code",{"__ignoreMap":112},[11,117,118,119,122,123,126,127,130,131,134,135,137],{},"Provide a PostgreSQL username and password. We strongly recommend a ",[101,120,121],{},"read-only user"," — Drift Scanner only reads from ",[114,124,125],{},"pg_catalog"," and never issues DDL. A role with ",[114,128,129],{},"CONNECT"," on the database and ",[114,132,133],{},"USAGE"," on ",[114,136,125],{}," is enough.",[139,140,141],"blockquote",{},[11,142,143,146,147,150,151,154],{},[101,144,145],{},"SSRF restrictions."," Your JDBC host cannot resolve to loopback, private network ranges, link-local addresses, IPv6 unique-local addresses, or cloud-provider metadata endpoints (",[114,148,149],{},"169.254.0.0\u002F16",", ",[114,152,153],{},"100.64.0.0\u002F10","). These checks run at registration and again on every scan as defense-in-depth.",[11,156,157],{},"Credentials are encrypted at rest with AES-256-GCM before being persisted.",[15,159,161],{"id":160},"_4-wait-for-the-first-snapshot","4. Wait for the first snapshot",[11,163,164],{},"After you create the environment, Drift Scanner captures its first snapshot and stores it as the baseline. This typically takes under thirty seconds on a small database.",[11,166,167],{},"The snapshot includes:",[169,170,171,175,178,181,184],"ul",{},[172,173,174],"li",{},"Tables and columns (including types, defaults, nullability)",[172,176,177],{},"Indexes and constraints",[172,179,180],{},"Sequences",[172,182,183],{},"Views",[172,185,186],{},"Functions",[15,188,190],{"id":189},"_5-configure-alerts","5. Configure alerts",[11,192,193,194,197],{},"Open the environment's ",[101,195,196],{},"Alerts"," tab and wire up at least one channel:",[169,199,200,206,212],{},[172,201,202,205],{},[101,203,204],{},"Slack"," — paste an incoming webhook URL",[172,207,208,211],{},[101,209,210],{},"Custom webhook"," — we POST JSON to your endpoint",[172,213,214,217],{},[101,215,216],{},"Email"," — goes to the address on your account",[11,219,220,221,224],{},"See ",[23,222,196],{"href":223},"\u002Fdocs\u002Fdrift-scanner\u002Falerts"," for the webhook payload shape and delivery guarantees.",[15,226,228],{"id":227},"_6-youre-done","6. You're done",[11,230,231,232,235],{},"Scans now run automatically on the cron schedule you configured (defaults to hourly: ",[114,233,234],{},"0 0 * * * *","). Each scan takes a new snapshot, diffs it against the baseline, and — if the diff has any changes — raises a drift event and fires your alerts.",[11,237,238],{},"From here:",[169,240,241,247,254],{},[172,242,243,244],{},"Understand what an environment is in ",[23,245,52],{"href":246},"\u002Fdocs\u002Fdrift-scanner\u002Fenvironments",[172,248,249,250],{},"Learn how snapshots, diffs, and severity work in ",[23,251,253],{"href":252},"\u002Fdocs\u002Fdrift-scanner\u002Fscanning","Scanning & drift detection",[172,255,256,257],{},"Read the ",[23,258,260],{"href":259},"\u002Fdocs\u002Fdrift-scanner\u002Fapi-reference","full API reference",{"title":112,"searchDepth":262,"depth":262,"links":263},2,[264,265,266,267,268,269],{"id":17,"depth":262,"text":18},{"id":32,"depth":262,"text":33},{"id":95,"depth":262,"text":96},{"id":160,"depth":262,"text":161},{"id":189,"depth":262,"text":190},{"id":227,"depth":262,"text":228},"Go from zero to a monitored PostgreSQL environment in five minutes. Register an account, add your first environment, configure alerts, and let scans run automatically.","md",{},true,1,"\u002Fdocs\u002Fdrift-scanner\u002Fquickstart","drift-scanner",{"title":6,"description":270},"docs\u002Fdrift-scanner\u002Fquickstart","2026-04-20","Sy-Hsr7uloPd_go3bSdQG8K9XqwL6d5Bxs4Mkk7_flM",{"id":282,"title":283,"body":284,"description":360,"extension":271,"meta":361,"navigation":273,"order":274,"path":362,"section":363,"seo":364,"stem":365,"updatedAt":279,"__hash__":366},"docs\u002Fdocs\u002Fintroduction.md","Introduction",{"type":8,"value":285,"toc":352},[286,289,298,302,306,309,316,320,323,329,333],[11,287,288],{},"Arcnull is developer infrastructure for teams that ship to PostgreSQL and build with AI agents. Pick the product you want to get started with.",[11,290,291,292,297],{},"This is the documentation hub. The marketing site lives at ",[23,293,296],{"href":294,"rel":295},"https:\u002F\u002Farcnull.com",[27],"arcnull.com",". If you are looking for pricing, product pages, or the blog, start there instead.",[15,299,301],{"id":300},"products","Products",[303,304,305],"h3",{"id":276},"Drift Scanner",[11,307,308],{},"A PostgreSQL schema drift detector. Point it at one or more environments, it takes a baseline snapshot, and every scheduled scan compares the current schema against that baseline. You get alerts with severity, recommended actions, and a full diff you can audit or acknowledge.",[11,310,311,312,315],{},"Start with the ",[23,313,314],{"href":275},"Drift Scanner quickstart",".",[303,317,319],{"id":318},"mcp-vault","MCP Vault",[11,321,322],{},"A governance proxy for AI agents calling Model Context Protocol (MCP) servers. Enforces policies, redacts PII, and records every tool call for EU AI Act auditability. Currently in early access.",[11,324,256,325,315],{},[23,326,328],{"href":327},"\u002Fdocs\u002Fmcp-vault\u002Fintroduction","MCP Vault introduction",[15,330,332],{"id":331},"getting-help","Getting help",[11,334,335,336,340,341,346,347,315],{},"If you are stuck, ",[23,337,339],{"href":338},"mailto:hello@arcnull.com","email us"," or reach out on ",[23,342,345],{"href":343,"rel":344},"https:\u002F\u002Fx.com\u002Farcnullhq",[27],"X",". Bug reports and feature requests are welcome on GitHub at ",[23,348,351],{"href":349,"rel":350},"https:\u002F\u002Fgithub.com\u002Farcnull-hq",[27],"arcnull-hq",{"title":112,"searchDepth":262,"depth":262,"links":353},[354,359],{"id":300,"depth":262,"text":301,"children":355},[356,358],{"id":276,"depth":357,"text":305},3,{"id":318,"depth":357,"text":319},{"id":331,"depth":262,"text":332},"Welcome to the Arcnull documentation. Guides, API references, and concepts for every Arcnull product.",{},"\u002Fdocs\u002Fintroduction","getting-started",{"title":283,"description":360},"docs\u002Fintroduction","YUFCWHL-TUqXAbhqh7LLLaINh6Jie-HgQoPa6PtyVGw",{"id":368,"title":52,"body":369,"description":688,"extension":271,"meta":689,"navigation":273,"order":262,"path":246,"section":276,"seo":690,"stem":691,"updatedAt":279,"__hash__":692},"docs\u002Fdocs\u002Fdrift-scanner\u002Fenvironments.md",{"type":8,"value":370,"toc":677},[371,374,378,385,391,394,400,403,407,410,485,488,492,498,522,529,533,536,577,580,584,587,608,612,645,652,656,666,670,673],[11,372,373],{},"An environment represents one PostgreSQL database that Drift Scanner watches on your behalf. You can register many environments — one per database you want to track drift on, typically one per deploy target (production, staging, analytics replica, and so on).",[15,375,377],{"id":376},"jdbc-url-format","JDBC URL format",[11,379,380,381,384],{},"The URL must begin with ",[114,382,383],{},"jdbc:postgresql:\u002F\u002F"," and include a host, port, and database name:",[106,386,389],{"className":387,"code":388,"language":111,"meta":112},[109],"jdbc:postgresql:\u002F\u002F\u003Chost>:\u003Cport>\u002F\u003Cdatabase>[?param=value&...]\n",[114,390,388],{"__ignoreMap":112},[11,392,393],{},"Examples:",[106,395,398],{"className":396,"code":397,"language":111,"meta":112},[109],"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\njdbc:postgresql:\u002F\u002Fdb.internal.example.net:5432\u002Fapp?sslmode=require\n",[114,399,397],{"__ignoreMap":112},[11,401,402],{},"The URL is validated at registration and again on every scan.",[303,404,406],{"id":405},"allowed-hosts","Allowed hosts",[11,408,409],{},"For security, the host portion cannot resolve to any of the following:",[169,411,412,425,439,447,454,469],{},[172,413,414,417,418,150,421,424],{},[101,415,416],{},"Loopback"," (",[114,419,420],{},"127.0.0.0\u002F8",[114,422,423],{},"::1",")",[172,426,427,417,430,150,433,150,436,424],{},[101,428,429],{},"Private IPv4",[114,431,432],{},"10.0.0.0\u002F8",[114,434,435],{},"172.16.0.0\u002F12",[114,437,438],{},"192.168.0.0\u002F16",[172,440,441,417,444,446],{},[101,442,443],{},"Link-local",[114,445,149],{}," — also includes AWS, GCP, and Azure metadata endpoints)",[172,448,449,417,452,424],{},[101,450,451],{},"Carrier-grade NAT",[114,453,153],{},[172,455,456,417,459,462,463,417,466,424],{},[101,457,458],{},"IPv6 link-local",[114,460,461],{},"fe80::\u002F10",") and ",[101,464,465],{},"unique-local",[114,467,468],{},"fc00::\u002F7",[172,470,471,474,475,478,479,150,482,424],{},[101,472,473],{},"Multicast"," and ",[101,476,477],{},"unspecified"," addresses (",[114,480,481],{},"0.0.0.0",[114,483,484],{},"::",[11,486,487],{},"If your database is on a private network, expose it to Drift Scanner through a public endpoint (with TLS and IP allowlisting) or wait for the bring-your-own-agent mode on the roadmap.",[15,489,491],{"id":490},"database-user-permissions","Database user permissions",[11,493,494,495,497],{},"Drift Scanner only reads from ",[114,496,125],{},". A read-only role with the minimum permissions below is enough:",[106,499,503],{"className":500,"code":501,"language":502,"meta":112,"style":112},"language-sql shiki shiki-themes github-light github-dark","CREATE USER arcnull_scanner WITH PASSWORD '\u003Cstrong-password>';\nGRANT CONNECT ON DATABASE myapp TO arcnull_scanner;\nGRANT USAGE ON SCHEMA pg_catalog TO arcnull_scanner;\n","sql",[114,504,505,512,517],{"__ignoreMap":112},[506,507,509],"span",{"class":508,"line":274},"line",[506,510,511],{},"CREATE USER arcnull_scanner WITH PASSWORD '\u003Cstrong-password>';\n",[506,513,514],{"class":508,"line":262},[506,515,516],{},"GRANT CONNECT ON DATABASE myapp TO arcnull_scanner;\n",[506,518,519],{"class":508,"line":357},[506,520,521],{},"GRANT USAGE ON SCHEMA pg_catalog TO arcnull_scanner;\n",[11,523,524,525,528],{},"We do ",[101,526,527],{},"not"," need DDL rights and never issue schema modifications. Your credentials are encrypted at rest using AES-256-GCM before persistence.",[15,530,532],{"id":531},"what-gets-captured","What gets captured",[11,534,535],{},"Each snapshot includes:",[169,537,538,544,550,556,562,567,572],{},[172,539,540,543],{},[101,541,542],{},"Tables"," — name, schema, kind",[172,545,546,549],{},[101,547,548],{},"Columns"," — name, type, default, nullability, ordinal position",[172,551,552,555],{},[101,553,554],{},"Indexes"," — name, columns, unique flag, method",[172,557,558,561],{},[101,559,560],{},"Constraints"," — primary keys, foreign keys, unique, check",[172,563,564,566],{},[101,565,180],{}," — name, start, increment",[172,568,569,571],{},[101,570,183],{}," — name, definition",[172,573,574,576],{},[101,575,186],{}," — name, argument types, return type, language",[11,578,579],{},"Snapshots include counts of tables, columns, and indexes at the top level for quick at-a-glance reporting.",[15,581,583],{"id":582},"what-is-not-captured","What is not captured",[11,585,586],{},"We intentionally ignore:",[169,588,589,597,603],{},[172,590,591,594,595,315],{},[101,592,593],{},"Table data."," We only read metadata from ",[114,596,125],{},[172,598,599,602],{},[101,600,601],{},"User and role grants."," On the roadmap.",[172,604,605,602],{},[101,606,607],{},"Extensions.",[15,609,611],{"id":610},"tier-caps","Tier caps",[38,613,614,623],{},[41,615,616],{},[44,617,618,620],{},[47,619,49],{},[47,621,622],{},"Max environments",[60,624,625,631,637],{},[44,626,627,629],{},[65,628,67],{},[65,630,70],{},[44,632,633,635],{},[65,634,81],{},[65,636,84],{},[44,638,639,642],{},[65,640,641],{},"Growth \u002F Scale",[65,643,644],{},"Unlimited",[11,646,647,648,651],{},"If you hit the cap, the API returns a ",[114,649,650],{},"400"," with a plan-limit message. Upgrade from the dashboard or deactivate an environment you no longer need.",[15,653,655],{"id":654},"cron-schedule","Cron schedule",[11,657,658,659,661,662,665],{},"Each environment has its own cron expression. The default is hourly (",[114,660,234],{},"). You can set anything that matches Spring's cron format — for example, ",[114,663,664],{},"0 *\u002F15 * * * *"," for every fifteen minutes. Tier-based rate limits still apply.",[15,667,669],{"id":668},"deactivating-an-environment","Deactivating an environment",[11,671,672],{},"Deactivating keeps history intact but stops future scans. It does not delete the environment. You can reactivate later from the dashboard.",[674,675,676],"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 .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":112,"searchDepth":262,"depth":262,"links":678},[679,682,683,684,685,686,687],{"id":376,"depth":262,"text":377,"children":680},[681],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},"An environment is one PostgreSQL database Drift Scanner monitors. This page covers JDBC URL rules, the minimum permissions we need, and what we capture in each snapshot.",{},{"title":52,"description":688},"docs\u002Fdrift-scanner\u002Fenvironments","_0CGQkQNaSPBlPlM6X3rVpsVHpAvY3RLxu4g_oeg7oY",{"id":694,"title":253,"body":695,"description":1057,"extension":271,"meta":1058,"navigation":273,"order":357,"path":252,"section":276,"seo":1059,"stem":1060,"updatedAt":279,"__hash__":1061},"docs\u002Fdocs\u002Fdrift-scanner\u002Fscanning.md",{"type":8,"value":696,"toc":1043},[697,707,711,718,721,725,728,748,751,755,762,804,808,811,815,818,832,836,839,854,858,861,881,906,910,917,989,995,999,1010,1014,1017,1025,1028,1032],[11,698,699,700,474,703,706],{},"Drift Scanner works off two primitives: ",[101,701,702],{},"snapshots",[101,704,705],{},"diffs",". Everything downstream — alerts, the event history, the dashboard summaries — is derived from these two things.",[15,708,710],{"id":709},"baselines","Baselines",[11,712,713,714,717],{},"The first snapshot captured for an environment becomes its ",[101,715,716],{},"baseline",". The baseline is the \"what the schema should look like\" reference. Drift Scanner compares every subsequent snapshot against it.",[11,719,720],{},"You can re-baseline at any time. Accepting drift (see below) tells Drift Scanner \"yes, the current state is the new truth\" and promotes the latest snapshot to the baseline.",[15,722,724],{"id":723},"scheduled-scans","Scheduled scans",[11,726,727],{},"On every tick of the environment's cron schedule, Drift Scanner:",[729,730,731,734,739,742,745],"ol",{},[172,732,733],{},"Connects to the database using the credentials you registered",[172,735,736,737],{},"Pulls metadata from ",[114,738,125],{},[172,740,741],{},"Builds a fresh snapshot and stores it",[172,743,744],{},"Diffs the new snapshot against the baseline",[172,746,747],{},"If the diff is non-empty, creates a drift event and fires alerts",[11,749,750],{},"A single scan on a modest database takes a few seconds. The service runs up to 100 concurrent environment scans platform-wide, with a 5-second connection timeout and a bulkhead of 20 concurrent drift scans.",[15,752,754],{"id":753},"manual-scans","Manual scans",[11,756,757,758,761],{},"You can trigger an ad-hoc scan from the dashboard or the API (",[114,759,760],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\u002Fscan","). Manual scans are rate-limited per tier:",[38,763,764,773],{},[41,765,766],{},[44,767,768,770],{},[47,769,49],{},[47,771,772],{},"Manual scans \u002F minute",[60,774,775,782,788,796],{},[44,776,777,779],{},[65,778,67],{},[65,780,781],{},"3",[44,783,784,786],{},[65,785,81],{},[65,787,84],{},[44,789,790,793],{},[65,791,792],{},"Growth",[65,794,795],{},"30",[44,797,798,801],{},[65,799,800],{},"Scale",[65,802,803],{},"60",[15,805,807],{"id":806},"diff-severity","Diff severity",[11,809,810],{},"Every change in a diff is assigned a severity. The event's overall severity is the highest severity of any single change.",[303,812,814],{"id":813},"info-safe-additions","INFO — safe additions",[11,816,817],{},"Changes that cannot break existing workloads. Examples:",[169,819,820,823,826,829],{},[172,821,822],{},"Adding a new index (non-unique)",[172,824,825],{},"Adding a new nullable column with a default",[172,827,828],{},"Adding a new table",[172,830,831],{},"Adding a new function",[303,833,835],{"id":834},"warning-risky-additions","WARNING — risky additions",[11,837,838],{},"Changes that are additive but can cause runtime pain in the wrong shape. Examples:",[169,840,841,848,851],{},[172,842,843,844,847],{},"Adding a ",[114,845,846],{},"NOT NULL"," column without a default (blocks inserts from older code paths)",[172,849,850],{},"Adding a unique index on a column that may already contain duplicates",[172,852,853],{},"Widening a primary key",[303,855,857],{"id":856},"breaking-destructive-changes","BREAKING — destructive changes",[11,859,860],{},"Changes that remove or rewrite committed schema. Examples:",[169,862,863,866,869,878],{},[172,864,865],{},"Dropping a column, table, index, or constraint",[172,867,868],{},"Changing a column type",[172,870,871,872,875,876,424],{},"Tightening a nullability constraint (",[114,873,874],{},"NULL"," → ",[114,877,846],{},[172,879,880],{},"Removing a foreign key",[11,882,883,884,150,887,150,889,150,892,150,895,150,898,901,902,905],{},"Each diff item carries ",[114,885,886],{},"severity",[114,888,38],{},[114,890,891],{},"column",[114,893,894],{},"changeType",[114,896,897],{},"description",[114,899,900],{},"recommendation",", and ",[114,903,904],{},"estimatedImpact"," — so you can surface actionable context in your alerts.",[15,907,909],{"id":908},"drift-events","Drift events",[11,911,912,913,916],{},"When a scan produces a non-empty diff, Drift Scanner writes a ",[114,914,915],{},"DriftEvent"," with:",[169,918,919,925,931,941,956,967,973,979],{},[172,920,921,924],{},[114,922,923],{},"id"," — event UUID",[172,926,927,930],{},[114,928,929],{},"envId"," — environment UUID",[172,932,933,936,937,940],{},[114,934,935],{},"baselineId"," \u002F ",[114,938,939],{},"currentId"," — the two snapshot IDs being compared",[172,942,943,945,946,150,949,952,953],{},[114,944,886],{}," — ",[114,947,948],{},"INFO",[114,950,951],{},"WARNING",", or ",[114,954,955],{},"BREAKING",[172,957,958,150,961,150,964],{},[114,959,960],{},"breakingCount",[114,962,963],{},"warningCount",[114,965,966],{},"infoCount",[172,968,969,972],{},[114,970,971],{},"acknowledged"," — did someone mark this as reviewed?",[172,974,975,978],{},[114,976,977],{},"detectedAt"," — when the scan that produced the event ran",[172,980,981,984,985,988],{},[114,982,983],{},"items"," — the full list of ",[114,986,987],{},"DiffItem","s",[11,990,991,992,315],{},"Events are paginated through ",[114,993,994],{},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents",[15,996,998],{"id":997},"acknowledging-an-event","Acknowledging an event",[11,1000,1001,1002,1005,1006,1009],{},"Call ",[114,1003,1004],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\u002Facknowledge"," (or click ",[101,1007,1008],{},"Acknowledge"," in the dashboard) to mark an event as reviewed. This does not change the baseline — it just signals that a human has seen it.",[15,1011,1013],{"id":1012},"accepting-drift-re-baselining","Accepting drift (re-baselining)",[11,1015,1016],{},"Acknowledgement and re-baselining are different. Re-baselining promotes the latest snapshot to become the new baseline, so future diffs are measured against it. Use this when:",[169,1018,1019,1022],{},[172,1020,1021],{},"You shipped an intentional migration and want to stop getting alerts about it",[172,1023,1024],{},"You manually hot-fixed the schema in production and have since committed it upstream",[11,1026,1027],{},"Re-baselining is available in the dashboard. It is not yet exposed as its own endpoint — use acknowledge + the next scheduled scan for now if you only care about silencing future alerts on already-seen drift.",[15,1029,1031],{"id":1030},"comparing-two-environments","Comparing two environments",[11,1033,1034,1035,1038,1039,1042],{},"You can also diff two environments directly (e.g. staging vs. production) via ",[114,1036,1037],{},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fcompare"," — useful for \"did my staging soak miss something?\" audits. See the ",[23,1040,1041],{"href":259},"API reference"," for the request shape.",{"title":112,"searchDepth":262,"depth":262,"links":1044},[1045,1046,1047,1048,1053,1054,1055,1056],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":1049},[1050,1051,1052],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},"How snapshots, diffs, and severity work. Understand the difference between INFO, WARNING, and BREAKING changes, and how to accept drift as a new baseline.",{},{"title":253,"description":1057},"docs\u002Fdrift-scanner\u002Fscanning","aix0DhcpPCMTeX5z9uQq-yKWrO6ohclRhoeJVScQTQI",{"id":1063,"title":196,"body":1064,"description":1544,"extension":271,"meta":1545,"navigation":273,"order":1168,"path":223,"section":276,"seo":1546,"stem":1547,"updatedAt":279,"__hash__":1548},"docs\u002Fdocs\u002Fdrift-scanner\u002Falerts.md",{"type":8,"value":1065,"toc":1533},[1066,1069,1073,1076,1085,1102,1105,1111,1114,1118,1125,1403,1414,1417,1420,1424,1433,1478,1481,1487,1491,1498,1502,1512,1516,1530],[11,1067,1068],{},"Drift Scanner can push alerts to three channels per environment. All three are optional — you can enable any combination, and each event is delivered once per enabled channel.",[15,1070,1072],{"id":1071},"channels","Channels",[303,1074,204],{"id":1075},"slack",[11,1077,1078,1079,1084],{},"Paste an ",[23,1080,1083],{"href":1081,"rel":1082},"https:\u002F\u002Fapi.slack.com\u002Fmessaging\u002Fwebhooks",[27],"incoming webhook URL"," into the environment's alert configuration. Messages are posted as plain markdown with a coloured attachment bar matching severity:",[169,1086,1087,1092,1097],{},[172,1088,1089,1091],{},[114,1090,955],{}," → red",[172,1093,1094,1096],{},[114,1095,951],{}," → orange",[172,1098,1099,1101],{},[114,1100,948],{}," → green",[11,1103,1104],{},"Example payload (the message body we render into the Slack webhook):",[106,1106,1109],{"className":1107,"code":1108,"language":111,"meta":112},[109],"*Schema Drift Detected*\nEnvironment: `production`\nSeverity: *BREAKING*\nChanges: 1 breaking, 0 warning, 2 info\n\n*Top Changes:*\n* [BREAKING] COLUMN_DROPPED — users.email column dropped\n* [INFO] INDEX_ADDED — orders.created_at_idx added\n* [INFO] INDEX_ADDED — sessions.user_id_idx added\n",[114,1110,1108],{"__ignoreMap":112},[11,1112,1113],{},"Only the first five changes are included in the message body to keep Slack digestible — the full diff is always available via the API or dashboard.",[303,1115,1117],{"id":1116},"webhook","Webhook",[11,1119,1120,1121,1124],{},"A generic JSON webhook we POST to on every drift event. The payload matches the shape returned by ",[114,1122,1123],{},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}",":",[106,1126,1130],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},"language-json shiki shiki-themes github-light github-dark","{\n  \"id\": \"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\",\n  \"envId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n  \"baselineId\": \"0ce3b9a2-3a8b-4f40-a6a2-4a1b92b8d2c6\",\n  \"currentId\": \"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\",\n  \"severity\": \"BREAKING\",\n  \"breakingCount\": 1,\n  \"warningCount\": 0,\n  \"infoCount\": 2,\n  \"environmentName\": \"production\",\n  \"acknowledged\": false,\n  \"detectedAt\": \"2026-04-20T15:10:22.187Z\",\n  \"items\": [\n    {\n      \"severity\": \"BREAKING\",\n      \"table\": \"users\",\n      \"column\": \"email\",\n      \"changeType\": \"COLUMN_DROPPED\",\n      \"description\": \"users.email column dropped\",\n      \"recommendation\": \"Restore the column or update callers before rolling forward.\",\n      \"estimatedImpact\": \"High — authentication flows depend on this column.\"\n    }\n  ]\n}\n","json",[114,1131,1132,1138,1154,1166,1179,1192,1205,1218,1231,1243,1256,1269,1282,1291,1297,1309,1322,1335,1348,1361,1374,1385,1391,1397],{"__ignoreMap":112},[506,1133,1134],{"class":508,"line":274},[506,1135,1137],{"class":1136},"sVt8B","{\n",[506,1139,1140,1144,1147,1151],{"class":508,"line":262},[506,1141,1143],{"class":1142},"sj4cs","  \"id\"",[506,1145,1146],{"class":1136},": ",[506,1148,1150],{"class":1149},"sZZnC","\"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\"",[506,1152,1153],{"class":1136},",\n",[506,1155,1156,1159,1161,1164],{"class":508,"line":357},[506,1157,1158],{"class":1142},"  \"envId\"",[506,1160,1146],{"class":1136},[506,1162,1163],{"class":1149},"\"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"",[506,1165,1153],{"class":1136},[506,1167,1169,1172,1174,1177],{"class":508,"line":1168},4,[506,1170,1171],{"class":1142},"  \"baselineId\"",[506,1173,1146],{"class":1136},[506,1175,1176],{"class":1149},"\"0ce3b9a2-3a8b-4f40-a6a2-4a1b92b8d2c6\"",[506,1178,1153],{"class":1136},[506,1180,1182,1185,1187,1190],{"class":508,"line":1181},5,[506,1183,1184],{"class":1142},"  \"currentId\"",[506,1186,1146],{"class":1136},[506,1188,1189],{"class":1149},"\"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\"",[506,1191,1153],{"class":1136},[506,1193,1195,1198,1200,1203],{"class":508,"line":1194},6,[506,1196,1197],{"class":1142},"  \"severity\"",[506,1199,1146],{"class":1136},[506,1201,1202],{"class":1149},"\"BREAKING\"",[506,1204,1153],{"class":1136},[506,1206,1208,1211,1213,1216],{"class":508,"line":1207},7,[506,1209,1210],{"class":1142},"  \"breakingCount\"",[506,1212,1146],{"class":1136},[506,1214,1215],{"class":1142},"1",[506,1217,1153],{"class":1136},[506,1219,1221,1224,1226,1229],{"class":508,"line":1220},8,[506,1222,1223],{"class":1142},"  \"warningCount\"",[506,1225,1146],{"class":1136},[506,1227,1228],{"class":1142},"0",[506,1230,1153],{"class":1136},[506,1232,1234,1237,1239,1241],{"class":508,"line":1233},9,[506,1235,1236],{"class":1142},"  \"infoCount\"",[506,1238,1146],{"class":1136},[506,1240,70],{"class":1142},[506,1242,1153],{"class":1136},[506,1244,1246,1249,1251,1254],{"class":508,"line":1245},10,[506,1247,1248],{"class":1142},"  \"environmentName\"",[506,1250,1146],{"class":1136},[506,1252,1253],{"class":1149},"\"production\"",[506,1255,1153],{"class":1136},[506,1257,1259,1262,1264,1267],{"class":508,"line":1258},11,[506,1260,1261],{"class":1142},"  \"acknowledged\"",[506,1263,1146],{"class":1136},[506,1265,1266],{"class":1142},"false",[506,1268,1153],{"class":1136},[506,1270,1272,1275,1277,1280],{"class":508,"line":1271},12,[506,1273,1274],{"class":1142},"  \"detectedAt\"",[506,1276,1146],{"class":1136},[506,1278,1279],{"class":1149},"\"2026-04-20T15:10:22.187Z\"",[506,1281,1153],{"class":1136},[506,1283,1285,1288],{"class":508,"line":1284},13,[506,1286,1287],{"class":1142},"  \"items\"",[506,1289,1290],{"class":1136},": [\n",[506,1292,1294],{"class":508,"line":1293},14,[506,1295,1296],{"class":1136},"    {\n",[506,1298,1300,1303,1305,1307],{"class":508,"line":1299},15,[506,1301,1302],{"class":1142},"      \"severity\"",[506,1304,1146],{"class":1136},[506,1306,1202],{"class":1149},[506,1308,1153],{"class":1136},[506,1310,1312,1315,1317,1320],{"class":508,"line":1311},16,[506,1313,1314],{"class":1142},"      \"table\"",[506,1316,1146],{"class":1136},[506,1318,1319],{"class":1149},"\"users\"",[506,1321,1153],{"class":1136},[506,1323,1325,1328,1330,1333],{"class":508,"line":1324},17,[506,1326,1327],{"class":1142},"      \"column\"",[506,1329,1146],{"class":1136},[506,1331,1332],{"class":1149},"\"email\"",[506,1334,1153],{"class":1136},[506,1336,1338,1341,1343,1346],{"class":508,"line":1337},18,[506,1339,1340],{"class":1142},"      \"changeType\"",[506,1342,1146],{"class":1136},[506,1344,1345],{"class":1149},"\"COLUMN_DROPPED\"",[506,1347,1153],{"class":1136},[506,1349,1351,1354,1356,1359],{"class":508,"line":1350},19,[506,1352,1353],{"class":1142},"      \"description\"",[506,1355,1146],{"class":1136},[506,1357,1358],{"class":1149},"\"users.email column dropped\"",[506,1360,1153],{"class":1136},[506,1362,1364,1367,1369,1372],{"class":508,"line":1363},20,[506,1365,1366],{"class":1142},"      \"recommendation\"",[506,1368,1146],{"class":1136},[506,1370,1371],{"class":1149},"\"Restore the column or update callers before rolling forward.\"",[506,1373,1153],{"class":1136},[506,1375,1377,1380,1382],{"class":508,"line":1376},21,[506,1378,1379],{"class":1142},"      \"estimatedImpact\"",[506,1381,1146],{"class":1136},[506,1383,1384],{"class":1149},"\"High — authentication flows depend on this column.\"\n",[506,1386,1388],{"class":508,"line":1387},22,[506,1389,1390],{"class":1136},"    }\n",[506,1392,1394],{"class":508,"line":1393},23,[506,1395,1396],{"class":1136},"  ]\n",[506,1398,1400],{"class":508,"line":1399},24,[506,1401,1402],{"class":1136},"}\n",[11,1404,1405,1406,1409,1410,1413],{},"The request is a standard ",[114,1407,1408],{},"POST"," with ",[114,1411,1412],{},"Content-Type: application\u002Fjson",". HTTP 2xx from your endpoint is treated as success; anything else triggers the retry policy below.",[303,1415,216],{"id":1416},"email",[11,1418,1419],{},"Email alerts are delivered via Resend to the email on file for your tenant. There is no per-environment override today — it lives on your tenant record. On the roadmap: per-environment recipients and digest mode.",[15,1421,1423],{"id":1422},"delivery-guarantees","Delivery guarantees",[11,1425,1426,1427,1432],{},"Each sender is isolated as its own Spring bean with ",[23,1428,1431],{"href":1429,"rel":1430},"https:\u002F\u002Fresilience4j.readme.io\u002F",[27],"Resilience4j"," wrapped around it, so a flaky Slack webhook can't degrade email or the generic webhook.",[38,1434,1435,1448],{},[41,1436,1437],{},[44,1438,1439,1442,1445],{},[47,1440,1441],{},"Channel",[47,1443,1444],{},"Retry policy",[47,1446,1447],{},"Circuit breaker",[60,1449,1450,1460,1468],{},[44,1451,1452,1454,1457],{},[65,1453,1117],{},[65,1455,1456],{},"3 attempts, 2s base with exponential backoff (x2)",[65,1458,1459],{},"Opens at 70% failure rate across a 10-call window; stays open 30s",[44,1461,1462,1464,1466],{},[65,1463,204],{},[65,1465,1456],{},[65,1467,1459],{},[44,1469,1470,1472,1475],{},[65,1471,216],{},[65,1473,1474],{},"3 attempts, 5s base",[65,1476,1477],{},"Opens at 50% failure rate across a 5-call window; stays open 120s",[11,1479,1480],{},"All three share a bulkhead of 5 concurrent calls per channel to keep one slow endpoint from blocking others.",[11,1482,1483,1484,1486],{},"Circuit-broken alerts are logged but not queued — if your webhook is down long enough to trip the breaker, backfill from ",[114,1485,994],{}," once it recovers.",[15,1488,1490],{"id":1489},"idempotency","Idempotency",[11,1492,1493,1494,1497],{},"Each dispatch uses a SHA-256 key derived from ",[114,1495,1496],{},"envId + baselineId + currentId",", so duplicate events (e.g. a retried scan) are detectable in logs.",[15,1499,1501],{"id":1500},"testing-alerts","Testing alerts",[11,1503,1504,1505,1508,1509,1511],{},"From the dashboard, each channel has a ",[101,1506,1507],{},"Send test event"," action that fires a synthetic ",[114,1510,948],{}," diff through the configured sender. Use this to verify your Slack channel or webhook endpoint is reachable before relying on it in production.",[15,1513,1515],{"id":1514},"roadmap","Roadmap",[169,1517,1518,1521,1524,1527],{},[172,1519,1520],{},"Per-environment email recipients",[172,1522,1523],{},"Digest mode (batched alerts every N minutes)",[172,1525,1526],{},"PagerDuty, Opsgenie, and Microsoft Teams channels",[172,1528,1529],{},"Signed webhook payloads (HMAC-SHA256 header)",[674,1531,1532],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":112,"searchDepth":262,"depth":262,"links":1534},[1535,1540,1541,1542,1543],{"id":1071,"depth":262,"text":1072,"children":1536},[1537,1538,1539],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},"Configure Slack, webhook, and email alerts for drift events. Includes the exact webhook payload shape, Slack message format, and resilience behaviour.",{},{"title":196,"description":1544},"docs\u002Fdrift-scanner\u002Falerts","Ry_PLC5LfwEC7Burk2wPsBkAHT_YCJASRRp8QIRKs4E",{"id":1550,"title":1041,"body":1551,"description":3264,"extension":271,"meta":3265,"navigation":273,"order":1181,"path":259,"section":276,"seo":3266,"stem":3267,"updatedAt":279,"__hash__":3268},"docs\u002Fdocs\u002Fdrift-scanner\u002Fapi-reference.md",{"type":8,"value":1552,"toc":3242},[1553,1560,1634,1638,1644,1648,1651,1662,1668,1676,1680,1693,1756,1759,1784,1787,1790,1794,1803,1806,1876,1915,1922,2010,2014,2023,2026,2146,2150,2159,2163,2172,2182,2184,2188,2192,2201,2204,2316,2351,2353,2357,2366,2369,2371,2405,2408,2590,2592,2596,2609,2618,2620,2655,2657,2858,2860,2862,2866,2875,2882,3104,3108,3117,3121,3130,3133,3135,3139,3239],[11,1554,1555,1556,1559],{},"The Drift Scanner API lives at ",[114,1557,1558],{},"https:\u002F\u002Fdrift.arcnull.com",". All responses are wrapped in a standard envelope:",[106,1561,1563],{"className":1127,"code":1562,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": { \u002F* typed payload *\u002F },\n  \"message\": \"Human-readable message (optional)\",\n  \"errorCode\": null,\n  \"timestamp\": \"2026-04-20T15:10:22.187Z\"\n}\n",[114,1564,1565,1569,1581,1596,1608,1620,1630],{"__ignoreMap":112},[506,1566,1567],{"class":508,"line":274},[506,1568,1137],{"class":1136},[506,1570,1571,1574,1576,1579],{"class":508,"line":262},[506,1572,1573],{"class":1142},"  \"success\"",[506,1575,1146],{"class":1136},[506,1577,1578],{"class":1142},"true",[506,1580,1153],{"class":1136},[506,1582,1583,1586,1589,1593],{"class":508,"line":357},[506,1584,1585],{"class":1142},"  \"data\"",[506,1587,1588],{"class":1136},": { ",[506,1590,1592],{"class":1591},"sJ8bj","\u002F* typed payload *\u002F",[506,1594,1595],{"class":1136}," },\n",[506,1597,1598,1601,1603,1606],{"class":508,"line":1168},[506,1599,1600],{"class":1142},"  \"message\"",[506,1602,1146],{"class":1136},[506,1604,1605],{"class":1149},"\"Human-readable message (optional)\"",[506,1607,1153],{"class":1136},[506,1609,1610,1613,1615,1618],{"class":508,"line":1181},[506,1611,1612],{"class":1142},"  \"errorCode\"",[506,1614,1146],{"class":1136},[506,1616,1617],{"class":1142},"null",[506,1619,1153],{"class":1136},[506,1621,1622,1625,1627],{"class":508,"line":1194},[506,1623,1624],{"class":1142},"  \"timestamp\"",[506,1626,1146],{"class":1136},[506,1628,1629],{"class":1149},"\"2026-04-20T15:10:22.187Z\"\n",[506,1631,1632],{"class":508,"line":1207},[506,1633,1402],{"class":1136},[15,1635,1637],{"id":1636},"base-url","Base URL",[106,1639,1642],{"className":1640,"code":1641,"language":111,"meta":112},[109],"https:\u002F\u002Fdrift.arcnull.com\n",[114,1643,1641],{"__ignoreMap":112},[15,1645,1647],{"id":1646},"authentication","Authentication",[11,1649,1650],{},"Every endpoint requires a JWT issued by the platform auth service. Pass it as a bearer token:",[106,1652,1656],{"className":1653,"code":1654,"language":1655,"meta":112,"style":112},"language-http shiki shiki-themes github-light github-dark","Authorization: Bearer \u003Cjwt>\n","http",[114,1657,1658],{"__ignoreMap":112},[506,1659,1660],{"class":508,"line":274},[506,1661,1654],{},[11,1663,1664,1665,1667],{},"You can mint a JWT by logging in through ",[114,1666,294],{}," and pulling the token from your dashboard, or by calling the auth API directly (see platform docs — coming soon).",[139,1669,1670],{},[11,1671,1672,1675],{},[101,1673,1674],{},"Customer API keys are coming soon."," A long-lived API key flow for server-to-server usage is on the roadmap. For now, use a JWT from a logged-in session. When API keys ship, you will be able to mint up to 1 (free) \u002F 5 (pro) \u002F 10+ (growth+) per tenant.",[15,1677,1679],{"id":1678},"errors","Errors",[11,1681,1682,1683,1686,1687,474,1690,1124],{},"Errors return ",[114,1684,1685],{},"success: false"," with an ",[114,1688,1689],{},"errorCode",[114,1691,1692],{},"message",[106,1694,1696],{"className":1127,"code":1695,"language":1129,"meta":112,"style":112},"{\n  \"success\": false,\n  \"data\": null,\n  \"message\": \"Plan limit reached: your current plan allows up to 2 drift environments. Upgrade your plan to add more.\",\n  \"errorCode\": \"BAD_REQUEST\",\n  \"timestamp\": \"2026-04-20T15:10:22.187Z\"\n}\n",[114,1697,1698,1702,1712,1722,1733,1744,1752],{"__ignoreMap":112},[506,1699,1700],{"class":508,"line":274},[506,1701,1137],{"class":1136},[506,1703,1704,1706,1708,1710],{"class":508,"line":262},[506,1705,1573],{"class":1142},[506,1707,1146],{"class":1136},[506,1709,1266],{"class":1142},[506,1711,1153],{"class":1136},[506,1713,1714,1716,1718,1720],{"class":508,"line":357},[506,1715,1585],{"class":1142},[506,1717,1146],{"class":1136},[506,1719,1617],{"class":1142},[506,1721,1153],{"class":1136},[506,1723,1724,1726,1728,1731],{"class":508,"line":1168},[506,1725,1600],{"class":1142},[506,1727,1146],{"class":1136},[506,1729,1730],{"class":1149},"\"Plan limit reached: your current plan allows up to 2 drift environments. Upgrade your plan to add more.\"",[506,1732,1153],{"class":1136},[506,1734,1735,1737,1739,1742],{"class":508,"line":1181},[506,1736,1612],{"class":1142},[506,1738,1146],{"class":1136},[506,1740,1741],{"class":1149},"\"BAD_REQUEST\"",[506,1743,1153],{"class":1136},[506,1745,1746,1748,1750],{"class":508,"line":1194},[506,1747,1624],{"class":1142},[506,1749,1146],{"class":1136},[506,1751,1629],{"class":1149},[506,1753,1754],{"class":508,"line":1207},[506,1755,1402],{"class":1136},[11,1757,1758],{},"Common HTTP statuses:",[169,1760,1761,1766,1772,1778],{},[172,1762,1763,1765],{},[114,1764,650],{}," — validation \u002F plan-limit \u002F SSRF rejection",[172,1767,1768,1771],{},[114,1769,1770],{},"401"," — missing or invalid JWT",[172,1773,1774,1777],{},[114,1775,1776],{},"404"," — resource not found for this tenant",[172,1779,1780,1783],{},[114,1781,1782],{},"429"," — manual scan rate limit exceeded",[1785,1786],"hr",{},[15,1788,52],{"id":1789},"environments",[303,1791,1793],{"id":1792},"register-an-environment","Register an environment",[106,1795,1797],{"className":1653,"code":1796,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\n",[114,1798,1799],{"__ignoreMap":112},[506,1800,1801],{"class":508,"line":274},[506,1802,1796],{},[11,1804,1805],{},"Request:",[106,1807,1809],{"className":1127,"code":1808,"language":1129,"meta":112,"style":112},"{\n  \"name\": \"production\",\n  \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n  \"username\": \"arcnull_scanner\",\n  \"password\": \"\u003Cstrong-password>\",\n  \"scanCron\": \"0 0 * * * *\"\n}\n",[114,1810,1811,1815,1826,1838,1850,1862,1872],{"__ignoreMap":112},[506,1812,1813],{"class":508,"line":274},[506,1814,1137],{"class":1136},[506,1816,1817,1820,1822,1824],{"class":508,"line":262},[506,1818,1819],{"class":1142},"  \"name\"",[506,1821,1146],{"class":1136},[506,1823,1253],{"class":1149},[506,1825,1153],{"class":1136},[506,1827,1828,1831,1833,1836],{"class":508,"line":357},[506,1829,1830],{"class":1142},"  \"jdbcUrl\"",[506,1832,1146],{"class":1136},[506,1834,1835],{"class":1149},"\"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\"",[506,1837,1153],{"class":1136},[506,1839,1840,1843,1845,1848],{"class":508,"line":1168},[506,1841,1842],{"class":1142},"  \"username\"",[506,1844,1146],{"class":1136},[506,1846,1847],{"class":1149},"\"arcnull_scanner\"",[506,1849,1153],{"class":1136},[506,1851,1852,1855,1857,1860],{"class":508,"line":1181},[506,1853,1854],{"class":1142},"  \"password\"",[506,1856,1146],{"class":1136},[506,1858,1859],{"class":1149},"\"\u003Cstrong-password>\"",[506,1861,1153],{"class":1136},[506,1863,1864,1867,1869],{"class":508,"line":1194},[506,1865,1866],{"class":1142},"  \"scanCron\"",[506,1868,1146],{"class":1136},[506,1870,1871],{"class":1149},"\"0 0 * * * *\"\n",[506,1873,1874],{"class":508,"line":1207},[506,1875,1402],{"class":1136},[169,1877,1878,1884,1894,1900,1906],{},[172,1879,1880,1883],{},[114,1881,1882],{},"name"," — 1-100 chars, must start with a letter or digit, letters\u002Fdigits\u002Fspaces\u002Fhyphens\u002Funderscores",[172,1885,1886,1889,1890,1893],{},[114,1887,1888],{},"jdbcUrl"," — must match ",[114,1891,1892],{},"jdbc:postgresql:\u002F\u002Fhost\u002Fdb(?params)?",", must not resolve to loopback, private, link-local, metadata, or CGNAT ranges",[172,1895,1896,1899],{},[114,1897,1898],{},"username"," — valid PostgreSQL identifier (up to 63 chars)",[172,1901,1902,1905],{},[114,1903,1904],{},"password"," — up to 512 chars",[172,1907,1908,1911,1912,1914],{},[114,1909,1910],{},"scanCron"," — optional Spring cron expression (6 fields); defaults to ",[114,1913,234],{}," (top of every hour)",[11,1916,1917,1918,1921],{},"Response: ",[114,1919,1920],{},"201 Created"," with the new environment.",[106,1923,1927],{"className":1924,"code":1925,"language":1926,"meta":112,"style":112},"language-bash shiki shiki-themes github-light github-dark","curl -X POST https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments \\\n  -H \"Authorization: Bearer $JWT\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"production\",\n    \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n    \"username\": \"arcnull_scanner\",\n    \"password\": \"secret\",\n    \"scanCron\": \"0 0 * * * *\"\n  }'\n","bash",[114,1928,1929,1947,1963,1972,1980,1985,1990,1995,2000,2005],{"__ignoreMap":112},[506,1930,1931,1935,1938,1941,1944],{"class":508,"line":274},[506,1932,1934],{"class":1933},"sScJk","curl",[506,1936,1937],{"class":1142}," -X",[506,1939,1940],{"class":1149}," POST",[506,1942,1943],{"class":1149}," https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments",[506,1945,1946],{"class":1142}," \\\n",[506,1948,1949,1952,1955,1958,1961],{"class":508,"line":262},[506,1950,1951],{"class":1142},"  -H",[506,1953,1954],{"class":1149}," \"Authorization: Bearer ",[506,1956,1957],{"class":1136},"$JWT",[506,1959,1960],{"class":1149},"\"",[506,1962,1946],{"class":1142},[506,1964,1965,1967,1970],{"class":508,"line":357},[506,1966,1951],{"class":1142},[506,1968,1969],{"class":1149}," \"Content-Type: application\u002Fjson\"",[506,1971,1946],{"class":1142},[506,1973,1974,1977],{"class":508,"line":1168},[506,1975,1976],{"class":1142},"  -d",[506,1978,1979],{"class":1149}," '{\n",[506,1981,1982],{"class":508,"line":1181},[506,1983,1984],{"class":1149},"    \"name\": \"production\",\n",[506,1986,1987],{"class":508,"line":1194},[506,1988,1989],{"class":1149},"    \"jdbcUrl\": \"jdbc:postgresql:\u002F\u002Fprod-db.example.com:5432\u002Fmyapp\",\n",[506,1991,1992],{"class":508,"line":1207},[506,1993,1994],{"class":1149},"    \"username\": \"arcnull_scanner\",\n",[506,1996,1997],{"class":508,"line":1220},[506,1998,1999],{"class":1149},"    \"password\": \"secret\",\n",[506,2001,2002],{"class":508,"line":1233},[506,2003,2004],{"class":1149},"    \"scanCron\": \"0 0 * * * *\"\n",[506,2006,2007],{"class":508,"line":1245},[506,2008,2009],{"class":1149},"  }'\n",[303,2011,2013],{"id":2012},"list-environments","List environments",[106,2015,2017],{"className":1653,"code":2016,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\n",[114,2018,2019],{"__ignoreMap":112},[506,2020,2021],{"class":508,"line":274},[506,2022,2016],{},[11,2024,2025],{},"Returns all active environments for the authenticated tenant.",[106,2027,2029],{"className":1127,"code":2028,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n      \"name\": \"production\",\n      \"status\": \"READY\",\n      \"scanCron\": \"0 0 * * * *\",\n      \"active\": true,\n      \"lastScanned\": \"2026-04-20T15:00:00Z\",\n      \"createdAt\": \"2026-04-19T09:14:23Z\"\n    }\n  ]\n}\n",[114,2030,2031,2035,2045,2051,2055,2066,2077,2089,2101,2112,2124,2134,2138,2142],{"__ignoreMap":112},[506,2032,2033],{"class":508,"line":274},[506,2034,1137],{"class":1136},[506,2036,2037,2039,2041,2043],{"class":508,"line":262},[506,2038,1573],{"class":1142},[506,2040,1146],{"class":1136},[506,2042,1578],{"class":1142},[506,2044,1153],{"class":1136},[506,2046,2047,2049],{"class":508,"line":357},[506,2048,1585],{"class":1142},[506,2050,1290],{"class":1136},[506,2052,2053],{"class":508,"line":1168},[506,2054,1296],{"class":1136},[506,2056,2057,2060,2062,2064],{"class":508,"line":1181},[506,2058,2059],{"class":1142},"      \"id\"",[506,2061,1146],{"class":1136},[506,2063,1163],{"class":1149},[506,2065,1153],{"class":1136},[506,2067,2068,2071,2073,2075],{"class":508,"line":1194},[506,2069,2070],{"class":1142},"      \"name\"",[506,2072,1146],{"class":1136},[506,2074,1253],{"class":1149},[506,2076,1153],{"class":1136},[506,2078,2079,2082,2084,2087],{"class":508,"line":1207},[506,2080,2081],{"class":1142},"      \"status\"",[506,2083,1146],{"class":1136},[506,2085,2086],{"class":1149},"\"READY\"",[506,2088,1153],{"class":1136},[506,2090,2091,2094,2096,2099],{"class":508,"line":1220},[506,2092,2093],{"class":1142},"      \"scanCron\"",[506,2095,1146],{"class":1136},[506,2097,2098],{"class":1149},"\"0 0 * * * *\"",[506,2100,1153],{"class":1136},[506,2102,2103,2106,2108,2110],{"class":508,"line":1233},[506,2104,2105],{"class":1142},"      \"active\"",[506,2107,1146],{"class":1136},[506,2109,1578],{"class":1142},[506,2111,1153],{"class":1136},[506,2113,2114,2117,2119,2122],{"class":508,"line":1245},[506,2115,2116],{"class":1142},"      \"lastScanned\"",[506,2118,1146],{"class":1136},[506,2120,2121],{"class":1149},"\"2026-04-20T15:00:00Z\"",[506,2123,1153],{"class":1136},[506,2125,2126,2129,2131],{"class":508,"line":1258},[506,2127,2128],{"class":1142},"      \"createdAt\"",[506,2130,1146],{"class":1136},[506,2132,2133],{"class":1149},"\"2026-04-19T09:14:23Z\"\n",[506,2135,2136],{"class":508,"line":1271},[506,2137,1390],{"class":1136},[506,2139,2140],{"class":508,"line":1284},[506,2141,1396],{"class":1136},[506,2143,2144],{"class":508,"line":1293},[506,2145,1402],{"class":1136},[303,2147,2149],{"id":2148},"get-an-environment","Get an environment",[106,2151,2153],{"className":1653,"code":2152,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\n",[114,2154,2155],{"__ignoreMap":112},[506,2156,2157],{"class":508,"line":274},[506,2158,2152],{},[303,2160,2162],{"id":2161},"deactivate-an-environment","Deactivate an environment",[106,2164,2166],{"className":1653,"code":2165,"language":1655,"meta":112,"style":112},"DELETE \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\n",[114,2167,2168],{"__ignoreMap":112},[506,2169,2170],{"class":508,"line":274},[506,2171,2165],{},[11,2173,2174,2175,2178,2179,315],{},"Sets the environment's ",[114,2176,2177],{},"active"," flag to false. History is retained. Returns ",[114,2180,2181],{},"200 OK",[1785,2183],{},[15,2185,2187],{"id":2186},"scanning","Scanning",[303,2189,2191],{"id":2190},"trigger-a-manual-scan","Trigger a manual scan",[106,2193,2195],{"className":1653,"code":2194,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F{id}\u002Fscan\n",[114,2196,2197],{"__ignoreMap":112},[506,2198,2199],{"class":508,"line":274},[506,2200,2194],{},[11,2202,2203],{},"Rate-limited per tier (free: 3\u002Fmin, pro: 10\u002Fmin). Returns the snapshot that was produced:",[106,2205,2207],{"className":1127,"code":2206,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"b7d1a3c4-2a3e-4b7e-9a4f-1c2e9b0d3a77\",\n    \"checksum\": \"sha256:9c3a...\",\n    \"tablesCount\": 42,\n    \"columnsCount\": 317,\n    \"indexesCount\": 88,\n    \"capturedAt\": \"2026-04-20T15:10:22.187Z\"\n  },\n  \"message\": \"Scan completed\"\n}\n",[114,2208,2209,2213,2223,2230,2241,2253,2265,2277,2289,2298,2303,2312],{"__ignoreMap":112},[506,2210,2211],{"class":508,"line":274},[506,2212,1137],{"class":1136},[506,2214,2215,2217,2219,2221],{"class":508,"line":262},[506,2216,1573],{"class":1142},[506,2218,1146],{"class":1136},[506,2220,1578],{"class":1142},[506,2222,1153],{"class":1136},[506,2224,2225,2227],{"class":508,"line":357},[506,2226,1585],{"class":1142},[506,2228,2229],{"class":1136},": {\n",[506,2231,2232,2235,2237,2239],{"class":508,"line":1168},[506,2233,2234],{"class":1142},"    \"id\"",[506,2236,1146],{"class":1136},[506,2238,1189],{"class":1149},[506,2240,1153],{"class":1136},[506,2242,2243,2246,2248,2251],{"class":508,"line":1181},[506,2244,2245],{"class":1142},"    \"checksum\"",[506,2247,1146],{"class":1136},[506,2249,2250],{"class":1149},"\"sha256:9c3a...\"",[506,2252,1153],{"class":1136},[506,2254,2255,2258,2260,2263],{"class":508,"line":1194},[506,2256,2257],{"class":1142},"    \"tablesCount\"",[506,2259,1146],{"class":1136},[506,2261,2262],{"class":1142},"42",[506,2264,1153],{"class":1136},[506,2266,2267,2270,2272,2275],{"class":508,"line":1207},[506,2268,2269],{"class":1142},"    \"columnsCount\"",[506,2271,1146],{"class":1136},[506,2273,2274],{"class":1142},"317",[506,2276,1153],{"class":1136},[506,2278,2279,2282,2284,2287],{"class":508,"line":1220},[506,2280,2281],{"class":1142},"    \"indexesCount\"",[506,2283,1146],{"class":1136},[506,2285,2286],{"class":1142},"88",[506,2288,1153],{"class":1136},[506,2290,2291,2294,2296],{"class":508,"line":1233},[506,2292,2293],{"class":1142},"    \"capturedAt\"",[506,2295,1146],{"class":1136},[506,2297,1629],{"class":1149},[506,2299,2300],{"class":508,"line":1245},[506,2301,2302],{"class":1136},"  },\n",[506,2304,2305,2307,2309],{"class":508,"line":1258},[506,2306,1600],{"class":1142},[506,2308,1146],{"class":1136},[506,2310,2311],{"class":1149},"\"Scan completed\"\n",[506,2313,2314],{"class":508,"line":1271},[506,2315,1402],{"class":1136},[106,2317,2319],{"className":1924,"code":2318,"language":1926,"meta":112,"style":112},"curl -X POST https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F$ENV_ID\u002Fscan \\\n  -H \"Authorization: Bearer $JWT\"\n",[114,2320,2321,2340],{"__ignoreMap":112},[506,2322,2323,2325,2327,2329,2332,2335,2338],{"class":508,"line":274},[506,2324,1934],{"class":1933},[506,2326,1937],{"class":1142},[506,2328,1940],{"class":1149},[506,2330,2331],{"class":1149}," https:\u002F\u002Fdrift.arcnull.com\u002Fapi\u002Fv1\u002Fdrift\u002Fenvironments\u002F",[506,2333,2334],{"class":1136},"$ENV_ID",[506,2336,2337],{"class":1149},"\u002Fscan",[506,2339,1946],{"class":1142},[506,2341,2342,2344,2346,2348],{"class":508,"line":262},[506,2343,1951],{"class":1142},[506,2345,1954],{"class":1149},[506,2347,1957],{"class":1136},[506,2349,2350],{"class":1149},"\"\n",[1785,2352],{},[15,2354,2356],{"id":2355},"compare-two-environments","Compare two environments",[106,2358,2360],{"className":1653,"code":2359,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fcompare\n",[114,2361,2362],{"__ignoreMap":112},[506,2363,2364],{"class":508,"line":274},[506,2365,2359],{},[11,2367,2368],{},"Diffs the latest snapshot of one environment against another — useful for \"did staging catch everything production ships?\"",[11,2370,1805],{},[106,2372,2374],{"className":1127,"code":2373,"language":1129,"meta":112,"style":112},"{\n  \"baseEnvId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n  \"headEnvId\": \"7c1d4e2a-9b3f-4a1c-8d02-3e47f9b8c211\"\n}\n",[114,2375,2376,2380,2391,2401],{"__ignoreMap":112},[506,2377,2378],{"class":508,"line":274},[506,2379,1137],{"class":1136},[506,2381,2382,2385,2387,2389],{"class":508,"line":262},[506,2383,2384],{"class":1142},"  \"baseEnvId\"",[506,2386,1146],{"class":1136},[506,2388,1163],{"class":1149},[506,2390,1153],{"class":1136},[506,2392,2393,2396,2398],{"class":508,"line":357},[506,2394,2395],{"class":1142},"  \"headEnvId\"",[506,2397,1146],{"class":1136},[506,2399,2400],{"class":1149},"\"7c1d4e2a-9b3f-4a1c-8d02-3e47f9b8c211\"\n",[506,2402,2403],{"class":508,"line":1168},[506,2404,1402],{"class":1136},[11,2406,2407],{},"Response:",[106,2409,2411],{"className":1127,"code":2410,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"severity\": \"WARNING\",\n    \"breakingCount\": 0,\n    \"warningCount\": 1,\n    \"infoCount\": 3,\n    \"items\": [\n      {\n        \"severity\": \"WARNING\",\n        \"table\": \"orders\",\n        \"column\": \"shipping_country\",\n        \"changeType\": \"COLUMN_ADDED_NOT_NULL_NO_DEFAULT\",\n        \"description\": \"orders.shipping_country added as NOT NULL without default\",\n        \"recommendation\": \"Backfill and add a default before rolling forward.\",\n        \"estimatedImpact\": \"Inserts from older code paths will fail.\"\n      }\n    ]\n  }\n}\n",[114,2412,2413,2417,2427,2433,2445,2456,2467,2478,2485,2490,2501,2513,2525,2537,2549,2561,2571,2576,2581,2586],{"__ignoreMap":112},[506,2414,2415],{"class":508,"line":274},[506,2416,1137],{"class":1136},[506,2418,2419,2421,2423,2425],{"class":508,"line":262},[506,2420,1573],{"class":1142},[506,2422,1146],{"class":1136},[506,2424,1578],{"class":1142},[506,2426,1153],{"class":1136},[506,2428,2429,2431],{"class":508,"line":357},[506,2430,1585],{"class":1142},[506,2432,2229],{"class":1136},[506,2434,2435,2438,2440,2443],{"class":508,"line":1168},[506,2436,2437],{"class":1142},"    \"severity\"",[506,2439,1146],{"class":1136},[506,2441,2442],{"class":1149},"\"WARNING\"",[506,2444,1153],{"class":1136},[506,2446,2447,2450,2452,2454],{"class":508,"line":1181},[506,2448,2449],{"class":1142},"    \"breakingCount\"",[506,2451,1146],{"class":1136},[506,2453,1228],{"class":1142},[506,2455,1153],{"class":1136},[506,2457,2458,2461,2463,2465],{"class":508,"line":1194},[506,2459,2460],{"class":1142},"    \"warningCount\"",[506,2462,1146],{"class":1136},[506,2464,1215],{"class":1142},[506,2466,1153],{"class":1136},[506,2468,2469,2472,2474,2476],{"class":508,"line":1207},[506,2470,2471],{"class":1142},"    \"infoCount\"",[506,2473,1146],{"class":1136},[506,2475,781],{"class":1142},[506,2477,1153],{"class":1136},[506,2479,2480,2483],{"class":508,"line":1220},[506,2481,2482],{"class":1142},"    \"items\"",[506,2484,1290],{"class":1136},[506,2486,2487],{"class":508,"line":1233},[506,2488,2489],{"class":1136},"      {\n",[506,2491,2492,2495,2497,2499],{"class":508,"line":1245},[506,2493,2494],{"class":1142},"        \"severity\"",[506,2496,1146],{"class":1136},[506,2498,2442],{"class":1149},[506,2500,1153],{"class":1136},[506,2502,2503,2506,2508,2511],{"class":508,"line":1258},[506,2504,2505],{"class":1142},"        \"table\"",[506,2507,1146],{"class":1136},[506,2509,2510],{"class":1149},"\"orders\"",[506,2512,1153],{"class":1136},[506,2514,2515,2518,2520,2523],{"class":508,"line":1271},[506,2516,2517],{"class":1142},"        \"column\"",[506,2519,1146],{"class":1136},[506,2521,2522],{"class":1149},"\"shipping_country\"",[506,2524,1153],{"class":1136},[506,2526,2527,2530,2532,2535],{"class":508,"line":1284},[506,2528,2529],{"class":1142},"        \"changeType\"",[506,2531,1146],{"class":1136},[506,2533,2534],{"class":1149},"\"COLUMN_ADDED_NOT_NULL_NO_DEFAULT\"",[506,2536,1153],{"class":1136},[506,2538,2539,2542,2544,2547],{"class":508,"line":1293},[506,2540,2541],{"class":1142},"        \"description\"",[506,2543,1146],{"class":1136},[506,2545,2546],{"class":1149},"\"orders.shipping_country added as NOT NULL without default\"",[506,2548,1153],{"class":1136},[506,2550,2551,2554,2556,2559],{"class":508,"line":1299},[506,2552,2553],{"class":1142},"        \"recommendation\"",[506,2555,1146],{"class":1136},[506,2557,2558],{"class":1149},"\"Backfill and add a default before rolling forward.\"",[506,2560,1153],{"class":1136},[506,2562,2563,2566,2568],{"class":508,"line":1311},[506,2564,2565],{"class":1142},"        \"estimatedImpact\"",[506,2567,1146],{"class":1136},[506,2569,2570],{"class":1149},"\"Inserts from older code paths will fail.\"\n",[506,2572,2573],{"class":508,"line":1324},[506,2574,2575],{"class":1136},"      }\n",[506,2577,2578],{"class":508,"line":1337},[506,2579,2580],{"class":1136},"    ]\n",[506,2582,2583],{"class":508,"line":1350},[506,2584,2585],{"class":1136},"  }\n",[506,2587,2588],{"class":508,"line":1363},[506,2589,1402],{"class":1136},[1785,2591],{},[15,2593,2595],{"id":2594},"migration-analysis","Migration analysis",[11,2597,2598,2599,936,2602,936,2605,2608],{},"Run a proposed ",[114,2600,2601],{},"CREATE TABLE",[114,2603,2604],{},"ALTER TABLE",[114,2606,2607],{},"DROP"," statement through the analyzer to get a pre-flight safety report.",[106,2610,2612],{"className":1653,"code":2611,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fmigrations\u002Fanalyze\n",[114,2613,2614],{"__ignoreMap":112},[506,2615,2616],{"class":508,"line":274},[506,2617,2611],{},[11,2619,1805],{},[106,2621,2623],{"className":1127,"code":2622,"language":1129,"meta":112,"style":112},"{\n  \"sql\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\",\n  \"environmentId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"\n}\n",[114,2624,2625,2629,2641,2651],{"__ignoreMap":112},[506,2626,2627],{"class":508,"line":274},[506,2628,1137],{"class":1136},[506,2630,2631,2634,2636,2639],{"class":508,"line":262},[506,2632,2633],{"class":1142},"  \"sql\"",[506,2635,1146],{"class":1136},[506,2637,2638],{"class":1149},"\"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\"",[506,2640,1153],{"class":1136},[506,2642,2643,2646,2648],{"class":508,"line":357},[506,2644,2645],{"class":1142},"  \"environmentId\"",[506,2647,1146],{"class":1136},[506,2649,2650],{"class":1149},"\"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\"\n",[506,2652,2653],{"class":508,"line":1168},[506,2654,1402],{"class":1136},[11,2656,2407],{},[106,2658,2660],{"className":1127,"code":2659,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"safe\": false,\n    \"overallRisk\": \"HIGH\",\n    \"recommendation\": \"Add as NULL, backfill, then tighten to NOT NULL.\",\n    \"operations\": [\n      {\n        \"sql\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN NOT NULL;\",\n        \"operationType\": \"ADD_COLUMN\",\n        \"tableName\": \"users\",\n        \"lockType\": \"ACCESS EXCLUSIVE\",\n        \"estimatedDuration\": \"~45s\",\n        \"tableSize\": 2147483648,\n        \"rowCount\": 1200000,\n        \"safe\": false,\n        \"recommendation\": \"Adding a NOT NULL column without a default rewrites the table.\",\n        \"safeAlternative\": \"ALTER TABLE users ADD COLUMN email_verified BOOLEAN; \u002F* backfill *\u002F; ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;\"\n      }\n    ]\n  }\n}\n",[114,2661,2662,2666,2676,2682,2693,2705,2717,2724,2728,2739,2751,2762,2774,2786,2798,2810,2821,2832,2842,2846,2850,2854],{"__ignoreMap":112},[506,2663,2664],{"class":508,"line":274},[506,2665,1137],{"class":1136},[506,2667,2668,2670,2672,2674],{"class":508,"line":262},[506,2669,1573],{"class":1142},[506,2671,1146],{"class":1136},[506,2673,1578],{"class":1142},[506,2675,1153],{"class":1136},[506,2677,2678,2680],{"class":508,"line":357},[506,2679,1585],{"class":1142},[506,2681,2229],{"class":1136},[506,2683,2684,2687,2689,2691],{"class":508,"line":1168},[506,2685,2686],{"class":1142},"    \"safe\"",[506,2688,1146],{"class":1136},[506,2690,1266],{"class":1142},[506,2692,1153],{"class":1136},[506,2694,2695,2698,2700,2703],{"class":508,"line":1181},[506,2696,2697],{"class":1142},"    \"overallRisk\"",[506,2699,1146],{"class":1136},[506,2701,2702],{"class":1149},"\"HIGH\"",[506,2704,1153],{"class":1136},[506,2706,2707,2710,2712,2715],{"class":508,"line":1194},[506,2708,2709],{"class":1142},"    \"recommendation\"",[506,2711,1146],{"class":1136},[506,2713,2714],{"class":1149},"\"Add as NULL, backfill, then tighten to NOT NULL.\"",[506,2716,1153],{"class":1136},[506,2718,2719,2722],{"class":508,"line":1207},[506,2720,2721],{"class":1142},"    \"operations\"",[506,2723,1290],{"class":1136},[506,2725,2726],{"class":508,"line":1220},[506,2727,2489],{"class":1136},[506,2729,2730,2733,2735,2737],{"class":508,"line":1233},[506,2731,2732],{"class":1142},"        \"sql\"",[506,2734,1146],{"class":1136},[506,2736,2638],{"class":1149},[506,2738,1153],{"class":1136},[506,2740,2741,2744,2746,2749],{"class":508,"line":1245},[506,2742,2743],{"class":1142},"        \"operationType\"",[506,2745,1146],{"class":1136},[506,2747,2748],{"class":1149},"\"ADD_COLUMN\"",[506,2750,1153],{"class":1136},[506,2752,2753,2756,2758,2760],{"class":508,"line":1258},[506,2754,2755],{"class":1142},"        \"tableName\"",[506,2757,1146],{"class":1136},[506,2759,1319],{"class":1149},[506,2761,1153],{"class":1136},[506,2763,2764,2767,2769,2772],{"class":508,"line":1271},[506,2765,2766],{"class":1142},"        \"lockType\"",[506,2768,1146],{"class":1136},[506,2770,2771],{"class":1149},"\"ACCESS EXCLUSIVE\"",[506,2773,1153],{"class":1136},[506,2775,2776,2779,2781,2784],{"class":508,"line":1284},[506,2777,2778],{"class":1142},"        \"estimatedDuration\"",[506,2780,1146],{"class":1136},[506,2782,2783],{"class":1149},"\"~45s\"",[506,2785,1153],{"class":1136},[506,2787,2788,2791,2793,2796],{"class":508,"line":1293},[506,2789,2790],{"class":1142},"        \"tableSize\"",[506,2792,1146],{"class":1136},[506,2794,2795],{"class":1142},"2147483648",[506,2797,1153],{"class":1136},[506,2799,2800,2803,2805,2808],{"class":508,"line":1299},[506,2801,2802],{"class":1142},"        \"rowCount\"",[506,2804,1146],{"class":1136},[506,2806,2807],{"class":1142},"1200000",[506,2809,1153],{"class":1136},[506,2811,2812,2815,2817,2819],{"class":508,"line":1311},[506,2813,2814],{"class":1142},"        \"safe\"",[506,2816,1146],{"class":1136},[506,2818,1266],{"class":1142},[506,2820,1153],{"class":1136},[506,2822,2823,2825,2827,2830],{"class":508,"line":1324},[506,2824,2553],{"class":1142},[506,2826,1146],{"class":1136},[506,2828,2829],{"class":1149},"\"Adding a NOT NULL column without a default rewrites the table.\"",[506,2831,1153],{"class":1136},[506,2833,2834,2837,2839],{"class":508,"line":1337},[506,2835,2836],{"class":1142},"        \"safeAlternative\"",[506,2838,1146],{"class":1136},[506,2840,2841],{"class":1149},"\"ALTER TABLE users ADD COLUMN email_verified BOOLEAN; \u002F* backfill *\u002F; ALTER TABLE users ALTER COLUMN email_verified SET NOT NULL;\"\n",[506,2843,2844],{"class":508,"line":1350},[506,2845,2575],{"class":1136},[506,2847,2848],{"class":508,"line":1363},[506,2849,2580],{"class":1136},[506,2851,2852],{"class":508,"line":1376},[506,2853,2585],{"class":1136},[506,2855,2856],{"class":508,"line":1387},[506,2857,1402],{"class":1136},[1785,2859],{},[15,2861,909],{"id":908},[303,2863,2865],{"id":2864},"list-events","List events",[106,2867,2869],{"className":1653,"code":2868,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents?page=0&size=20\n",[114,2870,2871],{"__ignoreMap":112},[506,2872,2873],{"class":508,"line":274},[506,2874,2868],{},[11,2876,2877,2878,2881],{},"Paginated. Default ",[114,2879,2880],{},"size"," is 20, max 100.",[106,2883,2885],{"className":1127,"code":2884,"language":1129,"meta":112,"style":112},"{\n  \"success\": true,\n  \"data\": {\n    \"content\": [\n      {\n        \"id\": \"f6c3a3f0-7c5e-4a8c-b4b2-9f3b1f0c4a55\",\n        \"envId\": \"18a2d7be-4f52-4a86-92b0-52df7d39c7a1\",\n        \"baselineId\": \"0ce3b9a2-...\",\n        \"currentId\": \"b7d1a3c4-...\",\n        \"severity\": \"BREAKING\",\n        \"breakingCount\": 1,\n        \"warningCount\": 0,\n        \"infoCount\": 2,\n        \"acknowledged\": false,\n        \"detectedAt\": \"2026-04-20T15:10:22.187Z\",\n        \"items\": [ \u002F* ... *\u002F ]\n      }\n    ],\n    \"totalElements\": 34,\n    \"totalPages\": 2,\n    \"number\": 0,\n    \"size\": 20\n  }\n}\n",[114,2886,2887,2891,2901,2907,2914,2918,2929,2940,2952,2964,2974,2985,2996,3007,3018,3029,3043,3047,3052,3064,3075,3086,3096,3100],{"__ignoreMap":112},[506,2888,2889],{"class":508,"line":274},[506,2890,1137],{"class":1136},[506,2892,2893,2895,2897,2899],{"class":508,"line":262},[506,2894,1573],{"class":1142},[506,2896,1146],{"class":1136},[506,2898,1578],{"class":1142},[506,2900,1153],{"class":1136},[506,2902,2903,2905],{"class":508,"line":357},[506,2904,1585],{"class":1142},[506,2906,2229],{"class":1136},[506,2908,2909,2912],{"class":508,"line":1168},[506,2910,2911],{"class":1142},"    \"content\"",[506,2913,1290],{"class":1136},[506,2915,2916],{"class":508,"line":1181},[506,2917,2489],{"class":1136},[506,2919,2920,2923,2925,2927],{"class":508,"line":1194},[506,2921,2922],{"class":1142},"        \"id\"",[506,2924,1146],{"class":1136},[506,2926,1150],{"class":1149},[506,2928,1153],{"class":1136},[506,2930,2931,2934,2936,2938],{"class":508,"line":1207},[506,2932,2933],{"class":1142},"        \"envId\"",[506,2935,1146],{"class":1136},[506,2937,1163],{"class":1149},[506,2939,1153],{"class":1136},[506,2941,2942,2945,2947,2950],{"class":508,"line":1220},[506,2943,2944],{"class":1142},"        \"baselineId\"",[506,2946,1146],{"class":1136},[506,2948,2949],{"class":1149},"\"0ce3b9a2-...\"",[506,2951,1153],{"class":1136},[506,2953,2954,2957,2959,2962],{"class":508,"line":1233},[506,2955,2956],{"class":1142},"        \"currentId\"",[506,2958,1146],{"class":1136},[506,2960,2961],{"class":1149},"\"b7d1a3c4-...\"",[506,2963,1153],{"class":1136},[506,2965,2966,2968,2970,2972],{"class":508,"line":1245},[506,2967,2494],{"class":1142},[506,2969,1146],{"class":1136},[506,2971,1202],{"class":1149},[506,2973,1153],{"class":1136},[506,2975,2976,2979,2981,2983],{"class":508,"line":1258},[506,2977,2978],{"class":1142},"        \"breakingCount\"",[506,2980,1146],{"class":1136},[506,2982,1215],{"class":1142},[506,2984,1153],{"class":1136},[506,2986,2987,2990,2992,2994],{"class":508,"line":1271},[506,2988,2989],{"class":1142},"        \"warningCount\"",[506,2991,1146],{"class":1136},[506,2993,1228],{"class":1142},[506,2995,1153],{"class":1136},[506,2997,2998,3001,3003,3005],{"class":508,"line":1284},[506,2999,3000],{"class":1142},"        \"infoCount\"",[506,3002,1146],{"class":1136},[506,3004,70],{"class":1142},[506,3006,1153],{"class":1136},[506,3008,3009,3012,3014,3016],{"class":508,"line":1293},[506,3010,3011],{"class":1142},"        \"acknowledged\"",[506,3013,1146],{"class":1136},[506,3015,1266],{"class":1142},[506,3017,1153],{"class":1136},[506,3019,3020,3023,3025,3027],{"class":508,"line":1299},[506,3021,3022],{"class":1142},"        \"detectedAt\"",[506,3024,1146],{"class":1136},[506,3026,1279],{"class":1149},[506,3028,1153],{"class":1136},[506,3030,3031,3034,3037,3040],{"class":508,"line":1311},[506,3032,3033],{"class":1142},"        \"items\"",[506,3035,3036],{"class":1136},": [ ",[506,3038,3039],{"class":1591},"\u002F* ... *\u002F",[506,3041,3042],{"class":1136}," ]\n",[506,3044,3045],{"class":508,"line":1324},[506,3046,2575],{"class":1136},[506,3048,3049],{"class":508,"line":1337},[506,3050,3051],{"class":1136},"    ],\n",[506,3053,3054,3057,3059,3062],{"class":508,"line":1350},[506,3055,3056],{"class":1142},"    \"totalElements\"",[506,3058,1146],{"class":1136},[506,3060,3061],{"class":1142},"34",[506,3063,1153],{"class":1136},[506,3065,3066,3069,3071,3073],{"class":508,"line":1363},[506,3067,3068],{"class":1142},"    \"totalPages\"",[506,3070,1146],{"class":1136},[506,3072,70],{"class":1142},[506,3074,1153],{"class":1136},[506,3076,3077,3080,3082,3084],{"class":508,"line":1376},[506,3078,3079],{"class":1142},"    \"number\"",[506,3081,1146],{"class":1136},[506,3083,1228],{"class":1142},[506,3085,1153],{"class":1136},[506,3087,3088,3091,3093],{"class":508,"line":1387},[506,3089,3090],{"class":1142},"    \"size\"",[506,3092,1146],{"class":1136},[506,3094,3095],{"class":1142},"20\n",[506,3097,3098],{"class":508,"line":1393},[506,3099,2585],{"class":1136},[506,3101,3102],{"class":508,"line":1399},[506,3103,1402],{"class":1136},[303,3105,3107],{"id":3106},"get-a-single-event","Get a single event",[106,3109,3111],{"className":1653,"code":3110,"language":1655,"meta":112,"style":112},"GET \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\n",[114,3112,3113],{"__ignoreMap":112},[506,3114,3115],{"class":508,"line":274},[506,3116,3110],{},[303,3118,3120],{"id":3119},"acknowledge-an-event","Acknowledge an event",[106,3122,3124],{"className":1653,"code":3123,"language":1655,"meta":112,"style":112},"POST \u002Fapi\u002Fv1\u002Fdrift\u002Fevents\u002F{id}\u002Facknowledge\n",[114,3125,3126],{"__ignoreMap":112},[506,3127,3128],{"class":508,"line":274},[506,3129,3123],{},[11,3131,3132],{},"Marks the event as reviewed. Does not affect the baseline.",[1785,3134],{},[15,3136,3138],{"id":3137},"response-envelope-reference","Response envelope reference",[38,3140,3141,3154],{},[41,3142,3143],{},[44,3144,3145,3148,3151],{},[47,3146,3147],{},"Field",[47,3149,3150],{},"Type",[47,3152,3153],{},"Notes",[60,3155,3156,3176,3194,3208,3224],{},[44,3157,3158,3163,3168],{},[65,3159,3160],{},[114,3161,3162],{},"success",[65,3164,3165],{},[114,3166,3167],{},"boolean",[65,3169,3170,3172,3173,3175],{},[114,3171,1578],{}," for 2xx, ",[114,3174,1266],{}," otherwise",[44,3177,3178,3183,3188],{},[65,3179,3180],{},[114,3181,3182],{},"data",[65,3184,3185],{},[114,3186,3187],{},"T | null",[65,3189,3190,3191,3193],{},"Typed payload, ",[114,3192,1617],{}," on error",[44,3195,3196,3200,3205],{},[65,3197,3198],{},[114,3199,1692],{},[65,3201,3202],{},[114,3203,3204],{},"string?",[65,3206,3207],{},"Human-readable hint, useful for surfacing in UIs",[44,3209,3210,3214,3218],{},[65,3211,3212],{},[114,3213,1689],{},[65,3215,3216],{},[114,3217,3204],{},[65,3219,3220,3221,424],{},"Machine-readable code on error (e.g. ",[114,3222,3223],{},"BAD_REQUEST",[44,3225,3226,3231,3236],{},[65,3227,3228],{},[114,3229,3230],{},"timestamp",[65,3232,3233],{},[114,3234,3235],{},"string",[65,3237,3238],{},"ISO-8601 response time, useful for correlating with logs",[674,3240,3241],{},"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 .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":112,"searchDepth":262,"depth":262,"links":3243},[3244,3245,3246,3247,3253,3256,3257,3258,3263],{"id":1636,"depth":262,"text":1637},{"id":1646,"depth":262,"text":1647},{"id":1678,"depth":262,"text":1679},{"id":1789,"depth":262,"text":52,"children":3248},[3249,3250,3251,3252],{"id":1792,"depth":357,"text":1793},{"id":2012,"depth":357,"text":2013},{"id":2148,"depth":357,"text":2149},{"id":2161,"depth":357,"text":2162},{"id":2186,"depth":262,"text":2187,"children":3254},[3255],{"id":2190,"depth":357,"text":2191},{"id":2355,"depth":262,"text":2356},{"id":2594,"depth":262,"text":2595},{"id":908,"depth":262,"text":909,"children":3259},[3260,3261,3262],{"id":2864,"depth":357,"text":2865},{"id":3106,"depth":357,"text":3107},{"id":3119,"depth":357,"text":3120},{"id":3137,"depth":262,"text":3138},"HTTP API for Drift Scanner. Register and list environments, trigger scans, diff environments, analyze migrations, and paginate through drift events.",{},{"title":1041,"description":3264},"docs\u002Fdrift-scanner\u002Fapi-reference","W4mKaRYV04G01wZEZupk-fh7Yw9IasIFf39Upwq5F6I",{"id":368,"title":52,"body":3270,"description":688,"extension":271,"meta":3495,"navigation":273,"order":262,"path":246,"section":276,"seo":3496,"stem":691,"updatedAt":279,"__hash__":692},{"type":8,"value":3271,"toc":3484},[3272,3274,3276,3280,3285,3287,3292,3294,3296,3298,3350,3352,3354,3358,3374,3378,3380,3382,3412,3414,3416,3418,3434,3436,3466,3470,3472,3478,3480,3482],[11,3273,373],{},[15,3275,377],{"id":376},[11,3277,380,3278,384],{},[114,3279,383],{},[106,3281,3283],{"className":3282,"code":388,"language":111,"meta":112},[109],[114,3284,388],{"__ignoreMap":112},[11,3286,393],{},[106,3288,3290],{"className":3289,"code":397,"language":111,"meta":112},[109],[114,3291,397],{"__ignoreMap":112},[11,3293,402],{},[303,3295,406],{"id":405},[11,3297,409],{},[169,3299,3300,3308,3318,3324,3330,3340],{},[172,3301,3302,417,3304,150,3306,424],{},[101,3303,416],{},[114,3305,420],{},[114,3307,423],{},[172,3309,3310,417,3312,150,3314,150,3316,424],{},[101,3311,429],{},[114,3313,432],{},[114,3315,435],{},[114,3317,438],{},[172,3319,3320,417,3322,446],{},[101,3321,443],{},[114,3323,149],{},[172,3325,3326,417,3328,424],{},[101,3327,451],{},[114,3329,153],{},[172,3331,3332,417,3334,462,3336,417,3338,424],{},[101,3333,458],{},[114,3335,461],{},[101,3337,465],{},[114,3339,468],{},[172,3341,3342,474,3344,478,3346,150,3348,424],{},[101,3343,473],{},[101,3345,477],{},[114,3347,481],{},[114,3349,484],{},[11,3351,487],{},[15,3353,491],{"id":490},[11,3355,494,3356,497],{},[114,3357,125],{},[106,3359,3360],{"className":500,"code":501,"language":502,"meta":112,"style":112},[114,3361,3362,3366,3370],{"__ignoreMap":112},[506,3363,3364],{"class":508,"line":274},[506,3365,511],{},[506,3367,3368],{"class":508,"line":262},[506,3369,516],{},[506,3371,3372],{"class":508,"line":357},[506,3373,521],{},[11,3375,524,3376,528],{},[101,3377,527],{},[15,3379,532],{"id":531},[11,3381,535],{},[169,3383,3384,3388,3392,3396,3400,3404,3408],{},[172,3385,3386,543],{},[101,3387,542],{},[172,3389,3390,549],{},[101,3391,548],{},[172,3393,3394,555],{},[101,3395,554],{},[172,3397,3398,561],{},[101,3399,560],{},[172,3401,3402,566],{},[101,3403,180],{},[172,3405,3406,571],{},[101,3407,183],{},[172,3409,3410,576],{},[101,3411,186],{},[11,3413,579],{},[15,3415,583],{"id":582},[11,3417,586],{},[169,3419,3420,3426,3430],{},[172,3421,3422,594,3424,315],{},[101,3423,593],{},[114,3425,125],{},[172,3427,3428,602],{},[101,3429,601],{},[172,3431,3432,602],{},[101,3433,607],{},[15,3435,611],{"id":610},[38,3437,3438,3446],{},[41,3439,3440],{},[44,3441,3442,3444],{},[47,3443,49],{},[47,3445,622],{},[60,3447,3448,3454,3460],{},[44,3449,3450,3452],{},[65,3451,67],{},[65,3453,70],{},[44,3455,3456,3458],{},[65,3457,81],{},[65,3459,84],{},[44,3461,3462,3464],{},[65,3463,641],{},[65,3465,644],{},[11,3467,647,3468,651],{},[114,3469,650],{},[15,3471,655],{"id":654},[11,3473,658,3474,661,3476,665],{},[114,3475,234],{},[114,3477,664],{},[15,3479,669],{"id":668},[11,3481,672],{},[674,3483,676],{},{"title":112,"searchDepth":262,"depth":262,"links":3485},[3486,3489,3490,3491,3492,3493,3494],{"id":376,"depth":262,"text":377,"children":3487},[3488],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},{},{"title":52,"description":688},[3498,3661,3710,3938,4185,4538],{"id":5,"title":6,"body":3499,"description":270,"extension":271,"meta":3659,"navigation":273,"order":274,"path":275,"section":276,"seo":3660,"stem":278,"updatedAt":279,"__hash__":280},{"type":8,"value":3500,"toc":3651},[3501,3503,3505,3510,3512,3514,3550,3552,3554,3558,3563,3575,3585,3587,3589,3591,3593,3605,3607,3611,3625,3629,3631,3635,3637],[11,3502,13],{},[15,3504,18],{"id":17},[11,3506,21,3507,29],{},[23,3508,28],{"href":25,"rel":3509},[27],[15,3511,33],{"id":32},[11,3513,36],{},[38,3515,3516,3528],{},[41,3517,3518],{},[44,3519,3520,3522,3524,3526],{},[47,3521,49],{},[47,3523,52],{},[47,3525,55],{},[47,3527,58],{},[60,3529,3530,3540],{},[44,3531,3532,3534,3536,3538],{},[65,3533,67],{},[65,3535,70],{},[65,3537,73],{},[65,3539,76],{},[44,3541,3542,3544,3546,3548],{},[65,3543,81],{},[65,3545,84],{},[65,3547,73],{},[65,3549,89],{},[11,3551,92],{},[15,3553,96],{"id":95},[11,3555,99,3556,104],{},[101,3557,103],{},[106,3559,3561],{"className":3560,"code":110,"language":111,"meta":112},[109],[114,3562,110],{"__ignoreMap":112},[11,3564,118,3565,122,3567,126,3569,130,3571,134,3573,137],{},[101,3566,121],{},[114,3568,125],{},[114,3570,129],{},[114,3572,133],{},[114,3574,125],{},[139,3576,3577],{},[11,3578,3579,146,3581,150,3583,154],{},[101,3580,145],{},[114,3582,149],{},[114,3584,153],{},[11,3586,157],{},[15,3588,161],{"id":160},[11,3590,164],{},[11,3592,167],{},[169,3594,3595,3597,3599,3601,3603],{},[172,3596,174],{},[172,3598,177],{},[172,3600,180],{},[172,3602,183],{},[172,3604,186],{},[15,3606,190],{"id":189},[11,3608,193,3609,197],{},[101,3610,196],{},[169,3612,3613,3617,3621],{},[172,3614,3615,205],{},[101,3616,204],{},[172,3618,3619,211],{},[101,3620,210],{},[172,3622,3623,217],{},[101,3624,216],{},[11,3626,220,3627,224],{},[23,3628,196],{"href":223},[15,3630,228],{"id":227},[11,3632,231,3633,235],{},[114,3634,234],{},[11,3636,238],{},[169,3638,3639,3643,3647],{},[172,3640,243,3641],{},[23,3642,52],{"href":246},[172,3644,249,3645],{},[23,3646,253],{"href":252},[172,3648,256,3649],{},[23,3650,260],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":3652},[3653,3654,3655,3656,3657,3658],{"id":17,"depth":262,"text":18},{"id":32,"depth":262,"text":33},{"id":95,"depth":262,"text":96},{"id":160,"depth":262,"text":161},{"id":189,"depth":262,"text":190},{"id":227,"depth":262,"text":228},{},{"title":6,"description":270},{"id":282,"title":283,"body":3662,"description":360,"extension":271,"meta":3708,"navigation":273,"order":274,"path":362,"section":363,"seo":3709,"stem":365,"updatedAt":279,"__hash__":366},{"type":8,"value":3663,"toc":3701},[3664,3666,3671,3673,3675,3677,3681,3683,3685,3689,3691],[11,3665,288],{},[11,3667,291,3668,297],{},[23,3669,296],{"href":294,"rel":3670},[27],[15,3672,301],{"id":300},[303,3674,305],{"id":276},[11,3676,308],{},[11,3678,311,3679,315],{},[23,3680,314],{"href":275},[303,3682,319],{"id":318},[11,3684,322],{},[11,3686,256,3687,315],{},[23,3688,328],{"href":327},[15,3690,332],{"id":331},[11,3692,335,3693,340,3695,346,3698,315],{},[23,3694,339],{"href":338},[23,3696,345],{"href":343,"rel":3697},[27],[23,3699,351],{"href":349,"rel":3700},[27],{"title":112,"searchDepth":262,"depth":262,"links":3702},[3703,3707],{"id":300,"depth":262,"text":301,"children":3704},[3705,3706],{"id":276,"depth":357,"text":305},{"id":318,"depth":357,"text":319},{"id":331,"depth":262,"text":332},{},{"title":283,"description":360},{"id":368,"title":52,"body":3711,"description":688,"extension":271,"meta":3936,"navigation":273,"order":262,"path":246,"section":276,"seo":3937,"stem":691,"updatedAt":279,"__hash__":692},{"type":8,"value":3712,"toc":3925},[3713,3715,3717,3721,3726,3728,3733,3735,3737,3739,3791,3793,3795,3799,3815,3819,3821,3823,3853,3855,3857,3859,3875,3877,3907,3911,3913,3919,3921,3923],[11,3714,373],{},[15,3716,377],{"id":376},[11,3718,380,3719,384],{},[114,3720,383],{},[106,3722,3724],{"className":3723,"code":388,"language":111,"meta":112},[109],[114,3725,388],{"__ignoreMap":112},[11,3727,393],{},[106,3729,3731],{"className":3730,"code":397,"language":111,"meta":112},[109],[114,3732,397],{"__ignoreMap":112},[11,3734,402],{},[303,3736,406],{"id":405},[11,3738,409],{},[169,3740,3741,3749,3759,3765,3771,3781],{},[172,3742,3743,417,3745,150,3747,424],{},[101,3744,416],{},[114,3746,420],{},[114,3748,423],{},[172,3750,3751,417,3753,150,3755,150,3757,424],{},[101,3752,429],{},[114,3754,432],{},[114,3756,435],{},[114,3758,438],{},[172,3760,3761,417,3763,446],{},[101,3762,443],{},[114,3764,149],{},[172,3766,3767,417,3769,424],{},[101,3768,451],{},[114,3770,153],{},[172,3772,3773,417,3775,462,3777,417,3779,424],{},[101,3774,458],{},[114,3776,461],{},[101,3778,465],{},[114,3780,468],{},[172,3782,3783,474,3785,478,3787,150,3789,424],{},[101,3784,473],{},[101,3786,477],{},[114,3788,481],{},[114,3790,484],{},[11,3792,487],{},[15,3794,491],{"id":490},[11,3796,494,3797,497],{},[114,3798,125],{},[106,3800,3801],{"className":500,"code":501,"language":502,"meta":112,"style":112},[114,3802,3803,3807,3811],{"__ignoreMap":112},[506,3804,3805],{"class":508,"line":274},[506,3806,511],{},[506,3808,3809],{"class":508,"line":262},[506,3810,516],{},[506,3812,3813],{"class":508,"line":357},[506,3814,521],{},[11,3816,524,3817,528],{},[101,3818,527],{},[15,3820,532],{"id":531},[11,3822,535],{},[169,3824,3825,3829,3833,3837,3841,3845,3849],{},[172,3826,3827,543],{},[101,3828,542],{},[172,3830,3831,549],{},[101,3832,548],{},[172,3834,3835,555],{},[101,3836,554],{},[172,3838,3839,561],{},[101,3840,560],{},[172,3842,3843,566],{},[101,3844,180],{},[172,3846,3847,571],{},[101,3848,183],{},[172,3850,3851,576],{},[101,3852,186],{},[11,3854,579],{},[15,3856,583],{"id":582},[11,3858,586],{},[169,3860,3861,3867,3871],{},[172,3862,3863,594,3865,315],{},[101,3864,593],{},[114,3866,125],{},[172,3868,3869,602],{},[101,3870,601],{},[172,3872,3873,602],{},[101,3874,607],{},[15,3876,611],{"id":610},[38,3878,3879,3887],{},[41,3880,3881],{},[44,3882,3883,3885],{},[47,3884,49],{},[47,3886,622],{},[60,3888,3889,3895,3901],{},[44,3890,3891,3893],{},[65,3892,67],{},[65,3894,70],{},[44,3896,3897,3899],{},[65,3898,81],{},[65,3900,84],{},[44,3902,3903,3905],{},[65,3904,641],{},[65,3906,644],{},[11,3908,647,3909,651],{},[114,3910,650],{},[15,3912,655],{"id":654},[11,3914,658,3915,661,3917,665],{},[114,3916,234],{},[114,3918,664],{},[15,3920,669],{"id":668},[11,3922,672],{},[674,3924,676],{},{"title":112,"searchDepth":262,"depth":262,"links":3926},[3927,3930,3931,3932,3933,3934,3935],{"id":376,"depth":262,"text":377,"children":3928},[3929],{"id":405,"depth":357,"text":406},{"id":490,"depth":262,"text":491},{"id":531,"depth":262,"text":532},{"id":582,"depth":262,"text":583},{"id":610,"depth":262,"text":611},{"id":654,"depth":262,"text":655},{"id":668,"depth":262,"text":669},{},{"title":52,"description":688},{"id":694,"title":253,"body":3939,"description":1057,"extension":271,"meta":4183,"navigation":273,"order":357,"path":252,"section":276,"seo":4184,"stem":1060,"updatedAt":279,"__hash__":1061},{"type":8,"value":3940,"toc":4169},[3941,3947,3949,3953,3955,3957,3959,3973,3975,3977,3981,4017,4019,4021,4023,4025,4035,4037,4039,4049,4051,4053,4067,4083,4085,4089,4137,4141,4143,4149,4151,4153,4159,4161,4163],[11,3942,699,3943,474,3945,706],{},[101,3944,702],{},[101,3946,705],{},[15,3948,710],{"id":709},[11,3950,713,3951,717],{},[101,3952,716],{},[11,3954,720],{},[15,3956,724],{"id":723},[11,3958,727],{},[729,3960,3961,3963,3967,3969,3971],{},[172,3962,733],{},[172,3964,736,3965],{},[114,3966,125],{},[172,3968,741],{},[172,3970,744],{},[172,3972,747],{},[11,3974,750],{},[15,3976,754],{"id":753},[11,3978,757,3979,761],{},[114,3980,760],{},[38,3982,3983,3991],{},[41,3984,3985],{},[44,3986,3987,3989],{},[47,3988,49],{},[47,3990,772],{},[60,3992,3993,3999,4005,4011],{},[44,3994,3995,3997],{},[65,3996,67],{},[65,3998,781],{},[44,4000,4001,4003],{},[65,4002,81],{},[65,4004,84],{},[44,4006,4007,4009],{},[65,4008,792],{},[65,4010,795],{},[44,4012,4013,4015],{},[65,4014,800],{},[65,4016,803],{},[15,4018,807],{"id":806},[11,4020,810],{},[303,4022,814],{"id":813},[11,4024,817],{},[169,4026,4027,4029,4031,4033],{},[172,4028,822],{},[172,4030,825],{},[172,4032,828],{},[172,4034,831],{},[303,4036,835],{"id":834},[11,4038,838],{},[169,4040,4041,4045,4047],{},[172,4042,843,4043,847],{},[114,4044,846],{},[172,4046,850],{},[172,4048,853],{},[303,4050,857],{"id":856},[11,4052,860],{},[169,4054,4055,4057,4059,4065],{},[172,4056,865],{},[172,4058,868],{},[172,4060,871,4061,875,4063,424],{},[114,4062,874],{},[114,4064,846],{},[172,4066,880],{},[11,4068,883,4069,150,4071,150,4073,150,4075,150,4077,150,4079,901,4081,905],{},[114,4070,886],{},[114,4072,38],{},[114,4074,891],{},[114,4076,894],{},[114,4078,897],{},[114,4080,900],{},[114,4082,904],{},[15,4084,909],{"id":908},[11,4086,912,4087,916],{},[114,4088,915],{},[169,4090,4091,4095,4099,4105,4115,4123,4127,4131],{},[172,4092,4093,924],{},[114,4094,923],{},[172,4096,4097,930],{},[114,4098,929],{},[172,4100,4101,936,4103,940],{},[114,4102,935],{},[114,4104,939],{},[172,4106,4107,945,4109,150,4111,952,4113],{},[114,4108,886],{},[114,4110,948],{},[114,4112,951],{},[114,4114,955],{},[172,4116,4117,150,4119,150,4121],{},[114,4118,960],{},[114,4120,963],{},[114,4122,966],{},[172,4124,4125,972],{},[114,4126,971],{},[172,4128,4129,978],{},[114,4130,977],{},[172,4132,4133,984,4135,988],{},[114,4134,983],{},[114,4136,987],{},[11,4138,991,4139,315],{},[114,4140,994],{},[15,4142,998],{"id":997},[11,4144,1001,4145,1005,4147,1009],{},[114,4146,1004],{},[101,4148,1008],{},[15,4150,1013],{"id":1012},[11,4152,1016],{},[169,4154,4155,4157],{},[172,4156,1021],{},[172,4158,1024],{},[11,4160,1027],{},[15,4162,1031],{"id":1030},[11,4164,1034,4165,1038,4167,1042],{},[114,4166,1037],{},[23,4168,1041],{"href":259},{"title":112,"searchDepth":262,"depth":262,"links":4170},[4171,4172,4173,4174,4179,4180,4181,4182],{"id":709,"depth":262,"text":710},{"id":723,"depth":262,"text":724},{"id":753,"depth":262,"text":754},{"id":806,"depth":262,"text":807,"children":4175},[4176,4177,4178],{"id":813,"depth":357,"text":814},{"id":834,"depth":357,"text":835},{"id":856,"depth":357,"text":857},{"id":908,"depth":262,"text":909},{"id":997,"depth":262,"text":998},{"id":1012,"depth":262,"text":1013},{"id":1030,"depth":262,"text":1031},{},{"title":253,"description":1057},{"id":1063,"title":196,"body":4186,"description":1544,"extension":271,"meta":4536,"navigation":273,"order":1168,"path":223,"section":276,"seo":4537,"stem":1547,"updatedAt":279,"__hash__":1548},{"type":8,"value":4187,"toc":4525},[4188,4190,4192,4194,4199,4213,4215,4220,4222,4224,4228,4436,4442,4444,4446,4448,4453,4491,4493,4497,4499,4503,4505,4511,4513,4523],[11,4189,1068],{},[15,4191,1072],{"id":1071},[303,4193,204],{"id":1075},[11,4195,1078,4196,1084],{},[23,4197,1083],{"href":1081,"rel":4198},[27],[169,4200,4201,4205,4209],{},[172,4202,4203,1091],{},[114,4204,955],{},[172,4206,4207,1096],{},[114,4208,951],{},[172,4210,4211,1101],{},[114,4212,948],{},[11,4214,1104],{},[106,4216,4218],{"className":4217,"code":1108,"language":111,"meta":112},[109],[114,4219,1108],{"__ignoreMap":112},[11,4221,1113],{},[303,4223,1117],{"id":1116},[11,4225,1120,4226,1124],{},[114,4227,1123],{},[106,4229,4230],{"className":1127,"code":1128,"language":1129,"meta":112,"style":112},[114,4231,4232,4236,4246,4256,4266,4276,4286,4296,4306,4316,4326,4336,4346,4352,4356,4366,4376,4386,4396,4406,4416,4424,4428,4432],{"__ignoreMap":112},[506,4233,4234],{"class":508,"line":274},[506,4235,1137],{"class":1136},[506,4237,4238,4240,4242,4244],{"class":508,"line":262},[506,4239,1143],{"class":1142},[506,4241,1146],{"class":1136},[506,4243,1150],{"class":1149},[506,4245,1153],{"class":1136},[506,4247,4248,4250,4252,4254],{"class":508,"line":357},[506,4249,1158],{"class":1142},[506,4251,1146],{"class":1136},[506,4253,1163],{"class":1149},[506,4255,1153],{"class":1136},[506,4257,4258,4260,4262,4264],{"class":508,"line":1168},[506,4259,1171],{"class":1142},[506,4261,1146],{"class":1136},[506,4263,1176],{"class":1149},[506,4265,1153],{"class":1136},[506,4267,4268,4270,4272,4274],{"class":508,"line":1181},[506,4269,1184],{"class":1142},[506,4271,1146],{"class":1136},[506,4273,1189],{"class":1149},[506,4275,1153],{"class":1136},[506,4277,4278,4280,4282,4284],{"class":508,"line":1194},[506,4279,1197],{"class":1142},[506,4281,1146],{"class":1136},[506,4283,1202],{"class":1149},[506,4285,1153],{"class":1136},[506,4287,4288,4290,4292,4294],{"class":508,"line":1207},[506,4289,1210],{"class":1142},[506,4291,1146],{"class":1136},[506,4293,1215],{"class":1142},[506,4295,1153],{"class":1136},[506,4297,4298,4300,4302,4304],{"class":508,"line":1220},[506,4299,1223],{"class":1142},[506,4301,1146],{"class":1136},[506,4303,1228],{"class":1142},[506,4305,1153],{"class":1136},[506,4307,4308,4310,4312,4314],{"class":508,"line":1233},[506,4309,1236],{"class":1142},[506,4311,1146],{"class":1136},[506,4313,70],{"class":1142},[506,4315,1153],{"class":1136},[506,4317,4318,4320,4322,4324],{"class":508,"line":1245},[506,4319,1248],{"class":1142},[506,4321,1146],{"class":1136},[506,4323,1253],{"class":1149},[506,4325,1153],{"class":1136},[506,4327,4328,4330,4332,4334],{"class":508,"line":1258},[506,4329,1261],{"class":1142},[506,4331,1146],{"class":1136},[506,4333,1266],{"class":1142},[506,4335,1153],{"class":1136},[506,4337,4338,4340,4342,4344],{"class":508,"line":1271},[506,4339,1274],{"class":1142},[506,4341,1146],{"class":1136},[506,4343,1279],{"class":1149},[506,4345,1153],{"class":1136},[506,4347,4348,4350],{"class":508,"line":1284},[506,4349,1287],{"class":1142},[506,4351,1290],{"class":1136},[506,4353,4354],{"class":508,"line":1293},[506,4355,1296],{"class":1136},[506,4357,4358,4360,4362,4364],{"class":508,"line":1299},[506,4359,1302],{"class":1142},[506,4361,1146],{"class":1136},[506,4363,1202],{"class":1149},[506,4365,1153],{"class":1136},[506,4367,4368,4370,4372,4374],{"class":508,"line":1311},[506,4369,1314],{"class":1142},[506,4371,1146],{"class":1136},[506,4373,1319],{"class":1149},[506,4375,1153],{"class":1136},[506,4377,4378,4380,4382,4384],{"class":508,"line":1324},[506,4379,1327],{"class":1142},[506,4381,1146],{"class":1136},[506,4383,1332],{"class":1149},[506,4385,1153],{"class":1136},[506,4387,4388,4390,4392,4394],{"class":508,"line":1337},[506,4389,1340],{"class":1142},[506,4391,1146],{"class":1136},[506,4393,1345],{"class":1149},[506,4395,1153],{"class":1136},[506,4397,4398,4400,4402,4404],{"class":508,"line":1350},[506,4399,1353],{"class":1142},[506,4401,1146],{"class":1136},[506,4403,1358],{"class":1149},[506,4405,1153],{"class":1136},[506,4407,4408,4410,4412,4414],{"class":508,"line":1363},[506,4409,1366],{"class":1142},[506,4411,1146],{"class":1136},[506,4413,1371],{"class":1149},[506,4415,1153],{"class":1136},[506,4417,4418,4420,4422],{"class":508,"line":1376},[506,4419,1379],{"class":1142},[506,4421,1146],{"class":1136},[506,4423,1384],{"class":1149},[506,4425,4426],{"class":508,"line":1387},[506,4427,1390],{"class":1136},[506,4429,4430],{"class":508,"line":1393},[506,4431,1396],{"class":1136},[506,4433,4434],{"class":508,"line":1399},[506,4435,1402],{"class":1136},[11,4437,1405,4438,1409,4440,1413],{},[114,4439,1408],{},[114,4441,1412],{},[303,4443,216],{"id":1416},[11,4445,1419],{},[15,4447,1423],{"id":1422},[11,4449,1426,4450,1432],{},[23,4451,1431],{"href":1429,"rel":4452},[27],[38,4454,4455,4465],{},[41,4456,4457],{},[44,4458,4459,4461,4463],{},[47,4460,1441],{},[47,4462,1444],{},[47,4464,1447],{},[60,4466,4467,4475,4483],{},[44,4468,4469,4471,4473],{},[65,4470,1117],{},[65,4472,1456],{},[65,4474,1459],{},[44,4476,4477,4479,4481],{},[65,4478,204],{},[65,4480,1456],{},[65,4482,1459],{},[44,4484,4485,4487,4489],{},[65,4486,216],{},[65,4488,1474],{},[65,4490,1477],{},[11,4492,1480],{},[11,4494,1483,4495,1486],{},[114,4496,994],{},[15,4498,1490],{"id":1489},[11,4500,1493,4501,1497],{},[114,4502,1496],{},[15,4504,1501],{"id":1500},[11,4506,1504,4507,1508,4509,1511],{},[101,4508,1507],{},[114,4510,948],{},[15,4512,1515],{"id":1514},[169,4514,4515,4517,4519,4521],{},[172,4516,1520],{},[172,4518,1523],{},[172,4520,1526],{},[172,4522,1529],{},[674,4524,1532],{},{"title":112,"searchDepth":262,"depth":262,"links":4526},[4527,4532,4533,4534,4535],{"id":1071,"depth":262,"text":1072,"children":4528},[4529,4530,4531],{"id":1075,"depth":357,"text":204},{"id":1116,"depth":357,"text":1117},{"id":1416,"depth":357,"text":216},{"id":1422,"depth":262,"text":1423},{"id":1489,"depth":262,"text":1490},{"id":1500,"depth":262,"text":1501},{"id":1514,"depth":262,"text":1515},{},{"title":196,"description":1544},{"id":1550,"title":1041,"body":4539,"description":3264,"extension":271,"meta":5972,"navigation":273,"order":1181,"path":259,"section":276,"seo":5973,"stem":3267,"updatedAt":279,"__hash__":3268},{"type":8,"value":4540,"toc":5950},[4541,4545,4605,4607,4612,4614,4616,4624,4628,4634,4636,4644,4704,4706,4724,4726,4728,4730,4738,4740,4800,4826,4830,4896,4898,4906,4908,5016,5018,5026,5028,5036,5042,5044,5046,5048,5056,5058,5156,5186,5188,5190,5198,5200,5202,5232,5234,5392,5394,5396,5404,5412,5414,5444,5446,5624,5626,5628,5630,5638,5642,5840,5842,5850,5852,5860,5862,5864,5866,5948],[11,4542,1555,4543,1559],{},[114,4544,1558],{},[106,4546,4547],{"className":1127,"code":1562,"language":1129,"meta":112,"style":112},[114,4548,4549,4553,4563,4573,4583,4593,4601],{"__ignoreMap":112},[506,4550,4551],{"class":508,"line":274},[506,4552,1137],{"class":1136},[506,4554,4555,4557,4559,4561],{"class":508,"line":262},[506,4556,1573],{"class":1142},[506,4558,1146],{"class":1136},[506,4560,1578],{"class":1142},[506,4562,1153],{"class":1136},[506,4564,4565,4567,4569,4571],{"class":508,"line":357},[506,4566,1585],{"class":1142},[506,4568,1588],{"class":1136},[506,4570,1592],{"class":1591},[506,4572,1595],{"class":1136},[506,4574,4575,4577,4579,4581],{"class":508,"line":1168},[506,4576,1600],{"class":1142},[506,4578,1146],{"class":1136},[506,4580,1605],{"class":1149},[506,4582,1153],{"class":1136},[506,4584,4585,4587,4589,4591],{"class":508,"line":1181},[506,4586,1612],{"class":1142},[506,4588,1146],{"class":1136},[506,4590,1617],{"class":1142},[506,4592,1153],{"class":1136},[506,4594,4595,4597,4599],{"class":508,"line":1194},[506,4596,1624],{"class":1142},[506,4598,1146],{"class":1136},[506,4600,1629],{"class":1149},[506,4602,4603],{"class":508,"line":1207},[506,4604,1402],{"class":1136},[15,4606,1637],{"id":1636},[106,4608,4610],{"className":4609,"code":1641,"language":111,"meta":112},[109],[114,4611,1641],{"__ignoreMap":112},[15,4613,1647],{"id":1646},[11,4615,1650],{},[106,4617,4618],{"className":1653,"code":1654,"language":1655,"meta":112,"style":112},[114,4619,4620],{"__ignoreMap":112},[506,4621,4622],{"class":508,"line":274},[506,4623,1654],{},[11,4625,1664,4626,1667],{},[114,4627,294],{},[139,4629,4630],{},[11,4631,4632,1675],{},[101,4633,1674],{},[15,4635,1679],{"id":1678},[11,4637,1682,4638,1686,4640,474,4642,1124],{},[114,4639,1685],{},[114,4641,1689],{},[114,4643,1692],{},[106,4645,4646],{"className":1127,"code":1695,"language":1129,"meta":112,"style":112},[114,4647,4648,4652,4662,4672,4682,4692,4700],{"__ignoreMap":112},[506,4649,4650],{"class":508,"line":274},[506,4651,1137],{"class":1136},[506,4653,4654,4656,4658,4660],{"class":508,"line":262},[506,4655,1573],{"class":1142},[506,4657,1146],{"class":1136},[506,4659,1266],{"class":1142},[506,4661,1153],{"class":1136},[506,4663,4664,4666,4668,4670],{"class":508,"line":357},[506,4665,1585],{"class":1142},[506,4667,1146],{"class":1136},[506,4669,1617],{"class":1142},[506,4671,1153],{"class":1136},[506,4673,4674,4676,4678,4680],{"class":508,"line":1168},[506,4675,1600],{"class":1142},[506,4677,1146],{"class":1136},[506,4679,1730],{"class":1149},[506,4681,1153],{"class":1136},[506,4683,4684,4686,4688,4690],{"class":508,"line":1181},[506,4685,1612],{"class":1142},[506,4687,1146],{"class":1136},[506,4689,1741],{"class":1149},[506,4691,1153],{"class":1136},[506,4693,4694,4696,4698],{"class":508,"line":1194},[506,4695,1624],{"class":1142},[506,4697,1146],{"class":1136},[506,4699,1629],{"class":1149},[506,4701,4702],{"class":508,"line":1207},[506,4703,1402],{"class":1136},[11,4705,1758],{},[169,4707,4708,4712,4716,4720],{},[172,4709,4710,1765],{},[114,4711,650],{},[172,4713,4714,1771],{},[114,4715,1770],{},[172,4717,4718,1777],{},[114,4719,1776],{},[172,4721,4722,1783],{},[114,4723,1782],{},[1785,4725],{},[15,4727,52],{"id":1789},[303,4729,1793],{"id":1792},[106,4731,4732],{"className":1653,"code":1796,"language":1655,"meta":112,"style":112},[114,4733,4734],{"__ignoreMap":112},[506,4735,4736],{"class":508,"line":274},[506,4737,1796],{},[11,4739,1805],{},[106,4741,4742],{"className":1127,"code":1808,"language":1129,"meta":112,"style":112},[114,4743,4744,4748,4758,4768,4778,4788,4796],{"__ignoreMap":112},[506,4745,4746],{"class":508,"line":274},[506,4747,1137],{"class":1136},[506,4749,4750,4752,4754,4756],{"class":508,"line":262},[506,4751,1819],{"class":1142},[506,4753,1146],{"class":1136},[506,4755,1253],{"class":1149},[506,4757,1153],{"class":1136},[506,4759,4760,4762,4764,4766],{"class":508,"line":357},[506,4761,1830],{"class":1142},[506,4763,1146],{"class":1136},[506,4765,1835],{"class":1149},[506,4767,1153],{"class":1136},[506,4769,4770,4772,4774,4776],{"class":508,"line":1168},[506,4771,1842],{"class":1142},[506,4773,1146],{"class":1136},[506,4775,1847],{"class":1149},[506,4777,1153],{"class":1136},[506,4779,4780,4782,4784,4786],{"class":508,"line":1181},[506,4781,1854],{"class":1142},[506,4783,1146],{"class":1136},[506,4785,1859],{"class":1149},[506,4787,1153],{"class":1136},[506,4789,4790,4792,4794],{"class":508,"line":1194},[506,4791,1866],{"class":1142},[506,4793,1146],{"class":1136},[506,4795,1871],{"class":1149},[506,4797,4798],{"class":508,"line":1207},[506,4799,1402],{"class":1136},[169,4801,4802,4806,4812,4816,4820],{},[172,4803,4804,1883],{},[114,4805,1882],{},[172,4807,4808,1889,4810,1893],{},[114,4809,1888],{},[114,4811,1892],{},[172,4813,4814,1899],{},[114,4815,1898],{},[172,4817,4818,1905],{},[114,4819,1904],{},[172,4821,4822,1911,4824,1914],{},[114,4823,1910],{},[114,4825,234],{},[11,4827,1917,4828,1921],{},[114,4829,1920],{},[106,4831,4832],{"className":1924,"code":1925,"language":1926,"meta":112,"style":112},[114,4833,4834,4846,4858,4866,4872,4876,4880,4884,4888,4892],{"__ignoreMap":112},[506,4835,4836,4838,4840,4842,4844],{"class":508,"line":274},[506,4837,1934],{"class":1933},[506,4839,1937],{"class":1142},[506,4841,1940],{"class":1149},[506,4843,1943],{"class":1149},[506,4845,1946],{"class":1142},[506,4847,4848,4850,4852,4854,4856],{"class":508,"line":262},[506,4849,1951],{"class":1142},[506,4851,1954],{"class":1149},[506,4853,1957],{"class":1136},[506,4855,1960],{"class":1149},[506,4857,1946],{"class":1142},[506,4859,4860,4862,4864],{"class":508,"line":357},[506,4861,1951],{"class":1142},[506,4863,1969],{"class":1149},[506,4865,1946],{"class":1142},[506,4867,4868,4870],{"class":508,"line":1168},[506,4869,1976],{"class":1142},[506,4871,1979],{"class":1149},[506,4873,4874],{"class":508,"line":1181},[506,4875,1984],{"class":1149},[506,4877,4878],{"class":508,"line":1194},[506,4879,1989],{"class":1149},[506,4881,4882],{"class":508,"line":1207},[506,4883,1994],{"class":1149},[506,4885,4886],{"class":508,"line":1220},[506,4887,1999],{"class":1149},[506,4889,4890],{"class":508,"line":1233},[506,4891,2004],{"class":1149},[506,4893,4894],{"class":508,"line":1245},[506,4895,2009],{"class":1149},[303,4897,2013],{"id":2012},[106,4899,4900],{"className":1653,"code":2016,"language":1655,"meta":112,"style":112},[114,4901,4902],{"__ignoreMap":112},[506,4903,4904],{"class":508,"line":274},[506,4905,2016],{},[11,4907,2025],{},[106,4909,4910],{"className":1127,"code":2028,"language":1129,"meta":112,"style":112},[114,4911,4912,4916,4926,4932,4936,4946,4956,4966,4976,4986,4996,5004,5008,5012],{"__ignoreMap":112},[506,4913,4914],{"class":508,"line":274},[506,4915,1137],{"class":1136},[506,4917,4918,4920,4922,4924],{"class":508,"line":262},[506,4919,1573],{"class":1142},[506,4921,1146],{"class":1136},[506,4923,1578],{"class":1142},[506,4925,1153],{"class":1136},[506,4927,4928,4930],{"class":508,"line":357},[506,4929,1585],{"class":1142},[506,4931,1290],{"class":1136},[506,4933,4934],{"class":508,"line":1168},[506,4935,1296],{"class":1136},[506,4937,4938,4940,4942,4944],{"class":508,"line":1181},[506,4939,2059],{"class":1142},[506,4941,1146],{"class":1136},[506,4943,1163],{"class":1149},[506,4945,1153],{"class":1136},[506,4947,4948,4950,4952,4954],{"class":508,"line":1194},[506,4949,2070],{"class":1142},[506,4951,1146],{"class":1136},[506,4953,1253],{"class":1149},[506,4955,1153],{"class":1136},[506,4957,4958,4960,4962,4964],{"class":508,"line":1207},[506,4959,2081],{"class":1142},[506,4961,1146],{"class":1136},[506,4963,2086],{"class":1149},[506,4965,1153],{"class":1136},[506,4967,4968,4970,4972,4974],{"class":508,"line":1220},[506,4969,2093],{"class":1142},[506,4971,1146],{"class":1136},[506,4973,2098],{"class":1149},[506,4975,1153],{"class":1136},[506,4977,4978,4980,4982,4984],{"class":508,"line":1233},[506,4979,2105],{"class":1142},[506,4981,1146],{"class":1136},[506,4983,1578],{"class":1142},[506,4985,1153],{"class":1136},[506,4987,4988,4990,4992,4994],{"class":508,"line":1245},[506,4989,2116],{"class":1142},[506,4991,1146],{"class":1136},[506,4993,2121],{"class":1149},[506,4995,1153],{"class":1136},[506,4997,4998,5000,5002],{"class":508,"line":1258},[506,4999,2128],{"class":1142},[506,5001,1146],{"class":1136},[506,5003,2133],{"class":1149},[506,5005,5006],{"class":508,"line":1271},[506,5007,1390],{"class":1136},[506,5009,5010],{"class":508,"line":1284},[506,5011,1396],{"class":1136},[506,5013,5014],{"class":508,"line":1293},[506,5015,1402],{"class":1136},[303,5017,2149],{"id":2148},[106,5019,5020],{"className":1653,"code":2152,"language":1655,"meta":112,"style":112},[114,5021,5022],{"__ignoreMap":112},[506,5023,5024],{"class":508,"line":274},[506,5025,2152],{},[303,5027,2162],{"id":2161},[106,5029,5030],{"className":1653,"code":2165,"language":1655,"meta":112,"style":112},[114,5031,5032],{"__ignoreMap":112},[506,5033,5034],{"class":508,"line":274},[506,5035,2165],{},[11,5037,2174,5038,2178,5040,315],{},[114,5039,2177],{},[114,5041,2181],{},[1785,5043],{},[15,5045,2187],{"id":2186},[303,5047,2191],{"id":2190},[106,5049,5050],{"className":1653,"code":2194,"language":1655,"meta":112,"style":112},[114,5051,5052],{"__ignoreMap":112},[506,5053,5054],{"class":508,"line":274},[506,5055,2194],{},[11,5057,2203],{},[106,5059,5060],{"className":1127,"code":2206,"language":1129,"meta":112,"style":112},[114,5061,5062,5066,5076,5082,5092,5102,5112,5122,5132,5140,5144,5152],{"__ignoreMap":112},[506,5063,5064],{"class":508,"line":274},[506,5065,1137],{"class":1136},[506,5067,5068,5070,5072,5074],{"class":508,"line":262},[506,5069,1573],{"class":1142},[506,5071,1146],{"class":1136},[506,5073,1578],{"class":1142},[506,5075,1153],{"class":1136},[506,5077,5078,5080],{"class":508,"line":357},[506,5079,1585],{"class":1142},[506,5081,2229],{"class":1136},[506,5083,5084,5086,5088,5090],{"class":508,"line":1168},[506,5085,2234],{"class":1142},[506,5087,1146],{"class":1136},[506,5089,1189],{"class":1149},[506,5091,1153],{"class":1136},[506,5093,5094,5096,5098,5100],{"class":508,"line":1181},[506,5095,2245],{"class":1142},[506,5097,1146],{"class":1136},[506,5099,2250],{"class":1149},[506,5101,1153],{"class":1136},[506,5103,5104,5106,5108,5110],{"class":508,"line":1194},[506,5105,2257],{"class":1142},[506,5107,1146],{"class":1136},[506,5109,2262],{"class":1142},[506,5111,1153],{"class":1136},[506,5113,5114,5116,5118,5120],{"class":508,"line":1207},[506,5115,2269],{"class":1142},[506,5117,1146],{"class":1136},[506,5119,2274],{"class":1142},[506,5121,1153],{"class":1136},[506,5123,5124,5126,5128,5130],{"class":508,"line":1220},[506,5125,2281],{"class":1142},[506,5127,1146],{"class":1136},[506,5129,2286],{"class":1142},[506,5131,1153],{"class":1136},[506,5133,5134,5136,5138],{"class":508,"line":1233},[506,5135,2293],{"class":1142},[506,5137,1146],{"class":1136},[506,5139,1629],{"class":1149},[506,5141,5142],{"class":508,"line":1245},[506,5143,2302],{"class":1136},[506,5145,5146,5148,5150],{"class":508,"line":1258},[506,5147,1600],{"class":1142},[506,5149,1146],{"class":1136},[506,5151,2311],{"class":1149},[506,5153,5154],{"class":508,"line":1271},[506,5155,1402],{"class":1136},[106,5157,5158],{"className":1924,"code":2318,"language":1926,"meta":112,"style":112},[114,5159,5160,5176],{"__ignoreMap":112},[506,5161,5162,5164,5166,5168,5170,5172,5174],{"class":508,"line":274},[506,5163,1934],{"class":1933},[506,5165,1937],{"class":1142},[506,5167,1940],{"class":1149},[506,5169,2331],{"class":1149},[506,5171,2334],{"class":1136},[506,5173,2337],{"class":1149},[506,5175,1946],{"class":1142},[506,5177,5178,5180,5182,5184],{"class":508,"line":262},[506,5179,1951],{"class":1142},[506,5181,1954],{"class":1149},[506,5183,1957],{"class":1136},[506,5185,2350],{"class":1149},[1785,5187],{},[15,5189,2356],{"id":2355},[106,5191,5192],{"className":1653,"code":2359,"language":1655,"meta":112,"style":112},[114,5193,5194],{"__ignoreMap":112},[506,5195,5196],{"class":508,"line":274},[506,5197,2359],{},[11,5199,2368],{},[11,5201,1805],{},[106,5203,5204],{"className":1127,"code":2373,"language":1129,"meta":112,"style":112},[114,5205,5206,5210,5220,5228],{"__ignoreMap":112},[506,5207,5208],{"class":508,"line":274},[506,5209,1137],{"class":1136},[506,5211,5212,5214,5216,5218],{"class":508,"line":262},[506,5213,2384],{"class":1142},[506,5215,1146],{"class":1136},[506,5217,1163],{"class":1149},[506,5219,1153],{"class":1136},[506,5221,5222,5224,5226],{"class":508,"line":357},[506,5223,2395],{"class":1142},[506,5225,1146],{"class":1136},[506,5227,2400],{"class":1149},[506,5229,5230],{"class":508,"line":1168},[506,5231,1402],{"class":1136},[11,5233,2407],{},[106,5235,5236],{"className":1127,"code":2410,"language":1129,"meta":112,"style":112},[114,5237,5238,5242,5252,5258,5268,5278,5288,5298,5304,5308,5318,5328,5338,5348,5358,5368,5376,5380,5384,5388],{"__ignoreMap":112},[506,5239,5240],{"class":508,"line":274},[506,5241,1137],{"class":1136},[506,5243,5244,5246,5248,5250],{"class":508,"line":262},[506,5245,1573],{"class":1142},[506,5247,1146],{"class":1136},[506,5249,1578],{"class":1142},[506,5251,1153],{"class":1136},[506,5253,5254,5256],{"class":508,"line":357},[506,5255,1585],{"class":1142},[506,5257,2229],{"class":1136},[506,5259,5260,5262,5264,5266],{"class":508,"line":1168},[506,5261,2437],{"class":1142},[506,5263,1146],{"class":1136},[506,5265,2442],{"class":1149},[506,5267,1153],{"class":1136},[506,5269,5270,5272,5274,5276],{"class":508,"line":1181},[506,5271,2449],{"class":1142},[506,5273,1146],{"class":1136},[506,5275,1228],{"class":1142},[506,5277,1153],{"class":1136},[506,5279,5280,5282,5284,5286],{"class":508,"line":1194},[506,5281,2460],{"class":1142},[506,5283,1146],{"class":1136},[506,5285,1215],{"class":1142},[506,5287,1153],{"class":1136},[506,5289,5290,5292,5294,5296],{"class":508,"line":1207},[506,5291,2471],{"class":1142},[506,5293,1146],{"class":1136},[506,5295,781],{"class":1142},[506,5297,1153],{"class":1136},[506,5299,5300,5302],{"class":508,"line":1220},[506,5301,2482],{"class":1142},[506,5303,1290],{"class":1136},[506,5305,5306],{"class":508,"line":1233},[506,5307,2489],{"class":1136},[506,5309,5310,5312,5314,5316],{"class":508,"line":1245},[506,5311,2494],{"class":1142},[506,5313,1146],{"class":1136},[506,5315,2442],{"class":1149},[506,5317,1153],{"class":1136},[506,5319,5320,5322,5324,5326],{"class":508,"line":1258},[506,5321,2505],{"class":1142},[506,5323,1146],{"class":1136},[506,5325,2510],{"class":1149},[506,5327,1153],{"class":1136},[506,5329,5330,5332,5334,5336],{"class":508,"line":1271},[506,5331,2517],{"class":1142},[506,5333,1146],{"class":1136},[506,5335,2522],{"class":1149},[506,5337,1153],{"class":1136},[506,5339,5340,5342,5344,5346],{"class":508,"line":1284},[506,5341,2529],{"class":1142},[506,5343,1146],{"class":1136},[506,5345,2534],{"class":1149},[506,5347,1153],{"class":1136},[506,5349,5350,5352,5354,5356],{"class":508,"line":1293},[506,5351,2541],{"class":1142},[506,5353,1146],{"class":1136},[506,5355,2546],{"class":1149},[506,5357,1153],{"class":1136},[506,5359,5360,5362,5364,5366],{"class":508,"line":1299},[506,5361,2553],{"class":1142},[506,5363,1146],{"class":1136},[506,5365,2558],{"class":1149},[506,5367,1153],{"class":1136},[506,5369,5370,5372,5374],{"class":508,"line":1311},[506,5371,2565],{"class":1142},[506,5373,1146],{"class":1136},[506,5375,2570],{"class":1149},[506,5377,5378],{"class":508,"line":1324},[506,5379,2575],{"class":1136},[506,5381,5382],{"class":508,"line":1337},[506,5383,2580],{"class":1136},[506,5385,5386],{"class":508,"line":1350},[506,5387,2585],{"class":1136},[506,5389,5390],{"class":508,"line":1363},[506,5391,1402],{"class":1136},[1785,5393],{},[15,5395,2595],{"id":2594},[11,5397,2598,5398,936,5400,936,5402,2608],{},[114,5399,2601],{},[114,5401,2604],{},[114,5403,2607],{},[106,5405,5406],{"className":1653,"code":2611,"language":1655,"meta":112,"style":112},[114,5407,5408],{"__ignoreMap":112},[506,5409,5410],{"class":508,"line":274},[506,5411,2611],{},[11,5413,1805],{},[106,5415,5416],{"className":1127,"code":2622,"language":1129,"meta":112,"style":112},[114,5417,5418,5422,5432,5440],{"__ignoreMap":112},[506,5419,5420],{"class":508,"line":274},[506,5421,1137],{"class":1136},[506,5423,5424,5426,5428,5430],{"class":508,"line":262},[506,5425,2633],{"class":1142},[506,5427,1146],{"class":1136},[506,5429,2638],{"class":1149},[506,5431,1153],{"class":1136},[506,5433,5434,5436,5438],{"class":508,"line":357},[506,5435,2645],{"class":1142},[506,5437,1146],{"class":1136},[506,5439,2650],{"class":1149},[506,5441,5442],{"class":508,"line":1168},[506,5443,1402],{"class":1136},[11,5445,2407],{},[106,5447,5448],{"className":1127,"code":2659,"language":1129,"meta":112,"style":112},[114,5449,5450,5454,5464,5470,5480,5490,5500,5506,5510,5520,5530,5540,5550,5560,5570,5580,5590,5600,5608,5612,5616,5620],{"__ignoreMap":112},[506,5451,5452],{"class":508,"line":274},[506,5453,1137],{"class":1136},[506,5455,5456,5458,5460,5462],{"class":508,"line":262},[506,5457,1573],{"class":1142},[506,5459,1146],{"class":1136},[506,5461,1578],{"class":1142},[506,5463,1153],{"class":1136},[506,5465,5466,5468],{"class":508,"line":357},[506,5467,1585],{"class":1142},[506,5469,2229],{"class":1136},[506,5471,5472,5474,5476,5478],{"class":508,"line":1168},[506,5473,2686],{"class":1142},[506,5475,1146],{"class":1136},[506,5477,1266],{"class":1142},[506,5479,1153],{"class":1136},[506,5481,5482,5484,5486,5488],{"class":508,"line":1181},[506,5483,2697],{"class":1142},[506,5485,1146],{"class":1136},[506,5487,2702],{"class":1149},[506,5489,1153],{"class":1136},[506,5491,5492,5494,5496,5498],{"class":508,"line":1194},[506,5493,2709],{"class":1142},[506,5495,1146],{"class":1136},[506,5497,2714],{"class":1149},[506,5499,1153],{"class":1136},[506,5501,5502,5504],{"class":508,"line":1207},[506,5503,2721],{"class":1142},[506,5505,1290],{"class":1136},[506,5507,5508],{"class":508,"line":1220},[506,5509,2489],{"class":1136},[506,5511,5512,5514,5516,5518],{"class":508,"line":1233},[506,5513,2732],{"class":1142},[506,5515,1146],{"class":1136},[506,5517,2638],{"class":1149},[506,5519,1153],{"class":1136},[506,5521,5522,5524,5526,5528],{"class":508,"line":1245},[506,5523,2743],{"class":1142},[506,5525,1146],{"class":1136},[506,5527,2748],{"class":1149},[506,5529,1153],{"class":1136},[506,5531,5532,5534,5536,5538],{"class":508,"line":1258},[506,5533,2755],{"class":1142},[506,5535,1146],{"class":1136},[506,5537,1319],{"class":1149},[506,5539,1153],{"class":1136},[506,5541,5542,5544,5546,5548],{"class":508,"line":1271},[506,5543,2766],{"class":1142},[506,5545,1146],{"class":1136},[506,5547,2771],{"class":1149},[506,5549,1153],{"class":1136},[506,5551,5552,5554,5556,5558],{"class":508,"line":1284},[506,5553,2778],{"class":1142},[506,5555,1146],{"class":1136},[506,5557,2783],{"class":1149},[506,5559,1153],{"class":1136},[506,5561,5562,5564,5566,5568],{"class":508,"line":1293},[506,5563,2790],{"class":1142},[506,5565,1146],{"class":1136},[506,5567,2795],{"class":1142},[506,5569,1153],{"class":1136},[506,5571,5572,5574,5576,5578],{"class":508,"line":1299},[506,5573,2802],{"class":1142},[506,5575,1146],{"class":1136},[506,5577,2807],{"class":1142},[506,5579,1153],{"class":1136},[506,5581,5582,5584,5586,5588],{"class":508,"line":1311},[506,5583,2814],{"class":1142},[506,5585,1146],{"class":1136},[506,5587,1266],{"class":1142},[506,5589,1153],{"class":1136},[506,5591,5592,5594,5596,5598],{"class":508,"line":1324},[506,5593,2553],{"class":1142},[506,5595,1146],{"class":1136},[506,5597,2829],{"class":1149},[506,5599,1153],{"class":1136},[506,5601,5602,5604,5606],{"class":508,"line":1337},[506,5603,2836],{"class":1142},[506,5605,1146],{"class":1136},[506,5607,2841],{"class":1149},[506,5609,5610],{"class":508,"line":1350},[506,5611,2575],{"class":1136},[506,5613,5614],{"class":508,"line":1363},[506,5615,2580],{"class":1136},[506,5617,5618],{"class":508,"line":1376},[506,5619,2585],{"class":1136},[506,5621,5622],{"class":508,"line":1387},[506,5623,1402],{"class":1136},[1785,5625],{},[15,5627,909],{"id":908},[303,5629,2865],{"id":2864},[106,5631,5632],{"className":1653,"code":2868,"language":1655,"meta":112,"style":112},[114,5633,5634],{"__ignoreMap":112},[506,5635,5636],{"class":508,"line":274},[506,5637,2868],{},[11,5639,2877,5640,2881],{},[114,5641,2880],{},[106,5643,5644],{"className":1127,"code":2884,"language":1129,"meta":112,"style":112},[114,5645,5646,5650,5660,5666,5672,5676,5686,5696,5706,5716,5726,5736,5746,5756,5766,5776,5786,5790,5794,5804,5814,5824,5832,5836],{"__ignoreMap":112},[506,5647,5648],{"class":508,"line":274},[506,5649,1137],{"class":1136},[506,5651,5652,5654,5656,5658],{"class":508,"line":262},[506,5653,1573],{"class":1142},[506,5655,1146],{"class":1136},[506,5657,1578],{"class":1142},[506,5659,1153],{"class":1136},[506,5661,5662,5664],{"class":508,"line":357},[506,5663,1585],{"class":1142},[506,5665,2229],{"class":1136},[506,5667,5668,5670],{"class":508,"line":1168},[506,5669,2911],{"class":1142},[506,5671,1290],{"class":1136},[506,5673,5674],{"class":508,"line":1181},[506,5675,2489],{"class":1136},[506,5677,5678,5680,5682,5684],{"class":508,"line":1194},[506,5679,2922],{"class":1142},[506,5681,1146],{"class":1136},[506,5683,1150],{"class":1149},[506,5685,1153],{"class":1136},[506,5687,5688,5690,5692,5694],{"class":508,"line":1207},[506,5689,2933],{"class":1142},[506,5691,1146],{"class":1136},[506,5693,1163],{"class":1149},[506,5695,1153],{"class":1136},[506,5697,5698,5700,5702,5704],{"class":508,"line":1220},[506,5699,2944],{"class":1142},[506,5701,1146],{"class":1136},[506,5703,2949],{"class":1149},[506,5705,1153],{"class":1136},[506,5707,5708,5710,5712,5714],{"class":508,"line":1233},[506,5709,2956],{"class":1142},[506,5711,1146],{"class":1136},[506,5713,2961],{"class":1149},[506,5715,1153],{"class":1136},[506,5717,5718,5720,5722,5724],{"class":508,"line":1245},[506,5719,2494],{"class":1142},[506,5721,1146],{"class":1136},[506,5723,1202],{"class":1149},[506,5725,1153],{"class":1136},[506,5727,5728,5730,5732,5734],{"class":508,"line":1258},[506,5729,2978],{"class":1142},[506,5731,1146],{"class":1136},[506,5733,1215],{"class":1142},[506,5735,1153],{"class":1136},[506,5737,5738,5740,5742,5744],{"class":508,"line":1271},[506,5739,2989],{"class":1142},[506,5741,1146],{"class":1136},[506,5743,1228],{"class":1142},[506,5745,1153],{"class":1136},[506,5747,5748,5750,5752,5754],{"class":508,"line":1284},[506,5749,3000],{"class":1142},[506,5751,1146],{"class":1136},[506,5753,70],{"class":1142},[506,5755,1153],{"class":1136},[506,5757,5758,5760,5762,5764],{"class":508,"line":1293},[506,5759,3011],{"class":1142},[506,5761,1146],{"class":1136},[506,5763,1266],{"class":1142},[506,5765,1153],{"class":1136},[506,5767,5768,5770,5772,5774],{"class":508,"line":1299},[506,5769,3022],{"class":1142},[506,5771,1146],{"class":1136},[506,5773,1279],{"class":1149},[506,5775,1153],{"class":1136},[506,5777,5778,5780,5782,5784],{"class":508,"line":1311},[506,5779,3033],{"class":1142},[506,5781,3036],{"class":1136},[506,5783,3039],{"class":1591},[506,5785,3042],{"class":1136},[506,5787,5788],{"class":508,"line":1324},[506,5789,2575],{"class":1136},[506,5791,5792],{"class":508,"line":1337},[506,5793,3051],{"class":1136},[506,5795,5796,5798,5800,5802],{"class":508,"line":1350},[506,5797,3056],{"class":1142},[506,5799,1146],{"class":1136},[506,5801,3061],{"class":1142},[506,5803,1153],{"class":1136},[506,5805,5806,5808,5810,5812],{"class":508,"line":1363},[506,5807,3068],{"class":1142},[506,5809,1146],{"class":1136},[506,5811,70],{"class":1142},[506,5813,1153],{"class":1136},[506,5815,5816,5818,5820,5822],{"class":508,"line":1376},[506,5817,3079],{"class":1142},[506,5819,1146],{"class":1136},[506,5821,1228],{"class":1142},[506,5823,1153],{"class":1136},[506,5825,5826,5828,5830],{"class":508,"line":1387},[506,5827,3090],{"class":1142},[506,5829,1146],{"class":1136},[506,5831,3095],{"class":1142},[506,5833,5834],{"class":508,"line":1393},[506,5835,2585],{"class":1136},[506,5837,5838],{"class":508,"line":1399},[506,5839,1402],{"class":1136},[303,5841,3107],{"id":3106},[106,5843,5844],{"className":1653,"code":3110,"language":1655,"meta":112,"style":112},[114,5845,5846],{"__ignoreMap":112},[506,5847,5848],{"class":508,"line":274},[506,5849,3110],{},[303,5851,3120],{"id":3119},[106,5853,5854],{"className":1653,"code":3123,"language":1655,"meta":112,"style":112},[114,5855,5856],{"__ignoreMap":112},[506,5857,5858],{"class":508,"line":274},[506,5859,3123],{},[11,5861,3132],{},[1785,5863],{},[15,5865,3138],{"id":3137},[38,5867,5868,5878],{},[41,5869,5870],{},[44,5871,5872,5874,5876],{},[47,5873,3147],{},[47,5875,3150],{},[47,5877,3153],{},[60,5879,5880,5896,5910,5922,5936],{},[44,5881,5882,5886,5890],{},[65,5883,5884],{},[114,5885,3162],{},[65,5887,5888],{},[114,5889,3167],{},[65,5891,5892,3172,5894,3175],{},[114,5893,1578],{},[114,5895,1266],{},[44,5897,5898,5902,5906],{},[65,5899,5900],{},[114,5901,3182],{},[65,5903,5904],{},[114,5905,3187],{},[65,5907,3190,5908,3193],{},[114,5909,1617],{},[44,5911,5912,5916,5920],{},[65,5913,5914],{},[114,5915,1692],{},[65,5917,5918],{},[114,5919,3204],{},[65,5921,3207],{},[44,5923,5924,5928,5932],{},[65,5925,5926],{},[114,5927,1689],{},[65,5929,5930],{},[114,5931,3204],{},[65,5933,3220,5934,424],{},[114,5935,3223],{},[44,5937,5938,5942,5946],{},[65,5939,5940],{},[114,5941,3230],{},[65,5943,5944],{},[114,5945,3235],{},[65,5947,3238],{},[674,5949,3241],{},{"title":112,"searchDepth":262,"depth":262,"links":5951},[5952,5953,5954,5955,5961,5964,5965,5966,5971],{"id":1636,"depth":262,"text":1637},{"id":1646,"depth":262,"text":1647},{"id":1678,"depth":262,"text":1679},{"id":1789,"depth":262,"text":52,"children":5956},[5957,5958,5959,5960],{"id":1792,"depth":357,"text":1793},{"id":2012,"depth":357,"text":2013},{"id":2148,"depth":357,"text":2149},{"id":2161,"depth":357,"text":2162},{"id":2186,"depth":262,"text":2187,"children":5962},[5963],{"id":2190,"depth":357,"text":2191},{"id":2355,"depth":262,"text":2356},{"id":2594,"depth":262,"text":2595},{"id":908,"depth":262,"text":909,"children":5967},[5968,5969,5970],{"id":2864,"depth":357,"text":2865},{"id":3106,"depth":357,"text":3107},{"id":3119,"depth":357,"text":3120},{"id":3137,"depth":262,"text":3138},{},{"title":1041,"description":3264}]