Table of Contents

FOIA — Freedom of Information Act

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)

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:

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:

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:


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

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:

  1. Identify with reasonable particularity the subject matter of withheld portions
  2. Cite the specific Code section authorizing each withholding (not just “attorney-client privilege” — must cite § 2.2-3705.1(2), etc.)
  3. 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:


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:

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


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

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

Form Schemas

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:


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.