From 073642cf877e58b40ada1e7d1979672e97a5bc6e Mon Sep 17 00:00:00 2001 From: samglover Date: Tue, 9 Jul 2024 19:49:07 -0500 Subject: [PATCH 01/36] Create beginner's guide, workflow, and resources pages --- .../interview_building_beginners_guide.md | 57 +++++++++++++++++++ .../interview_building_workflow.md | 36 ++++++++++++ sidebars.js | 6 +- 3 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 docs/get_started/interview_building_beginners_guide.md create mode 100644 docs/get_started/interview_building_workflow.md diff --git a/docs/get_started/interview_building_beginners_guide.md b/docs/get_started/interview_building_beginners_guide.md new file mode 100644 index 000000000..f52e89207 --- /dev/null +++ b/docs/get_started/interview_building_beginners_guide.md @@ -0,0 +1,57 @@ +--- +id: interview_building_beginners_guide +title: Learn to Build Docassemble Interviews +sidebar_label: Beginner's Guide +slug: /get_started/interview_building_beginners_guide +--- + +If you have never used Docassemble before, you are on the right page! We take every beginner through the same interview builder orientation steps before they start turning their first form into a guided interview. These steps will get you up and running + +1. First, we will introduce you to Docassemble with the Hello, World exercise. +2. Second, we will demonstrate the Weaver, a Document Assembly Line tool for quickly turning prepared forms into draft Docassemble interviews. +3. Then you will be ready to start working on your first form! + +After you have run your first form through the Weaver, we will introduce you to the interview building workflow, including working with GitHub. + +## Initial Onboarding + +### 1. Do the Hello, World Exercise + +In his Legal Tech Class, Quinten Steenhuis introduces Docassemble with a [short "Hello, World" exercise](https://suffolklitlab.org/legal-tech-class/docs/classes/docacon-2020/hello-world). This introductory exercise is a great way to demystify Docassemble and see what it's like to build a simple interview—by actually doing it. + +:::info +In order to do this exercise you will need access to a Docassemble playground. If you don't have that and you don't want to set up your own Docassemble development server, register an account on the [LIT Lab Docassemble development server](https://apps-dev.suffolklitlab.org/user/register), then [email us](mailto:litlab@suffolk.edu) and ask for developer privileges. +::: + +Once you have successfully completed the Hello, World exercise you might want to continue with the next few lessons in the Legal Tech Class. When you are finished, move on to the next step: learning about the Weaver. + +### 2. Watch the Weaver Demo + +The Weaver is a Document Assembly Line time-saving tool. It makes it much easier and faster to get from a PDF or DOCX form to a draft Docassemble interview. The best way to explain it is to see it in action: + + +If you want to skip the context and get right to the demo, it starts at about 26:35. + +The interview generated by the Weaver is not a finished interview. It is a starting point intended for further editing. + +### 3. Start Working on Your First Form! + +You probably already have an idea of the first form you want to work on, so get it out, go to the [Interview Building Workflow page](interview_building_workflow), and get started! + +:::tip +You will encounter problems. To get help solving them, [join the Document Assembly Line community](get_started#join-the-community) and take advantage of the available [interview builder resources](get_started/interview_builder_resources). +::: + +## Later + +### GitHub Workflow + +* Working with branches in the playground; playground projects +* Submitting PRs +* Resolving merge conflicts + +## More Training + +If you've completed the above you are ready to get started building your first interview. But if you want a more in-depth beginner training, check out this 3.5–hour beginner training from [Docacon 2020](https://docacon.com/2020/index.html): + + \ No newline at end of file diff --git a/docs/get_started/interview_building_workflow.md b/docs/get_started/interview_building_workflow.md new file mode 100644 index 000000000..0749b3eda --- /dev/null +++ b/docs/get_started/interview_building_workflow.md @@ -0,0 +1,36 @@ +--- +id: interview_building_workflow +title: Interview Building Workflow +sidebar_label: Workflow +slug: /get_started/interview_building_workflow +--- + + + +This pages walks you through the interview-building workflow we have developed for building interviews with students. It includes some brief onboarding exercises that will help you if this is your first time building a Docassemble interview. + +:::tip +If you are new to building Docassemble interviews and you have not gone through the [orientation steps](interview_builder_orientation), it's a good idea to take an hour or so to do them before you continue with this page. +::: + +### 2. Prepare the Court Form for the Weaver + +Before you can use the Weaver you must prepare each PDF or DOCX document with fields and labels for the Weaver to recognize. These pages will help: + +* ["Weaving" your form into a draft interview](../generating_code) +* [Working with PDF Files](../pdfs) +* [Working with DOCX Files](../docx) +* [Field labels to use in template files](../label_variables) + +If you don't have much experience with the Weaver, ask someone with more experience to review your prepared documents before you run them through. + +While you prepare your document(s) for the Weaver, get set up in GitHub and start using our project template. + +### 3. Use Our GitHub Project Template + +https://github.com/orgs/SuffolkLITLab/projects/22 \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 6ae1983cb..234bbda62 100644 --- a/sidebars.js +++ b/sidebars.js @@ -5,9 +5,9 @@ module.exports = { 'get_started/intro', 'get_started/al_project_architecture', 'get_started/installation', - // 'get_started/interview_builder_onboarding', - // 'get_started/interview_building_workflow', - // 'get_started/interview_building_resources', + 'get_started/interview_building_beginners_guide', + 'get_started/interview_building_workflow', + 'get_started/interview_building_resources', { type: 'category', label: 'Setting up your team', From 0bebff4bc2994d743431e3195463277d25a722bc Mon Sep 17 00:00:00 2001 From: samglover Date: Wed, 10 Jul 2024 08:14:32 -0500 Subject: [PATCH 02/36] Change sidebar label --- docs/get_started/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get_started/intro.md b/docs/get_started/intro.md index de9b3f399..765040a89 100644 --- a/docs/get_started/intro.md +++ b/docs/get_started/intro.md @@ -1,7 +1,7 @@ --- id: intro title: Introduction to the Document Assembly Line -sidebar_label: Intro +sidebar_label: Introduction slug: /get_started --- From 33901988642574a8773afff42762b78437884f5f Mon Sep 17 00:00:00 2001 From: samglover Date: Wed, 10 Jul 2024 08:37:45 -0500 Subject: [PATCH 03/36] Change sidebar label --- docs/get_started/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get_started/installation.md b/docs/get_started/installation.md index eddfa0de7..882616502 100644 --- a/docs/get_started/installation.md +++ b/docs/get_started/installation.md @@ -1,7 +1,7 @@ --- id: installation title: Installing the Document Assembly Line -sidebar_label: Installation +sidebar_label: Install the Assembly Line slug: /get_started/installation --- From eac8eb5874667df1d600a3354b2cf248cd8e001e Mon Sep 17 00:00:00 2001 From: samglover Date: Wed, 10 Jul 2024 08:49:29 -0500 Subject: [PATCH 04/36] Move planning and working with teams pages; update sidebar and links --- ...erview_building_workflow.md => basic_workflow.md} | 12 ++++++------ ...uilding_beginners_guide.md => beginners_guide.md} | 8 ++++---- docs/{ => get_started}/plan_interview.md | 2 +- ...{interview_building_resources.md => resources.md} | 4 ++-- .../{authoring => get_started}/working_with_teams.md | 2 +- docs/weaver_overview.md | 2 +- docusaurus.config.js | 8 ++++++++ sidebars.js | 10 +++++----- 8 files changed, 28 insertions(+), 20 deletions(-) rename docs/get_started/{interview_building_workflow.md => basic_workflow.md} (66%) rename docs/get_started/{interview_building_beginners_guide.md => beginners_guide.md} (91%) rename docs/{ => get_started}/plan_interview.md (99%) rename docs/get_started/{interview_building_resources.md => resources.md} (97%) rename docs/{authoring => get_started}/working_with_teams.md (99%) diff --git a/docs/get_started/interview_building_workflow.md b/docs/get_started/basic_workflow.md similarity index 66% rename from docs/get_started/interview_building_workflow.md rename to docs/get_started/basic_workflow.md index 0749b3eda..df48cd16c 100644 --- a/docs/get_started/interview_building_workflow.md +++ b/docs/get_started/basic_workflow.md @@ -1,8 +1,8 @@ --- -id: interview_building_workflow -title: Interview Building Workflow -sidebar_label: Workflow -slug: /get_started/interview_building_workflow +id: basic_workflow +title: Basic Interview Building Workflow +sidebar_label: Basic Workflow +slug: /get_started/basic_workflow --- -This pages walks you through the interview-building workflow we have developed for building interviews with students. It includes some brief onboarding exercises that will help you if this is your first time building a Docassemble interview. +This page walks you through the interview-building workflow we have developed for building interviews with students. It includes some brief onboarding exercises that will help you if this is your first time building a Docassemble interview. :::tip -If you are new to building Docassemble interviews and you have not gone through the [orientation steps](interview_builder_orientation), it's a good idea to take an hour or so to do them before you continue with this page. +If you are new to building Docassemble interviews and you have not gone through the [beginner's guide](./beginners_guide.md), it's a good idea to take an hour or so to do them before you continue with this page. ::: ### 2. Prepare the Court Form for the Weaver diff --git a/docs/get_started/interview_building_beginners_guide.md b/docs/get_started/beginners_guide.md similarity index 91% rename from docs/get_started/interview_building_beginners_guide.md rename to docs/get_started/beginners_guide.md index f52e89207..5b8ece036 100644 --- a/docs/get_started/interview_building_beginners_guide.md +++ b/docs/get_started/beginners_guide.md @@ -1,8 +1,8 @@ --- -id: interview_building_beginners_guide +id: beginners_guide title: Learn to Build Docassemble Interviews sidebar_label: Beginner's Guide -slug: /get_started/interview_building_beginners_guide +slug: /get_started/beginners_guide --- If you have never used Docassemble before, you are on the right page! We take every beginner through the same interview builder orientation steps before they start turning their first form into a guided interview. These steps will get you up and running @@ -36,10 +36,10 @@ The interview generated by the Weaver is not a finished interview. It is a start ### 3. Start Working on Your First Form! -You probably already have an idea of the first form you want to work on, so get it out, go to the [Interview Building Workflow page](interview_building_workflow), and get started! +You probably already have an idea of the first form you want to work on, so get it out, go to the [Interview Building Workflow page](basic_workflow.md), and get started! :::tip -You will encounter problems. To get help solving them, [join the Document Assembly Line community](get_started#join-the-community) and take advantage of the available [interview builder resources](get_started/interview_builder_resources). +You will encounter problems. To get help solving them, [join the Document Assembly Line community](intro.md#join-the-community) and take advantage of the available [interview building resources](resources). ::: ## Later diff --git a/docs/plan_interview.md b/docs/get_started/plan_interview.md similarity index 99% rename from docs/plan_interview.md rename to docs/get_started/plan_interview.md index 0ab37abd5..0b9d14706 100644 --- a/docs/plan_interview.md +++ b/docs/get_started/plan_interview.md @@ -2,7 +2,7 @@ id: plan_interview title: Planning your interview sidebar_label: Planning your interview -slug: /planning +slug: /get_started/planning --- ## Planning and automating your first interview with the Assembly Line Framework diff --git a/docs/get_started/interview_building_resources.md b/docs/get_started/resources.md similarity index 97% rename from docs/get_started/interview_building_resources.md rename to docs/get_started/resources.md index 5a1a45522..6a7f6b1b0 100644 --- a/docs/get_started/interview_building_resources.md +++ b/docs/get_started/resources.md @@ -1,8 +1,8 @@ --- -id: interview_building_resources +id: resources title: Interview Building Resources sidebar_label: Resources -slug: /get_started/interview_building_resources +slug: /get_started/resources --- As you are building interviews, use these resources to find answers to your questions, solve problems you run into, and get help. diff --git a/docs/authoring/working_with_teams.md b/docs/get_started/working_with_teams.md similarity index 99% rename from docs/authoring/working_with_teams.md rename to docs/get_started/working_with_teams.md index 475474a6c..29e075eea 100644 --- a/docs/authoring/working_with_teams.md +++ b/docs/get_started/working_with_teams.md @@ -2,7 +2,7 @@ id: working_with_teams title: Working with teams sidebar_label: Working with teams -slug: /authoring/working_with_teams +slug: /get_started/working_with_teams --- ## Getting the project started diff --git a/docs/weaver_overview.md b/docs/weaver_overview.md index dac933c8a..e9b4c120b 100644 --- a/docs/weaver_overview.md +++ b/docs/weaver_overview.md @@ -53,7 +53,7 @@ to continue editing your code. The steps that the Weaver will walk you through are as follows: 1. validate the labels and your template file -1. add some basic information about your form (follow the [planning your interview](plan_interview.md) to get this ready) +1. add some basic information about your form (follow the [planning your interview](./get_started/plan_interview.md) to get this ready) 1. add on-screen prompts for each labeled field 1. choose a datatype for each labeled field (for example: text, number, date) 1. organize the fields onto individual screens with headings and optional additional text diff --git a/docusaurus.config.js b/docusaurus.config.js index 6a8c3fcb0..1a8c5a4b1 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -124,6 +124,14 @@ module.exports = { from: '/docs/bootcamp', to: '/docs/archive/bootcamp' }, + { + from: '/docs/plan_interview', + to: '/docs/get_started/planning' + }, + { + from: '/docs/authoring/working_with_teams', + to: '/docs/get_started/working_with_teams' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index 234bbda62..1a848b3b7 100644 --- a/sidebars.js +++ b/sidebars.js @@ -5,9 +5,11 @@ module.exports = { 'get_started/intro', 'get_started/al_project_architecture', 'get_started/installation', - 'get_started/interview_building_beginners_guide', - 'get_started/interview_building_workflow', - 'get_started/interview_building_resources', + 'get_started/beginners_guide', + 'get_started/basic_workflow', + 'get_started/plan_interview', + 'get_started/working_with_teams', + 'get_started/resources', { type: 'category', label: 'Setting up your team', @@ -35,8 +37,6 @@ module.exports = { type: 'category', label: 'Authoring interviews', items: [ - 'plan_interview', - 'authoring/working_with_teams', 'pdf_templates', 'docx_templates', 'authoring/dynamic_phrasing_based_on_values', From 81d66ecab23b63d24e0ea18f7252b148196d762f Mon Sep 17 00:00:00 2001 From: samglover Date: Wed, 10 Jul 2024 13:27:18 -0500 Subject: [PATCH 05/36] Draft beginner's guide --- docs/get_started/beginners_guide.md | 65 +++++++++++++++++------------ sidebars.js | 2 +- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/docs/get_started/beginners_guide.md b/docs/get_started/beginners_guide.md index 5b8ece036..cb351fc2a 100644 --- a/docs/get_started/beginners_guide.md +++ b/docs/get_started/beginners_guide.md @@ -5,53 +5,64 @@ sidebar_label: Beginner's Guide slug: /get_started/beginners_guide --- -If you have never used Docassemble before, you are on the right page! We take every beginner through the same interview builder orientation steps before they start turning their first form into a guided interview. These steps will get you up and running +**If you have never used Docassemble before, you are on the right page!** This is how the [LIT Lab](https://suffolklitlab.org) teaches people to turn their first court form into a Docassemble guided interview. -1. First, we will introduce you to Docassemble with the Hello, World exercise. -2. Second, we will demonstrate the Weaver, a Document Assembly Line tool for quickly turning prepared forms into draft Docassemble interviews. -3. Then you will be ready to start working on your first form! +If you follow this guide you will be learning by doing. We want you to get started building your first interview as quickly as possible, and then the Document Assembly Line community can help you keep moving forward. -After you have run your first form through the Weaver, we will introduce you to the interview building workflow, including working with GitHub. +Here are the steps: -## Initial Onboarding +1. [Do the Hello, World exercise](#do-the-hello-world-exercise) for a friendly introduction to Docassemble +2. [Watch a demonstration of the Weaver](#watch-a-demonstration-of-the-weaver), a Document Assembly Line tool for quickly turning prepared forms into draft Docassemble interviews +3. [Review the interview-building workflow](#review-the-interview-building-workflow) +4. [Join the Document Assembly Line community](#join-the-document-assembly-line-community) +5. [Start building your first interview!](#start-building-your-first-interview) -### 1. Do the Hello, World Exercise +:::tip +In order to build interviews you will need access to a [Docassemble playground](https://docassemble.org/docs/playground.html). But if you don't have one you can use ours! Register an account on the [LIT Lab Docassemble development server](https://apps-dev.suffolklitlab.org/user/register), then [email us](mailto:litlab@suffolk.edu) and ask for developer privileges. +::: + +## Do the Hello, World Exercise In his Legal Tech Class, Quinten Steenhuis introduces Docassemble with a [short "Hello, World" exercise](https://suffolklitlab.org/legal-tech-class/docs/classes/docacon-2020/hello-world). This introductory exercise is a great way to demystify Docassemble and see what it's like to build a simple interview—by actually doing it. -:::info -In order to do this exercise you will need access to a Docassemble playground. If you don't have that and you don't want to set up your own Docassemble development server, register an account on the [LIT Lab Docassemble development server](https://apps-dev.suffolklitlab.org/user/register), then [email us](mailto:litlab@suffolk.edu) and ask for developer privileges. -::: +**➡️ [Go to the Hello, World exercise.](https://suffolklitlab.org/legal-tech-class/docs/classes/docacon-2020/hello-world)** + +Once you have successfully completed the Hello, World exercise you might want to continue with the next few lessons in the Legal Tech Class to learn more about building interviews in Docassemble. + +When you have finished the Hello, World exercise, move on to the next step: learning about the Weaver. -Once you have successfully completed the Hello, World exercise you might want to continue with the next few lessons in the Legal Tech Class. When you are finished, move on to the next step: learning about the Weaver. +## Watch a Demonstration of the Weaver -### 2. Watch the Weaver Demo +The Weaver is a Document Assembly Line tool that generates a draft Docassemble interview from a prepared PDF or DOCX form so you don't have to start from scratch. The best way to explain it is to see it in action: -The Weaver is a Document Assembly Line time-saving tool. It makes it much easier and faster to get from a PDF or DOCX form to a draft Docassemble interview. The best way to explain it is to see it in action: + - -If you want to skip the context and get right to the demo, it starts at about 26:35. +(The video should start playing from 26:35, which is when the demo starts.) The interview generated by the Weaver is not a finished interview. It is a starting point intended for further editing. -### 3. Start Working on Your First Form! +Now you are probably itching to start building your first interview! But before you do, take a moment to review the interview-building workflow and join the Document Assembly Line community. -You probably already have an idea of the first form you want to work on, so get it out, go to the [Interview Building Workflow page](basic_workflow.md), and get started! +## Review the Interview-Building Workflow -:::tip -You will encounter problems. To get help solving them, [join the Document Assembly Line community](intro.md#join-the-community) and take advantage of the available [interview building resources](resources). -::: +Building a successful interview involves more than just coding in the Docassemble playground. You'll also need to consider things like project management, [working with a team](working_with_teams.md), [requirements](working_with_teams.md#understanding-the-projects-users-and-intended-purpose), [usability](../question_style_overview.md), [testing](/alkiln/intro.mdx), etc. + +**➡️ [Review the interview-building workflow.](workflow.md)** + +## Join the Document Assembly Line Community + +You know enough to get started, but you will need help. The Document Assembly Line community meets weekly on Zoom for live support, and coding help is available 24/7 in our Microsoft Teams forum. + +**➡️ [Email us to join the Document Assembly Line community.](mailto:litlab@suffolk.edu)** -## Later +You can also take advantage of other [interview building resources and documentation](resources.md). -### GitHub Workflow +## Start Building Your First Interview! -* Working with branches in the playground; playground projects -* Submitting PRs -* Resolving merge conflicts +You probably already have an idea of the first form you want to work on, so pull up the [workflow](workflow.md) and get started! -## More Training +## Learn More If you've completed the above you are ready to get started building your first interview. But if you want a more in-depth beginner training, check out this 3.5–hour beginner training from [Docacon 2020](https://docacon.com/2020/index.html): - \ No newline at end of file + \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index 1a848b3b7..e459ef8bb 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,7 +6,7 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', - 'get_started/basic_workflow', + 'get_started/workflow', 'get_started/plan_interview', 'get_started/working_with_teams', 'get_started/resources', From fb9237d353529d7fa21c4543b293864478cfe990 Mon Sep 17 00:00:00 2001 From: samglover Date: Wed, 10 Jul 2024 13:27:37 -0500 Subject: [PATCH 06/36] Rename workflow file --- docs/get_started/{basic_workflow.md => workflow.md} | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) rename docs/get_started/{basic_workflow.md => workflow.md} (88%) diff --git a/docs/get_started/basic_workflow.md b/docs/get_started/workflow.md similarity index 88% rename from docs/get_started/basic_workflow.md rename to docs/get_started/workflow.md index df48cd16c..c183b054a 100644 --- a/docs/get_started/basic_workflow.md +++ b/docs/get_started/workflow.md @@ -1,8 +1,8 @@ --- -id: basic_workflow -title: Basic Interview Building Workflow -sidebar_label: Basic Workflow -slug: /get_started/basic_workflow +id: workflow +title: Interview-Building Workflow +sidebar_label: Workflow +slug: /get_started/workflow --- +This page outlines the workflow for building a Docassemble interview based on an existing form. + This page walks you through the interview-building workflow we have developed for building interviews with students. It includes some brief onboarding exercises that will help you if this is your first time building a Docassemble interview. :::tip From 6de28f9d818eea05be3240e39268a83f62aa3f3f Mon Sep 17 00:00:00 2001 From: samglover Date: Wed, 10 Jul 2024 16:37:12 -0500 Subject: [PATCH 07/36] Start outline of the interview project workflow/roadmap page --- docs/get_started/workflow.md | 61 ++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/docs/get_started/workflow.md b/docs/get_started/workflow.md index c183b054a..670a92acc 100644 --- a/docs/get_started/workflow.md +++ b/docs/get_started/workflow.md @@ -6,21 +6,70 @@ slug: /get_started/workflow --- -This page outlines the workflow for building a Docassemble interview based on an existing form. - -This page walks you through the interview-building workflow we have developed for building interviews with students. It includes some brief onboarding exercises that will help you if this is your first time building a Docassemble interview. - :::tip If you are new to building Docassemble interviews and you have not gone through the [beginner's guide](./beginners_guide.md), it's a good idea to take an hour or so to do them before you continue with this page. ::: -### 2. Prepare the Court Form for the Weaver +## First Meeting with Stakeholders + +Meeting goals: + +Overall: define expectations/get on the same page + +* Introduce the development process +* Define roles and responsibilities +* Identify the single decisionmaker <-- most important +* Define the requirements—including things we'll need in the future +* Discuss MVPs and select the maturity model level +* Discuss "change orders"—establish a process for changing the scope of the process +* Identify the source documents +* What does success look like? How do we measure it? +* How do we know if this project isn't going to work? Failure states +* Schedule a regular check-in with the decisionmaker to keep them, ask and answer questions, and get decisions when you need them to move forward. + +How does this look different when you are your own stakeholder? (All this stuff still needs to happen!) + +## Building the Interview + +What the building workflow/cadence/whatever looks like + +* Coding (incl. collaboration—link to GH workflow) +* Getting support: community meetings/posting questions to DAL Teams/Slack +* Testing +* Regular stakeholder check-ins + + +## Get Feedback on the Draft Interview + +## Get a Go/No-Go Decision + +## Launch the Interview + + +============ + +## Prepare the Court Form for the Weaver Before you can use the Weaver you must prepare each PDF or DOCX document with fields and labels for the Weaver to recognize. These pages will help: @@ -33,6 +82,6 @@ If you don't have much experience with the Weaver, ask someone with more experie While you prepare your document(s) for the Weaver, get set up in GitHub and start using our project template. -### 3. Use Our GitHub Project Template +## Use Our GitHub Project Template https://github.com/orgs/SuffolkLITLab/projects/22 \ No newline at end of file From 17ba389148cc29ee54869c2fba1bb5f9d6258931 Mon Sep 17 00:00:00 2001 From: samglover Date: Thu, 11 Jul 2024 08:48:11 -0500 Subject: [PATCH 08/36] Rename file --- docs/get_started/beginners_guide.md | 8 ++--- ...rkflow.md => interview_project_roadmap.md} | 30 +++++++------------ sidebars.js | 2 +- 3 files changed, 15 insertions(+), 25 deletions(-) rename docs/get_started/{workflow.md => interview_project_roadmap.md} (79%) diff --git a/docs/get_started/beginners_guide.md b/docs/get_started/beginners_guide.md index cb351fc2a..9c129e43b 100644 --- a/docs/get_started/beginners_guide.md +++ b/docs/get_started/beginners_guide.md @@ -13,7 +13,7 @@ Here are the steps: 1. [Do the Hello, World exercise](#do-the-hello-world-exercise) for a friendly introduction to Docassemble 2. [Watch a demonstration of the Weaver](#watch-a-demonstration-of-the-weaver), a Document Assembly Line tool for quickly turning prepared forms into draft Docassemble interviews -3. [Review the interview-building workflow](#review-the-interview-building-workflow) +3. [Review the interview project roadmap](#review-the-interview-building-workflow) 4. [Join the Document Assembly Line community](#join-the-document-assembly-line-community) 5. [Start building your first interview!](#start-building-your-first-interview) @@ -43,11 +43,11 @@ The interview generated by the Weaver is not a finished interview. It is a start Now you are probably itching to start building your first interview! But before you do, take a moment to review the interview-building workflow and join the Document Assembly Line community. -## Review the Interview-Building Workflow +## Review the Interview Project Roadmap Building a successful interview involves more than just coding in the Docassemble playground. You'll also need to consider things like project management, [working with a team](working_with_teams.md), [requirements](working_with_teams.md#understanding-the-projects-users-and-intended-purpose), [usability](../question_style_overview.md), [testing](/alkiln/intro.mdx), etc. -**➡️ [Review the interview-building workflow.](workflow.md)** +**➡️ [Review the interview-building workflow.](interview_project_roadmap.md)** ## Join the Document Assembly Line Community @@ -59,7 +59,7 @@ You can also take advantage of other [interview building resources and documenta ## Start Building Your First Interview! -You probably already have an idea of the first form you want to work on, so pull up the [workflow](workflow.md) and get started! +You probably already have an idea of the first form you want to work on, so pull up the [workflow](interview_project_roadmap.md) and get started! ## Learn More diff --git a/docs/get_started/workflow.md b/docs/get_started/interview_project_roadmap.md similarity index 79% rename from docs/get_started/workflow.md rename to docs/get_started/interview_project_roadmap.md index 670a92acc..898fc7da0 100644 --- a/docs/get_started/workflow.md +++ b/docs/get_started/interview_project_roadmap.md @@ -1,25 +1,15 @@ --- -id: workflow -title: Interview-Building Workflow -sidebar_label: Workflow -slug: /get_started/workflow +id: interview_project_roadmap +title: Interview Project Roadmap +sidebar_label: Interview Project Roadmap +slug: /get_started/interview_project_roadmap --- +Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview project—whether it is your first or fiftieth—this page will guide you through the stages of an interview-building project. + -:::tip -If you are new to building Docassemble interviews and you have not gone through the [beginner's guide](./beginners_guide.md), it's a good idea to take an hour or so to do them before you continue with this page. -::: +## Identify Roles + + ## First Meeting with Stakeholders @@ -39,7 +29,7 @@ Overall: define expectations/get on the same page * Introduce the development process * Define roles and responsibilities -* Identify the single decisionmaker <-- most important +* Identify the single decisionmaker (most important) * Define the requirements—including things we'll need in the future * Discuss MVPs and select the maturity model level * Discuss "change orders"—establish a process for changing the scope of the process diff --git a/sidebars.js b/sidebars.js index e459ef8bb..d76476ea9 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,7 +6,7 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', - 'get_started/workflow', + 'get_started/interview_project_roadmap', 'get_started/plan_interview', 'get_started/working_with_teams', 'get_started/resources', From 6d5b35a4ffcf825698cb2f2826b99e448e453ffe Mon Sep 17 00:00:00 2001 From: samglover Date: Thu, 11 Jul 2024 20:03:45 -0500 Subject: [PATCH 09/36] Indentation --- docusaurus.config.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 1a8c5a4b1..35081ec55 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -138,10 +138,11 @@ module.exports = { ], themes: [ [ - require.resolve("@easyops-cn/docusaurus-search-local"), - { - hashed: true, - }], + require.resolve("@easyops-cn/docusaurus-search-local"), + { + hashed: true, + } + ], ], presets: [ [ From 21de8fa748bf069da60ac18b1f67159d076245ec Mon Sep 17 00:00:00 2001 From: samglover Date: Thu, 11 Jul 2024 20:04:03 -0500 Subject: [PATCH 10/36] Updates to draft interview project roadmap page --- .../interview-project-roles-communication.png | Bin 0 -> 270575 bytes docs/get_started/interview_project_roadmap.md | 32 +++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 docs/assets/interview-project-roles-communication.png diff --git a/docs/assets/interview-project-roles-communication.png b/docs/assets/interview-project-roles-communication.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddbcb8c0251600fda519649a47b89fa9425f367 GIT binary patch literal 270575 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 ?{eauGD!Tpta8^ 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

B0(hB@Xn==WgKuNBe`Tj*6lDcpJ9viZC`}# zOFcgZqK+L`;-D=@#)t*D&!jeORI(tiAX@qSOWjoqq_b@&qeB?qjc*fMG0S~1gY#C6 z#%Yy^RkxC-c0W2E{-q~o@3j>!Xp1LZ6d^R97#46;fGHnPeva$7FE3XNL#dDsj!XQ|7+KM*i$i(b9bR%V=L>) z@F2X}Bu=v4Mnv0%Z%){{28{3E>E)22O{}v63Iz-TDQln@#S}Us9y)*fMh`i)JOn%| z5zg=fRdpgPg>ys|b5xbGMPHq)`&b0lV_+gZX(_+DHPe(4%tIV3UY<}|L2!V@`xT?JX3|1?dP9L>MoGhKU_G#fG->BR}o1b39J){Jd;`}fDVY9!6%JzVg zh9u~s>(S{{G>cLO!eB8znsUk)r}&_rBQmiQ2F;cZ!P)&Y4Khfrcscv*dMCXmhTOwp zZhn#P+aRl`D!rnblRf+g+{6Kp=-&p5fJnN8bI|8i%rkeLHeJRRFVXwi`)wFsgm|RX zZLO>tJQTjfxmk2Q#9aBJ&xdD~Zp-M*?^!6fR)dmK>PZP@NKGh8MmE3eWG1 z&NB{IOZ(DtO8wk{FTbRZBAUO|-|gUb=c(IL{I7*nT?7`NQNU|#kFi#@_Vu~{i=gMi zPIbowK4EIv7UEv3ot01Z$H_`Q!t%J2fY@*4aXC5zRo z{2#3HSn`%=H_fs3jVJmi22D{@4Tacg55MP0>?&=<@)GpW?dXBl6UP(V7-BrQI9$0n zu7t_s2A!pn&pBkvRq+y#M#=2MkTu@=MFZnIMIc)wMbGDsp5iqtb^#q$^Ms>>cH?mm zo5i3Wsm8ALICXTj@R+j+FTHRFOQbtALvi`>Uu;Og6q3~D*+9uB9DMZM9KGSA4HVRf zPpyP8XE+%(N3Uk8T$=Pdv9YUQGFJn7R|7`JaDx*_SA1s{e{fKwGR&}|xI1UJT-{;4 z-N$UV*itor9MdsecffNgCr^U9&|>#^y9V-k=sl03h_kjuv3zD9FVz@=o@b>l^AWGx ztCyj%rdFeo4Hh_e`x7@!C~e1?=hG$rP<;Ai;2`T!iyysvJ3^vX29une;QLXHvIoTP%y*P_rwo$Zbjc7DpE(ELgg#G}3x@ndq<3)AN} zCX_eR=2ZwL_xpCmscFXv``u)H@NxeHz$J&(npJHH;$+#cW;_I|R~lEESnRuF!{g-Y z9l7G5&euZ+F29>|NjojAj7CL#wDhMt!0(Htlk=qoFDBfP$(V8NiRGaNCrm(yf@R&h zJQ#3Dm!8V1sII1H)P5P%o(4wKLbl&;7}Ycv7X#NTt^}x~t|>0Fppb?VM7zddBqcp@ z^0w~*0~H_eV=#4j?tG8)EUB1`luK0tEoEH*+sxjn;{lt#Fv2b!L6^v8B+G!#EjLFP z^^#}b!J&fvY09ef-Czj0)?yTQvck^<_|ag}Fj2D6VcIf`K|>y&vr6ir8N0VzL_w!W z4`7`kf-AAG%qFG|%z<~GfqxK7ASh&a@b5BL!1qeqW}5f?VM%MUgsxBj^x^z`wovkp z-?Z(0c}0m*W=2wxZ^ul|aIDxSCYma4eH~6X0LgJC)Qf#iMavS1xFV%R8#GhX^7Co! zXm5WdO&lJrrorCXo=Bbw6SYNmX{)bn#eeIc35)@*vj);&y!Mlxkg>&s{L=VojAn=W z+>e{#VjCLFzj*ka4Qaw*Cu$h*!v(Xm14I2iz>qtpCPtqs1H_a$m23fXS=BfY6;k$vIJ3E~0)Eaz-U z@!|Rn>Nb45I~X~vrgYIZsOp+nTGd(mUa~EjKEGWq>w$*Lbp5l#|iKpdlm5&QIa~Rxj73)wUH#V1i{fL<9WADw75QFQ0pa_5kt^kOw4~25S!GQ?w+{C3S~7Mvmy1LQxkdJ70s{V=sOUu`JxJNy;IHE4N)~55rJXOpYK)xNgyk$jU}oS1KP%C0)Dh{`45G zM4tcuE|{T;m-PSL1*2R6NaX9Weg3IR9|x>#)5s6W7#EZG*;ymguZx2OBzhKIJ5(L| zszVGTwBMfM;HQ;Kq3c4$au1e;rW=)ZBX{X8BqNi2z0vGH*Ok@#(3e1T!Tsn6)E#(l z1`qi~#T-C8%&Up8Hi0Y?N|C` z_^7?qFboUIJ>7ttYkPRW2LMm9!?3!_5z#zVb3ParbKHn9jik0OOK0g+}qDaz7gHP32x7shXxEh`I5a>rj3uI$Vh7+8QdRYp3Y&skS z0yu{CaBSHbL)-$_p#PT3*&N2zT@R@@8&z+>#uo+v+H~LEVHPG9u$@jdT=kufX22Rg zK7n8`;*i#VTXc?Ru{vIa-97ir@$vTiqg2oG{9c`ov$00GXe@pZ6X>{0l}L->9IOXA zx;wxAe+YZasJfaZT9gnxkRU;Wy9Kx4A-KD{yITmB;O_435Zv88xVyW%y|u~tj=X!v zdu!|;fw4pPs-9gnYj$;an32PtZ@01QZ96n;)4467mT7{#C|x8!sa`=E2fh-yTr(s_ ztm~Sz9i7C{CmZ;|6jrx3hIii5CqJ?5j~?HYF~H6Ww+ZG@diPi(Vx1tI4%3KRotcKj zhL&DeR=4xwch?hnOS55^mll|m7VLQlMx>Qd(`;^&Q-}sgk^VkaK|-!-{A)|?c&{X{ zf~^p58*DOLGK14?XiZ%^G~zQwG2!^bTN-RWYi~8TW@N+5pZI+2V#2xe9WtR=2*14l z7)Nj(4?bZ2a>phhv>Ikj{_=acP{Or$4O+;#q*vv@#y#6CLnoUayB)BxEb(X5K8kWF z>J~nY+mLd`$Uy$rxXTY=(=@n2zHK;j=Mb(kHCUJxtHO3vW5IK%{C(@(V!^{2W%q}c zMl-d@oIvf_hE$b?M%M=O9pnb7WO06e-{7De`KE4!Kc}=__wus6)FM?;@!`WaH9N-k z!iecyyD*;nS-Vjl^qYA20`J{cC=ZXjss1R^uG)8C1=CyQWZcBjYqHR9ebfqn#JhqiYv~qr#upwY&aus>K%Wm zdRQ3Rv7IzMOnCGib3NeJzi9qKPvvyk+%rmbI~)@tx2bN~ICHj#>O2Wr4mcf3V3am| zQ=!PQW?3w3{&CCn{3r4FrhO$(x$je4@{m z*n1ZvK!UJRL?2DiFuYG3IUzJ6L7yRoANau@Il(t#PhS>8=vlZA{rv-x4iE0NKu3%9 zY><#^L^vz*HGhXD=V2g!2f3R=Cm23JF{;5?!nF0RjDNeMD(V`b$&$u-OBV|rDKHsg zvBw#{%WJNWoR-Zj^TQfe&rzwyuW^t5 ztPw$c;*l?F*l+pqBHD!3ZdgqkuEe)J)be=U`24s%_z9-xWbwS2pSu2Hgk$}-LJvbx zSyt7G#~$H_PIn}~jT@gal1 zZ7}nBeWf80GRA)X{@M)j;cTa zJK$r8#LAD0bh8C|A3BBzq}<#;Q%t$PdZNeTWwGRh^%(l(p%VB+_c^pY*bYBHYh-v* ztkU0e^>`|wpE~-umI|{4G=ly400ecav`#V%lhdpB=Y?PRjT?x)_$c&j5AZ*aOQAGr}3N+?O2GON<_@N19(zZ`%9lt&WpfwPI$ex7$0PFGgMjG(?GG zMp76#M7|3+-TwJXs6(=a>a^luB>se}nwYdMK?!SF_pHRlwFHy`1ZzK%y*!1m9`ivMoQ%(+H z{ZhxF+*m4ki1{WOU%qCF5=L38`90fznEo+=8T=2RpoIZwaOl)8u{3u`A zPE8_2@n=%4Yx#Y?ThLs7&9JA`vw2EU6=kW$o>!g=j;W(J`)I>A2hAnX^`h3o>@-@r zPsz`bcs2A-ExT!1H`(+$?ECDtT*T7%cQQ2Dr4n z!4Vf3N6&YS*U z8BAfef0m+jv}{_i720p@zE{1gA~sq4)9@y0<*hBd7@v_{fr=6xWjZ|slOX+#$0!65 zQq-u$duR6MW0$aI`qiI>?+~Fu=?+83F%Gkcxc1^Vyrc9bfJ%n)(k4;*H;jlI=x7Rk z>rEHK90yn?durZ^`uxgfBquHsWX#YZ-s z{Y1jB7Q+JR7V*Nno=MbR8drw9mVv=Z?4MMtJO;;KbjI);ForXKSeOSgSCJ4XkdIexX^%%@=jifR-$PLyz_UCSR5${9wA>w z_*^;}vWluI^27kJs2xI;rJp%w9L9aUn^JVLYivQ_+`lr-O@kajDv7U}vLaLW_7hOD==4FwXae8w-04k-vb z<}Q3M+N6>z%cWLUCmwy9wii@X-u0%wqG+)}=DMMAP)_!*!Bd0~IVZ56*5E8?7W@wJ zF+4()ut1p;HHcNvGZwUWS?x!OMDw*vStZG8zyl{EhRJH&x%^#7u6;1S1RWa&?7=S? zxJ`#<8dMIK1W4FU#eyK#DnTpdK*aT^eyR&0QK}$r=#V9dL11KCDRIrNeguTQS0Pkf zQROCCo}@7eYl#w008Vw8KBt)WJQ4Dv$i1TXek!*vP9)-mu`#(!DC|fm;Gj*uD;@a}Lp zm|3xTu%Pkt5_YA-aJ_7Y)^ghj>FAh+`Z|)->iOE=03p2P)BS@iD!m_MxbOY6Ty4Hd z8Ikezng8*)+UwPFyQhy4O<}({7m3OfPhw#fDhV|C3N|vcD7H&0Jidkz%VBlzX@CZk zvHV0fR!#2|Cz6SX$tYYeJRlHL58R#-8dvvZ9z~Q{>s$@>&FqJf+uPJw-*k|q_D9El zH_s2lcPo@K3U#}35-yVOF!me=oBc1n-}I{m z>J2i4Z%aZO+Q~?x8S8K4#gUMXYw0;3jmMr7PZtq^)kX}rg#3bSB8!VvEpd3A+U?j9 z%3@K$Q1tsT%SW#jF?~c>AO3r@DR|YRj1-nkXzFPB`;;7%9x*!_XWY);a1oh&*|*Gm z4VpqBDnAwrdDg4+`-LMY(L6F3Jd*jDg{=b0k*}BsI>H>h1&iSNqDAR57UopLqKso- z-DwL}(<#*(jJ9!uL1gMmWz}YCm3~B|0K})Omh$qS+6KIA*zV8uI~Hhm;NMB)badLY zq)OE;b{b*bvG%JLa9y;AsmhvZVnqE<7!J-cU$iT^nq?Z~3B6r$N57dJ|2PbAh$2OH zGb)_e({g_H0jlvdP613j+RTjLIUVuC#3;&(CvoeYZ}#i;%14YdTw}nKA+!WPNi)Xn z!0IzJ+IT8P_tu)HH90rL#8nj(!*JgOs|^ zHY*^qb>vlTC^)h7uqEgv({Ca96kGGEXB^**RZ1; z{hBWT*#prY38hU-^DjU8bk5h%(Mo}89G}Q!fy8xA%R*HZsMEeTZV!>1d^b#(ANSq# zXwz~no?53FbN^@qm182C^@LkxVm$(%SEVcNL|Htdr5$&H1Fg>`NeDt(c;&E|4|B(1 zb+I6>;5OZsQjtJXX}ucD4uY*pfgljKUK%1f({Ph&4^ zwz~@$7|4-IiCc<#MTvF+=_p1pH_d6$C{L?yyDKj3KrwdN%mZlIZ9eWUfM6#HkiC{} zO6E=%86h?rIoJW6W39FImhdbB+nnVgkYq~B;~F+XyQu$iXR7vP{r;2X-O~y53Q%%o z{-U#^R@S^)PR%H94Z+WB$Tmb=Uk8dm0Kxa|6*g%5#zR{@oq#Jr1*SSA4{~U zbn*Hrw~ZTBHnV@DhY`uB%s`qakH0a#OCeglBBZgCJ75=3i(9X*z$Ovl)G^zu@T((0)%fb^|&hy{9FuU(%6|s zVAe1U(JCUsLqru|LbmXk+CQx(Xb4-KnS{h%k6h0;XyfCsZh8IWwUdwlJ}-=ckFE+L zNJ1s)1!fOgy-js(Jjda$=NNeV{@8BS*$3THgKEqTJCDXCLIX8xSTmwh_i{ptq7 zHE}XX26&)0QML^Q{j>{n?tXzLQz#`g-USfX@x3uVn&v2rSbyy3EAL+9nwWGuix1A9 zm7ljaFn{Y3)%_8!Nz-F9;><2Ui;pBCkMjK9rDzpq&b3)Tm|y?A&r>q7;fA9k=YW=v z+*2qNvvE5=$RFauICv#mqN&9>d1QmmSsf~j!&`{oKGuI^XeU6gFtYsC<--^8Gegia zkf%;g!3?)#I#3*me?YBSb(&Vzx_#lS+Z^7m`&qMz4wV8yvOpFEBpVzp+;z^$G0&{n zPi*!_#lU?@8h-EB32Z_#FQ1%Dp1S zw$dEDFgh5D9Wl|?BuakYjBt87B{yKp7=MJ4dog*fWH1&lnJifl-KUzi3jEL`7AHXn zp?oez{kj{Hn~1>oB?$Q&tzYoM37wT`k%p!;W^XkHUl)gt`q0`<%UHAnt9a{?38}K- zn4cgiP?`%n;y5=sw)*p)9|R_RZ$$PvvqsX1FP_w0|5TQ~WopAyzlx#yu5L*wi?z60 zSm?&#fsbKc8L#!w8|3DJ=FczbM}&;a(26TZ9_@$s{g$RVRa*s?Z#QX_J4QIW_2Fn3 zVq<3{!QrZ`^u=|<&n6ok*6#;9$41@nFw)l5nuTY?n=NhPqBDN0--)ImHJKO0j!ILY zg%!ScW?k|52V-Wd6K`b>sC$!&+BD4`?ZjgvHFr;BvDP@)PqVH%vmcNBNFKTW<~Np+ zhN}w@tU__c_)%FZVYqU&0VnI-&JDBIWuSI|A7PrG@wXKFCnb38enU?YPav0-_*iiG zMk}P#y3NEKuFG{19Nq!YpheKMPF6;6VUXRSa}e%%%)Z!Zh+K!}U{f}LFMmjqT$be~ znF#3GJ{s|b%P1!A2_S>*Kyt}BmR4#@8j%P9BJc53&5&%jv`GYhQJGUz29d=AD0bry z?sdE==`GMj;N*Q1tUo1I1n6VRiYbBmnW~D-n=4i?jJf?E-3}GaD9=SGaN`<}3-T0K z96z0n;hwbIHHedHC^koHKOWV-tPSlYGD%5hjO~SSKG*Tm*&2EMsssGLdHm;+VIqDA z*azFU+caghWB{KR%nbEXOof4&{CqeOUYZJjHUb9u*L90dXw*(phC4au^D$RU=H@6W zKfE^~^g@ZOLWwh5HrTbFt{aE9t?4F2elq=J2ns&);Tug|#yiNH!81w9>$45Kjr?f9 zZ0oAC+a#WgsfwZi?!1YIAfy#<4@nf_#>T=jr9TDKpt$|f!z%rm|SYXQJc-g z-bkSNW2jF3MeYY>!=H%zOCHD?96ZAm2Hs(U)0B|H6ucX7NPJ&zDa)5S>ArNZM>PtS znVC*iSLcwSB(-ZZV%+1&np6RoXxg;+W<(PC%u=j1#M2ey00_W{tRp_>OI^3Md7swP zXHU}^;@ds*`&Mb4B=6Ao^K_}*pG92=PllkOHXGN@xhEseP-WmA)7wuWy=e*dkdXU> z$X-N`F?M9Qc#LxWlKlaAek-5+y|agiot`YtuDI)qFwt z)SXAQ>Q-|7hfB{eTc^xw-n8|X;;Y(nTdx{s@qPfuY|RE>9sc208reVq$@5 zF2{FyX|9pZqrv>e-!IFzFim~HeScOqC!}GF_o}Coh4&u{ZgkV)tW>z2ukR`1GCrvo zpoQuf5`2Q41E~zR8{Z=ZsH;?_O@?v1O z`ZebE58Tctm$kNI$eM@13G8PL>ThO4nNj6Lqf)N#ti6}b*scq>C3c9{YlaIIn5ME_ zB1fi2dTQDC2`QFdmpi}xF)5ose^1|cS_-Fbd|f=41D7LGMubc)S71pL=nFM3yz>%lQ5Xf9wOBIn! z{n^~+Cs~2@`6U#oN-V|@xiJ10Lp zJOjicguUIHkcNGb8v6b}!`Dn68H$G5!d(foGN-1dKs}w(uylWiZG^(m)!6vtci>Df zFfbXBzDW}BDT7RGQb`~(uS0=6HT_%fa`?O1gL8~SF`c*6WhNFp^N38=DIr0qM z3l9fYD5A9k(O$9~>Bo)jL@%@@-vY77@>xVZ;BYGT%9k>djXbJ%k=40#2kz^W%Z6HI z{Yje>+D}zqR}v?9mKEt-Y%EnMr&(Rp%ck(S)+@4g&$1uV^I!=si-2RRO(i7{_buHE zuHaJxb3jg)t_u=zdA&yQ+#o>`LLcXEaj4UZYl`q`Op&5Y!QQ8LZ0UOwx!k9_dIxwO z)D%U-8g<6Qi4U$VmlDJNoh7x8nhO(^W($hH&ID7gBm8jZPsgFS)1<%gSBuuKsOQK0ZU^=9A;a1a`N>jE$SYrc=9Ae)_jq-Lp0ni?g4g;7;jk`@%@T zU>I&25gkNnhm=U(eWqKRrf184i6#}cJUcxGtR-*k-D(}$upfND5%hC+@z+s4&Sy~3 z;T9{wr|7bzSZUAr)(Gs70>gib)}Keta4A%l04@QPNs#G@iapD=usl$-n~^EQk-T^h ztXf2H3x*w}*pXfLEOf2AB6&Y&SsY)oofIdJNUpjARnu0i*iRjQzIF;{2<(q3HAV?=Xg3j&j|-JF~%7{qCS z|k{a6J62^!_Mqz_}l5e#Od^`m6rHuzfZ?RAnC=mL*(U8daeG6Yl z#>bW-n1t|(I3n;@NY{tw3W+yD_8da;N99(m4o|z~Yjg4k@W^ir&?wLY`A3wigv7ZT zskuUpYiD(VQ*$QMZr7FvOuk_2V8_j<+Mm=UmtL?T@x9?3pD-KU2#kzhM*Kze2vq$u zI!@S1>?sGZw+M)9-u&2+JgmUHPaDfAP7-K68CuGFpM*YmVORv0BQ8lORuBHX#PwP2 z(xSv&s$yI$kBH_VMW~iGd|N$(W|H_Z1sle%)smx8W??;m_~PU>(eh2h3VYfY-vO(L zdM$z7s~Jv$`k+>4pCF$2`7O4RdcFC6bbndvSocS zEI(Z%#0!A!ZByepL0b&@$KWE?6|9Z_6dksZweDQiq_GP!UurT>d374 z0d>L=Ofu=nRrEaSEFD<)I5OpRha)h0zr)R zha8qXgVq+i%8VtX=Q(0MH`RSq7w{IR2CS76ZdNZ^wRB4SXNx~&bC!$qOBEA^pY};0 zffEko+!l83Yedw~_!QdZzXJyXt6F;}n)_}TE?LSs8MP&4a=tpdWP86ymol;TO+$91 z@Q}iyB4C-Bx$@S&P3Hti@y&vCL*;iqF! z4G#%ROVe?2tQ^_1&HF2-vS*?*OB6L$526TB%hsb0U3qAQ3Ii)I$F;00_8TpDAIujT z3|2;P%D2BbY!~kvOaaPv#MvE#_UxY@8uQkCZ!P4$CJ|9$apZ1If^iupN>0BL(y(0) zC6FXWtxrVoDW(7sYw)Y_FV;53#_;9!2`uU(jiYLZc3$=ts$V~OC;Ag}qnMvY$=|_6 zcl#t`LkbXF4cwx=c_(TLjGU+PmMn&n$VJcT76sPt_mO=4o6o9p^?fT3%^7Y|Wtctw z@FtzDL%L}-%vVXP$J&1|FX!I6|7f%Na9{GZm45eTZSQsgsq1XXal^8azV>dC@cXiH zg!s@VJR5sPuLY0k;j-0n!37)b$l-61PoXSjV`#+png_*G#>9UH354t94?J5^u#cd< z7*~lJ7IUV4Xj~05pVZFK#_nv}LCQj@jjY?4px1a``F(r6Ppq+bR^!A0p-$eZ?bFpl zS-*)0r_tp^?N6QBrF0W+W~Ia|L%SUK8t?vCx_WevDe4x@s9uY6;Dnh`ouXs=G9rpE zw}eQ9z+%r2xrKBF;E2_@E#WMIF&D#BCZW#lpgnOUFA@V=leai*7e0K~o_P}n9G25K z6__Cz#klydDL1wKh=mVB5J4cYOw_s$l$Z--I&;q^(YY^Hw*o4Az5X3@&@e8Kr8zcL zP`B={gp0dJW%OP;^XVbXO2ZNB26eypINbKT(rRKsU-RtdJseLp$YX`KDjqvB=PGy9 zSuEf}SlYgB!lIB}H)J)@4~=c|OPDNo2*?cL=U1^Ed?*xD;;ylLTKnebueEN^mZYXC z78s;E@6VSpl)`9soUF3MHJ`%abaiR}2?5H&NlD6R2QmV~7ubF{mB^VROA$3_G!(BX zuZ%dM83!Ev6yUlO9YQHK;E12Z+)$DrsRPF5yET%;tqrU$_B5?mEJMIQPyji;W`a1P}l-u{lbTYUA z(CUbxd`muV4@GUu>2bQiF$jnntwgJRSu&V2HnxN%UF(zxN19#NNYiJB4tISOxi*=g z!bEGKU31e{5KnXR4)v6g!zoPJ#UzdHhzRW3jNor^)>gxBO~>gXBYUL(#PeY-;lS-b zfv%>RY*g&>^A3;allv1d%g*R6l-%ygyj$xH-b{2}^eO`rCw6>%q~}SM8hC@D`sm&| zZ0OXW&Pk(0{_)QqI$D<3Eri$CtbTJkj6+9`xIsBeRNI7)4T_%fKbo7j^I5<6(L@Fz z!8mc9e`p+YJ`>Z2GZ+sFQ~f@4X~fK+!#3jd@P$-}-|FmgH>Bh!1tG+_icyuKAEMKC zP^cg7T-g*-guqek?)`h5zqM>`xeSm>R6*I7-aP|e;;=%5KZa7Ylp9^v7#9g({)%;g z1@YbC;TNPCQY3MoQ^0|jfdBApy*nxa?V51glnm2767{hBV%!#Ixa8Vwd0fY|^Y)(p zEkQ=N1dFnpYF0^QUUSXJ0ajh7Ss^ScoP-LjR#qlu&YOfkgzMgY(hk7i)9#XqG--`S z4MrtrNP!WKo;tbXTd7!y3PIRu!(Uaz2f6@yx<>srK3keWYQ^ro3Lku`i_^s=!2N8H z|7dl|I~@Pg>fkPj7&^tWoMXVVKc?IGz+^1;Dd_t7>DYT;k~-CD&Mdk-uZBfe>|L=m zx4eqBWyOd)I}Gv+*@zs(>a2F2GN8RGZNI;E|E9Vdpwfr5-qdqO98;;?RFH7O;9;q8 z@YVM13xBip8fSs8;uB19-qB8G0ejnlpLqN7xDZypAS8_F(mjUoU@ufyw8d>dIXEaO zxVuce;kRi9WlQ#kX(K?kWD3fbz%l#zRix9YDK_&_^>Zf4w$vb~F&Kd4S$h^^bX6mZ zT#=z3;K9UNbjWi$<}dThDZ>h5>3H&AK%fG($oIbfv(g$HtmO)jz4W=P32**hh}@&j zTphv)qmeNjtG)nZVgJC*Fe*tyI-K*m2+8ozBBU2{J}XBB}^AvpYXOVpY<< zes)ep1%ZXCK@!v_ph!O>)ABV-1-=`e4?T%$z-f~Ex-gq*Y@e9AR{*4~GTLmo%cm=`a(U3M4kP!_E|Zx| zc@W5cYiuk3r4!Wv1=#BeYy|;2%9eNJDqnG533Rh;OUgIDc~Dk97aaUM$MsHEg&>G; z*q#PoLUQg3@6&?)+R!D`TYg?v5S0Tx!tx;#@CKkxRji2QeVL%(_tR58ZrY2ZtlZ_2 z_9{(?+m7a4w}!8@!*ry1i#p(VHgpIKDVPZVS9zqubOL!)7}(F2747>ISQaTA2%)L zmFYmTIy3=J1UFy)fR5 zxOaX_#!a^*3_c8d-9jathWC}=6as;(e?e_e>J+BAFqvs(H7X3^N*?w(Y*L-l{o#Cv z;nqvys)7ulmU8JJTNT6BW%ob{)eyJb4)pdl*Z}VbIy$z$wLrjkJc;YHG-Tc*dEe}kKN)VvEKqywu zr>0r`f1wzEst@KNMwn46HmvIpgM_J>ja6Ht34;*N3=WBoFr0@90-z z%^=2OjMK7}2VcISKn_rU98W0W$g%6`*jemM4H9rF-xVej%!mJGEKg2YQC|S1CT-4b-q0THp5%L$sL_m5BG)Cn8OT1A)MX?Lj0AO6G zwsXIjAyK%eS&omY_1V!+dHxK)Dp$ZaBRz!(TLJe6XZH>GNk2!M*w$*|jS+G39=~qe z%57))=LO(g%6s2l32?{6i#IBeoi;xQds#SaQtFk==xSb3>vm=_eO%jV{kS^ zMM9k5*6xSf-%z6wzkAm#k4Aul9?y<69eoL_6UkB)YD~`Y`)}EuXyiIxvl2ixX(6 zfK67~yL;zs&vSAsIOj&}5lC?ViPI+Aw#2L^l#H)2=#=s0n3E&B5pIGHDPl?j&i4?x z)K7BQo?Y9y!&-gyynI+v-RO7<3;r`e6c7>sk^r29WZ?5%JSI6i`cl-{@jZ@c5Di-WIjTFG%nZ^Su3U z^e}yPBrsnLLww?@IuVy3Eu#tt``Q_RZI=e?6UtID8;~?%qY6;K4tN_Paftg;H~_-W zW;y+NN?`>9N`IXJMfpH`xBY__WNX%+zzW)~ zZoeC%kE^+=X4N+rmDI3c!y6K#80cga)`gcShQ}bc23u`czLs3+S7O6GNe&xhdI833 zJ4I?gllp;GQx}{dsSok945K{SB;D z0jR0W7_%H262bvc)2bVd51>Y*(>6k4=t@Q>8wij3LC9EU)w!a)dcYXa!Mo*IJugnb zZGFrGilczP3wqjs6O~#vHVY4)!aPP3mW}dikKCfdQxTEzGtgxM$!m&u7En>&!DZ@p zztilpRmi4LKP7|<#FyX~@%%XcE@?@k=H#-Wa^m6c>1UXK|FNM{CF2Uk$qpX(Yyu-= z8RA?@%EgzJ6T(JGi|=vuDUKjpejnkwwVxGe1W!k!$Ic7Q-Fy~qNAc(2T8=mi`1yvN z1b$+6$->wqS~VnC1bv30(-tWfC<9N|^-;bnxX+Po@pOcdFJXN|34`ci>lk}q;EwUP z=nG6)pFMTe&%)?JIo1*I0+UtPN_9uKrP>5S91vhI1pJ93gKxwb?S_cF7_HLfwf)Eg6F;K6?iU4Uchs3R`=>$KC_`D0WYsB z$Wxn@MV&_%*WNdg9@a474u<~B`(76kiM1Uu;V!~rh|?Y!z+A!g6NSS8vD zd%%59?p75QV1e8x)5AZ@n;(zhz~ZR{2utAkF{SAC&hLcCdhYMf=cr?l#ms{0s|5_1 z&xRYKzoJTul=s7cwf!phRxhg2G_lOW0k1Y7#C`Uuqz%uz(9A^B9s(g5nBiyi-t~1fMlWsnqi5I!VA|e|T_}7uBb9kdumQXs4{& zy$~GER*XPC%?FOllh6EMfW{knb9s0~5)O5L_zn;@(+kuoOJJG=+{zO-9k+pLz0X49qB+TqVhV zeq~_Wm9{FNla|%k|0(sHXGZ$4va#EJOwjE~|2HmqX40K|JJqCxgebiMOTUD}z6oh( zZN7s)LIfixG+{4#-=l0resnG&$tDzbouf-nNrF{b-%_bzQVBzSAN&<3KWghcU`H^| z3fm0zo3(qADysBp1i`mAZ1)VxTbAWI|FT%Ra*OGnW+ua*QowyAPH=2Jl?RO&9E0(` zQ(LuPtLx*5v3tmRA7*Af%fT&~!;g=~O1n44GT((pWHjzw9azUNoC5*onR$hLm4_93 zrW~B|#toW`tMwGS*Zo(}yMGMUZ5vv3EEi%l_S(wDpWBF(01?1?ya@~uicpzdDB=yS z&tn1QEiJCGBgcoa(`a^PL5qg#3HB6TlWN!CZejR+U?g|d17VaqdcO<|!z|wui4I>*-bU@8$@lyse`3rl6hD*kVm#Tk7 z2|RQAZy@AQ*dT<}`3gz8Qpgn~xin0MuwraDk6WRStll*`__1S~r1gYiBsea-7wV4bs`^q~-N z0CR-g3BGqqK#sv9dlj}T1^1-ywhJs}*jG8$Vt1dRibeFZU{7|?UW^RH$F zq-6jzEk@{HE=j!c5pYRkS#AZ&!J+{@=A|d*O7qmsd$4129TPt6@8(sKWw?L723XrkqXt#T8 z)ajyNa#2d<*OdtulLC9{IgiLeJ<2yc;@e|Yo%!3NQ>|}5d@De3mrjWesA51QN!1?T zx(JgDzPj3~RG}pKFSv_%vFAr>18`3lYopU*a{4TTY3v71Qo+apDfIv(xe}c`f!pAAtV?gN9*QeQi&5_3Cy9 zt|acHlTEvh_rO@QZSz03Yixv;Urm= zp?Kpt--Udh)>Gr4+=EQnD^Kb$dP^WgBf*jV3-BV_{B3j^eBW#3r%2_P2llYhZ>NU6Azc^ZZAP>HPgW>!O-NYx?Wa^qA zbhm-UAjcYfYHYmvj365nKyRYwvK1}vy+s3-?!27Epk)E_wsbrr{F~4ye%4QSpne#3 zA?C`FAH^2VXBQeK2zKmD&`=iW)39QFKp@GzN0IAgfDK)3ga`G68e6Q->66l=n8K@{ zFr7nLI|;?3`7;7s5%l%{3gl_sa)&C4gU{fV{{ph60qr*36-wUtQ9>$dP-hiybsQWIN1{?i8_Z-(_a?J+e{g2+>f@qko^=%Ta`5u?@?zRLb zof1MCBw1i^MDq;qYFSGr1G9m*L4#@Kr^e`^Ue%)JTocT3uO2XtCO58)rm$jY@EB+$ zT6fxFtWpCtp56h2vF$f(#&mlMbS4l#T5^%4;lo23IIn>W>G%L|wDT{KxKSQ<`stat zQNx00WmUByixS(S2%~9|tNnD*UlM{~t5wQ;E&9i*xh&)F-zeAV(>UGiK9{QpItp*K z$3r5L3@+eLl*;U>ZK*4WCGiH5KOOj8Da^P3=^o#NUMjNd(u`8(Z2dwAGVN}VpfRy0a}>pwp>)u7#a2h27w zUImfO3N5_l5V5ad=>v4wO6U^(j}c7^Y1ZGHi8fH)zLggReDC4$bS;zcXVRYRko_2> z1eie$u*o_S!n?RcrE^Sxx3v+@V*cjY#LLi-(V;Vx31auDs6@SwG0hSs&s~xw$z>?; z(m5&3KXE4g+V~2Gfq9{7i6n%O*ST6~ei6olg^>l!RcZTidqte!@@4J$tq&m_07a53 z$B02L>DE0kmYY_CFm&rle?QrO&Y5fqnNMIEdo!FH!yXX~^dR%QeWsHdr*LCtr1nsz zFP--nrQCX6GqdOdlUn(bGv`~pHxJic#D3i%i3CiW-7xhuwC0Kv4X*$$4lpx zb~*bwW?UY8Hp6fo0$Mi;-l*g7yLoRA1@aRE5p+s_ymehy^ryGN*wiRuzST+t#{o^9+-=7AwwJWj7OEer=XPoe6Gj>7ew@d64mm5+l{+aan+!L->+;1m8k3=3YNt-ecZe4&o7V09;Dc3ZowwDHyp=ZO3w29kj7hG)J(CJS=9XriRf%eo5TvU6tA@Q)K;O zX!=uvh!FOIKL~}BzoA-g7fQ^&QLCMyd8z z>(Tw2UDyCG2LxKa)xZt($}WVX49E@TivV8Whs6P;@*e;R+Z1Z#u13bS9IrG_dIBS~ zC@44kx!@NEqSN>0PQ7cr-u&p_)C;pqC00P98{AbKvKRf=8B)gr7QCLWzTLtx9bRc7 zlJY*Rq8dO4T91j>DJ`wkNVn>!y%LT4{PB71(+`$IVH@nD*ZhjST54a7Wq%(u>3MzT zaN}=7JfcCCNEZK3aL%ylRo3#LM9Y%RtW>qYv4Bfb(VjMf-{(!C9_=iEAcw0o3gkhh z^7lz~(MT=nSi_ACFH`-|5aR-H&YalKACIw@Ieg8!jXddt0;@DLTSgWGKc^Q4(4sy> z897Tahy#f>@Q4odp}4nNq=a{aw*qR8QUc%e!nYrlOz^PRJ;;hF2@cFxJ zXlE-&hn+nH6CLpaKJ*vfC#+1gN=e3kyfWCSmyhi{fy_K0?b~$Vzv6`Mf8qq#yNv(B zvz7r2jTWNFH!;dI6ff)J0H6WUxO{A1Uc!cq~YQ-MWdPS z>TL9iRwDAwpKv?l-L5#0Lrt}GXco{P+ksC6fmyqsD?X$hY4Q4m5zQO1wR5cH2&~@r zZA`XqouXc6Fyv(2O}y$&m~WO3=TUft*N1b;PSNsn7r7*r%yb-Z0kZA0GKShRMa-97 z9PaqQKO-O`dS<>uv*q}8{SIOHl>~yDf0*@xWS`*zI-WUrsuK291YWeFI08|3v#!)w zbU%%T-SG}n7at;RIGEvfq!4||%Dor0&DYAQ0kPqJWNPXp_#TQ8cAj7hQV-2w zxC6y~V1A0Y2vAt;&FPs~L}FSU5$et{=U+*LH2)f(rJ44lsN5&ue}j>mmEHGtg8X)R zEHVEt@0?KO{k{PfK4HC|6TT>fT5KoRLMfIzXF4lg{3fE{l16QNoM$=GgeLoY(=1a# z!%!o|2xh1@^tnA|Vm*fOd!_A4nsH@E)bh9ZBWU%d5*YwNl16i;{^3=A)p}@!Y8)4h zx?NEsHE!v-mqJwXkX|j;Q|9Xvvnt+IkwB*YmILKAmIL(HzYG52X?w~AM3ew>LE*vf z_|W$gzCAGx4D6IP&{-AJA5n^Y?;1*wtS9t(%g!F^-2CXMXPUIWyDQN_q?s~1(puag z&A@L0`RRUc`G_O8`QX=rRZVSz=whXRH1)~Du$ep%UJ*SR&N+lusAPDK0vUcyQ4d6T z>Tu_qESk3o67a$h*#0~PbdlrNE8Ut6av|Mh z9vkf2eK`P!06|gaxA&r<+IXmf$Q!WLk6vSKA8>@qg@G)5=v}9c!&vkrkAgMyI!&3A z^N{-?z)^uD?uX0e=MdSTpYc`n&8DKHnX=$P{z|L4$8{@Q?CeL)Nym4wN_pfqf^_`yrLhaaZ+Qoi1Ckuf|Hr(SZpUM`T%gt*Ll2) zC~9S<(y48u0S4ym2j2T+t-qp8`W58BDO3Ma6|#882M|?R&MJUNNuy;inwp*~{ha_w zsxhyOUL3Wh@`x+{y}0qdmg}^y$|=R}iTRm|HM-77Mm?{lX>d^zP?Vu{w+rgk5i0CDla^EMvI!|kfjTnKmqb8j z2uPvYGXKm17!x9ICbZ=u1hTG{{$vhBhq@H6&X$0H@o0$T5zmS5>tY%F<4xH@6UHb> z2+1m+rYYBT)x%WZ5Duz!$?jEkvO{aS#pYRYx#Fsu7weM?anm(ea|%$}+k z8IXUSZ%GPT;c<8_!2@)ApdHF&$*)`nW=IQAFnEk!O1p?b&4B?D_dn_<(6Nfs;Dg&r zIZIHekj{drZ({j~?o7sLxe~p^MQ?3BaFQpR`NtTmp>YxcEkY%Y*_4zSfV5B!grx4d z&~n`t^u)4(g;|uxhMdp9+t4s_A79`R}=fqUXB>E8)3_KaE8175Xyk=Q|0^? zs5C+d7bEGhtjYjz^3|*6?4v^D8*2D4I`sVmfPcw*3MROO@HdlT=Hl=H#Bo;}=7L^h zqW&IgoHGgP0Z@Sn&@0elJ%Z!UzBtnUe}ng5zklfPv3TT_im#E740|5F3uj9?E!GtQO zMg0ITEK`gjVDp z&4*Q#v1Q1q|9Clh9%Xi{K`%J8pm|mK4BDyK$7Zg;H9-~Y8a??@7!fH>Ge{blWL?;D zwD4%FFDY~u+yDH7yVU%CNVB+GEqPbkK80ujkt1))ByqAg$w|VWCMQP!(H3|`-r0|# zL&Q9vJ;gr@Ql<0qt2s9YNRCl&q%=T-Dn&v~LdASBp}*f`hBR31MOPD8g!yfF4bRVn zgpFk&MT*>CH9|y?-2prcJmp;cd6qnSOX2|U3HsnRB=Fewm3bBm+4NLoY!3C%=VT*# zIM=yM59)P0%ZDl)0Mte#zyB|U$jmIPdBI2N`$~ogWt;EsC{Aj9Hu0J&NSx?pMslOX z3~^dgJ4$jHz^%|;e8`?NK>xB+v}u#AeAf3Dxzh9rc0DZ(^Uq?j0f|kH6JLkSRN9Ng zBv^S1AQ^BXvpa;Sd%nWlb;ci~*GJ%?qG~egztOEwkmqq>)Zf1Jv@~0vYnW#f)n?9X zy@u0-$7Fy$-IcCGv=In9NTh!gU&SS5puX1ByqKwQce3`EgwY(!wzP@Sd<_)XCTa7H z$Y>~HrLN{9b$mQrW}7&cuI;yOOVO_eiKKe#2;w+b*NNKs9?abI^eAPU{P3;t6?r&X zxASguUodmH_>oz}6xv#AKO%$6-pA+tlLwp93~!`6pnB(-|Fyyoh57TsSe%9(BaV5G zAt7pue>|>x_r*jZZ_vYGg-FtXw~=3jBqhYDNv$b`;zD0)qzz9!&kE;^`7Z#CGkh=K zeiituSF7c{?L}I>h;5Yy?<^)qReP}K`nmheF)6Xxswz0;c1K!*pM zdeN+&@aOGt+Ib~Mj;Oy&GhP^CQ;d>hI=26Dbq?O6Pec_-v_j%209`w6IyY@n27DdG-;`7DMw<-iWDP9B%*;;uwyVc%S zpt|`t&~Yi@^g5Fi>IuOtGxV?`BwK3@AbIlv%VYs86MV99lQvUXQ&(jB;HKG5s|Z}L zF@gVyp$w(_`J#N!0jgX*!A8iPuUh#ALvxN|hVJIZ788diNF@1ZLs zQWkua2X5V%q?Sx^(mYa4EUj8 z<3EUX9J413jHG7^bh#;t99I$veqFz;bq2C` znz_sNF5CNYR5caOa1G3`D5`slHI2VCEa+vf)`;%?YZ$#Q^iGe}U@Zr*7h#hCK97`t}; zeaR+Ykt|M<0Nltfb74@GsXr!dj%8orE7_Md{(r->Uk$C{-bD|=wI^`G7ytz6#~#XS zV`=6cu&)-DM8Ofl3QXEqFw*kFL;irl6SW^!o7Qw-EAq9D7 zQ8BYf@MJ_+)C9K**K>pYW;RmDoo=n;tw}CE?>A5ib)aCiYSv<6!d2Pp*f&KQbo|Vn zo|BC^Dw(-NaL2aavN}k3A$b)C&&$K zLrh!==dXSZ+*rA^LP~(vIZalM`sR+3y|khPu#D%WgS!q>&y@^7RvZUdW<9Bs<7Oyk zP3+<~@+x0oXU=?QoszLwH~-XqZ-w>$O9WX<*wH7ql2idEy5L0+)klFd!fYJ{3-uv` zs1qc|>_T`}Z251qn6m^jL;|iPBN)<}unnU8vqO4S<>^m%5B5JJ*1d>`?SmO&T!^6C zT-t$_o>qHj(^Lt&UiIjtiAxNW;wSJk7ms?4BKv%+gn~6(13`C5YPOWdex!N|@B|p3pPwQ9 z8J8$Q$hqpT3Ox1M!@7ZLpu|7)BvO00%X7lEOH>@Qzo50_7lQ1*`2_BAnIHQ+{C*U4^fEa&4IU+K&N^=19Te{E67yzW0+{EZhs zF=sUu$q_h2$Fw*8!ns^Fjxkw6O!sSYhbmNYTlQ@eL;5 zj)@|f(=@9QM20o5q(Dh3nt&|M8yv##ef4jgG$^b#mypxRma*c%lun`ss&?2hdF#sV zaXZaMRd-)^mURB-_sC5LsuLYs~LUW9A3!|CL*eA&<~K#IrJGPv1yR3iQt>j^$2 zUQ4B|6b&B0rm`H~yp2cP+hyL;$diPAbRckkKM*9G2^gh57hseamW}tu&Dz|+UViyM z)H;WxQAn9Xnx^`KECsMi4|qe2zg9_&Jtjwi4iCPHYPpl0H?Xwjtl=225>1mx|4l0_ zDM3A*8cJu2CY3wRaAE)duv^%UKWk|AapB4nk~WfFw7QYSXAvp#;8v*oDl=Jd*#r22yC4;Y;Wv6G3U+_^~f{_(nnU#TmhQ4 zjC=dwdgJ;(n>19HpP(3SRDt=i_gyXp&l* z|4;!)h&Zy;M6tn9G>r{j#;7qotkhTlatj}td z=t9>GeqW|XGpAj+gT7%OAFIS`7x39e4E&_tkX!?P$SxGu|I<%l3PZBV3t;2{#@U>6 z_QSK5A(I0$r9Xqfx?9U5?it;%68pdX|2W6t;~SjK+%b7-=`ynfytt&x9^#r`SSm zDcQ%ZQ6Mqp$nd$rNs_Bhj}6yAeyms+8X_>xfUa)8dKKYfe4$w+Qkmznym&BJ3ju^+ zyof;$m+17rj$FC!-#|kcyA{pHf21{vCjYVekie#-DWXl6aOAi$p(s#Ad?@ac=t|`N5FvB4xIYHt^P8@QG3%wo*K$L9 zZdzdQU2d|!DSK1k^&c2xLHF4xD_B|%|02MtBEV_$v{65ND|N8(;Y*Wav+X;4no$~! z$c|6Y<+eDes)aMk0@1EVQG4+S-kzVPd)x@`4(WeB(!7Tbi8OGbWxXFogf2}s|Fg=f z8bSdP{VC5kCc+i7pcpuBJu?wiwka-5gVvAd$P}X0(+w30P+XFI^<-Vj%25Mkv+5Rzn1hfpSz; z5|W1HW<5nz&ICyx_})Hfnw9T%SRyzp6al_v4xXxY{p2QMLFaZ;G^D#Xp$09Lg$x5t z=r2!aPQyHuoAw`57gEmFVQU#(Bz5BeVizHO>x`5OmAs=xr3YMP1_UoD;)f!m5rRB9 zWyq@Gw@q-1@PF3%Na*6+x2K7v2@3#B*_md?a$nR!^pt^PlN;q5z%4o2J{7_o`Tl@s z{Ywui10(~rIV)PFv`}xTvMN@1Wtx2dK{BCh_&M;CKGKL4XkA3n97AWYGa7u9P_Vo$>OaM~c5Y|aoww0POLYxeXLRcA|k z(Q{U23O3x7?*Gd&>HoD%K%%*8#|uHdA&MM}xh9GnZ=G7EE$f?h!IZ2?m_o0BBd~$P z1f)+gdGpn@lFtmW&!!k+bPW#yRZ#hLDYI*Mj-h{|x$58E_P(cE{ibOSM0aL@dxI@s z1eFd{`$l?4FP<@a_@tM*&1Y}q@My-acC#_8g{OE0uswN-Q@XYB{t#8!M(coLWsEUg zIof-)VL+wW{5X1Y^7s{~tI>{dvpIDHPcL%hcl>6ZrtXL&1$9r-6|JFB>Yd)4j;+;r z?R(6k#D4BMZdGqnrpFuyv=E-2an|u4mQqelESJHs%fJLx@CPXOkjBY7p`rk+Fiy6; z*N{|mqSnc*@Iu`3ZeCikYi+F3D(%xi;U+G<05)!ckU6P9R-A}+qme5Hc-UclBbk>o zb-`nbMN27Ku|&3KHFw5nJwWK);9PwrTbXlerUXShH@`0#dU^BOsBd~tuzScC_OP3q zg3NC64lV&@`smLm3c`D3&Hn#wH)7OCt?pBfz`x?-`*C@;sh% ze=w#}!Myy}#A0C;xGKOjV6EBDK&ZBp(3D42i49$Ik4?j@2|4 z+@rlE15~bEXAv(fq2Q#AIr4skwpSo0DP^&7fT|J+nxxxY5o$PeP@)AAmDNf~%u!`e zOf3K%0Ejpbj`ZQA&-qnq0#yc#nK5FCzE4~;EB>C3m2oN;(b{193^n|lkYU+@MPK=k z7gCY|v^Bu*EM9bycl!m45?iz7#n&PYYc1H#Y!0LBX~vx=5bPQ&YB;epZzqR;a3HVy zX=$H+ro5NqOgo87`uqb=3O z%#`f=2><@}lhD~Ke*f;pXCSkF`@kR~udkkQ2Jq0W)V|KEmg`C@=%F)7!(z?Pl6ICb z6&Uk~Mb3cTRq`K#q_&&wtMA1bZhTM(nsfK;J+ez#k$Szq*mUk64<-NAy`8EMq^vTr zh3H$y-p3~N%Lqw~H>VyTh}5Pn2{7T%fCW>ONBRu>gZLBzqk3Qn%Y&B4tH=4iWhzVW zHL!82+`}MhNjUJ8mO&(dba44Yt zb*%hMK9^Ag$hkhGqG-+y2Va@-{0)F05cYO%aGgSycF|vAsz3oOJd8u8JBt;7F<74@ zve}4STdc!ze9d|oHLho750t4h{eyzDhS52CQaRYdJJ zieDkbe-|DoS*CYeG9nVztb;_FBTUW+EL{6b6n3UbK&&?2q-}22&Lbob#y8%jje%8* zfv4P#IuiVw`|W@U3@T5=sdJoVIKERM_D3SL1->Lg0~{$i^*WeA(|K5@&bdU3H=gP| z5@OqOW?Bi=o06r#ERa_BQd-%DYDJI|WDK?N7^DVPr zYAC?qjO1AEf7J0|mm-1+o-ulSyQ0iDQ@fY?vdN5mxkN?&if&DPX6ojFv7~7?w1Ll& z27Aus>HSRl)9`8%-?$|3h61wJQ1i5#Yt7pj9$ zAEgBM@wXiD0vA2h4Q{86Lt3q1DK9ag?U2v)any9Hef(pf&MEn20c<&c*`*xjE;OY* z4$wgpl9KRkZz10+bMp03vJ|ak;6POB%q9v|2(Qm{t#IH3d+(&J{VeqUz;N>B)$n0p{|94Kr#nB%i&!O_brjF@;tCYYX(o?SO}Qt!QQ5)fZVa2{!nQt+2v#eeGmrpateST30;^KRzS0_Xr1Zm%%K8CAZUEH$$G^bN$L2P z)|muk5sOD$yF>A7rFa_rwmo+yx8fcrU0{am{;gf5d#^?13(p?!DQK$tF*t9y50YbfA8VSzea12a#W6ldt@G|5ey#v6Gvwt?1D>M~u0 z${bggS4HLB2F6F?)YnjS^hC!(Y+8fBUKmKt!|44h;_KJt>E!Zm4!7qJ^_#OZF308 z(H_Z@>eFq}Qf!NxmojCN80@wxW&FLvuhys^c?O=b#ClB9r`zMHP)PBF=#uAMjOE&I z|BljrTz{z($YH8x_Fbn?sf!2G4d=!Kz-@JkUzY$S<3B4#3;wAFb|Q)Gb~e(;L+Lb%R;5!c|#noyb0Jgm#cNG!-%e?YB=T3$M5*EwUV{oWOun$Et8^uF_c2V*;=Z1Smk#=pFu&eP4A8q@N>DG+8p&fs} zY+lzE_c@)-lAx}cz(E(_J%V^YeJniz^qal``U)szOVXXEECF#EeX?MesU1J2FC07| z*A;`;YZkHww5al}s#A#s*D9?+c(5Nwh}+LI>O8b6#{jvw;KoUAR+|%wQE#6mbv)Hq zvv15{^S_`#-bUE@r^$M1&X#Y>YkGJiDc6(Z?l!wEx%uwPoLPfy70eapt1Ou=-A3yT zIe_Heab3lYa3{Z}kV*={DsqCC&w?h19MlUL8dtg=dy$!|{sMeeknW*E zB$awo1Vm^M)&*31?yw<#&4iG969B>R1u@X%B*@3qU-CBhauDE^~Je8p}Q@? z{nsQuAWQajs1r2=EFdozzRbpGkiZq;=>Et{&6zI0tGVSbW)Wj z2twYgM+qoKai=O0$gxV-a`FV>--Q|7m-t4Kx;-@F$qsn9b>u+kehWAnP=RkoP%X=W z@3O4$9e#XQM1N@S)@r>mR#F<*jwJchWDB)+#n+pml40B&gvC2de`~VxwL@@K;vgN= z>SoMzUy1jFX`4u~3G@gM>E-RRuZl z*CjOleDOm5AtS5U zC~U6=h%dLe4fT+CXIma5H4q-*5r8k+yeWNFZIgPfsBD2(_`V9WbQoE<$~CCah@3f{ zk>gUWi={I^{LB^qOb}A-5zpP8@SHS2JC8%^`kE4%2^GC{nWZN2AH+ge8K2c^stx_C zq>mS9ihN+-&DN=~W3|Trk?h=kB(lQ%p@E=m$zeQy!`a!9`>}oL(SAMoO5GLp`1B7H zh8eUIJ}My|y1zpU8FU!DNqcq#pwRqV6;+oWk!=X10|yooG773;QIV{x0QuKlmC4 z2g@9AV3_JX6^$iLX9MfGsbIb9J#&bhX!hJ8xZb+^)!tp1UE(Cg2OzKU)kwIH>J;#1 z!hbacjEm$ccrPXG2gMMeG?t_$h8!)p>Mt#}U|_6e3bwDgpb6~~BukrA$(HHWSX?wD z53ewuk6r0AodXS}nE5$2FFds0G|lY*7Xwj-P3kjg7EjS@ad2|751$l1K0-=bT5MCD z)|{txwe+6KlzLp6);8K&R$Usd;rP>`oVXDr4-nLm^MD5J(lQ_YtHY1*4-e6qzDs*y z(t-4~Kr>?lCVVZeIfjO7vKq}AUjgS_47DQ%7L_~1M9z3@C;AY7|A=7!=zYNb4QdTZ*cTH_E&w%6SI*Nq)3b_NB(>rRKNqy%mo$1UV!yh;3Fc~+u>5oSH-qMZfs53@J=qBb77q&C zI|WWYoB6qPlj&cN>vd@KGl$i2C!sjkc{dy1Y4LhrDL*a=kO^Qx?RnEZHR}woG)P*9 zM~ydd^Vp(*g*xW&`oMoY4ixRG==W-NgpbawbQLxQ^1As_Ueh}>wJ`3hGDc-iXRvh4^2UPwWAIK1e;n6S=*!A%GZb`S{V6SfHqOpN* zJ$2rO6Kdb~)Twm!cn)>+?CtH{Mm=gQI_g~+Cr*^ee>#QcKVGgPFWoK@ZKcf zoqMhAaMc7TOd*`pn3!q8TR-M z@|i^CGMk)ml*vXtOiXIoJQmL~<*S&WT6c#_oTszwr^Ao4b-swIWW^>5 zsp>+i2GF;@tW}cM#XCpufti3*=;i9~n*9^1fpgXlz(M?US0*{GS<C7ts-40c?fCRvwUi$;}D zLgYUYuo3s6?#Oa}!!MqQSU{#DIC}7ghvXDRZ5$X!z>3^cp9xPQoqbRKmFiHdL!zS^IuGQ2AcYPp_woYn!Ce0Dg! zJooY5Wc2ab2~5Fl|@bO~DUzW&{jSbKnr$M<-qcfU%Y*JeHJlhM$>;n3!D zUpKx;5j~(*!rNpj0U1&SE>!>a0_cM~Uo~TOnbR3b%#*I z?LiS&2~@XDX@T=xuy0#n0Fd9yME#hjFz=%UR1daMp1Pi1h!!0svDg4uSeXtu1(nFP zS96*y;PII3)kN$=!y2>#;e5J}Z%l1c^9J&mv7XTSNZ7|XF(Z1sFV50s?grt$E)y(0EQ;Xhwl}ZIEN}n0wyyJZo~@zK_1qlc zoVOE}avbM-G75M*HnwQrw-IkUUmrz_`AbRZ#`CdDM>kzy`z-bLd)`!S`u)hrYmWzB z+xspm{>PfK1&`vo__t$!#u^_}B8t??G#d;WlxcJXRl3pAPp`DtEnEkM2AKvXVd>PQ ze#7jCH{m(hjWmBd_{OxskwUJ;#slvIznQ?4Cn6`VN83P_wVPb=E`aHNM*uWv!eaH6 zHd;!7)pM%Gd}o(pD8#gmc=7Vq9Fl(Sq4#i77H7jF<~$_APp?`8*t|Mn}Ep+P6Ey`*gl$U7o z+G;iJSGLsZS_Y|Tan>io!NFCUiX**zTN&->?Q{KbliBwbAtvQJABoQn?~&svf-(7) zvo0fWk5ws{V&YAg!7X04>!Lf=^s3tLu7GQ`CC@qi-&9@DyW87yhgqc^Jk6R}2b~Y- zEe#K;>p7pRE(*Rxk$B&qNR70~>)2187GO}x@|_+Fw|L=Ve`H`#^~dYfU~N;Wjx zUC4M(s~;>A{WEk#r+2abBU|=&TPBSqSgV4mf&d#o;=^)CBC8bmN_#EiXT>`tzb%9K z>I3Pr>Cw{Z$x*hrcSr`8#dv3%c^A5dpWb$b7>b!slXyA!8%K1rf62@oY5OcdxZbCUEwU7U|lCTxLzQZ3VnUR&Hpkn@+q+JDtt3ac42`TbfUy zojT9hiuas7<=3z0)8F{rOy?Nyd@OB`wxQgX7JH|TmGsj$a2?I=Y){-}1e`9?f_A|h zjmq<$4F!KLK~LW1hW#@F;B_l|BKlMWYh|C!RTOpDoWP9ke#89BYi=Xuw#+O0?R zNa?lacsHVs>ytIJX%!uvC-5bP{WWe&%RRH{Ek@ndjh&f+ zuY_+*ZwEE1Q62*NOrCAqg6iJ$cRd=aWF---DhhgG-WywO_Td_^}y_LHfrm zQR`_vV@|Q*JMZ9!C(a`B2@whK4f41L{d1k+$}GqZB?PGGFqnb z`58573j=2}eUpXOdNzu6_;}f8)ODfuIOXq!@!!KIzM1s-P=zaRU%?!`hVkmm!JH)b z1I^WH;CvVklHc+1sbnHED?h3IZFS+|;$llmRZVQG$V^3N&~RS*?nj7bZkA4bpOrP3 z!x7sn^BW$2y3cedmY(;iy&S<$+EP_D?FG60FBR%9m6XuYqw{2>@UXcjdT@skjIoC) z7n57#kwNEL&8~0%>2IYi)+m{0`$2=#i7!4-5*dW+`I`JjSonmy#&74{rQjuS$FR#j z3$oukX+oFr7-nX}^l=g%@XobF(Os;A`>jtaesm0OrROK9jCdk+fI#6Q!3bJlqYK8} zd|mZRB_{i+mbIWly;x1p=U^jVmxhsg$IDdBbPJeGBoRM3W{6Fb<;{WXJU=;IjEkuj zffru2Y|*6o-Ar9^Ny$)8s=a*$$Dy|S$O8Rp9Q@tYMQcP>K??GgBSXs5y#UE@67SP+ z(_wg6#Fq-~f_HyH2I#a;4$9H^I^?5J$EiUnGC94b2y(FP3_RuOXBIc5jby2P=6X!< zzExw1(t6W44dM~cKfN^?5f=WlzFdF&dy{^@(bao*Kn_t%bhfgMj(6)<&jBgb>HI~{ z*I^hL5h*Rx*u@A>OiUaX_QF4tWQ|{j65~Jt&h-{qu;bIGBcJ0h(n47gTWUqh0#C;e z{l=~jTWfORqDekP4cazfO#UE9=wUXWVtA5s|M z%teVJa+y7$|NG@jWS?^E`1 z(!jcu!0p66`uSpsfvh3emmH^vpj#9@ZD0r>h63??&$3#rYX` zHLb>pT>BN&5^;NLdE`Yme0N(7Xcqi(ECTkkwGr7EtJX7&rKPeyd+=o~P%mC~_*7Up zAbczF7C-uovl{8ut2`as1MqY}8b1B?=BshHbLNul~9%_K6ox$=q#x)jkTGUPIc(YjTBgr+- z!hxVFxmI`84aE!W_+rUgEbptE6}5G|ygJ55M(z%u`&Vn(OOEajH- z-%}j*+OGr_=iJ5Bk%zNX=$N5%022k`5>OBH?jcLyHk8aKx)3SK-a?l&s4 z&U$)!MbJ~X=IV(V^TMhcO>2dd*k8bNFZH~EyM+ytyWB@_cD}m)Pr@GU$Jozc?yxUc=}k6Um~`zx8I(;Pt(9jRhs>-)w^QvFBZWx7;b&Be|F#z=@0a*#1M@n zczAtrb(7K-sku;gxIcKkpB!ahkx6TV7LkC$ zow3+Zz)^2+weY~dp=XsRFh9dfWHv=Dod})Cdf+is>c*7Q28HJb{TTiW9#}%mg+$fb z57zP2rc3Uu&>k6RPKZu6y>n+UF^R>*Rxd>s$?6IScr-pcKd-2@Nzd^kOuXNy9syet$ z-F;QUboM@a%&TidVze~)vQG{BNK9NuDvNtU!or(Nl>wKTb&GB~bT$=_;LQm z^V;0FFia7Z=?N3lt@X|Ib!|Q$FNU6Z_cO&ja;-z)ruphB)@HAV!K9Bld3i*hwH&R_vyVbw%a~e;KiOwcQ0RT|P>`?K;%ayS+t}PUfa%rlw|QUK|*YzFga_tL1Qa zk+spaISi~a<(b2p#=Zh*FeQRVk*2o%zIS9%+nX;O1!?-tX&1Ri_u^PnJG?1hHY?sU zQQ_)??A7;^7~I1YpumCwkG^7+g4*aLhwl1bBmg1wgSGP?t1}DK^No0r{y-#q^H-tL z_{1dzKgSCvfd!hF=pQzMT%e2vJpXQ$#JL9)P}*OT2YU)H*q*AmAYx+Ts@pXb_fS(`=EbT60VI=wRBYQPD#0ZCTbwBF%9ol2vZ$q$g1s59K$ z-GPB7R9B~$x~&G!52!i@snWe~FHCu9%i{K`XZOO4)g%Mb7T;%!IX%6OCQr1#-RIQv z6diMZ@LcV?@N9fZJ-jYxS<)eKG-N_Ay##f7ai_6^!z|#&1;Z`#_7WFzr!Vr9V9N_S z^W(PJ>x7CRF*l-t_Deo3v{qFp8;r3MAtbEij@d(ujfuF7)*cI9VvwmZnB%Wv??Zy$bzrnxOY)|iChuvVq} zgtoGFv9~@xi#AwmZf*``#Fj`Zqrto5gi?Vin*Hs6!hS6@SD>(?|bCwZ`K#KUHgLt=!mo!5ErFOvAfYd_bpd zY1S(apgJ^A$`Vo(>c5RW-ywxaJjr^EW|O|BxXw?>1Xj&hLdxf=8&Fb6nQx+|~ z-f%PJ+I~{tNkdK3#Mwv2-hPO-Tj{7-hLcfY=g=ewX6X8yJdF%+vgX&v1@u~VAFn1} zw3I?4*C?|q3R_zXTNmRnJUqa*b0;=(?AQpO<{OPpQ1yI_nQ-Yy`gwdf_U<)`(3(R=%@2#B{ZF%;K8kTwfXQ^)|J49)cE+cP&BPMr9NL@VJJ!^Ez{TH)^VD7o3wkI zWT7Qn=`iWV$s6A}nh-8~zX7dn?bZlZPstPl8j8NI7te$QZwM^`L=Hg5;L!A+N7e6_ z*H?lO6+phvgcK&e*l&ofvP`IhKD~_)hW|WLntIW0ktV1=@EF!cRIpIVnpGbem=4n{ z%jOJaeBtqX=<4pV^1P@?cA&`=uYPE`fz6=@%>2U;fk1-=eCwU|8@HV z^UDxUhtoefMg#nKoCBfY!ySIC+_E3}LkZl5voeEg378&x{`W5!WzQQoq)p4Cxm=IP zm*jzs%O$`OrZPRbXq0pG2=joT(r;wJw3@l9)0p_z`7KkF}R6^bd1($zeDIVtJ$(AB%alrlGp<)ZSQQ=|Q8qY{%uOxYf(c zL)$NTXMdVI5ZBh|9^KT$dyxIFIfv;kE)J*_m!I6Dt*i)Vi>7=`{dCcy)1Om+T{2hu z3gNz$m}^@ZC^0q80@=L0cEO-Qsa!A9Ym{f@VGJ#$^5et*WEytwWJIkMO!vfHM-F!=Mw&n4{P7DSXx4N-Yo|!AKK(4C`5}z>=c;)c5>EOU@R%Km1yIdqHSj)Z}0ll zDGS(dM?_9R!y}q>et8k8@GtCz%7pF>EG+EHnwlJW^2Vo8sGjG^4amnw>k=q>P%Hg# zruGJJh~u_js}Ih$?XYE`H#^ zd?X@X<1GTSr`yD~{o06;Q9`)r97MDF{4#=o)5G0;*1LDvxj|U7c*lsRThKm}C5#uI ztYzWYh1mCF`Af2F;a~sGm@YME#~`0PVTfq;up8(dY)3P5nkSbuux>=MIFAtDY2f_A z9Z@a};&5eAuV~`TYtAx>rM;B zEs`KUzLipiW>t#{`q#Y*mc*Xhu`u6f>3|0|?UF z>~^eeTQ8<23YDzz8aoUsdLoE;ZCA)pZI|-$D4okFsz_H>Xw}Nx0o6`USJ$GPw^BbH zl3#EzQhJ?TX72#hg2V5fLG%wj5970su8cT;IL3xwYRj`ta~;jUo%(g|1?+P~PQQzr z1iXEMgeZ7W?R)ColgcU&xCl)kmVtbG49b@0Iz{a@>IHB?HZf6TPiCzi^%#MVzY&F# z)={2#wVfM!dmbdDaH5g(oPtx@idcbPRe5-AuZ!c@xXCFf8>={*nB?V%j7?Em#!6Bc zFb54>pdMdco}dt*^SkW-d5O^@7J#~=S|@0sNm#e{M}t7KU^Lwb#*s4aq-^XsB9Byxt&~p z5m&tYkvNS(GPGABma1jDdK@jfK9}=>MQQ_Dz(et4Gmo-G76+GbeQ)mwXIa30H3!&v zesJ)2uBRQAVk$O;XD)bSum7|F7+5JfNjGc!C9`==d(HRot7?pvNrWORlnlUf zecIL|eZS_}31bx<(&%{ev!tc-aX*x@uo?L^xfZ*=1>&f-c&?%@Nn{j)P{#$th6fnLNs#CB;UbJttegzMF^S#olsM{@j z9MEgE_H&fc!-m0OY!ccETB2Jfe_T#PPW)(7BzfTGDu~ zZnelDIt_4rR?2W`7N5q#`?9sXZ|*D>DT?lri+(0Ac?x_P^_-#~pZoaSMf~p=vKBKk zKZJH0FcTrP2Z~?F@~@1l^wYuJWD#)laWb|wH_!JBk)bN+3&I|KeP2i&XL1C#ALl1~ z`;(ETHdZY{eouscIzm<7ITWwazlJGg&aqR+9yh;&QOo4Ug;u!MY;8Hv zFvm68%|nEnx%ZCJqH*Fc*7&tdg4Z9tq@754cUp~CucIhA7+{m+Vn7k;zrgpI|AC?} zh7R9P_d>vjL#@lXDT-CQG3Kgsy6M(FgCJeNdu&|;h&Y338%Ia3@9{t{a8T2d1(N4P z@e|+t&5Hf~LozPwIAbklrvoBhqGzD+g6>HQYxjaSE74P7f#P1;O4V?+;AM6?#S>3D zcs*hA;b-LKd8!^H6oRbNDo(g+{TIIc769&10B+*AoLJvqpwnKZ%tYesX|>&TZUopD zh>KO*+7v}ubLGu-NHkAsWFZsC1$(%2{x5jnPDW3)kh1<{qV*o&l-d=HYT0cH=>;R6 z|B3!J(6W}+;K=dBYt?0^b*VSh0G~xr*4+FUa-lNGE)9KF9>m1C*>?VSll)dt$Yab^S(?If#!I<> z&J8**9msg9E!~zfj}2vEPJOPeuonE?7l$ON;+FW$w14QI-i&8}c9lhgXEC!9|ou#hSxTZ|%$hl0Zsxe!`jnN=Y?Ssi&#uV=*U|^-=7e z*Nzm>{=TnJ zG4bY;s-aVI>0CV~Rf}$G&Kz?Tp*ro)pYx~({_VZ+ng{dK!{Va$&qH+r4xX-s=p8N) z)3PR8|H9CQvBy^1*~=F=q1_h2c>EUYO8eP~Gd{$%je2vFu_qg@?-^uYx0y;fCY1dp zcmbueG4(+)%LVpwM4A$8P>o=g{UK z$I()tm^}#BPRw&Yi|>C1*|C4T$|tM$ylX>&uGj&oMjkm;DNw{I(rK!-@}VNW}O>80qy&DnxL*6C(6S71!!1MN&(XR-n{ zzNTRe>Xb-j1#fMo%Y}yJFO)kE5WEs;N>zIHCrAMG?|nKTyK&|1Nv+*5Z_C!7?07J; zg)?Z%=)R@FQ_4#raIybf1q99fKRjIpR8>vaz9tG13ew$@N=gfeba!`mcbF)b?(S~5 zbgGni>AG}xcgH{A`~9& z|EERme^{u8Lb~$06!on)-YgL%sdegd&4R)YZE<=CGIq16sVCFEwuh&C(de(njXHu; zR%gt`9YS9|2%{9|dbiZ%&2RhQkO6I!j~q>GUlfAgX)mk z587*?P3lnxrlKfcsj*)_5x?R+L}yAmnDm$l#Q;i!-<#uNiAdiR>h?iv7D!dkFFDmh z+2QV;41y$`g6CL>^nTXDh|;@2LM=_MW^EWj?74eSImUhJe8wN0QP+iL;@ccGcM=od zf|S1C$M*vRLvk~deX|QI0+i(Bw3L)AEDqC?wZi@%4jtS)+T%708DJuu{5N^1vKrpU z<@*Il*KhS|uNNa^zrRmU4o;`d-*woFV>NBXD%q^ci&fXR*q64H@C2g6xaA9)bj0%Khk5Q5Zvc{t~M5Sa-obXuWA)MR%g?; z=@~dSYE5svw}ew^*Vl*t1`g&xkx??kvF!~rLQ-z}^jm&^`yv}0$IHp6Op0+x!7Czv z_UNl=Z?g4sXo)u(;2ecornH2Hf){I-N;ZP8?DowygPY*$OTcaMg>@&%8@@&P#as@H zxiz&v;7j(klZ&r9ZxfmncCKDk2fh(^JNCkoV{OK=j-{Sr_Bhl`)=BOG?w82NQ#%AY&rqE&+*b5mA6>M}Q{%JfV=)N#9d8VSdcEt^97xumKKJ68dgfb=YDXFVysH;d|w3c}K;&YID%*|85 zx9c)|sh%`u(5`RR9{3XRdof)_jtMK+!$8J!t5?_SvcIds9crr`&O%jtf+>+z6rJ(~ zX}ei~^k*{+c97&c&F4L@cH&=rwSl#~bbYl#qU(FMLfi(tAzFdx)6( zjPzGhqON4axh`OU{$-ZxlTV{JgUNFgqKq028``eZ;8snkzJLH^*lxdJyAD0a>!?Yvj$B%LW(ZVHk3au84a@4In z2W9!D`bLK?dYTmSlz3bkPWByp0jd!TfcC>5hRnQ`bDz-#2F%#Jz0Lp3#oHtb2iw#fJh{Nqqw@Lw2&D_(tE;smSuNW}JtzQDFAo)EB^fPP)EGt@9-%Ov zm?rWHhBqFqG0-xEi)(aYgS7jmIx8b*jMgjf`F>H>-sCbqJA1)v3iL@|vO%v@@n&UZ zM4_(%pY=wt&Sllf3Js#9B(G>=P#)=q_q4SIeOO6lw46(T=0bM^ffyM+X)4-v=r;`E z4fovpwDkt0DTuvy(-J3nC(z&E1*Q1z4QrOzu;3xBZ!z-M-4&$&{0SeaXjXAtbFxgz zLm=28KS?pglWmGT8>s~}7wBy3KBBNVsCBxm?Z-cz%VV;`+Y%uIh~ zs+<%0=YN985*unN)eT&moe!2N?b zg1^Jy`G$$FgFC7P?#NPCop`f-kJ=bi>#ZLGWf!g1fB*T;Lhq~MS~DE@6s zjSm@3Q7W){1Fm(`rvav$Z1$~ITw5sFq2Xu71X(tA=*&b@V~nEv+3E4VSwqlL z%|_``&rb8XLHprahG@uUQ*3;+%khvnED4V$L|}jSvsK-5^q75=MQkck;csX`Ay9VB zOXC|`oZiIjt5uak4L)`%W3(RE=px(`w z7H9q16j(pP6|$v+e*^^*YN)8_g!;Z>rjMvn{4=IVb9}{OzQpHxay0fxNZ;Y_VdtAS zyu>Bo0xSXM>f*WpmlaoCZ!XiG#6M}zO*RCsE}N50z7}f1Z2k_t!lVhL5#N_EAIp+F z6YzpTD`=5Adwb4}Z%VG7$YOla)tl`a%X^%W2Fqya?QJG8eZAnP>jzc=GJD7}yyfnE zR_*q+3q9b4gF6U(?Bp#n=3*P!RAiJ$e$JzD+1yOGk5ag8TbOG$ zx$iU2h@u9~e#QGQ1fKm=ygn@PxhDd#uvG}@vwdlSLuV)y_vit+2Q4hL(`f2O!y$`d z<+nTB8i;Y~xF>k7C8PLi7=bVy=~`pW&N)STxOw%_1k&1{A=>?yAzL!l@K_e>HS20w$vEJ}nOw-L zaLo?gQW_w3j~)kb_mT1ESTzp%u43KTRiV1Rc<{4ZNI@yPVU1H=n_!K$2>Tu`CEDKH zrR7rMYlpKze~^vUx=SA&Mf0S1uPtq}VL2@z*4$LSV8=gd<>)q%X)aLAH((7e^ zU>Uu^9`*8T4AcspM8J5x%32ek7VeIg3{U>M(=20LY@v8$eQUV(r9|A(6vU2IiPm_c zz|mE_Kn^tRP5RMoA%)MkwzV>k(*-m3jS&jFUSpbvd8fU=@kqf3>dA)5wek(oy`N8& zUo9~mvGkq6874>35M{yz!x}xaq)&bi4sM*Mu;Xu)HKVC-tCud0l=jJu50XvW#XOkE#%$Uvcv-V?lL#2sUj#VgO917 z00o3aA|Mb?xwghfG*EBY5v;+4{N;Cbwe3lcC;2B*^56aq7uOdyUh&6rqSx2(_LZc1 zv%PZ~;tlhWWsvm$5S(R>si19Nd1)bX5*0yXMyK(coP0UEdu=Vxv^Sm%1DO#qXnjqH zM#8mTiO|J-@;DQR>L0Dj&;F&y(Q$it$wq*NGab06^({;#X+5D1K0zQ!cW80@1M=D! z&y~OKc?s7<_{KgDUKZ_7HaHSgKO%v@T<^Mw1pv{{pqkup%fQn;WV?tZXR+8|J=J14 zlQ}yQLqkQ@Ef2kFY#jE=N)ute;y3|cL1t4BTy(a;;SP;u{SCibGQ}~!1%2nxw8}4G zu2rz8a=Yg3o(->XXUjSf`O3yfi_NG$F8TQ(Q%nMjWAu`Tx3;yc|KYZROZ3uwqWb~G zZ}W3yEl!XZ*sNtEk?(0kiL}Nv+EI588G917U8A*KheVv|y}B*{XV`aiWISQe^0H)x zNj|*)>rkCd1Q*pQNyMzN{7hLuSC@eEB#NM8Zv74v`S~d9p}h{HZzc6kXpKUU>mbC2 zqq5&lOsh7JdnZvt-{<5pZVL4M1dO%ZFEnqVP_@g8uPqSPy@2C6HryjF7fDy3@L z%`(l~2S!Y;XX3j}0Cm+2(IeY6(wof3Y5)6l!ewMTM&qx z6GQ(Gs3d?qvf~L-6=sN+$Zbagz`=&MlRXqnpj_%u$XqCmVACdsxa zr9obae#KYu$BvtABKtrT1@Q3*v7D}YS@61*o_`{hKt?&=3uLLoqjFryR*zOsdE9d`N*1+SDhenW9Wc)>_fqaNJyG| z9F$*tLX^fWD!a&8=<-j-aXyhwPCaV*@E)O}9A89_b#t;7bu6c8=pM-!kH0QWt;o#B zQ7m4X_IT;TE>TI((_59UrNv`DNl_v&Fx}9~$xB5#iR!owITw+QXR2T)4(F^J+ST?; z$ff!Ny#hY8qM@VjWJzYd{hzL^1)3>VScEF0tvI3a{9COH9ROkcqS7sh+!*rl8e+ab zNyt@hw?$DhI4vd_=w!|4$> z9@~>#@CS;63XC`ti^%Xcf;1(Uqa%#Cz$U3*h;Kh|udlBwHu$1!oK_YL2U~;ETFjPh z=<2+u84`jgpG5TMDrlyB+gMp~#Y`Cre;~7U>%KuqpQHz|ZQB%hSF&6r7EZr2_>bzW<$80WqCmaXd$p9lf}Z4NKA#>S$<^%_A9%xU}EqE<);)tj|u^CI^mmW}kn z{x1e75KAdaclnW14dapO@^}@H7I+JhNpBHOt+DLcM5LgQm=9_p@_+vxB&dE&+(bJt z3kPUK>J1Z}_V%);-#vvsvNwIGe0Da#Cr@)Ny`V!Q<~HK`_L=niBNQB$8%x>lm**WN z{;=+NE@3_SkM`$7Pa`_tW4s5}B1?oI@C<4*=U~2E`tb2&*H3cv5Ff1ghmRlj6{{*~ zkkpYy^t*;XdG@Tr!%AL|-@JvOeAo#lP{$eZF{=UJVU42?$}YhTaZZgVk04fp3QEBZYeD&&B^m{-w51SSh;+**FI_ji#WM5{3tpQ}`yBX}ww)MP`GM*JVVC5hhv9n4q6jIo2H zyFFceZEJ~%@!}FAN4=^1iVgg_=QdAw1%%Q(byKQy(oxaT`zIek(XOs7PuiBheM_IG ze-lBI%;Pz-A6n};Xa<_;{orkEWQ4O2dl-0YX=&*`IB??yY*9qUeGl5B+`RlM4=ZbH z)Gd!t)GYKZ2X{q9$M^5um_50p{$khZznMY`K6Ue~-#hb2>aprIBuGwXGfyAJH955b zX>k^eLrQ6M^xO4@APwmac~j@%j*Qq@zI$INYbKx*4tYxzkiI|BhGdLd`GFAxVTp;+ z9nX7%<5=F*Eu3JstuU!gF-lU=(D>5DLN zHjUG1b3%Tc+V$Iq4S!2hv#PJET&>}d1BU&ajOenN@hej*lma6;8Fz_ZEMWfD=kY}s^Gl8uD^G1)%1zG`0*MP0khnPaEG2GW zWapy30f7MJh-o{HNuoXcZ(N;4t<~SRd^iGCK%VEb4GL9}gg+485YBl8e`wE){k1J2 zcSp_NiE%p5xvw}31sHd{ag7?ik7EXE;NlXscxnuqV3LiiAG87ac|{pk+t|1yI6OwH za$%+f+27N>PS^Ls@MwyD zyU}zBkhWajuxgsV`S|;pe@k5TE;dX=+;OnFzKLa~bEzkewLV5MD=SNbDL$}WR$yvO zGH^Y9{6cl6+G%ed5EGA1!ZNI_*{1ldIBki$X@c0|_%CN41bu6&U&}iTtk(67I!+UT zVvnCTEVZ@SHXJ|R@;85t>#}`WC@rDb`7$Ar5F3Bo`>P8zRHop{X+`F9TE~eCJzc>_ zah>bhJe6&8XWgfW}O*Q@()gR||fwq?f z1?4Vqi?-|pM^LeND4P>H<1%qLX50AIYVxh-F+!&{yzGqV=7DMBkjgYVVCDF2IB;tn zBER`5ZLj>w(tcPqIC0e(9@q1_^u>FhwC!Y0x9|qZ7-VK`7R_fQ__ccXx<$M}DFC&i zBCIAicM-s@B;LEfb}o)JT)x#TUyG8|FC0&pksv>PI#%t$j^fY1p$ICpSKf#Q&aQKjBS+}m)|7O z(Eqpqla$uK(x>5QynK8mk-FA}C9Ikybsm+O6%6hY<@NQRC(hxNy~)kH=gZwmTgZ(v zs?JC2V}XZ_p2t{NFOeSk#}1P$E-qr@V8|x;G7V^O^W4APbE;2-e z_YaO5`3=-F`jg+f?{6V=Db_TSr2+vn)uw2ScX@og?htbsrc`Whk!$-xQmEy(m$!HE z&0vLCW&)=*zxSsmq|Sh-lVFmY5JV^NAGDA}w)Kqv5_*9ee#v2o&(xSXdi0mNRhXA|&P+SCQd z<}Op_CnzN(YLQD37yxYWDgx#!_!{pfWrdoItlRo=OZhBC zW@Dn2(()KK5~d$)FE1FMq|f-&5-B*{Dlmh%HD8hjpE*FDE~s0d`^nE#CnXKlt$ZSk zS}7!4ySjTDCi3o;o86o<9GaBk5jC~7>4i!;SvyI6Qvg}t7%5&`lNZpPx!Cr#J1J&n zB)P?zb7Yg^-*TB8#=dE4YI^zdrK&^#%7McX_7v6--Amn{C&$OzRP6vS0>rXgB6^N= zmZgfm$x%GJ`bv*RFheK2p=Np7({LX1LkJ$Lm70>Fp`p6D`L8Ukabk3^P!yscG`*QL ztT--`l?$qD-COq4em6`asm|aKa!_(nQN4YenOQ^2d62$jx>-RM8X24Il%dAJYMp&r)Ypwmog`Bi!!sh$ZRCYt@taxL-k^flb|U@JNvW{VtrHRn*#lT3uh`16yg3L zk`7$xUPabC4)VeR#BKW@I)Ij@Ng7K`ZmigR3)s$1H3`=)JOoY-x1&-|6*1{_Q;mIwf2B1aAim!CTt6a7nbuI(Vl_QxAPzym zzdeFtpES+YDW4Qe#dA!Je8=9dTbW)PJXfEwLxr}D@0QSr23MM!Q5C5>u9RrQ&OflI zv9nrF|9*7f;cx=1 zvG9WZ84Ggba%`rDqR7ZfxCC(MpON2I0dnx(Rsqs)R~R>U>b*UI$N%v>w|?XgvY=?K!eMW3V8rM~}|I=b5C*{KQYu3C#A0bJ*m7~LRT zzPb|GMG~yTxf~u-DcLe(SV+i8;u(s^SSSZ)cl*kcL#=I7t?{q$EROA+ZBQh@cQn)t zC@XkjVin#UJU?Cyp4)G3(QmsiMFlmw;=RFqLEJNUoc2Zv5Q3STPQ93&!?c)OH>#}7 zQEbbu5)q|pg{ZxJH?0dH$45UuF8DbE_97UZ(ALZw_32$L<(}d?cpK4+a{nJ6A!wg6 zbLY`I!B2Wsmo6D>Lt_u6Xzu%6%hlFbPO}(~RKZE&!lqn!Vds_|Btc`C%^ACu$EhHI}x%1c*N|5vK_&=#7BU7 zybM&u1sSG+fxyjrLCq-c1bSS=xFK0v>{CntXPaN-y(jO_mS(nf+jg(&ZbMF`QV*R4 zi`<%PHAmBp-(RN;^FI6cK`ETj>5#N(+AsC z-P7IthpuM@Bwuy&jUrBOdq3+H3zaZ!hrUj_uh;iFY*9akS!TV3@$_@#xBh~LYeB(` z_P``|&*QE*)&?ujZejS~;KHyf=TzO{2*7oT1-$;~t(LttJ8n3uX3$9l;YE(mvxkCG zN#R%+gya!@6(aG~diuI0lQ6Zym++XZ%uGTqhr`_zBn{10zAZv_o5}F3>fRJiM2qlH zPEKh6e2M>X_6law&FgYF8rI^EWnG@^5=<=MGyO>fB&^RaE{=9;4GgJ$kB$%mm!~rn z{%FUC?-fmZ>b8z~6tbx&)FghJz*MI^djr=7ulXGgOFkokyork|A&>pQe3s-&R#w1! z&ND~1h1YC%%wjG7*36k4vrCcw$k}c7ZW^Ocsu(NO!(k5&L&C_RJeeyKRPOO;$XPET zG99h@oKzukY{y(JX{<59NfmXvuVQk1FNb3@TSJXeG(MekWrABTeyS6hTgJ{3bvYsX z{UTE(!>;%8egBX8iL3TXXvUv{W@=U(nHfh}S$U#7qT9sX^Wx#d(~FCXN2eF{wY5{T zikji{SaESPB14Af&^ zR6PDnM$c0XirVPH#InMJkB|L+{+tc%o1L9qeNI6wn`|bDDk}JEX+0hv)>cz93hI!p zJ5vYOK=}_R+mK||0Ct&Lk;0>gj~{{Y_z{R!d?rWVaEydynkJ52&L5aSU5m7ix&{e~ zuha{MllffJ^7HehsUtcy_;`6g2@8Gt^a(sC;d5q%WA zefeL%egO+CoA`P<`qDjSe`9^U8ygc76CkOFJh95U!`e-`D$gd*?jQ}qXn_PCI6dtc zC#6{5O}wYyb(lqzdO-AG(g4T6AHWgDwPOfCF2T|rI}nw$E@HeGvvT?S*Z6N-#IV;i zL==DrxKcX!EH)LYqyWz#BodLgRWe54X?c?-fpg!A+`#d^jV0-R;+J6-l-CC-@t60l zX}~|c9k?yj-#hP@m{0%0Z1{XixUxh0v}+(Pu#ITofGAwZnx@kU7gEZa)-&r~xBGkg ziqd?L)2}Z#x2#~>>^mCXsvel)vq<32jaOO<4@;NB)6XKJk+T(F_nytno7_OvX9$;s!IKtLjh zUzSfm|9mlQ;7Szk;83)UgBbcgb582>i+6i|&4JnVu3E^>?$LM;U6$7uQ-KxugPQLY z`_$PKZy$mn2PjL82zfuxZ;(wHLpBLeR(MD6`pHfg&?Q%CoIB1-6@^%5{NVX`f7B}5 z@fWEHX{W=|O+m3-ICb^{#7`Il$rDDR%Wo>7)dN~nD5#Mv#=9QYTzu_Xyilp23}mz4 zRRn;W)>K*5w+?xedwnqY7UN3~_Q6+#pAK+HLLc_$D~dd61oXvO2cvVQNs&8Ro!$rW zc;EP1xH-LkNzZIWG$J z%u%SESVsO0>}~!L`~%P7gt0q~|Bl2pTMFu{ob!*xp8JsA@8cO5`Q!9Zbnem^)L#5? zvH&@WQQZO=Kx4XHYe>hicziIuW(d8e_voZim~Nr!y9$4Sb;eX0>hQu%3;0f?ao*xq zW*C5(W>>M2?;E(UCw_VQQh>;;u#}&-zC1NGztnDhpJym)c|9AHPK)^1k=n$GH`zlpAwk>{q>6MdWdgudv<7Jm>Ry z2s)mnsWDu90iR_@i!&6^hHso(PXkz)ggwvI9}GSx{4UvGIrvF){a!4oNZg(1-|1F_ zwYMaNw=u3LHTc$P*V6B z7FsL&UxsHjBPc)pO#aIY9YUki9oUGt;?aau2zr)evCjkdc7u+0aZ=m9Dh}cXDd$&} zGl`_tHTLHka-%`sz7+SP*$CrN$Z6FXKd`JUW;o6zN?t3 zvB3J9#2cwaIH)ia6_g(;8Nkn0e2X39_Bnex)fkXI=`G&bh&cElc^{th}VnsYx>>l z($*u3ucMi!Kpr(1S>I(R`5j#*YvNOG3h5bPb5H$=kF>UA(C5C}Fn$Lp3pGLZC-`KC!A>X798V19T*60CL&{B~`ZzeQ!RN0kX23KMZ2@siT9y4>8N-BM-PVfUP&}S2ac1!P7 z>4BOE284KCLN@X?fm>2K(_%y6+{TE-e}!x{*x-LXn{oV7ZyMQ0FSJTATk{@W(m#tG zk6>u4a=k|)s9Y*%6Qm|+?n7SV4UVF!%B$+D+gxr$`pD|0i{QdsO zGooHld_t}KYNCn*JHxw?O4YqZB)z2q7g8U-%Kjf#V#k$~`ATyzxyYPm@nJ|?!17bk zI!`nl5A>HF7j?C)Nj+4whwOZ(OH3{laU`ieI!cJCB{ntE;XP`1?GjoiQ61n`+3 zfC2-6{=~`5rD|n$ktf1^9T&0g-axfj$Ev+l|4v(qwvnp|yI+cN%D>gc{f+ar26}(; zJp(p4EoedMv~fCABTnK@>mQQpWJ>ZmS84BG(LsK?e_^M`zj3X}-z^Wih_Gq=s`a)~ zxRs<&3C!4~u|*Px&lU()`#8JLl0$VRk2bJ5a|M(sFnl^1%f*t)dQ^%Y)L+vye}CHg zPGjS~f6vfk$EjbF@H&$D&=K>r?x~mi_O=%BU@dOO8+@$CK|&=_8jN%A30|+CehT#USa(g!J5;MnYQh(Yp~k6C$pAW9pc zfQM=kA!E#zFa5Z(GnWNViCQ>8hlX{%^+VC5(N7*wdTuh_@U>7GWtmc%?rg_);M}9& zLK0TaR`F}%I|>$D?iW`ScbQxrQ+MzliI3KXs9>(IrU%we~zNgkYalQ%um zhnL?U-fo~TM9Q^UH(n&5Aru%|NKn1AaxNXKVov{+UrX+#wZw$Q-xsJC?cA-f{o9sH z)d;Z@It(1u7&xHa#$~k(*a>a(WnAEgEe4KbR>V+gj4vO_gDB0@#V|$i#W2O?KLoHS zP>P392e8N?h|{I8%t>F}e%M;QR6Enas4<&U?6agydBOPCpdux8<_q^{(+|JS8ZTb` z&ECmMYw-_JclHG30w2-97wMS_*M3s{K>1eDP{1#lFhc2u!4_1&W;mv?prHLacUx3S zLkWojJF>EW7ZkNNgxuv9!B@=^3Q-b;d;5Ya2T)7<8+B-RqKxL;oLy3sEQh`WBIS_5i@|a9r?ZBeRKfcysa&l8Ea$0`_C1ir{#V>0&bcM=U(MstIh}vV+#9N~{X%0v&CUtr1!8@T2-k6B9wdN_W_0^2T3S-A z7)run%*nVek21GM(u0hTA%6KW)m>Ru>td ze2#uWzxb%W{TqxV6Wu#s8S<`3f`j8UWShjoO1p-`B+jJsthNBr4X=L8Q?Jm?{{yN3 z`c>n+VM|CuKZ_SZy2mk~z;r|dHLPo;YC6gXuS_K_T>Q;N_46v}yKa2x53)I`BL8$d zRFwA*aJ(R*Ima+8%7hIW^G!uCkocoB>l{)6#xo6)he6a^d&rnU{i70G*;MJ4!bj zvGqFk?aaDQWhte!|CMfn3&+1Q&`c2U1QV@Sx?|f+GH?~+Kv`Fq&vT+Z&pi};T=DMT zhm_(uMC0{jqalrB9qXt4P5Qy;Wo)hE6tE5^hDPQIY}#gNJ+}I$Ms{&DtX{gC#p)f7*q2S7b5qyeSb~RpXW~0lh8X+ON`!%I%>W6R@8Fxt{1}TiV*hI zsNq`iqC@HnstGL3_eEzZ3oP$ibv?rF!qe#61cE%LIU zBVMG31t}?6M_dP&tYLku8)t&5G%NQ}1Fb_*5@^Bj zC{uIrnQM1D-W*OF30BgSn}@hS-bK~Oi(N39Lpf==pV-lad7XzWm$XX*{gkho!;T^x zUZ*4)LPL5xcTW*xa(D6n_K2T^5uHOmO~uh@7`C)Vay%24?jMsJ*%V7?rtsAiUWntt z1F*C26)(R?%5Q{k;SfEnY5Wp>)3v!|ER0E%i9KZAEfk)ao z9mm1gVc00&@T}Ux8;grm@1l;NT2WnI!O`JnALz?;tz6Gn`1Sp~IB7(@?qJ;0a2`^_btp8b1*61Tcc)oB6= zcWGss`SrM2r#+m_lv%qnq{nJ)TZV%pl8h7rIcbT^_3Tcjv&2Uv(rm$QUK!tn=_^*@Hz5B8}3 zrx4}5f%S2&JS5?n)aSysm5xkg#@-(^Wn$~?7{BlwKrO!Am9x{Cj0-B)&OV2ZHiCgtd|zWg##hV53U+hKKka3w8!nCdG2@~NNeBhe!7$ixP-?6WQ!SBHrLJ;u z&WXpTY?^%pQOf+D#%QYO>CMQ-DCc8p2u*=XIiT7`40(2^>#09LbFD8Bbizob(+(EZ zkuLiGSJy}_knl(~TwK+cCCAZLW8g{=r_9#nnM!!$?VZFG)A$TP95tFy4q! zpv4YmV>{cF0d|=V7At*i?eyV)W@rdsGCG1tT6>3ksHhI7-8MQA!ESv%+4fT^v!H}# z$uZ_u>$)0u50y}6@bC&2iy0{5WuGmb_4`VH16$F12rOqfLt_mm&~1<8jIYhtMwH49 zul|8Vke__CZ>`RVt~^h+Sg|uYhlj%tEa!H+pfumMP$hsdTG0cF##mgl{cQ2COH4_> zAO%K3y56d8Z1cGVH8r=Gb}FzK;cNve(mTcop73noMw?pCd+$a{(b-7nOL}2gXn-XeEZm#^V1S0J)22%Hk*0w!W)kq?&y-# zV?agczbg#A(pm(j>9(sK80(_#3$IVmx28C-QsUt`gH$UmgRI~pz%q)_@Exl+FSBm< zjT*XQc#o+8zvTElYCz8?jnYU-ZR!C1Ai^bJZ{Fxfm~)d=n%qZ)H{SCEC};T?>ck zj&lZq9Ermw%7q&}(TGA@_D=swbe^?JIGvw%3U-=rm?H?iu23MkScYGfxKpOqELDuu zov@X%Hh%mu#TFfmCgT?4OE=luaq0xx!9_O$thLC6kI}jWKh-}F1;|R{?~XlRsi~OkqPao`!CuN22777vau^&2>3;EbJa%Yx9|N4Za{?b9EH>TH z-fGuZE3N;XwORjiCjTZ^yPe(O!!99?I0mj}7S3k3%ONyf*fi0A^4(h3z!Hs@|fmy22!DGCG|$Lsp6d&GGsL*NNDnDQvob_+M;R(0esJ_EC^w=C606uE~ z!j_Ew%v|<;yeDf1T(djt#iVT?*ln}6CeGoo@fwm!uGO1kGHBT{ohn%g?fE2Oq&@-- zTQjAoevwVajgqV0AU(~JU}St}_~q<%pgl>Q|8LwOlOOuCO_1tc`RqoU;sY3&V-jWC z4F*dR$2F9+y@}lYi|+IsjD!JW&AvvM0ppiuR>0Th`1<1{ET|COBX;P7+E97OLmq2F zvwN4ZpY(aF*`k;3lCEGClu9Fejd>azRaJFQ+ZnY7C3={r8=}0f=EZU;rl!s8Wq2U( zD!|n8>ZG4YSi=IY_9ll37?ATQhZt-qEaQj=39ZatfHOeK{64$KWC1vt{|1#>K;pX1 znlB>ErKO7Pjk<#ld?lwh5uLGp;@opU#}p4V(X=zoI2)3p<5)zkQzuoJ@hPQUto>6& z310dccFts&t&cT14sCp+uDSGIuv>U z;wF2fqHVeU?C3ikiosFg_`|Mx>ZL>3yG$7%73MDO3nnoC3o!p6)hqcw#AsDeaH_sE zCzB)$9{m5?y9!4~bT_qUTs(fjc!2o82(LS+xwTuxovJj|&dyoDZUtK)L7qgxx(4%d z({Yd*g6MqdhvO3RR!Mrb2~6e1vcSO##y%2io*Le^08S6aW_RV1ZvgZEj2C1Qnl9aK zwKZvf_?;#>h>0mWQMO}2u_S35u8!)h%|#ZKgMw1w2f-7@T#2Igf z+xD8FGC7QB@g-VA4BJN3G2GazrSt)-q<*itv~OTvE%AIp{u5JtR-?>WUofBdgZ@2n zM&0wtk*ptiqdyKPx~<28sU_zg8$kTT>=gx~G}Pf)7gPK(5|2tv)T5m(oUeOvL`6~7 zUYObmvRPoehF3lFH-B~)Cw@6YEd4mB9VocHO9~7>WK*E-GV)fm{p*cZ=DRhiR-C01 z_)kpqOtK1^IhP#og5#am@XR=aZ6$*-YYje|=HF;x@vIR)1UOx{JoChwhT>V3?pt6} zNns86H%Rl>D>`Ak^J~-EcMQ|aUIlr|+wt>5Cy&)xlIHRDQ~`4_rD55fVcV3X`9{bO za_VOPqAb^R^^q(sFSeIk74->;HvRUcZ&>P%yR#BfLZpgu<5wBfn89;m!?C)vNUSz* z7iN}urI>O3(f_#M*zA>I4CZe=xh)>{5Q zZ}De#-);EpeVRtmrqc+(Dlw$FN7O0xigGz%e{S$c0`_GnUd7pQ{wzjUPD!Z9p=Qi z(=caGF9Yh7&d5aF0JmTT@a!k7%otC zplYYo+I4zbmQ@2k=H$+8cP%x*(iMNt@>MFKWvP-&q~lkTS@z!f`sE6?ZDKD~4Wc$* z9;Q~J`E`?D){h)_{g)K=_1T}y|B33|nHidIP{v&o)}pjWXpml2%)p7&&fmX0np-rzeD=6{b5#2DVX z<^Mj(PffjAc!sCO)r^w8F;qHBqDRzZC0f_VyA`3eiH!GO9Dc&3;uhO zAF@J4!PpjGeF$N>NQC8_UFX^2`uZU}rwWh5)K>JDKK*UZLLvaaZE$Va^2c|{@c2#Q z`rp4K32a#!kGFOgb-&TrTHpyg;aYK6V4sj%U=_nMYkgCjxIWJ^%T`$fw>gU2+x+cNvW;a$jXpYXfDE#Im@qxvt@YVsT>d)1T3Y6? zPi(1D_-nau+Oqb1e=q~Y04=Blb6>HenVef#S%GqGkVyFA(-v4Yf>~e~dYNWki*)?^ zItZPXBY6Se&G=Uw9j%qi-LRH4)9HG`eOn8F&~6JRtiN5hxJP;Q7mY@HQ)eYFM^k63{IC%OS6_V)7H+-D_&Mu zviq=!=PE^WsN2aj;hp1d{%4yD-)suU4CSp>I!uYXh0QiI-4ruya7=A_el_4+q4T7Lra<7l|8H$9=3ilXmuT@Gq3d#XJ5T){fAjkFWm!tXO#8h~ zU@NjD_Q_ml#ZsMBQ-{-X(-)Ky$D}U3$i3(q@xft)z2kMB$Vq;llolWol%8ox(R8bJ zJP*6G_9DjE|9?^F6f5%LinMu1csBz~RdHe@dO+Zst?TVAsk49VvYdE)7ZDe$g;%7m z^k%B+YHNxuvIZElj}jiAZ)>VWSH?;vYieE(44iU~EZbrYs6$c7LMdfnHNF9qS2i7e z)1*X3N-2_-aNlyT&&_xJ41k^U%#KxA`KoDpb8Wd+={(i5xOYKv+R7^FUqukmFa})O z8WIp&Xjj_0NPNiQ!xss{)AO9;dmL&*vR68=+D>vsNx+o6Ml^ZU^^ z=jK{);Oj&Q@&8|YU;P#3_QpG6;1K~mA}DDQk_ytPfQW#gbfc7XGxUIkfPkQa#866? zO>F5`#yogGi_=kx5nlcpnrkg{CW2{dP$*qzSy zvRhKqEj_l|VD)s>SV0P<*+iInJ79)dqSXJ$J1wiO#=vws8Ekv2uDRJ`MxU|cc>GTN z&*Rt2ng?3Iy)#J<9V6S2%k~K2VJ-@U!ejctg(udovMx6>REvbEVswkL@g!E?Z=JcH zXLLC_kw$USAAjlo6P{N^!{HGiCcW7+*bBSaD-1@ma@-Faze4{noTMb!j&o!u^1qNm zs&du*Oz}$PT7zJ`;p{<#e)*on9`1EciW0z)rIH`tXu8Q^AiKq$A*Z1qxS*jHnY0k` ziEpdIVn$Kim{z#uK@^Ms6Dc7}>X?ZyO5&1z0#`&%u2S>7Vy&i%`I8+@6GazvHSxf# z%$%*^8*(t5IoXQv$91(iTTm$ME0Suv-^-W8*PF0dYLaQaxV8h!wGEL3VYQ3W?Y*5Zr7R-R{O06iQSz(YG$pk`Pczw>?t@%j4U0D+p1P9(hs$ zqt{Ft@B)ui;XBmRB~%r3-~O2;cjTkU*wEH? zZYCHgEO@eHd0Xw*5)q;TmJCW?6}sy;7Z{a0?aW^@)@l7@!95?>X_&Y{C}0Io0`E`9 zeEv??r7>y*3`1B6_S`b#HgFB;*xtf^eKEp&0%%?h90;-A$(FK+kmdCgbkB7XmLeR} zJ6a8O`4m<>j#N|SQM7)W?F!OqCxKQe>-BZ!*$#0fclla zGmTZwIa}%#Oo5o=OuMc+UnCh@P0JVbC$cH2{5WbOnQyKsx4k}BV!(N*KJp_tW?nGo zU7^d@p%>wtzYH~F-^`1#$|iRVMSAc*}vMSIqiYpEXh zjyHz93S0-UOw;Z?Zc&##Ju9J$3yV!|!ZILfECtz3pELwE++fgjS5ODRV7oxYaDpFW zZM_EKdD#}QT>RZwjYm^NpLmt?)=KsHD7bz{g=K;GW*22W(?|?7Ee1|ra=e@qn%-_! z-owT5sD4I+D)pHYd!Ry|uzFv58U;avr1ON;`fg@E>cgmfd|^R#w$fsBTsRNKf)!TT&L4{GN;x-Z&dXP6=j}R8hG7zRMD} zM;5s6XAF;rq5DR!q!(Ie)J6@iOZr9<`@J;VCWhhcjvq^XzcCacI=uWyIjHucqnl2w zf%;>CeQ&Zi=ebOhbOiK%-Y-1T-VYbx#~{yC3eJta{N5fve~AiC!ao-iB#0NzVz>r4 zqU4`ex?AeFI7IbvPeWmuf`gM3YH0O$FP^rV4cMAZ7$c`XN0^lgfMXHCRA=rgud1R& z;TcNK=hP}+B;vOYih7VGb60+|9U}0=nAhBAcB*v6%MQMQqGWsyo0(6>)}*8isp)TI zvf>+=F7hwSh0^Psn>DE$GNo&|YLCosl6#Wqiu*~}eW@JExVUm7l_r(f3Xvbs zWj*mGV)`Q)q~=tT+0|~_)D=NbSM}cWx@jWwN!a1xK91L5T}JF)wnN5kNdaFdbh|X} zsdfa@-YSm?BRbvzDJVMlW`im)s2Weh;p8N_wli71%`}T8KOLZ!sV2|p>TzG}yG@)_ zH6m|j<+Kt_QIq15hJb@OT|E1YQkOfpa55zNwUO>JW)y?$o7#L!@gjqY!vybzX_mRo zL-bF+N>lxtHCB*2vLf zFL=WaHrz=*FiH7QQn~Fkd-3+pJtiB}p3^ew4Y&p?=Tv!8AO-U~g(8;{@A8Ah?K>`% z!eZPCI_xw3>V_ncF}z&cy$WEO9_ExN8rRT$%*@a}`(*ngyo{~k*M1{m*{;zSgAY0E(=R2Cd3Vn9b98`eCorS;f1xx)dD4S_3-TjBe0=9^X@oBhiE>B zC87~8W!!ih#&#n!J&9UScm$-pSbI6yec9goC*V-7NzRSiiUs&KQ%NBAv7{^6<05z=i6gfpiB6JKz*AziyZQxEq$3K!?(d${H- z&YcU$c}>IWWmOv{w;yUBd1uq9ZMEHh(Cj_1!uyL9Q|?7q2&B%*sPoL(hwkXaJ;#ig zK{Hc|v|61i?m)&GLH9zET32{GNX{R824LjDK_AT%4zKXvnJdWZ^*0$`_ff@6qW}J! z3qzKMZ!F()CJHI4;R5_t7U<)o3Z z=ZBtJbPSzB*tCFVt)CI>CzMWSzGd}=;FM%d815;)b|yAKW$?5Z8`Dy;UoNC5Vw<4A_BpBG3{f_A#MIp z>$YL}vTEgu_l?>7NMU8uGwC7b(Vjk~Rwh3OtTlzkzj%oW?7z*OehQ0e%r_%LCe^L= zKvb&JwAIS2cBk|_Y{~`aGEtso!(=$cMOBuamb0mtT+IS z{^o$xC;44;2q|{SdW9l1WU>BP)9!1!No0Yh|B%QNo4fLJnw^*z5_r4ZVQe~%mGO}$ z+_YU)cyB2u^!1+Pi16?%d4?WK8iYa}-QT%`F_Qbh$wLLM5vGElhNx)ta%Q|V(~itv z>ryN1!Pq*Mfy5L`^n?01{SxdG%h$(=Yw=+^)i71@#O%h9!sp$;;~fD}?>#-w8|dy) z_}XbJKB1t7A5ep;WmR29(TMfFN$BKDijGEUU5Ret-sN$L)<9#;-eY!?*Ms%1YHM?w z^km^r`Ig;nONy?0HxXcR1Kxox_kN^)aLjg43nX`o>eqPgr)mUupLF_71xQIjR!hzb zvKVS2=izZRMlmARFe=_q2)Fk@`oldq7TkOoFSzr-IC3=Hc3M>gp+X|X0F0t3r+jp8e(Hs%)mhFPT^Sl$ zN2%XNkc{!d9jU^%rzXP42|J&;8V$S2gRQ*q$q0*fgEC7dII$K}NMSWVssmT)Lo2HkRhnN(m@siw{N{JB@nKzQG}Q+@255X84lwk?T$ znrq{p*|Hh$(DLR92JS8gdqXqcwb_{*Z=Q=y1rFMx| zbS>+>PXh?cz;XoN3g>83a|EYc_3j}`g5Q4WK|WHm_y)XH z>w>)3AT?S2QTabxWT2HFyJR^p=~{x$=Rrqv3g=F5fC7L*&a9&Ct*>;=4*8CldcnZg z2Pmc$*qBOwwwd5_w(!lbJey1&t~Oizc^nl2Y5BZ^otwV7Hw}JrEg*K4X(1|oY1+Ln z0QA*X$D*2-U`ZytXez3|MXQu^u>2#~jy1x`ny^QJ@Tj;7r&fNmTC6(4TPmgw7ACrf z6F#-iWYzR4&P1*!rK*Sx#Sk}&q4z0C9!QU{lO$`dwQ^$o zr+6Ew*Hfz2Fku9sNd~|Ixw^lTf_Dr!f=#s}FO2hWzw_p+y7W|m=#dgZDZzI_DS`Bc zrW^s1`Bh4gLntM1A(Rq)RocfP#oX75+d^^2_n)A-Vm4Efb}nvxY4c`Uq_uGLkTL(x zvS2SrPv$&GZhTL{X@eQkd&-i!h{ci$6u0FvUn9>Sp0P}@e*BMOOWC*LP0b)?UQ_NNl$w@Qex{ zR5MvSLhlrribivqzO44rXg4q<^B={zt&Hf;+=QVJXI)^%3tyCJRKF zP8V{NNfw0geV7N_6#D0J@1xvaiE`?`Vrk4my21c3Ab zU99}6Gc&C>Vd5n(u$h1!&l8qm&A8ijZ>DeVz)8W_Jl{%NC+(>J3>EgdEe5pU@bIrH zh>ula)|kD|K5GrwkQ}uj!?Kl={W%;LT6*~GU=^OvZ;AGL#!Kp5iR8pTd_H!_fLdy9 z*nF(AJS?yuCKc1xX*Z=!7=nMatT(6;>eE}VFRG8){1B@TCDsB&n?x&72r|uM3^jNR zv~+Rz-6mEvQgUWK&~F_1%Y=;ijBt$ID6TV1s@M%x!0dC6fGWACh$f!gE6d01mo;{X zixk|sy^C!uKZTgSzqc~WO4e)VbZF3#1Lr*RUH4|b*pwBcvs(l28oeepBq2kkAWbgf z2G`McTqSsp7%kQVn{N<`vA{;7jb6MRfU59^~uRa?Z-(DB7Me>@6{qkR*bojjQ zkF`ZH#>cjq^ZqKZ2-ECXI{oGhoa>EasG*RjZ7cV?QIGve23=B6|B6{Q58V2Um=^Se z3g)q$Sh+H_&WJ7IoPF{Xe)1Ybg&#;KzkWWbGid5#BT#X`c*byvflgj(;H1agq4X^(Mf1WzPeAM9HNkwul5L^JlyXe=j5|5KbYox`G0 zbusQB=I2xl(yf&(@X=AW1u`A6?g!W?&Us*UL$PicQ zxV#)H2z8D2zmMV06QcBZQH@3*y2e4Fi#iK|E&eQgR(b&-ODESxf_N(5{US~>CZO_L z@v7N1`nF_#)$I&db2Pm}Snv9m^tph(-CP-#Drz{WXyux7C#=SPKj(h_Ur;cgLu=1F zs9_LT3H5JK4NB$XsU}-(2u?z~*$fDc^fBET( zFCL|qA)dw$yA^Lss!{U|9VtjFt<2eN2Bq}h+?K{`vs0s zHeoxepj=#AWSKI#?fy;&_a9Pj?Xq2GaaKYf)#WEFx@z4CGM8pU=6t>oQ>8*P@p;?}&=6mkBO^`e3S^spDGo zUcbxnJeOchhu%Q9Y>?%VVSx-6y+eiV&XY1BCB^WRqj4q9=~D*>Z8018S-jXfF10N+ zgoRcQ0S{XS^m+Vq7QKDZ)d>l5f4T@p%LS0`E0PYI4s{OQiC7wa%VU2a08yj0q%JX( zZ7EZGpwIr*XY;K>gy%BmQF(dWxP?nuG(+6`9$g&sb?wTMCqJ_+k@i<1~R*79^dd2b^anv#*kSf1) zKeSA~B7a>JUV9z)e(p-z-Ic|`nF1tUM8w#ERuH20uO;=Mn|llGK>nnTMspT!?7VDv zw7Og;5Ro&5>yh ze5fRIwRGFH_%>_B{^0(vgA(Y4s6+9F6~V&uy6Rv&Orzam%@^ojZ`&Uy?!b2U zi{#eMIC=n&i;qlARcH@|3yb<-4y2h5RTj{m1?^0X{?&QU;~gxwO}?i)lN+p)Y+Hrkw8A#?PY?C>W8zFy zU*3?%$++(I4cLheWBphaO)FWiMSd43-{0QDzR?2!nhK3h>~C7>Me93;)Km-9$OAvH76quoP0hOjMk^}+2vpHS8(Y-MB7vMP@y(Uk@D^B3uk zzrSG-le>!;LS+7{LF3vX zPMSe{hU1L(b6=k-X(xr;TV13f_WV)4q+au&jZy*^@53=TwBI%PYHHfS3)VF2 zm>Re^Qef2&f_EU1Dt%l)?3CaVMKodH9yoj>YRG;Tfx3RzY> zXA9E`(%~lqs4;>pyj5~0{uH7jC-(Z;WO5VTsJMiHa4Amn=A*_L*|Kc8$~LB@L4z5= zlNdiG4WA-UO|zMavp63w{qo?k705?d|3xijo7+;nfyL z;Zdp*bK96@N$k>IJRc1q_sa=U*-z6Zj=;CAk6LM-l?RT;LW81R5xFk>cf@wqD6=sO zqp$Q3G*1}fmuT~vI1S|Z*F^QI`-Klk3nKZO{sjZEr2lUq-)@3hf>>Rp3P)^RP~*z@ zG#nft&*kykLOdN}Nh@vSlYPs7QwSmReE9iQiATBI*oiN;whFm4uo+*R@mUbj!%HWOIW5nusns$O2p z-`n)Stc+^i&eS)ws7{W0TUb9^w>7kamQqx%R5nX{UT-5$Z#%8od>4UF)j_;ewHO!RJ!V&#S`GSdD1hKFP3bQ!^0v@diUIWX#EHr(m7@k+ZBWIB>5b3I z_akGmZ9j`2<=?>HZ^ZgaYc(Aol=2=KYt-4piHL9!rp5B#w8jj6M)V0YDO5PlOl^mb z*0vy+#5xbB%Bd01HjW9(_iib9R^_>}&S#8j#r|C=|D+WAGl!5g;QvcIN<=d(TtawS ztL-PIH)t^9)BB?vT4Q0?gV0J&pYjqXeOvHqDBn4%np6AF2Yzn$?z&fk4JMFY;Gl`( zVpKUCJ>unVc~IVHSmv@wpso-_CI04CV&yosp$Fd&^atubTvN{ZQrsB_J}J zq)wWF5zOFTtX``Bno1~?5?K)zbe%`>=ox62q6YS2bg`BArs46h=P#}J^3iQUQ|e8-4FTi#aU6XgMV2GCz#KXMgS(UA7WEb?Qx=kC#nH z1aqo4XeX7D-<4vQu;(deuB*Q)rnD}7DH=c^Dx!a>0qQ+hrqk63uj%0?8iNY|NJ_@R z(T%CvAe1PLnrUr;&D*E`+v&yGghnu5;I+md%#BmH3B)=5-;Bms`I(*OVF!pv<+w8c z0Ss&+ujaZxjc4?%iF@r!8!GK^$>A#X^s!ep_bt8wVV?IC;3d>5{7)NP(HD?;_{EON zu%G&s4~tNg)%csJJZ}PZKZM)Frg|m%*nI)p6r#jBdtKPimp*wwU~`f0e@4)a4D791 z$uJ(bvK-pRZO>4KX6@<4L|Pu_=O~Uh(?7isz}ZqgShcm+$}F7^(ptV5AbKY*Mu_IqvE=rN5FFHcpFn_udpad8Nivm()PHQR6JY0>PfZzm!DRTD(HC?Az+2 z4vgnP*BF6lx-%xFvFQS@*qf>ci`8>}Ow}B23@$O*&hK0Aq!74={)>BvZ{l7x+Y9Mx zoY+aq4A=efZE;i4VjlW+QyJ!RyA`rR7k3iCx*zn`3u5n28~$V^2oZbAQIK*pci%JN zYeJ_emaQI4Y0%Ix%b(fWq(4B$+a7*0e7lT}UK5c`Er$ZvIZzHAx~LASQol-Q)@BBn zs)D^sX$HURxsDJEunS0L#H-8T&cEc3GFghPy~@1z{Te7h(b8I+VcFK!jwtsj63B4W zwIh@Vj37U6UG24Oo?CkMo))N%axikxsfUtZN3cwV5k3o z;+Lkayrc7yA`-~xYue4CCD%P5HNNc9e|67N&MDd4wpYU--Z#u8LIP2{{GSpf2#61L zc28^)x-Vq#>%U40Q-q9htNiDv`5#0~u|^9wlduIJ=Yovo{QU}SLRF1Hv4V-6#GV>D zwZu&zj^$rp6x|Q|x?O1h@#Ht|d``)}x_BB0p$ZtlK(J-ByO+MHpWv#eT|bM(hZH&+ z3%_Emb1E7q&#PTJZ$5ng9F0mB&G3D=LqinwzIp6&UzDb^43bLbq^8u}`s5e+6=$f< zpf$?`ZKAymZ5!(%G5)!_Cks;aTDBNP*O*Stp-ufDl6_C%HD0 zwO3m3uvt14@)mOB!xGXeo(^>-UYFYZ$o#KetOzSO*6B2n5P^*q-GP&=%9P-@^P6Q~ znkUveZ$i$%kGQBJX29=mHh21*`iB^7_#+mChrv z^L?hm7*t(ht1(A)&fUCsNbtm%(VtiLt}fm#7Vd;sjeWfxJlSXABnkHEN8(sNmZc;5 zre;oP04E9|O#zjqghytiP-Z^hgZQO4T@E_Sij?P%QPknz|9T}g1s8SqkpH1dd5M9K z-Re>LXL>L_zjdBMvHseSEd8IA=ubEKA}Lhk=*5%nU!**G)x&7)(o)6*^m?32Gp z7Is9kb2hVz*kaF1rs~P2=9+!}U~+GXGkEUlz6>Uwa2hUA4?lT}7{6WlF%zlLo|g3w zoFuUGNAzC!XK!f;HkmksLHQ3UuRk*co8Qf;C;e3qNF|E zdLl|&qm{vS)7!#b3H0@vxF&gVF-Ab&W5j`6o0kFX8st#8@hGP-;bcubaR_0B586l? z>L=te{JxUJuaiwy)j!oi~l{eHKi2eVB9u z$oRcPA^|%l~*rmZ}h!KTUU27W1 zGOh{qfbR0NIH?O>|NBdV&)x13$0QqleUc6@r{#@O1ZRa>Sj=Z>^Kr1VuSb1uGoy1| zk*8p3X@02iP$BhEb_}okx>l<9ZLc|EL8vJyE#>V5d#|0_QKYG+skuSgICgvO{T{8EA zj5n%P;^jt&I7SrVJ-d6|b6Y@vEe9H65uULS?Frjz>8dp2jzpDajt8*DX<_RwD2weq zV1bX|W1EVK%;DbcO{uYt<0okpV>Beoj{Rt!c9h)Ttwi`t(!rN){6(S256Wn_!>t&> zET$kMV;dcJb#1Y@=IMK+$4)CAnXR|s!jH9@uSF@EZD(qqW&W`LZt7X-A*r0ESlA^r z8D^-@exprL(i!hfDw&Na-}f8kbRQE`sPaJ%jJVF5MpjLRgQM(1ZNpW3cD{((R$w{g zZaM4*eu~E}Du)a{40shT^UT1azPNYLr;&uJ>M^eA%r7S1N-?{iX!iJH_xvW;=s`aS z#WB*ZoN;z;&*$1#VB5zv_14CuDMR&(9X95S6+*L&^HLpFst;QvJR$?A?Rl2iX$}qCDt6^vb8^+eC;+l|WE**OgxEFd%qb&D z;XWSM!aj>a+i`M{5>;8LR#UQ99trJ!Br}9Pc6UcA818jHCKEBscqpcOg6QC`C0~0i zrYxAjqOQN5vrWHVs6;22rC<6Czvk2qYl{_jqLe_G+z}YsS<{CyOwGx{)>2*vg~Ut3 zaIwM#G11Y*V3p=j+u#rL9DU15$@~GF_q&Zd9K~bgvO2=X0 zC|jmHGlwoZZlA+={adF>4UB3Vl&WE4(CduR5{qfDomO)L7c56Sop#AsiIbtrBTi~v zz`Ft1a;9>wVKqK$lxw$7UDJ?%Wlow(=8TG!!UpaoYphqZ?#Lz$Y5ZVUS03I-j1k}2 zrzw|ad_JhY8RRt~d2EM`zmarBd($mdV*QR{7X-ix~oL9?QVg{svK z8*Qm^?)?&z7e9TP)n7GVUcTN-ab|QxynLI4q)}QL8rbnrpUp3LD{W3{(cRvj zcA>>ARb}zzj~@(mw6%p2BQ035-x0ADRo|vn%agOWqhNa^TCmR_AZFCNw&$3f7Gs_K%v2g_(m?q|b<#ayb zyGr!SKhwC^o*P%VKwUzF4Aj-(9h(L1Vw3M@tvx)PJR1v8Z|^MI(67ZdGQyGyH&5dC zHfGyIJurzhubx|3jh5NyDkvye{d%}#V#Lj{OUQ!R)+o=-Vd0`8)rqy8yD2MZRH655 zySYTW8Sj34=iuPZTz6yq{$^Sf9}TAvH+9g~)>f`TIX3Ehd&qeK`T2zs3d8`0CkHa<^ieHZ_ zr}Swz$6@TYFYjh5A1;@VZnYnW$G1#tpPUA7#u(4bTY?u~jF(Q4Q3AguwG^)h5uX#3pHNU5$WG#h` z($VKCoBWOD$u$#h8j;gd4~YKIMDbyo_B+I$MbCYD{0PF%8`)wYpraJjRb+$0^1$X5 zGUGhf-ofaIn?dl>e6KbC)mvv!57>X!>BqU4BqWDx6qQx$KXC&DH`d z+q_+kFGf`(z+_cSUsqM(@H@lRo7-Cq$W4DtwOx}Ph6(+kzOg|Z;zRR0PQ6xZNqyIA z_4tZm=|OrChbH|&VRnpw4Z3hXf-Xnbt6P4y8tanlvz19h549F!WQu>Er?q4*S-mZ_ zsHHa0%PBEGr7g$MH#$)5InZts6VJF-NLRJ@X~V$VR!M0~tKpph-8O_6Foiv~;14?2 z+|nY6f6a4%s>Uq_nkr8@;Zj@{1+sOaE#w2$OPhQn-n$oPs}`2(?(W}SacdOiu2}tH zE@6;w(&SxT0>wL3xh-odC>XBhNAD+Iredf(g8Lbk)xgG6(7JF?=eK0TeeWDoSBhZm=`z8;*_GPsvE`oXb;>CFUL}a`0{>2VSKE}}a z!{&k%TqDeD?zpB|_q=ybf%ksM>;Pv-H2+4Lc837#zs$^ehnCd968O|>n`7cr%gXjj z*E}&*p7;xviwpN-wZ_;dFn5iT3i6MVYW@NiPp0K04iZIIs%8Tz4baJ`ba z~LUqWw&0!Mr9WQVfaWm7l21{cfMM3emYfx&kZ@Pxzv;A z);BtJJgI9TKgC| zE$J}*p+y2aPMNJ&>amnx|1595CsiLCqEL+s&V|jAN_vf|YgX^J*-89t;=`4EZ`@cO ztnzN{zW6dR*7MxwIcr*?f#NM+p{6`>JG%;ZxKcg={yrPXc_YW@z0@Un;8UN^N+F#2 zrD%%@k6W>=+R`Olgxlk`=H}J)<75!7mUnK#b z$4J6P%12$0aSfG}VyiXBs}GlF$QOZ4GF0xs?{?rTFnf#a?CcF(Q)5Psn$pr%R=T>L zy1G`s{sB&M1QeoZl}vnN?&I|RN0}G}zPp;KO_fpVWLCW$*pgdvAWkPJ?!8h8uKj3) zGR(DZWonAAj@8;#>?GZ8>lqpv685b`kIN+maB773_-7O2`U2u8r-)yQ*XSWJW&}UJ(wr z2G4sQI%=7EVe{&Vn9)6~JB^;uM3-r(M0Xcbc!4LnW!h&qlNpdVkZA;K!w__v_x%P9 znWFO_P7i*&a*sthXLpKKQrqD1?TN1b{^G~5`grty5PokPW@9rXx}Z5D>@9#f#v&H; z=69cAVVjTk9z==nr+qN+SqNlh9L1~X>Y{)=Ne1Q?xuCF%RR_s0V{erfyW;X1+v513 zGho#Lu9FnDn(2V;^(0s0VP8Hc&Y9*T$Mv|uVyxzmtDWm`WA%Q}Wa2oT!Ox+YQ!=sM zVr7}J5yflV@a}wL&wQ74s|i40_YP+L!}QbdVAs=7WQAptoG$FC-kj!9*9`4EJ-@g( zTIjm$$Nlqdc$C`QX~;M+=m_hw>v_LMAV!Bbwm=lItox~CKSy)~7ilN1!aN~dzJ13Q zS@N__8XN{r?{FZcADA)|@v@gwz;1+hV#hPL!m%zymXq4kV`JvHe(>?j?PbS~JqzeO zLbBICHBXDpF(_|@#G%lArT86issV16V}Ro9S$Y#&_D_2&JYJw}aJfrvHk@}NF zKD}X?^ZZ={t3|*5*3ZI@QP*SIMz&-2DID+K|JXWIL@Gt3)5pYjAlgfb^ONh3F>v}EU~F8tIT-Rn0T zcG_O;?8NyOTMyfBeOi$m|N4Q3Q_s0IuMylhlUiP0o}6qt(9S@4VAkZvt@T7_uOUb- z$F}ZS-UaGvlm6J!wqQ@}Wo3%9di(YGs(Gt{xc#94Q@$v0;l_Zz{kZPvdWv}n5JX4e z$;AQhA`oW(ATx-3aN}8?ma^SSLvReE*Xnn|gr$APmw2K;e&Nqj!So8eJO7e084dk* zn6lTpm0_7#-4~>y+2MlvqGoP0{zardZsamw3e((kdHE(Q1L$}7C?4}x4hSk~#KB%v zXot{7>uiJJdiW%zGp-tjVZN zLBG)4Aqd4C6d1T*o>rb|t36Iwr2Gk!?3(A6F}4K@>| z(1A=s%j}c_ko1-Eg@xKO+w{KZa`)#ud|YQKeL9gN5wmrw9b${#ng+Xp1?{c)qK6M3N;q$+ zlTmXXv}cbF=ea1v6>$61E&?OtfYz)obFbZd8S9FBor`ZZ$EByF?9I7vtcS|5#MnHb zB!rG}#4HpudHQ!fZko_WX;R_OCmXA8M7Ch~guM4!ub1m6wN1SaqFIrYu;~7Jy?iX_ zw!34SC$Rb53L{mHebM|@8o7E^UTuNXrFypUJqrtqq59uehd0_q@dq2T?NQz)xm)Hm zRhXh&;gzoB&|JMd$Hj;?rC?9X6vZgsZ+l(I6j@gJ}Em4$yVqy&BN{&JDr-b;C- z`0AXHkXZ_KH4TCUS7M8D#qkxIk_8S;4vmcEc*CVu5YVx8- zojZzuy^yLTI#u_gTSDyp&Cj{-|+AVWmYAzJD-XB^eA@a!alwDGI_hnY888(-Lp&LVS3uTTfo|C@LOdw}CK zLp`4k7oDX9iA$ApMC1R~f>8tHv5EyhfxK$M6=FDg{)^eM$=vURHL2F0%m6)TAa*O& zA5}0<$Vk5+vh#LZ)Og}M)~Z`RI{tfvEZLu&U7d+>o&cryQ~Dxu?R%%jw23Zovyg)F zO$g+|gCJ3gu~6bz=8$}YG=vOa`Tr#HHmzxw2pPdZMS*he`HHPOk^`sM$ zjL$DEVVcbDrT*3V=2yqkkfC#piI&i(g-oN_by4IyueD5$<3)k4USOA!bDpt;@=wI_Oy@HTn$ z2{nW#f!I+W_5PchODLhviy-6s^iS&4vXZpsR>T|L`K?-SLPtb&`$|S}YB;*KiI57m zSy@q>cKqMB`FVr=xb|Of=Mg-VHC4nRoJMuqjh?&2LATU${2LQ-*gyIyJP_jV0{omU zdse0XH%7i~-aNhkd0VWG&IU>B^ExAw?If4{hy=F@-6|&Jz0Iz` zbwoM|c*xZ!M-rK2qsw0UrJ4^k$evji{Xtmt4dmS)_f~NcOdB(_uCDUaB2>Zy&Z3@U z6+-FO*sv-rLAaxdZQkf7-zvVb4|sc8cNE?INr?a-{J}=9g$36~K#?nukl_pBm@B^0 zM9&r2_@$EZ-`evFO5|L0OJ_hnzmpiH)PK1uURa9Yaz69+>$JX7`mbp09?{TKeHtxX zpNK1r>Ba}} zV<%<6(=MVYQpF@6hkKqXBTz?cq_0p^oC;9;51v)eLKk${|AP8`Jh+hRYwaP)dm?m^ za9VtLv`cJ|fP~d#U}kL6O+dS0#9TgAq8{gVxvO2LzqD?5l_*d%HlmmZ_DFl%*hn9O z@!kc*%eNS`A+f(i9PY%&=4nRDf`pUw?~*wo6p=)V7y1mKy7^-P@6Pnjj1==rR{|Z7 zdH3gac0p2XYN+H!w2ueFUhLZx+T<2khGgl(|9Vm#nQ&M0uvW)f|-y8_-y$ zB5MH8T*)B*dSbiRXnVaK3{vWDNwsO?NUJ>{&toE1q<9)yjJc$k3dUO#eaaIyg1!VA ze?@Hk!aXN5H~E(0&YM@hl}8r?lLe&j8qwr_X7fR!E6fu_ozI+}Ne^k5Zi)l1!GTo2 zqwCLXym`Y6O1e%X%^k1qynlr5DhB%J`;!OzJp~o0L zTRg|&%OqgC^fQI?gv6{mA7)tkF=tNB!Sx-OkyvX|ZQcLGOBZ*)&LZb`el z0x04oQ_10ir%(?zK%Q$vXi3o->Vk1EBPi-6eo6%9p!Qepyj4CA9W z6eM4a5O!o4FR9lX{N+l55pM==HfF^Lc|txLeMduC?G)BH~0JXL(e+D0)0#oTZsDLAYYGyT17b4REr7{?*e?+@!b&==tn{iy{T?osWBbxf2 zA4Z{_VH-f6!2-W@c$=6#Nn+kGpa$>ok%e=(40p#)E?#Gwkz6Uf~KB1T#B z6F9l-Y?KC+9}Mt%Nwqtw5?v*HtRd#e0@NHceO4M19XB#$^&N7i<%n^-;!it;Gp(yzI!L2CgaLg3CI5pC9>C z{5a7Uy|ll8*%C)8f-;y3L?*k)PZORp6R= z><=^v@wc%v+lkiCB&a6Ey)fMoEn~ydZK~b}mv$x2mW3I!#X=gbnP;`=#d)Iqpv_=-!Iy z#C~|d{?m7v=3W$0;*nFW{tGTP8;; zA`Pw(A;tudFJo~z4ONN@aHmIX@>)u<*9ms5!m2GJaRiKC=!)dbZ*zXX@vt&`)LQF9 z>sM*gtKlO4q`BzQCygWtHAKaE7oB`u9}h*T2EPwS|MEDyR7Nhernp8b;K+_7Y01WgrV!VPs=?B{xkj%+s&OYfb$ zM3H9ve5|-3IP-(RnPYFyN)G%UTSMJ(Zvawl>+^5FDpfB^EKqsd4@C?Q6_(asqlSb% z>-lw86T~+!A9O8Qt|30ue@^7|Yi8iIy;f#;1Z_L>AaCi35aPQ;(67Q`aocfpWSh2F zdLgGX{SPZ9+7g?N27YNm$2W*`xxK9d+s87r;0Iza%pj#qp6Q~{URFI3+(B9pnFuB6 z-@It3ZC6_-1KmD59u~k3IxSqA&%I;Y3p%~?r_&EWh1&XUV)n{MB=&d8Ky`w{B}t%A zK7)nsXca>s-W6Iz37A~iKF*L?EV+x_bDvd;kAK@J-T2g+JVmwI0*T9vOHl(z1R3ND z(X$v;Y?<(lTAv8qls@s z%xZipKd@8#k`hhV2APs>;vYnBY z=fuqx6>!IuCS(96P*W(QRPf?Tx=ajnXBkfT=9v=Na4#%i8nbNck(GN0?+Fzy@Ufi} znqvOcCed3q8P_iUveX(>`o0q;e*U97LLS{&F}>5?5VSZOry(fH80!D1?&llcsAPt6 z7#cZ92=q?+IuK2$%3A?SN^9F8FGbHQE*nO-DwfXtlCL6elo*7JP~vwrY0(wWdl z=1x83$YqhEH6STp>eqvg#ZVvF!(m?2pw7J~wbgcZCApqeL2>QGc}lmIyFhWr;YKY*h15akb+UbW{_OmsFV7i_j&3y<|-oufpFlk&hSFgf?7U&%n5gQb_(|Jd%1nOq5$&QR~dAGGlQbVi? zg9sJoSeJ1i%SDj;!wyrP*A56nTorQRx6Ot~IS`kY5XetrtOO2mG9U(U z5Xd^wJ^+M*hDc_JZv|1SA&@Cz65``u`K;NWK4GlaLlXX&P-u U)k}D+8G*<0vX5kP?is!KKTzF#-2eap literal 0 HcmV?d00001 diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index 898fc7da0..c5181cf85 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -5,7 +5,7 @@ sidebar_label: Interview Project Roadmap slug: /get_started/interview_project_roadmap --- -Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview project—whether it is your first or fiftieth—this page will guide you through the stages of an interview-building project. +Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview project—whether it is your first or fiftieth—this page will guide you through the stages of an interview-building project, from concept to launch. - ## Identify Roles -There are three essential roles on an interview building project, and two of them may have sub-roles. +There are three essential groups of people involved in an interview building project. 1. **Interview builders.** The person or team responsible for building the actual interview, including at least one developer and a project manager. 2. **Decisionmaker.** One person who is responsible for managing stakeholders and converting their feedback into clear decisions. 3. **Stakeholders.** Anyone who needs to have a say in the interview project, such as managers, judges, clerks, subject matter experts, IT staff, and users (self-represented litigants and lawyers). :::note -One person may have multiple roles, and there may be multiple people in any role other than the decisionmaker. You may have a team of interview builders and dozens of stakeholders, or you may be the only person working on this project. +You may have a team of interview builders and dozens of stakeholders, or you may be the only person working on this project. Even if this is a solo project, it helps to keep your different roles in mind. ::: ![Interview Project Roles & Lines of Communication](../assets/interview-project-roles-communication.png) -**The decisionmaker is probably the most important role for a successful interview project.** Most interview projects have multiple stakeholders, which can result in confusing or conflicting feedback. +**While a successful interview project needs all these roles, the decisionmaker is especially important.** -Without a decisionmaker, interview builders must try to interpret the feedback they receive, then seek further feedback on their proposed solution, which often results in more confusing feedback, and so on. This dramatically slows progress. +Most interview projects involve multiple stakeholders. When the interview building team requests guidance or feedback, multiple stakeholders may give multiple responses that may be confusing or conflicting. This dramatically slows progress. -With a decisionmaker, interview builders should have clarity in order to keep moving forward. In order to be successful an interview project should have a single decisionmaker whose job includes: +The decisionmaker's job is to gather and clarify stakeholders' feedback so that interview builders have clear decisions to work from. The decisionmaker's responsibilities also include: * Being a single point of contact and single source of decisions * Regular meetings with the interview building team * Timely responses to requests for feedback -* Gathering feedback from stakeholders and converting it to clear decisions +* Gathering feedback or approvals from stakeholders and converting it to clear decisions * Making the go/no-go decision to launch the interview +The decisionmaker must either (1) have the authority necessary to carry out these responsiblities, or (2) be responsible for getting authority when necessary. + ## Kickoff Meeting -As early as possible after you have identified the roles above, schedule a kickoff meeting for the interview building project. The interview building team, the decisionmaker, and the key stakeholders should attend. +Schedule a kickoff meeting for the project as early as possible. The interview building team, the decisionmaker, and the key stakeholders should attend. Kickoff meeting agenda: -* Introduce the development process (you can use this page) -* Define roles and responsibilities -* Identify the single decisionmaker (most important) -* Define the requirements—including things we'll need in the future -* Discuss MVPs and select the maturity model level -* Discuss "change orders"—establish a process for changing the scope of the process -* Identify the source documents -* What does success look like? How do we measure it? -* How do we know if this project isn't going to work? Failure states -* Schedule a regular check-in with the decisionmaker to keep them, ask and answer questions, and get decisions when you need them to move forward. - -How does this look different when you are your own stakeholder? (All this stuff still needs to happen!) - -## Building the Interview - -What the building workflow/cadence/whatever looks like - -* Coding (incl. collaboration—link to GH workflow) -* Getting support: community meetings/posting questions to DAL Teams/Slack -* Testing -* Regular stakeholder check-ins - +* Everyone should introduce themselves and identify their role in the project +* Agree on a single decisionmaker +* Describe the development process (use this page) +* Schedule a regular check-in meeting +* Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) and define the requirements for this project +* Agree on a process for changing the scope of the project (i.e., adding features) +* Discuss what success looks like for this project, and how you will measure it +* Conduct a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem) discussion (imaging this project has failed and discuss why) + +:::info +If this is a solo project you should still make time for a kickoff "meeting" with yourself. +::: -## Get Feedback on the Draft Interview +## Build the Interview -## Get a Go/No-Go Decision +After the kickoff meeting, it's time to get to work! Interview building includes: -## Launch the Interview +* Coding (following the [GitHub workflow](../github.md#workflow)) +* Keeping track of tasks, change requests, questions, etc., using [GitHub issues](../github.md#use-issues) +* Testing your interview +* Getting help with blockers ([resources](resources.md)) +* Regular standups with the interview building team +* Regular check-ins with the decisionmaker and key stakeholders +* Getting feedback from the decisionmaker +* More coding +:::tip +The LIT Lab's [interview project template](https://github.com/orgs/SuffolkLITLab/projects/22) can help you keep your project organized. Just click the **Use this template** button to use it. (You'll need a free [GitHub](../github.md) account.) +::: -============ +The interview building team should have its own regularly-scheduled "standup" meetings to share progress and identify blockers. A standup is a very short, 5–15 minute meeting with a straightforward standing agenda: -## Prepare the Court Form for the Weaver +1. **Progress:** what you worked on or accomplished since the last meeting +2. **Plan:** what you are working on now +3. **Blockers:** what issues are blocking you -Before you can use the Weaver you must prepare each PDF or DOCX document with fields and labels for the Weaver to recognize. These pages will help: +Daily check-ins are most common on active projects, and anything less than weekly is unlikely to be adequate. -* ["Weaving" your form into a draft interview](../generating_code) -* [Working with PDF Files](../pdfs) -* [Working with DOCX Files](../docx) -* [Field labels to use in template files](../label_variables) +:::tip +Consider incorporating our Monday community meetings into your standup schedule. We run them standup-style, with time for addressing blockers as a group. +::: -If you don't have much experience with the Weaver, ask someone with more experience to review your prepared documents before you run them through. +## Get Feedback -While you prepare your document(s) for the Weaver, get set up in GitHub and start using our project template. +Once the interview is built, it's time to hand it over to the decisionmaker for feedback. -## Use Our GitHub Project Template +## Get a Go/No-Go Decision -https://github.com/orgs/SuffolkLITLab/projects/22 \ No newline at end of file +## Launch the Interview From 2fadd4e21e58ae6c8418e5ebce24a8f3922bef8d Mon Sep 17 00:00:00 2001 From: samglover Date: Tue, 23 Jul 2024 15:48:31 -0500 Subject: [PATCH 12/36] Draft roadmap page updates --- docs/get_started/interview_project_roadmap.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index 240ec658d..ee72356f4 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -45,6 +45,13 @@ Kickoff meeting agenda: * Agree on a single decisionmaker * Describe the development process (use this page) * Schedule a regular check-in meeting +* Walk through the procedural context for the form + * Who will be using this form? (What are they called?) Who can't use it? + * What does this form do? What can someone do with it? What can't they do with it? + * When in the process would someone use this form? What has happened before they use it? + * Where would someone file this form? + * Why would someone use this form? + * How does someone file this form? * Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) and define the requirements for this project * Agree on a process for changing the scope of the project (i.e., adding features) * Discuss what success looks like for this project, and how you will measure it From 1ba595de22b48f294e6349019474f5b10d28c76b Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 26 Jul 2024 12:05:51 -0500 Subject: [PATCH 13/36] Saving WIP --- docs/get_started/interview_project_roadmap.md | 79 +++++++++++++------ 1 file changed, 54 insertions(+), 25 deletions(-) diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index ee72356f4..a31d07fbb 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -7,23 +7,25 @@ slug: /get_started/interview_project_roadmap Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview project—whether it is your first or fiftieth—this page will guide you through the stages of an interview-building project, from concept to launch. -## Identify Roles +This roadmap reflects the procedures, templates, and tools the LIT Lab uses on our interview-building projects, which you can adapt to yours. -There are three essential groups of people involved in an interview building project. +## Identify Key Roles & Responsibilities -1. **Interview builders.** The person or team responsible for building the actual interview, including at least one developer and a project manager. -2. **Decisionmaker.** One person who is responsible for managing stakeholders and converting their feedback into clear decisions. +![Interview Project Roles & Lines of Communication](../assets/interview-project-roles-communication.png) + +Every interview project has: + +1. **Interview builders.** The person or team responsible for building the actual interview. +2. **Decisionmaker.** One person who is responsible for managing stakeholders and converting their feedback into clear decisions for the interview builders. 3. **Stakeholders.** Anyone who needs to have a say in the interview project, such as managers, judges, clerks, subject matter experts, IT staff, and users (self-represented litigants and lawyers). :::note You may have a team of interview builders and dozens of stakeholders, or you may be the only person working on this project. Even if this is a solo project, it helps to keep your different roles in mind. ::: -![Interview Project Roles & Lines of Communication](../assets/interview-project-roles-communication.png) - -**While a successful interview project needs all these roles, the decisionmaker is especially important.** +### The Decisionmaker -Most interview projects involve multiple stakeholders. When the interview building team requests guidance or feedback, multiple stakeholders may give multiple responses that may be confusing or conflicting. This dramatically slows progress. +**While a successful interview project needs all these roles, the decisionmaker is especially important.** Most interview projects involve multiple stakeholders. When the interview building team requests guidance or feedback, multiple stakeholders may give multiple responses that may be confusing or conflicting. This dramatically slows progress. The decisionmaker's job is to gather and clarify stakeholders' feedback so that interview builders have clear decisions to work from. The decisionmaker's responsibilities also include: @@ -42,20 +44,20 @@ Schedule a kickoff meeting for the project as early as possible. The interview b Kickoff meeting agenda: * Everyone should introduce themselves and identify their role in the project -* Agree on a single decisionmaker -* Describe the development process (use this page) -* Schedule a regular check-in meeting -* Walk through the procedural context for the form - * Who will be using this form? (What are they called?) Who can't use it? - * What does this form do? What can someone do with it? What can't they do with it? - * When in the process would someone use this form? What has happened before they use it? - * Where would someone file this form? - * Why would someone use this form? - * How does someone file this form? +* Discuss the reason for having a single decisionmaker and identify that person +* Give an overview of the development process (use this page) +* Schedule a regular check-in meeting (weekly or every other week) +* Introduce the form and how it will be used + * Who will use it and what are they called? Who else appears on the form? Who can't use it? + * What can someone do with it? What can't they do with it? + * When would someone use it, and what will have happened before they do? + * Where would someone use it? Where would they file it? + * Why would someone use it? + * How do they file it? If it shouldn't be filed, how do they use it after completing it? * Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) and define the requirements for this project * Agree on a process for changing the scope of the project (i.e., adding features) * Discuss what success looks like for this project, and how you will measure it -* Conduct a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem) discussion (imaging this project has failed and discuss why) +* Do a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why :::info If this is a solo project you should still make time for a kickoff "meeting" with yourself. @@ -63,22 +65,24 @@ If this is a solo project you should still make time for a kickoff "meeting" wit ## Build the Interview -After the kickoff meeting, it's time to get to work! Interview building includes: +After the kickoff meeting it is time to get to work! Interview building includes: * Coding (following the [GitHub workflow](../github.md#workflow)) * Keeping track of tasks, change requests, questions, etc., using [GitHub issues](../github.md#use-issues) -* Testing your interview * Getting help with blockers ([resources](resources.md)) +* Testing the interview +* Demonstrating the interview * Regular standups with the interview building team * Regular check-ins with the decisionmaker and key stakeholders -* Getting feedback from the decisionmaker * More coding :::tip The LIT Lab's [interview project template](https://github.com/orgs/SuffolkLITLab/projects/22) can help you keep your project organized. Just click the **Use this template** button to use it. (You'll need a free [GitHub](../github.md) account.) ::: -The interview building team should have its own regularly-scheduled "standup" meetings to share progress and identify blockers. A standup is a very short, 5–15 minute meeting with a straightforward standing agenda: +### Standup Meetings with the Interview-Building Team + +Regular "standups" help keep your project moving forward. The interview-building team should have frequent standup meetings to share progress and identify blockers. A standup is a very short, 5–15 minute meeting with a straightforward standing agenda: 1. **Progress:** what you worked on or accomplished since the last meeting 2. **Plan:** what you are working on now @@ -87,10 +91,35 @@ The interview building team should have its own regularly-scheduled "standup" me Daily check-ins are most common on active projects, and anything less than weekly is unlikely to be adequate. :::tip -Consider incorporating our Monday community meetings into your standup schedule. We run them standup-style, with time for addressing blockers as a group. +Consider incorporating our Monday community meetings into your standup schedule. We run them standup-style, with time for addressing blockers as a group. If this is a solo project, the community can be part of your interview-building team! +::: + +### Check-Ins with the Decisionmaker & Key Stakeholders + +Weekly or every-other week meetings with the decisionmaker and key stakeholders are a chance to keep them informed and get answers when you need them to move forward. + +:::tip +Use [GitHub issues](../github.md#use-issues) with the **question** label to help you keep track of questions you need to ask the decisionmaker. +::: + +The decisionmaker and stakeholder will probably want a demonstration of the interview. To do this: + +1. Demonstrate the interview to a more experienced interview builder, first. This will help identify problems you can solve on your own, as well as questions you need to ask the decisionmaker. +2. Create a separate Docassemble Playground project for your demo and make sure it works. +3. When you demonstrate the interview, listen carefully to the feedback and ask as many questions as you need to make sure you understand it. + +:::warning +**If you ask a question you will get an answer.** And since the decisionmaker and stakeholders are not building the interview they may not understand the full implication of their answers. To get better answers, ask better questions. Some tips: + +* Avoid open-ended questions +* Present options and explain the implications of each option +* Propose a solution that makes sense to you (but remain open to alternatives) +* Explain the pros and cons of the options + +To make sure you understand the answer, repeat the answer back to the decisionmaker. When you are sure, write it down (ideally on the related GitHub issue). ::: -## Get Feedback +## Get Feedback on the Completed Interview Once the interview is built, it's time to hand it over to the decisionmaker for feedback. From deb6b3869125017a62b4d903e9922f3c9898b9cd Mon Sep 17 00:00:00 2001 From: samglover Date: Tue, 6 Aug 2024 16:09:19 -0500 Subject: [PATCH 14/36] Saving WIP --- docs/get_started/interview_project_roadmap.md | 91 ++++++++++++------- 1 file changed, 59 insertions(+), 32 deletions(-) diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index a31d07fbb..eb1859e0e 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -41,23 +41,23 @@ The decisionmaker must either (1) have the authority necessary to carry out thes Schedule a kickoff meeting for the project as early as possible. The interview building team, the decisionmaker, and the key stakeholders should attend. -Kickoff meeting agenda: - -* Everyone should introduce themselves and identify their role in the project -* Discuss the reason for having a single decisionmaker and identify that person -* Give an overview of the development process (use this page) -* Schedule a regular check-in meeting (weekly or every other week) -* Introduce the form and how it will be used - * Who will use it and what are they called? Who else appears on the form? Who can't use it? +Here is a sample kickoff meeting agenda: + +* Everyone should introduce themselves and identify their role in the project. +* Discuss the reason for having a single decisionmaker and identify that person. +* Give an overview of the development process (use this page as a guide). +* Schedule a regular check-in meeting (weekly or every other week). +* Introduce the form and how it will be used. Cover the who, what, when, where, and why: + * Who will use it and what are they called? Who else appears on the form? Who can't use it and how would they know? * What can someone do with it? What can't they do with it? * When would someone use it, and what will have happened before they do? * Where would someone use it? Where would they file it? * Why would someone use it? - * How do they file it? If it shouldn't be filed, how do they use it after completing it? -* Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) and define the requirements for this project -* Agree on a process for changing the scope of the project (i.e., adding features) -* Discuss what success looks like for this project, and how you will measure it -* Do a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why + * How do they file it? If it shouldn't be filed, what should they do after completing it? +* Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) and define the requirements for this project. +* Agree on a process for changing the scope of the project (i.e., adding features). +* Discuss what success looks like for this project, and how you will measure it. +* Do a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why. :::info If this is a solo project you should still make time for a kickoff "meeting" with yourself. @@ -80,47 +80,74 @@ After the kickoff meeting it is time to get to work! Interview building includes The LIT Lab's [interview project template](https://github.com/orgs/SuffolkLITLab/projects/22) can help you keep your project organized. Just click the **Use this template** button to use it. (You'll need a free [GitHub](../github.md) account.) ::: -### Standup Meetings with the Interview-Building Team +## Meeting Cadence -Regular "standups" help keep your project moving forward. The interview-building team should have frequent standup meetings to share progress and identify blockers. A standup is a very short, 5–15 minute meeting with a straightforward standing agenda: +Two recurring meetings will help you keep the project moving forward. These are short, 5–15 minute "standup" meetings to share progress and identify and remove blockers—anything preventing someone from making progress. -1. **Progress:** what you worked on or accomplished since the last meeting -2. **Plan:** what you are working on now -3. **Blockers:** what issues are blocking you +### Interview-Building Team Meetings -Daily check-ins are most common on active projects, and anything less than weekly is unlikely to be adequate. +The interview-building team should meet frequently. Daily check-ins are most common on active projects, and anything less than weekly is unlikely to be effective. :::tip -Consider incorporating our Monday community meetings into your standup schedule. We run them standup-style, with time for addressing blockers as a group. If this is a solo project, the community can be part of your interview-building team! +Consider incorporating our Monday community meetings into your standup schedule. We run them standup-style, with time for solving blockers as a group. If this is a solo project, the Document Assembly Line community can be part of your interview-building team! ::: -### Check-Ins with the Decisionmaker & Key Stakeholders +These meetings should follow a straightforward standing agenda. Each person on the team should share: -Weekly or every-other week meetings with the decisionmaker and key stakeholders are a chance to keep them informed and get answers when you need them to move forward. +1. **Progress:** what they worked on or accomplished since the last meeting +2. **Plan:** what they are working on now +3. **Blockers:** issues that are preventing them from making progress + +The reason for sharing your progress and plan for the day/week is so that everyone has an idea what everyone else is working on. This is necessary for the project manager, and can help interview builders avoid code conflicts or identify when it's time to merge branches. + +The reason for sharing blockers is to get help. Some teams reserve a larger block of time and use it to solve blockers together, like we do in our Monday community meetings. Other teams prefer to solve blockers separately. And sometimes a blocker is a question you need answered by the decisionmaker. + +### Decisionmaker Meetings + +Weekly or every-other week meetings with the decisionmaker and one or two key stakeholders are a chance to keep them informed of your progress and get decisions when you need them to move forward. The standing agenda is similar to the one above: + +1. **Progress:** what the interview-building team worked on or accomplished since the last meeting +2. **Plan:** what the interview-building team plans to work on between now and the next meeting +3. **Questions:** oustanding questions that are preventing the interview-building team from making progress + +When sharing progress and the current plan, it can help to give a percentage estimate. Something like: "We think we are about 30% of the way to a complete draft interview, and by our next meeting we hope to be at 50%." :::tip -Use [GitHub issues](../github.md#use-issues) with the **question** label to help you keep track of questions you need to ask the decisionmaker. +Use [GitHub issues](../github.md#use-issues) to keep track of your questions for the decisionmaker. Add a **question** label to GitHub issues to make it easy to pull up your list of questions during a meeting. ::: -The decisionmaker and stakeholder will probably want a demonstration of the interview. To do this: +To get better answers, ask questions better. Here are some tips for asking questions: + +* Before you pose a question to the decisionmaker, ask your interview-building team (or the community). +* Avoid open-ended questions. When you decide to pose a question to the decisionmaker, give them two or three options and explain the pros, cons, and implications of each. +* If you do ask an open-ended question, explain that you are trying to generate ideas, not decide on a solution. +* Don't ask the decisionmaker to design the interview. Ask for goals ("Do you need the attorney's ID number?"), not details ("Do you want the ID number field to show up right under the attorney's name field?"). + +**Remember: if you ask a question you will get an answer.** Beware of asking questions when you don't need the answer, or you may just complicate the project. The decisionmaker and stakeholders will have ample opportunity to give feedback later. + +Finally, when asking questions it helps to show the relevant part of the interview, but it is also a good idea to remind the decisionmaker and stakeholders that the interview is a work in progress. If a different screen catches their eye, you can just let them know you are still working on it and you aren't ready for their feedback, yet. + +## Get Preliminary Feedback + +The decisionmaker and key stakeholders will probably want to see a demonstration of the interview as soon as you have something to show them. + +Demonstrating your interview is a good way to show your progress and show context for your questions. + +An interview is ready for preliminary feedback when it has all the essential elements, even if + + 1. Demonstrate the interview to a more experienced interview builder, first. This will help identify problems you can solve on your own, as well as questions you need to ask the decisionmaker. 2. Create a separate Docassemble Playground project for your demo and make sure it works. 3. When you demonstrate the interview, listen carefully to the feedback and ask as many questions as you need to make sure you understand it. -:::warning -**If you ask a question you will get an answer.** And since the decisionmaker and stakeholders are not building the interview they may not understand the full implication of their answers. To get better answers, ask better questions. Some tips: -* Avoid open-ended questions -* Present options and explain the implications of each option -* Propose a solution that makes sense to you (but remain open to alternatives) -* Explain the pros and cons of the options -To make sure you understand the answer, repeat the answer back to the decisionmaker. When you are sure, write it down (ideally on the related GitHub issue). -::: ## Get Feedback on the Completed Interview + + Once the interview is built, it's time to hand it over to the decisionmaker for feedback. ## Get a Go/No-Go Decision From 04ace0eb7469e87c76b002320fdbabadde34c15b Mon Sep 17 00:00:00 2001 From: samglover Date: Thu, 8 Aug 2024 16:37:50 -0500 Subject: [PATCH 15/36] Update interview_project_roadmap.md --- docs/get_started/interview_project_roadmap.md | 84 ++++++++++++++++--- 1 file changed, 71 insertions(+), 13 deletions(-) diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index eb1859e0e..f6a988a5f 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -1,7 +1,7 @@ --- id: interview_project_roadmap title: Roadmap of a Successful Interview Project -sidebar_label: Roadmap of an Interview Project +sidebar_label: Interview Project Roadmap slug: /get_started/interview_project_roadmap --- @@ -46,7 +46,7 @@ Here is a sample kickoff meeting agenda: * Everyone should introduce themselves and identify their role in the project. * Discuss the reason for having a single decisionmaker and identify that person. * Give an overview of the development process (use this page as a guide). -* Schedule a regular check-in meeting (weekly or every other week). +* Schedule a regular check-in meeting (weekly or every other week) with the decisionmaker and one or two key stakeholders. * Introduce the form and how it will be used. Cover the who, what, when, where, and why: * Who will use it and what are they called? Who else appears on the form? Who can't use it and how would they know? * What can someone do with it? What can't they do with it? @@ -123,33 +123,91 @@ To get better answers, ask questions better. Here are some tips for asking quest * If you do ask an open-ended question, explain that you are trying to generate ideas, not decide on a solution. * Don't ask the decisionmaker to design the interview. Ask for goals ("Do you need the attorney's ID number?"), not details ("Do you want the ID number field to show up right under the attorney's name field?"). -**Remember: if you ask a question you will get an answer.** Beware of asking questions when you don't need the answer, or you may just complicate the project. The decisionmaker and stakeholders will have ample opportunity to give feedback later. +**Remember: if you ask a question you will get an answer.** Avoid asking questions when you don't need an answer so you don't make the project more complicated than it needs to be. The decisionmaker and stakeholders will have ample opportunity to give feedback on the full interview later. -Finally, when asking questions it helps to show the relevant part of the interview, but it is also a good idea to remind the decisionmaker and stakeholders that the interview is a work in progress. If a different screen catches their eye, you can just let them know you are still working on it and you aren't ready for their feedback, yet. +Finally, when asking questions it helps to show the relevant part of the interview, but it is also a good idea to remind the decisionmaker and stakeholders that the interview is a work in progress. If a different screen from the interview catches their eye, you can just let them know you are still working on it and you aren't ready for their feedback, yet. -## Get Preliminary Feedback +## Get Feedback on the Interview -The decisionmaker and key stakeholders will probably want to see a demonstration of the interview as soon as you have something to show them. +Once the interview works from start to finish you can get feedback on it. Start by getting preliminary feedback from someone with Document Assembly Line experience. After you have made revisions based on the preliminary feedback, give the interview to the decisionmaker and stakeholders for their feedback. -Demonstrating your interview is a good way to show your progress and show context for your questions. +### Preliminary Feedback -An interview is ready for preliminary feedback when it has all the essential elements, even if +Before you show the interview to the decisionmaker and stakeholders, get someone with Document Assembly Line experience to test it with you. This will help you identify issues you may have missed and questions you still need to ask the decisionmaker. +To get the interview ready: +1. [Merge your code](../github#create-a-pull-request) into **main** or a testing branch +2. [Create a new playground project](../github#create-and-manage-playground-projects) for the interview demonstration and pull your code into it +3. Make sure the interview works as expected in the testing project (**don't skip this step!**) -1. Demonstrate the interview to a more experienced interview builder, first. This will help identify problems you can solve on your own, as well as questions you need to ask the decisionmaker. -2. Create a separate Docassemble Playground project for your demo and make sure it works. -3. When you demonstrate the interview, listen carefully to the feedback and ask as many questions as you need to make sure you understand it. +Once the interview is ready, schedule a video meeting with the tester so you can watch them go through the interview. Or they can watch you demonstrate it. Record the test if you can so you can focus on the test instead of taking notes. +During the demonstration or testing: +* Encourage the tester to comment on all aspects of the interview +* Ask them to follow different branches of the interview logic +* Listen carefully to their feedback and ask follow-up questions to make sure you understand it +### Stakeholder Feedback -## Get Feedback on the Completed Interview +Once you have closed all the issues that are in scope for the [MVP](assembly_line_setup#stick-to-an-mvp) and tested the interview yourself, it should be ready to hand off to the decisionmaker and stakeholders for their testing and feedback. +Get the interview ready the same as [above](#get-preliminary-feedback), then click the **Share** button in the testing project playground to get the link to the interview. +:::tip +When sharing the interview link, make sure the URL ends with `#page1`. If you have been testing the interview the **Share** link will go to the last page you were viewing instead of the start of the interview. Usually this won't matter, but it could result in unexpected behavior. +::: + +Share the link with the decisionmaker, and give them a few tips for giving helpful feedback: + +* The feedback should come in the form of a written list of requested changes. +* If there is confusing or conflicting feedback from stakeholders it is the decisionmaker's responsiblity to clarify it before presenting it to the interview building team. +* Change requests should be specific. For example, if the text of a question should be changed, the change request should include the new text. +* At the top of each page of the interview is an ID. This ID is a reliable identifier when referring to an interview page. (The "fifth page" might be different dependind on the interview logic.) + +## Revise the Interview + +After getting feedback, create a [GitHub issue](../github#use-issues) for each change request from the tester or decisionmaker. Consider this your "punch list" to finish the project. Then get back to work on those issues! -Once the interview is built, it's time to hand it over to the decisionmaker for feedback. +When you have closed all the issues/items on your punch list, send it back to the decisionmaker for further feedback. Each round of feedback should result in fewer change requests and move the project closer to completion. + +:::tip +Two rounds of feedback and revision are usually enough. It it takes more than three, consider ways to improve your process going forward. +::: ## Get a Go/No-Go Decision +When the interview is complete, there is one last decision for the decisionmaker to make: whether the interview is ready to go live. + +If the answer is yes, launch the interview! + +If the answer is no, find out if further revision would result in a yes. If not, [do a retrospective](#do-a-retrospective) and try to understand what happened. + ## Launch the Interview + +When you are ready to launch, add the interview to your production server and make sure it works as intended. + +Once the interview is live, consider how people who need it will find it. + +* You should have a dedicated page on your website that tells people about the interview and links to it. Put some thought into this page so people can find it by searching Google. +* Others might want to direct people to the interview, like courts, legal aid organizations, and other advocates. Ask them to link to your landing page from their own websites. +* Paid advertising can help spread awareness, if you have a budget for it. + +You can also set up [collect analytics](../analytics/tracking_usage) to learn how people are finding and using the interview. + +## Do a Retrospective + +Whether or not your project was successful, the interview-building team, the decisionmaker, and the key stakeholders should do a retrospective. + +The retrospective comes from [Agile software development](https://en.wikipedia.org/wiki/Agile_software_development) and a way of embracing continuous improvement. + +To do a retrospective, discuss three questions: + +1. What went well that we should keep doing? +2. What did not go well that we should stop doing? +3. What should we try going forward? + +Retrospectives are generally more effective when the team is together in real time—on Zoom, for example. You can do a group retrospective or the project manager can meet separately with the interview builders and decisionmaker. Do what feels right based on the group dynamics. + +Use what you learn from the retrospective when planning your next interview-biulding project. \ No newline at end of file From 04ab0899a8292c360d73529c93c85b273b37e3c3 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 9 Aug 2024 09:11:02 -0500 Subject: [PATCH 16/36] Create advanced interview building page --- docs/get_started/advanced_interview_building.md | 11 +++++++++++ sidebars.js | 1 + 2 files changed, 12 insertions(+) create mode 100644 docs/get_started/advanced_interview_building.md diff --git a/docs/get_started/advanced_interview_building.md b/docs/get_started/advanced_interview_building.md new file mode 100644 index 000000000..6a99c8c2b --- /dev/null +++ b/docs/get_started/advanced_interview_building.md @@ -0,0 +1,11 @@ +--- +id: advanced_interview_building +title: Advanced Interview Building +sidebar_label: Advanced Interview Building +slug: /get_started/advanced_interview_building +--- + +This page is a collection of tips for interview builders. + +## Templates: PDF v. DOCX + diff --git a/sidebars.js b/sidebars.js index d76476ea9..6e83ab7a1 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,6 +6,7 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', + 'get_started/advanced_interview_building', 'get_started/interview_project_roadmap', 'get_started/plan_interview', 'get_started/working_with_teams', From d4be563d0f4c7de387ce74332476f8404d6fe54e Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 9 Aug 2024 10:20:18 -0500 Subject: [PATCH 17/36] Squashed commit of the following: commit d2239b4a8b61524a145cdd259dc7e710866667c0 Merge: c53e8f8d 88a7aa63 Author: Sam Glover Date: Fri Aug 9 09:44:54 2024 -0500 Merge pull request #457 from SuffolkLITLab/add_beginners_guide_pages Add beginner's guide and resources pages commit 88a7aa6385d7eed1c726c41da3a3b262b36a8978 Author: samglover Date: Fri Aug 9 09:36:14 2024 -0500 Updates links and redirections commit 9ec128a190c654086ff55bd8b24b805f50adc295 Author: samglover Date: Fri Aug 9 09:35:55 2024 -0500 Add beginners guide and resources; move planning and team tips to Get Started commit c53e8f8d9dda2e6a41d38b7cc36bc5ae73ca8c4e Merge: d2d189f5 52f6f626 Author: Quinten Steenhuis Date: Fri Aug 2 16:32:03 2024 -0400 Merge pull request #456 from SuffolkLITLab/document-translating-interview Document how to enable translations in an AssemblyLine interview commit 52f6f6267daa7fa98d568bb8fc217eb515c6edd6 Author: Quinten Steenhuis Date: Fri Aug 2 16:31:09 2024 -0400 Document how to enable translations in an AssemblyLine interview commit d2d189f53efebf489fd7c7187f0debc84a08d4a5 Merge: ee0a2703 2ed31d51 Author: Quinten Steenhuis Date: Thu Aug 1 16:00:03 2024 -0400 Merge pull request #455 from SuffolkLITLab/pronouns Document new pronouns capability for 1st and 2nd person commit 2ed31d51b139ae3b3c55b22b373cafef606f57ea Author: Quinten Steenhuis Date: Thu Aug 1 15:59:43 2024 -0400 Document new pronouns capability for 1st and 2nd person commit ee0a2703b08932569611626cfb87be08dd1ba21d Merge: 3e8bdaea 15d7a3d0 Author: Quinten Steenhuis Date: Sat Jul 27 07:19:26 2024 -0400 Merge pull request #453 from SuffolkLITLab/updating-filing-codes Add more examples to e-filing integration commit 15d7a3d044b780f9ce6811b73a08172ec512825b Author: Quinten Steenhuis Date: Sat Jul 27 07:15:11 2024 -0400 Add more examples to e-filing integration commit 3e8bdaeabf71f28183885a6d96eb8f6382bd314c Author: samglover Date: Fri Jul 26 12:06:18 2024 -0500 Move CNAME commit 74de987cda597343adf971998a330175b546eaa1 Merge: 63e3e079 d71dfcc0 Author: plocket <52798256+plocket@users.noreply.github.com> Date: Tue Jul 23 09:58:19 2024 -0400 Merge pull request #452 from SuffolkLITLab/alkiln_step_delete_interviews Add the new ALKiln "delete user interview session" feature commit d71dfcc05983a7f79741e8554af457bf7c295f5d Author: plocket <52798256+plocket@users.noreply.github.com> Date: Mon Jul 22 11:24:24 2024 -0400 Add a new ALKiln "delete user interview session" feature --- docs/alkiln/writing_tests.mdx | 76 +++++- .../dynamic_phrasing_based_on_values.md | 56 +++++ docs/efiling/efiling_through_docassemble.md | 62 ++++- docs/translation/translation.md | 226 ++++++++++++++++++ docs/weaver_overview.md | 2 +- docusaurus.config.js | 6 +- sidebars.js | 8 + CNAME => static/CNAME | 0 8 files changed, 425 insertions(+), 11 deletions(-) create mode 100644 docs/translation/translation.md rename CNAME => static/CNAME (100%) diff --git a/docs/alkiln/writing_tests.mdx b/docs/alkiln/writing_tests.mdx index a981080c9..1ccb88191 100644 --- a/docs/alkiln/writing_tests.mdx +++ b/docs/alkiln/writing_tests.mdx @@ -143,7 +143,7 @@ You **must** include the `interview` Step in each Scenario **before setting any ### `I sign in with the email "" and the password ""` {#sign-in} -Use the "sign in" Step to sign into your docassemble server before going to the interview with the ["start interview" Step](#start-interview). You can use [GitHub secrets](#secrets) in combination with [environment variables](#env-vars) to store and use this sensitive sign in information. +Use the "sign in" Step to sign into your docassemble server before going to an interview with the ["start interview" Step](#start-interview). If you run your tests on GitHub, remember to use [GitHub secrets](#secrets) to store this sensitive information. The Step format: @@ -155,6 +155,11 @@ The two blanks to fill in are `` and ``. Eac The `` variable should contain the username of a [dedicated account](security.mdx#test_accounts) on your docassemble server. The `` variable should contain the password of that account. +To use this Step: + +1. When you create a user for ALKiln on your docassemble server, note the email address and the password for that account. +1. Create [GitHub secrets](#secrets) or config values to store the email address and password. + Example Step: ```gherkin @@ -174,12 +179,69 @@ env: You can have as many of these accounts as you want. :::danger Sensitive information -You **must** use [GitHub secrets](#secrets) to set the [environment variables](#env-vars) in order to keep the information secure. You should also use a [separate account](security.mdx#test_accounts) for signing in like this. [Never use a real person's account or information](security.mdx#mock-data). +If you run this in a test, you **must** use [GitHub secrets](#secrets) to set the [environment variables](#env-vars) in order to keep the information secure. You should also use a [separate account](security.mdx#test_accounts) for signing in like this. [Never use a real person's account or information](security.mdx#mock-data). ::: ALKiln does avoid taking pictures or downloading the HTML for this Step, even when the test has an error on that page, so that information is still protected. ALKiln also avoids printing the value of these variables anywhere in the report or in the console. Even so, it is possible for you to [expose this information](security.mdx#no-show). +### `I sign in with the email "", the password "", and the API key ` {#delete-interview-session} + +Use the "sign in and clean up" Step to sign into your docassemble server before going to an interview with the ["start interview" Step](#start-interview), then delete the interview from the account's "My interviews" list. If you run your tests on GitHub, remember to use [GitHub secrets](#secrets) to store this sensitive information. + +This is very similar to the ["sign in" Step](#sign-in) above. See that for basic information. The difference here is that you can also make sure that ALKiln deletes the interviews this user creates. + +The new blank to fill in is ``. It is the name of the [environment variable](#env-vars) containing an API key you create for the account that signs in. + +Example Step: + +```gherkin + Given I sign in with the email "ALKILN_USER_EMAIL" and the password "ALKILN_USER_PASSWORD", and the API key "ALKILN_USER_API_KEY" +``` + +`"ALKILN_USER_EMAIL"`, `"ALKILN_USER_PASSWORD"`, and `"ALKILN_USER_API_KEY"` are just examples of environment variable names. You can use any names you want. See the ["sign in" Step](#sign-in) for more details. + +To set up the API key, do the following: + + + +1. Ask an admin on your docassemble server to [create an API key for themselves in their user profile](https://docassemble.org/docs/api.html#manage_api)[^new_key]. +1. Use that admin API key to create an API key for your user by using the [docassemble API endpoint](https://docassemble.org/docs/api.html#api_user_user_id_api_post). If you lose this API key, you can make a new one. You can do that in your terminal or command prompt with this code: + ```bash + $(curl -X POST \ + /api/user//api \ + -H 'Content-Type: application/json' \ + -d '{ + "key": "", + "name": "alkiln_key", + "method": "none" + }') + ``` + + `` is the url of your server in this format: https://your-server-url.org. + `` is the email of ALKiln's user account you name in your sign in Step. + `` is the API key your admin made. +1. Press enter. +1. Copy the result you get from that curl request. +1. Int GitHub, put that variable in a GitHub secret. Avoid including the outer quotation marks. +1. Add that secret to your environment variables. Here's a GitHub workflow file example: + ```yml + env: + ALKILN_USER_EMAIL: "${{ secrets.ALKILN_USER_EMAIL }}" + ALKILN_USER_PASSWORD: "${{ secrets.ALKILN_USER_PASSWORD }}" + ALKILN_USER_API_KEY: "${{ secrets.ALKILN_USER_API_KEY }}" + ``` +1. Write this "sign in and clean up" Step in your `.feature` test file. + +:::danger Sensitive information +If you run this in a test, you **must** use [GitHub secrets](#secrets) to set the [environment variables](#env-vars) in order to keep the information secure. You should also use a [separate account](security.mdx#test_accounts) for signing in like this. [Never use a real person's account or information](security.mdx#mock-data). +::: + +ALKiln does avoid taking pictures or downloading the HTML for this Step, even when the test has an error on that page, so that information is still protected. ALKiln also avoids printing the value of these variables anywhere in the report or in the console. Even so, it is possible for you to [expose this information](security.mdx#no-show). + +[^new_key]: If you lose this API key you can make a new one. You can make as many as you need. + + ### `I go to ""` {#go-anywhere} Use the "go anywhere" Step to go to any arbitrary url. @@ -1271,7 +1333,7 @@ Variable values only show up in the JSON on the next page - the one after the pa ### `I will be told an answer is invalid` {#invalid} -Use the "invalid answers" Step to check that the user got feedback that one or more of their answers were invalid. +Use the "invalid answer" Step to check that the user got feedback that one or more of their answers were invalid. @@ -1817,7 +1879,7 @@ Environment variables are one of the few ways for you to get information from Gi What is a variable? -A "variable" is a name with a value. That name, a "variable name", lets the rest of the program ask for that value when needed.[^name] Like calling a kid in for dinner. That is close enough for what we need right now.[^vars] +A "variable" is a name with a value[^vars]. That name, a "variable name", lets the rest of the program ask for that value when needed.[^name] You might already know what they are, but we are going to use a metaphor to help with the rest of the explanation. A variable name is like a kid's name and when the program asks for the value, that's like calling a kid in for dinner. [^name]: You might notice people also using the word "variable" to mean "variable name". @@ -1829,10 +1891,12 @@ A "variable" is a name with a value. That name, a "variable name", lets the rest What are environment variables? -Environment variables are variables that are available to the whole system - the whole environment the programs are working in. Like the town where that kid lives and where their house is. That means every test in your test suite can use that variable. You can call that kid in for dinner no matter where in the city they are. +Environment variables are variables that are available to the whole system - the whole environment the programs are working in. That's like the town where that kid lives and where their house is. That means every test in your test suite can use that variable. You can call that kid in for dinner no matter where in the city they are. Because environment variables are so global, we recommend you start all your environment variable names with "ALKILN_" so they have less chance to interfere with your system's other environment variables. If you are going to broadcast your message across the town, every kid should have a unique name so everyone knows who you are yelling at. +### Docassemble config file env vars {#config-vars} + In tests on your server, you put these values in your [config file](https://docassemble.org/docs/config.html#configfile) under a key you can add called `alkiln`. For example: ```yml @@ -1842,6 +1906,8 @@ alkiln: `ALKILN_BEAR_SIZE` is the name of the environment variable. `"small_bear"` is the value of the environment variable. All the interviews on your server can see these config values, including the interview that runs your tests, so you are actually setting these values for all the tests that you run on your server with tests. +# GitHub env vars {#github-vars} + In GitHub, you can make [GitHub workflow environment variables](https://docs.github.com/en/actions/learn-github-actions/variables#defining-environment-variables-for-a-single-workflow) by putting them in the `env` key in your [workflow file](#workflows): ```yml diff --git a/docs/authoring/dynamic_phrasing_based_on_values.md b/docs/authoring/dynamic_phrasing_based_on_values.md index 23e7a8f55..06c561532 100644 --- a/docs/authoring/dynamic_phrasing_based_on_values.md +++ b/docs/authoring/dynamic_phrasing_based_on_values.md @@ -312,6 +312,62 @@ Results in: They are her shoes. ``` +### Automatically use responsive first and second person pronouns ("I", "We", "You", "Your", etc.) + +Versions of the Assembly Line >= 3.0.0 and Docassemble servers later than 1.4.103 can +conjugate pronouns in the first and second person as well as the default third-person. +This works both for an ALIndividual and an ALPeopleList. + +These minimum versions support a new parameter, `person`, that can be one of: + +* 1 (First person, responsive to list length) +* "1p" (first person plural) +* 2 (second person, responsive to list length) +* "2p" (second person plural) +* 3 (third person, responsive to list length. **Default**) +* "3p" (third person plural) + +This is especially helpful in an output document when there can be either 1 or multiple litigants, +such as a letter or complaint that is written from the litigant's perspective. + +For example, to write a letter that is from the perspective of the user or users: + +```jinja +It's all about {{ users.pronoun(person=1) }}. + +{{ users.pronoun_subjective(person=1) }} love animals. + +Especially {{ users.pronoun_possessive("elephant", person=1) }}. +``` + +Results in: + +> It's all about me. +> I love animals. +> Especially my elephant. + +If users is a list with exactly 1 person, and + +> It's all about us. +> We love animals. +> Especially our elephant. + +When there are 2 or more people in the list. + +The `person=2` parameter would result in the following output, +regardless of the length of the list (because there is not a separate +second person pronoun in English): + +> It's all about you. +> You love animals. +> Especially your elephant. + +### More about adapting language based on gender and plurality + +[Docassemble's documentation](https://docassemble.org/docs/objects.html#language%20methods) +includes several more comprehensive examples of how to use these functions to automatically +use appropriate pronouns. + ### `salutation` The [`salutation`](https://docassemble.org/docs/objects.html#Individual.salutation) method diff --git a/docs/efiling/efiling_through_docassemble.md b/docs/efiling/efiling_through_docassemble.md index d6533f515..39fe78d2e 100644 --- a/docs/efiling/efiling_through_docassemble.md +++ b/docs/efiling/efiling_through_docassemble.md @@ -83,9 +83,65 @@ We'll first need to find the right "codes" for our interview. Tyler's E-filing s parts of the filing process, include the over-arching category of the case, the more specific case type, and even things like whether or not the filed document should be confidential or not. -To find the right codes, navigate through the URLs provided by visiting [https://efile-test.suffolklitlab.org/jurisdictions/illinois/codes](https://efile-test.suffolklitlab.org/jurisdictions/illinois/codes). -Firefox will display clickable links that you can use to browse the different codes. +You will usually need to lookup the `case category` and the `case type`. The docassemble integration allows some fuzzy matching based +on the name of the case type or category, because codes can change without warning. But in some cases, you will want to specify the exact code. Therefore, +you will want to note and enter both the name and the associated code for both case category and case type. +https://efile-test.suffolklitlab.org/ has a fairly complete interface to help you locate codes. But: + +* You might need to write down a code you get at one step to effectively use it as a required parameter or in the endpoint URL in a follow-up search. +* One common example is the court's name. The court code is often required to be part of the endpoint's path. Court codes are often +the same as the court's name, but may have a slight variation. You can look up the court code. +* Some of the endpoints require that you add a URL parameter. URL parameters follow standard GET rules, with the first parameter needing a `?` and each following parameter separated by an `&`. The value for each parameter follows a `=`. E.g., ?paramater1=value¶meter2=value + +#### Find the jurisdiction and start browsing services and codes +1. Locate the jurisdiction you want by visiting [https://efile-test.suffolklitlab.org/jurisdictions/](https://efile-test.suffolklitlab.org/jurisdictions/). You can click on the URL next to the jurisdiction name to visit the page for that jurisdiction's courts. +1. Find the "GetCodesService" link to browse all available codes. For example: [https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/](https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes). + +#### Find the code for a court +1. Find the code for the court that you want to file in by visiting the "GetCourts" link. It may help to add the parameter ?with_names=true. For example: [https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/courts?with_names=true](https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/courts?with_names=true). Note: the available paramaters are documented on the previous page, with the link to each available service. +1. Note the appropriate court code. For example, "appeals:acsj" is the code associated with "Appeals Court - Single Justice (J Docket)". + +#### Find the case category name and code +1. Go back to the "GetCodesService" link (https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/) and click the example link for +the getCategories service. You will need to edit the URL to place the proper court code in the URL. For example: https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/courts/appeals:acsj/categories, where `appeals:acsj` is the court code. +1. Note the case category's name and code. For example: Case category "Appeals Court Single Justice - Civil" has the associated code 8151. + +#### Find the code for the case type +1. To get the code for a case type, we need to look at the case types available for a specific category associated with a specific court. +1. Visit the getCaseTypes service. Edit the example URL to **specify both the court code and a category ID.** For example: https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/courts/appeals:acsj/case_types?category_id=8151 +1. Look through the list of codes and pick the appropriate code. For example, for a "MAC Rule 6.0 – Motion to stay" the code is 101447. + +Note that some jurisdictions may use the same case type code for all cases of the same type, across all courts. But at least one jurisdiction, Illinois, uses +different codes in different courts. The most recent version of the `efiling_integration.yml` provided by docassemble-EFSPIntegration allows you to reference +the filing code by name to resolve this problem, but some fuzzy matching may be necessary because even the name for the case type can have variations in +Illinois. + +#### Find the code for the filing type + +In addition to a case type that describes the whole "envelope", individual documents inside the case type have their own codes. + +1. Use the getFilingTypes endpoint to get a list of available filing types and their associated codes. For example: https://efile-test.suffolklitlab.org/jurisdictions/massachusetts/codes/courts/appeals:acsj/filing_types. +1. You can search in the page for the matching filing type. For example, for "Rule 6.0 Motion to Stay" the filing type is 101450. + +Assuming that your Docassemble interview allows filing exactly one case type and category, the efiling_integration.yml file will expect to find the codes defined this way: + +```yaml +code: | + efile_case_category_filters = ['Appeals Court Single Justice - Civil', 'Civil'] + efile_case_category_default = '8151' + efile_case_category_exclude = None + efile_case_type_filters = ['Rule 6.0 Motion to Stay'] + efile_case_type_default = '101447' + efile_case_type_exclude = None +``` + +The filing type is defined at the bundle level (note you can have as many bundles as you choose in a given interview). + +```yaml + + +#### Complete example -- Illinois single court adoption codes For example, say we want to write an Adoption interview. The codes in Illinois are split by courts, so to see the case categories available to one particular court, say Adams, we can go to [https://efile-test.suffolklitlab.org/jurisdictions/illinois/codes/courts/adams/categories](https://efile-test.suffolklitlab.org/jurisdictions/illinois/codes/courts/adams/categories), and scroll through the responses until we find the "Adoption" entry, @@ -94,8 +150,6 @@ code 7306. We would then see the case types for Adoption cases in adams at The endpoints should say when they need parameters, like we provided with `category_id=7306&timing=Initial` above. -We are currently working on a better interface for finding and handling these codes at runtime based on our experiences in Illinois and Massachusetts. Stay tuned. - For this guide, we'll stick with a single court, to make things simple to understand. We'll use the following codes: variable name | purpose | example value | example meaning diff --git a/docs/translation/translation.md b/docs/translation/translation.md new file mode 100644 index 000000000..42ee2e1b9 --- /dev/null +++ b/docs/translation/translation.md @@ -0,0 +1,226 @@ +--- +id: translation +title: Translating your interview +sidebar_label: Translating your interview +slug: /translation/translation +--- + +The Assembly Line has several tools that build on Docassemble's native translation system +to help you offer your interview in multiple languages: + +1. Widgets that you can display to allow the user to switch languages +1. A tool to generate blank translation XLSX files and a tool to help get translation quotes +1. Special variables to turn translation on and off and make it more convenient to list the available languages + in your interview. + +## Core concepts + +### XLSX File format +Docassemble interviews can be translated by adding a special Excel spreadsheet (XLSX format) +in the `sources` folder of your package. Docassemble's translation system +works without requiring you to maintain multiple YAML files. The translated phrases are loaded +"live" when you run your interview. + +In the XLSX file, the translator sees two columns: one with English (or your source language) +phrases, and an empty column where they can write the translated phrases. + +### What the translator sees + +Any mako tags that you used, for example, `${ variable }`, will be visible in the English +version of the cell, but will be highlighted in a distinct color. Similarly, HTML will also +be highlighted. + +### Text that isn't translated using the XLSX translation system + +Some parts of the interview require special handling: + +* Buttons and system phrases need to be translated in a `words.yml` file. +* Blocks that do not use Mako, like the `sections` block, need to be translated + in-place with the `language` modifier. + +## Making a translation file + +Use the ALDashboard's "Prepare Translation Files" menu item to make a new translation file, +ready to send to your translator. + +The tool also will calculate how many words in the given language need to be translated, +without counting Mako and HTML code. The number it provides is suitable for you to share +with a translation vendor. + +## Variables used in translated interviews + +* `enable_al_language`: defaults to True, turning it off can partially ensure the language system in AssemblyLine doesn't interfere with existing language systems. It should be relatively easy for authors to migrate to this new system though. +* `al_user_default_language`: can be controlled by interview author, this determines the language when the user makes no selection of their own. Defaults to "en". +* `al_interview_languages`: a list of language codes, presumably ISO-639-1 (Alpha-2), like ["en","es"] etc. They should exist in the languages.yml file if you would like to display in the native language. The author can provide their own languages.yml file. +* `al_user_language`: normally set via a dropdown menu or passed as a URL argument, this stores the user's current selected language + +## Make the translation file available in your interview + +1. Add the new XLSX file into `sources` folder in your package. +2. Add a `translations` block + +```yaml +translations: + - MyPackage.xlsx +``` + +:::caution Add the translation block up top + +Because of the way translations are loaded, +you need to add the translations block **before** +any other questions or includes in your interview. + +If you have the `translations` block later in your +file, it won't have any effect on questions defined +closer to the top of the file. +::: + +## Methods to change interview language + +### Drop-down menu selector with `get_language_list_dropdown()` +When `al_interview_languages` is defined (which is the default) and has at least 2 items, +the Assembly Line will add a drop-down menu item in the top right that allows the user +to switch languages at any time. + +You can customize this drop-down menu with a block like this: + +```yaml +--- +default screen parts: + navigation bar html: | + % if enable_al_language and len(al_interview_languages) > 1: + ${ get_language_list_dropdown(al_interview_languages,current=al_user_language, extra_class="text-dark", icon="fa-solid fa-language fa-xl" ) } + % endif +``` + +By using your own `navigation bar html` block, you can customize the `icon` and `extra_class` parameters. +Use `extra_class` `text-dark` if your navigation bar is light, rather than the default dark navigation bar +color. This class applies to the `anchor` tag that surrounds the icon. + +By default the icon is the [FontAwesome `language` icon](https://fontawesome.com/search?q=language&o=r) +at size `xl` (extra large). You can customize the `icon` parameter with a unique icon name and any other +FontAwesome custom [styling options](https://docs.fontawesome.com/web/style/styling). + +### In-line language list with `get_language_list` + +On the first screen of the interview, you may want to just show the user a list of the languages directly in the `subquestion` area, where it is more visible, +rather than directing them to the dropdown menu. + +You can call `get_language_list()` to achieve this. + +Example: + +```yaml +subquestion: | + ${ get_language_list(lang_codes=al_interview_languages, current=al_user_language) } +``` + +### Ask the user a question + +If you want to be absolutely sure that the user encounters the language +question, you can directly ask the user a question: + +```yaml +id: language +question: | + What language / que idioma? +fields: + - Language/idioma: al_interview_languages + datatype: radio + choices: + - English: en + - Español: es +``` + +### Switching language on the fly + +Make sure that expert users of your tool, like advocates +shadowing or looking over the shoulder of an unrepresented +litigant, know that they can use the dropdown menu to switch +language "live." + +For example, the SRL can work through the interview on their own +until a point at which they get stuck. Then the helper can change +to English to understand what is happening on the screen, and speak +with an interpreter to give the SRL instructions. + +This can be helpful for bilingual assistance +settings. + +### Pre-launch in a specific language with special url parameter `lang` + +If you would like to share the interview in a bilingual landing +page rather than forcing the user to change the language +dynamically, use the `lang=CODE` URL argument. + +E.g., + +https://apps.suffolklitlab.org/start/uptocode/?lang=es + +The interview will launch in the language specified by +the language code (if it is translated into that language) + +:::note +If the URL already has a `?` in it, replace the `?` with an `&`. + +(this is a standard part of URL arguments). +::: + +## A complete example + +```yaml +--- +translations: + - my_interview_es.xlsx # The translation file list should be the first section of the interview +--- +include: + - docassemble.AssemblyLine:assembly_line.yml +--- +metadata: + title: My interview +--- +code: | + al_interview_languages = ["en", "es"] # List each available language, including English, using the ISO code +--- +default screen parts: + # Customizing this section isn't required. Here + navigation bar html: | + % if enable_al_language and len(al_interview_languages) > 1: + ${ get_language_list_dropdown(al_interview_languages,current=al_user_language, extra_class="text-dark", icon="fa-solid fa-language fa-xl" ) } + % endif +--- +sections: + - section_intro: Getting started + - section_you: About you + - section_case: About your court case + - section_defenses: Claims and defenses + - review_eviction_answer: Review your answers + - section_download: Download, print, deliver, and file +--- +language: es # The sections block is NOT in the interview translation XLSX file +sections: + - section_intro: Empezar + - section_you: Sobre usted + - section_case: Sobre su caso judicial + - section_defenses: Reclamaciones y defensas + - review_eviction_answer: Revisar sus respuestas + - section_download: Descargar, imprimir, entregar y presentar +--- +id: intro +question: | + File a My Interview document +subquestion: | + Use this interview to file a "MyInterview" document in 3 steps: + + 1. ... + 2. ... + 3. ... +pre: | + ${ get_language_list(lang_codes=al_interview_languages, current=al_user_language) } +``` + +## Read more + +You can read more about the stock language features in the official Docassemble [language features documentation](https://docassemble.org/docs/language.html). + +Also, see the documentation for the [AL language module](/docs/reference/AssemblyLine/language) \ No newline at end of file diff --git a/docs/weaver_overview.md b/docs/weaver_overview.md index e9b4c120b..54e738dbe 100644 --- a/docs/weaver_overview.md +++ b/docs/weaver_overview.md @@ -53,7 +53,7 @@ to continue editing your code. The steps that the Weaver will walk you through are as follows: 1. validate the labels and your template file -1. add some basic information about your form (follow the [planning your interview](./get_started/plan_interview.md) to get this ready) +1. add some basic information about your form (follow the [planning your interview](/get_started/plan_interview.md) to get this ready) 1. add on-screen prompts for each labeled field 1. choose a datatype for each labeled field (for example: text, number, date) 1. organize the fields onto individual screens with headings and optional additional text diff --git a/docusaurus.config.js b/docusaurus.config.js index 35081ec55..206461d2b 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -76,6 +76,10 @@ module.exports = { '@docusaurus/plugin-client-redirects', { redirects: [ + { + from: '/docs', + to: '/' + }, { from: '/docs/framework/efiling', to: '/docs/efiling/overview' @@ -125,7 +129,7 @@ module.exports = { to: '/docs/archive/bootcamp' }, { - from: '/docs/plan_interview', + from: '/docs/planning', to: '/docs/get_started/planning' }, { diff --git a/sidebars.js b/sidebars.js index 6e83ab7a1..1743f208a 100644 --- a/sidebars.js +++ b/sidebars.js @@ -153,6 +153,13 @@ module.exports = { "reference/formfyxer/pdf_wrangling" ] }, + { + type: 'category', + label: 'Translation', + items: [ + 'translation/translation' + ] + }, { type: 'category', label: 'E-filing', @@ -160,6 +167,7 @@ module.exports = { 'efiling/overview', 'efiling/efiling_through_docassemble', 'efiling/efiling_case_search', + 'efiling/efiling_codes', 'efiling/monitoring', ] }, diff --git a/CNAME b/static/CNAME similarity index 100% rename from CNAME rename to static/CNAME From 0451800232d44c6a7cdb1e47293f396703a3778d Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 9 Aug 2024 10:24:18 -0500 Subject: [PATCH 18/36] Update anchor --- docs/get_started/beginners_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/get_started/beginners_guide.md b/docs/get_started/beginners_guide.md index 9c129e43b..29a9255aa 100644 --- a/docs/get_started/beginners_guide.md +++ b/docs/get_started/beginners_guide.md @@ -13,7 +13,7 @@ Here are the steps: 1. [Do the Hello, World exercise](#do-the-hello-world-exercise) for a friendly introduction to Docassemble 2. [Watch a demonstration of the Weaver](#watch-a-demonstration-of-the-weaver), a Document Assembly Line tool for quickly turning prepared forms into draft Docassemble interviews -3. [Review the interview project roadmap](#review-the-interview-building-workflow) +3. [Review the interview project roadmap](#review-the-interview-project-roadmap) 4. [Join the Document Assembly Line community](#join-the-document-assembly-line-community) 5. [Start building your first interview!](#start-building-your-first-interview) From 3fcb6c03fd295fca34938aac83ac2027e66ee71d Mon Sep 17 00:00:00 2001 From: samglover Date: Tue, 13 Aug 2024 17:36:20 -0500 Subject: [PATCH 19/36] Saving WIP --- docs/get_started/interview_project_roadmap.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index f6a988a5f..707918c6a 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -198,16 +198,18 @@ You can also set up [collect analytics](../analytics/tracking_usage) to learn ho ## Do a Retrospective -Whether or not your project was successful, the interview-building team, the decisionmaker, and the key stakeholders should do a retrospective. +Before you start another interview-building project, pause briefly for a retrospective on how this one went. The retrospective format comes from [Agile software development](https://en.wikipedia.org/wiki/Agile_software_development), and it is a way to embrace continuous improvement by taking a moment to reflect on the project you just finished in order to improve the next one. -The retrospective comes from [Agile software development](https://en.wikipedia.org/wiki/Agile_software_development) and a way of embracing continuous improvement. - -To do a retrospective, discuss three questions: +To do a retrospective, gather the group and discuss three questions: 1. What went well that we should keep doing? 2. What did not go well that we should stop doing? 3. What should we try going forward? -Retrospectives are generally more effective when the team is together in real time—on Zoom, for example. You can do a group retrospective or the project manager can meet separately with the interview builders and decisionmaker. Do what feels right based on the group dynamics. +Retrospectives are generally more effective when the team is together in real time—on Zoom, for example. Depending on the group dynamics you can do a retrospective as a group or meet with one person at a time. + +:::tip +Insist that everyone give at least one answer to each question. Even if someone insists nothing went badly, ask if they found themselves confused or struggling at any point during the project. Their answer may lead to an area that could be improved. +::: Use what you learn from the retrospective when planning your next interview-biulding project. \ No newline at end of file From 3cb2985e44926f536f54d90b70a0fb1b2678e427 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 08:29:43 -0500 Subject: [PATCH 20/36] Add URL watermark --- .../interview-project-roles-communication.png | Bin 270575 -> 284643 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/interview-project-roles-communication.png b/docs/assets/interview-project-roles-communication.png index 7ddbcb8c0251600fda519649a47b89fa9425f367..7279f9e15954092acb43064b19ddc5c23ae0f48e 100644 GIT binary patch delta 26031 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 Date: Fri, 30 Aug 2024 08:30:04 -0500 Subject: [PATCH 21/36] Interview project roadmap first draft --- docs/get_started/interview_project_roadmap.md | 92 +++++++++---------- 1 file changed, 43 insertions(+), 49 deletions(-) diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index 707918c6a..7b010aafe 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -5,9 +5,9 @@ sidebar_label: Interview Project Roadmap slug: /get_started/interview_project_roadmap --- -Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview project—whether it is your first or fiftieth—this page will guide you through the stages of an interview-building project, from concept to launch. +Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview-building project—whether it is your first or fiftieth—this page will guide you through the stages of a successful project, from concept to launch. -This roadmap reflects the procedures, templates, and tools the LIT Lab uses on our interview-building projects, which you can adapt to yours. +This roadmap reflects the procedures, templates, and tools the LIT Lab uses on our own interview-building projects, which you can adapt to your projects. ## Identify Key Roles & Responsibilities @@ -25,13 +25,13 @@ You may have a team of interview builders and dozens of stakeholders, or you may ### The Decisionmaker -**While a successful interview project needs all these roles, the decisionmaker is especially important.** Most interview projects involve multiple stakeholders. When the interview building team requests guidance or feedback, multiple stakeholders may give multiple responses that may be confusing or conflicting. This dramatically slows progress. +**While a successful interview project needs all these roles, the decisionmaker is especially important.** Most interview projects involve multiple stakeholders. When the interview building team requests guidance or feedback, multiple stakeholders may give multiple responses that may be confusing or conflicting and dramatically slow progress. The decisionmaker's job is to gather and clarify stakeholders' feedback so that interview builders have clear decisions to work from. The decisionmaker's responsibilities also include: * Being a single point of contact and single source of decisions * Regular meetings with the interview building team -* Timely responses to requests for feedback +* Timely responses to requests for decisions and feedback * Gathering feedback or approvals from stakeholders and converting it to clear decisions * Making the go/no-go decision to launch the interview @@ -41,43 +41,37 @@ The decisionmaker must either (1) have the authority necessary to carry out thes Schedule a kickoff meeting for the project as early as possible. The interview building team, the decisionmaker, and the key stakeholders should attend. +The goal of a kickoff meeting is to get everyone on the same page when it comes to roles, expectations, and timeline. A good kickoff meeting sets the stage for a successful project. + Here is a sample kickoff meeting agenda: -* Everyone should introduce themselves and identify their role in the project. -* Discuss the reason for having a single decisionmaker and identify that person. -* Give an overview of the development process (use this page as a guide). -* Schedule a regular check-in meeting (weekly or every other week) with the decisionmaker and one or two key stakeholders. -* Introduce the form and how it will be used. Cover the who, what, when, where, and why: - * Who will use it and what are they called? Who else appears on the form? Who can't use it and how would they know? - * What can someone do with it? What can't they do with it? - * When would someone use it, and what will have happened before they do? - * Where would someone use it? Where would they file it? - * Why would someone use it? - * How do they file it? If it shouldn't be filed, what should they do after completing it? -* Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) and define the requirements for this project. -* Agree on a process for changing the scope of the project (i.e., adding features). -* Discuss what success looks like for this project, and how you will measure it. -* Do a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why. +* Introductions +* Identify the decisionmaker +* Development process overview (use this page) +* Schedule regular check-ins with the decisionmaker and one or two key stakeholders +* Introduce the source form/document and its context. In other words: + * Who can use this interview? + * What are they called (i.e., plaintiff, respondent, or appellee)? + * What can/can't this interview be used to do? + * Explain the court process leading up to someone using this interview. + * Identify the substantive laws or procedural rules the interview builders should be familiar with. + * Where and how must the completed documents be filed, served, or delivered? +* Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) +* Define the requirements for this interview +* Agree on a process for changing the scope of the project (i.e., adding features) +* Discuss what success looks like for this project, and how you will measure it +* Consider doing a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why -:::info -If this is a solo project you should still make time for a kickoff "meeting" with yourself. +:::tip +Even if this is a solo project, you should make time for a kickoff "meeting" with yourself. ::: -## Build the Interview +## Complete the Draft Interview -After the kickoff meeting it is time to get to work! Interview building includes: - -* Coding (following the [GitHub workflow](../github.md#workflow)) -* Keeping track of tasks, change requests, questions, etc., using [GitHub issues](../github.md#use-issues) -* Getting help with blockers ([resources](resources.md)) -* Testing the interview -* Demonstrating the interview -* Regular standups with the interview building team -* Regular check-ins with the decisionmaker and key stakeholders -* More coding +After the kickoff meeting it is time to get to work! As you work on the interview, follow the [GitHub workflow](../github.md#workflow). If you get stuck on a problem for more than twenty minutes, ask for help. (Use the [Resources](resources.md) page to find options.) :::tip -The LIT Lab's [interview project template](https://github.com/orgs/SuffolkLITLab/projects/22) can help you keep your project organized. Just click the **Use this template** button to use it. (You'll need a free [GitHub](../github.md) account.) +The LIT Lab's [interview project template](https://github.com/orgs/SuffolkLITLab/projects/22) can help you keep your project organized and on track. Just click the **Use this template** button to use it. (You'll need a free [GitHub](../github.md) account.) ::: ## Meeting Cadence @@ -86,7 +80,7 @@ Two recurring meetings will help you keep the project moving forward. These are ### Interview-Building Team Meetings -The interview-building team should meet frequently. Daily check-ins are most common on active projects, and anything less than weekly is unlikely to be effective. +The interview-building team should meet frequently. Daily check-ins are common on active projects, and anything less than weekly is unlikely to be effective. :::tip Consider incorporating our Monday community meetings into your standup schedule. We run them standup-style, with time for solving blockers as a group. If this is a solo project, the Document Assembly Line community can be part of your interview-building team! @@ -98,7 +92,7 @@ These meetings should follow a straightforward standing agenda. Each person on t 2. **Plan:** what they are working on now 3. **Blockers:** issues that are preventing them from making progress -The reason for sharing your progress and plan for the day/week is so that everyone has an idea what everyone else is working on. This is necessary for the project manager, and can help interview builders avoid code conflicts or identify when it's time to merge branches. +The reason for sharing your progress and plan for the day or week is so that everyone has an idea what everyone else is working on. This is necessary for the project manager, and can help interview builders avoid code conflicts or identify when it's time to merge branches. The reason for sharing blockers is to get help. Some teams reserve a larger block of time and use it to solve blockers together, like we do in our Monday community meetings. Other teams prefer to solve blockers separately. And sometimes a blocker is a question you need answered by the decisionmaker. @@ -113,23 +107,23 @@ Weekly or every-other week meetings with the decisionmaker and one or two key st When sharing progress and the current plan, it can help to give a percentage estimate. Something like: "We think we are about 30% of the way to a complete draft interview, and by our next meeting we hope to be at 50%." :::tip -Use [GitHub issues](../github.md#use-issues) to keep track of your questions for the decisionmaker. Add a **question** label to GitHub issues to make it easy to pull up your list of questions during a meeting. +Use [GitHub issues](../github.md#use-issues) to keep track of your questions for the decisionmaker. If you add a **question** label to issues, it is easy to pull up the list of your questions during a meeting. ::: To get better answers, ask questions better. Here are some tips for asking questions: -* Before you pose a question to the decisionmaker, ask your interview-building team (or the community). +* Only ask for a decisions when you can't make it yourself. Before you pose a question to the decisionmaker, ask your interview-building team (or the community). * Avoid open-ended questions. When you decide to pose a question to the decisionmaker, give them two or three options and explain the pros, cons, and implications of each. * If you do ask an open-ended question, explain that you are trying to generate ideas, not decide on a solution. -* Don't ask the decisionmaker to design the interview. Ask for goals ("Do you need the attorney's ID number?"), not details ("Do you want the ID number field to show up right under the attorney's name field?"). +* Don't ask the decisionmaker to design the interview. It is usually better to ask for goals ("Do you need the attorney's ID number?"), not details ("Do you want the ID number field to show up right under the attorney's name field?"). -**Remember: if you ask a question you will get an answer.** Avoid asking questions when you don't need an answer so you don't make the project more complicated than it needs to be. The decisionmaker and stakeholders will have ample opportunity to give feedback on the full interview later. +**Remember: if you ask a question you will get an answer.** If you don't need an answer, asking for one is not likely to help and may complicate the project. -Finally, when asking questions it helps to show the relevant part of the interview, but it is also a good idea to remind the decisionmaker and stakeholders that the interview is a work in progress. If a different screen from the interview catches their eye, you can just let them know you are still working on it and you aren't ready for their feedback, yet. +Finally, when showing the relevant part of the interview as part of asking a question, remind the decisionmaker and stakeholders that the interview is a work in progress and you are not ready for feedback beyond the answer to your question. ## Get Feedback on the Interview -Once the interview works from start to finish you can get feedback on it. Start by getting preliminary feedback from someone with Document Assembly Line experience. After you have made revisions based on the preliminary feedback, give the interview to the decisionmaker and stakeholders for their feedback. +Once the interview works from start to finish and you have closed all the issues that are in scope for the [MVP](assembly_line_setup#stick-to-an-mvp), it is ready for feedback. Start by getting preliminary feedback from someone with Document Assembly Line experience. After you have made revisions based on the preliminary feedback, give the interview to the decisionmaker and stakeholders for their feedback. ### Preliminary Feedback @@ -139,7 +133,7 @@ To get the interview ready: 1. [Merge your code](../github#create-a-pull-request) into **main** or a testing branch 2. [Create a new playground project](../github#create-and-manage-playground-projects) for the interview demonstration and pull your code into it -3. Make sure the interview works as expected in the testing project (**don't skip this step!**) +3. Make sure the interview works as expected in the testing project Once the interview is ready, schedule a video meeting with the tester so you can watch them go through the interview. Or they can watch you demonstrate it. Record the test if you can so you can focus on the test instead of taking notes. @@ -153,18 +147,18 @@ During the demonstration or testing: Once you have closed all the issues that are in scope for the [MVP](assembly_line_setup#stick-to-an-mvp) and tested the interview yourself, it should be ready to hand off to the decisionmaker and stakeholders for their testing and feedback. -Get the interview ready the same as [above](#get-preliminary-feedback), then click the **Share** button in the testing project playground to get the link to the interview. +Get the interview ready the same as [above](#preliminary-feedback), then click the **Share** button in the testing project playground to get the link to the interview. :::tip -When sharing the interview link, make sure the URL ends with `#page1`. If you have been testing the interview the **Share** link will go to the last page you were viewing instead of the start of the interview. Usually this won't matter, but it could result in unexpected behavior. +When sharing the interview link, make sure the URL ends with `#page1`. If you have been testing the interview the **Share** link will point to the last page you were viewing instead of the start of the interview. Usually this won't matter, but it could result in unexpected behavior. ::: -Share the link with the decisionmaker, and give them a few tips for giving helpful feedback: +Share the link with the decisionmaker and give them a few tips for giving helpful feedback: -* The feedback should come in the form of a written list of requested changes. -* If there is confusing or conflicting feedback from stakeholders it is the decisionmaker's responsiblity to clarify it before presenting it to the interview building team. +* The feedback should come in the form of a written list of requested changes +* If there is confusing or conflicting feedback from stakeholders it is the decisionmaker's responsiblity to clarify it before presenting it to the interview building team * Change requests should be specific. For example, if the text of a question should be changed, the change request should include the new text. -* At the top of each page of the interview is an ID. This ID is a reliable identifier when referring to an interview page. (The "fifth page" might be different dependind on the interview logic.) +* At the top of each page of the interview is an ID. This ID is a reliable identifier when referring to an interview page. (For example, the "fifth page" might be different depending on the interview logic.) ## Revise the Interview @@ -172,7 +166,7 @@ After getting feedback, create a [GitHub issue](../github#use-issues) for each c When you have closed all the issues/items on your punch list, send it back to the decisionmaker for further feedback. Each round of feedback should result in fewer change requests and move the project closer to completion. -:::tip +:::info Two rounds of feedback and revision are usually enough. It it takes more than three, consider ways to improve your process going forward. ::: From 6aed3127c1c8c3a51a62f65157e067747bc40e2a Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 09:41:47 -0500 Subject: [PATCH 22/36] Delete and redirect the Roles page --- docs/get_started/assembly_line_steps_roles.md | 49 ------------------- docusaurus.config.js | 6 ++- sidebars.js | 1 - 3 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 docs/get_started/assembly_line_steps_roles.md diff --git a/docs/get_started/assembly_line_steps_roles.md b/docs/get_started/assembly_line_steps_roles.md deleted file mode 100644 index 7dd7d5ce5..000000000 --- a/docs/get_started/assembly_line_steps_roles.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -id: assembly_line_steps_roles -title: Roles -sidebar_label: Roles -slug: /get_started/assembly_line_steps/roles ---- - -:::warning -We are actively updating the Document Assembly Line workflow and much of the information in this section is outdated. -::: - -It's common for one or more roles to be shared by a single person. On our project -we benefited from a lot of volunteers and the ability to split roles more evenly. Think -about finding people to play the following roles: - -* Project manager -* Researcher and content author -* Subject matter expert and liaison to subject matter expert -* Template cleanup and adding labeled fields (in Adobe Acrobat or Microsoft Word) -* Python coder -* Frontend / HTML / CSS / JavaScript coders -* Docassemble developer -* Plain language reviewer and editor -* Tester - -We found the most success in asking short-term volunteers to help with **testing**, -cleaning up and **adding labeled fields to templates**, and Python and frontend -**coding** (for discrete tasks that didn't demand too much familiarity with our -whole code base). **Subject matter experts**, similarly, did not require a long-term -commitment to the project, but did require some orientation to understand what -an interactive legal application can and should do. - -Longer-term members of our team fit more naturally into other roles. People often -changed roles and overlapped them over the time that they volunteered. For example: -almost all of our members did some Docassemble development as they gained comfort -and familiarity as the project went on. - -Project management is a learned skill that fit well with people who were -outgoing and organized, and also did not demand extensive coding experience. We -found it necessary to have a project manager role to make sure content actually -got out the door. Otherwise, apps could spend too much time in the refining -stage. The urgency of the pandemic helped us center delivering working apps as a -goal. - -While not an explicit role in the project, we also found it important to share -our work in progress with community groups and stakeholder groups early to gain -important insights about features and how our project should be designed. Often, -this was in the form of a demo with an explicit ask for feedback, so at the stage -a bit beyond the useful prototype stage. \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 206461d2b..4aabd5206 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -110,7 +110,7 @@ module.exports = { }, { from: '/docs/assembly_line_steps/roles', - to: '/docs/get_started/assembly_line_steps/roles' + to: '/docs/get_started/interview_project_roadmap#identify-key-roles--responsibilities' }, { from: '/docs/assembly_line_steps/planning_time', @@ -136,6 +136,10 @@ module.exports = { from: '/docs/authoring/working_with_teams', to: '/docs/get_started/working_with_teams' }, + { + from: '/docs/get_started/assembly_line_steps/roles', + to: '/docs/get_started/interview_project_roadmap#identify-key-roles--responsibilities' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index 1743f208a..8fc0f13e7 100644 --- a/sidebars.js +++ b/sidebars.js @@ -17,7 +17,6 @@ module.exports = { items: [ 'get_started/assembly_line_setup', 'get_started/assembly_line_steps', - 'get_started/assembly_line_steps_roles', 'get_started/assembly_line_steps_planning_time', 'get_started/assembly_line_steps_step_by_step', 'get_started/customization', From 024356ae68ba4753d2311ec7fc6fae975c89186e Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 09:44:55 -0500 Subject: [PATCH 23/36] Delete and redirect Assembly Line steps/process page --- docs/get_started/assembly_line_steps.md | 43 ------------------------- docusaurus.config.js | 6 +++- sidebars.js | 1 - 3 files changed, 5 insertions(+), 45 deletions(-) delete mode 100644 docs/get_started/assembly_line_steps.md diff --git a/docs/get_started/assembly_line_steps.md b/docs/get_started/assembly_line_steps.md deleted file mode 100644 index c1ff8fcb1..000000000 --- a/docs/get_started/assembly_line_steps.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: assembly_line_steps -title: The Assembly Line process -sidebar_label: The Assembly Line process -slug: /get_started/assembly_line_steps ---- - -:::warning -We are actively updating the Document Assembly Line workflow and much of the information in this section is outdated. -::: - -The guidance below is for organizations that want to set up their **own** copy of the -Assembly Line, not for individual automators. - -We think that the most important work we did came not from computer code, but a -process: the process of automating a legal form, broken down into a series of -small steps. - -## Our Trello boards {#trello} -We turned that process into a series of -[Kanban](https://blog.trello.com/kanban-data-nave) boards, and if you want you -can jump straight to -[copying](https://help.trello.com/article/802-copying-cards-lists-or-boards) and -customizing them for your needs: - -1. [AssemblyLine - Pre-processing Template Board](https://trello.com/b/Z2Svx3oh/1-assemblyline-pre-processing-template-board#) -1. [AssemblyLine - Development Template Board](https://trello.com/b/ArfGFbz4/2-assemblyline-development-template-board) -1. [AssemblyLine - Testing Template Board](https://trello.com/b/nT7yy2Wl/3-assemblyline-testing-template-board) - -## Overview - -Automating a form involves: - -* Research and vetting the substantive content -* Coding -* Adding labeled fields to a template document -* Generating and refining a prototype -* Testing and getting feedback - -## More reading - -* [Building your first expert system](https://suffolklitlab.org/legal-tech-class/docs/interview-structure/building-an-app-outline) -* Lauritsen and Soudakoff, [Keys to a Successful Document Assembly Project](https://static1.squarespace.com/static/571acb59e707ebff3074f461/t/5946f745725e25bf7ad93c9b/1497823045990/keys.pdf) \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 4aabd5206..9318eb09e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -106,7 +106,7 @@ module.exports = { }, { from: '/docs/assembly_line_steps', - to: '/docs/get_started/assembly_line_steps' + to: '/docs/get_started/interview_project_roadmap' }, { from: '/docs/assembly_line_steps/roles', @@ -140,6 +140,10 @@ module.exports = { from: '/docs/get_started/assembly_line_steps/roles', to: '/docs/get_started/interview_project_roadmap#identify-key-roles--responsibilities' }, + { + from: '/docs/get_started/assembly_line_steps', + to: '/docs/get_started/interview_project_roadmap' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index 8fc0f13e7..0f1faa721 100644 --- a/sidebars.js +++ b/sidebars.js @@ -16,7 +16,6 @@ module.exports = { label: 'Setting up your team', items: [ 'get_started/assembly_line_setup', - 'get_started/assembly_line_steps', 'get_started/assembly_line_steps_planning_time', 'get_started/assembly_line_steps_step_by_step', 'get_started/customization', From 9787b4c996b617dcfc3e4bda8018f1cb3d913769 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 09:46:42 -0500 Subject: [PATCH 24/36] Delete and redirect Step-by-step page --- .../assembly_line_steps_step_by_step.md | 108 ------------------ docusaurus.config.js | 6 +- sidebars.js | 1 - 3 files changed, 5 insertions(+), 110 deletions(-) delete mode 100644 docs/get_started/assembly_line_steps_step_by_step.md diff --git a/docs/get_started/assembly_line_steps_step_by_step.md b/docs/get_started/assembly_line_steps_step_by_step.md deleted file mode 100644 index d01d3c6fa..000000000 --- a/docs/get_started/assembly_line_steps_step_by_step.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: assembly_line_steps_step_by_step -title: Step-by-step -sidebar_label: Step-by-step -slug: /get_started/assembly_line_steps/steps ---- - -:::warning -We are actively updating the Document Assembly Line workflow and much of the information in this section is outdated. -::: - -The guidance below is for organizations that want to set up their **own** copy of the Assembly Line, not for individual automators. - -Below is a brief explanation of the content on our sample Trello boards. - -## Pre-processing - -The [pre-processing Trello board](https://trello.com/b/Z2Svx3oh/1-assemblyline-pre-processing-template-board#) is -where you will: - -1. clean up the template file -1. add our standardized labels -1. get a peer to review your work adding labels to catch mistakes early on - -## Development - -The phase that you will spend the most time on for your app--development--gets -just one Trello board. - -[Development Template Board](https://trello.com/b/ArfGFbz4/2-assemblyline-development-template-board) - -### Using the Weaver - -First, run your form through the [Weaver](weaver_overview.md). - -### Refining in the Docassemble playground - -Next, [customize your form](customizing_interview.md). - -### Getting expert review - -Get feedback from your subject matter experts. Turn the feedback into actionable -[Github](/docs/github) issues that you can triage later. - -### Getting plain language review - -Hopefully you kept in mind our guidance on [writing good -questions](/docs/style_guide/question_overview). Nevertheless, get a second opinion that -focuses just on how readable and easy to understand the substantive content -of your app is. - -### Getting feedback from team members and external stakeholders - -At our peak, we had multiple weekly meetings with 5-15 members of our team. -These were excellent places to ask developers to demonstrate their work and get more -holistic feedback on the app: focusing on aspects including: - -* [appropriate use of fields](question_style_organize_fields.md) -* [interview structure](question_style_structure.md) - -and any other aspects that required a bigger-picture view of the app. - -On a smaller team, you may want to set up structured demos with potential -stakeholders. - -If you have time, budget, and access to real users, you may set up one-on-one -or focus-group sessions to observe real users of your product. - -Assembly line forms also include an embedded feedback link that will create a GitHub -issue, so if you lack the ability to set up structured sessions, you could -directly share a testing link with potential users to get feedback. - -In either case: use this time, again, to turn the feedback into [actionable -Github issues](/docs/github). Spend time afterwards triaging and prioritizing the -feedback. - -### Iteration - -The point of gathering this feedback, of course, is to move on from your first -runnable prototype into a refined final product. - -[Read more about iteration](https://suffolklitlab.org/legal-tech-class/docs/interview-structure/building-an-app-outline/#iteration-and-testing). - -Some important points to keep in mind is: - -1. not all feedback can be implemented -1. an imperfect tool may be better than a perfect tool that is never released or used. - -We developed the [legal app maturity -model](https://suffolklitlab.org/legal-tech-class/docs/legal-tech-overview/maturity-model) -to provide a very concrete guidance as to which features should be prioritized. - -## Testing - -Testing should be incorporated into multiple stages of development, but we -provided some more specific guidance on our [testing Trello board](https://trello.com/b/nT7yy2Wl/3-assemblyline-testing-template-board). - -We found it effective to [test using this approach](https://suffolklitlab.org/legal-tech-class/docs/testing/testing-scenarios): - -1. understand and create a high-level feature matrix -1. write realistic user scenarios that provide good coverage of the features you - want to test -1. use multiple testers to use the scenarios as a rough guide to help with - quasi-random input testing. - -It is a good idea to ask your testers to record their tests on Zoom as they -work. This lets you rewind and spot the exact sequence of events that causes an -error. diff --git a/docusaurus.config.js b/docusaurus.config.js index 9318eb09e..75c7d15ce 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -118,7 +118,7 @@ module.exports = { }, { from: '/docs/assembly_line_steps/steps', - to: '/docs/get_started/assembly_line_steps/steps' + to: '/docs/get_started/interview_project_roadmap' }, { from: '/docs/customization', @@ -144,6 +144,10 @@ module.exports = { from: '/docs/get_started/assembly_line_steps', to: '/docs/get_started/interview_project_roadmap' }, + { + from: '/docs/get_started/assembly_line_steps/steps', + to: '/docs/get_started/interview_project_roadmap' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index 0f1faa721..e8848fb46 100644 --- a/sidebars.js +++ b/sidebars.js @@ -17,7 +17,6 @@ module.exports = { items: [ 'get_started/assembly_line_setup', 'get_started/assembly_line_steps_planning_time', - 'get_started/assembly_line_steps_step_by_step', 'get_started/customization', ], }, From d255999545fb3b7de8b4aab110f85f6451e146a1 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 09:51:02 -0500 Subject: [PATCH 25/36] Move branding customization page --- docs/{get_started => }/customization_overview.md | 4 ++-- docusaurus.config.js | 8 ++++---- sidebars.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) rename docs/{get_started => }/customization_overview.md (98%) diff --git a/docs/get_started/customization_overview.md b/docs/customization_overview.md similarity index 98% rename from docs/get_started/customization_overview.md rename to docs/customization_overview.md index 0394790a5..30e4431e9 100644 --- a/docs/get_started/customization_overview.md +++ b/docs/customization_overview.md @@ -2,7 +2,7 @@ id: customization title: Applying a custom theme or brand sidebar_label: Applying a custom theme or brand -slug: /get_started/customization +slug: /customization --- ## Sharing a custom look and feel across multiple Assembly Line interviews @@ -130,7 +130,7 @@ to try it out. At the end of the tool, you can view what all of the different bootstrap components will look like with your theme. If you want to change any of the colors, you can go back and edit your "custom.scss" file and regenerate the bootstrap theme. -![A screenshot that says "Your file is compiled! You can view and copy your file, or download it directly by right clicking the link to save it as a CSS file". Below are examples of Bootstrap components like buttons and nav bars.](../assets/dashboard-bootstrap-example.png) +![A screenshot that says "Your file is compiled! You can view and copy your file, or download it directly by right clicking the link to save it as a CSS file". Below are examples of Bootstrap components like buttons and nav bars.](./assets/dashboard-bootstrap-example.png) Once you like the colors you've chosen, download the compiled file, and then add it a docassemble project, in the `static` folder. You can then reference your new file diff --git a/docusaurus.config.js b/docusaurus.config.js index 75c7d15ce..a442d57a6 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -120,10 +120,6 @@ module.exports = { from: '/docs/assembly_line_steps/steps', to: '/docs/get_started/interview_project_roadmap' }, - { - from: '/docs/customization', - to: '/docs/get_started/customization' - }, { from: '/docs/bootcamp', to: '/docs/archive/bootcamp' @@ -148,6 +144,10 @@ module.exports = { from: '/docs/get_started/assembly_line_steps/steps', to: '/docs/get_started/interview_project_roadmap' }, + { + from: '/docs/get_started/customization', + to: '/docs/customization' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index e8848fb46..e8425d386 100644 --- a/sidebars.js +++ b/sidebars.js @@ -17,7 +17,6 @@ module.exports = { items: [ 'get_started/assembly_line_setup', 'get_started/assembly_line_steps_planning_time', - 'get_started/customization', ], }, 'contributors', @@ -43,6 +42,7 @@ module.exports = { 'alweaver_overview', 'github', 'customizing_interview', + 'customization', 'writing_review_screen', 'yaml_anatomy', ], From b59e9d7743fe1c1086b011474b9de909872fb028 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 09:58:31 -0500 Subject: [PATCH 26/36] Move and rename theme customization page to ALThemeTemplate --- .../althemetemplate.md} | 11 ++++++----- docusaurus.config.js | 2 +- sidebars.js | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) rename docs/{customization_overview.md => framework/althemetemplate.md} (97%) diff --git a/docs/customization_overview.md b/docs/framework/althemetemplate.md similarity index 97% rename from docs/customization_overview.md rename to docs/framework/althemetemplate.md index 30e4431e9..b3bac8dbd 100644 --- a/docs/customization_overview.md +++ b/docs/framework/althemetemplate.md @@ -1,8 +1,9 @@ --- -id: customization -title: Applying a custom theme or brand -sidebar_label: Applying a custom theme or brand -slug: /customization +id: althemetemplate +title: | + ALThemeTemplate: Applying a Custom Theme or Brand +sidebar_label: ALThemeTemplate +slug: /althemetemplate --- ## Sharing a custom look and feel across multiple Assembly Line interviews @@ -130,7 +131,7 @@ to try it out. At the end of the tool, you can view what all of the different bootstrap components will look like with your theme. If you want to change any of the colors, you can go back and edit your "custom.scss" file and regenerate the bootstrap theme. -![A screenshot that says "Your file is compiled! You can view and copy your file, or download it directly by right clicking the link to save it as a CSS file". Below are examples of Bootstrap components like buttons and nav bars.](./assets/dashboard-bootstrap-example.png) +![A screenshot that says "Your file is compiled! You can view and copy your file, or download it directly by right clicking the link to save it as a CSS file". Below are examples of Bootstrap components like buttons and nav bars.](../assets/dashboard-bootstrap-example.png) Once you like the colors you've chosen, download the compiled file, and then add it a docassemble project, in the `static` folder. You can then reference your new file diff --git a/docusaurus.config.js b/docusaurus.config.js index a442d57a6..47e9dc03e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -146,7 +146,7 @@ module.exports = { }, { from: '/docs/get_started/customization', - to: '/docs/customization' + to: '/docs/framework/althemetemplate' }, ] } diff --git a/sidebars.js b/sidebars.js index e8425d386..3335da581 100644 --- a/sidebars.js +++ b/sidebars.js @@ -42,7 +42,6 @@ module.exports = { 'alweaver_overview', 'github', 'customizing_interview', - 'customization', 'writing_review_screen', 'yaml_anatomy', ], @@ -139,6 +138,7 @@ module.exports = { ] }, 'framework/alrecipes', + 'framework/althemetemplate', 'complexity/complexity', 'framework/github_feedback', 'analytics/tracking_usage', From eb4bfa663b62902b4760fa2ccd7d47b9b436199b Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:03:09 -0500 Subject: [PATCH 27/36] Delete advanced interview building page --- docs/get_started/advanced_interview_building.md | 11 ----------- sidebars.js | 1 - 2 files changed, 12 deletions(-) delete mode 100644 docs/get_started/advanced_interview_building.md diff --git a/docs/get_started/advanced_interview_building.md b/docs/get_started/advanced_interview_building.md deleted file mode 100644 index 6a99c8c2b..000000000 --- a/docs/get_started/advanced_interview_building.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: advanced_interview_building -title: Advanced Interview Building -sidebar_label: Advanced Interview Building -slug: /get_started/advanced_interview_building ---- - -This page is a collection of tips for interview builders. - -## Templates: PDF v. DOCX - diff --git a/sidebars.js b/sidebars.js index 3335da581..2794ba743 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,7 +6,6 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', - 'get_started/advanced_interview_building', 'get_started/interview_project_roadmap', 'get_started/plan_interview', 'get_started/working_with_teams', From e5c33971c2ad3c5ce334b06083d6616ee1541142 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:05:13 -0500 Subject: [PATCH 28/36] Fix typo --- docs/archive/bootcamp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/archive/bootcamp.md b/docs/archive/bootcamp.md index 2bca9d8c4..e57c147f1 100644 --- a/docs/archive/bootcamp.md +++ b/docs/archive/bootcamp.md @@ -6,7 +6,7 @@ slug: /archive/bootcamp --- :::info -This pages is about the bootcamp that we ran from February 18th, 2021 to March 11th, 2021. Although the camp is already finished, you can +This page is about the bootcamp that we ran from February 18th, 2021 to March 11th, 2021. Although the camp is already finished, you can follow along yourself using the resources on this page! ::: From 37b3278dad08503b53460b831899285ec67d8a92 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:27:28 -0500 Subject: [PATCH 29/36] Delete and redirect the planning time and AL setup pages --- docs/get_started/assembly_line_setup.md | 90 -------------- .../assembly_line_steps_planning_time.md | 110 ------------------ docs/get_started/interview_project_roadmap.md | 21 +++- docusaurus.config.js | 8 ++ sidebars.js | 8 -- 5 files changed, 24 insertions(+), 213 deletions(-) delete mode 100644 docs/get_started/assembly_line_setup.md delete mode 100644 docs/get_started/assembly_line_steps_planning_time.md diff --git a/docs/get_started/assembly_line_setup.md b/docs/get_started/assembly_line_setup.md deleted file mode 100644 index 0e41863dd..000000000 --- a/docs/get_started/assembly_line_setup.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: assembly_line_setup -title: | - Set up your Document Assembly Line -sidebar_label: | - Set up your Document Assembly Line -slug: /get_started/assembly_line_setup ---- - - - -The guidance below is for organizations that want to set up their **own** copy of the Assembly Line, not for individual automators. - -How do you develop and deploy court forms effectively? This is what has worked -for us. Adjust it when you need to. We'd love to hear about the changes you make -for your organization! - -## Setting up your organization - -This happens once in the lifetime of an organization. These steps will be filled out as we develop this documentation further. Talk to us to learn more. - -1. [Create a docassemble server](https://suffolklitlab.org/legal-tech-class/docs/practical-guide-docassemble/setup-server) -1. [Add the AssemblyLine package to your server](installation.md) -1. [Copy](https://help.trello.com/article/802-copying-cards-lists-or-boards) the Trello [checklist boards](#trello-boards) - -You should also consider: - -1. [enabling GitHub Playground integration](https://docassemble.org/docs/config.html#github) -2. inviting each developer who will use your server to [create their own accounts](https://docassemble.org/docs/users.html#add) - -Below are some general techniques and knowledge we have found useful for starting the development of a form. - -## Developing a form - -The [Trello checklists](#trello-boards) are really the source of truth for developing a form. Much of the documentation on this site is meant mostly as reference material to support a developer as they work through the [step-by-step process](https://trello.com/c/uRD0ZIOc/1-form-name-type-of-law) this project has found useful. - -The broad strokes of the details you can see in the Trello checklists: - -1. Copy the template card in your organization's Trello board -1. [Move the card through the Trello lists/columns](#trello-boards), completing the checklists as you go -1. [Identify your MVP](#stick-to-an-mvp) -1. [Generate the code you will build off of](weaver_overview.md) -1. Edit the code of the interview -1. Get reviews on the interview -1. Submit the interview for approval, provisional on passing tests -1. Write tests for and test the interview -1. Deploy the interview - -## Stick to an MVP -**MVP:** Minimum viable product - first make something that works. - -Henrik Kniberg has [created a useful skateboard analogy for an MVP](https://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp). -![Minimum viable product](../assets/mvp.png) --- Henrik Kniberg - -An MVP will be different for different projects. The [legal form maturity model](https://suffolklitlab.org/legal-tech-class/docs/legal-tech-overview/maturity-model/#quick-summary) can help you identify your MVP. Once you've decided what this form's MVP is, avoid adding anything unless absolutely necessary. - -## Trello boards - -We have created three boards in Trello that help track the status of a form as it is being developed. Each of our forms has one card that is a copy of [the one template card](https://trello.com/c/uRD0ZIOc/1-form-name-type-of-law) and contains all the checklists. Those checklists walk a developer through the process step by step, providing resources along the way. They also keep track of what still needs to be done. - -You can [copy](https://help.trello.com/article/802-copying-cards-lists-or-boards) our Trello boards and adjust them to your needs: - -1. [AssemblyLine - Pre-processing Template Board](https://trello.com/b/Z2Svx3oh/1-assemblyline-pre-processing-template-board#) -1. [AssemblyLine - Development Template Board](https://trello.com/b/ArfGFbz4/2-assemblyline-development-template-board) -1. [AssemblyLine - Testing Template Board](https://trello.com/b/nT7yy2Wl/3-assemblyline-testing-template-board) - -Each column, or list, on a board is either associated with a checklist or is a [buffer list](#buffer-lists). A developer will create a card for their form and move it through the columns, or 'lists', of the trello board. If one developer has to leave the development of the form, another developer can pick up the card wherever it is on the boards. - -We recommend you keep all the checklists on that first card. Having developers add additional lists manually later turned out to be a logistical obstacle. - -Note: Trello is not required to implement this kind of system. It just happens to be the tool we used. - - - -### Buffer lists -You can see that every other column (list) is a 'buffer' list. Without buffer lists, it is hard to see what's going on with a project in the lists. Is the form done with this list and ready for the next one? Did it just arrive in this list? Is it being worked on actively by someone or does it need someone new to take hold of it? - -Buffer lists clarify this, though. If a card is not in a buffer list, the work of that list is not complete. When a card is in a buffer list, the previous list's tasks were finished and the form is waiting for someone to pick up the work. - -As a developer, you would: - -1. Pick a card in a buffer list -1. Move the card out of the buffer list into the list immediately to the right (a ‘work in progress’ list) -1. Add yourself as a member of the card if needed -1. Complete the appropriate checklist -1. If you have to leave the development of that form, remove yourself from the card -1. Move the card into the next buffer list. It will sit there till the next person picks it up. - -If a developer has to leave while in the middle of a task list, they can move the card to the previous buffer list to show that someone new needs to take over the work. diff --git a/docs/get_started/assembly_line_steps_planning_time.md b/docs/get_started/assembly_line_steps_planning_time.md deleted file mode 100644 index fc3902918..000000000 --- a/docs/get_started/assembly_line_steps_planning_time.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: assembly_line_steps_planning_time -title: Planning your time -sidebar_label: Planning your time -slug: /get_started/assembly_line_steps/planning_time ---- - -:::warning -We are actively updating the Document Assembly Line workflow and much of the information in this section is outdated. -::: - -## Planning out your app - -Spend some time **mapping out the process**. Decide where your app will intervene, and -how you will help locate your users in the process. I.e., making sure they -use your app at the right point in their journey and they have clearly communicated -next steps to complete the full journey. Rarely can a legal app complete the full -journey for a user. - -The time required for this phase varies depending on the scope you select for your app. -Plan to spend several hours at a minimum. Depending on how you involve stakeholders, -you may spend several weeks here. - -[Read more about planning](https://suffolklitlab.org/legal-tech-class/docs/interview-structure/building-an-app-outline/#the-planning-phase). - -## Gaining comfort with Docassemble - -If you are a completely new Docassemble developer, we recommend getting familiar in two steps: - -* Get familiar with the Docassemble playground and the structure of a YAML file by completing a [Hello, World](https://suffolklitlab.org/legal-tech-class/docs/classes/docacon-2020/hello-world) exercise. Use the [Docassemble Slack](https://docassemble.org/docs/support.html#tocAnchor-1-1) or our Teams channel when you get stuck. - -Give yourself 2-3 weeks to become familiar with Docassemble basics. - -The Weaver is a guided process, but it may still take a few weeks to familiarize yourself with its options. Start with -a simple, already labeled form for your first experience. - -## Getting your first prototype - -To produce your first prototype, you must: - -1. [label your template](doc_vars_reference.md) and then -1. [automate it in the Weaver](weaver_overview.md). - -This first prototype will be very rough. It will not ask questions in the order that you want. -You may have extra questions or extra fields, or questions may be asked using our default -[question library](question_library/names.md) format and may need customization. - -Plan to spend about an hour in the Assembly Line Weaver. - -## Refining and testing - -Almost all of your time will be in the refining and testing stage. You will take -your draft output from the Weaver and start to [customize the -output](/docs/customizing_interview). You should then share your work in progress regularly -with subject matter experts to check your assumptions and to refine the content. - -You may spend several months here, even for a small project. You should be able to -get to a useful prototype stage within a few weeks, however, focusing on: - -1. asking just the questions you want, and customizing stock questions -1. getting the order of questions right -1. refining the input style choices, such as adding multiple-choice options -1. adding navigational elements - -Expect to have a lot of back and forth with your subject matter expert about -the language of your content. That is where most subject matter experts will -have experience and expertise. Be ready to push back where needed to address -our guidance on [asking good questions](question_style_overview.md). - -## Launching your product - -An app that nobody uses is not a good investment of your time. Plan your launch -strategy early, and budget at least a few weeks here. - -Our work has a built-in landing page: [courtformsonline.org](https://courtformsonline.org). - -Think about your landing page. A Docassemble interview is not indexable by Google, so you -should have a static site, perhaps in Wordpress or another technology you already use, to -highlight and direct someone to your app. - -Excellent examples include: - -* [Illinois Legal Aid Online](https://www.illinoislegalaid.org/), [example landing page](https://www.illinoislegalaid.org/legal-information/divorce) -* [Washington Law Help](https://www.washingtonlawhelp.org/), [example landing page](https://www.washingtonlawhelp.org/resource/parenting-plan-forms-online) - -Also consider building relationships with peers and organizations in control of -content. For an access to justice project (non-commercial) you will want to -build relationships directly with your regional legal help website, courts, -cities, and governmental partners to get direct links to your landing page on -their relevant self-help guides. - -Consider direct outreach to potential repeat users of your app. For a tool focused -on domestic violence, building an ongoing relationship with victims advocates in -the police department, legal aid, and domestic violence shelters, for example, will -lead to many more users of your app than any approach to reaching consumers directly. -Hopefully, most of your consumers will be one-time users. Advocates will use it -again and again. - -This direct outreach should be sustained over time. You can monitor analytics and -referrals to understand where your users are coming from and where to concentrate -your outreach. - -Consider if you have a budget and willingness to experiment with direct -acquisition of consumers via: - -* paid advertising -* creating and sharing a promo, bus ad, or other materials that may be free advertising sources -* posting flyers -* gaining earned media (it helps to have a partner like a city or university here!) - diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/interview_project_roadmap.md index 7b010aafe..db4f019a3 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/interview_project_roadmap.md @@ -9,6 +9,10 @@ Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org This roadmap reflects the procedures, templates, and tools the LIT Lab uses on our own interview-building projects, which you can adapt to your projects. +:::tip +If this is your first interview-building project, it may help to read more about [planning and building your first expert system](https://projects.suffolklitlab.org/legal-tech-class/docs/interview-structure/building-an-app-outline). +::: + ## Identify Key Roles & Responsibilities ![Interview Project Roles & Lines of Communication](../assets/interview-project-roles-communication.png) @@ -56,14 +60,21 @@ Here is a sample kickoff meeting agenda: * Explain the court process leading up to someone using this interview. * Identify the substantive laws or procedural rules the interview builders should be familiar with. * Where and how must the completed documents be filed, served, or delivered? -* Agree on a [minimum viable product (MVP)](assembly_line_setup#stick-to-an-mvp) +* Agree on a [minimum viable product (MVP)](#stick-to-an-mvp) * Define the requirements for this interview * Agree on a process for changing the scope of the project (i.e., adding features) * Discuss what success looks like for this project, and how you will measure it * Consider doing a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why -:::tip -Even if this is a solo project, you should make time for a kickoff "meeting" with yourself. +:::info +### Stick to an MVP +A minimum viable product (MVP) is the essence of of iterative, incremental development—first make something that works, then make it better. + +Consider Henrik Kniberg's skateboard analogy: + +![Minimum viable product](../assets/mvp.png) + +Different projects will have different MVPs/skateboards. The [legal form maturity model](https://suffolklitlab.org/legal-tech-class/docs/legal-tech-overview/maturity-model/#quick-summary) can help you identify the MVP for your project. Once you decide what this project's MVP is, avoid adding anything more to it. ::: ## Complete the Draft Interview @@ -123,7 +134,7 @@ Finally, when showing the relevant part of the interview as part of asking a que ## Get Feedback on the Interview -Once the interview works from start to finish and you have closed all the issues that are in scope for the [MVP](assembly_line_setup#stick-to-an-mvp), it is ready for feedback. Start by getting preliminary feedback from someone with Document Assembly Line experience. After you have made revisions based on the preliminary feedback, give the interview to the decisionmaker and stakeholders for their feedback. +Once the interview works from start to finish and you have closed all the issues that are in scope for the [MVP](#stick-to-an-mvp), it is ready for feedback. Start by getting preliminary feedback from someone with Document Assembly Line experience. After you have made revisions based on the preliminary feedback, give the interview to the decisionmaker and stakeholders for their feedback. ### Preliminary Feedback @@ -145,7 +156,7 @@ During the demonstration or testing: ### Stakeholder Feedback -Once you have closed all the issues that are in scope for the [MVP](assembly_line_setup#stick-to-an-mvp) and tested the interview yourself, it should be ready to hand off to the decisionmaker and stakeholders for their testing and feedback. +Once you have closed all the issues that are in scope for the [MVP](#stick-to-an-mvp) and tested the interview yourself, it should be ready to hand off to the decisionmaker and stakeholders for their testing and feedback. Get the interview ready the same as [above](#preliminary-feedback), then click the **Share** button in the testing project playground to get the link to the interview. diff --git a/docusaurus.config.js b/docusaurus.config.js index 47e9dc03e..a1156398e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -148,6 +148,14 @@ module.exports = { from: '/docs/get_started/customization', to: '/docs/framework/althemetemplate' }, + { + from: '/docs/get_started/assembly_line_steps/planning_time', + to: '/docs/get_started/interview_project_roadmap' + }, + { + from: '/docs/get_started/assembly_line_setup', + to: '/docs/get_started/interview_project_roadmap' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index 2794ba743..34b102c94 100644 --- a/sidebars.js +++ b/sidebars.js @@ -10,14 +10,6 @@ module.exports = { 'get_started/plan_interview', 'get_started/working_with_teams', 'get_started/resources', - { - type: 'category', - label: 'Setting up your team', - items: [ - 'get_started/assembly_line_setup', - 'get_started/assembly_line_steps_planning_time', - ], - }, 'contributors', { type: 'category', From dcafb1913ea533900118cef31d3fa50b0aad518a Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:30:55 -0500 Subject: [PATCH 30/36] Revert "Delete advanced interview building page" This reverts commit eb4bfa663b62902b4760fa2ccd7d47b9b436199b. --- docs/get_started/advanced_interview_building.md | 11 +++++++++++ sidebars.js | 1 + 2 files changed, 12 insertions(+) create mode 100644 docs/get_started/advanced_interview_building.md diff --git a/docs/get_started/advanced_interview_building.md b/docs/get_started/advanced_interview_building.md new file mode 100644 index 000000000..6a99c8c2b --- /dev/null +++ b/docs/get_started/advanced_interview_building.md @@ -0,0 +1,11 @@ +--- +id: advanced_interview_building +title: Advanced Interview Building +sidebar_label: Advanced Interview Building +slug: /get_started/advanced_interview_building +--- + +This page is a collection of tips for interview builders. + +## Templates: PDF v. DOCX + diff --git a/sidebars.js b/sidebars.js index 34b102c94..f5cad030a 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,6 +6,7 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', + 'get_started/advanced_interview_building', 'get_started/interview_project_roadmap', 'get_started/plan_interview', 'get_started/working_with_teams', From a21eb0af48dcc5d13a09d4c3710fc6b72b805502 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:42:40 -0500 Subject: [PATCH 31/36] Delete and redirect planning your interview page --- .../advanced_interview_building.md | 11 --- docs/get_started/interview_building_tips.md | 37 ++++++++++ docs/get_started/plan_interview.md | 73 ------------------- docusaurus.config.js | 4 + sidebars.js | 2 - 5 files changed, 41 insertions(+), 86 deletions(-) delete mode 100644 docs/get_started/advanced_interview_building.md create mode 100644 docs/get_started/interview_building_tips.md delete mode 100644 docs/get_started/plan_interview.md diff --git a/docs/get_started/advanced_interview_building.md b/docs/get_started/advanced_interview_building.md deleted file mode 100644 index 6a99c8c2b..000000000 --- a/docs/get_started/advanced_interview_building.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: advanced_interview_building -title: Advanced Interview Building -sidebar_label: Advanced Interview Building -slug: /get_started/advanced_interview_building ---- - -This page is a collection of tips for interview builders. - -## Templates: PDF v. DOCX - diff --git a/docs/get_started/interview_building_tips.md b/docs/get_started/interview_building_tips.md new file mode 100644 index 000000000..9b073861f --- /dev/null +++ b/docs/get_started/interview_building_tips.md @@ -0,0 +1,37 @@ +--- +id: interview_building +title: Interview Building Tips +sidebar_label: Interview Building Tips +slug: /get_started/interview_building_tips +--- + +This page is a collection of tips for interview builders. + +## Templates: PDF v. DOCX + +In many cases, you will start with a court form or other document template that is a PDF (Adobe Acrobat) or DOCX (Microsoft Word) file. In other cases, you will be creating the template from scratch. + +If your template is a PDF to begin with, consider whether to switch to DOCX. + +Reasons to use PDF files: + +* PDF files may be the best choice if you are automating an approved court form that already exists as a PDF +* PDF files are good for heavily formatted content that includes columns and multiple fields on a single line + +Reasons to avoid PDF files: + +* PDF documents are rigid, and may not contain enough room for real-world information +* Conditional logic must be applied field-by-field +* Lists and repeated data must be labeled one field at a time + +Reasons to use DOCX files: + +* DOCX documents will grow or shrink to accomodate as much or as little information as the user provides +* DOCX documents allow you to use lists and repeated groups naturally and with little extra effort after labeling the first item +* DOCX documents allow you to easily make whole sections of a document contingent +* DOCX documents work well with linear content that is read by scanning down the page, not across + +Reasons to avoid DOCX files: + +* DOCX documents do not work as well for content formatted in columns or that require precise layout +* DOCX document content may flow unexpectedly if it is longer than expected diff --git a/docs/get_started/plan_interview.md b/docs/get_started/plan_interview.md deleted file mode 100644 index 0b9d14706..000000000 --- a/docs/get_started/plan_interview.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: plan_interview -title: Planning your interview -sidebar_label: Planning your interview -slug: /get_started/planning ---- - -## Planning and automating your first interview with the Assembly Line Framework - -To automate a form using the Assembly Line framework, you must: - -1. research and understand the context of your form -1. identify the template that you will use: either a PDF or DOCX template -1. add digital **field labels** where the information the user provides will go -1. run the labeled template through the Assembly Line Weaver -1. download the "weaved" form and refine in your Docassemble playground -1. test, respond to feedback, and iterate -1. deploy to a production server and add links on your public website - -For more information about the process of researching and planning your completed -interview, refer to [Planning and building your first expert system](https://suffolklitlab.org/legal-tech-class/docs/interview-structure/building-an-app-outline). - -## Selecting your template file - -In many cases, you will be provided a template that you need to automate. -Ultimately, your form should be either a PDF document or a Word DOCX file. - -If your document is a PDF already, consider whether to switch to a DOCX template -file. - -Reasons to use PDF files: - -* PDF files may be the best choice if you are automating an approved court form - that already exists as a PDF -* PDF files are good for heavily formatted content that includes columns and multiple - fields on a single line - -Reasons to avoid PDF files: - -* PDF files are rigid, and may not contain enough room for real-world - information -* conditional logic must be appplied field by field -* lists and repeated data must be labeled one at a time for each field - -Reasons to use DOCX files: - -* DOCX files will grow or shrink to accomodate as much or as little information - as the user has to provide -* DOCX files allow you to use lists and repeated groups naturally and with - little extra effort after labeling the first item -* DOCX files allow you to easily make whole sections of a document contingent -* DOCX files work well with linear content that is read by scanning down the - page, not across. - -Reasons to avoid DOCX files: - -* DOCX files work less well for content formatted into columns or that require - precise layout -* DOCX files can be formatted, but content may flow unexpectedly if it is longer - than expected - -## Do some advance work to draft questions and a question order - -The automation process will go better if you have planned out a basic -structure for your interview, as well as thought through the information -that you need to gather. Focus on a rough sketch of the process that your -form enables as well as the questions that you will ask to fill it in. - -## Preparing your template for automation - -Once you have decided on the template file that you will use, you need to add -labels to each empty space on the form that will be filled in to match the -user's specific situation. \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index a1156398e..5dbca7a51 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -156,6 +156,10 @@ module.exports = { from: '/docs/get_started/assembly_line_setup', to: '/docs/get_started/interview_project_roadmap' }, + { + from: '/docs/get_started/planning', + to: '/docs/get_started/interview_project_roadmap' + }, ] } ] diff --git a/sidebars.js b/sidebars.js index f5cad030a..ce65a8108 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,9 +6,7 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', - 'get_started/advanced_interview_building', 'get_started/interview_project_roadmap', - 'get_started/plan_interview', 'get_started/working_with_teams', 'get_started/resources', 'contributors', From 3ac356d24e5f0f9d6aa532538210cc23e365d3a2 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:47:56 -0500 Subject: [PATCH 32/36] Add PDF v. DOCX considerations to the PDF and DOCX pages --- docs/docx_templates.md | 16 ++++++++++++++++ docs/pdf_templates.md | 23 +++++++++++++++++------ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/docs/docx_templates.md b/docs/docx_templates.md index 75d0faf73..8298ba240 100644 --- a/docs/docx_templates.md +++ b/docs/docx_templates.md @@ -5,6 +5,22 @@ sidebar_label: Working with DOCX files slug: /docx --- +:::tip +Consider whether to use a PDF template instead. + +**Reasons to use DOCX:** + +* DOCX documents will grow or shrink to accomodate as much or as little information as the user provides +* DOCX documents allow you to use lists and repeated groups naturally and with little extra effort after labeling the first item +* DOCX documents allow you to easily make whole sections of a document contingent +* DOCX documents work well with linear content that is read by scanning down the page, not across + +**Reasons to avoid DOCX:** + +* DOCX documents do not work as well for content formatted in columns or that require precise layout +* DOCX document content may flow unexpectedly if it is longer than expected +::: + DOCX templates can be edited in any editor that is able to edit DOCX files, including: * Microsoft Word, or Microsoft Word Online diff --git a/docs/pdf_templates.md b/docs/pdf_templates.md index dd0f97563..d74d426b2 100644 --- a/docs/pdf_templates.md +++ b/docs/pdf_templates.md @@ -5,6 +5,21 @@ sidebar_label: Working with PDF files slug: /pdfs --- +:::tip +Consider whether to use a DOCX template instead. + +**Reasons to use PDF:** + +* PDF files may be the best choice if you are automating an approved court form that already exists as a PDF +* PDF files are good for heavily formatted content that includes columns and multiple fields on a single line + +**Reasons to avoid PDF:** + +* PDF documents are rigid, and may not contain enough room for real-world information +* Conditional logic must be applied field-by-field +* Lists and repeated data must be labeled one field at a time +::: + ## Edit your PDF PDF templates can be edited in: @@ -13,9 +28,7 @@ PDF templates can be edited in: * [the Documate online free PDF editor](https://www.documate.org/pdf) * many other PDF editors that support Acrobat Forms (mostly paid) -The free [Documate PDF -editor](https://www.documate.org/pdf) will meet most people's needs. It will allow -you to: +The free [Documate PDF editor](https://www.documate.org/pdf) will meet most people's needs. It will allow you to: 1. add text, checkbox, and digital signature fields 1. easily rename fields @@ -25,9 +38,7 @@ Documate has [a page that talks about its PDF editor](https://help.documate.org/articles/unlocking-pdf-documents). Adobe Acrobat can still be helpful. The most important feature it has that -Documate lacks is the ability to automatically recognize blank spaces and turn -them into fields. You may decide to use a trial version of Adobe Acrobat for -this feature, which is only needed at the beginning of your project. +Documate lacks is the ability to automatically recognize blank spaces and turn them into fields. You may decide to use a trial version of Adobe Acrobat for this feature, which is only needed at the beginning of your project. Watch a 2 minute video segment on [how to edit a PDF](https://help.documate.org/articles/unlocking-pdf-documents) with Documate's editor. From c7a01850bca2d08c3f609873f3d20088f42ff3a8 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 10:50:30 -0500 Subject: [PATCH 33/36] Delete interview_building_tips.md --- docs/get_started/interview_building_tips.md | 37 --------------------- 1 file changed, 37 deletions(-) delete mode 100644 docs/get_started/interview_building_tips.md diff --git a/docs/get_started/interview_building_tips.md b/docs/get_started/interview_building_tips.md deleted file mode 100644 index 9b073861f..000000000 --- a/docs/get_started/interview_building_tips.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: interview_building -title: Interview Building Tips -sidebar_label: Interview Building Tips -slug: /get_started/interview_building_tips ---- - -This page is a collection of tips for interview builders. - -## Templates: PDF v. DOCX - -In many cases, you will start with a court form or other document template that is a PDF (Adobe Acrobat) or DOCX (Microsoft Word) file. In other cases, you will be creating the template from scratch. - -If your template is a PDF to begin with, consider whether to switch to DOCX. - -Reasons to use PDF files: - -* PDF files may be the best choice if you are automating an approved court form that already exists as a PDF -* PDF files are good for heavily formatted content that includes columns and multiple fields on a single line - -Reasons to avoid PDF files: - -* PDF documents are rigid, and may not contain enough room for real-world information -* Conditional logic must be applied field-by-field -* Lists and repeated data must be labeled one field at a time - -Reasons to use DOCX files: - -* DOCX documents will grow or shrink to accomodate as much or as little information as the user provides -* DOCX documents allow you to use lists and repeated groups naturally and with little extra effort after labeling the first item -* DOCX documents allow you to easily make whole sections of a document contingent -* DOCX documents work well with linear content that is read by scanning down the page, not across - -Reasons to avoid DOCX files: - -* DOCX documents do not work as well for content formatted in columns or that require precise layout -* DOCX document content may flow unexpectedly if it is longer than expected From 8424d19418a9b43deee9d778b03294f7f231dcb3 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 11:43:41 -0500 Subject: [PATCH 34/36] Rename roadmap file and rearrange sidebar --- docs/get_started/beginners_guide.md | 4 +-- ...nterview_project_roadmap.md => roadmap.md} | 25 +++++++++++++------ docs/get_started/working_with_teams.md | 8 ++++-- docusaurus.config.js | 18 ++++++------- sidebars.js | 11 ++++++-- 5 files changed, 44 insertions(+), 22 deletions(-) rename docs/get_started/{interview_project_roadmap.md => roadmap.md} (91%) diff --git a/docs/get_started/beginners_guide.md b/docs/get_started/beginners_guide.md index 29a9255aa..7733e5014 100644 --- a/docs/get_started/beginners_guide.md +++ b/docs/get_started/beginners_guide.md @@ -47,7 +47,7 @@ Now you are probably itching to start building your first interview! But before Building a successful interview involves more than just coding in the Docassemble playground. You'll also need to consider things like project management, [working with a team](working_with_teams.md), [requirements](working_with_teams.md#understanding-the-projects-users-and-intended-purpose), [usability](../question_style_overview.md), [testing](/alkiln/intro.mdx), etc. -**➡️ [Review the interview-building workflow.](interview_project_roadmap.md)** +**➡️ [Review the interview-building workflow.](roadmap.md)** ## Join the Document Assembly Line Community @@ -59,7 +59,7 @@ You can also take advantage of other [interview building resources and documenta ## Start Building Your First Interview! -You probably already have an idea of the first form you want to work on, so pull up the [workflow](interview_project_roadmap.md) and get started! +You probably already have an idea of the first form you want to work on, so pull up the [workflow](roadmap.md) and get started! ## Learn More diff --git a/docs/get_started/interview_project_roadmap.md b/docs/get_started/roadmap.md similarity index 91% rename from docs/get_started/interview_project_roadmap.md rename to docs/get_started/roadmap.md index db4f019a3..f6e4714b9 100644 --- a/docs/get_started/interview_project_roadmap.md +++ b/docs/get_started/roadmap.md @@ -1,8 +1,8 @@ --- -id: interview_project_roadmap +id: roadmap title: Roadmap of a Successful Interview Project -sidebar_label: Interview Project Roadmap -slug: /get_started/interview_project_roadmap +sidebar_label: Roadmap +slug: /get_started/roadmap --- Whether you are a LIT Clinic student, a recent [Forms Camp](https://www.ncsc.org/consulting-and-research/areas-of-expertise/access-to-justice/forms-camp) graduate, or anyone else getting started on an interview-building project—whether it is your first or fiftieth—this page will guide you through the stages of a successful project, from concept to launch. @@ -53,8 +53,8 @@ Here is a sample kickoff meeting agenda: * Identify the decisionmaker * Development process overview (use this page) * Schedule regular check-ins with the decisionmaker and one or two key stakeholders -* Introduce the source form/document and its context. In other words: - * Who can use this interview? +* Introduce the source form/document, its context, and its users. In other words: + * Who can use this interview? In which language(s) will they be able to read and write? (Consider creating a couple of [user personas](https://en.wikipedia.org/wiki/Persona_(user_experience)) together.) * What are they called (i.e., plaintiff, respondent, or appellee)? * What can/can't this interview be used to do? * Explain the court process leading up to someone using this interview. @@ -63,10 +63,17 @@ Here is a sample kickoff meeting agenda: * Agree on a [minimum viable product (MVP)](#stick-to-an-mvp) * Define the requirements for this interview * Agree on a process for changing the scope of the project (i.e., adding features) +* Discuss the timeline. Key dates: + * Start date + * Draft interview completed + * Preliminary feedback + * Decisionmaker/stakeholder feedback + * Interview finalized and ready for go/no-go decision + * Launch * Discuss what success looks like for this project, and how you will measure it * Consider doing a [pre-mortem](https://en.wikipedia.org/wiki/Pre-mortem)—imagine this project has failed and discuss why -:::info +:::tip ### Stick to an MVP A minimum viable product (MVP) is the essence of of iterative, incremental development—first make something that works, then make it better. @@ -74,7 +81,7 @@ Consider Henrik Kniberg's skateboard analogy: ![Minimum viable product](../assets/mvp.png) -Different projects will have different MVPs/skateboards. The [legal form maturity model](https://suffolklitlab.org/legal-tech-class/docs/legal-tech-overview/maturity-model/#quick-summary) can help you identify the MVP for your project. Once you decide what this project's MVP is, avoid adding anything more to it. +Different projects will have different MVPs/"skateboards". The [legal form maturity model](https://suffolklitlab.org/legal-tech-class/docs/legal-tech-overview/maturity-model/#quick-summary) can help you identify the MVP for your project (interviews built for the general public should usually target level 2+). Once you decide what this project's MVP is, avoid adding anything more to it. ::: ## Complete the Draft Interview @@ -136,6 +143,10 @@ Finally, when showing the relevant part of the interview as part of asking a que Once the interview works from start to finish and you have closed all the issues that are in scope for the [MVP](#stick-to-an-mvp), it is ready for feedback. Start by getting preliminary feedback from someone with Document Assembly Line experience. After you have made revisions based on the preliminary feedback, give the interview to the decisionmaker and stakeholders for their feedback. +:::tip +For complex interviews that involve multiple forms/templates, consider doing this in stages. Start with the simplest form and get preliminary and stakeholder feedback early. Then move on to the most complex form to confirm the shape and logic of the overall interview. Then continue with the remaining forms. +::: + ### Preliminary Feedback Before you show the interview to the decisionmaker and stakeholders, get someone with Document Assembly Line experience to test it with you. This will help you identify issues you may have missed and questions you still need to ask the decisionmaker. diff --git a/docs/get_started/working_with_teams.md b/docs/get_started/working_with_teams.md index 29e075eea..3de4daa3a 100644 --- a/docs/get_started/working_with_teams.md +++ b/docs/get_started/working_with_teams.md @@ -1,10 +1,14 @@ --- id: working_with_teams -title: Working with teams -sidebar_label: Working with teams +title: Working with Teams +sidebar_label: Working with Teams slug: /get_started/working_with_teams --- +:::warning +We are actively updating the Document Assembly Line documentation and much of the information on this page is outdated. +::: + ## Getting the project started ### Identify decision makers, team members, and sources of information diff --git a/docusaurus.config.js b/docusaurus.config.js index 5dbca7a51..46ab7d72d 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -106,11 +106,11 @@ module.exports = { }, { from: '/docs/assembly_line_steps', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, { from: '/docs/assembly_line_steps/roles', - to: '/docs/get_started/interview_project_roadmap#identify-key-roles--responsibilities' + to: '/docs/get_started/roadmap#identify-key-roles--responsibilities' }, { from: '/docs/assembly_line_steps/planning_time', @@ -118,7 +118,7 @@ module.exports = { }, { from: '/docs/assembly_line_steps/steps', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, { from: '/docs/bootcamp', @@ -134,15 +134,15 @@ module.exports = { }, { from: '/docs/get_started/assembly_line_steps/roles', - to: '/docs/get_started/interview_project_roadmap#identify-key-roles--responsibilities' + to: '/docs/get_started/roadmap#identify-key-roles--responsibilities' }, { from: '/docs/get_started/assembly_line_steps', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, { from: '/docs/get_started/assembly_line_steps/steps', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, { from: '/docs/get_started/customization', @@ -150,15 +150,15 @@ module.exports = { }, { from: '/docs/get_started/assembly_line_steps/planning_time', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, { from: '/docs/get_started/assembly_line_setup', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, { from: '/docs/get_started/planning', - to: '/docs/get_started/interview_project_roadmap' + to: '/docs/get_started/roadmap' }, ] } diff --git a/sidebars.js b/sidebars.js index ce65a8108..400fd9d5b 100644 --- a/sidebars.js +++ b/sidebars.js @@ -6,8 +6,15 @@ module.exports = { 'get_started/al_project_architecture', 'get_started/installation', 'get_started/beginners_guide', - 'get_started/interview_project_roadmap', - 'get_started/working_with_teams', + { + type: 'category', + label: 'Interview Projects', + items: [ + 'get_started/roadmap', + 'get_started/working_with_teams', + ], + collapsed: false, + }, 'get_started/resources', 'contributors', { From 5e3c40cb878659a878bdea6b28e22d98dc2e4250 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 11:51:40 -0500 Subject: [PATCH 35/36] Fix broken links --- docs/get_started/installation.md | 2 +- docs/get_started/intro.md | 2 +- docs/weaver_overview.md | 2 +- docusaurus.config.js | 28 ---------------------------- 4 files changed, 3 insertions(+), 31 deletions(-) diff --git a/docs/get_started/installation.md b/docs/get_started/installation.md index 882616502..799f2659a 100644 --- a/docs/get_started/installation.md +++ b/docs/get_started/installation.md @@ -80,7 +80,7 @@ them for your own jurisdiction or organization. To use this package, [pull it into your own Docassemble playground](https://docassemble.org/docs/playground.html#packages). -Next, [follow our guide](customization_overview.md) to edit the YAML files and add a custom CSS theme to fit your own organization's needs. +Next, [follow our guide](/framework/althemetemplate.md) to edit the YAML files and add a custom CSS theme to fit your own organization's needs. Now, create a new package from the [Playground packages menu](https://docassemble.org/docs/playground.html#packages). Give the package a meaningful name, like LouisianaSharedBranding. diff --git a/docs/get_started/intro.md b/docs/get_started/intro.md index 765040a89..6e39b5618 100644 --- a/docs/get_started/intro.md +++ b/docs/get_started/intro.md @@ -17,7 +17,7 @@ This short, 3-minute video by David Colarusso and Quinten Steenhuis explains how The LIT Lab gathered more than 200 volunteers from around the world and built tools such as: -* An [workflow](get_started/assembly_line_steps) for building [Docassemble](https://docassemble.org) interviews to assemble court forms for filing. +* An [workflow](/get_started/roadmap.md) for building [Docassemble](https://docassemble.org) interviews to assemble court forms for filing. * The core [Document Assembly Line Tools](https://github.com/SuffolkLITLab/docassemble-AssemblyLine), to make it easier to use key Docassemble features. * The [the Weaver](generating_code), a tool for converting existing PDF and DOCX court forms into draft Docassemble interviews in as little as one hour. * A [library](question_library/names) of pre-built, commonly used, accessible questions, vetted by experts and translated into at least 5 languages. diff --git a/docs/weaver_overview.md b/docs/weaver_overview.md index 54e738dbe..fcd8642f8 100644 --- a/docs/weaver_overview.md +++ b/docs/weaver_overview.md @@ -53,7 +53,7 @@ to continue editing your code. The steps that the Weaver will walk you through are as follows: 1. validate the labels and your template file -1. add some basic information about your form (follow the [planning your interview](/get_started/plan_interview.md) to get this ready) +1. add some basic information about your form (follow the [planning your interview](/get_started/roadmap.md) to get this ready) 1. add on-screen prompts for each labeled field 1. choose a datatype for each labeled field (for example: text, number, date) 1. organize the fields onto individual screens with headings and optional additional text diff --git a/docusaurus.config.js b/docusaurus.config.js index 46ab7d72d..7237b3f8a 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -100,10 +100,6 @@ module.exports = { from: '/docs/installation', to: '/docs/get_started/installation' }, - { - from: '/docs/getting_started', - to: '/docs/get_started/assembly_line_setup' - }, { from: '/docs/assembly_line_steps', to: '/docs/get_started/roadmap' @@ -112,10 +108,6 @@ module.exports = { from: '/docs/assembly_line_steps/roles', to: '/docs/get_started/roadmap#identify-key-roles--responsibilities' }, - { - from: '/docs/assembly_line_steps/planning_time', - to: '/docs/get_started/assembly_line_steps/planning_time' - }, { from: '/docs/assembly_line_steps/steps', to: '/docs/get_started/roadmap' @@ -124,10 +116,6 @@ module.exports = { from: '/docs/bootcamp', to: '/docs/archive/bootcamp' }, - { - from: '/docs/planning', - to: '/docs/get_started/planning' - }, { from: '/docs/authoring/working_with_teams', to: '/docs/get_started/working_with_teams' @@ -144,22 +132,6 @@ module.exports = { from: '/docs/get_started/assembly_line_steps/steps', to: '/docs/get_started/roadmap' }, - { - from: '/docs/get_started/customization', - to: '/docs/framework/althemetemplate' - }, - { - from: '/docs/get_started/assembly_line_steps/planning_time', - to: '/docs/get_started/roadmap' - }, - { - from: '/docs/get_started/assembly_line_setup', - to: '/docs/get_started/roadmap' - }, - { - from: '/docs/get_started/planning', - to: '/docs/get_started/roadmap' - }, ] } ] From 5d44d14c6bb393e5a705debeb383dd16574ef759 Mon Sep 17 00:00:00 2001 From: samglover Date: Fri, 30 Aug 2024 12:06:07 -0500 Subject: [PATCH 36/36] Fix broken links --- docusaurus.config.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 400474add..ad38ff5f2 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -116,10 +116,6 @@ module.exports = { from: '/docs/bootcamp', to: '/docs/archive/bootcamp' }, - { - from: '/docs/authoring/working_with_teams', - to: '/docs/get_started/working_with_teams' - }, { from: '/docs/get_started/assembly_line_steps/roles', to: '/docs/get_started/roadmap#identify-key-roles--responsibilities'