← Back to Charlottesville Process Guide
This page documents the full workflow for Virginia FOIA — both requesting records as a citizen and responding to requests as city staff. All processes are grounded in the Virginia Freedom of Information Act, §§ 2.2-3700 through 2.2-3715 (Code of Virginia) and Charlottesville's local implementation through the City Attorney's Office.
This page is designed with SpiffWorkflow in mind. Every BPMN diagram on this page maps directly to executable process definitions, with roles, form tasks, and decision gateways that can be wired to SpiffWorkflow service tasks, user task forms, and lane-based role assignments.
Quick Reference
| Item | Detail |
| Governing Law | Virginia FOIA, §§ 2.2-3700 – 2.2-3715 |
| City Contact | City Attorney's Office, 605 E Main St (P.O. Box 911) |
| Phone | 434-970-3131 |
| Fax | 434-970-3890 |
| Online Portal | Submit a FOIA Request (charlottesville.gov) |
| Response Deadline | 5 working days from receipt (§ 2.2-3704.B) |
| Extension | Additional 7 working days if response not possible (§ 2.2-3704.B.4) |
| Cost Threshold | Notify requester if cost likely to exceed $200; deposit may be required (§ 2.2-3704.H) |
| Enforcement | Petition for mandamus / injunction; court hearing within 7 days of filing (§ 2.2-3713.C) |
| Penalty (Willful) | $500–$2,000 per violation; $2,000–$5,000 for repeat (§ 2.2-3714.A) |
I. Legal Foundation
Policy and Scope (§ 2.2-3700)
Virginia FOIA establishes a presumption of openness: all public records and meetings are presumed open unless a specific exemption is properly invoked. The law is to be interpreted liberally in favor of access, with exemptions construed narrowly. Any local ordinance conflicting with FOIA is void.
Who may request: Citizens of the Commonwealth, media representatives (newspapers, magazines, radio, TV).
What is covered: Any “writing or recording” — paper, electronic file, audio/video, any format — prepared or owned by a public body or its officers, employees, or agents in the transaction of public business.
Key principle: A requester need not cite FOIA in their request, need not explain why they want the records, and the agency bears the burden of proving any exemption applies.
FOIA Officer Requirement (§ 2.2-3704.2)
Every local public body must designate a FOIA Officer who:
Serves as the public's point of contact for records requests
Coordinates the body's FOIA compliance
Must complete FOIA training at least once every two calendar years
-
For Charlottesville, the FOIA Officer is housed in the City Attorney's Office. Constitutional officers (Commissioner of Revenue, Treasurer, Commonwealth's Attorney, Sheriff, Clerk of Court) each designate their own FOIA officers.
II. Records Request — Citizen Process
This is the primary process for any citizen, journalist, or organization seeking records from the City of Charlottesville. The process covers all channels of submission, response types, cost handling, and the path to court enforcement.
SpiffWorkflow Notes
This process maps to a multi-lane workflow in SpiffWorkflow:
Lane: Requester — draft, submit, respond to cost estimate, receive records or denial, decide whether to petition
Lane: FOIA Officer — log, clock, route, review, respond
Lane: City Attorney — legal review of exemptions
Service Task: automated clock/deadline enforcement triggering escalation if no response within 5 working days
User Task Forms: foia-request-schema.json captures record description, preferred delivery format, requester contact info
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOnNwaWZmd29ya2Zsb3c9Imh0dHA6Ly9zcGlmZndvcmtmbG93Lm9yZy9icG1uL3NjaGVtYS8xLjAvY29yZSIgaWQ9IkZPSUFfQ29yZSIgdGFyZ2V0TmFtZXNwYWNlPSJodHRwOi8vYnBtbi5pby9zY2hlbWEvYnBtbiIgZXhwb3J0ZXI9IkNhbXVuZGEgTW9kZWxlciIgZXhwb3J0ZXJWZXJzaW9uPSIzLjAuMC1kZXYiPgogIDxicG1uOnByb2Nlc3MgaWQ9ImZvaWFfY29yZV9wcm9jZXNzIiBuYW1lPSJGT0lBIFJlY29yZHMgUmVxdWVzdCDigJQgQ29yZSBGbG93IiBpc0V4ZWN1dGFibGU9InRydWUiPgogICAgPGJwbW46c3RhcnRFdmVudCBpZD0iU0VfZm9pYSIgbmFtZT0iUmVxdWVzdGVyIElkZW50aWZpZXMgTmVlZCBmb3IgUHVibGljIFJlY29yZHMiPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2YxPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnN0YXJ0RXZlbnQ+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjEiIHNvdXJjZVJlZj0iU0VfZm9pYSIgdGFyZ2V0UmVmPSJUYXNrX2ZfZHJhZnQiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfZHJhZnQiIG5hbWU9IkRyYWZ0IEZPSUEgUmVxdWVzdCAoSWRlbnRpZnkgUmVjb3JkcyB3aXRoIFJlYXNvbmFibGUgU3BlY2lmaWNpdHkpIj4KICAgICAgPGJwbW46ZXh0ZW5zaW9uRWxlbWVudHM+CiAgICAgICAgPHNwaWZmd29ya2Zsb3c6cHJvcGVydGllcz4KICAgICAgICAgIDxzcGlmZndvcmtmbG93OnByb3BlcnR5IG5hbWU9ImZvcm1Kc29uU2NoZW1hRmlsZW5hbWUiIHZhbHVlPSJmb2lhLXJlcXVlc3Qtc2NoZW1hLmpzb24iLz4KICAgICAgICAgIDxzcGlmZndvcmtmbG93OnByb3BlcnR5IG5hbWU9ImZvcm1VaVNjaGVtYUZpbGVuYW1lIiB2YWx1ZT0iZm9pYS1yZXF1ZXN0LXVpc2NoZW1hLmpzb24iLz4KICAgICAgICA8L3NwaWZmd29ya2Zsb3c6cHJvcGVydGllcz4KICAgICAgPC9icG1uOmV4dGVuc2lvbkVsZW1lbnRzPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2YxPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2YyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2YyIiBzb3VyY2VSZWY9IlRhc2tfZl9kcmFmdCIgdGFyZ2V0UmVmPSJHV19mX2NoYW5uZWwiLz4KICAgIDxicG1uOmV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdXX2ZfY2hhbm5lbCIgbmFtZT0iU3VibWlzc2lvbiBDaGFubmVsPyIgZGVmYXVsdD0iRmxvd19mX29ubGluZSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZjI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9vbmxpbmU8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9tYWlsPC9icG1uOm91dGdvaW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfaW5wZXJzb248L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46ZXhjbHVzaXZlR2F0ZXdheT4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX29ubGluZSIgbmFtZT0iT25saW5lIFBvcnRhbCIgc291cmNlUmVmPSJHV19mX2NoYW5uZWwiIHRhcmdldFJlZj0iVGFza19mX3N1Ym1pdF9vbmxpbmUiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX21haWwiIG5hbWU9Ik1haWwgLyBGYXgiIHNvdXJjZVJlZj0iR1dfZl9jaGFubmVsIiB0YXJnZXRSZWY9IlRhc2tfZl9zdWJtaXRfbWFpbCI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNNYWlsPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2ZfaW5wZXJzb24iIG5hbWU9IkluIFBlcnNvbiIgc291cmNlUmVmPSJHV19mX2NoYW5uZWwiIHRhcmdldFJlZj0iVGFza19mX3N1Ym1pdF9pbnBlcnNvbiI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNJblBlcnNvbjwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2Zfc3VibWl0X29ubGluZSIgbmFtZT0iU3VibWl0IHZpYSBDaXR5IE9ubGluZSBSZWNvcmRzIFBvcnRhbCI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9vbmxpbmU8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZm8xPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46bWFudWFsVGFzayBpZD0iVGFza19mX3N1Ym1pdF9tYWlsIiBuYW1lPSJNYWlsIC8gRmF4IHRvIENpdHkgQXR0b3JuZXkgKFAuTy4gQm94IDkxMSwgRmF4IDQzNC05NzAtMzg5MCkiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfbWFpbDwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mbzI8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46bWFudWFsVGFzaz4KICAgIDxicG1uOm1hbnVhbFRhc2sgaWQ9IlRhc2tfZl9zdWJtaXRfaW5wZXJzb24iIG5hbWU9IlZpc2l0IENpdHkgQXR0b3JuZXkncyBPZmZpY2UgKDYwNSBFIE1haW4gU3QpIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2lucGVyc29uPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZvMzwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjptYW51YWxUYXNrPgogICAgPGJwbW46ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR1dfZl9yZWNlaXZlZCIgbmFtZT0iUmVxdWVzdCBSZWNlaXZlZCBieSBGT0lBIE9mZmljZXIiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZvMTwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mbzI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZm8zPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2YzPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZm8xIiBzb3VyY2VSZWY9IlRhc2tfZl9zdWJtaXRfb25saW5lIiB0YXJnZXRSZWY9IkdXX2ZfcmVjZWl2ZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mbzIiIHNvdXJjZVJlZj0iVGFza19mX3N1Ym1pdF9tYWlsIiB0YXJnZXRSZWY9IkdXX2ZfcmVjZWl2ZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mbzMiIHNvdXJjZVJlZj0iVGFza19mX3N1Ym1pdF9pbnBlcnNvbiIgdGFyZ2V0UmVmPSJHV19mX3JlY2VpdmVkIi8+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjMiIHNvdXJjZVJlZj0iR1dfZl9yZWNlaXZlZCIgdGFyZ2V0UmVmPSJUYXNrX2ZfY2xvY2siLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfY2xvY2siIG5hbWU9IjUtV29ya2luZy1EYXkgQ2xvY2sgU3RhcnRzICjCpyAyLjItMzcwNC5CKSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZjM8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZjQ8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjQiIHNvdXJjZVJlZj0iVGFza19mX2Nsb2NrIiB0YXJnZXRSZWY9IlRhc2tfZl9yZXZpZXciLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfcmV2aWV3IiBuYW1lPSJGT0lBIE9mZmljZXIgUmV2aWV3cyBSZXF1ZXN0ICZhbXA7IFNlYXJjaGVzIFJlY29yZHMiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2Y0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2Y1PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2Y1IiBzb3VyY2VSZWY9IlRhc2tfZl9yZXZpZXciIHRhcmdldFJlZj0iR1dfZl9jb3N0Ii8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19mX2Nvc3QiIG5hbWU9IkVzdGltYXRlZCBDb3N0ICZndDsgJDIwMD8iIGRlZmF1bHQ9IkZsb3dfZl9ub19kZXBvc2l0Ij4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mNTwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX2RlcG9zaXQ8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9ub19kZXBvc2l0PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9kZXBvc2l0IiBuYW1lPSJZZXMg4oCUIE5vdGlmeSBSZXF1ZXN0ZXIiIHNvdXJjZVJlZj0iR1dfZl9jb3N0IiB0YXJnZXRSZWY9IlRhc2tfZl9jb3N0X25vdGlmeSI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+Y29zdEV4Y2VlZHMyMDA8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj4KICAgIDwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9ub19kZXBvc2l0IiBuYW1lPSJObyIgc291cmNlUmVmPSJHV19mX2Nvc3QiIHRhcmdldFJlZj0iVGFza19mX2RldGVybWluZSIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9jb3N0X25vdGlmeSIgbmFtZT0iTm90aWZ5IFJlcXVlc3RlciBvZiBFc3RpbWF0ZWQgQ29zdDsgUmVxdWVzdCBEZXBvc2l0ICjCpyAyLjItMzcwNC5IKSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9kZXBvc2l0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZGVwb3NpdDI8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9kZXBvc2l0MiIgc291cmNlUmVmPSJUYXNrX2ZfY29zdF9ub3RpZnkiIHRhcmdldFJlZj0iVGFza19mX2RldGVybWluZSIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9kZXRlcm1pbmUiIG5hbWU9IkRldGVybWluZSBBcHBsaWNhYmlsaXR5IG9mIEV4ZW1wdGlvbnMgKMKnwqcgMi4yLTM3MDUuMSDigJMgMzcwNS44KSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9ub19kZXBvc2l0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfZGVwb3NpdDI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZjY8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZjYiIHNvdXJjZVJlZj0iVGFza19mX2RldGVybWluZSIgdGFyZ2V0UmVmPSJHV19mX3Jlc3BvbnNlIi8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19mX3Jlc3BvbnNlIiBuYW1lPSJSZXNwb25zZSBUeXBlPyIgZGVmYXVsdD0iRmxvd19mX2Z1bGwiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2Y2PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZnVsbDwvYnBtbjpvdXRnb2luZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX3BhcnRpYWw8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl93aXRoaGVsZDwvYnBtbjpvdXRnb2luZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX25vdGZvdW5kPC9icG1uOm91dGdvaW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZXh0ZW5zaW9uPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9mdWxsIiBuYW1lPSJGdWxsIERpc2Nsb3N1cmUiIHNvdXJjZVJlZj0iR1dfZl9yZXNwb25zZSIgdGFyZ2V0UmVmPSJUYXNrX2ZfcHJvZHVjZSIvPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2ZfcGFydGlhbCIgbmFtZT0iUGFydGlhbCDigJQgUmVkYWN0IEV4ZW1wdCBQb3J0aW9ucyIgc291cmNlUmVmPSJHV19mX3Jlc3BvbnNlIiB0YXJnZXRSZWY9IlRhc2tfZl9yZWRhY3QiPgogICAgICA8YnBtbjpjb25kaXRpb25FeHByZXNzaW9uPmlzUGFydGlhbDwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX3dpdGhoZWxkIiBuYW1lPSJGdWxseSBXaXRoaGVsZCIgc291cmNlUmVmPSJHV19mX3Jlc3BvbnNlIiB0YXJnZXRSZWY9IlRhc2tfZl9kZW55Ij4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5pc1dpdGhoZWxkPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2Zfbm90Zm91bmQiIG5hbWU9IlJlY29yZHMgTm90IEZvdW5kIiBzb3VyY2VSZWY9IkdXX2ZfcmVzcG9uc2UiIHRhcmdldFJlZj0iVGFza19mX25vdGZvdW5kIj4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5pc05vdEZvdW5kPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2ZfZXh0ZW5zaW9uIiBuYW1lPSJFeHRlbnNpb24gTmVlZGVkICg3IGFkZC4gZGF5cykiIHNvdXJjZVJlZj0iR1dfZl9yZXNwb25zZSIgdGFyZ2V0UmVmPSJUYXNrX2ZfZXh0ZW5kIj4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5uZWVkc0V4dGVuc2lvbjwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2ZfcHJvZHVjZSIgbmFtZT0iUHJvZHVjZSBSZWNvcmRzIOKAlCBQcm92aWRlIENvcGllcyBvciBJbnNwZWN0aW9uIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2Z1bGw8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9kb25lPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9yZWRhY3QiIG5hbWU9IlJlZGFjdCBFeGVtcHQgUG9ydGlvbnMgKMKnIDIuMi0zNzA0LjAxKTsgQ2l0ZSBDb2RlIFNlY3Rpb24gZm9yIEVhY2ggV2l0aGhvbGRpbmciPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfcGFydGlhbDwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX2RvbmUyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9kZW55IiBuYW1lPSJJc3N1ZSBXcml0dGVuIERlbmlhbCDigJQgQ2l0ZSBTcGVjaWZpYyBFeGVtcHRpb24gQ29kZSBTZWN0aW9uIGZvciBFYWNoIFdpdGhoZWxkIENhdGVnb3J5Ij4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX3dpdGhoZWxkPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfZG9uZTM8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjptYW51YWxUYXNrIGlkPSJUYXNrX2Zfbm90Zm91bmQiIG5hbWU9IlJlc3BvbmQ6IFJlY29yZHMgTm90IEZvdW5kIG9yIERvbid0IEV4aXN0OyBSZWZlciB0byBPdGhlciBDdXN0b2RpYW4gaWYgS25vd24iPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2Zfbm90Zm91bmQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9kb25lNDwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjptYW51YWxUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfZl9leHRlbmQiIG5hbWU9Ik5vdGlmeSBSZXF1ZXN0ZXI6IEV4dGVuc2lvbiDigJQgU3BlY2lmeSBDb25kaXRpb25zIE1ha2luZyBSZXNwb25zZSBJbXBvc3NpYmxlICjCpyAyLjItMzcwNC5CLjQpIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2V4dGVuc2lvbjwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19mX2V4dDI8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9leHQyIiBzb3VyY2VSZWY9IlRhc2tfZl9leHRlbmQiIHRhcmdldFJlZj0iVGFza19mX2RldGVybWluZSIvPgogICAgPGJwbW46ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR1dfZl9zYXRpc2ZpZWQiIG5hbWU9IlJlcXVlc3RlciBTYXRpc2ZpZWQ/Ij4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2RvbmU8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9kb25lMjwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX2RvbmUzPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfZG9uZTQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl95ZXM8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfZl9hcHBlYWw8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46ZXhjbHVzaXZlR2F0ZXdheT4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2RvbmUiIHNvdXJjZVJlZj0iVGFza19mX3Byb2R1Y2UiIHRhcmdldFJlZj0iR1dfZl9zYXRpc2ZpZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2RvbmUyIiBzb3VyY2VSZWY9IlRhc2tfZl9yZWRhY3QiIHRhcmdldFJlZj0iR1dfZl9zYXRpc2ZpZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2RvbmUzIiBzb3VyY2VSZWY9IlRhc2tfZl9kZW55IiB0YXJnZXRSZWY9IkdXX2Zfc2F0aXNmaWVkIi8+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9kb25lNCIgc291cmNlUmVmPSJUYXNrX2Zfbm90Zm91bmQiIHRhcmdldFJlZj0iR1dfZl9zYXRpc2ZpZWQiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX3llcyIgbmFtZT0iWWVzIiBzb3VyY2VSZWY9IkdXX2Zfc2F0aXNmaWVkIiB0YXJnZXRSZWY9IkVFX2ZvaWFfZG9uZSI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNTYXRpc2ZpZWQ8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj4KICAgIDwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfZl9hcHBlYWwiIG5hbWU9Ik5vIOKAlCBEaXNwdXRlIiBzb3VyY2VSZWY9IkdXX2Zfc2F0aXNmaWVkIiB0YXJnZXRSZWY9IlRhc2tfZl9wZXRpdGlvbiIvPgogICAgPGJwbW46bWFudWFsVGFzayBpZD0iVGFza19mX3BldGl0aW9uIiBuYW1lPSJGaWxlIFBldGl0aW9uIGZvciBNYW5kYW11cyAvIEluanVuY3Rpb24gaW4gR2VuZXJhbCBEaXN0cmljdCBvciBDaXJjdWl0IENvdXJ0ICjCpyAyLjItMzcxMykiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2ZfYXBwZWFsPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2ZfY291cnQ8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46bWFudWFsVGFzaz4KICAgIDxicG1uOmVuZEV2ZW50IGlkPSJFRV9mb2lhX2RvbmUiIG5hbWU9IlJlcXVlc3QgRnVsZmlsbGVkIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19mX3llczwvYnBtbjppbmNvbWluZz4KICAgIDwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOmVuZEV2ZW50IGlkPSJFRV9mb2lhX2NvdXJ0IiBuYW1lPSJDb3VydCBQcm9jZWVkaW5nIEluaXRpYXRlZCI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfZl9jb3VydDwvYnBtbjppbmNvbWluZz4KICAgIDwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19mX2NvdXJ0IiBzb3VyY2VSZWY9IlRhc2tfZl9wZXRpdGlvbiIgdGFyZ2V0UmVmPSJFRV9mb2lhX2NvdXJ0Ii8+CiAgPC9icG1uOnByb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQlBNTkRpYWdyYW1fZm9pYV9jb3JlIj4KICAgIDxicG1uZGk6QlBNTlBsYW5lIGlkPSJCUE1OUGxhbmVfZm9pYV9jb3JlIiBicG1uRWxlbWVudD0iZm9pYV9jb3JlX3Byb2Nlc3MiPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iU0VfZm9pYV9kaSIgYnBtbkVsZW1lbnQ9IlNFX2ZvaWEiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyOTIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9kcmFmdF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9kcmFmdCI+PGRjOkJvdW5kcyB4PSIyNDAiIHk9IjI3MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdXX2ZfY2hhbm5lbF9kaSIgYnBtbkVsZW1lbnQ9IkdXX2ZfY2hhbm5lbCIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjQ2MCIgeT0iMjg1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjQzOCIgeT0iMzQyIiB3aWR0aD0iOTUiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX3N1Ym1pdF9vbmxpbmVfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2Zfc3VibWl0X29ubGluZSI+PGRjOkJvdW5kcyB4PSI1ODAiIHk9IjE2MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9zdWJtaXRfbWFpbF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9zdWJtaXRfbWFpbCI+PGRjOkJvdW5kcyB4PSI1ODAiIHk9IjI3MCIgd2lkdGg9IjE1MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9zdWJtaXRfaW5wZXJzb25fZGkiIGJwbW5FbGVtZW50PSJUYXNrX2Zfc3VibWl0X2lucGVyc29uIj48ZGM6Qm91bmRzIHg9IjU4MCIgeT0iMzkwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfZl9yZWNlaXZlZF9kaSIgYnBtbkVsZW1lbnQ9IkdXX2ZfcmVjZWl2ZWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSI4MTAiIHk9IjI4NSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX2Nsb2NrX2RpIiBicG1uRWxlbWVudD0iVGFza19mX2Nsb2NrIj48ZGM6Qm91bmRzIHg9IjkyMCIgeT0iMjcwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX3Jldmlld19kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9yZXZpZXciPjxkYzpCb3VuZHMgeD0iMTE1MCIgeT0iMjcwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfZl9jb3N0X2RpIiBicG1uRWxlbWVudD0iR1dfZl9jb3N0IiBpc01hcmtlclZpc2libGU9InRydWUiPjxkYzpCb3VuZHMgeD0iMTM4MCIgeT0iMjg1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEzNTUiIHk9IjM0MiIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2ZfY29zdF9ub3RpZnlfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfY29zdF9ub3RpZnkiPjxkYzpCb3VuZHMgeD0iMTUwMCIgeT0iMTYwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX2RldGVybWluZV9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9kZXRlcm1pbmUiPjxkYzpCb3VuZHMgeD0iMTUwMCIgeT0iMjcwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfZl9yZXNwb25zZV9kaSIgYnBtbkVsZW1lbnQ9IkdXX2ZfcmVzcG9uc2UiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSIxNzMwIiB5PSIyODUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTcxMyIgeT0iMzQyIiB3aWR0aD0iODQiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX3Byb2R1Y2VfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfcHJvZHVjZSI+PGRjOkJvdW5kcyB4PSIxODUwIiB5PSI5MCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9yZWRhY3RfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfcmVkYWN0Ij48ZGM6Qm91bmRzIHg9IjE4NTAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9kZW55X2RpIiBicG1uRWxlbWVudD0iVGFza19mX2RlbnkiPjxkYzpCb3VuZHMgeD0iMTg1MCIgeT0iMzEwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19mX25vdGZvdW5kX2RpIiBicG1uRWxlbWVudD0iVGFza19mX25vdGZvdW5kIj48ZGM6Qm91bmRzIHg9IjE4NTAiIHk9IjQyMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9leHRlbmRfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2ZfZXh0ZW5kIj48ZGM6Qm91bmRzIHg9IjE4NTAiIHk9IjUzMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdXX2Zfc2F0aXNmaWVkX2RpIiBicG1uRWxlbWVudD0iR1dfZl9zYXRpc2ZpZWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSIyMDkwIiB5PSIyODUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMjA2NSIgeT0iMzQyIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfZl9wZXRpdGlvbl9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfZl9wZXRpdGlvbiI+PGRjOkJvdW5kcyB4PSIyMjEwIiB5PSIzODAiIHdpZHRoPSIxNjAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFRV9mb2lhX2RvbmVfZGkiIGJwbW5FbGVtZW50PSJFRV9mb2lhX2RvbmUiPjxkYzpCb3VuZHMgeD0iMjI0MiIgeT0iMTkyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFRV9mb2lhX2NvdXJ0X2RpIiBicG1uRWxlbWVudD0iRUVfZm9pYV9jb3VydCI+PGRjOkJvdW5kcyB4PSIyNDQwIiB5PSI0MDIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mMV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZjEiPjxkaTp3YXlwb2ludCB4PSIxODgiIHk9IjMxMCIvPjxkaTp3YXlwb2ludCB4PSIyNDAiIHk9IjMxMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2YyX2RpIiBicG1uRWxlbWVudD0iRmxvd19mMiI+PGRpOndheXBvaW50IHg9IjM5MCIgeT0iMzEwIi8+PGRpOndheXBvaW50IHg9IjQ2MCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9vbmxpbmVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Zfb25saW5lIj48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSIyODUiLz48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSIyMDAiLz48ZGk6d2F5cG9pbnQgeD0iNTgwIiB5PSIyMDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjQ5MCIgeT0iMjM4IiB3aWR0aD0iNjgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9tYWlsX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX21haWwiPjxkaTp3YXlwb2ludCB4PSI1MTAiIHk9IjMxMCIvPjxkaTp3YXlwb2ludCB4PSI1ODAiIHk9IjMxMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iNTI1IiB5PSIyOTIiIHdpZHRoPSI0NSIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mX2lucGVyc29uX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX2lucGVyc29uIj48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSIzMzUiLz48ZGk6d2F5cG9pbnQgeD0iNDg1IiB5PSI0MzAiLz48ZGk6d2F5cG9pbnQgeD0iNTgwIiB5PSI0MzAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjQ5MCIgeT0iMzc4IiB3aWR0aD0iNDgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZm8xX2RpIiBicG1uRWxlbWVudD0iRmxvd19mbzEiPjxkaTp3YXlwb2ludCB4PSI3MzAiIHk9IjIwMCIvPjxkaTp3YXlwb2ludCB4PSI4MzUiIHk9IjIwMCIvPjxkaTp3YXlwb2ludCB4PSI4MzUiIHk9IjI4NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZvMl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZm8yIj48ZGk6d2F5cG9pbnQgeD0iNzMwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iODEwIiB5PSIzMTAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mbzNfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZvMyI+PGRpOndheXBvaW50IHg9IjczMCIgeT0iNDMwIi8+PGRpOndheXBvaW50IHg9IjgzNSIgeT0iNDMwIi8+PGRpOndheXBvaW50IHg9IjgzNSIgeT0iMzM1Ii8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZjNfZGkiIGJwbW5FbGVtZW50PSJGbG93X2YzIj48ZGk6d2F5cG9pbnQgeD0iODYwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iOTIwIiB5PSIzMTAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZjQiPjxkaTp3YXlwb2ludCB4PSIxMDgwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iMTE1MCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZjVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Y1Ij48ZGk6d2F5cG9pbnQgeD0iMTMxMCIgeT0iMzEwIi8+PGRpOndheXBvaW50IHg9IjEzODAiIHk9IjMxMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZGVwb3NpdF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9kZXBvc2l0Ij48ZGk6d2F5cG9pbnQgeD0iMTQwNSIgeT0iMjg1Ii8+PGRpOndheXBvaW50IHg9IjE0MDUiIHk9IjIwMCIvPjxkaTp3YXlwb2ludCB4PSIxNTAwIiB5PSIyMDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE0MTAiIHk9IjIzOCIgd2lkdGg9Ijg0IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2Zfbm9fZGVwb3NpdF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9ub19kZXBvc2l0Ij48ZGk6d2F5cG9pbnQgeD0iMTQzMCIgeT0iMzEwIi8+PGRpOndheXBvaW50IHg9IjE1MDAiIHk9IjMxMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTQ1MyIgeT0iMjkyIiB3aWR0aD0iMTUiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9kZXBvc2l0Ml9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9kZXBvc2l0MiI+PGRpOndheXBvaW50IHg9IjE1ODAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxNTgwIiB5PSIyNzAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mNl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZjYiPjxkaTp3YXlwb2ludCB4PSIxNjYwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iMTczMCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9mdWxsX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX2Z1bGwiPjxkaTp3YXlwb2ludCB4PSIxNzU1IiB5PSIyODUiLz48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iMTMwIi8+PGRpOndheXBvaW50IHg9IjE4NTAiIHk9IjEzMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTc2MiIgeT0iMjAyIiB3aWR0aD0iNzQiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9wYXJ0aWFsX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX3BhcnRpYWwiPjxkaTp3YXlwb2ludCB4PSIxNzU1IiB5PSIyODUiLz48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjE4NTAiIHk9IjI0MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTc2MCIgeT0iMjU3IiB3aWR0aD0iNjgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl93aXRoaGVsZF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl93aXRoaGVsZCI+PGRpOndheXBvaW50IHg9IjE3ODAiIHk9IjMxMCIvPjxkaTp3YXlwb2ludCB4PSIxODUwIiB5PSIzNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE3OTUiIHk9IjMyMyIgd2lkdGg9IjQ2IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2Zfbm90Zm91bmRfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Zfbm90Zm91bmQiPjxkaTp3YXlwb2ludCB4PSIxNzU1IiB5PSIzMzUiLz48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iNDYwIi8+PGRpOndheXBvaW50IHg9IjE4NTAiIHk9IjQ2MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTc2MCIgeT0iMzkzIiB3aWR0aD0iNjgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9leHRlbnNpb25fZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZXh0ZW5zaW9uIj48ZGk6d2F5cG9pbnQgeD0iMTc1NSIgeT0iMzM1Ii8+PGRpOndheXBvaW50IHg9IjE3NTUiIHk9IjU3MCIvPjxkaTp3YXlwb2ludCB4PSIxODUwIiB5PSI1NzAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE3NjAiIHk9IjQ5MCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZXh0Ml9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9leHQyIj48ZGk6d2F5cG9pbnQgeD0iMjAxMCIgeT0iNTcwIi8+PGRpOndheXBvaW50IHg9IjIwNTAiIHk9IjU3MCIvPjxkaTp3YXlwb2ludCB4PSIyMDUwIiB5PSIzMTAiLz48ZGk6d2F5cG9pbnQgeD0iMTY2MCIgeT0iMzEwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9kb25lX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX2RvbmUiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSIxMzAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iMTMwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjI4NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZG9uZTJfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZG9uZTIiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjI4NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZG9uZTNfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZG9uZTMiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSIzNTAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iMzUwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjMzNSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfZG9uZTRfZGkiIGJwbW5FbGVtZW50PSJGbG93X2ZfZG9uZTQiPjxkaTp3YXlwb2ludCB4PSIyMDEwIiB5PSI0NjAiLz48ZGk6d2F5cG9pbnQgeD0iMjExNSIgeT0iNDYwIi8+PGRpOndheXBvaW50IHg9IjIxMTUiIHk9IjMzNSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2ZfeWVzX2RpIiBicG1uRWxlbWVudD0iRmxvd19mX3llcyI+PGRpOndheXBvaW50IHg9IjIxNDAiIHk9IjI4NSIvPjxkaTp3YXlwb2ludCB4PSIyMTQwIiB5PSIyMTAiLz48ZGk6d2F5cG9pbnQgeD0iMjI0MiIgeT0iMjEwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIyMTgwIiB5PSIyNDIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19mX2FwcGVhbF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9hcHBlYWwiPjxkaTp3YXlwb2ludCB4PSIyMTQwIiB5PSIzMzUiLz48ZGk6d2F5cG9pbnQgeD0iMjE0MCIgeT0iNDIwIi8+PGRpOndheXBvaW50IHg9IjIyMTAiIHk9IjQyMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMjE0NiIgeT0iMzcyIiB3aWR0aD0iNTYiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfZl9jb3VydF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfZl9jb3VydCI+PGRpOndheXBvaW50IHg9IjIzNzAiIHk9IjQyMCIvPjxkaTp3YXlwb2ludCB4PSIyNDQwIiB5PSI0MjAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgIDwvYnBtbmRpOkJQTU5QbGFuZT4KICA8L2JwbW5kaTpCUE1ORGlhZ3JhbT4KPC9icG1uOmRlZmluaXRpb25zPgo=
Key decision points:
Submission channel — Online portal preferred; mail/fax to City Attorney; in-person at 605 E Main St
5-day clock — Starts on the day of receipt; weekends and holidays do not count
Cost > $200 — Agency must notify requester; can require deposit before proceeding; clock tolls while awaiting requester response
Response types — Full production, partial with redactions (citing specific code section per category), full denial (citing specific code section per category), records not found, or extension notice
Extension — Must be issued within the 5-day window; grants 7 additional days; must specify the specific conditions making timely response impossible
III. Internal City Staff Processing
This diagram represents the FOIA Officer and city staff workflow for handling an incoming records request. It is designed to run as a parallel or sub-process triggered when the Requester lane submits a request in the core process above.
SpiffWorkflow Notes
Process ID: foiainternalprocess — can be called as a Call Activity from foiacoreprocess
Lane: FOIA Officer (City Attorney's Office) — intake, logging, routing, delivery, closure
Lane: Department Custodian — search, gather, stage records for review
Lane: City Attorney — legal review for exemptions; redaction decisions
Tracking fields (form schema): request number, receipt date, department(s) routed to, response type, response date, fees collected, disposition
Timer Boundary Events: Day 3 alert (review progress); Day 5 hard deadline; Day 12 extended deadline
Service Tasks: generate request ID, send automated acknowledgement email, push to records management system
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOnNwaWZmd29ya2Zsb3c9Imh0dHA6Ly9zcGlmZndvcmtmbG93Lm9yZy9icG1uL3NjaGVtYS8xLjAvY29yZSIgaWQ9IkZPSUFfSW50ZXJuYWwiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vc2NoZW1hL2JwbW4iIGV4cG9ydGVyPSJDYW11bmRhIE1vZGVsZXIiIGV4cG9ydGVyVmVyc2lvbj0iMy4wLjAtZGV2Ij4KICA8YnBtbjpwcm9jZXNzIGlkPSJmb2lhX2ludGVybmFsX3Byb2Nlc3MiIG5hbWU9IkZPSUEgSW50ZXJuYWwgU3RhZmYgUHJvY2Vzc2luZyIgaXNFeGVjdXRhYmxlPSJ0cnVlIj4KICAgIDxicG1uOnN0YXJ0RXZlbnQgaWQ9IlNFX2ludCIgbmFtZT0iUmVxdWVzdCBSZWNlaXZlZCBieSBGT0lBIE9mZmljZXIiPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2kxPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnN0YXJ0RXZlbnQ+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaTEiIHNvdXJjZVJlZj0iU0VfaW50IiB0YXJnZXRSZWY9IlRhc2tfaV9sb2ciLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfbG9nIiBuYW1lPSJMb2cgUmVxdWVzdCBpbiBUcmFja2luZyBTeXN0ZW07IEFzc2lnbiBSZXF1ZXN0IE51bWJlcjsgUmVjb3JkIFJlY2VpcHQgRGF0ZSI+CiAgICAgIDxicG1uOmV4dGVuc2lvbkVsZW1lbnRzPgogICAgICAgIDxzcGlmZndvcmtmbG93OnByb3BlcnRpZXM+CiAgICAgICAgICA8c3BpZmZ3b3JrZmxvdzpwcm9wZXJ0eSBuYW1lPSJmb3JtSnNvblNjaGVtYUZpbGVuYW1lIiB2YWx1ZT0iZm9pYS1pbnRha2Utc2NoZW1hLmpzb24iLz4KICAgICAgICA8L3NwaWZmd29ya2Zsb3c6cHJvcGVydGllcz4KICAgICAgPC9icG1uOmV4dGVuc2lvbkVsZW1lbnRzPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2kxPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2kyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2kyIiBzb3VyY2VSZWY9IlRhc2tfaV9sb2ciIHRhcmdldFJlZj0iVGFza19pX3JvdXRlIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19pX3JvdXRlIiBuYW1lPSJSb3V0ZSBSZXF1ZXN0IHRvIFJlc3BvbnNpYmxlIERlcGFydG1lbnQocykgYW5kIEN1c3RvZGlhbihzKSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaTI8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaTM8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaTMiIHNvdXJjZVJlZj0iVGFza19pX3JvdXRlIiB0YXJnZXRSZWY9IlRhc2tfaV9zZWFyY2giLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfc2VhcmNoIiBuYW1lPSJEZXBhcnRtZW50IEN1c3RvZGlhbiBTZWFyY2hlcyBSZWNvcmRzIChQaHlzaWNhbCBhbmQgRWxlY3Ryb25pYykiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2kzPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2k0PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2k0IiBzb3VyY2VSZWY9IlRhc2tfaV9zZWFyY2giIHRhcmdldFJlZj0iVGFza19pX2xlZ2FsIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19pX2xlZ2FsIiBuYW1lPSJDaXR5IEF0dG9ybmV5IFJldmlld3MgZm9yIEFwcGxpY2FibGUgRXhlbXB0aW9ucyAowqfCpyAyLjItMzcwNS4x4oCTMzcwNS44KSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaTQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaTU8L2JwbW46b3V0Z29pbmc+CiAgICA8L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaTUiIHNvdXJjZVJlZj0iVGFza19pX2xlZ2FsIiB0YXJnZXRSZWY9IkdXX2lfZXhlbXB0Ii8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19pX2V4ZW1wdCIgbmFtZT0iRXhlbXB0aW9ucyBBcHBseT8iIGRlZmF1bHQ9IkZsb3dfaV9ub19leGVtcHQiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2k1PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2lfZnVsbF9leGVtcHQ8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaV9wYXJ0aWFsX2V4ZW1wdDwvYnBtbjpvdXRnb2luZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pX25vX2V4ZW1wdDwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjpleGNsdXNpdmVHYXRld2F5PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lfZnVsbF9leGVtcHQiIG5hbWU9IkZ1bGx5IEV4ZW1wdCIgc291cmNlUmVmPSJHV19pX2V4ZW1wdCIgdGFyZ2V0UmVmPSJUYXNrX2lfZGVuaWFsIj4KICAgICAgPGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj5pc0Z1bGx5RXhlbXB0PC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+CiAgICA8L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lfcGFydGlhbF9leGVtcHQiIG5hbWU9IlBhcnRpYWxseSBFeGVtcHQiIHNvdXJjZVJlZj0iR1dfaV9leGVtcHQiIHRhcmdldFJlZj0iVGFza19pX3JlZGFjdCI+CiAgICAgIDxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNQYXJ0aWFsbHlFeGVtcHQ8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj4KICAgIDwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaV9ub19leGVtcHQiIG5hbWU9Ik5vIEV4ZW1wdGlvbnMiIHNvdXJjZVJlZj0iR1dfaV9leGVtcHQiIHRhcmdldFJlZj0iVGFza19pX3ByZXBhcmUiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfZGVuaWFsIiBuYW1lPSJQcmVwYXJlIFdyaXR0ZW4gRGVuaWFsIExldHRlciDigJQgQ2l0ZSBTcGVjaWZpYyBFeGVtcHRpb24gcGVyIENhdGVnb3J5ICjCpyAyLjItMzcwNC5CLjEpOyBEb2N1bWVudCBpbiBGaWxlIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pX2Z1bGxfZXhlbXB0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2lkMTwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjp1c2VyVGFzaz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfcmVkYWN0IiBuYW1lPSJSZWRhY3QgRXhlbXB0IFBvcnRpb25zICjCpyAyLjItMzcwNC4wMSk7IENpdGUgQ29kZSBTZWN0aW9uIGZvciBFYWNoIFJlZGFjdGVkIENhdGVnb3J5OyBEb2N1bWVudCBEZWNpc2lvbnMiPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2lfcGFydGlhbF9leGVtcHQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaWQyPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfaV9wcmVwYXJlIiBuYW1lPSJQcmVwYXJlIEZ1bGwgUmVjb3JkIFNldCBmb3IgUHJvZHVjdGlvbiI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaV9ub19leGVtcHQ8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaWQzPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR1dfaV9tZXJnZSIgbmFtZT0iIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pZDE8L2JwbW46aW5jb21pbmc+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaWQyPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2lkMzwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pNjwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjpleGNsdXNpdmVHYXRld2F5PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lkMSIgc291cmNlUmVmPSJUYXNrX2lfZGVuaWFsIiB0YXJnZXRSZWY9IkdXX2lfbWVyZ2UiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pZDIiIHNvdXJjZVJlZj0iVGFza19pX3JlZGFjdCIgdGFyZ2V0UmVmPSJHV19pX21lcmdlIi8+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaWQzIiBzb3VyY2VSZWY9IlRhc2tfaV9wcmVwYXJlIiB0YXJnZXRSZWY9IkdXX2lfbWVyZ2UiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pNiIgc291cmNlUmVmPSJHV19pX21lcmdlIiB0YXJnZXRSZWY9IkdXX2lfdGltaW5nIi8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19pX3RpbWluZyIgbmFtZT0iV2l0aGluIDUtRGF5IFdpbmRvdz8iIGRlZmF1bHQ9IkZsb3dfaV9vbl90aW1lIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pNjwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pX29uX3RpbWU8L2JwbW46b3V0Z29pbmc+CiAgICAgIDxicG1uOm91dGdvaW5nPkZsb3dfaV9sYXRlPC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfaV9vbl90aW1lIiBuYW1lPSJZZXMiIHNvdXJjZVJlZj0iR1dfaV90aW1pbmciIHRhcmdldFJlZj0iVGFza19pX2RlbGl2ZXIiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pX2xhdGUiIG5hbWU9Ik5vIOKAlCBFeHRlbnNpb24gTm90aWNlIFJlcXVpcmVkIiBzb3VyY2VSZWY9IkdXX2lfdGltaW5nIiB0YXJnZXRSZWY9IlRhc2tfaV9leHRlbmQiPgogICAgICA8YnBtbjpjb25kaXRpb25FeHByZXNzaW9uPmlzTGF0ZTwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPgogICAgPC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfZXh0ZW5kIiBuYW1lPSJJc3N1ZSBFeHRlbnNpb24gTm90aWNlIFdpdGhpbiA1IERheXMg4oCUIFNwZWNpZnkgQ29uZGl0aW9uczsgNyBBZGQuIERheXMgR3JhbnRlZCAowqcgMi4yLTM3MDQuQi40KSI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaV9sYXRlPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2lfZXh0PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2lfZXh0IiBzb3VyY2VSZWY9IlRhc2tfaV9leHRlbmQiIHRhcmdldFJlZj0iVGFza19pX2RlbGl2ZXIiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2lfZGVsaXZlciIgbmFtZT0iRGVsaXZlciBSZWNvcmRzIC8gV3JpdHRlbiBSZXNwb25zZSB0byBSZXF1ZXN0ZXI7IENvbGxlY3QgQW55IEFwcGxpY2FibGUgRmVlcyI+CiAgICAgIDxicG1uOmluY29taW5nPkZsb3dfaV9vbl90aW1lPC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjppbmNvbWluZz5GbG93X2lfZXh0PC9icG1uOmluY29taW5nPgogICAgICA8YnBtbjpvdXRnb2luZz5GbG93X2k3PC9icG1uOm91dGdvaW5nPgogICAgPC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2k3IiBzb3VyY2VSZWY9IlRhc2tfaV9kZWxpdmVyIiB0YXJnZXRSZWY9IlRhc2tfaV9jbG9zZSIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfaV9jbG9zZSIgbmFtZT0iQ2xvc2UgUmVxdWVzdCBpbiBUcmFja2luZyBTeXN0ZW07IFJldGFpbiBBbGwgUmVjb3JkcyBwZXIgUmV0ZW50aW9uIFNjaGVkdWxlIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pNzwvYnBtbjppbmNvbWluZz4KICAgICAgPGJwbW46b3V0Z29pbmc+Rmxvd19pODwvYnBtbjpvdXRnb2luZz4KICAgIDwvYnBtbjp1c2VyVGFzaz4KICAgIDxicG1uOmVuZEV2ZW50IGlkPSJFRV9pbnQiIG5hbWU9IlJlcXVlc3QgQ2xvc2VkIj4KICAgICAgPGJwbW46aW5jb21pbmc+Rmxvd19pODwvYnBtbjppbmNvbWluZz4KICAgIDwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19pOCIgc291cmNlUmVmPSJUYXNrX2lfY2xvc2UiIHRhcmdldFJlZj0iRUVfaW50Ii8+CiAgPC9icG1uOnByb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQlBNTkRpYWdyYW1fZm9pYV9pbnQiPgogICAgPGJwbW5kaTpCUE1OUGxhbmUgaWQ9IkJQTU5QbGFuZV9mb2lhX2ludCIgYnBtbkVsZW1lbnQ9ImZvaWFfaW50ZXJuYWxfcHJvY2VzcyI+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJTRV9pbnRfZGkiIGJwbW5FbGVtZW50PSJTRV9pbnQiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfaV9sb2dfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfbG9nIj48ZGM6Qm91bmRzIHg9IjI0MCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3JvdXRlX2RpIiBicG1uRWxlbWVudD0iVGFza19pX3JvdXRlIj48ZGM6Qm91bmRzIHg9IjQ2MCIgeT0iMjAwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3NlYXJjaF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfaV9zZWFyY2giPjxkYzpCb3VuZHMgeD0iNjcwIiB5PSIyMDAiIHdpZHRoPSIxNTAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2lfbGVnYWxfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfbGVnYWwiPjxkYzpCb3VuZHMgeD0iODgwIiB5PSIyMDAiIHdpZHRoPSIxNjAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19pX2V4ZW1wdF9kaSIgYnBtbkVsZW1lbnQ9IkdXX2lfZXhlbXB0IiBpc01hcmtlclZpc2libGU9InRydWUiPjxkYzpCb3VuZHMgeD0iMTExMCIgeT0iMjE1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEwOTAiIHk9IjI3MiIgd2lkdGg9IjkwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfaV9kZW5pYWxfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfZGVuaWFsIj48ZGM6Qm91bmRzIHg9IjEyMzAiIHk9IjgwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3JlZGFjdF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfaV9yZWRhY3QiPjxkYzpCb3VuZHMgeD0iMTIzMCIgeT0iMjAwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX3ByZXBhcmVfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfcHJlcGFyZSI+PGRjOkJvdW5kcyB4PSIxMjMwIiB5PSIzMzAiIHdpZHRoPSIxOTAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19pX21lcmdlX2RpIiBicG1uRWxlbWVudD0iR1dfaV9tZXJnZSIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjE0OTAiIHk9IjIxNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iR1dfaV90aW1pbmdfZGkiIGJwbW5FbGVtZW50PSJHV19pX3RpbWluZyIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjE2MTAiIHk9IjIxNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxNTg1IiB5PSIyNzIiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX2V4dGVuZF9kaSIgYnBtbkVsZW1lbnQ9IlRhc2tfaV9leHRlbmQiPjxkYzpCb3VuZHMgeD0iMTcyMCIgeT0iMzQwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19pX2RlbGl2ZXJfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfZGVsaXZlciI+PGRjOkJvdW5kcyB4PSIxNzMwIiB5PSIyMDAiIHdpZHRoPSIxNzAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2lfY2xvc2VfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2lfY2xvc2UiPjxkYzpCb3VuZHMgeD0iMTk2MCIgeT0iMjAwIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRUVfaW50X2RpIiBicG1uRWxlbWVudD0iRUVfaW50Ij48ZGM6Qm91bmRzIHg9IjIxOTIiIHk9IjIyMiIgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2Ii8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2kxX2RpIiBicG1uRWxlbWVudD0iRmxvd19pMSI+PGRpOndheXBvaW50IHg9IjE4OCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjI0MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaTJfZGkiIGJwbW5FbGVtZW50PSJGbG93X2kyIj48ZGk6d2F5cG9pbnQgeD0iNDAwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iNDYwIiB5PSIyNDAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pM19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaTMiPjxkaTp3YXlwb2ludCB4PSI2MTAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSI2NzAiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2k0X2RpIiBicG1uRWxlbWVudD0iRmxvd19pNCI+PGRpOndheXBvaW50IHg9IjgyMCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9Ijg4MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaTVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2k1Ij48ZGk6d2F5cG9pbnQgeD0iMTA0MCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjExMTAiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfZnVsbF9leGVtcHRfZGkiIGJwbW5FbGVtZW50PSJGbG93X2lfZnVsbF9leGVtcHQiPjxkaTp3YXlwb2ludCB4PSIxMTM1IiB5PSIyMTUiLz48ZGk6d2F5cG9pbnQgeD0iMTEzNSIgeT0iMTIwIi8+PGRpOndheXBvaW50IHg9IjEyMzAiIHk9IjEyMCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iMTE0MCIgeT0iMTYzIiB3aWR0aD0iNjAiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaV9wYXJ0aWFsX2V4ZW1wdF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaV9wYXJ0aWFsX2V4ZW1wdCI+PGRpOndheXBvaW50IHg9IjExNjAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxMjMwIiB5PSIyNDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjExNjUiIHk9IjIyMiIgd2lkdGg9IjYwIiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfbm9fZXhlbXB0X2RpIiBicG1uRWxlbWVudD0iRmxvd19pX25vX2V4ZW1wdCI+PGRpOndheXBvaW50IHg9IjExMzUiIHk9IjI2NSIvPjxkaTp3YXlwb2ludCB4PSIxMTM1IiB5PSIzNzAiLz48ZGk6d2F5cG9pbnQgeD0iMTIzMCIgeT0iMzcwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxMTQwIiB5PSIzMTMiIHdpZHRoPSI2OCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pZDFfZGkiIGJwbW5FbGVtZW50PSJGbG93X2lkMSI+PGRpOndheXBvaW50IHg9IjE0MjAiIHk9IjEyMCIvPjxkaTp3YXlwb2ludCB4PSIxNTE1IiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTUxNSIgeT0iMjE1Ii8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaWQyX2RpIiBicG1uRWxlbWVudD0iRmxvd19pZDIiPjxkaTp3YXlwb2ludCB4PSIxNDIwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTQ5MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaWQzX2RpIiBicG1uRWxlbWVudD0iRmxvd19pZDMiPjxkaTp3YXlwb2ludCB4PSIxNDIwIiB5PSIzNzAiLz48ZGk6d2F5cG9pbnQgeD0iMTUxNSIgeT0iMzcwIi8+PGRpOndheXBvaW50IHg9IjE1MTUiIHk9IjI2NSIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2k2X2RpIiBicG1uRWxlbWVudD0iRmxvd19pNiI+PGRpOndheXBvaW50IHg9IjE1NDAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxNjEwIiB5PSIyNDAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pX29uX3RpbWVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2lfb25fdGltZSI+PGRpOndheXBvaW50IHg9IjE2NjAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSIxNzMwIiB5PSIyNDAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE2ODUiIHk9IjIyMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfbGF0ZV9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaV9sYXRlIj48ZGk6d2F5cG9pbnQgeD0iMTYzNSIgeT0iMjY1Ii8+PGRpOndheXBvaW50IHg9IjE2MzUiIHk9IjM4MCIvPjxkaTp3YXlwb2ludCB4PSIxNzIwIiB5PSIzODAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjE2NDAiIHk9IjMyMCIgd2lkdGg9IjY4IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2lfZXh0X2RpIiBicG1uRWxlbWVudD0iRmxvd19pX2V4dCI+PGRpOndheXBvaW50IHg9IjE4MTUiIHk9IjM4MCIvPjxkaTp3YXlwb2ludCB4PSIxODE1IiB5PSIyODAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19pN19kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfaTciPjxkaTp3YXlwb2ludCB4PSIxOTAwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTk2MCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfaThfZGkiIGJwbW5FbGVtZW50PSJGbG93X2k4Ij48ZGk6d2F5cG9pbnQgeD0iMjEyMCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjIxOTIiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2JwbW46ZGVmaW5pdGlvbnM+Cg==
Records Search Standards
The custodian must search all formats — paper files, email, shared drives, databases, text messages on government devices, voicemail, and any other medium where public records may be stored. Virginia courts have held that a reasonable search is required even for informally stored records.
Redaction Requirements (§ 2.2-3704.01)
When records contain both exempt and non-exempt information, the public body must redact exempt portions and must produce the non-exempt portions. The written response must:
Identify with reasonable particularity the subject matter of withheld portions
Cite the specific Code section authorizing each withholding (not just “attorney-client privilege” — must cite § 2.2-3705.1(2), etc.)
A blanket denial citing a general category is insufficient and constitutes a FOIA violation
IV. Common Exemptions Reference
The following are the most frequently invoked exemptions for a local government like Charlottesville. Exemptions are discretionary — the city may choose to disclose even exempt records unless disclosure is otherwise prohibited by law.
| Exemption | Code Section | Scope |
| Personnel records | § 2.2-3705.1(1) | Individual employee records; but name, position, salary always public |
| Attorney-client / legal advice | § 2.2-3705.1(2) | Written legal advice and attorney-client communications |
| Work product for litigation | § 2.2-3705.1(3) | Materials prepared for active litigation or closed-meeting investigation |
| Public safety / security plans | § 2.2-3705.2 | Vulnerability assessments, security plans for infrastructure |
| Administrative investigations | § 2.2-3705.3 | Active internal investigations; not permanent |
| Law enforcement records | § 2.2-3706 / 3706.1 | Criminal investigative files, active case materials |
| Real property appraisals | § 2.2-3705.1(8) | Pre-transaction appraisals; expires upon deal completion |
| Procurement negotiation | § 2.2-3705.1(12) | Active bid/contract negotiations; expires on award decision |
| Health / social services | § 2.2-3705.5 | Individual patient/client records |
| Proprietary / trade secrets | § 2.2-3705.6 | Vendor trade secrets submitted in confidence |
Important: The public body bears the burden of proof to establish any exemption applies (§ 2.2-3713.E). Courts give no deference to the agency's own determination.
Exemption Decision Tree (SpiffWorkflow)
Each exemption category should map to a business rule task or DMN decision table in SpiffWorkflow:
Input: record type, requestor type, record age, case status (active/closed)
Output: disclose | redact with citation | withhold with citation
The DMN table should reference the specific subsection for each output path
Redaction decisions should be logged with rationale for audit trail and potential litigation defense
V. Open Meetings Compliance
FOIA also governs public body meetings (§§ 2.2-3707 through 2.2-3712). All meetings of public bodies must be open unless a specific closed-session purpose applies under § 2.2-3711.
Applies to these Charlottesville bodies:
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIGlkPSJGT0lBX01lZXRpbmdzIiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9icG1uLmlvL3NjaGVtYS9icG1uIiBleHBvcnRlcj0iQ2FtdW5kYSBNb2RlbGVyIiBleHBvcnRlclZlcnNpb249IjMuMC4wLWRldiI+CiAgPGJwbW46cHJvY2VzcyBpZD0iZm9pYV9tZWV0aW5nc19wcm9jZXNzIiBuYW1lPSJPcGVuIE1lZXRpbmdzIOKAlCBGT0lBIFJlcXVpcmVtZW50cyIgaXNFeGVjdXRhYmxlPSJ0cnVlIj4KICAgIDxicG1uOnN0YXJ0RXZlbnQgaWQ9IlNFX21lZXQiIG5hbWU9IlB1YmxpYyBCb2R5IFNjaGVkdWxlcyBhIE1lZXRpbmciPjxicG1uOm91dGdvaW5nPkZsb3dfbTE8L2JwbW46b3V0Z29pbmc+PC9icG1uOnN0YXJ0RXZlbnQ+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfbTEiIHNvdXJjZVJlZj0iU0VfbWVldCIgdGFyZ2V0UmVmPSJUYXNrX21fbm90aWNlIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19tX25vdGljZSIgbmFtZT0iUG9zdCBNZWV0aW5nIE5vdGljZSDigJQgRGF0ZSwgVGltZSwgTG9jYXRpb24sIEFnZW5kYTsgTWluaW11bSAzIFdvcmtpbmcgRGF5cyBBZHZhbmNlICjCpyAyLjItMzcwNykiPjxicG1uOmluY29taW5nPkZsb3dfbTE8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19tMjwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfbTIiIHNvdXJjZVJlZj0iVGFza19tX25vdGljZSIgdGFyZ2V0UmVmPSJUYXNrX21fb3BlbiIvPgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfbV9vcGVuIiBuYW1lPSJDb25kdWN0IE9wZW4gUHVibGljIE1lZXRpbmcg4oCUIEFsbCBDaXRpemVucyBNYXkgQXR0ZW5kIj48YnBtbjppbmNvbWluZz5GbG93X20yPC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbTM8L2JwbW46b3V0Z29pbmc+PC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X20zIiBzb3VyY2VSZWY9IlRhc2tfbV9vcGVuIiB0YXJnZXRSZWY9IkdXX21fY2xvc2VkIi8+CiAgICA8YnBtbjpleGNsdXNpdmVHYXRld2F5IGlkPSJHV19tX2Nsb3NlZCIgbmFtZT0iQ2xvc2VkIFNlc3Npb24gTmVlZGVkPyIgZGVmYXVsdD0iRmxvd19tX25vX2Nsb3NlZCI+PGJwbW46aW5jb21pbmc+Rmxvd19tMzwvYnBtbjppbmNvbWluZz48YnBtbjpvdXRnb2luZz5GbG93X21fY2xvc2VkPC9icG1uOm91dGdvaW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbV9ub19jbG9zZWQ8L2JwbW46b3V0Z29pbmc+PC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfbV9jbG9zZWQiIG5hbWU9IlllcyIgc291cmNlUmVmPSJHV19tX2Nsb3NlZCIgdGFyZ2V0UmVmPSJUYXNrX21fbW90aW9uIj48YnBtbjpjb25kaXRpb25FeHByZXNzaW9uPm5lZWRzQ2xvc2VkPC9icG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+PC9icG1uOnNlcXVlbmNlRmxvdz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19tX25vX2Nsb3NlZCIgbmFtZT0iTm8iIHNvdXJjZVJlZj0iR1dfbV9jbG9zZWQiIHRhcmdldFJlZj0iVGFza19tX21pbnV0ZXMiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX21fbW90aW9uIiBuYW1lPSJQdWJsaWMgQm9keSBWb3RlcyBvbiBNb3Rpb24gdG8gRW50ZXIgQ2xvc2VkIFNlc3Npb24g4oCUIFN0YXRlIFNwZWNpZmljIFN0YXR1dG9yeSBCYXNpcyAowqcgMi4yLTM3MTIpIj48YnBtbjppbmNvbWluZz5GbG93X21fY2xvc2VkPC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbTQ8L2JwbW46b3V0Z29pbmc+PC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X200IiBzb3VyY2VSZWY9IlRhc2tfbV9tb3Rpb24iIHRhcmdldFJlZj0iVGFza19tX2Nsb3NlZF9zZXNzaW9uIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19tX2Nsb3NlZF9zZXNzaW9uIiBuYW1lPSJDb25kdWN0IENsb3NlZCBTZXNzaW9uIChBdXRob3JpemVkIFB1cnBvc2VzIE9ubHkg4oCUIMKnIDIuMi0zNzExKSI+PGJwbW46aW5jb21pbmc+Rmxvd19tNDwvYnBtbjppbmNvbWluZz48YnBtbjpvdXRnb2luZz5GbG93X201PC9icG1uOm91dGdvaW5nPjwvYnBtbjp1c2VyVGFzaz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19tNSIgc291cmNlUmVmPSJUYXNrX21fY2xvc2VkX3Nlc3Npb24iIHRhcmdldFJlZj0iVGFza19tX2NlcnRpZnkiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX21fY2VydGlmeSIgbmFtZT0iUHVibGljIEJvZHkgUmVjb252ZW5lcyBpbiBPcGVuIFNlc3Npb247IFZvdGUgdG8gQ2VydGlmeSBDbG9zZWQgTWVldGluZyBDb21wbGllZCB3aXRoIEZPSUEgKMKnIDIuMi0zNzEyLkQpIj48YnBtbjppbmNvbWluZz5GbG93X201PC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfbTY8L2JwbW46b3V0Z29pbmc+PC9icG1uOnVzZXJUYXNrPgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X202IiBzb3VyY2VSZWY9IlRhc2tfbV9jZXJ0aWZ5IiB0YXJnZXRSZWY9IlRhc2tfbV9taW51dGVzIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19tX21pbnV0ZXMiIG5hbWU9IlJlY29yZCBNaW51dGVzIG9mIE9wZW4gU2Vzc2lvbjsgUG9zdCBNaW51dGVzIFdpdGhpbiAzIEJ1c2luZXNzIERheXMgKMKnIDIuMi0zNzA3LjIpIj48YnBtbjppbmNvbWluZz5GbG93X21fbm9fY2xvc2VkPC9icG1uOmluY29taW5nPjxicG1uOmluY29taW5nPkZsb3dfbTY8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19tNzwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjplbmRFdmVudCBpZD0iRUVfbWVldCIgbmFtZT0iTWVldGluZyBQcm9jZXNzIENvbXBsZXRlIj48YnBtbjppbmNvbWluZz5GbG93X203PC9icG1uOmluY29taW5nPjwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19tNyIgc291cmNlUmVmPSJUYXNrX21fbWludXRlcyIgdGFyZ2V0UmVmPSJFRV9tZWV0Ii8+CiAgPC9icG1uOnByb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQlBNTkRpYWdyYW1fbWVldCI+CiAgICA8YnBtbmRpOkJQTU5QbGFuZSBpZD0iQlBNTlBsYW5lX21lZXQiIGJwbW5FbGVtZW50PSJmb2lhX21lZXRpbmdzX3Byb2Nlc3MiPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iU0VfbWVldF9kaSIgYnBtbkVsZW1lbnQ9IlNFX21lZXQiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyMjIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfbV9ub3RpY2VfZGkiIGJwbW5FbGVtZW50PSJUYXNrX21fbm90aWNlIj48ZGM6Qm91bmRzIHg9IjI0MCIgeT0iMjAwIiB3aWR0aD0iMTcwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19tX29wZW5fZGkiIGJwbW5FbGVtZW50PSJUYXNrX21fb3BlbiI+PGRjOkJvdW5kcyB4PSI0NzAiIHk9IjIwMCIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdXX21fY2xvc2VkX2RpIiBicG1uRWxlbWVudD0iR1dfbV9jbG9zZWQiIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+PGRjOkJvdW5kcyB4PSI3MDAiIHk9IjIxNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSI2NzQiIHk9IjI3MiIgd2lkdGg9IjEwMiIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX21fbW90aW9uX2RpIiBicG1uRWxlbWVudD0iVGFza19tX21vdGlvbiI+PGRjOkJvdW5kcyB4PSI4MjAiIHk9IjgwIiB3aWR0aD0iMTkwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19tX2Nsb3NlZF9zZXNzaW9uX2RpIiBicG1uRWxlbWVudD0iVGFza19tX2Nsb3NlZF9zZXNzaW9uIj48ZGM6Qm91bmRzIHg9IjEwODAiIHk9IjgwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19tX2NlcnRpZnlfZGkiIGJwbW5FbGVtZW50PSJUYXNrX21fY2VydGlmeSI+PGRjOkJvdW5kcyB4PSIxMzMwIiB5PSI4MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI4MCIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfbV9taW51dGVzX2RpIiBicG1uRWxlbWVudD0iVGFza19tX21pbnV0ZXMiPjxkYzpCb3VuZHMgeD0iMTYxMCIgeT0iMjAwIiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRUVfbWVldF9kaSIgYnBtbkVsZW1lbnQ9IkVFX21lZXQiPjxkYzpCb3VuZHMgeD0iMTg2MiIgeT0iMjIyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbTFfZGkiIGJwbW5FbGVtZW50PSJGbG93X20xIj48ZGk6d2F5cG9pbnQgeD0iMTg4IiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMjQwIiB5PSIyNDAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19tMl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfbTIiPjxkaTp3YXlwb2ludCB4PSI0MTAiIHk9IjI0MCIvPjxkaTp3YXlwb2ludCB4PSI0NzAiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X20zX2RpIiBicG1uRWxlbWVudD0iRmxvd19tMyI+PGRpOndheXBvaW50IHg9IjYzMCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjcwMCIgeT0iMjQwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbV9jbG9zZWRfZGkiIGJwbW5FbGVtZW50PSJGbG93X21fY2xvc2VkIj48ZGk6d2F5cG9pbnQgeD0iNzI1IiB5PSIyMTUiLz48ZGk6d2F5cG9pbnQgeD0iNzI1IiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iODIwIiB5PSIxMjAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjczMSIgeT0iMTYzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbV9ub19jbG9zZWRfZGkiIGJwbW5FbGVtZW50PSJGbG93X21fbm9fY2xvc2VkIj48ZGk6d2F5cG9pbnQgeD0iNzUwIiB5PSIyNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTcwMCIgeT0iMjQwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxMjIwIiB5PSIyMjIiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19tNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfbTQiPjxkaTp3YXlwb2ludCB4PSIxMDEwIiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTA4MCIgeT0iMTIwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbTVfZGkiIGJwbW5FbGVtZW50PSJGbG93X201Ij48ZGk6d2F5cG9pbnQgeD0iMTI2MCIgeT0iMTIwIi8+PGRpOndheXBvaW50IHg9IjEzMzAiIHk9IjEyMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X202X2RpIiBicG1uRWxlbWVudD0iRmxvd19tNiI+PGRpOndheXBvaW50IHg9IjE1MzAiIHk9IjEyMCIvPjxkaTp3YXlwb2ludCB4PSIxNzAwIiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTcwMCIgeT0iMjAwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfbTdfZGkiIGJwbW5FbGVtZW50PSJGbG93X203Ij48ZGk6d2F5cG9pbnQgeD0iMTc5MCIgeT0iMjQwIi8+PGRpOndheXBvaW50IHg9IjE4NjIiIHk9IjI0MCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2JwbW46ZGVmaW5pdGlvbnM+Cg==
Closed Session Authorized Purposes (§ 2.2-3711)
Closed sessions may only be held for specifically enumerated purposes, including:
Personnel matters (hiring, performance, discipline of specific individuals)
Consultation with legal counsel regarding specific legal matters / active litigation
Discussion of real property acquisition or disposition where public knowledge would disadvantage the public body
Protection of public safety (specific security/emergency plans)
Economic development (site selection where disclosure would adversely affect the community)
Important: General policy discussions, even about sensitive topics, may NOT be held in closed session. Voting on any matter may not occur in closed session.
Minutes Requirements (§ 2.2-3707.2)
For local public bodies, minutes of open sessions must be:
SpiffWorkflow Notes for Meetings
Process ID: foiameetingsprocess — can be triggered on a calendar basis (recurring timer event)
Lane: Clerk / Staff — notice posting, minutes recording, website publication
Lane: Board/Commission Chair — motion to enter closed session, certification vote
Service Task: publish notice to website, send calendar invite to members, post minutes PDF to website
Timer Event: 3-working-day deadline for minutes publication; automated reminder at Day 2
VI. Court Enforcement Process
When a public body wrongfully denies records or violates open meetings requirements, any person may seek enforcement through the courts. The FOIA enforcement process is designed to be fast — courts must hear the case within 7 days of filing.
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxicG1uOmRlZmluaXRpb25zIHhtbG5zOmJwbW49Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0JQTU4vMjAxMDA1MjQvTU9ERUwiIHhtbG5zOmJwbW5kaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9ESSIgeG1sbnM6ZGM9Imh0dHA6Ly93d3cub21nLm9yZy9zcGVjL0RELzIwMTAwNTI0L0RDIiB4bWxuczpkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIGlkPSJGT0lBX0NvdXJ0IiB0YXJnZXROYW1lc3BhY2U9Imh0dHA6Ly9icG1uLmlvL3NjaGVtYS9icG1uIiBleHBvcnRlcj0iQ2FtdW5kYSBNb2RlbGVyIiBleHBvcnRlclZlcnNpb249IjMuMC4wLWRldiI+CiAgPGJwbW46cHJvY2VzcyBpZD0iZm9pYV9jb3VydF9wcm9jZXNzIiBuYW1lPSJGT0lBIEVuZm9yY2VtZW50IOKAlCBDb3VydCBQcm9jZXNzIiBpc0V4ZWN1dGFibGU9InRydWUiPgogICAgPGJwbW46c3RhcnRFdmVudCBpZD0iU0VfY291cnQiIG5hbWU9IlJlcXVlc3RlcidzIFJpZ2h0cyBEZW5pZWQgb3IgUmVxdWVzdCBVbmFuc3dlcmVkIj48YnBtbjpvdXRnb2luZz5GbG93X2MxPC9icG1uOm91dGdvaW5nPjwvYnBtbjpzdGFydEV2ZW50PgogICAgPGJwbW46c2VxdWVuY2VGbG93IGlkPSJGbG93X2MxIiBzb3VyY2VSZWY9IlNFX2NvdXJ0IiB0YXJnZXRSZWY9IlRhc2tfY19jb3Vuc2VsIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19jX2NvdW5zZWwiIG5hbWU9IlJlcXVlc3RlciBDb25zdWx0cyBBdHRvcm5leSAoT3B0aW9uYWwpIOKAlCBOb3RlOiBBdHRvcm5leSBGZWVzIFJlY292ZXJhYmxlIGlmIFBldGl0aW9uZXIgU3Vic3RhbnRpYWxseSBQcmV2YWlscyAowqcgMi4yLTM3MTMuRCkiPjxicG1uOmluY29taW5nPkZsb3dfYzE8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jMjwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzIiIHNvdXJjZVJlZj0iVGFza19jX2NvdW5zZWwiIHRhcmdldFJlZj0iVGFza19jX3BldGl0aW9uIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19jX3BldGl0aW9uIiBuYW1lPSJGaWxlIFBldGl0aW9uIGZvciBNYW5kYW11cyBvciBJbmp1bmN0aW9uIHdpdGggQWZmaWRhdml0IFNob3dpbmcgR29vZCBDYXVzZSAowqcgMi4yLTM3MTMuQSkiPjxicG1uOmluY29taW5nPkZsb3dfYzI8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jMzwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzMiIHNvdXJjZVJlZj0iVGFza19jX3BldGl0aW9uIiB0YXJnZXRSZWY9IkdXX2NfdmVudWUiLz4KICAgIDxicG1uOmV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdXX2NfdmVudWUiIG5hbWU9IlZlbnVlPyIgZGVmYXVsdD0iRmxvd19jX2xvY2FsIj48YnBtbjppbmNvbWluZz5GbG93X2MzPC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfY19sb2NhbDwvYnBtbjpvdXRnb2luZz48YnBtbjpvdXRnb2luZz5GbG93X2Nfc3RhdGU8L2JwbW46b3V0Z29pbmc+PC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfY19sb2NhbCIgbmFtZT0iTG9jYWwgQm9keSDigJQgQ2lyY3VpdCBvciBHZW4uIERpc3RyaWN0IENvdXJ0IG9mIENpdHkiIHNvdXJjZVJlZj0iR1dfY192ZW51ZSIgdGFyZ2V0UmVmPSJUYXNrX2Nfc2VydmUiLz4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19jX3N0YXRlIiBuYW1lPSJTdGF0ZSBCb2R5IOKAlCBDaXJjdWl0IC8gR2VuLiBEaXN0cmljdCBvZiBSZXF1ZXN0ZXIncyBSZXNpZGVuY2Ugb3IgUmljaG1vbmQiIHNvdXJjZVJlZj0iR1dfY192ZW51ZSIgdGFyZ2V0UmVmPSJUYXNrX2Nfc2VydmUiPjxicG1uOmNvbmRpdGlvbkV4cHJlc3Npb24+aXNTdGF0ZUJvZHk8L2JwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj48L2JwbW46c2VxdWVuY2VGbG93PgogICAgPGJwbW46dXNlclRhc2sgaWQ9IlRhc2tfY19zZXJ2ZSIgbmFtZT0iU2VydmUgQ29weSBvZiBQZXRpdGlvbiBvbiBQdWJsaWMgQm9keSAoTWluLiAzIFdvcmtpbmcgRGF5cyBCZWZvcmUgSGVhcmluZykiPjxicG1uOmluY29taW5nPkZsb3dfY19sb2NhbDwvYnBtbjppbmNvbWluZz48YnBtbjppbmNvbWluZz5GbG93X2Nfc3RhdGU8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jNDwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzQiIHNvdXJjZVJlZj0iVGFza19jX3NlcnZlIiB0YXJnZXRSZWY9IlRhc2tfY19oZWFyaW5nIi8+CiAgICA8YnBtbjp1c2VyVGFzayBpZD0iVGFza19jX2hlYXJpbmciIG5hbWU9IkNvdXJ0IEhlYXJpbmcg4oCUIFdpdGhpbiA3IERheXMgb2YgRmlsaW5nICjCpyAyLjItMzcxMy5DKTsgUHVibGljIEJvZHkgQmVhcnMgQnVyZGVuIG9mIFByb29mIHRvIEVzdGFibGlzaCBFeGVtcHRpb24iPjxicG1uOmluY29taW5nPkZsb3dfYzQ8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jNTwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfYzUiIHNvdXJjZVJlZj0iVGFza19jX2hlYXJpbmciIHRhcmdldFJlZj0iR1dfY19ydWxpbmciLz4KICAgIDxicG1uOmV4Y2x1c2l2ZUdhdGV3YXkgaWQ9IkdXX2NfcnVsaW5nIiBuYW1lPSJDb3VydCBSdWxpbmc/IiBkZWZhdWx0PSJGbG93X2NfZGlzbWlzc2VkIj48YnBtbjppbmNvbWluZz5GbG93X2M1PC9icG1uOmluY29taW5nPjxicG1uOm91dGdvaW5nPkZsb3dfY19ncmFudGVkPC9icG1uOm91dGdvaW5nPjxicG1uOm91dGdvaW5nPkZsb3dfY19kaXNtaXNzZWQ8L2JwbW46b3V0Z29pbmc+PC9icG1uOmV4Y2x1c2l2ZUdhdGV3YXk+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfY19ncmFudGVkIiBuYW1lPSJWaW9sYXRpb24gRm91bmQiIHNvdXJjZVJlZj0iR1dfY19ydWxpbmciIHRhcmdldFJlZj0iVGFza19jX3JlbWVkeSI+PGJwbW46Y29uZGl0aW9uRXhwcmVzc2lvbj52aW9sYXRpb25Gb3VuZDwvYnBtbjpjb25kaXRpb25FeHByZXNzaW9uPjwvYnBtbjpzZXF1ZW5jZUZsb3c+CiAgICA8YnBtbjpzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfY19kaXNtaXNzZWQiIG5hbWU9IkRpc21pc3NlZCIgc291cmNlUmVmPSJHV19jX3J1bGluZyIgdGFyZ2V0UmVmPSJFRV9jb3VydF9kaXNtaXNzZWQiLz4KICAgIDxicG1uOnVzZXJUYXNrIGlkPSJUYXNrX2NfcmVtZWR5IiBuYW1lPSJDb3VydCBPcmRlcnM6IFJlY29yZHMgRGlzY2xvc2VkOyBNYW5kYW11cyAvIEluanVuY3Rpb24gSXNzdWVkOyBBdHRvcm5leSBGZWVzICZhbXA7IENvc3RzIEF3YXJkZWQ7IENpdmlsIFBlbmFsdHkgJDUwMOKAkyQyLDAwMCBwZXIgV2lsbGZ1bCBWaW9sYXRpb24gKMKnIDIuMi0zNzE0KSI+PGJwbW46aW5jb21pbmc+Rmxvd19jX2dyYW50ZWQ8L2JwbW46aW5jb21pbmc+PGJwbW46b3V0Z29pbmc+Rmxvd19jNjwvYnBtbjpvdXRnb2luZz48L2JwbW46dXNlclRhc2s+CiAgICA8YnBtbjplbmRFdmVudCBpZD0iRUVfY291cnRfZ3JhbnRlZCIgbmFtZT0iUmVxdWVzdGVyIFByZXZhaWxzIOKAlCBSZWNvcmRzIE9yZGVyZWQgUmVsZWFzZWQiPjxicG1uOmluY29taW5nPkZsb3dfYzY8L2JwbW46aW5jb21pbmc+PC9icG1uOmVuZEV2ZW50PgogICAgPGJwbW46ZW5kRXZlbnQgaWQ9IkVFX2NvdXJ0X2Rpc21pc3NlZCIgbmFtZT0iUGV0aXRpb24gRGlzbWlzc2VkIj48YnBtbjppbmNvbWluZz5GbG93X2NfZGlzbWlzc2VkPC9icG1uOmluY29taW5nPjwvYnBtbjplbmRFdmVudD4KICAgIDxicG1uOnNlcXVlbmNlRmxvdyBpZD0iRmxvd19jNiIgc291cmNlUmVmPSJUYXNrX2NfcmVtZWR5IiB0YXJnZXRSZWY9IkVFX2NvdXJ0X2dyYW50ZWQiLz4KICA8L2JwbW46cHJvY2Vzcz4KICA8YnBtbmRpOkJQTU5EaWFncmFtIGlkPSJCUE1ORGlhZ3JhbV9jb3VydCI+CiAgICA8YnBtbmRpOkJQTU5QbGFuZSBpZD0iQlBNTlBsYW5lX2NvdXJ0IiBicG1uRWxlbWVudD0iZm9pYV9jb3VydF9wcm9jZXNzIj4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlNFX2NvdXJ0X2RpIiBicG1uRWxlbWVudD0iU0VfY291cnQiPjxkYzpCb3VuZHMgeD0iMTUyIiB5PSIyMTIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIvPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfY19jb3Vuc2VsX2RpIiBicG1uRWxlbWVudD0iVGFza19jX2NvdW5zZWwiPjxkYzpCb3VuZHMgeD0iMjQwIiB5PSIxOTAiIHdpZHRoPSIxNzAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJUYXNrX2NfcGV0aXRpb25fZGkiIGJwbW5FbGVtZW50PSJUYXNrX2NfcGV0aXRpb24iPjxkYzpCb3VuZHMgeD0iNDcwIiB5PSIxOTAiIHdpZHRoPSIxNzAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19jX3ZlbnVlX2RpIiBicG1uRWxlbWVudD0iR1dfY192ZW51ZSIgaXNNYXJrZXJWaXNpYmxlPSJ0cnVlIj48ZGM6Qm91bmRzIHg9IjcxMCIgeT0iMjA1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjcyMyIgeT0iMjYyIiB3aWR0aD0iMzQiIGhlaWdodD0iMTQiLz48L2JwbW5kaTpCUE1OTGFiZWw+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19jX3NlcnZlX2RpIiBicG1uRWxlbWVudD0iVGFza19jX3NlcnZlIj48ZGM6Qm91bmRzIHg9Ijg0MCIgeT0iMTkwIiB3aWR0aD0iMTcwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iVGFza19jX2hlYXJpbmdfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2NfaGVhcmluZyI+PGRjOkJvdW5kcyB4PSIxMDcwIiB5PSIxOTAiIHdpZHRoPSIxODAiIGhlaWdodD0iODAiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHV19jX3J1bGluZ19kaSIgYnBtbkVsZW1lbnQ9IkdXX2NfcnVsaW5nIiBpc01hcmtlclZpc2libGU9InRydWUiPjxkYzpCb3VuZHMgeD0iMTMyMCIgeT0iMjA1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEzMDgiIHk9IjI2MiIgd2lkdGg9Ijc0IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IlRhc2tfY19yZW1lZHlfZGkiIGJwbW5FbGVtZW50PSJUYXNrX2NfcmVtZWR5Ij48ZGM6Qm91bmRzIHg9IjE0NTAiIHk9IjgwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjgwIi8+PC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRUVfY291cnRfZ3JhbnRlZF9kaSIgYnBtbkVsZW1lbnQ9IkVFX2NvdXJ0X2dyYW50ZWQiPjxkYzpCb3VuZHMgeD0iMTcyMiIgeT0iMTAyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJFRV9jb3VydF9kaXNtaXNzZWRfZGkiIGJwbW5FbGVtZW50PSJFRV9jb3VydF9kaXNtaXNzZWQiPjxkYzpCb3VuZHMgeD0iMTQ1MCIgeT0iMzIyIiB3aWR0aD0iMzYiIGhlaWdodD0iMzYiLz48L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfYzFfZGkiIGJwbW5FbGVtZW50PSJGbG93X2MxIj48ZGk6d2F5cG9pbnQgeD0iMTg4IiB5PSIyMzAiLz48ZGk6d2F5cG9pbnQgeD0iMjQwIiB5PSIyMzAiLz48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19jMl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfYzIiPjxkaTp3YXlwb2ludCB4PSI0MTAiIHk9IjIzMCIvPjxkaTp3YXlwb2ludCB4PSI0NzAiIHk9IjIzMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2MzX2RpIiBicG1uRWxlbWVudD0iRmxvd19jMyI+PGRpOndheXBvaW50IHg9IjY0MCIgeT0iMjMwIi8+PGRpOndheXBvaW50IHg9IjcxMCIgeT0iMjMwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfY19sb2NhbF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfY19sb2NhbCI+PGRpOndheXBvaW50IHg9Ijc2MCIgeT0iMjMwIi8+PGRpOndheXBvaW50IHg9Ijg0MCIgeT0iMjMwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSI3NjUiIHk9IjIxMiIgd2lkdGg9IjY4IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2Nfc3RhdGVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2Nfc3RhdGUiPjxkaTp3YXlwb2ludCB4PSI3MzUiIHk9IjIwNSIvPjxkaTp3YXlwb2ludCB4PSI3MzUiIHk9IjE1MCIvPjxkaTp3YXlwb2ludCB4PSI5MjUiIHk9IjE1MCIvPjxkaTp3YXlwb2ludCB4PSI5MjUiIHk9IjE5MCIvPjxicG1uZGk6QlBNTkxhYmVsPjxkYzpCb3VuZHMgeD0iNzQwIiB5PSIxNzgiIHdpZHRoPSI4NCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19jNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfYzQiPjxkaTp3YXlwb2ludCB4PSIxMDEwIiB5PSIyMzAiLz48ZGk6d2F5cG9pbnQgeD0iMTA3MCIgeT0iMjMwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfYzVfZGkiIGJwbW5FbGVtZW50PSJGbG93X2M1Ij48ZGk6d2F5cG9pbnQgeD0iMTI1MCIgeT0iMjMwIi8+PGRpOndheXBvaW50IHg9IjEzMjAiIHk9IjIzMCIvPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2NfZ3JhbnRlZF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfY19ncmFudGVkIj48ZGk6d2F5cG9pbnQgeD0iMTM0NSIgeT0iMjA1Ii8+PGRpOndheXBvaW50IHg9IjEzNDUiIHk9IjEyMCIvPjxkaTp3YXlwb2ludCB4PSIxNDUwIiB5PSIxMjAiLz48YnBtbmRpOkJQTU5MYWJlbD48ZGM6Qm91bmRzIHg9IjEzNTIiIHk9IjE1OCIgd2lkdGg9Ijc2IiBoZWlnaHQ9IjE0Ii8+PC9icG1uZGk6QlBNTkxhYmVsPjwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93X2NfZGlzbWlzc2VkX2RpIiBicG1uRWxlbWVudD0iRmxvd19jX2Rpc21pc3NlZCI+PGRpOndheXBvaW50IHg9IjEzNDUiIHk9IjI1NSIvPjxkaTp3YXlwb2ludCB4PSIxMzQ1IiB5PSIzNDAiLz48ZGk6d2F5cG9pbnQgeD0iMTQ1MCIgeT0iMzQwIi8+PGJwbW5kaTpCUE1OTGFiZWw+PGRjOkJvdW5kcyB4PSIxMzUwIiB5PSIyOTMiIHdpZHRoPSI1MCIgaGVpZ2h0PSIxNCIvPjwvYnBtbmRpOkJQTU5MYWJlbD48L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd19jNl9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfYzYiPjxkaTp3YXlwb2ludCB4PSIxNjUwIiB5PSIxMjAiLz48ZGk6d2F5cG9pbnQgeD0iMTcyMiIgeT0iMTIwIi8+PC9icG1uZGk6QlBNTkVkZ2U+CiAgICA8L2JwbW5kaTpCUE1OUGxhbmU+CiAgPC9icG1uZGk6QlBNTkRpYWdyYW0+CjwvYnBtbjpkZWZpbml0aW9ucz4K
Key Legal Standards
Burden of proof: The public body must prove exemption by a preponderance of the evidence — the requester does not have to prove the records are public
Attorney fees: If the petitioner “substantially prevails on the merits,” the court shall award reasonable attorney fees and costs from the public body — unless special circumstances make an award unjust
Civil penalties (willful violations): $500–$2,000 per violation; $2,000–$5,000 for second/subsequent violations — paid to the Literary Fund (not the requester)
Record destruction: Up to $100 per record altered or destroyed to avoid FOIA (§ 2.2-3714.B)
Denial is not required to sue: A single instance of denial is sufficient; failure to respond is deemed a denial
Virginia FOIA Advisory Council
The Virginia FOIA Advisory Council provides free advisory opinions on FOIA questions. A public body that relies in good faith on a FOIA Council opinion may have reduced liability even if the court disagrees (§ 2.2-3715). Cities are encouraged to seek advisory opinions for novel or close-call exemption questions.
VII. SpiffWorkflow Implementation Guide
This section maps the FOIA process to a production SpiffWorkflow deployment for the City of Charlottesville.
Process Hierarchy
foia_master_process (Call Activity / Parent)
├── foia_core_process ← Requester-facing intake and response
│ └── foia_internal_process ← Called subprocess for staff handling
├── foia_meetings_process ← Recurring timer-based meeting compliance
└── foia_court_process ← Triggered if enforcement escalation occurs
Roles / Lanes → SpiffWorkflow Groups
| BPMN Lane | SpiffWorkflow Group | Members |
| Requester | foia-requester | Any authenticated citizen / anonymous |
| FOIA Officer | foia-officer | City Attorney's Office staff |
| Department Custodian | foia-custodian | Records-holding dept. staff (per routing) |
| City Attorney | foia-attorney | City Attorney, Deputy City Attorneys |
| Approver / Supervisor | foia-supervisor | City Attorney or designee for high-risk denials |
| Court Liaison | foia-court | City Attorney litigation staff |
Key Service Tasks
| Task | SpiffWorkflow Connector | Notes |
| Log request, assign ID | records-management-api | POST to city records system; return requestid |
| Send acknowledgement email | email-service | Template: foia-ack.html; include requestid + 5-day deadline date |
| Notify of cost estimate | email-service | Template: foia-cost-estimate.html; toll clock until response |
| Post meeting notice | cms-api | Push to city website calendar 3+ days before meeting |
| Publish minutes | cms-api | Upload PDF; trigger within 3 working days of meeting |
| Deadline alerts | timer-service | Day 3: warning; Day 5: escalation to supervisor; Day 12: final deadline |
| DMN — exemption check | camunda-dmn | foia-exemptions.dmn table; input: recordtype, casestatus; output: disposition |
| Audit log entry | audit-log-api | Log every decision with user, timestamp, rationale, code citation |
foia-request-schema.json (Requester Task):
{
"title": "FOIA Records Request",
"type": "object",
"required": ["requester_name", "requester_address", "record_description"],
"properties": {
"requester_name": { "type": "string", "title": "Full Name" },
"requester_address": { "type": "string", "title": "Legal Address" },
"requester_email": { "type": "string", "format": "email", "title": "Email (for electronic delivery)" },
"record_description": { "type": "string", "title": "Description of Records Requested (be specific — date range, type, subject)" },
"preferred_format": { "type": "string", "enum": ["electronic", "paper_copies", "inspection"], "title": "Preferred Delivery Format" },
"department_known": { "type": "string", "title": "Department / Office Believed to Hold Records (if known)" }
}
}
foia-intake-schema.json (FOIA Officer Task):
{
"title": "FOIA Request Intake",
"type": "object",
"required": ["request_id", "receipt_date", "channel", "routed_to"],
"properties": {
"request_id": { "type": "string", "title": "Request ID (auto-generated)" },
"receipt_date": { "type": "string", "format": "date", "title": "Date Received" },
"deadline_date": { "type": "string", "format": "date", "title": "5-Day Deadline Date (auto-calculated)" },
"channel": { "type": "string", "enum": ["online", "mail", "fax", "in_person"], "title": "Submission Channel" },
"routed_to": { "type": "array", "items": { "type": "string" }, "title": "Departments Routed To" },
"cost_estimate": { "type": "number", "title": "Estimated Cost ($)" },
"notes": { "type": "string", "title": "Internal Notes" }
}
}
foia-response-schema.json (Response Task):
{
"title": "FOIA Response Decision",
"type": "object",
"required": ["response_type", "response_date"],
"properties": {
"response_type": {
"type": "string",
"enum": ["full_disclosure", "partial_with_redactions", "fully_withheld", "not_found", "extension"],
"title": "Response Type"
},
"response_date": { "type": "string", "format": "date", "title": "Date of Response" },
"exemptions_cited": {
"type": "array",
"title": "Exemptions Cited",
"items": {
"type": "object",
"properties": {
"record_category": { "type": "string" },
"code_section": { "type": "string" },
"rationale": { "type": "string" }
}
}
},
"fees_charged": { "type": "number", "title": "Fees Charged ($)" },
"delivery_method": { "type": "string", "enum": ["electronic", "paper", "inspection"], "title": "Delivery Method" }
}
}
DMN: Exemption Decision Table (foia-exemptions.dmn)
| recordtype ^ casestatus | requestertype ^ Output: disposition ^ Output: citesection | | | | |
| personnelrecord | * | * | redactorwithhold | § 2.2-3705.1(1) |
| legaladvice | * | * | withhold | § 2.2-3705.1(2) | |
| workproduct | activelitigation | * | withhold | § 2.2-3705.1(3) | | |
| lawenforcementinvestigative | active | * | withhold | § 2.2-3706.1 | |
| lawenforcementinvestigative | closed | * | disclose | — | |
| propertyappraisal | pretransaction | * | withhold | § 2.2-3705.1(8) | | |
| propertyappraisal | posttransaction | * | disclose | — | | |
| procurement | activebid | * | withhold | § 2.2-3705.1(12) |
| procurement | awarded | * | disclose | — |
| financialaccount | * | * | redactaccountnumbers | § 2.2-3705.1(13) |
| generalcorrespondence | * | * | disclose | — |
| salaryrecords | * | * | disclose | § 2.2-3705.1(1) — salary always public | |
Deadline Enforcement (Timer Events)
In SpiffWorkflow, attach Boundary Timer Events to the FOIA Officer's review task:
Day 3 timer: Send internal reminder to FOIA Officer: “Request #
request_id due in 2 working days”
Day 5 timer (non-interrupting → interrupting): If response not complete, escalate to supervisor; trigger foia-supervisor lane task: “Review and approve extension or response”
Day 12 timer (extension deadline): Hard stop — court-enforceable deadline; log violation risk flag
30-day timer (cost estimate no-response): If requester does not respond to cost estimate within 30 days, mark request withdrawn (§ 2.2-3704.F)
VIII. Charlottesville-Specific Notes
FOIA and Constitutional Officers
Each constitutional officer maintains their own FOIA program. Records held solely by the Commonwealth's Attorney, Sheriff, Circuit Court Clerk, Commissioner of Revenue, or City Treasurer must be requested from those offices directly — not from the City Attorney.
Police Records
Requests for Charlottesville Police Department records are governed by § 2.2-3706 (general law enforcement records) and § 2.2-3706.1 (criminal incident / investigative files). The standard 5-day clock applies, but for criminal investigative files the extension is 60 working days (not 7). Incident reports and certain 911 audio are generally disclosable once cases are closed.
Email and Electronic Records
City email on city systems is a public record. Text messages on city-issued devices are public records. Personal devices used for city business may contain public records. SpiffWorkflow should include a legal hold / preservation notice sub-process for requests that may implicate active litigation.
Records Retention
Virginia's Library of Virginia General Schedule GS-20 governs city records retention. FOIA responses and the associated request files must be retained for a minimum period. SpiffWorkflow's audit log must align with these schedules — records of FOIA requests themselves are public records.
Reference Links