NuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles
1. Paper overview
In one sentence: nuPlan proposes evaluating a planner through the driving consequences of its trajectories, with the usefulness of that evaluation depending on agent simulation and an unfinished scoring specification. e-identitye-motivatione-scalee-taskse-proposal
| At a glance | What to know |
|---|---|
| Research problem | Author claim The authors argue that forecasting benchmarks underspecify planning: a turn needs a navigation goal, alternative safe merges need not match one recorded path, and overtaking depends on subsequent actions of other vehicles. Consequently, short-horizon displacement agreement alone cannot establish long-term planning quality. Figure 1 motivates these three problems conceptually; it does not measure their frequency or demonstrate a planner improvement. e-motivation |
| Core mechanism | Source description A proposed real-driving dataset combines four cities, semantic maps, autolabeled agent tracks and selected sensor data. Boston, Pittsburgh, Las Vegas and Singapore supply different driving contexts, including double parking, distinctive left-turn precedence, busy pickup/drop-off interactions and left-hand traffic. e-data |
| A key reported result | Planned planning-dataset coverage: nuPlan: planned 1500 h, 4 cities, sensor-data checkmark, planning, OL+CL. Driving hours, city count, sensor-data availability and evaluation mode. Descriptive comparison in Table 1 of this proposal; not a planner evaluation or a verified release audit. No train/validation/test counts are given. The same table lists Argoverse: 320 h/2 cities; nuPredict: 5 h/2 cities; Lyft: 1118 h/1 city; Waymo: 570 h/6 cities. All four comparator rows are prediction/OL; nuPredict also has a sensor-data checkmark. nuPlan has the largest stated hour count among these rows, while Waymo has more cities. These are heterogeneous dataset descriptors, not matched performance baselines. Section 3 limits released sensor data to a subset despite the table's checkmark. e-scalee-data |
| Reading caution | Reader analysis This revision still says the dataset is planned for NeurIPS 2021 and challenges for early 2022. Its date does not establish that either happened. There are no nuPlan planner scores, uncertainty estimates, ablations or deployment results, so the benefits of the proposed evaluation protocol are not quantified here. e-identitye-proposal |
Core contributions
- Source description
A proposed real-driving dataset combines four cities, semantic maps, autolabeled agent tracks and selected sensor data. Boston, Pittsburgh, Las Vegas and Singapore supply different driving contexts, including double parking, distinctive left-turn precedence, busy pickup/drop-off interactions and left-hand traffic. e-data
- Source description
The benchmark separates open-loop imitation, non-reactive closed-loop replay and reactive closed-loop evaluation, while proposing common and scenario-specific metrics. The authors' 'first' and 'largest' descriptions are historical priority claims, not independently verified conclusions of this reading. e-identitye-scalee-taskse-metrics
Figure 1(a)–(c). Three reasons a recorded trajectory cannot by itself specify good planning. Original paper, p. 1 ↗
Excerpt from the authors’ paper; cropped without altering the figure or table.
How to read it. Read the panels from left to right using the caption's color convention: white is the observed ego route and red is a hypothetical planner route. In (a), the two routes turn in different directions; the missing information is the intended destination. In (b), white merges earlier while red continues before merging, illustrating two timings that the text treats as valid. In (c), the alternative overtaking paths share the road with other vehicles, making subsequent interaction relevant. The arrows depict route alternatives, not an executed simulation rollout. The caption and Introduction provide the interpretation; no numerical outcome is encoded by the geometry. e-motivation
What it supports. The figure motivates three separate evaluation requirements: goals resolve route ambiguity, behavior-sensitive metrics accommodate valid alternatives, and feedback exposes interaction consequences. Its contribution is a diagnosis of what a benchmark should measure. It does not establish that any particular planner or simulator satisfies those requirements.
Where the evidence stops. These are schematic examples, without calibrated distances, timing or safety scores. In particular, the red overtaking route is hypothetical, not a demonstrated safe maneuver. No failure rate or improvement can be estimated from the drawings.
2. Motivation
2.1 The problem and the proposed response
The authors argue that forecasting benchmarks underspecify planning: a turn needs a navigation goal, alternative safe merges need not match one recorded path, and overtaking depends on subsequent actions of other vehicles. Consequently, short-horizon displacement agreement alone cannot establish long-term planning quality. Figure 1 motivates these three problems conceptually; it does not measure their frequency or demonstrate a planner improvement. e-motivation
2.2 What this reading follows
A recorded drive shows what one human did, but a planner must decide what to do next after its own actions change the situation. This is the gap that nuPlan targets with a proposed driving dataset, a lightweight closed-loop simulator and planning-specific metrics. Read this five-page arXiv v4 as a benchmark design: its dataset table reports intended scale, its road sketches explain evaluation failures, and its task descriptions separate ego feedback from other-agent reactivity. It contains no nuPlan planner performance study. The useful research question is therefore how the proposed protocol would expose failures that agreement with a recorded trajectory can conceal. e-identitye-motivatione-scalee-taskse-proposal
3. Research context
We place the paper in the collection through its world–action interface. The catalog labels and the reading’s assessment are shown separately.
| Catalog dimension | Recorded classification |
|---|---|
| Major category | Benchmarks & simulators |
| Architecture | Not applicable |
| Prediction paradigm | Not applicable |
| Quadrant | Not applicable |
3.1 Evidence-based assessment
Supports the recorded classification
The supplied classification as Benchmarks & simulators is supported by the dataset, simulator-mediated evaluation interface and planning diagnostics. Architecture, prediction paradigm and quadrant are correctly not applicable: the paper defines a benchmark for submitted planners, not one learned world/action architecture. Reactive-agent simulation alone does not establish joint future/action prediction, inverse dynamics, or a One Model design. e-protocole-taskse-proposal
This is the collection’s architectural analysis, not a new related-work survey. Benchmark comparisons and their protocols appear in Section 6.
4. Problem formulation
4.1 Inputs and outputs
| Inputs | Outputs |
|---|---|
|
|
5. Method in detail
5.1 Follow a plan through the controller before scoring it
Begin with the interface on page 3. A submitted planner receives information for a timestep and returns the ego vehicle's planned position and heading. The benchmark supplies a controller that tracks this trajectory and a predefined motion model that advances the simulated vehicle. In open loop, the proposed trajectory is scored without controlling the vehicle. In closed loop, the next planning query incorporates the vehicle's new state, which may differ from the recording. The important information flow is therefore plan, simulated execution, updated state and another plan. Reader interpretation: a good reference trajectory alone cannot establish good driven behavior, because tracking and feedback intervene. The paper describes this separation but leaves the controller, motion-model parameters, timestep and horizon unspecified. It supplies no learned planner architecture or training objective to reconstruct. e-protocole-taskse-proposal
5.2 Separate ego feedback from other vehicles' reactions
Closing the ego loop does not automatically make the surrounding traffic interactive. In the non-reactive task, other agents follow their recorded trajectories even when the ego vehicle takes a different path. In the reactive task, the benchmark supplies planning models for those agents, which are tracked like the ego vehicle. This distinction explains why the overtaking sketch matters: the ego planner's appropriate continuation depends on what other vehicles subsequently do. Reader interpretation: differences between these tasks can reflect both planner behavior and assumptions inside the agent simulator. The source does not specify that simulator's policy or validate its realism. It also explicitly excludes sensor warping and novel-view synthesis after ego-state divergence. Accordingly, the interface describes raw-sensor end-to-end planning for open-loop approaches; closed-loop scene feedback is not a demonstrated sensor-rendering pipeline. e-motivatione-protocole-taskse-simulation
5.3 Use the merge example to read the metric proposal
Figure 1(b) presents two merge timings that can both be acceptable even though only one matches the recording. The proposed metrics on page 4 broaden evaluation accordingly: traffic-rule measures examine collisions and interaction margins; human-driving similarity compares maneuver characteristics; vehicle-dynamics measures concern comfort and feasibility; goal achievement measures distance toward a waypoint. Lane-change tags add checks on time to collision and gaps to lead and rear agents in the target lane. Reader interpretation: these component measures can reveal why a trajectory differs, instead of treating every displacement as equally undesirable. The paper still uses L2 distance for goal achievement, so its criticism concerns using recorded-path displacement as a sufficient planning criterion. Its unresolved step is aggregation: weighted scores, thresholded violations and metric hierarchies are proposed alternatives, not a finalized leaderboard rule. e-motivatione-labelse-metricse-proposal
5.4 Training and inference
During training
This benchmark proposal does not train or evaluate a particular nuPlan planner. Offline autolabeling is dataset preparation, not a stated planner-learning objective. No planner loss, optimizer, training schedule, frozen-module specification or compute budget is supplied; cited planners in Related Work are not nuPlan baselines. e-relatede-labelse-protocole-proposal
During inference
At evaluation time, the controller and motion model turn each plan into a new ego state, after which the planner is queried again. This is simulated action execution. The paper explicitly excludes sensor warping and novel-view synthesis when the simulated ego state departs from the recording, and describes raw-sensor planning specifically for open-loop approaches. e-protocole-tasks
5.5 Implementation flow
- Construct offline labels and scenario intervals
The labeling system uses PointPillars with CenterPoint, a modified multi-view fusion method identified as MVF++, and non-causal tracking. Offline processing avoids online real-time constraints. Automatically tagged intervals cover merges, lane changes, turns, pedestrian/cyclist interactions, close or high-acceleration interactions, double parking, stop-controlled intersections and construction. The paper does not specify a fusion algorithm or tag thresholds. e-labels
- Expose a planner interface
Participants are to submit containerized planning code following a template, enabling server-side evaluation on a secret test set. Each query returns planned ego position and heading. A provided controller tracks the plan; a predefined motion model advances the simulated ego vehicle. The planner therefore specifies a reference trajectory rather than directly establishing the vehicle's executed motion. e-protocol
- Choose the feedback condition
Open loop scores trajectories without using them to control the vehicle. Closed loop feeds the newly simulated vehicle state into subsequent planning. Non-reactive evaluation replays observed trajectories for other agents; reactive evaluation supplies their planning models. Ego-state feedback and other-agent reactivity are distinct protocol choices. e-tasks
- Evaluate behavior beyond recorded-path agreement
Common metrics concern traffic rules, human-driving similarity, vehicle dynamics and goal achievement. Examples include collisions, off-road rate, time gaps, velocity/position errors, jerk, acceleration, steering rate and oscillation. Goal achievement uses L2 distance to a map waypoint. Scenario metrics examine target-lane gaps during lane changes, passing speed around pedestrians/cyclists, and agreement on right-of-way decisions. Definitions remain descriptive rather than executable formulas. e-metrics
6. Experiments & results
nuPlan proposes a benchmark that turns recorded driving into repeated planner–controller–simulator evaluation. Its central distinction is between predicting a trajectory that resembles a recording and executing a plan whose consequences change the next planning state. This version describes a planned 1500-hour dataset, open-loop and two closed-loop tasks, and candidate planning metrics; it reports no evaluated nuPlan planner or ablation. The contribution is an evaluation design, with agent realism and metric aggregation still unresolved (e-protocol, e-tasks, e-scale, e-metrics, e-proposal).
The complete supplied five-page benchmark proposal contains only Figure 1, a three-panel conceptual motivation, and Table 1, a descriptive dataset comparison. These two originals are preserved as two visuals rather than presented as independent experiments. There is no architecture figure, measured nuPlan planner-result table, ablation or diagnostic experiment to crop. The table's placement under results denotes resource comparison only. The method is explained in Sections 4.1–4.3, and the metrics remain an initial proposal; the edition therefore cannot illustrate a measured gain, mechanism ablation or finalized scoring system. e-motivatione-scalee-protocole-taskse-proposal
6.1 Read the original evidence
Table 1. The proposal changes evaluation mode as well as the stated scale of the dataset. Original paper, p. 2 ↗
Excerpt from the authors’ paper; cropped without altering the figure or table.
How to read it. Start with the rightmost columns: Pred means motion prediction, Plan. means planning, OL means open loop, and CL means closed loop. All four comparator rows are prediction/OL; the nuPlan row adds planning and OL+CL. Then compare the resource columns: nuPlan lists 1500 hours and four cities, Lyft 1118 hours and one city, and Waymo 570 hours and six cities. Sensor checkmarks appear for nuPredict and nuPlan. The caption identifies nuPredict as the nuScenes prediction challenge. Finally read Section 3 on page 3: nuPlan's sensor checkmark represents a subset, while autolabeled trajectories are intended for the entire dataset. e-scalee-datae-proposal
What it supports. Among the rows shown, nuPlan has the largest stated hour count, but Waymo spans more cities. The proposed distinction also concerns task and evaluation mode: planning with closed-loop support joins the dataset comparison. These descriptors establish the intended benchmark scope, not a measured improvement in planning quality.
Where the evidence stops. This is a historical proposal table, not a release verification or planner leaderboard. Section 3 uses planned-release language and limits sensor availability. Hours and city counts do not control for route diversity, splits, annotation quality or difficulty.
6.2 Results and evaluation conditions
| Task & protocol | Reported result | Comparison & interpretation |
|---|---|---|
| Planned planning-dataset coverage Descriptive comparison in Table 1 of this proposal; not a planner evaluation or a verified release audit. No train/validation/test counts are given. | nuPlan: planned 1500 h, 4 cities, sensor-data checkmark, planning, OL+CL. Driving hours, city count, sensor-data availability and evaluation mode | The same table lists Argoverse: 320 h/2 cities; nuPredict: 5 h/2 cities; Lyft: 1118 h/1 city; Waymo: 570 h/6 cities. All four comparator rows are prediction/OL; nuPredict also has a sensor-data checkmark. nuPlan has the largest stated hour count among these rows, while Waymo has more cities. These are heterogeneous dataset descriptors, not matched performance baselines. Section 3 limits released sensor data to a subset despite the table's checkmark. e-scalee-data |
6.3 Ablations and diagnostic examples
No ablation or diagnostic visual is included in this edition. The source-specific visual limitations are recorded above.
7. Analysis & limitations
7.1 What the evidence leaves open
This revision still says the dataset is planned for NeurIPS 2021 and challenges for early 2022. Its date does not establish that either happened. There are no nuPlan planner scores, uncertainty estimates, ablations or deployment results, so the benefits of the proposed evaluation protocol are not quantified here. e-identitye-proposal
The dataset exceeds 200 TB, motivating release of only a sensor subset while agent trajectories cover the entire proposed dataset. The paper provides no split counts, subset-selection procedure, dataset license or geographic holdout protocol. Geographic diversity alone therefore does not establish generalization or exclude train/test overlap. e-datae-protocol
The authors acknowledge systematic simulation bias. Recorded agents cannot respond to an altered ego trajectory, while the reactive-agent planning model is unspecified. No sensor synthesis addresses changed viewpoints. These boundaries prevent equating simulated closed-loop performance with validated physical driving. e-simulatione-tasks
Near-human autolabeling performance is asserted without an accuracy study here. Metric aggregation also remains an initial proposal: weighted scores, thresholded violations and hierarchies are alternatives, without fixed weights or thresholds. Benchmark rankings cannot be reconstructed from this text alone. e-labelse-proposal
7.2 Questions for discussion
- How sensitive would planner rankings be to the unspecified reactive-agent policy (e-tasks)?
- Can metric aggregation reward route progress without hiding unsafe interactions or penalizing legitimate alternative maneuvers (e-motivation, e-metrics, e-proposal)?
8. Reproducibility audit
8.1 Requirements and known gaps
A protocol implementation would need the exact data release and splits, map API, scenario tags, submission template, controller, ego motion model and reactive-agent policy. Timestep, horizon, model parameters and scoring constants must be documented separately because this paper does not supply them. Its secret-test design specifies evaluation intent without making the test cases reproducible from the paper. e-datae-labelse-protocole-taskse-proposal
Reader-proposed minimum checks are paired replay-versus-reactive rollouts with the same ego planner and initial states, and a merge case comparing recorded-path distance against safety, progress and comfort. Publish component metrics before choosing an aggregate. These checks test the paper's motivating mechanisms and are not reported experiments. e-motivatione-taskse-metricse-proposal
8.2 Proposed reproduction checks
The following checks are proposals motivated by the paper. They have not been run as part of this reading.
Check 1: Hold the ego planner fixed while changing agent reactivity
Reader-proposed check, not an experiment reported here: initialize the same merge and overtaking scenarios twice, retaining identical ego planner code, maps, initial states, controller, motion model, timestep and horizon. Replay recorded surrounding-agent trajectories in one condition and use a documented reactive policy in the other. Report paired collision events, time gaps, time to collision and goal progress; also retain rollout traces for attributing collisions. The falsifiable observation is whether interactions that fail under replay change when other agents respond. If outcomes remain unchanged, those cases do not support an explanation based on non-reactivity. Repeat with a second documented reactive policy to expose dependence on the chosen simulator. Implementations and settings would need to be obtained and fixed separately because this paper does not provide them. e-motivatione-protocole-taskse-metrics
Check 2: Test whether recorded-path distance penalizes a valid merge
Reader-proposed check, not an experiment reported here: construct a paired early/late merge matching Figure 1(b), with the same start, route goal, surrounding traffic and rollout duration. Include a recorded-path-following reference. Run every candidate through the same controller and motion model, then report recorded-path displacement separately from collision/off-road events, target-lane time gaps, time to collision, goal distance, jerk and acceleration. Predeclare the feasibility thresholds, since the paper does not supply them. The proposed counterexample succeeds only if both alternative timings meet those conditions while displacement favors the recorded timing. If the more distant path violates the conditions, it does not validate the figure's argument. Keep the component results visible and test any aggregate ranking under explicitly declared weights or priorities. e-motivatione-protocole-taskse-metricse-proposal
8.3 Reading coverage
Visual audit: All five supplied PDF pages were rendered and visually inspected. Page 1 was inspected as a complete page at both 200 and 400 DPI to verify the exact title, nine authors, Motional affiliation and v4/date stamp. Its second author row reads Alex Lang, Luke Fletcher, Oscar Beijbom and Sammy Omari; Sammy has two consecutive m letters, consistent with the supplied text and metadata. Page 1 also supplied Figure 1 and its explanatory caption. Page 2 supplied every Table 1 cell and the simulation discussion; page 3 supplied dataset, labeling, scenario, controller and interface details; page 4 supplied task continuation, sensor limitations, metrics and the unfinished aggregation proposal. Pages 4–5 contained the references. Both final crops were separately viewed; they retain all panels or table cells and omit long captions, whose definitions are explained in the guides. This PDF has no architecture diagram, empirical result table, ablation or appendix. Separate supplements, external references, code and later releases were not inspected. No original-figure arrow/caption conflict was observed. Section 4.1 points to Section 4.2 for metrics, but the actual metric descriptions are in Section 4.3.
PDF pages inspected for this edition: 1, 2, 3, 4, 5. Appendix coverage: not present.
Original figures and tables remain the work of the source’s authors. Extractions preserve their scientific content; any HTML wrapper layout is disclosed with each figure. The surrounding reading notes are our own.
Text reading scope & known omissions
- PDF p. 1: title, authors, version, Abstract and 1. Introduction
- PDF pp. 2–3: 2. Related Work
- PDF p. 3: 3. Dataset
- PDF p. 3: 4. Benchmarks and 4.1. Overview
- PDF pp. 3–4: 4.2. Tasks
- PDF p. 4: 4.3. Metrics and 5. Conclusion
- PDF pp. 4–5: References
Outside the original text pass
- Text extraction does not reconstruct figure images; inspect the retained PDF for figures and equation/table layout.
- Separate supplemental material availability has not been fully verified.
- Version scope: the inspected title page identifies arXiv:2106.11810v4, 4 February 2022. The observed title begins 'nuPlan', whereas the catalog uses 'NuPlan'; the remaining title and all nine authors agree. The final name in the second author row is 'Sammy Omari', with two consecutive m letters, verified on full-page renders at 200 and 400 DPI and consistent with the supplied text. The catalog's 2021 publication year is not the observed revision date. Earlier versions were not supplied for comparison, so substantive revision differences are unverified.
- Text extraction does not reconstruct figure images; this acquisition limitation was addressed by visually inspecting all five supplied PDF pages and both final original crops.
- Separate supplemental material availability has not been fully verified. No separate supplement was supplied, and no appendix appears in this PDF.
- Code, dataset files, external references and later release documentation were not inspected. No experiments were run; this report does not verify release status as of the report date.
The visual audit above records the subsequent illustrated pass.
8.4 Traceable evidence
e-identityPDF p. 1, title/author block (both author rows), arXiv margin stamp and Abstract
The title is nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles. The first author row lists Holger Caesar, Juraj Kabzan, Kok Seang Tan, Whye Kit Fong and Eric Wolff. The second row lists Alex Lang, Luke Fletcher, Oscar Beijbom and Sammy Omari; Sammy is printed with two consecutive m letters. Motional appears beneath the author rows. The stamp reads arXiv:2106.11810v4, 4 Feb 2022; the abstract retains planned NeurIPS 2021 release and early-2022 challenge language.
Go to primary source ↓e-motivationPDF p. 1, Section 1 and Figure 1(a)–(c), with caption
White denotes the observed ego route and red the hypothetical planner route. Panels illustrate missing goals at intersections, multiple valid merge timings penalized by displacement metrics, and overtaking decisions dependent on other agents' subsequent actions.
Go to primary source ↓e-scalePDF p. 2, Table 1, every row and column, with caption
Table entries are Argoverse 320h/2 cities, nuPredict 5h/2, Lyft 1118h/1, Waymo 570h/6, nuPlan 1500h/4. Sensor checkmarks appear for nuPredict and nuPlan. The former four are prediction/OL; nuPlan is planning/OL+CL. The caption identifies nuPredict as the nuScenes prediction challenge.
Go to primary source ↓e-relatedPDF pp. 2–3, Section 2, ML-based planning
The paper reviews planners trained and evaluated in other works, emphasizing incompatible metrics and unpublished datasets. It motivates a common dataset and closed-loop evaluation framework rather than presenting those works as evaluated nuPlan baselines.
Go to primary source ↓e-simulationPDF p. 2, Section 2, Simulation, final paragraph
The authors state that simulations introduce systematic biases and that plausible real-world sensor emulation, such as photorealistic camera images, needs further work.
Go to primary source ↓e-dataPDF p. 3, Section 3, Overview
The proposed 1500 hours span Las Vegas, Boston, Pittsburgh and Singapore, with semantic maps and a query API. Listed data include lidar, camera images, localization and steering inputs. Autolabeled trajectories cover the entire dataset, but only a sensor subset is to be released because the dataset exceeds 200 TB. Geographic driving examples are described, but split sizes, sensor-subset selection and licensing are not specified.
Go to primary source ↓e-labelsPDF p. 3, Section 3, Autolabeling and Scenarios
Offline labeling uses PointPillars with CenterPoint, modified MVF++ and non-causal tracking; near-human performance is asserted without measurements. Scenario intervals are automatically tagged for maneuvers and interactions, but tagging thresholds and the detailed labeling pipeline are not provided.
Go to primary source ↓e-protocolPDF p. 3, Sections 4 and 4.1, Overview
Containerized planner submissions following a template are evaluated on a secret test set. Inputs are autolabeled trajectories or raw sensors for end-to-end open-loop approaches. The planner returns planned ego position and heading; a provided controller and predefined motion model generate the driven trajectory. No planner training recipe, detailed controller specification or test-set counts appear here.
Go to primary source ↓e-tasksPDF pp. 3–4, Section 4.2, Open-loop and Closed-loop
Open-loop plans are scored without vehicle control. Closed-loop plans drive a controller and subsequent planning receives the new vehicle state. Other agents either replay recorded trajectories or use supplied planning models. The text excludes sensor warping and novel-view synthesis and does not specify the reactive model or numerical rollout settings.
Go to primary source ↓e-metricsPDF p. 4, Section 4.3, Common metrics and Scenario-based metrics
Common categories are traffic-rule violations, human-driving similarity, vehicle dynamics and goal achievement. Listed measures include collision/off-road rates, time gaps, time to collision, passing velocity, longitudinal/lateral errors, jerk, acceleration, steering rate, oscillation and L2 distance to a goal waypoint. Scenario metrics address lane-change gaps, pedestrian/cyclist passing and right-of-way agreement; no metric equations are supplied.
Go to primary source ↓e-proposalPDF pp. 3–4, Sections 4–5, especially p. 4 Section 4.3 Community feedback; p. 2 Table 1
The benchmark section specifies tasks and candidate metrics and proceeds directly to the conclusion without nuPlan planner experiments, scores or ablations. Community feedback explicitly calls the metrics an initial non-exhaustive proposal and leaves the main score open among weighted metrics, thresholded violations and a hierarchy. Table 1 is a dataset comparison, not a performance table.
Go to primary source ↓8.5 Primary sources
nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles ↗
PDF · 3,556 extracted words
Source fingerprint
86de4fad72fa27d179f86c43f4bbf3c2922859f0f5ce5aa8d0ffa57e3d755bdf