From 9bc79d3627c23bfba86489d10989974634023fd4 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 4 Feb 2022 09:50:49 +0800 Subject: [PATCH 001/159] contents: add resume steps to intro page --- contents/coding-interview.md | 5 +++-- contents/resume/guide.md | 13 +++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/contents/coding-interview.md b/contents/coding-interview.md index 96c692f453..7a09a428cc 100644 --- a/contents/coding-interview.md +++ b/contents/coding-interview.md @@ -1,7 +1,8 @@ --- id: coding-interview -title: Coding interviews -sidebar_label: Overview +title: Step-by-step coding interview guide +description: Coding interviews are tough. But fortunately, there's a tried and proven method to get better at them. With a combination of studying, practicing questions and doing mock interviews, getting that dream job can become a reality. +sidebar_label: Step-by-step guide keywords: [ algorithm, diff --git a/contents/resume/guide.md b/contents/resume/guide.md index 7bb13a061e..e54510acab 100644 --- a/contents/resume/guide.md +++ b/contents/resume/guide.md @@ -18,12 +18,17 @@ This guide helps you prevent that and improve your chances of getting shortliste From my experience as a FAANG interviewer as well as my discussions with countless recruiters, I have collated a very concise, no-bullshit summary of the exact steps you need to prepare your resume for a FAANG software engineering job application. - +## Four steps to create your resume -:::tip Expert tip +1. Set up your [ATS-proof resume template](./ats-proof-template.md) +1. Fill up your template with effective [resume content](./write-effective-content.md) following a recommended format +1. [Optimize your resume](./optimize-resume.md) with keywords +1. [Review your resume](./free-tools-to-review-resume.md) using free tools + +
-If you are running low on time, I recommend [TopResume's Resume Writing Service](https://tidd.ly/3oezgOo), which has helped countless software engineers I know get interviews at FAANG. +:::tip Expert tip -TopResume's also offers a [free resume screening](https://tidd.ly/3GxVIs9) service that you can use to quickly get tips on improving your resume from professional resume writers. +If you are running low on time, I recommend [TopResume's Resume Writing Service](https://tidd.ly/3oezgOo), which has helped countless software engineers I know get interviews at FAANG. TopResume's also offers a [free resume screening](https://tidd.ly/3GxVIs9) service that you can use to quickly get tips on improving your resume from professional resume writers. ::: From 7ab3ab3a065a21c6e266992384a76c80e715c134 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 4 Feb 2022 15:54:06 +0800 Subject: [PATCH 002/159] website: add sponsorship page --- website/docusaurus.config.js | 1 + website/src/pages/advertise.md | 43 +++++++++++++++++++++ website/src/pages/index.js | 70 ++++++++++++++++++++-------------- 3 files changed, 86 insertions(+), 28 deletions(-) create mode 100644 website/src/pages/advertise.md diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 7c45ce63a6..0577167beb 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -37,6 +37,7 @@ module.exports = { href: '/algorithms/introduction', }, {label: 'Blog', to: 'blog', position: 'left'}, + {label: 'Advertise with us', to: '/advertise', position: 'left'}, { href: 'https://github.com/yangshun/tech-interview-handbook', position: 'right', diff --git a/website/src/pages/advertise.md b/website/src/pages/advertise.md new file mode 100644 index 0000000000..4d72eb153c --- /dev/null +++ b/website/src/pages/advertise.md @@ -0,0 +1,43 @@ +--- +title: Become an advertiser +description: Advertise with us and leverage on our audience of 40,000 to 50,000 software engineers monthly +keywords: + [ + advertisement, + sponsorship, + sponsor, + advertise, + software engineer website advertisement, + software engineering interview website advertisement, + software engineering interview website sponsorship, + ] +hide_table_of_contents: true +--- + +
+ +# Become an advertiser! + +Tech Interview Handbook has and always will be free for our readers. As such, sponsors and advertisers go a long way in keeping the website up and running. + +Our handbook has become one of the best resources for software engineering interview preparation, amassing over 10,000 monthly organic referrals from other software engineers on forums, Twitter, coding interview preparation sites, and even by [Ivy League universities such as Yale University](https://ocs.yale.edu/channels/the-technical-interview/). + +We boast over 200,000 monthly pageviews from 40,000 to 50,000 unique software engineers who are looking for a job and preparing for interviews. + +## Sponsorship and advertisement terms + +We run week-long exclusive sponsorships and advertisements on a fixed price schedule. + +Sponsors can choose any or all of the following positions to advertise with us: + +- Top of every page +- Homepage +- Sidebar and menu of every page +- Navigation menu +- Bottom of every page + +If you are keen to become our sponsor and advertise with us, please email us at [contact{at}techinterviewhandbook.org](mailto:contact@techinterviewhandbook.org). + +
+
+
diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 80ac83fd33..57e7ffad55 100755 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -179,7 +179,7 @@ function WhatIsThisSection() { styles.sectionTitle, )}> The fastest way to prepare effectively for your software - engineering interviews, used by >500,000 engineers + engineering interviews, used by over 500,000 engineers

+

-

- Enjoying Tech Interview Handbook so far? +

+ Advertise with us

-

- Support this project by becoming a sponsor! Your logo/profile - picture will show up here with a link to your website. +

+ Interested in advertising on Tech Interview Handbook? +

+

+ Leverage on more than 200,000 monthly page views from 40,000 to + 50,000 unique software engineers.

-
- - Sponsor - +

+ Sponsors can choose any or all of the following positions to + advertise with us: +

+
+
+
+
    +
  • Top banner of every page
  • +
  • Homepage
  • +
  • Sidebar of every page
  • +
+
+
+
    +
  • Navigation menu
  • +
  • Bottom of every page
  • +
+
+
+
+ -
From e23c75a7e6726325bb95f4ad2e842cc2171b8c3f Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 4 Feb 2022 18:07:54 +0800 Subject: [PATCH 003/159] website: fix navbar items overflowing --- website/src/pages/index.js | 18 +++++++++--------- website/src/pages/styles.module.css | 6 ++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 57e7ffad55..6f17ae3a91 100755 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -724,17 +724,17 @@ function SponsorshipSection() {

-
-
    -
  • Top banner of every page
  • -
  • Homepage
  • -
  • Sidebar of every page
  • +
    +
      +
    • ✅ Top banner of every page
    • +
    • ✅ Homepage
    • +
    • ✅ Sidebar of every page
    -
    -
      -
    • Navigation menu
    • -
    • Bottom of every page
    • +
      +
        +
      • ✅ Navigation menu
      • +
      • ✅ Bottom of every page
    diff --git a/website/src/pages/styles.module.css b/website/src/pages/styles.module.css index 6d290b5115..c263a5f4e2 100755 --- a/website/src/pages/styles.module.css +++ b/website/src/pages/styles.module.css @@ -116,3 +116,9 @@ html[data-theme='light'] .sectionAlt2 { .tweetMeta:hover { color: var(--ifm-color-emphasis-700); } + +.sponsorshipList { + list-style-type: none; + margin-bottom: 0; + padding-left: 0; +} From 96ed24637bd8d132488f87a2ce8256ceb53f7db7 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 4 Feb 2022 18:08:09 +0800 Subject: [PATCH 004/159] website: change list bullets to checkmark --- website/docusaurus.config.js | 7 ++++--- website/src/css/custom.css | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 0577167beb..40715d724b 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -29,15 +29,15 @@ module.exports = { position: 'left', }, { - label: 'Coding interview guide', + label: 'Coding', href: '/coding-interview', }, { - label: 'Algorithms 101', + label: 'Algorithms', href: '/algorithms/introduction', }, {label: 'Blog', to: 'blog', position: 'left'}, - {label: 'Advertise with us', to: '/advertise', position: 'left'}, + {label: 'Advertise', to: '/advertise', position: 'left'}, { href: 'https://github.com/yangshun/tech-interview-handbook', position: 'right', @@ -133,6 +133,7 @@ module.exports = { { title: 'More', items: [ + {label: 'Advertise', href: '/advertise'}, { label: 'Contact us', href: 'mailto:contact@techinterviewhandbook.org', diff --git a/website/src/css/custom.css b/website/src/css/custom.css index aac2fc2aff..873217276f 100755 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -36,6 +36,10 @@ html[data-theme='dark'] { --ifm-color-primary-lightest: rgb(191, 191, 248); } +.navbar__items { + font-size: 0.9rem; +} + .footer__links { margin-bottom: 3rem; } From 08f97beac36b8d3686020991b24a28d862bb6ae4 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 4 Feb 2022 20:42:13 +0800 Subject: [PATCH 005/159] contents: tweak first 2 steps --- contents/resume/ats-proof-template.md | 23 ++-- contents/resume/write-effective-content.md | 116 ++++++++++----------- 2 files changed, 61 insertions(+), 78 deletions(-) diff --git a/contents/resume/ats-proof-template.md b/contents/resume/ats-proof-template.md index 12bf5c9e33..b4d9b41afd 100644 --- a/contents/resume/ats-proof-template.md +++ b/contents/resume/ats-proof-template.md @@ -23,27 +23,20 @@ Most companies these days automate their resume screening process through Applic - Submit your resume as a PDF file to preserve formatting, but always create it from Microsoft Word or Google Docs. It is important to ensure that the text in your resume is easily highlightable, which is a precondition for easy parsing. - ATS tools are always trying to improve their readability of standard resume formats - hence the more commonplace your resume format is, the better. -- To maximize space on your resume, rather than using header or footers, reduce the margins of the page. +- To maximize space on your resume, rather than using header or footers, reduce the margins of the page - narrow margins are 0.5 on each side. **Don'ts** - Do not use Photoshop, other graphic design tools or online resume builders to build your resume -- Try not to use multi-column formats -- Do not use the header or footer sections in a Word/Google Docs file - -:::tip Expert tip - -Use the standard resume template provided by Microsoft Word or Google Docs. I personally use Google Docs to create my resume as I can easily share it with peers for getting feedback and it has the convenience of being stored in the cloud. - -::: +- Do not use the header or footer sections in a Word/Google Docs file - reduce margins instead and just write the information in the body. ## Use a standard font of readable size -New fonts may convert letters into special characters which are not readable by the ATS. Fonts you should use - Arial, Calibri, Garamond, Helvetica, Roboto. +New fonts may convert letters into special characters which are not readable by the ATS. Fonts you should use - **Arial, Calibri, Garamond**. -Ensure your font size remains readable for humans later on in the hiring process - nothing less than the minimum size of **11px** for readability. +Ensure your font size remains readable for humans later on in the hiring process - nothing less than the minimum size of **10px** for readability. -## Use sections with standard headings and ordering +## Add sections with standard headings and ordering ATS readers need to identify and parse standard types of information from your resume. Using standard header titles and ordering can help them do that better. @@ -51,11 +44,11 @@ This is the order which has worked well for me and recommended by recruiters: | Section | Heading Name | | --- | --- | -| Contact information | (No need for section heading) | -| Professional summary | (Use resume headline as section title, for e.g. "Senior Software Engineer at Google with over 5 years experience leading teams") | +| Professional summary | (Use resume headline as section title, for e.g. "Senior Software Engineer at Google with over 5 years of experience leading teams") | +| Contact information | "Contact Information" | | Skills - programming languages, frameworks, etc. | "Skills" | | Experience | "Work Experience" | -| Education (Note: if you are still in school, put Education first) | "Education" | +| Education (Note: if you are still in school or have less than 3 years of experience, you may put Education first) | "Education" | | Projects | "Projects" | | Other optional sections - e.g. Certifications, Awards, etc | "Awards and Accolades" / "Certifications" / "Awards, Accolades and Certifications" | diff --git a/contents/resume/write-effective-content.md b/contents/resume/write-effective-content.md index d7b7efe668..1f54c48958 100644 --- a/contents/resume/write-effective-content.md +++ b/contents/resume/write-effective-content.md @@ -38,11 +38,34 @@ To maximize efficiency in applying for several job types, create and keep update ::: -## 1. Contact information +## 1. Professional summary + +The professional summary, if written well, will be the most effective and important part of your resume. From my experience as an interviewer, I generally may not have the time to read into the detail of resumes - hence summaries which directly address why a candidate is a good fit for the job greatly improves their chances of capturing my attention. + +**Start with a resume headline** + +Always start with a concise, one line description of yourself + +- Fewer than 10 words +- Summarizes your experience relevant to the job description + +Examples: + +- Software Engineer at Company X with strong fundamentals in front-end technologies + +**Summarize your best selling points** + +Below the resume headline, include a summary of yourself which expands on your resume headline. + +- 4 or fewer points, in bullet or paragraph form +- Include most important skills and experiences relevant to the job applied, quantifying them where possible +- Keep in mind to answer the question of "Why am I a good fit for this job?" - while writing the summary + +## 2. Contact information **Must-haves** -- Name +- Name (Should be included at the very top of the resume) - Personal phone number - Never include your work phone number here - Location - City, State, Zip @@ -62,51 +85,39 @@ To maximize efficiency in applying for several job types, create and keep update - Codechef - Hackerrank -Where relevant, indicate achievements in coding platforms, for example, max ratings, ranking, number of stars, badges. - -## 2. Professional summary - -The professional summary, if written well, will be the most effective and important part of your resume. From my experience as an interviewer, I generally may not have the time to read into the detail of resumes - hence summaries which directly address why a candidate is a good fit for the job greatly improves their chances of capturing my attention. +If a divider is required between information, use "|" or tabs -**Start with a resume headline** +Where relevant, indicate achievements in coding platforms, for example, max ratings, ranking, number of stars, badges. -Always start with a concise, one line description of yourself +## 3. Skills -- Fewer than 10 words -- Summarizes your experience relevant to the job description +Include programming languages and tech stacks: -Examples: +Structure in the following manner: -- Staff Software Engineer at Facebook with over 5 years experience leading teams +> [Skill summary] : [List skills separated by "|"] -**Summarize your best selling points** +- Programming languages - If impressive, include your familiarity by the number of lines you have written, for example "Over 10,000 lines" +- Frameworks +- Databases -Below the resume headline, include a summary of yourself which expands on your resume headline. +## 4. Work experience -- 4 or less points, in bullet or paragraph form -- Include most important skills and experiences relevant to the job applied, quantifying them where possible -- Keep in mind to answer the question of "Why am I a good fit for this job?" - while writing the summary +List your work experience in a familiar format and reverse chronological order. Every job listed should have: -## 3. Skills +The company, location, title, duration worked following this structure -Include programming languages and tech stacks: +> [Company or Organization], [Location] | [Job Title] | [Start and end dates formatted as MM/YYYY] -- Structure in the following manner: `[Skill summary] : [List skills separated by "|"]` - - Programming languages - If impressive, include your familiarity by the number of lines you have written, for example "Over 10,000 lines" - - Frameworks - - Databases +Example -## 4. Work experience +> Facebook, Singapore | Front End Engineering Lead | 08/2018 - Present -List your work experience in a familiar format and reverse chronological order. Every job listed should have: +List of top accomplishments, including: -- The company, location, title, duration worked following this structure - - `[Company or Organization], [Location] | [Job Title] | [Start and end dates formatted as MM/YYYY]` - - e.g. `Facebook, Singapore | Front End Engineering Lead | 08/2018 - Present` -- List of top accomplishments, including - - Scope of job and skills required - - Accomplishments listed following this structure - - `[Accomplishment summary] : [Action] that resulted in [quantifiable outcome]` +- Scope of job and skills required +- Accomplishments listed following this structure + - > [Accomplishment summary] : [Action] that resulted in [quantifiable outcome] ## 5. Education @@ -114,45 +125,24 @@ Most software engineering jobs will require at least an undergraduate degree. Ho Use the following format, eliminating information where it is not relevant: -``` -[Degree Name], [Year of Graduation - write expected graduation date if not graduated] - -[University Name], [Location] - -- GPA: X.XX / 4.0 (List GPA if more than 3.50/4.00, or more than 4.3 under a 5-point system) -- List key achievements, including leadership positions, skills, societies, projects, awards, etc. -``` +> [Degree Name], [Year of Graduation - write expected graduation date if not graduated]
    [University Name], [Location]
    GPA: X.XX / 4.0 (List GPA if more than 3.50/4.00, or more than 4.3 under a 5-point system)
    List key achievements, including leadership positions, skills, societies, projects, awards, etc. Example: -``` -BSc in Computing, Computer Science, Graduation Year 2015 -National University of Singapore, Singapore - -- GPA: 3.82 / 4.00 (Magna cum laude) -- Dean's List, Valedictorian -- President of hacker society -``` +> BSc in Computing, Computer Science, Graduation Year 2015
    National University of Singapore, Singapore
    GPA: 3.82 / 4.00 (Magna cum laude)
    Dean's List, Valedictorian
    President of hacker society ## 6. Projects -Include at least 2 projects you have contributed to, outlining your key contributions. +Include at least 2 projects you have contributed to, outlining your key contributions. Always try to link your project name to GitHub or somewhere the hiring manager can view your project. -``` -Docusaurus, Menlo Park, CA -Lead maintainer 01/2018 - 04/2020 - -- Maintainer and lead engineer for Docusaurus v2, a static site generator which powers the documentation of many of Meta's Open Source Projects - React Native, Jest, Relay, Reason, etc -- Used by 7.6k projects on GitHub -``` +> [facebook/docusaurus](https://github.com/facebook/docusaurus)
    Maintainer and lead engineer for Docusaurus v2, a static site generator which powers the documentation of many of Meta’s Open Source Projects - React Native, Jest, Relay, Reason, etc. Used by 7.6k > projects on GitHub. ## 7. Awards, accolades and certifications -Only include achievements related to the job application: +Only include achievements related to the job application and try to quantify your achievements. A good format to use would be + +> [Year] [Quantification] [Competition] -- Always quantify your achievements -- A good format to use would be: `[Year] [Quantification] [Competition]` +Example -``` -2016 | Best All-Round Product out of 50 teams | Facebook Hackathon -``` +> 2016 | Best All-Round Product out of 50 teams | Facebook Hackathon From 11892f8864ddf96b4079b42f66dda56c83e45b5e Mon Sep 17 00:00:00 2001 From: Yangshun Date: Sat, 5 Feb 2022 09:01:38 +0800 Subject: [PATCH 006/159] blog: change canonical URL --- .../2019-11-03-are-front-end-development-enough-for-a-career.md | 2 +- ...12-importance-of-communicating-effectively-as-an-engineer.md | 2 +- .../blog/2021-08-19-facebook-career-questions-and-answers.md | 2 +- website/blog/2021-08-28-front-end-career-questions.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md b/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md index c717f6ca35..4fffd4879f 100644 --- a/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md +++ b/website/blog/2019-11-03-are-front-end-development-enough-for-a-career.md @@ -11,7 +11,7 @@ hide_table_of_contents: true --- - + Recently, an undergrad freshmen I met at an event asked me a question regarding Front End development as a career. diff --git a/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md b/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md index 2ebba1c693..f75265e978 100644 --- a/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md +++ b/website/blog/2021-04-12-importance-of-communicating-effectively-as-an-engineer.md @@ -10,7 +10,7 @@ hide_table_of_contents: true --- - + import BadCommunicationURL from '@site/static/img/bad-communication.jpg'; diff --git a/website/blog/2021-08-19-facebook-career-questions-and-answers.md b/website/blog/2021-08-19-facebook-career-questions-and-answers.md index c0b4c69564..ff9dd23e05 100644 --- a/website/blog/2021-08-19-facebook-career-questions-and-answers.md +++ b/website/blog/2021-08-19-facebook-career-questions-and-answers.md @@ -10,7 +10,7 @@ hide_table_of_contents: true --- - + A number of students from the Project Intern group have been asking me questions related to Facebook internships, working at Facebook, and my personal journey. I decided to write down my answers in the form of a blog post so they can be shared more broadly and I can point people to this blog post in future whenever I get asked similar questions. diff --git a/website/blog/2021-08-28-front-end-career-questions.md b/website/blog/2021-08-28-front-end-career-questions.md index 66e4edb5cf..8a691aeaa7 100644 --- a/website/blog/2021-08-28-front-end-career-questions.md +++ b/website/blog/2021-08-28-front-end-career-questions.md @@ -10,7 +10,7 @@ hide_table_of_contents: true --- - + Recently a junior front end engineer at a startup in Singapore reached out to me to ask me how front end development as a career. From 38d0038fd8780dbeeb115cce7afe012c939296fc Mon Sep 17 00:00:00 2001 From: Yangshun Date: Sat, 5 Feb 2022 09:45:31 +0800 Subject: [PATCH 007/159] blog: add post on front end vs. back end system design --- ...nd-vs-back-end-system-design-interviews.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md diff --git a/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md b/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md new file mode 100644 index 0000000000..7d9fc7649e --- /dev/null +++ b/website/blog/2021-12-23-front-end-vs-back-end-system-design-interviews.md @@ -0,0 +1,107 @@ +--- +title: Front End vs. Back End System Design Interviews +slug: front-end-vs-back-end-system-design-interviews +author: Zhenghao He +author_title: Senior Software Engineer at Instacart +author_url: https://twitter.com/he_zhenghao +author_image_url: https://pbs.twimg.com/profile_images/1489749168767660032/M_us3Mu2_400x400.jpg +tags: [front end, back end, system design, interview] +hide_table_of_contents: true +--- + + + + + +Walkthrough of similarities and differences between front end vs. back end system design interviews and my thoughts on a front end career ceiling. + + + +## Context + +As I mentioned in my post on [coding interviews frameworks](https://www.zhenghao.io/posts/framework-for-coding-interview), I have been interviewing a lot for the past year - not conducting interviews, I was the candidate being interviewed. Most of the interview processes I had with big tech companies consisted of 1-2 system design rounds depending on the level of the role. Unlike traditional back end-focused system design questions, for which you can find lots of prep resources online such as the famous Grokking System Design Interview or System Design Primer, I didn't know what to expect for a front end-focused system design interview as there are very few resources out there talking about this type of interviews. + +Now that I have done a fair amount of system design interviews of both types, I want to give you a summary of what to expect, especially for the front end ones since I have been mostly working on the front end side. + +## Similarities + +Both front end-focused and back end-focused system design interviews share a lot of similarities in terms of the methodology you can adopt to solve the design questions: + +- Starting with gathering system requirements +- Laying out a clear plan and identifying major distinguishable components of the system +- Proceeding to end to end api design +- Talking about optimization + +Other kinds of similarities include: + +- The interviewer is relying on you to drive the presentation. You can't rely on the interviewer to have your back. +- While the topics can be either micro or macro, you probably won't need to actually write code - it is rare to jam some portion of coding in the middle of a system design interview +- Unlike scantron school exams, both types will consist of mainly open ended questions. There probably isn't a checklist of things for you to cover one by one. Nor are you expected to drill deep into all of those. When you realize your interviewer is biased toward a particular part of the system, which they usually do, pivot your focus to that area. Other times you focus on your strengths and lead the conversation. + +## Differences + +During the back end-focused system design interviews, you would spend most of the time talking about things like: + +- Back end/server side architecture, hand waving various back end services/components +- Discussing which type of database to use and how to aggregate data across different shards +- Designing SQL table schema +- Choosing the right the cross-region strategy if your service has a global user base +- Any other kinds of system characteristics like latency, availability, fault tolerance, etc + +For front end-focused system design interviews, you would spend most of the time talking about stuff like: + +- Front end/client side architecture, such as the appropriate rendering pattern to choose - client side rendering, or server side rendering or static generation or something in between? +- What kind of data fetching mechanism to use - REST vs. GRAPHQL vs. gRPC and what should the APIs look like? +- Specifics about UI components + - A news feed which has an infinite scroll behavior with all the images lazily loaded while ensuring the client side has the aspect ratio of the images upfront to prevent layout shift. + - An autocomplete UI component which fetches search result data incrementally in batches while receiving images from server pushes in parallel. + - a gallery page which pulls images and displays them in the correct order despite the asynchrony that comes with the network requests that might cause them to arrive out of order. +- How do you leverage different layers of cache to decrease latency or support offline mode. +- If they want to get framework-specific, which is totally possible, they might even ask you to define a particular React components's props or manage complex state in a React app. + +A lot times having one type of system design interviews means you can over simplify the opposite side: + +- In a back end system design interview, the client-side/front end is reduced to an API layer - you don't need to consider all the intricacies of the browser or the pesky rerenders your real-time updates would cause. +- In a front end system design interview, you can treat the back end as a black box and you don't need to worry about how things like how to scale a database, or how your choice of using web sockets might affect the load balancers because of the need for sticky sessions support. + +But again, this is a summary of my experience and depending on who your interviewers are (are they front end, back end and/or fullstack developers), the scope of the role and which team it is (are you going to be on a front end team or are you expected to work across the stack and stretch into the back end?) your front end system design interview might be a bit of a hybrid where some aspects of back end system design interviews might come up. + +Outside of the differences with the technical topics I needed to dig deep into during the interviews, I found there are two other interesting differences that stand out between the two types: + +- For front end system design interviews I was often encouraged to treat the interviewer as the **product manager** and we spent some time just fleshing out the brief solution for each user story. For the back end system design interviews, we didn't really get to talk about any user interaction (I am aware that the definition of users of your system might vary, depending on whether it is customer-facing vs. developer-facing) +- These two types of system design interviews also differ a lot in terms of estimating certain system's needs based on the potential scale of the system. The system needs can be storage needs or throughput needs or any other types of requirements. + - It is common and expected to do these estimation during back end system design interviews since your design decision is only feasible when all of the system needs can realistically be met. + - But for the front end system design interview, I rarely needed to do any **quantitative estimation** - for example, when I was designing some live feed during a front end system design interview, I didn't need to do estimations like "So let's say each message was roughly 140 characters long and it is utf8 so that's 140 bytes and an average user gets 10000 messages over a certain period of time so we ended up allocating 1.4mb memory on user devices". Again, I am not saying that this would never come up during a front end system design interview. in my experience It is just much, much more rare compared to back end ones. + +## Career ceiling + +I am going to talk about something that is a little tangential. I don't think this is going to be a hot take but if you just want to pass the upcoming interviews, then you are welcome to skip this part. + +I have done interviews for both front end focused roles and general software engineer roles. As I went through the preparation process for the system designs interviews, it just occurred to me that there is indeed a career ceiling for a pure front end focused software engineer role. + +Ok so let's first get this out of the way - you can be extremely successful as either a front end developer or a back end developer. + +Also it is hard to discuss any topic intelligently when we cannot agree on definitions. By saying front end developers I meant developers/engineers who solely work on the UI of a software system. And by saying career ceiling I meant the potential terminal title and the highest level such a developer/engineer can achieve in the technical individual contributor track. + +This is an unspoken thing and a very impolite conversation. And [there are exceptions](https://twitter.com/swyx/status/1236023548227072000) to this but just statistically speaking there seems to be a career ceiling for front end-only developers. + +## Fighting the inertia + +Part of the ceiling comes from some traditional baggage: + +- modern front end development is fairly new compared to the back end counterpart. I have seen some bias in the industry that front end is not real engineering compared to the back end and that needs absolutely to be combated. +- power structure persists for a very long time and that's partially why most of VP Eng and CTOs out there are back end/infra developers. + +## Economic reasoning + +I had this realization that when I was going through the back end system design interviews vs. the front end system design interviews - the technical topics those interviews tend to cover let me think about some economic reasoning leading to the perception of a "Front end ceiling" as well. Your value to the company really depends on how many machines/compute/storage run through you. As a developer/engineer, that means much money you control and front end-only developers just don't take as much. Of course front end is just as hard and as important especially for consumer facing products but at the end of the day your compute is being run on someone else's machine or device and the company just don't value that as much as the compute that they themselves need to pay for and to scale. + +## Short-lived vs. long-running + +On top of that, normally the front end/web apps are short-lived on the client side - the user opens the browser tab that loads your app and after 20 minutes they might just close the tab, and all the memory allocated by your app is on their devices from that point onward. On the other hand, the back end servers/services behind probably keep running for months or even years. One implication resulting from this difference is that you can generally get away with bad code that leads to performance problems down the road in front end apps because they are short-lived and the scale of the data they are dealing with is probably small, but you cannot ignore that in a long-running back end service. + +Good luck with your interviews. + +--- + +_Follow me on [Twitter](https://twitter.com/he_zhenghao)_ From 42c21f9819ae6f1bb2da1c900503ba8caa0817ff Mon Sep 17 00:00:00 2001 From: Yangshun Date: Sun, 6 Feb 2022 15:37:53 +0800 Subject: [PATCH 008/159] contents: reorganize algorithms section --- contents/_courses/AlgorithmCourses.md | 2 + contents/algorithms/array.md | 6 +++ contents/algorithms/binary.md | 8 ++- contents/algorithms/dynamic-programming.md | 6 ++- contents/algorithms/geometry.md | 6 +++ contents/algorithms/graph.md | 6 +++ contents/algorithms/hash-table.md | 6 +++ contents/algorithms/heap.md | 6 +++ contents/algorithms/interval.md | 6 +++ contents/algorithms/introduction.md | 13 +++-- contents/algorithms/linked-list.md | 8 ++- contents/algorithms/math.md | 6 +++ contents/algorithms/matrix.md | 6 +++ contents/algorithms/oop.md | 2 +- contents/algorithms/permutation.md | 6 +++ contents/algorithms/queue.md | 6 +++ contents/algorithms/recursion.md | 6 +++ contents/algorithms/sorting-searching.md | 6 +++ contents/algorithms/stack.md | 6 +++ contents/algorithms/string.md | 6 +++ contents/algorithms/tree.md | 6 +++ contents/algorithms/trie.md | 6 +++ contents/best-practice-questions.md | 10 +++- contents/coding-interview.md | 2 + contents/study-and-practice.md | 34 +++++++----- website/sidebars.js | 62 ++++++++++++---------- 26 files changed, 191 insertions(+), 52 deletions(-) create mode 100644 contents/_courses/AlgorithmCourses.md diff --git a/contents/_courses/AlgorithmCourses.md b/contents/_courses/AlgorithmCourses.md new file mode 100644 index 0000000000..049a50053d --- /dev/null +++ b/contents/_courses/AlgorithmCourses.md @@ -0,0 +1,2 @@ +- [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) - This course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I also agree with for learning and have personally used to get better at algorithmic problems. **Learn and understand patterns, not memorize answers!** +- [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQoD) - This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! diff --git a/contents/algorithms/array.md b/contents/algorithms/array.md index b7186c9b6a..3f4dc90265 100644 --- a/contents/algorithms/array.md +++ b/contents/algorithms/array.md @@ -48,3 +48,9 @@ When you are given two arrays to process, it is common to have one index per arr - [3Sum](https://leetcode.com/problems/3sum/) - [Container With Most Water](https://leetcode.com/problems/container-with-most-water/) - [Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/binary.md b/contents/algorithms/binary.md index fa4ee73aea..6fbd371581 100644 --- a/contents/algorithms/binary.md +++ b/contents/algorithms/binary.md @@ -18,7 +18,7 @@ Some helpful utility snippets: - Turn off kth bit: `num &= ~(1 << k)`. - Toggle the kth bit: `num ^= (1 << k)`. - To check if a number is a power of 2, `(num & num - 1) == 0` or `(num & (-num)) == num`. -- Swapping two variables: `num1 ^= num2; num2 ^= num1; num1 ^= num2` +- Swapping two variables: `num1 ^= num2; num2 ^= num1; num1 ^= num2` ## Corner cases @@ -32,3 +32,9 @@ Some helpful utility snippets: - [Counting Bits](https://leetcode.com/problems/counting-bits/) - [Missing Number](https://leetcode.com/problems/missing-number/) - [Reverse Bits](https://leetcode.com/problems/reverse-bits/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/dynamic-programming.md b/contents/algorithms/dynamic-programming.md index 355d06add5..4e81b6b664 100644 --- a/contents/algorithms/dynamic-programming.md +++ b/contents/algorithms/dynamic-programming.md @@ -29,6 +29,8 @@ Sometimes you do not need to store the whole DP table in memory, the last two va - [Unique Paths](https://leetcode.com/problems/unique-paths/) - [Jump Game](https://leetcode.com/problems/jump-game/) -## Courses +## Recommended courses -- [Grokking the Dynamic Programming Patterns for Coding Interviews](https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews?aff=x23W) +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/geometry.md b/contents/algorithms/geometry.md index 29da24f477..7b4ac04b1e 100644 --- a/contents/algorithms/geometry.md +++ b/contents/algorithms/geometry.md @@ -15,3 +15,9 @@ To find out if two circles overlap, check that the distance between the two cent - Which data structure would you use to query the k-nearest points of a set on a 2D plane? - Given many points, find k points that are closest to the origin. - How would you triangulate a polygon? + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/graph.md b/contents/algorithms/graph.md index 7215f1e576..22142091b5 100644 --- a/contents/algorithms/graph.md +++ b/contents/algorithms/graph.md @@ -115,3 +115,9 @@ For additional tips on BFS and DFS, you can refer to this [LeetCode post](https: - [Alien Dictionary (LeetCode Premium)](https://leetcode.com/problems/alien-dictionary/) - [Graph Valid Tree (LeetCode Premium)](https://leetcode.com/problems/graph-valid-tree/) - [Number of Connected Components in an Undirected Graph (LeetCode Premium)](https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/hash-table.md b/contents/algorithms/hash-table.md index c5905c637b..41fef1e87c 100644 --- a/contents/algorithms/hash-table.md +++ b/contents/algorithms/hash-table.md @@ -8,3 +8,9 @@ title: Hash Table - Describe an implementation of a least-used cache, and big-O notation of it. - A question involving an API's integration with hash map where the buckets of hash map are made up of linked lists. - Implement data structure `Map` storing pairs of integers (key, value) and define following member functions in O(1) runtime: `void insert(key, value)`, `void delete(key)`, `int get(key)`, `int getRandomKey()`. [(Solution)](http://blog.gainlo.co/index.php/2016/08/14/uber-interview-question-map-implementation/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/heap.md b/contents/algorithms/heap.md index 5e6ed3da56..8a9b251ae8 100644 --- a/contents/algorithms/heap.md +++ b/contents/algorithms/heap.md @@ -18,3 +18,9 @@ If you require the top _k_ elements use a Min Heap of size _k_. Iterate through - [Merge K Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) - [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) - [Find Median from Data Stream](https://leetcode.com/problems/find-median-from-data-stream/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/interval.md b/contents/algorithms/interval.md index c4c80dd3c8..152def63e1 100644 --- a/contents/algorithms/interval.md +++ b/contents/algorithms/interval.md @@ -38,3 +38,9 @@ def merge_overlapping_intervals(a, b): - [Merge Intervals](https://leetcode.com/problems/merge-intervals/) - [Non-overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/) - [Meeting Rooms (LeetCode Premium)](https://leetcode.com/problems/meeting-rooms/) and [Meeting Rooms II (LeetCode Premium)](https://leetcode.com/problems/meeting-rooms-ii/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/introduction.md b/contents/algorithms/introduction.md index 90454adc0c..b76a69573f 100644 --- a/contents/algorithms/introduction.md +++ b/contents/algorithms/introduction.md @@ -1,6 +1,7 @@ --- id: algorithms-introduction -title: Introduction to algorithms +title: Algorithms tips +description: Here are practical tips for each algorithm topic and data structure which appear frequently in coding interviews sidebar_label: Introduction slug: introduction --- @@ -46,13 +47,15 @@ Hashmaps are probably the most commonly used data structure for algorithm questi If you are cutting corners in your code, state that out loud to your interviewer and say what you would do in a non-interview setting (no time constraints). E.g., I would write a regex to parse this string rather than using `split()` which may not cover all cases. -## Algorithm courses +## Recommended courses -If you want more structured algorithms practice, I recommend [Educative's Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) course. This course essentially expands upon the questions here but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I agree with for learning and getting better at algorithmic problems. +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' -## References + + + diff --git a/contents/algorithms/linked-list.md b/contents/algorithms/linked-list.md index 9fe156d03f..f6eabd6fb1 100644 --- a/contents/algorithms/linked-list.md +++ b/contents/algorithms/linked-list.md @@ -23,7 +23,7 @@ Two pointer approaches are also common for linked lists. For example: - Detecting cycles - Have two pointers, where one pointer increments twice as much as the other, if the two pointers meet, means that there is a cycle - Getting the middle node - Have two pointers, where one pointer increments twice as much as the other. When the faster node reaches the end of the list, the slower node will be at the middle -## Common Routines +## Common routines Be familiar with the following routines because many linked list questions make use of one or more of these routines in the solution: @@ -46,3 +46,9 @@ Be familiar with the following routines because many linked list questions make - [Merge K Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) - [Remove Nth Node From End Of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) - [Reorder List](https://leetcode.com/problems/reorder-list/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/math.md b/contents/algorithms/math.md index bb9749b0af..2cf30b5d0b 100644 --- a/contents/algorithms/math.md +++ b/contents/algorithms/math.md @@ -29,3 +29,9 @@ If the question asks to implement an operator such as power, squareroot or divis - [Pow(x, n)](https://leetcode.com/problems/powx-n/) - [Sqrt(x)](https://leetcode.com/problems/sqrtx/) - [Integer to English Words](https://leetcode.com/problems/integer-to-english-words/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/matrix.md b/contents/algorithms/matrix.md index a3b743ede7..4c2feb1326 100644 --- a/contents/algorithms/matrix.md +++ b/contents/algorithms/matrix.md @@ -35,3 +35,9 @@ transposed_matrix = zip(*matrix) - [Rotate Image](https://leetcode.com/problems/rotate-image/) - [Word Search](https://leetcode.com/problems/word-search/) - [Valid Sudoku](https://leetcode.com/problems/valid-sudoku/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/oop.md b/contents/algorithms/oop.md index 96c7ee2b4a..2bb5ce0017 100644 --- a/contents/algorithms/oop.md +++ b/contents/algorithms/oop.md @@ -13,6 +13,6 @@ title: Object-oriented programming - How would you implement an Elevator system? - How would you implement a Parking Lot system? -## Courses +## Recommended courses - [Grokking the Object Oriented Design Interview](https://www.educative.io/courses/grokking-the-object-oriented-design-interview?aff=x23W) diff --git a/contents/algorithms/permutation.md b/contents/algorithms/permutation.md index 9e6051e782..1746076bc2 100644 --- a/contents/algorithms/permutation.md +++ b/contents/algorithms/permutation.md @@ -14,3 +14,9 @@ title: Permutation - [Source](http://blog.gainlo.co/index.php/2016/12/23/uber-interview-questions-permutations-parentheses/) - Given a list of arrays, return a list of arrays, where each array is a combination of one element in each given array. - E.g. If the input is `[[1, 2, 3], [4], [5, 6]]`, the output should be `[[1, 4, 5], [1, 4, 6], [2, 4, 5], [2, 4, 6], [3, 4, 5], [3, 4, 6]]`. + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/queue.md b/contents/algorithms/queue.md index 0f412848be..2cfc0e3237 100644 --- a/contents/algorithms/queue.md +++ b/contents/algorithms/queue.md @@ -7,3 +7,9 @@ title: Queue - Implement a Queue class from scratch with an existing bug, the bug is that it cannot take more than 5 elements. - Implement a Queue using two stacks. You may only use the standard `push()`, `pop()`, and `peek()` operations traditionally available to stacks. You do not need to implement the stack yourself (i.e. an array can be used to simulate a stack). + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/recursion.md b/contents/algorithms/recursion.md index 378da71d16..c797d750c5 100644 --- a/contents/algorithms/recursion.md +++ b/contents/algorithms/recursion.md @@ -15,3 +15,9 @@ Recursion implicitly uses a stack. Hence all recursive approaches can be rewritt - [Subsets](https://leetcode.com/problems/subsets/) and [Subsets II](https://leetcode.com/problems/subsets-ii/) - [Strobogrammatic Number II (LeetCode Premium)](https://leetcode.com/problems/strobogrammatic-number-ii/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/sorting-searching.md b/contents/algorithms/sorting-searching.md index 383650e8f6..a0a4afdf99 100644 --- a/contents/algorithms/sorting-searching.md +++ b/contents/algorithms/sorting-searching.md @@ -20,3 +20,9 @@ When a given sequence is in a sorted order (be it ascending or descending), usin - Find the minimum element in a sorted rotated array in faster than O(n) time. - Write a function that takes a number as input and outputs the biggest number with the same set of digits. - [Source](http://blog.gainlo.co/index.php/2017/01/20/arrange-given-numbers-to-form-the-biggest-number-possible/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/stack.md b/contents/algorithms/stack.md index 8262a74c96..7eaf69b9da 100644 --- a/contents/algorithms/stack.md +++ b/contents/algorithms/stack.md @@ -11,3 +11,9 @@ title: Stack - E.g. `{ac[bb]}`, `[dklf(df(kl))d]{}` and `{[[[]]]}` are matched. But `{3234[fd` and `{df][d}` are not. - [Source](http://blog.gainlo.co/index.php/2016/09/30/uber-interview-question-delimiter-matching/) - Sort a stack in ascending order using an additional stack. + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/string.md b/contents/algorithms/string.md index b0986a5dd1..24ed6863f8 100644 --- a/contents/algorithms/string.md +++ b/contents/algorithms/string.md @@ -98,3 +98,9 @@ When a question is about counting the number of palindromes, a common trick is t - [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/) - [Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/) - [Encode and Decode Strings (LeetCode Premium)](https://leetcode.com/problems/encode-and-decode-strings/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/tree.md b/contents/algorithms/tree.md index e79493cc65..f24f9e5fa9 100644 --- a/contents/algorithms/tree.md +++ b/contents/algorithms/tree.md @@ -59,3 +59,9 @@ When a question involves a BST, the interviewer is usually looking for a solutio - [Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/) - [Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) - [Lowest Common Ancestor of BST](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/algorithms/trie.md b/contents/algorithms/trie.md index 01fbf6529b..7cae12cf22 100644 --- a/contents/algorithms/trie.md +++ b/contents/algorithms/trie.md @@ -21,3 +21,9 @@ Be familiar with implementing, from scratch, a `Trie` class and its `add`, `remo - [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree) - [Add and Search Word](https://leetcode.com/problems/add-and-search-word-data-structure-design) - [Word Search II](https://leetcode.com/problems/word-search-ii/) + +## Recommended courses + +import AlgorithmCourses from '../\_courses/AlgorithmCourses.md' + + diff --git a/contents/best-practice-questions.md b/contents/best-practice-questions.md index dd42764253..55c4811611 100644 --- a/contents/best-practice-questions.md +++ b/contents/best-practice-questions.md @@ -6,6 +6,8 @@ description: The best practice questions to prepare for algorithmic coding inter keywords: [algorithm, coding, interview, questions, leetcode, blind 75] --- +import AlgorithmCourses from './\_courses/AlgorithmCourses.md' + Best practice questions by the author of Blind 75 | Tech Interview Handbook @@ -23,6 +25,12 @@ When practicing, you are advised to treat it like a real coding interview and ch I've created a [LeetCode list](https://leetcode.com/list/9h4lgwl2) for the following questions (except the Premium ones). Feel free to use it to track your practice progress. +:::tip + +If you're running low on time, the [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures. **Learn and understand patterns, not memorize answers!** + +::: + ## Week 1 - Sequences In week 1, we will warm up by doing a mix of easy and medium questions on arrays and strings. Arrays and strings are the most common types of questions to be found in interviews; gaining familiarity with them will help in building strong fundamentals to better handle tougher questions. @@ -130,4 +138,4 @@ Practically speaking the return of investment (ROI) on studying and practicing f If you want more structured algorithms practice, I recommend the following courses: -- ["Grokking the Coding Interview: Patterns for Coding Questions" by Educative](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) - This course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I also agree with for learning and have personally used to get better at algorithmic problems. **Learn and understand patterns, not memorize answers!** + diff --git a/contents/coding-interview.md b/contents/coding-interview.md index 7a09a428cc..f28e39cfd2 100644 --- a/contents/coding-interview.md +++ b/contents/coding-interview.md @@ -25,7 +25,9 @@ Coding interviews are tough. But fortunately, there's a tried and proven method 1. Decide on a [programming language](./picking-a-language.md) 1. Study [Computer Science fundamentals](./study-and-practice.md) + 1. Take online courses 1. [Practice](./study-and-practice.md) solving algorithm questions + 1. Do the [best practice questions](./best-practice-questions.md) 1. Internalize the [Do's and Don'ts of interviews](./cheatsheet.md) 1. Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for 1. Practice doing [mock interviews](./mock-interviews.md) diff --git a/contents/study-and-practice.md b/contents/study-and-practice.md index 4e0a1470a3..6beec75bae 100644 --- a/contents/study-and-practice.md +++ b/contents/study-and-practice.md @@ -1,6 +1,6 @@ --- id: study-and-practice -title: Study and practice +title: Practical tips description: Mastery of Computer Science fundamentals, identifying question patterns, practicing good coding style is the key to improving in coding interviews keywords: [ @@ -23,11 +23,7 @@ keywords: If you have been out of college for a while, it is highly advisable to review Computer Science fundamentals — Algorithms and Data Structures. Personally, I prefer to review as I practice, so I scan through my college notes and review the various algorithms as I work on algorithm problems from LeetCode. -This [interviews repository](https://github.com/kdn251/interviews) by Kevin Naughton Jr. served as a quick refresher for me. - -The Medium publication [basecs](https://medium.com/basecs) by [Vaidehi Joshi](https://medium.com/@vaidehijoshi) is also a great and light-hearted resource to recap on the various data structures and algorithms. - -You can also find implementations of common data structures and algorithms using various popular languages at [TheAlgorithms](https://thealgorithms.github.io/). +I collated a list of practical tips for the common algorithm and data structure topics under the [Algorithms tips](./algorithms/introduction) section. ## Mastery through practice @@ -35,15 +31,17 @@ Next, gain familiarity and mastery of the algorithms and data structures in your ### Practice coding questions -Practice coding algorithms using your chosen language. While "Cracking the Coding Interview" is a good resource for practice, I prefer being able to type code, run it and get instant feedback. There are various Online Judges such as [LeetCode](https://leetcode.com/), [HackerRank](https://www.hackerrank.com/) and [CodeForces](http://codeforces.com/) for you to practice questions online and get used to the language. From experience, LeetCode questions are the most similar to the kind of questions being asked in interviews whereas HackerRank and CodeForces questions resemble competitive programming questions. If you practice enough LeetCode questions, there is a good chance that you would have seen/done your actual interview question (or some variant) on LeetCode before. If you are more of a visual person, [Coderust](https://www.educative.io/collection/5642554087309312/5679846214598656?aff=x23W) explains the common algorithm questions through step-by-step visualizations which makes understanding the solutions much easier. +Practice coding algorithms using your chosen language. While "Cracking the Coding Interview" is a good resource for studying, I prefer being able to type code, run it and get instant feedback. There are various Online Judges such as [LeetCode](https://leetcode.com/), [HackerRank](https://www.hackerrank.com/) and [CodeForces](http://codeforces.com/) for you to practice questions online and get used to the language. From experience, LeetCode questions are the most similar to the kind of questions being asked in interviews whereas HackerRank and CodeForces questions resemble competitive programming questions. If you practice enough LeetCode questions, there is a good chance that you would have seen/done your actual interview question (or some variant) on LeetCode before. + +If you are more of a visual person, [Coderust](https://www.educative.io/collection/5642554087309312/5679846214598656?aff=x23W) explains the common algorithm questions through step-by-step visualizations which makes understanding the solutions much easier. ### Broaden exposure -Gain a broad exposure to questions from various topics. In the second half of the article I mention algorithm topics and practice questions for each topic. If you can spare the time, do around 100–200 LeetCode questions of varying topics and you should be good. If you are short on time or not sure where to start, the [Best Practice Questions](./best-practice-questions.md) page tells you the best LeetCode questions to practice. +Gain a broad exposure to questions from various topics. If you can spare the time, do around 100–200 LeetCode questions of varying topics and you should be good. If you are short on time or not sure where to start, the [Best practice questions](./best-practice-questions.md) page recommends you the best 50 LeetCode questions to practice. ### Identify question patterns -As of writing, LeetCode has thousands of questions available. Which should you practice? It is not a good use of time to practice too many questions as after a while, you will realize that some questions are variants of one another and involve using similar techniques you've seen before. The trick here is to identify the question pattern and the technique you can use to solve variants of this question. Once you're familiar with a pattern, you'll be able to solve dozens of problems with a technique. Some techniques include - sliding window, two pointers, matrix traversal. The ["Grokking the coding interview" course by Educative](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) shows you more techniques. +As of writing, LeetCode has thousands of questions available. Which should you practice? It is not a good use of time to practice too many questions as after a while, you will realize that some questions are variants of one another and involve using similar techniques you've seen before. The trick here is to identify the question pattern and techniques you can use to solve variants of this question. Once you're familiar with a pattern, you'll be able to solve dozens of similar problems. Some techniques include - sliding window, two pointers, matrix traversal. The ["Grokking the Coding Interview: Patterns for Coding Questions" course by Educative](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) shows you even more techniques and is highly recommended. :::tip Expert tip @@ -53,14 +51,24 @@ Learn and understand patterns, not memorize answers! ### Space/time complexities -Learn and understand the time and space complexities of the common operations in your chosen language. For Python, this [page](https://wiki.python.org/moin/TimeComplexity) will come in handy. Also find out the underlying sorting algorithm that is being used in the language's `sort()` function and its time and space complexity (in Python its Timsort which is a hybrid sort). After completing a question on LeetCode, I usually add the time and space complexities of the written code as comments above the function body to remind myself to analyze the algorithm after I am done with the implementation. +Learn and understand the time and space complexities of the common operations in your chosen language. For Python, this [page](https://wiki.python.org/moin/TimeComplexity) will come in handy. Also find out the underlying sorting algorithm that is being used in the language's `sort()` function and its time and space complexity (e.g. in Python it's Timsort, which is a hybrid sort). After completing a question on LeetCode, I usually add the time and space complexities of the written code as comments above the function body to remind myself to analyze the algorithm after I am done with the implementation. ### Practice good coding style -Read up on the recommended coding style for your language and stick to it. If you have chosen Python, refer to the PEP 8 Style Guide. If you have chosen Java, refer to Google's Java Style Guide. +Read up on the recommended coding style for your language and stick to it. If you have chosen Python, refer to the [PEP 8 Style Guide](https://www.python.org/dev/peps/pep-0008/). If you have chosen Java, refer to [Google's Java Style Guide](https://google.github.io/styleguide/javaguide.html). -### Internalize the pitfalls +### Internalize language pitfalls Find out and be familiar with the common pitfalls and caveats of the language. If you point them out during the interview and intelligently avoid falling into them, you will usually impress the interviewer and that results in bonus points for your feedback, regardless of whether the interviewer is familiar with the language or not. -**The key to interview success is practice, practice and more practice!** +:::tip + +The key to interview success is practice, practice and more practice! + +::: + +## External resources + +- This [interviews repository](https://github.com/kdn251/interviews) by Kevin Naughton Jr. served as a quick refresher for me. +- The Medium publication [basecs](https://medium.com/basecs) by [Vaidehi Joshi](https://medium.com/@vaidehijoshi) is also a great and light-hearted resource to recap on the various data structures and algorithms. +- You can also find implementations of common data structures and algorithms using various popular languages at [TheAlgorithms](https://thealgorithms.github.io/). diff --git a/website/sidebars.js b/website/sidebars.js index 8977c18dc4..b98f3b0038 100755 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -29,38 +29,16 @@ module.exports = { '🔥 Coding interviews': [ 'coding-interview', 'picking-a-language', - 'study-and-practice', - 'best-practice-questions', + { + 'Study and practice': [ + 'study-and-practice', + 'best-practice-questions', + ], + }, 'during-coding-interview', 'cheatsheet', 'coding-signals', 'mock-interviews', - 'interviewer-cheatsheet', - { - Algorithms: [ - 'algorithms/algorithms-introduction', - 'algorithms/array', - 'algorithms/binary', - 'algorithms/dynamic-programming', - 'algorithms/geometry', - 'algorithms/graph', - 'algorithms/hash-table', - 'algorithms/heap', - 'algorithms/interval', - 'algorithms/linked-list', - 'algorithms/math', - 'algorithms/matrix', - 'algorithms/oop', - 'algorithms/permutation', - 'algorithms/queue', - 'algorithms/recursion', - 'algorithms/sorting-searching', - 'algorithms/stack', - 'algorithms/string', - 'algorithms/tree', - 'algorithms/trie', - ], - }, ], }, 'system-design', @@ -89,5 +67,33 @@ module.exports = { // 'team-selection', ], }, + { + 'Algorithms tips': [ + 'algorithms/algorithms-introduction', + 'algorithms/array', + 'algorithms/binary', + 'algorithms/dynamic-programming', + 'algorithms/geometry', + 'algorithms/graph', + 'algorithms/hash-table', + 'algorithms/heap', + 'algorithms/interval', + 'algorithms/linked-list', + 'algorithms/math', + 'algorithms/matrix', + 'algorithms/oop', + 'algorithms/permutation', + 'algorithms/queue', + 'algorithms/recursion', + 'algorithms/sorting-searching', + 'algorithms/stack', + 'algorithms/string', + 'algorithms/tree', + 'algorithms/trie', + ], + }, + { + Misc: ['interviewer-cheatsheet'], + }, ], }; From 2004a1079cd8d95e7eccbf851bad7d011ee4a864 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Sun, 6 Feb 2022 16:59:59 +0800 Subject: [PATCH 009/159] contents: add best coding interview courses page --- contents/_courses/AlgorithmCourses.md | 4 +-- contents/best-coding-interview-courses.md | 36 +++++++++++++++++++++++ contents/study-and-practice.md | 4 +-- website/sidebars.js | 9 ++---- 4 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 contents/best-coding-interview-courses.md diff --git a/contents/_courses/AlgorithmCourses.md b/contents/_courses/AlgorithmCourses.md index 049a50053d..4b90bca6e1 100644 --- a/contents/_courses/AlgorithmCourses.md +++ b/contents/_courses/AlgorithmCourses.md @@ -1,2 +1,2 @@ -- [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) - This course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I also agree with for learning and have personally used to get better at algorithmic problems. **Learn and understand patterns, not memorize answers!** -- [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQoD) - This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! +- [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) - This course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I also agree with for learning and have personally used to get better at algorithmic problems. The course allows you to practice in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** +- [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) - This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! Note that JavaScript is being used for the coding demos. diff --git a/contents/best-coding-interview-courses.md b/contents/best-coding-interview-courses.md new file mode 100644 index 0000000000..f67eee2cfe --- /dev/null +++ b/contents/best-coding-interview-courses.md @@ -0,0 +1,36 @@ +--- +id: best-coding-interview-courses +title: Best coding interview courses +description: Best courses to take to prepare for your coding interviews +sidebar_label: 🔥 Best interview courses +keywords: [algorithm, coding, interview, questions] +--- + +If you prefer courses where the learning is more structured, here are a few recommendations. + +## General + +import AlgorithmCourses from './\_courses/AlgorithmCourses.md' + + + +## Python + +| Course | Reviews | Duration | Price | Contents | +| :-- | --- | --- | --- | --- | +| [The Complete Data Structures and Algorithms Course in Python](https://fxo.co/DQpc) | 4.5/5 | 41h | $ | Basic data structures and algorithms | +| [Python for Data Structures, Algorithms, and Interviews!](https://fxo.co/DQpb) | 4.5/5 | 16.5h | $$ | Basic data structures and algorithms, job application, behavioral interview, negotiation | + +## Java + +| Course | Reviews | Duration | Price | Contents | +| :-- | --- | --- | --- | --- | +| [Java Data Structures and Algorithms Masterclass](https://fxo.co/DQpa) | 4.5/5 | 45h | $ | Basic and advanced Basic data structures and algorithms | +| [Data Structures and Algorithms: Deep Dive Using Java](https://fxo.co/DQpW) | 4.5/5 | 16h | $$ | Basic data structures and algorithms | + +## JavaScript + +| Course | Reviews | Duration | Price | Contents | +| :-- | --- | --- | --- | --- | +| [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) | 4.6/5 | 19.5h | $$ | Basic data structures and algorithms, job application, behavioral interview, negotiation | +| [JavaScript Data Structures and Algorithms Masterclass](https://fxo.co/DQpZ) | 4.5/5 | 45h | $ | Basic and advanced data structures and algorithms | diff --git a/contents/study-and-practice.md b/contents/study-and-practice.md index 6beec75bae..ed49f2a806 100644 --- a/contents/study-and-practice.md +++ b/contents/study-and-practice.md @@ -1,7 +1,7 @@ --- id: study-and-practice -title: Practical tips -description: Mastery of Computer Science fundamentals, identifying question patterns, practicing good coding style is the key to improving in coding interviews +title: Study and practice +description: Mastery of Computer Science fundamentals, identifying question patterns, practicing good coding style is the key to improving in coding interviews. keywords: [ algorithm, diff --git a/website/sidebars.js b/website/sidebars.js index b98f3b0038..fde8baa2c5 100755 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -29,12 +29,9 @@ module.exports = { '🔥 Coding interviews': [ 'coding-interview', 'picking-a-language', - { - 'Study and practice': [ - 'study-and-practice', - 'best-practice-questions', - ], - }, + 'study-and-practice', + 'best-coding-interview-courses', + 'best-practice-questions', 'during-coding-interview', 'cheatsheet', 'coding-signals', From 3e5cea680168870d1b60b61e04c200319fc98be2 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Sun, 6 Feb 2022 17:26:36 +0800 Subject: [PATCH 010/159] website: change FO verify meta tag --- website/docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 40715d724b..bc53debec1 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -147,7 +147,7 @@ module.exports = { indexName: 'techinterviewhandbook', }, metadata: [ - {name: 'fo-verify', content: '6993fa63-071e-4d11-8b10-a247c54c6061'}, + {name: 'fo-verify', content: '2cc93525-ece8-402e-a4b8-d1d0853175e8'}, ], }, presets: [ From 3b14d552407234f6ac195d52a6c51d983ece19da Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 7 Feb 2022 07:39:21 +0800 Subject: [PATCH 011/159] contents: add customized study paths --- contents/best-coding-interview-courses.md | 4 +- contents/coding-interview.md | 63 ++++++++++++++++++++--- website/docusaurus.config.js | 2 +- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/contents/best-coding-interview-courses.md b/contents/best-coding-interview-courses.md index f67eee2cfe..11cf285632 100644 --- a/contents/best-coding-interview-courses.md +++ b/contents/best-coding-interview-courses.md @@ -6,7 +6,7 @@ sidebar_label: 🔥 Best interview courses keywords: [algorithm, coding, interview, questions] --- -If you prefer courses where the learning is more structured, here are a few recommendations. +If you prefer courses where the learning is more structured, here are a few recommendations. **In no way is taking online courses a must in order to pass interviews.** ## General @@ -32,5 +32,5 @@ import AlgorithmCourses from './\_courses/AlgorithmCourses.md' | Course | Reviews | Duration | Price | Contents | | :-- | --- | --- | --- | --- | -| [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) | 4.6/5 | 19.5h | $$ | Basic data structures and algorithms, job application, behavioral interview, negotiation | | [JavaScript Data Structures and Algorithms Masterclass](https://fxo.co/DQpZ) | 4.5/5 | 45h | $ | Basic and advanced data structures and algorithms | +| [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) | 4.6/5 | 19.5h | $$ | Basic data structures and algorithms, job application, behavioral interview, negotiation | diff --git a/contents/coding-interview.md b/contents/coding-interview.md index f28e39cfd2..8fad6cc5f1 100644 --- a/contents/coding-interview.md +++ b/contents/coding-interview.md @@ -23,12 +23,61 @@ keywords: Coding interviews are tough. But fortunately, there's a tried and proven method to get better at them. With a combination of studying, practicing questions and doing mock interviews, getting that dream job can become a reality. +We recognize that there is no one-size-fits-all path to interviewing success, it is largely dependent on the individual. Here's how I recommend navigating the content of this book depending on your background for the following group of people: + +- [New to coding interviews - typically college freshmen/sophomores/bootcamp grads](#newbie) +- [Passed interviews before - typically college juniors/seniors](#returning) +- [Worked in the industry](#experienced) + +## New to coding interviews {#newbie} + +_Recommended for college freshmen/sophomores/juniors looking for their first internship or bootcamp graduates looking for their first job._ + +If you are new to coding interviews (e.g. first time interviewing for an internship/full-time job), we recommend reading through the entire section from start to finish. + 1. Decide on a [programming language](./picking-a-language.md) -1. Study [Computer Science fundamentals](./study-and-practice.md) - 1. Take online courses -1. [Practice](./study-and-practice.md) solving algorithm questions - 1. Do the [best practice questions](./best-practice-questions.md) -1. Internalize the [Do's and Don'ts of interviews](./cheatsheet.md) -1. Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for -1. Practice doing [mock interviews](./mock-interviews.md) +1. Study and revise + - Revise your [Computer Science fundamentals](./study-and-practice.md) + - Go over the [algorithm tips](./algorithms/introduction.md) + - Take [online courses](./best-coding-interview-courses.md) if you need more materials +1. Practice solving algorithm questions + - Do the [best practice questions](./best-practice-questions.md) +1. Know how coding interviews are like + - Internalize the [Do's and Don'ts of interviews](./cheatsheet.md) + - Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for +1. Do [mock interviews](./mock-interviews.md) +1. Interview successfully to get the job + +## Have passed interviews before {#returning} + +_Recommended for college juniors/seniors looking for their second internship or first full-time job._ + +You have successfully passed coding interviews before and it is not your first time job hunting. You are somewhat familiar with technical interviewing but have not interviewed in a while. It would still be good to go through most of the content in the handbook but use your own discretion and accelerate/skip portions you are familiar with. + +1. Study and revise + - Revise your [Computer Science fundamentals](./study-and-practice.md) + - Go over the [algorithm tips](./algorithms/introduction.md) + - Take [online courses](./best-coding-interview-courses.md) if you need more materials +1. Practice solving algorithm questions + - Do the [best practice questions](./best-practice-questions.md) +1. Know how coding interviews are like + - Internalize the [Do's and Don'ts of interviews](./cheatsheet.md) + - Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for +1. Do [mock interviews](./mock-interviews.md) +1. Interview successfully to get the job +1. [Negotiate](./negotiation.md) the offer! +1. Check out tips on [choosing between different offers from companies](./choosing-between-companies.md) + +## Mid-level/senior candidates {#experienced} + +_Recommended for people who have been working in the industry for at least a few years._ + +You have been working for a few years now and are a little rusty with the less common data structures and algorithms taught back in school because you don't get to use them very often at work. + +1. Revise a bit of [Computer Science fundamentals](./study-and-practice.md) + - Take [online courses](./best-coding-interview-courses.md) if you have lost access to your college materials +1. Practice efficiently via the [best practice questions](./best-practice-questions.md) +1. Do [mock interviews](./mock-interviews.md) 1. Interview successfully to get the job +1. [Negotiate](./negotiation.md) the offer! +1. Check out tips on [choosing between different offers from companies](./choosing-between-companies.md) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index bc53debec1..796c68d1d0 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -1,6 +1,6 @@ module.exports = { title: 'Tech Interview Handbook', - tagline: 'Free curated interview preparation materials for busy engineers', + tagline: 'Free curated interview preparation materials for busy people', url: 'https://www.techinterviewhandbook.org', baseUrl: '/', trailingSlash: true, From 38742a3a3bbf319f17cce88f38ed79d56a25c2af Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 7 Feb 2022 08:57:52 +0800 Subject: [PATCH 012/159] contents: complete company culture section --- contents/choosing-between-companies.md | 43 +++++++++++++++++++++----- contents/coding-interview.md | 2 +- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/contents/choosing-between-companies.md b/contents/choosing-between-companies.md index f19020fadb..27c4121b9e 100644 --- a/contents/choosing-between-companies.md +++ b/contents/choosing-between-companies.md @@ -21,11 +21,11 @@ What does the company work on and is the company working on a domain you are int That said, each tech company is uniquely known for something and it's in their DNA. So if you are interested in specific areas and you are sure you can be able to work on them, the choice should be clearer: -- Meta - Social networks (Facebook, Instagram), Chat (WhatsApp, Messenger), VR stuff (Oculus) -- Google - Search, Browsers, Maps, Cloud infrastructure (Google Cloud Platform), Google Suite +- Meta/Facebook - Social networks (Facebook, Instagram), chat (WhatsApp, Messenger), Metaverse stuff (Oculus) +- Google - Search, browsers (Google Chrome), Google Maps, cloud infrastructure (Google Cloud Platform), enterprise collaboration (Google Suite) - Amazon - Cloud infrastructure (Amazon Web Services), e-commerce -- Microsoft - Operating Systems, Microsoft Office Suite -- Apple - Hardware, Operating Systems, Services (iCloud, Apple Music) +- Microsoft - Operating systems, Microsoft Office Suite +- Apple - Hardware, operating systems, services (iCloud, Apple Music) Personally I feel more motivated and productive if I'm working on products which I use as an external user as well, as I have a better understanding of the product from a user perspective which can potentially lead to better engineering and product decisions. @@ -45,6 +45,37 @@ How fast does the company promote its employees and does the company provide opp Some companies promote their employees faster than the others. There's a saying that go to Google to rest and vest, go to Meta if you want to accelerate your career. I've found this to be quite accurate from what I experienced and from looking at my peers at Google. At Meta, engineers are required to get from E3 to E4 within 2 years and E4 to E5 within 3 years. On the other hand, Google has a slower promotion cycle - the average engineer at Google takes more than 2 years to get from L3 to L4, more than 3 years to get from L4 to L5 and more than 4 years to get from L5 to L6. At Google, the terminal level is L4 so there's no pressure to promote. None of my peers are L6 at Google but a few are already E6 at Meta and it is quite achievable. In my opinion, Google is a great place to learn to be excellent engineers. They require everything to be well-engineered, with design docs and high test coverage. Meta is a great place for career-driven folks who don't mind working harder to accelerate their career path. +## Company culture + +Company culture refers to the beliefs and behaviors of a company's leadership and its employees. The tech giants are famous for their unique cultures: + +- Google - Candidates are evaluated for their "Googleyness" factor during interviews, which is a set of traits Google employees should embody - "Doing the right thing", "Striving for excellence", "Comfort with ambiguity". As mentioned above, Google is known for their high emphasis on engineering quality and data-driven decision making approach. +- Meta/Facebook - In Facebook's early days, their internal motto was "Move fast and break things", indicating their focus on shipping products fast. In 2014, Mark Zuckerberg changed it to "Move fast with stable infrastructure" as the platform has matured and stability should a focus. I wrote more about [Meta/Facebook's culture in a blog post](https://www.techinterviewhandbook.org/blog/my-experience-working-as-a-meta-facebook-engineer/#culture). +- Netflix - Netflix's culture deck is publicly available on [their website](https://jobs.netflix.com/culture) and their core philosophy is **people over process**. They like to think of themselves as professional sports teams - keeping the star players and letting adequate performers go instead of operating like a family - tolerating bad behavior and showing unconditional love + +### Engineering culture + +Since most readers are in tech roles, the tech culture of a company deserves special mention. + +[Gergely Orosz](https://twitter.com/GergelyOrosz) came up with [12 points](https://blog.pragmaticengineer.com/pragmatic-engineer-test/) to evaluate whether a tech company has a healthy software engineering culture + +1. **Equity or profit sharing** - Do employees receive equity? +1. **Roadmap/backlog that engineers contribute to** - Do engineers contribute to the roadmap of their team? +1. **Engineers directly working with other ICs** - Do engineers work directly with other roles (Designers, PMs, Data Scientists, etc)? +1. **Code reviews and testing** - Do engineers peer code reviews and write tests often? +1. **CI and engineers pushing to prod** - Is there continuous integration or a way for engineers to deploy to production? +1. **Internal open source** - Can engineers access and contribute to code bases across the company? +1. **Healthy oncall as a priority** - Is the oncall load manageable? +1. **Technical managers** - Do the engineering managers possess technical background adn skills? +1. **Career ladder (when above 10 engineers)** - Are career ladders and expectations for each level well-defined? +1. **Parallel IC & manager tracks (when above 30 engineers)** - Can one rise up the career ladder as an IC? +1. **Feedback culture** - Is it the practice to give feedback to each other/the company? +1. **Investing in professional growth** - Stipend for professional growth, mentorship program + +It's no surprise that the FAANG companies hit all 12 points. Read more about it on [his blog post](https://blog.pragmaticengineer.com/pragmatic-engineer-test/). + +Which company's culture resonates with you the most? + ## Work-life balance While the common practice is for employees to work 40 hours a week and 8 hours a day, some places are infamous for being more stressful and asks more time from their employees. Some Chinese companies famously [require employees to work 6 days a week](https://www.reuters.com/world/china/chinese-tech-workers-disclose-working-hours-criticism-996-2021-10-14/). Most tech employees do not get paid when they work overtime, so sometimes a more accurate way of calculating your salary is dollars per hour instead of the raw annual total compensations @@ -54,7 +85,3 @@ Google is famous for being a company for moving slower and a place where people ## Transfers and mobility Does the company have offices around the globe where employees can possibly relocate to? This is obviously out of the question for smaller companies where there is only one headquarters, but some companies allow employees to be remote and some are even entirely remote! Meta, Google, Apple, and Stripe are examples of companies which have global presence and regional headquarters. At Meta and Google, mobility is extremely high given there are large engineering offices all across US, in London, Tel Aviv, and more recently, in Singapore. One of my managers at Meta has worked at **four** offices! Personally, I relocated from Meta/Facebook Menlo Park to Meta/Facebook Singapore right before COVID hit and a few of my Meta/Googler friends have done similar moves, some even moving from Singapore to the US. - -## Company culture - -TODO diff --git a/contents/coding-interview.md b/contents/coding-interview.md index 8fad6cc5f1..5c16dbd7d8 100644 --- a/contents/coding-interview.md +++ b/contents/coding-interview.md @@ -48,7 +48,7 @@ If you are new to coding interviews (e.g. first time interviewing for an interns 1. Do [mock interviews](./mock-interviews.md) 1. Interview successfully to get the job -## Have passed interviews before {#returning} +## Passed interviews before {#returning} _Recommended for college juniors/seniors looking for their second internship or first full-time job._ From 1cb25b0292e080d23163622d9e5d9f7c114f4401 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 7 Feb 2022 16:48:24 +0800 Subject: [PATCH 013/159] website: add Zhenghao success story --- website/src/data/successStories.js | 31 ++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/website/src/data/successStories.js b/website/src/data/successStories.js index bf18409635..81928f685a 100644 --- a/website/src/data/successStories.js +++ b/website/src/data/successStories.js @@ -42,6 +42,29 @@ export default [ ), }, + { + name: 'Zhenghao He', + title: 'Senior Software Engineer, Instacart', + thumbnail: 'https://github.com/zhenghaohe.png', + quote: ( + <> + Tech Interview Handbook was the best resource I used during my coding + interview prep. Its structure and hand-picked questions and detailed + explanations really set it apart from other resources out there. I + helped me go into my interviews with confidence. I ended up landing + offers at Meta, Amazon, Twitch, Microsoft, Coinbase, Splunk, etc. I + highly recommend Tech Interview Handbook to anyone looking to secure an + offer from big tech companies. +
    +
    + I've learnt a few things and blogged about them on{' '} + + https://zhenghao.io + + , check them out if you're interested! + + ), + }, { name: 'Kevin Huang', title: 'Software Engineer, Uber', @@ -75,12 +98,12 @@ export default [ thumbnail: 'https://avatars.githubusercontent.com/u/19870898?s=400&v=4', quote: ( <> - I have not been preparing much for my interviews before my final year in + I have not been preparing much for my interviews before my final year in university. As I set my sights on my full time job, I referred heavily - to this handbook about things to prepare and look out for during my + to this handbook about things to prepare and look out for during my applicaion. It has helped me so much in many stages of my application. - My personal favorite is the best algorithm practice questions, which - is helpful in the future if I want to switch jobs. + My personal favorite is the best algorithm practice questions, which is + helpful in the future if I want to switch jobs.

    With the help of this handbook, I successfully land offers from From 82c1d3d222d81cb90842f423c3844836dfaeb151 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 8 Feb 2022 11:28:24 +0800 Subject: [PATCH 014/159] contents: mention AlgoMonster --- contents/_courses/AlgorithmCourses.md | 13 ++++++++++-- contents/best-practice-questions.md | 4 ++-- website/docusaurus.config.js | 4 +++- website/src/components/SidebarAd/index.js | 24 ++++++++++++++++++++++- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/contents/_courses/AlgorithmCourses.md b/contents/_courses/AlgorithmCourses.md index 4b90bca6e1..3708c91e51 100644 --- a/contents/_courses/AlgorithmCourses.md +++ b/contents/_courses/AlgorithmCourses.md @@ -1,2 +1,11 @@ -- [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) - This course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I also agree with for learning and have personally used to get better at algorithmic problems. The course allows you to practice in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** -- [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) - This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! Note that JavaScript is being used for the coding demos. +### [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) + +AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Check it out →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) + +### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) + +This course by Educative expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Check it out →**](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) + +### [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) + +This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! Note that JavaScript is being used for the coding demos. [**Check it out →**;](https://fxo.co/DQpY) diff --git a/contents/best-practice-questions.md b/contents/best-practice-questions.md index 55c4811611..4fc27ba8ce 100644 --- a/contents/best-practice-questions.md +++ b/contents/best-practice-questions.md @@ -25,9 +25,9 @@ When practicing, you are advised to treat it like a real coding interview and ch I've created a [LeetCode list](https://leetcode.com/list/9h4lgwl2) for the following questions (except the Premium ones). Feel free to use it to track your practice progress. -:::tip +:::tip Expert tip -If you're running low on time, the [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) course essentially expands upon the questions on this page but approaches the practicing from a questions pattern perspective rather than data structures. **Learn and understand patterns, not memorize answers!** +If you're running low on time, [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) uses a data-driven approach to teach you most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. **Learn and understand patterns, not memorize answers!** ::: diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 796c68d1d0..4611125e53 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -10,7 +10,9 @@ module.exports = { themeConfig: { announcementBar: { id: 'announcement-1', // Increment on change - content: `⭐️ Bring your interview skills to the next level with Educative. Join today for a discount! ⭐️`, + content: `Stop the grind and study with a plan! Developed by Google engineers, + AlgoMonster is the fastest way to get a software engineering job. + Try it today!`, }, prism: { theme: require('prism-react-renderer/themes/github'), diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index 4cc805674f..29475668c2 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -34,6 +34,26 @@ function TopResume({className}) { ); } +function AlgoMonster({className}) { + return ( + { + window.gtag('event', 'algomonster.sidebar.click'); + }}> +

    + Stop grinding and study with a plan! +
    + Developed by Google engineers, AlgoMonster is the fastest way to + get a software engineering job. Try it today! +

    +
    + ); +} + function Moonchaser({className}) { return ( 0.5 ? ( + + ) : ( ); } From 8e7c16838594d15d6c776fb9eca80441b4c69157 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 8 Feb 2022 11:50:22 +0800 Subject: [PATCH 015/159] website: change banner --- website/docusaurus.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 4611125e53..ea8cf35fe9 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -9,10 +9,11 @@ module.exports = { projectName: 'tech-interview-handbook', themeConfig: { announcementBar: { - id: 'announcement-1', // Increment on change + id: 'algomonster', // Increment on change content: `Stop the grind and study with a plan! Developed by Google engineers, AlgoMonster is the fastest way to get a software engineering job. Try it today!`, + isCloseable: false, }, prism: { theme: require('prism-react-renderer/themes/github'), From 366fc17c7fc263f71e914d247aa1e51d337fcde2 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Thu, 10 Feb 2022 08:23:03 +0800 Subject: [PATCH 016/159] website: stop Vercel from commenting on every commit --- website/vercel.json | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 website/vercel.json diff --git a/website/vercel.json b/website/vercel.json new file mode 100644 index 0000000000..7ae9a3de54 --- /dev/null +++ b/website/vercel.json @@ -0,0 +1,5 @@ +{ + "github": { + "silent": true + } +} From 0571af51c8ce6d540d0c559a27500b2988f3b5cd Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 11 Feb 2022 10:57:10 +0800 Subject: [PATCH 017/159] misc: change Exponent URLs --- contents/behavioral-interview.md | 2 +- contents/system-design.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contents/behavioral-interview.md b/contents/behavioral-interview.md index 7e94459413..631d83435d 100644 --- a/contents/behavioral-interview.md +++ b/contents/behavioral-interview.md @@ -26,5 +26,5 @@ _Source: [Preparing for your Onsite Interview at Facebook](https://www.facebook. I really don't think one needs to attend a course on behavioral interviews, but your mileage may vary. I've seen candidates get rejected for failing the behavioral round even though they did super well on the coding and system design interviews. If you want to take a course on behavioral interviews, I'd recommend the following courses: -- ["Behavioral Interviews" by Exponent](https://www.tryexponent.com/courses/behavioral?ref=yangshuntay) - While Exponent also has courses on technical content, what really makes them stand out from the other interview preparation platform is their availability of content for non-software engineering roles such as Product Management and Product Marketing. Their behavioral interview course is a mix of videos (by the Exponent CEO himself!) and text, going through the most common questions and imparting you with techniques to help you ace the interview. To top it off, they also have an interview question bank for behavioral questions with responses from the platform's helpful community. While the subscription might be a little pricey for just the behavioral interviews content, they also offer quality technical content for [System Design](https://www.tryexponent.com/courses/system-design-interview?ref=yangshuntay), [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=yangshuntay) and [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=yangshuntay). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing. +- ["Behavioral Interviews" by Exponent](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook) - While Exponent also has courses on technical content, what really makes them stand out from the other interview preparation platform is their availability of content for non-software engineering roles such as Product Management and Product Marketing. Their behavioral interview course is a mix of videos (by the Exponent CEO himself!) and text, going through the most common questions and imparting you with techniques to help you ace the interview. To top it off, they also have an interview question bank for behavioral questions with responses from the platform's helpful community. While the subscription might be a little pricey for just the behavioral interviews content, they also offer quality technical content for [System Design](https://www.tryexponent.com/courses/system-design-interview?ref=techinterviewhandbook), [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook) and [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing. - ["Grokking the Behavioral Interview" by Educative](https://www.educative.io/courses/grokking-the-behavioral-interview?aff=x23W) - As usual, this course by Educative is text-based and they believe that text-based courses are the more efficient than video courses. One thing that stands out about this course is that they teach you **patterns** for behavioral interviews, not just about memorizing questions and preparing answers. diff --git a/contents/system-design.md b/contents/system-design.md index 40e718d70e..09095f7fd5 100644 --- a/contents/system-design.md +++ b/contents/system-design.md @@ -28,7 +28,7 @@ System design content is still work-in-progress, but the following are some reso ## Quality courses - ["Grokking the System Design Interview" by Educative](https://www.educative.io/courses/grokking-the-system-design-interview?aff=x23W) - This is probably the most famous system design interview course on the internet and what makes it different from most other courses out there is that it is purely text-based, which is great for people who refer reading over watching videos (such as myself!). It contains a repository of the popular system design problems along with a glossary of system design basics. I've personally completed this course and have recommended many others to use this. Highly recommended! -- ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interview?ref=yangshuntay) - This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=yangshuntay), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=yangshuntay) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=yangshuntay). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing. +- ["System Design Interview Course" by Exponent](https://www.tryexponent.com/courses/system-design-interview?ref=techinterviewhandbook) - This course covers system designs basics and has a huge database of popular system design questions with videos of mock interviews. Some of the questions have text answers and a database schema and APIs for reference (which I find helpful). While the subscription might be a little pricey for just the system design interviews content, they also offer quality technical content for [Data Structures](https://www.tryexponent.com/courses/swe-practice?ref=techinterviewhandbook), [Algorithms](https://www.tryexponent.com/courses/algorithms?ref=techinterviewhandbook) and [Behavioral Interviews](https://www.tryexponent.com/courses/behavioral?ref=techinterviewhandbook). The convenience of a one-stop platform which covers all aspects of technical interview preparation is very enticing. - ["Grokking the Advanced System Design Interview" by Educative](https://www.educative.io/courses/grokking-adv-system-design-intvw?aff=x23W) - I haven't tried this but it's by the same people who created "Grokking the System Design Interview", so it should be good! In my opinion you probably wouldn't need this unless you're very senior or going for a specialist position. ## Free resources From e9b1e515e78eac7dc02520ba029f19e7d1c0c97f Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 11 Feb 2022 12:21:06 +0800 Subject: [PATCH 018/159] contents: restructure best practice questions into table --- contents/best-practice-questions.md | 138 ++++++++++++++++------------ 1 file changed, 77 insertions(+), 61 deletions(-) diff --git a/contents/best-practice-questions.md b/contents/best-practice-questions.md index 4fc27ba8ce..904ec4a209 100644 --- a/contents/best-practice-questions.md +++ b/contents/best-practice-questions.md @@ -35,81 +35,95 @@ If you're running low on time, [AlgoMonster](https://shareasale.com/r.cfm?b=1873 In week 1, we will warm up by doing a mix of easy and medium questions on arrays and strings. Arrays and strings are the most common types of questions to be found in interviews; gaining familiarity with them will help in building strong fundamentals to better handle tougher questions. -- [Two Sum](https://leetcode.com/problems/two-sum/) -- [Contains Duplicate](https://leetcode.com/problems/contains-duplicate/) -- [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) -- [Valid Anagram](https://leetcode.com/problems/valid-anagram/) -- [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) -- [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/) -- [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/) -- [3Sum](https://leetcode.com/problems/3sum/) -- [Merge Intervals](https://leetcode.com/problems/merge-intervals/) -- [Group Anagrams](https://leetcode.com/problems/group-anagrams/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Two Sum | Easy | [Link](https://leetcode.com/problems/two-sum/) | +| Contains Duplicate | Easy | [Link](https://leetcode.com/problems/contains-duplicate/) | +| Best Time to Buy and Sell Stock | Easy | [Link](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) | +| Valid Anagram | Easy | [Link](https://leetcode.com/problems/valid-anagram/) | +| Valid Parentheses | Easy | [Link](https://leetcode.com/problems/valid-parentheses/) | +| Maximum Subarray | Easy | [Link](https://leetcode.com/problems/maximum-subarray/) | +| Product of Array Except Self | Medium | [Link](https://leetcode.com/problems/product-of-array-except-self/) | +| 3Sum | Medium | [Link](https://leetcode.com/problems/3sum/) | +| Merge Intervals | Medium | [Link](https://leetcode.com/problems/merge-intervals/) | +| Group Anagrams | Medium | [Link](https://leetcode.com/problems/group-anagrams/) | #### Optional -- [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) -- [Search in Rotated Sorted Array](https://leetcode.com/problems/search-in-rotated-sorted-array/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Maximum Product Subarray | Medium | [Link](https://leetcode.com/problems/maximum-product-subarray/) | +| Search in Rotated Sorted Array | Medium | [Link](https://leetcode.com/problems/search-in-rotated-sorted-array/) | ## Week 2 - Data structures The focus of week 2 is on linked lists, strings and matrix-based questions. The goal is to learn the common routines dealing with linked lists, traversing matrices and sequence analysis (arrays/strings) techniques such as sliding window, linked list traversal and matrix traversal. -- [Reverse a Linked List](https://leetcode.com/problems/reverse-linked-list/) -- [Detect Cycle in a Linked List](https://leetcode.com/problems/linked-list-cycle/) -- [Container With Most Water](https://leetcode.com/problems/container-with-most-water/) -- [Find Minimum in Rotated Sorted Array](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) -- [Longest Repeating Character Replacement](https://leetcode.com/problems/longest-repeating-character-replacement/) -- [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/) -- [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/) -- [Number of Islands](https://leetcode.com/problems/number-of-islands/) -- [Remove Nth Node From End Of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) -- [Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/) -- [Pacific Atlantic Water Flow](https://leetcode.com/problems/pacific-atlantic-water-flow/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Reverse a Linked List | Easy | [Link](https://leetcode.com/problems/reverse-linked-list/) | +| Detect Cycle in a Linked List | Easy | [Link](https://leetcode.com/problems/linked-list-cycle/) | +| Container With Most Water | Medium | [Link](https://leetcode.com/problems/container-with-most-water/) | +| Find Minimum in Rotated Sorted Array | Medium | [Link](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/) | +| Longest Repeating Character Replacement | Medium | [Link](https://leetcode.com/problems/longest-repeating-character-replacement/) | +| Longest Substring Without Repeating Characters | Medium | [Link](https://leetcode.com/problems/longest-substring-without-repeating-characters/) | +| Number of Islands | Medium | [Link](https://leetcode.com/problems/number-of-islands/) | +| Remove Nth Node From End Of List | Medium | [Link](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) | +| Palindromic Substrings | Medium | [Link](https://leetcode.com/problems/palindromic-substrings/) | +| Pacific Atlantic Water Flow | Medium | [Link](https://leetcode.com/problems/pacific-atlantic-water-flow/) | +| Minimum Window Substring | Hard | [Link](https://leetcode.com/problems/minimum-window-substring/) | ## Week 3 - Non-linear data structures The focus of week 3 is on non-linear data structures like trees, graphs and heaps. You should be familiar with the various tree traversal (in-order, pre-order, post-order) algorithms and graph traversal algorithms such as breadth-first search and depth-first search. In my experience, using more advanced graph algorithms (Dijkstra's and Floyd-Warshall) is quite rare and usually not necessary. -- [Validate Binary Search Tree](https://leetcode.com/problems/validate-binary-search-tree/) -- [Invert/Flip Binary Tree](https://leetcode.com/problems/invert-binary-tree/) -- [Non-overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/) -- [Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) -- [Construct Binary Tree from Preorder and Inorder Traversal](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) -- [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) -- [Clone Graph](https://leetcode.com/problems/clone-graph/) -- [Course Schedule](https://leetcode.com/problems/course-schedule/) -- [Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Invert/Flip Binary Tree | Easy | [Link](https://leetcode.com/problems/invert-binary-tree/) | +| Validate Binary Search Tree | Medium | [Link](https://leetcode.com/problems/validate-binary-search-tree/) | +| Non-overlapping Intervals | Medium | [Link](https://leetcode.com/problems/non-overlapping-intervals/) | +| Construct Binary Tree from Preorder and Inorder Traversal | Medium | [Link](https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/) | +| Top K Frequent Elements | Medium | [Link](https://leetcode.com/problems/top-k-frequent-elements/) | +| Clone Graph | Medium | [Link](https://leetcode.com/problems/clone-graph/) | +| Course Schedule | Medium | [Link](https://leetcode.com/problems/course-schedule/) | +| Serialize and Deserialize Binary Tree | Hard | [Link](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) | +| Binary Tree Maximum Path Sum | Hard | [Link](https://leetcode.com/problems/binary-tree-maximum-path-sum/) | #### Optional -- [Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/) -- [Same Tree](https://leetcode.com/problems/same-tree/) -- [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/) -- [Encode and Decode Strings (LeetCode Premium)](https://leetcode.com/problems/encode-and-decode-strings/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Maximum Depth of Binary Tree | Easy | [Link](https://leetcode.com/problems/maximum-depth-of-binary-tree/) | +| Same Tree | Easy | [Link](https://leetcode.com/problems/same-tree/) | +| Binary Tree Level Order Traversal | Medium | [Link](https://leetcode.com/problems/binary-tree-level-order-traversal/) | +| Encode and Decode Strings | Medium | [Link](https://leetcode.com/problems/encode-and-decode-strings/) (Premium) | ## Week 4 - More data structures Week 4 builds up on knowledge from previous weeks but questions are of increased difficulty. Expect to see such level of questions during interviews. You get more practice on more advanced data structures such as (but not exclusively limited to) heaps and tries which are less common but are still asked. -- [Add and Search Word](https://leetcode.com/problems/add-and-search-word-data-structure-design/) -- [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/) -- [Subtree of Another Tree](https://leetcode.com/problems/subtree-of-another-tree/) -- [Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) -- [Lowest Common Ancestor of BST](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) -- [Merge K Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/) -- [Find Median from Data Stream](https://leetcode.com/problems/find-median-from-data-stream/) -- [Insert Interval](https://leetcode.com/problems/insert-interval/) -- [Longest Consecutive Sequence](https://leetcode.com/problems/longest-consecutive-sequence/) -- [Word Search II](https://leetcode.com/problems/word-search-ii/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Subtree of Another Tree | Easy | [Link](https://leetcode.com/problems/subtree-of-another-tree/) | +| Lowest Common Ancestor of BST | Easy | [Link](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) | +| Add and Search Word | Medium | [Link](https://leetcode.com/problems/add-and-search-word-data-structure-design/) | +| Implement Trie (Prefix Tree) | Medium | [Link](https://leetcode.com/problems/implement-trie-prefix-tree/) | +| Kth Smallest Element in a BST | Medium | [Link](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) | +| Merge K Sorted Lists | Hard | [Link](https://leetcode.com/problems/merge-k-sorted-lists/) | +| Find Median from Data Stream | Hard | [Link](https://leetcode.com/problems/find-median-from-data-stream/) | +| Insert Interval | Medium | [Link](https://leetcode.com/problems/insert-interval/) | +| Longest Consecutive Sequence | Medium | [Link](https://leetcode.com/problems/longest-consecutive-sequence/) | +| Word Search II | Hard | [Link](https://leetcode.com/problems/word-search-ii/) | #### Optional -- [Meeting Rooms (LeetCode Premium)](https://leetcode.com/problems/meeting-rooms/) -- [Meeting Rooms II (LeetCode Premium)](https://leetcode.com/problems/meeting-rooms-ii/) -- [Alien Dictionary (LeetCode Premium)](https://leetcode.com/problems/alien-dictionary/) -- [Graph Valid Tree (LeetCode Premium)](https://leetcode.com/problems/graph-valid-tree/) -- [Number of Connected Components in an Undirected Graph (LeetCode Premium)](https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Meeting Rooms | Easy | [Link](https://leetcode.com/problems/meeting-rooms/) (Premium) | +| Meeting Rooms II | Medium | [Link](https://leetcode.com/problems/meeting-rooms-ii/) (Premium) | +| Graph Valid Tree | Medium | [Link](https://leetcode.com/problems/graph-valid-tree/) (Premium) | +| Number of Connected Components in an Undirected Graph | Medium | [Link](https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/) (Premium) | +| Alien Dictionary | Hard | [Link](https://leetcode.com/problems/alien-dictionary/) (Premium) | ## Week 5 - Dynamic programming @@ -119,16 +133,18 @@ DP questions can be hard to master and the best way to get better at them is... Practically speaking the return of investment (ROI) on studying and practicing for DP questions is very low. Hence DP questions are less important/optional and you should only do them if you have time to spare and you're very keen to have all bases covered (and interviewing with Google). -- [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) -- [Coin Change](https://leetcode.com/problems/coin-change/) -- [Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/) -- [Combination Sum](https://leetcode.com/problems/combination-sum-iv/) -- [House Robber](https://leetcode.com/problems/house-robber/) -- [House Robber II](https://leetcode.com/problems/house-robber-ii/) -- [Decode Ways](https://leetcode.com/problems/decode-ways/) -- [Unique Paths](https://leetcode.com/problems/unique-paths/) -- [Jump Game](https://leetcode.com/problems/jump-game/) -- [Word Break Problem](https://leetcode.com/problems/word-break/) +| Question | Difficulty | LeetCode | +| :-- | --- | --- | +| Climbing Stairs | Easy | [Link](https://leetcode.com/problems/climbing-stairs/) | +| Coin Change | Medium | [Link](https://leetcode.com/problems/coin-change/) | +| Longest Increasing Subsequence | Medium | [Link](https://leetcode.com/problems/longest-increasing-subsequence/) | +| Combination Sum | Medium | [Link](https://leetcode.com/problems/combination-sum-iv/) | +| House Robber | Medium | [Link](https://leetcode.com/problems/house-robber/) | +| House Robber II | Medium | [Link](https://leetcode.com/problems/house-robber-ii/) | +| Decode Ways | Medium | [Link](https://leetcode.com/problems/decode-ways/) | +| Unique Paths | Medium | [Link](https://leetcode.com/problems/unique-paths/) | +| Jump Game | Medium | [Link](https://leetcode.com/problems/jump-game/) | +| Word Break | Medium | [Link](https://leetcode.com/problems/word-break/) | #### Dynamic programming course From eb51a749bb16aaee2688d842d29539565411d62a Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 14 Feb 2022 09:21:18 +0800 Subject: [PATCH 019/159] website: change sidebar contents --- website/src/components/SidebarAd/index.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index 29475668c2..762d31d953 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -150,23 +150,18 @@ export default React.memo(function SidebarAd() { {() => { const path = window.location.pathname; // Ugly hack to show conditional sidebar content. - if (path.startsWith('/resume')) { - return ; - } - if ( - path.includes('negotiation') || - path.startsWith('/understanding-compensation') - ) { + if (path.includes('negotiation') || path.includes('compensation')) { return ; } if ( + path.includes('resume') || path.includes('coding') || - path.startsWith('/best-practice-questions') || - path.startsWith('/cheatsheet') || - path.startsWith('/mock-interviews') || - path.startsWith('/algorithms') + path.includes('best-practice-questions') || + path.includes('cheatsheet') || + path.includes('mock-interviews') || + path.includes('algorithms') ) { return Math.random() > 0.5 ? ( From 2f929fba300ee313f06cacd4c11066575db5cc6a Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 14 Feb 2022 09:48:41 +0800 Subject: [PATCH 020/159] website: remove Facebook copyright comments --- contents/_courses/AlgorithmCourses.md | 2 +- website/src/theme/DocItem/styles.module.css | 7 ------- website/src/theme/DocPaginator/index.js | 6 ------ website/src/theme/DocSidebar/index.js | 6 ------ website/src/theme/DocSidebar/styles.module.css | 7 ------- website/src/theme/DocSidebarItem/index.js | 6 ------ website/src/theme/DocSidebarItem/styles.module.css | 7 ------- website/src/theme/TOC/index.js | 6 ------ website/src/theme/TOC/styles.module.css | 7 ------- 9 files changed, 1 insertion(+), 53 deletions(-) diff --git a/contents/_courses/AlgorithmCourses.md b/contents/_courses/AlgorithmCourses.md index 3708c91e51..ce12dc7281 100644 --- a/contents/_courses/AlgorithmCourses.md +++ b/contents/_courses/AlgorithmCourses.md @@ -8,4 +8,4 @@ This course by Educative expands upon the questions on the recommended practice ### [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) -This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! Note that JavaScript is being used for the coding demos. [**Check it out →**;](https://fxo.co/DQpY) +This Udemy bestseller is one of the highest-rated interview preparation course (4.6 stars, 21.5k ratings, 135k students) and packs **19 hours** worth of contents into it. Like Tech Interview Handbook, it goes beyond coding interviews and covers resume, non-technical interviews, negotiations. It's an all-in-one package! Note that JavaScript is being used for the coding demos. [**Check it out →**](https://fxo.co/DQpY) diff --git a/website/src/theme/DocItem/styles.module.css b/website/src/theme/DocItem/styles.module.css index 7828ec6219..95c4e3405c 100644 --- a/website/src/theme/DocItem/styles.module.css +++ b/website/src/theme/DocItem/styles.module.css @@ -1,10 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - .docItemContainer header + *, .docItemContainer article > *:first-child { margin-top: 0; diff --git a/website/src/theme/DocPaginator/index.js b/website/src/theme/DocPaginator/index.js index b3a7fad957..4b130fabb8 100644 --- a/website/src/theme/DocPaginator/index.js +++ b/website/src/theme/DocPaginator/index.js @@ -1,9 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ import React from 'react'; import Translate, {translate} from '@docusaurus/Translate'; import PaginatorNavLink from '@theme/PaginatorNavLink'; diff --git a/website/src/theme/DocSidebar/index.js b/website/src/theme/DocSidebar/index.js index fc6e522136..5c91281e86 100644 --- a/website/src/theme/DocSidebar/index.js +++ b/website/src/theme/DocSidebar/index.js @@ -1,9 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ import React, {useState} from 'react'; import clsx from 'clsx'; import { diff --git a/website/src/theme/DocSidebar/styles.module.css b/website/src/theme/DocSidebar/styles.module.css index 500afc336d..c54d493bee 100644 --- a/website/src/theme/DocSidebar/styles.module.css +++ b/website/src/theme/DocSidebar/styles.module.css @@ -1,10 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - :root { --collapse-button-bg-color-dark: #2e333a; } diff --git a/website/src/theme/DocSidebarItem/index.js b/website/src/theme/DocSidebarItem/index.js index deeef661b7..854dd8610c 100644 --- a/website/src/theme/DocSidebarItem/index.js +++ b/website/src/theme/DocSidebarItem/index.js @@ -1,9 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ import React, {useEffect, memo} from 'react'; import clsx from 'clsx'; import { diff --git a/website/src/theme/DocSidebarItem/styles.module.css b/website/src/theme/DocSidebarItem/styles.module.css index 493449d395..16e69809f2 100644 --- a/website/src/theme/DocSidebarItem/styles.module.css +++ b/website/src/theme/DocSidebarItem/styles.module.css @@ -1,10 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - @media (min-width: 997px) { .menuLinkText { cursor: initial; diff --git a/website/src/theme/TOC/index.js b/website/src/theme/TOC/index.js index ef13603048..0ad5605514 100644 --- a/website/src/theme/TOC/index.js +++ b/website/src/theme/TOC/index.js @@ -1,9 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ import React from 'react'; import clsx from 'clsx'; import TOCItems from '@theme/TOCItems'; diff --git a/website/src/theme/TOC/styles.module.css b/website/src/theme/TOC/styles.module.css index 3930e0d6ba..869692423b 100644 --- a/website/src/theme/TOC/styles.module.css +++ b/website/src/theme/TOC/styles.module.css @@ -1,10 +1,3 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - .tableOfContents { max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem)); overflow-y: auto; From 66db8392b95bd2419c4ac795649040153dd7f0e6 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 15 Feb 2022 20:57:36 +0800 Subject: [PATCH 021/159] contents: mention discount for AlgoMonster --- contents/_courses/AlgorithmCourses.md | 4 ++-- website/docusaurus.config.js | 2 +- website/src/components/SidebarAd/index.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contents/_courses/AlgorithmCourses.md b/contents/_courses/AlgorithmCourses.md index ce12dc7281..a677b3fbca 100644 --- a/contents/_courses/AlgorithmCourses.md +++ b/contents/_courses/AlgorithmCourses.md @@ -1,10 +1,10 @@ ### [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) -AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Check it out →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) +AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) ### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) -This course by Educative expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Check it out →**](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) +This course by Educative expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Join today for a 10% discount →**](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) ### [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index ea8cf35fe9..09d1c4179c 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -12,7 +12,7 @@ module.exports = { id: 'algomonster', // Increment on change content: `Stop the grind and study with a plan! Developed by Google engineers, AlgoMonster is the fastest way to get a software engineering job. - Try it today!`, + Join today for a 70% discount!`, isCloseable: false, }, prism: { diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index 762d31d953..3c3f1f24d4 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -48,7 +48,7 @@ function AlgoMonster({className}) { Stop grinding and study with a plan!
    Developed by Google engineers, AlgoMonster is the fastest way to - get a software engineering job. Try it today! + get a software engineering job. Join today for a 70% discount!!

    ); From a03690080da2c7b76b2c24c09c0a41868fc3e0f0 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 15 Feb 2022 21:04:32 +0800 Subject: [PATCH 022/159] website: differentiate sidebar positions --- website/src/components/SidebarAd/index.js | 59 ++++++++++++++++------- website/src/theme/DocItem/index.js | 2 +- website/src/theme/DocSidebar/index.js | 2 +- website/src/theme/TOC/index.js | 2 +- 4 files changed, 44 insertions(+), 21 deletions(-) diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index 3c3f1f24d4..461901c892 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -13,7 +13,7 @@ const BACKGROUNDS = [ styles.backgroundRed, ]; -function TopResume({className}) { +function TopResume({className, position}) { return ( { - window.gtag('event', 'topresume.sidebar.click'); + window.gtag('event', `topresume.${position}.click`); }}>

    Best resume service for FAANG @@ -34,7 +34,7 @@ function TopResume({className}) { ); } -function AlgoMonster({className}) { +function AlgoMonster({className, position}) { return ( { - window.gtag('event', 'algomonster.sidebar.click'); + window.gtag('event', `algomonster.${position}.click`); }}>

    Stop grinding and study with a plan! @@ -54,7 +54,7 @@ function AlgoMonster({className}) { ); } -function Moonchaser({className}) { +function Moonchaser({className, position}) { return ( { - window.gtag('event', 'moonchaser.sidebar.click'); + window.gtag('event', `moonchaser.${position}.click`); }}>

    Get paid more. Receive risk-free salary negotiation @@ -74,7 +74,7 @@ function Moonchaser({className}) { ); } -function Educative({className}) { +function Educative({className, position}) { return ( { - window.gtag('event', 'educative.sidebar.click'); + window.gtag('event', `educative.${position}.click`); }}>

    Looking to get hired at FAANG? @@ -95,7 +95,7 @@ function Educative({className}) { ); } -function EducativeCoding({className}) { +function EducativeCoding({className, position}) { return ( { - window.gtag('event', 'educative.coding.sidebar.click'); + window.gtag('event', `educative.coding.${position}.click`); }}>

    Get the job at FAANG @@ -117,7 +117,7 @@ function EducativeCoding({className}) { ); } -function EducativeSystemDesign({className}) { +function EducativeSystemDesign({className, position}) { return ( { - window.gtag('event', 'educative.coding.sidebar.click'); + window.gtag('event', `educative.system_design.${position}.click`); }}>

    Get the job at FAANG @@ -139,7 +139,7 @@ function EducativeSystemDesign({className}) { ); } -export default React.memo(function SidebarAd() { +export default React.memo(function SidebarAd({position}) { const backgroundClass = BACKGROUNDS[Math.floor(Math.random() * BACKGROUNDS.length)]; @@ -152,7 +152,13 @@ export default React.memo(function SidebarAd() { // Ugly hack to show conditional sidebar content. if (path.includes('negotiation') || path.includes('compensation')) { - return ; + return ( + + ); } if ( @@ -164,9 +170,17 @@ export default React.memo(function SidebarAd() { path.includes('algorithms') ) { return Math.random() > 0.5 ? ( - + ) : ( - + ); } @@ -175,14 +189,23 @@ export default React.memo(function SidebarAd() { ); } return Math.random() > 0.5 ? ( - + ) : ( - + ); }} diff --git a/website/src/theme/DocItem/index.js b/website/src/theme/DocItem/index.js index fae455256f..d0f7e61925 100644 --- a/website/src/theme/DocItem/index.js +++ b/website/src/theme/DocItem/index.js @@ -86,7 +86,7 @@ export default function DocItem(props) {

diff --git a/website/src/theme/DocSidebar/index.js b/website/src/theme/DocSidebar/index.js index 5c91281e86..2c36d4656d 100644 --- a/website/src/theme/DocSidebar/index.js +++ b/website/src/theme/DocSidebar/index.js @@ -89,7 +89,7 @@ const DocSidebarMobileSecondaryMenu = ({toggleSidebar, sidebar, path}) => { level={1} />
- +
); diff --git a/website/src/theme/TOC/index.js b/website/src/theme/TOC/index.js index 0ad5605514..111f86e0b2 100644 --- a/website/src/theme/TOC/index.js +++ b/website/src/theme/TOC/index.js @@ -12,7 +12,7 @@ function TOC({className, ...props}) { return (
- +
Date: Sat, 19 Feb 2022 19:11:04 +0800 Subject: [PATCH 023/159] contents: switch Trie question to be before Add and Search Word --- contents/best-practice-questions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/best-practice-questions.md b/contents/best-practice-questions.md index 904ec4a209..cf16270cb5 100644 --- a/contents/best-practice-questions.md +++ b/contents/best-practice-questions.md @@ -106,8 +106,8 @@ Week 4 builds up on knowledge from previous weeks but questions are of increased | :-- | --- | --- | | Subtree of Another Tree | Easy | [Link](https://leetcode.com/problems/subtree-of-another-tree/) | | Lowest Common Ancestor of BST | Easy | [Link](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/) | -| Add and Search Word | Medium | [Link](https://leetcode.com/problems/add-and-search-word-data-structure-design/) | | Implement Trie (Prefix Tree) | Medium | [Link](https://leetcode.com/problems/implement-trie-prefix-tree/) | +| Add and Search Word | Medium | [Link](https://leetcode.com/problems/add-and-search-word-data-structure-design/) | | Kth Smallest Element in a BST | Medium | [Link](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) | | Merge K Sorted Lists | Hard | [Link](https://leetcode.com/problems/merge-k-sorted-lists/) | | Find Median from Data Stream | Hard | [Link](https://leetcode.com/problems/find-median-from-data-stream/) | From ef71bf13e5b8cc8f0c63b50625d38a59a6311cf6 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 21 Feb 2022 09:13:09 +0800 Subject: [PATCH 024/159] contents: add Indeed company format. Thanks Caleb! --- contents/interview-formats-top-companies.md | 30 ++++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/contents/interview-formats-top-companies.md b/contents/interview-formats-top-companies.md index 22947c547c..11587d4da2 100644 --- a/contents/interview-formats-top-companies.md +++ b/contents/interview-formats-top-companies.md @@ -20,7 +20,7 @@ Are there companies you would like to know more about? Email us at [contact{at}t - 1 or 2 x Algorithm/front end on CoderPad/CodePen - Onsite (General): - 2 x Algorithm coding on CoderPad - - 1 x System design/architecture + - 1 x System Design/architecture - 1 x Past experience/project - 2 x Cross functional - Onsite (Front End): @@ -39,12 +39,12 @@ Are there companies you would like to know more about? Email us at [contact{at}t - Recruiter phone screen - Technical phone interview - Onsite (Product Engineer): - - 3 x Algorithm and system design on whiteboard within the same session - - 1 x Algorithm on laptop and system design. This session involves writing code on your own laptop to solve 3 well-defined algorithm problems in around 45 minutes after which an engineer will come in and review the code with you. You are not supposed to run the code while working on the problem + - 3 x Algorithm and System Design on whiteboard within the same session + - 1 x Algorithm on laptop and System Design. This session involves writing code on your own laptop to solve 3 well-defined algorithm problems in around 45 minutes after which an engineer will come in and review the code with you. You are not supposed to run the code while working on the problem - Tips: - No front end questions were asked - Asana places high emphasis on System Design and makes heavy use of the whiteboard. You do not necessarily have to write code for the algorithm question of the first three interviews - - All 4 sessions involve algorithms and system design. One of the sessions will be conducted by an Engineering Manager + - All 4 sessions involve algorithms and System Design. One of the sessions will be conducted by an Engineering Manager - The last session will involve coding on your own laptop. Prepare your development environment in advance - Regardless of Product Engineer or Engineering Generalist position, their interview format and questions are similar @@ -66,7 +66,7 @@ Are there companies you would like to know more about? Email us at [contact{at}t - Recruiter phone screen - Technical phone interview: - - 1 or 2 x algorithm on Google Doc + - 1 or 2 x Algorithm on Google Doc - Onsite: - 1 or 2 x Front end on whiteboard. May be required to use Vanilla JS (or at the most, jQuery) depending on the question. (Front End only) - 2 to 4 x Algorithm on whiteboard @@ -77,6 +77,22 @@ Are there companies you would like to know more about? Email us at [contact{at}t - In rare cases, candidates may even be allowed to skip the phone interview round and advanced to onsite directly - For non-fresh grads, you only receive an offer if you are successfully matched with a team +## Indeed + +- Recruiter phone screen +- Technical phone interview (optional) +- Onsite: + - 1 x Online Assessment on HackerRank (for L0 - L2) + - 1 x Resume discussion + - 1 or 2 x Algorithm on HackerRank + - 1 x Code Review on GitHub + - 1 or 2 x System Design (for L3+) + - 1 x Technical Presentation (for L4+) +- Tips: + - If you are interviewing for a specific role, the bar varies + - Hiring decision and leveling are separate discussions; leveling is determined by experience and leadership signals + - If you do well in the interviews but the position is already filled, other hiring managers can pick up your packet + ## Lyft - Recruiter phone screen @@ -113,10 +129,10 @@ Are there companies you would like to know more about? Email us at [contact{at}t - 1 x Algorithm over HackerRank CodePair and Skype - Onsite (General): - 2 x Algorithm on whiteboard - - 1 x Decomposition (system design) on whiteboard + - 1 x Decomposition (System Design) on whiteboard - Onsite (Front End): - 1 x Front end on your own laptop. This session lasts about 1.5 hours. Use any library/framework - - 1 x Decomposition (system design) on whiteboard + - 1 x Decomposition (System Design) on whiteboard - Tips: - I opted to use React and had to set up projects on the spot using `create-react-app` - You may be asked to meet with Engineering Managers after the technical sessions and it's not necessarily a good/bad thing From 72055a6d678b7a5515ec2a7bff7d991cd108fc97 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 21 Feb 2022 10:00:05 +0800 Subject: [PATCH 025/159] misc: revamp partner components --- website/src/components/SidebarAd/index.js | 92 +++++++++++++------ .../components/SidebarAd/styles.module.css | 40 ++++++-- website/src/theme/TOC/index.js | 2 +- 3 files changed, 97 insertions(+), 37 deletions(-) diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index 461901c892..e0b2352c9f 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -7,31 +7,58 @@ import clsx from 'clsx'; import styles from './styles.module.css'; const BACKGROUNDS = [ - styles.backgroundBlue, - styles.backgroundOrange, - styles.backgroundPurple, - styles.backgroundRed, + styles.backgroundPurplin, + styles.backgroundFirewatch, + styles.backgroundLush, + styles.backgroundSweetMorning, + styles.backgroundViceCity, + styles.backgroundRadar, + styles.backgroundCosmicFusion, + styles.backgroundAzurePop, + styles.backgroundTranquil, ]; -function TopResume({className, position}) { - return ( -
{ - window.gtag('event', `topresume.${position}.click`); - }}> -

- Best resume service for FAANG -
- If you are running low on time, I recommend TopResume's{' '} - free resume review services, which has helped countless software - engineers get interviews at FAANG. -

-
- ); +function FAANGTechLeads({className, position}) { + switch (position) { + case 'docs_bottom': + return ( + { + window.gtag('event', `faangtechleads.${position}.click`); + }}> +

+ Best resume service for FAANG +
+ FAANG Tech Leads' resume review service helped me get + shortlisted at top Bay Area companies. Their resume templates are + only $28 now (70% off) and tailored to your experience level. +

+
+ ); + default: + return ( + { + window.gtag('event', `faangtechleads.${position}.click`); + }}> +

+ Get shortlisted at FAANG +
+ FAANG Tech Leads' resume review service helped me get + shortlisted at top Bay Area companies. Their resume templates are + only $28 now (70% off) and tailored to your experience level. +

+
+ ); + } } function AlgoMonster({className, position}) { @@ -58,7 +85,7 @@ function Moonchaser({className, position}) { return ( + ); + } + if (path.includes('negotiation') || path.includes('compensation')) { return (
- Follow us + Follow Date: Mon, 21 Feb 2022 10:00:14 +0800 Subject: [PATCH 026/159] misc: remove unused Travis file --- .travis.yml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5aee3205b8..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -install: - - gem install awesome_bot - -script: - - awesome_bot **/*.md --allow-dupe --allow-redirect --allow 429 --skip-save-results From 07469e38703cee0a7f4f44f9f02dc380d4b75e5b Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 21 Feb 2022 10:55:59 +0800 Subject: [PATCH 027/159] contents: mention FTL in resume section --- contents/resume/ats-proof-template.md | 14 ++++++++++++++ contents/resume/guide.md | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/contents/resume/ats-proof-template.md b/contents/resume/ats-proof-template.md index b4d9b41afd..debc4854e2 100644 --- a/contents/resume/ats-proof-template.md +++ b/contents/resume/ats-proof-template.md @@ -17,6 +17,20 @@ keywords: Most companies these days automate their resume screening process through Applicant Tracking Systems (ATS). 75% of resumes sent to top companies are never seen by human eyes. Always ensure your resume is easily readable by an ATS to maximize job opportunities throughout your career. +:::tip Expert tip + +[FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering templates and references at only **$28 (70% off)**. + +Their templates + +- Are created by ex-FAANG hiring managers based on top resumes received from thousands of candidate applications +- Have guaranteed readability by FAANG ATS +- Are tailored by experience level + +They also offer resume references from candidates who have received multiple offers from Bay Area FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)! + +::: + ## Use Microsoft Word or Google Docs to create and edit your resume **Do's** diff --git a/contents/resume/guide.md b/contents/resume/guide.md index e54510acab..99c2d09e4b 100644 --- a/contents/resume/guide.md +++ b/contents/resume/guide.md @@ -29,6 +29,6 @@ From my experience as a FAANG interviewer as well as my discussions with countle :::tip Expert tip -If you are running low on time, I recommend [TopResume's Resume Writing Service](https://tidd.ly/3oezgOo), which has helped countless software engineers I know get interviews at FAANG. TopResume's also offers a [free resume screening](https://tidd.ly/3GxVIs9) service that you can use to quickly get tips on improving your resume from professional resume writers. +To maximize your chances of being shortlisted, I recommend getting your resume reviewed by [FAANG Tech Leads - a team of ex-FAANG hiring managers](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_guide&aff=1e80c401fe7e2). I personally used their service during my applications and it helped me get shortlisted at multiple Bay Area FAANG companies (and more). It is currently **70% off as part of a limited time promotion**. ::: From 50a782ac138525ddb01758c819568b9ea63aabca Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 22 Feb 2022 07:41:16 +0800 Subject: [PATCH 028/159] website: use Mediavine --- website/docusaurus.config.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 09d1c4179c..4c0ec565e4 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -192,9 +192,10 @@ module.exports = { ], scripts: [ { - src: 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4984084888641317', - crossorigin: 'anonymous', + src: '//scripts.mediavine.com/tags/tech-interview-handbook.js', async: true, + 'data-noptimize': 1, + 'data-cfasync': 'false', }, ], }; From af8ac9fc26eca90a4d7b63c2f7481163da1dc933 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 22 Feb 2022 08:26:11 +0800 Subject: [PATCH 029/159] website: fix broken link --- contents/study-and-practice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/study-and-practice.md b/contents/study-and-practice.md index ed49f2a806..6aa639f0ac 100644 --- a/contents/study-and-practice.md +++ b/contents/study-and-practice.md @@ -23,7 +23,7 @@ keywords: If you have been out of college for a while, it is highly advisable to review Computer Science fundamentals — Algorithms and Data Structures. Personally, I prefer to review as I practice, so I scan through my college notes and review the various algorithms as I work on algorithm problems from LeetCode. -I collated a list of practical tips for the common algorithm and data structure topics under the [Algorithms tips](./algorithms/introduction) section. +I collated a list of practical tips for the common algorithm and data structure topics under the [Algorithms tips](./algorithms/introduction.md) section. ## Mastery through practice From c7f30d2fcd832ec9c65c555636754a4b371fe245 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 22 Feb 2022 10:02:52 +0800 Subject: [PATCH 030/159] contents: list some resources for studying --- contents/study-and-practice.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/contents/study-and-practice.md b/contents/study-and-practice.md index 6aa639f0ac..7081bc5bec 100644 --- a/contents/study-and-practice.md +++ b/contents/study-and-practice.md @@ -21,9 +21,15 @@ keywords: ## Recap Computer Science fundamentals -If you have been out of college for a while, it is highly advisable to review Computer Science fundamentals — Algorithms and Data Structures. Personally, I prefer to review as I practice, so I scan through my college notes and review the various algorithms as I work on algorithm problems from LeetCode. +If you have been out of college for a while, it is highly advisable to review Computer Science fundamentals — Algorithms and Data Structures. Personally, I prefer to review as I practice, so I scan through my college notes and review the various algorithms as I work on algorithm problems from LeetCode. If you are looking for a central place to revise, here are some resources: -I collated a list of practical tips for the common algorithm and data structure topics under the [Algorithms tips](./algorithms/introduction.md) section. +- [The Algorithms and Data Structures Interview Crash Course](https://www.educative.io/courses/algorithms-ds-interview?aff=x23W), a course by Educative which is estimated to take 12h to complete +- [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=), one of the most efficient way to study and practice for coding interviews +- [Master the Coding Interview: Data Structures + Algorithms on Udemy](https://fxo.co/DQpY) +- [DSA Revision](https://dsarevision.com/) - Free 100-page PDF with question patterns and example questions +- [Top 50 Data Structure and Algorithms Interview Questions for Programmers](https://medium.com/javarevisited/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0) + +After you have revised the basic concepts at least once, you can find a list of practical tips I collated for the common algorithm and data structure topics under the [Algorithms tips](./algorithms/introduction.md) section. ## Mastery through practice From 9ed1e4f5b890d94ed6711f217b0521b1d4c9188f Mon Sep 17 00:00:00 2001 From: Yangshun Date: Tue, 22 Feb 2022 10:18:43 +0800 Subject: [PATCH 031/159] contents: introduce some Educative interview courses --- README.md | 20 +++++++++++++++++++- contents/best-coding-interview-courses.md | 13 +++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4d28e71e61..c370566e80 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ## What is this? -Not everyone has the time to do a few hundred LeetCode questions. Here are _free and curated_ technical interview preparation materials for busy engineers, brought to you by the author of the [Blind 75 list](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU). Over 500,000 people have benefitted from this handbook! +Not everyone has the time to do a few hundred LeetCode questions. Here are _free and curated_ technical interview preparation materials for busy engineers, brought to you by me, the author of the [Blind 75 list](https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU). Over 500,000 people have benefitted from this handbook! Besides the usual algorithm questions, other **awesome** stuff includes: @@ -57,6 +57,16 @@ There are many awesome books like [Cracking the Coding Interview](http://www.cra Also, existing resources focus mainly on algorithm questions and lack coverage for more domain-specific and non-technical questions. This handbook aims to cover content beyond the typical algorithmic coding questions. 😎 +## Looking for interview courses? + +### [AlgoMonster](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) + +AlgoMonster aims to help you ace the technical interview **in the shortest time possible**. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get **lifetime access**. [**Join today for a 70% discount →**](https://shareasale.com/r.cfm?b=1873647&u=3114753&m=114505&urllink=&afftrack=) + +### [Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) + +This course by Educative expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. **Learn and understand patterns, not memorize answers!** [**Join today for a 10% discount →**](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) + ## Looking for Front End content? Front-end-related content has been moved to a separate website - [Front End Interview Handbook](https://frontendinterviewhandbook.com). @@ -69,6 +79,14 @@ We're still working on System Design content. In the meanwhile, check out Educat A [Docusaurus](https://github.com/facebook/docusaurus) website has been created to provide a better reading experience. Check out the website [here](https://www.techinterviewhandbook.org)! +--- + + + +--- + ## Related If you are interested in how data structures are implemented, check out [Lago](https://github.com/yangshun/lago), a Data Structures and Algorithms library for JavaScript. It is pretty much still WIP but I intend to make it into a library that can be used in production and also a reference resource for revising Data Structures and Algorithms. diff --git a/contents/best-coding-interview-courses.md b/contents/best-coding-interview-courses.md index 11cf285632..dcbac3c8af 100644 --- a/contents/best-coding-interview-courses.md +++ b/contents/best-coding-interview-courses.md @@ -18,19 +18,28 @@ import AlgorithmCourses from './\_courses/AlgorithmCourses.md' | Course | Reviews | Duration | Price | Contents | | :-- | --- | --- | --- | --- | -| [The Complete Data Structures and Algorithms Course in Python](https://fxo.co/DQpc) | 4.5/5 | 41h | $ | Basic data structures and algorithms | +| [Ace the Python Coding Interview](https://www.educative.io/path/ace-python-coding-interview?aff=x23W) | 4.6/5 | 93h | $ | Basic data structures and algorithms + practice. Also includes **system design** and concurrency | +| [The Complete Data Structures and Algorithms Course in Python](https://fxo.co/DQpc) | 4.6/5 | 41h | $ | Basic data structures and algorithms | | [Python for Data Structures, Algorithms, and Interviews!](https://fxo.co/DQpb) | 4.5/5 | 16.5h | $$ | Basic data structures and algorithms, job application, behavioral interview, negotiation | ## Java | Course | Reviews | Duration | Price | Contents | | :-- | --- | --- | --- | --- | -| [Java Data Structures and Algorithms Masterclass](https://fxo.co/DQpa) | 4.5/5 | 45h | $ | Basic and advanced Basic data structures and algorithms | +| [Ace the Java Coding Interview](https://www.educative.io/path/ace-java-coding-interview?aff=x23W) | 4.6/5 | 55h | $ | Basic data structures and algorithms + practice. Also includes **system design** | +| [Java Data Structures and Algorithms Masterclass](https://fxo.co/DQpa) | 4.5/5 | 45h | $ | Basic and advanced data structures and algorithms | | [Data Structures and Algorithms: Deep Dive Using Java](https://fxo.co/DQpW) | 4.5/5 | 16h | $$ | Basic data structures and algorithms | ## JavaScript | Course | Reviews | Duration | Price | Contents | | :-- | --- | --- | --- | --- | +| [Ace the JavaScript Coding Interview](https://www.educative.io/path/ace-javascript-coding-interview?aff=x23W) | 4.7/5 | 87h | $ | Basic data structures and algorithms + practice. Also includes **system design** | | [JavaScript Data Structures and Algorithms Masterclass](https://fxo.co/DQpZ) | 4.5/5 | 45h | $ | Basic and advanced data structures and algorithms | | [Master the Coding Interview: Data Structures + Algorithms](https://fxo.co/DQpY) | 4.6/5 | 19.5h | $$ | Basic data structures and algorithms, job application, behavioral interview, negotiation | + +## C++ + +| Course | Reviews | Duration | Price | Contents | +| :-- | --- | --- | --- | --- | +| [Ace the C++ Coding Interview](https://www.educative.io/path/ace-cpp-coding-interview?aff=x23W) | 4.6/5 | 60h | $ | Basic data structures and algorithms + practice. Also includes **system design**, concurrency and behavioral contents | From 1764e64213be7a222d43510933e5f79374010b3e Mon Sep 17 00:00:00 2001 From: Yangshun Date: Thu, 24 Feb 2022 13:01:07 +0800 Subject: [PATCH 032/159] contents: change intro --- contents/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/introduction.md b/contents/introduction.md index c56236184a..0d1120e2c2 100644 --- a/contents/introduction.md +++ b/contents/introduction.md @@ -11,7 +11,7 @@ Over 500,000 people have benefitted from this handbook! I have lost count of the ## Who am I? -I'm [Yangshun](https://twitter.com/yangshunz), a Senior Software Engineer at Meta/Facebook. In 2017, I was frustrated at my job at Grab, a regional ridehailing company and wanted to break into FAANG but I didn't know how to. After few months of research, studying and practicing, I interviewed at 11 companies and managed to get [9 offers from top tech companies in the Bay Area](https://www.teamblind.com/post/Sharing-my-offer-numbers-from-big-companies-for-your-reference-yNgqUPQR) - Facebook, Google, Airbnb, Palantir, Dropbox, Lyft, and some startups. +I'm [Yangshun](https://twitter.com/yangshunz), a Staff Software Engineer at Meta/Facebook. In 2017, I was frustrated at my job at Grab, a regional ridehailing company and wanted to break into FAANG but I didn't know how to. After few months of research, studying and practicing, I interviewed at 11 companies and managed to get [9 offers from top tech companies in the Bay Area](https://www.teamblind.com/post/Sharing-my-offer-numbers-from-big-companies-for-your-reference-yNgqUPQR) - Facebook, Google, Airbnb, Palantir, Dropbox, Lyft, and some startups. It was a tedious process which I don't ever want to go through again. **I went through that process but with this handbook, you don't have to.** This handbook contains the essence of technical interviewing which will benefit you in your job hunt. From 250e643d43c0a24ea69f3b2d273ac0a49ccb643c Mon Sep 17 00:00:00 2001 From: Yangshun Date: Wed, 2 Mar 2022 20:53:49 +0800 Subject: [PATCH 033/159] contents: optimize build speed --- contents/introduction.md | 2 +- contents/picking-a-language.md | 25 +++++++++++--- contents/resume-sample.md | 18 ---------- contents/resume/guide.md | 2 +- contents/self-introduction.md | 10 +++--- website/docusaurus.config.js | 4 +-- website/src/components/SidebarAd/index.js | 39 ++++++---------------- website/src/data/successStories.js | 9 +++-- website/src/pages/index.js | 20 +++++------ website/static/img/yangshun-resume.png | Bin 148012 -> 0 bytes 10 files changed, 51 insertions(+), 78 deletions(-) delete mode 100644 contents/resume-sample.md delete mode 100644 website/static/img/yangshun-resume.png diff --git a/contents/introduction.md b/contents/introduction.md index 0d1120e2c2..10111b2ba9 100644 --- a/contents/introduction.md +++ b/contents/introduction.md @@ -11,7 +11,7 @@ Over 500,000 people have benefitted from this handbook! I have lost count of the ## Who am I? -I'm [Yangshun](https://twitter.com/yangshunz), a Staff Software Engineer at Meta/Facebook. In 2017, I was frustrated at my job at Grab, a regional ridehailing company and wanted to break into FAANG but I didn't know how to. After few months of research, studying and practicing, I interviewed at 11 companies and managed to get [9 offers from top tech companies in the Bay Area](https://www.teamblind.com/post/Sharing-my-offer-numbers-from-big-companies-for-your-reference-yNgqUPQR) - Facebook, Google, Airbnb, Palantir, Dropbox, Lyft, and some startups. +In 2017, I was frustrated at my job at Grab, a regional ridehailing company and wanted to break into FAANG but I didn't know how to. After few months of research, studying and practicing, I interviewed at 11 companies and managed to get offers from top tech companies in the Bay Area - Google, Airbnb, Palantir, Dropbox, Lyft, and some startups. It was a tedious process which I don't ever want to go through again. **I went through that process but with this handbook, you don't have to.** This handbook contains the essence of technical interviewing which will benefit you in your job hunt. diff --git a/contents/picking-a-language.md b/contents/picking-a-language.md index 505ff2c6d9..7c9656d888 100644 --- a/contents/picking-a-language.md +++ b/contents/picking-a-language.md @@ -28,17 +28,32 @@ Before anything else, you need to pick a programming language to do your intervi There are some languages which are more suitable than others for coding interviews and some languages you absolutely want to avoid. From my experience as an interviewer, most candidates pick Python or Java. Other commonly seen languages include JavaScript, Ruby and C++. I would absolutely avoid lower level languages like C or Go, simply because they lack many standard library functions and data structures and some may require manual memory management. -Personally, Python is my de facto choice for algorithm coding interviews because it is succinct and has a huge library of functions and data structures available. One of my top reasons for recommending Python is that it uses consistent APIs that operate on different data structures, such as `len()`, `for ... in ...` and slicing notation on sequences (strings/lists/tuples). Getting the last element in a sequence is `arr[-1]` and reversing it is simply `arr[::-1]`. You can achieve a lot with minimal syntax in Python. +Personally, Python is my de facto choice for algorithm coding interviews because it is succinct and has a huge library of functions and data structures available. Python also uses consistent APIs that operate on different data structures, such as `len()`, `for ... in ...` and slicing notation on sequences (strings/lists/tuples). Getting the last element in a sequence is `arr[-1]` and reversing it is simply `arr[::-1]`. You can achieve a lot with minimal syntax in Python. -Java is a decent choice too but having to constantly declare types in your code means extra keystrokes which results in slower coding/typing speed. This issue will be more apparent when you have to write on a whiteboard during onsite interviews. The reasons for choosing/not choosing C++ are similar to Java. Ultimately, Python, Java and C++ are decent choices of languages. +Java is a decent choice too but having to constantly declare types in your code means extra keystrokes which results in more typing which doesn't result in any benefit (in an interview setting). This issue will be more apparent when you have to write on a whiteboard during onsite interviews. The reasons for choosing/not choosing C++ are similar to Java. Ultimately, Python, Java and C++ are decent choices of languages. + +- Recommended: Python, C++, Java, JavaScript +- Acceptable (but prefer recommended if you are familiar): Go, Ruby, PHP, C#, Swift, Kotlin +- Avoid: Haskell, Erlang, Perl, C, Matlab +- You must be mad: Brainfuck, Assembly ## Use a language you are familiar with -Most of the time, it is recommended that you use a language that you are extremely familiar with rather than picking up a new language just for doing interviews because the company uses that language heavily or just because you want to show that you are trendy. +Most of the time, it is recommended that you use a language that you are extremely familiar with rather than picking up a new language just for using in interviews. + +If you are under time constraints, picking up a new language just for interviewing is hardly a good idea. Languages take time to master and if you are already spending most of your time and effort on revising/mastering algorithms, there is barely spare energy left for mastering a new language. If you are familiar with using one of the mainstream languages, there isn't a strong reason to learn a new language just for interviewing. + +If you have been using Java at work for a while now and do not have time to be comfortably familiar with another language, I would recommend just sticking to Java instead of picking up Python from scratch just for the sake of interviews. Doing so, you can avoid having to context switch between languages during work vs interviews. **Most of the time, the bottleneck is in the thinking and not the writing**. It takes some getting used to before one becomes fluent in a language and be able to wield it with ease. + +Valid reasons to learn a new language: + +- The interview requires usage of that language (domain-specific roles like mobile/front end/data science) +- You are not in a rush to start interviewing -If you are under time constraints, picking up a new language just for interviewing is hardly a good idea. Languages take time to master and if you are already spending most of your time and effort on mastering algorithms, there is barely spare effort left for mastering a new language. If you are familiar with using one of the mainstream languages, there isn't a strong reason to learn a new language just for interviewing. +Poor reasons to learn a new language: -If you have been using Java at work for a while now and do not have time to be comfortably familiar with another language, I would recommend just sticking to Java instead of picking up Python from scratch just for the sake of interviews. Doing so, you can avoid having to context switch between languages during work vs interviews. Most of the time, the bottleneck is in the thinking and not the writing. It takes some getting used to before one becomes fluent in a language and be able to wield it with ease. +- The company you are interviewing with uses that language heavily and you want to impress the interviewer/show that you fit in +- You want to show that you are trendy ## The exception to the norm diff --git a/contents/resume-sample.md b/contents/resume-sample.md deleted file mode 100644 index 0d7de201a1..0000000000 --- a/contents/resume-sample.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -id: resume-sample -title: Resume sample -sidebar_label: Sample ---- - -import YangshunResumeURL from '@site/static/img/yangshun-resume.png'; - -Here's a sample resume (mine). I like using Google Docs as the portability is great and also comes with version control. Feel free to clone my resume and use it as a starting point for your own. - -Here's a [Google Doc template](https://docs.google.com/document/d/1DQ5SKNrm1hb1BRS40ejovLxhyEKXiuTGsDEXIiZSW0o/edit?usp=sharing) of my resume if you're interested. **Do not request to edit, click "File > Make a Copy"**. - -
-
- Yangshun's Resume 2021 -
Yangshun's Resume 2021
-
-
diff --git a/contents/resume/guide.md b/contents/resume/guide.md index 99c2d09e4b..2c216a78f8 100644 --- a/contents/resume/guide.md +++ b/contents/resume/guide.md @@ -29,6 +29,6 @@ From my experience as a FAANG interviewer as well as my discussions with countle :::tip Expert tip -To maximize your chances of being shortlisted, I recommend getting your resume reviewed by [FAANG Tech Leads - a team of ex-FAANG hiring managers](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_guide&aff=1e80c401fe7e2). I personally used their service during my applications and it helped me get shortlisted at multiple Bay Area FAANG companies (and more). It is currently **70% off as part of a limited time promotion**. +To maximize your chances of being shortlisted, consider getting your resume reviewed by [FAANG Tech Leads - a team of ex-FAANG hiring managers](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_guide&aff=1e80c401fe7e2). It is currently **70% off as part of a limited time promotion**. ::: diff --git a/contents/self-introduction.md b/contents/self-introduction.md index a854b1ecdb..e5530b8450 100644 --- a/contents/self-introduction.md +++ b/contents/self-introduction.md @@ -66,15 +66,15 @@ Prepare a self introduction that follows the following outline (inspired by "Cra ## Examples -### Example 1: Front End Engineer at Facebook +### Example 1: Front End Engineer at Meta #### Self introduction -> "Hi I'm Yangshun and I graduated from National University of Singapore in 2015 with a degree in Computer Science. My interests are in Front End Engineering and I love to create beautiful and performant products with delightful user experiences. +> "Hi I'm XXX and I graduated from National University of Singapore in 2015 with a degree in Computer Science. My interests are in Front End Engineering and I love to create beautiful and performant products with delightful user experiences. > > Back in school, I designed and built a web application, NUSMods which solves a huge problem of class and timetable planning every semester. It receives over a million pageviews a month and is used by over 40,000 NUS students and even some professors. It is built using a modern web technology stack - React, Redux, Jest, Babel, Flow, webpack and is mobile-responsive." > -> I'm interested in the Front End Engineer role at Facebook because I have been using Facebook Open Source Front End technologies for a while now and am inspired by Facebook's mission and Open Source culture. +> I'm interested in the Front End Engineer role at Meta because I have been using Meta Open Source Front End technologies for a while now and am inspired by Meta's mission and Open Source culture. #### Breakdown @@ -83,13 +83,13 @@ Prepare a self introduction that follows the following outline (inspired by "Cra - "It receives over a million pageviews a month and is used by over 30,000 NUS undergraduates and even some professors." - Mention something about the project which stands out - "It is built using a modern web technology stack - React, Redux, Jest, Babel, Flow, webpack and is mobile-responsive." - - Facebook tech stack! Also hints that you keep yourself updated with modern web technologies + - Meta tech stack! Also hints that you keep yourself updated with modern web technologies ### Example 2: Front End Engineer at Lyft #### Self introduction -> "Hi I'm Yangshun and I graduated from National University of Singapore in 2015 with a degree in Computer Science. My interests are in Front End Engineering and I love to create beautiful performant products with delightful user experiences. +> "Hi I'm XXX and I graduated from National University of Singapore in 2015 with a degree in Computer Science. My interests are in Front End Engineering and I love to create beautiful performant products with delightful user experiences. > > I previously worked at Grab where I led the Grab for Work project. Grab for Work was a service for companies to make corporate transportation expenses convenient. Companies can create employee groups, set ride policies and share corporate payment methods with their employees. I built the project with another engineer over the period of 3 months on a React/Redux and Golang stack." > diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 4c0ec565e4..106ba6144c 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -68,7 +68,7 @@ module.exports = { ], }, footer: { - copyright: `Copyright © ${new Date().getFullYear()} Yangshun Tay. Built with Docusaurus.`, + copyright: `Copyright © ${new Date().getFullYear()} Tech Interview Handbook. Built with Docusaurus.`, links: [ { title: 'General', @@ -161,7 +161,7 @@ module.exports = { path: '../contents', routeBasePath: '/', sidebarPath: require.resolve('./sidebars.js'), - showLastUpdateAuthor: true, + // showLastUpdateAuthor: true, showLastUpdateTime: true, }, theme: { diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index e0b2352c9f..431f195b8f 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -33,9 +33,10 @@ function FAANGTechLeads({className, position}) {

Best resume service for FAANG
- FAANG Tech Leads' resume review service helped me get - shortlisted at top Bay Area companies. Their resume templates are - only $28 now (70% off) and tailored to your experience level. + FAANG Tech Leads' resume review service helped many people + get shortlisted at top Bay Area companies. Their resume templates + are only $28 now (70% off) and tailored to your experience + level.

); @@ -52,9 +53,10 @@ function FAANGTechLeads({className, position}) {

Get shortlisted at FAANG
- FAANG Tech Leads' resume review service helped me get - shortlisted at top Bay Area companies. Their resume templates are - only $28 now (70% off) and tailored to your experience level. + FAANG Tech Leads' resume review service helped many people + get shortlisted at top Bay Area companies. Their resume templates + are only $28 now (70% off) and tailored to your experience + level.

); @@ -101,27 +103,6 @@ function Moonchaser({className, position}) { ); } -function Educative({className, position}) { - return ( - { - window.gtag('event', `educative.${position}.click`); - }}> -

- Looking to get hired at FAANG? -
- Educative offers many great courses to improve your interview - game. Join today for a 10% discount! -

-
- ); -} - function EducativeCoding({className, position}) { return ( 0.5 ? ( - ) : ( - ), }, @@ -86,9 +86,8 @@ export default [
With the help of Tech Interview Handbook, I was able to land offers from Google, Amazon, Uber and several other great companies. Really - appreciate Yangshun and other contributors for putting out such quality - content for the community. I'd wholeheartedly recommend this handbook to - anyone! + appreciate the contributors for putting out such quality content for the + community. I'd wholeheartedly recommend this handbook to anyone! ), }, diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 6f17ae3a91..3263453185 100755 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -136,7 +136,7 @@ function HeroSection() {

{siteConfig.title}

{siteConfig.tagline}
- Brought to you by FAANG engineers and the author of the{' '} + Brought to by the author of the{' '}
Blind 75 list @@ -192,20 +192,16 @@ function WhatIsThisSection() { technical interviews.

- As a Senior Software Engineer and Tech Lead at Meta/Facebook, I - have personally gone through the frustrating process of browsing - through many unorganized resources to prepare for my technical - interviews. + Having personally gone through the interviewing process, it was + frustrating to have to find resources from everywhere to prepare + for my technical interviews.

This handbook contains the essence of technical interviewing I - gathered over my last job hunt, which allowed me to clinch{' '} - - 9 offers out of 11 top Bay Area companies - {' '} - -{' '} - Facebook, Google, Airbnb, Palantir, Dropbox, Lyft - , and some startups! + gathered over my last job hunt, which allowed me to clinch 9 + offers out of 11 top Bay Area companies -{' '} + Google, Airbnb, Palantir, Dropbox, Lyft, and some + startups!

diff --git a/website/static/img/yangshun-resume.png b/website/static/img/yangshun-resume.png deleted file mode 100644 index e248a2bafad32a41244f0df0f5836ba834a6636f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148012 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 e~Zq$;^JwIn94~+%c3Y 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
  • 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 From af2391ad680b04e99c411b591fb13bc3926fe73a Mon Sep 17 00:00:00 2001 From: Yangshun Date: Wed, 9 Mar 2022 14:51:42 +0800 Subject: [PATCH 034/159] website: change fonts approach --- website/src/css/custom.css | 25 +++++++++++------- .../css/fonts/Inter-italic-latin.var.woff2 | Bin 0 -> 56536 bytes .../src/css/fonts/Inter-roman-latin.var.woff2 | Bin 0 -> 52468 bytes website/static/fonts/inter-var-latin.woff2 | Bin 36532 -> 0 bytes 4 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 website/src/css/fonts/Inter-italic-latin.var.woff2 create mode 100644 website/src/css/fonts/Inter-roman-latin.var.woff2 delete mode 100644 website/static/fonts/inter-var-latin.woff2 diff --git a/website/src/css/custom.css b/website/src/css/custom.css index 873217276f..6791f47cc9 100755 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -1,12 +1,19 @@ @font-face { - font-family: 'Inter'; + font-family: 'Inter var'; + font-weight: 100 900; + font-display: swap; font-style: normal; + font-named-instance: 'Regular'; + src: url('./fonts/Inter-roman-latin.var.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter var'; font-weight: 100 900; - font-display: optional; - src: url('/fonts/inter-var-latin.woff2') format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, - U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, - U+FEFF, U+FFFD; + font-display: swap; + font-style: italic; + font-named-instance: 'Italic'; + src: url('./fonts/Inter-italic-latin.var.woff2') format('woff2'); } :root { @@ -18,9 +25,9 @@ --ifm-color-primary-lighter: #8a8adf; --ifm-color-primary-lightest: #afafe9; - --ifm-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', - 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', - 'Helvetica Neue', sans-serif; + --ifm-font-family-base: 'Inter var', -apple-system, BlinkMacSystemFont, + 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', + 'Droid Sans', 'Helvetica Neue', sans-serif; --ifm-font-size-base: 16px; --ifm-footer-padding-vertical: 3rem; diff --git a/website/src/css/fonts/Inter-italic-latin.var.woff2 b/website/src/css/fonts/Inter-italic-latin.var.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e09a2014b3e19d2ed095b27fbf20a38943627729 GIT binary patch literal 56536 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�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 literal 0 HcmV?d00001 diff --git a/website/src/css/fonts/Inter-roman-latin.var.woff2 b/website/src/css/fonts/Inter-roman-latin.var.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..44fabcbc3c621676831967bdfd59fdb90f233a46 GIT binary patch literal 52468 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 wqV5)unU(v0=O>H866 Date: Wed, 9 Mar 2022 19:19:48 +0800 Subject: [PATCH 035/159] contents: use FAANG Tech Leads' resume checker --- contents/resume.md | 2 +- contents/resume/ats-proof-template.md | 8 +-- .../resume/free-tools-to-review-resume.md | 2 +- website/src/components/SidebarAd/index.js | 61 ++++++------------- 4 files changed, 25 insertions(+), 48 deletions(-) diff --git a/contents/resume.md b/contents/resume.md index fec0fcc0f7..51851d0198 100644 --- a/contents/resume.md +++ b/contents/resume.md @@ -40,6 +40,6 @@ When hiring fresh grads, I know that many of them will not have as much experien :::tip -Use this [resume parser tool](https://resume-parser.vercel.app/) to see how an industry-standard ATS parses your resume, then improve it accordingly! +Use this [resume parser tool by FAANG Tech Leads](https://www.faangtechleads.com/resume/check?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_parser&aff=1e80c401fe7e2) to see how an industry-standard ATS parses your resume, then improve it accordingly! ::: diff --git a/contents/resume/ats-proof-template.md b/contents/resume/ats-proof-template.md index debc4854e2..6b36f7375a 100644 --- a/contents/resume/ats-proof-template.md +++ b/contents/resume/ats-proof-template.md @@ -21,11 +21,11 @@ Most companies these days automate their resume screening process through Applic [FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering templates and references at only **$28 (70% off)**. -Their templates +Their templates are: -- Are created by ex-FAANG hiring managers based on top resumes received from thousands of candidate applications -- Have guaranteed readability by FAANG ATS -- Are tailored by experience level +- Created by ex-FAANG hiring managers based on top resumes received from thousands of candidate applications +- Guaranteed readability by FAANG ATS +- Catered to various experience levels They also offer resume references from candidates who have received multiple offers from Bay Area FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)! diff --git a/contents/resume/free-tools-to-review-resume.md b/contents/resume/free-tools-to-review-resume.md index 5fcaeebaf1..6a7c40c3d1 100644 --- a/contents/resume/free-tools-to-review-resume.md +++ b/contents/resume/free-tools-to-review-resume.md @@ -25,7 +25,7 @@ TopResume provides a [free all-in-one review](https://tidd.ly/3GxVIs9) of your r ## 2. Test readability with industry-standard ATS -Test the readability of your resume by an industry-standard ATS (Lever) using this [free resume parser tool](https://resume-parser.vercel.app/). Companies that use Lever for job apps include: Figma, Palantir, Netflix, Twitch, Yelp and several others. +Test the readability of your resume with an industry-standard ATS using this [free resume parser tool](https://www.faangtechleads.com/resume/check?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_parser&aff=1e80c401fe7e2) by FAANG Tech Leads. Most big companies (Figma, Palantir, Netflix, Twitch, Yelp and several others) use such resume parsers. ## 3. The plain text file test diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index 431f195b8f..e4e08f96c4 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -19,48 +19,25 @@ const BACKGROUNDS = [ ]; function FAANGTechLeads({className, position}) { - switch (position) { - case 'docs_bottom': - return ( - { - window.gtag('event', `faangtechleads.${position}.click`); - }}> -

    - Best resume service for FAANG -
    - FAANG Tech Leads' resume review service helped many people - get shortlisted at top Bay Area companies. Their resume templates - are only $28 now (70% off) and tailored to your experience - level. -

    - - ); - default: - return ( - { - window.gtag('event', `faangtechleads.${position}.click`); - }}> -

    - Get shortlisted at FAANG -
    - FAANG Tech Leads' resume review service helped many people - get shortlisted at top Bay Area companies. Their resume templates - are only $28 now (70% off) and tailored to your experience - level. -

    -
    - ); - } + return ( + { + window.gtag('event', `faangtechleads.${position}.click`); + }}> +

    + Craft the perfect resume for FAANG +
    + Save time crafting your resume with FAANG Tech Leads'{' '} + FAANG-ready resume templates and examples which have helped many + Software Engineers get shortlisted at top Bay Area companies. Grab their + resume templates now for only $28 (70% off)! +

    +
    + ); } function AlgoMonster({className, position}) { From abf8341c3f952fd8b98d219adaa088269dab4ffa Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 11 Mar 2022 07:32:43 +0800 Subject: [PATCH 036/159] misc: change partner taglines --- contents/resume/ats-proof-template.md | 14 +++--- website/src/components/SidebarAd/index.js | 27 ++++++----- .../components/SidebarAd/styles.module.css | 6 +++ website/src/pages/index.js | 47 ++++++++++++++++--- 4 files changed, 68 insertions(+), 26 deletions(-) diff --git a/contents/resume/ats-proof-template.md b/contents/resume/ats-proof-template.md index 6b36f7375a..4909e1e8b8 100644 --- a/contents/resume/ats-proof-template.md +++ b/contents/resume/ats-proof-template.md @@ -19,15 +19,15 @@ Most companies these days automate their resume screening process through Applic :::tip Expert tip -[FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering templates and references at only **$28 (70% off)**. +[FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering templates and references at only **70% off**. -Their templates are: +Their templates: -- Created by ex-FAANG hiring managers based on top resumes received from thousands of candidate applications -- Guaranteed readability by FAANG ATS -- Catered to various experience levels +- Are created by ex-FAANG hiring managers based on top resumes received from hundreds of candidate applications +- Guarantees readability by FAANG ATS +- Cater to various experience levels -They also offer resume references from candidates who have received multiple offers from Bay Area FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)! +They also offer resume references from candidates who have received multiple offers from FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)! ::: @@ -48,7 +48,7 @@ They also offer resume references from candidates who have received multiple off New fonts may convert letters into special characters which are not readable by the ATS. Fonts you should use - **Arial, Calibri, Garamond**. -Ensure your font size remains readable for humans later on in the hiring process - nothing less than the minimum size of **10px** for readability. +Ensure your font size remains readable for humans later on in the hiring process - use a minimum size of **10px** for readability. ## Add sections with standard headings and ordering diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index e4e08f96c4..fe0a44d22e 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -29,12 +29,13 @@ function FAANGTechLeads({className, position}) { window.gtag('event', `faangtechleads.${position}.click`); }}>

    - Craft the perfect resume for FAANG -
    + + Craft the perfect resume for FAANG + Save time crafting your resume with FAANG Tech Leads'{' '} FAANG-ready resume templates and examples which have helped many - Software Engineers get shortlisted at top Bay Area companies. Grab their - resume templates now for only $28 (70% off)! + Software Engineers get interviews at top Bay Area companies. Grab them + now for a whopping 70% off!

    ); @@ -51,8 +52,9 @@ function AlgoMonster({className, position}) { window.gtag('event', `algomonster.${position}.click`); }}>

    - Stop grinding and study with a plan! -
    + + Stop grinding. Study with a plan + Developed by Google engineers, AlgoMonster is the fastest way to get a software engineering job. Join today for a 70% discount!!

    @@ -72,9 +74,10 @@ function Moonchaser({className, position}) { window.gtag('event', `moonchaser.${position}.click`); }}>

    - Get paid more. Receive risk-free salary negotiation - advice from Moonchaser. You pay nothing unless your offer is - increased. Book a free consultation today! + Get paid more. Receive + risk-free salary negotiation advice from Moonchaser. You pay + nothing unless your offer is increased.{' '} + Book a free consultation today!

    ); @@ -92,8 +95,7 @@ function EducativeCoding({className, position}) { window.gtag('event', `educative.coding.${position}.click`); }}>

    - Get the job at FAANG -
    + Get the job at FAANG "Grokking the Coding Interview: Patterns for Coding Questions" by Educative is the best course for improving your algorithms interview game. Join today for a 10% discount! @@ -114,8 +116,7 @@ function EducativeSystemDesign({className, position}) { window.gtag('event', `educative.system_design.${position}.click`); }}>

    - Get the job at FAANG -
    + Get the job at FAANG "Grokking the System Design Interview" by Educative is a highly recommended course for improving your system design interview game.{' '} Join today for a 10% discount! diff --git a/website/src/components/SidebarAd/styles.module.css b/website/src/components/SidebarAd/styles.module.css index 2de2e52de2..c262ebb878 100644 --- a/website/src/components/SidebarAd/styles.module.css +++ b/website/src/components/SidebarAd/styles.module.css @@ -61,6 +61,12 @@ margin-bottom: 0; } +.title { + display: block; + font-size: 0.8rem; + margin-bottom: 0.1rem; +} + .logo { width: 96px; } diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 3263453185..269fcc1a1c 100755 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -112,9 +112,9 @@ function Home() { - + - + @@ -434,7 +434,7 @@ function FeaturesSection() { function EducativeSection() { return ( -

    +
    @@ -442,9 +442,9 @@ function EducativeSection() {

    - Looking to get hired at FAANG? Educative offers a ton of - great courses to improve your interview game. Join today for - a 10% discount! + Looking to get hired at FAANG? Educative's interview courses + helped many people get the job at FAANG. Join today for a + 10% discount!

    @@ -467,6 +467,41 @@ function EducativeSection() {
    ); } +function AlgoMonsterSection() { + return ( +
    +
    +
    +
    +
    +
    +

    + + Developed by Google engineers, AlgoMonster is the fastest + way to get a software engineering job. Join today for a 70% + discount! + +

    + +
    +
    +
    +
    +
    +
    + ); +} function TweetsSection() { return ( From 7d2ecb8bf0a1c305d701334ac28ef019113de841 Mon Sep 17 00:00:00 2001 From: Yangshun Date: Fri, 11 Mar 2022 08:16:09 +0800 Subject: [PATCH 037/159] contents: fix grammar in resume sections --- contents/resume/ats-proof-template.md | 6 +++--- contents/resume/free-tools-to-review-resume.md | 2 +- contents/resume/optimize-resume.md | 12 ++++++------ contents/resume/write-effective-content.md | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/contents/resume/ats-proof-template.md b/contents/resume/ats-proof-template.md index 4909e1e8b8..b89b97dd69 100644 --- a/contents/resume/ats-proof-template.md +++ b/contents/resume/ats-proof-template.md @@ -19,15 +19,15 @@ Most companies these days automate their resume screening process through Applic :::tip Expert tip -[FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering templates and references at only **70% off**. +[FAANG Tech Leads](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2) is currently offering resume templates and references at **70% off**. Their templates: - Are created by ex-FAANG hiring managers based on top resumes received from hundreds of candidate applications -- Guarantees readability by FAANG ATS +- Guarantee readability by FAANG ATS - Cater to various experience levels -They also offer resume references from candidates who have received multiple offers from FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)! +They also offer resume examples/references from candidates who have received multiple offers from FAANG companies - which are helpful in helping you craft content that meets the same bar. [Check it out](https://www.faangtechleads.com?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=ats_template&aff=1e80c401fe7e2)! ::: diff --git a/contents/resume/free-tools-to-review-resume.md b/contents/resume/free-tools-to-review-resume.md index 6a7c40c3d1..54144b0613 100644 --- a/contents/resume/free-tools-to-review-resume.md +++ b/contents/resume/free-tools-to-review-resume.md @@ -25,7 +25,7 @@ TopResume provides a [free all-in-one review](https://tidd.ly/3GxVIs9) of your r ## 2. Test readability with industry-standard ATS -Test the readability of your resume with an industry-standard ATS using this [free resume parser tool](https://www.faangtechleads.com/resume/check?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_parser&aff=1e80c401fe7e2) by FAANG Tech Leads. Most big companies (Figma, Palantir, Netflix, Twitch, Yelp and several others) use such resume parsers. +Test the readability and formatting of your resume using [FAANG Tech Leads' free resume parser tool](https://www.faangtechleads.com/resume/check?utm_source=techinterviewhandbook&utm_medium=referral&utm_content=resume_parser&aff=1e80c401fe7e2). Most big companies use such resume parsers, including but not limited to Figma, Palantir, Netflix, Twitch, and Yelp. ## 3. The plain text file test diff --git a/contents/resume/optimize-resume.md b/contents/resume/optimize-resume.md index a8b44a30a3..bd8160f837 100644 --- a/contents/resume/optimize-resume.md +++ b/contents/resume/optimize-resume.md @@ -23,7 +23,7 @@ With the basic resume up, we can next try to optimize the resume content. Here a **Do's** -- Including more points of "average" achievements in your resume is worse than just minimizing to a few points of your best achievements to better highlight them +- Highlighting a few of your best achievements is better than including many "average" achievements in your resume - Use only 1 page for your resume **Don'ts** @@ -32,7 +32,7 @@ With the basic resume up, we can next try to optimize the resume content. Here a ## 2. Keyword optimization -Imagine you are a hiring manager or recruiter screening a resume while juggling many other tasks in your job - you simply won't have much time on each resume! When a hiring manager is looking at any resume, they are in fact quickly scanning for keywords of skills or experiences that they value, before paying any additional attention to your resume. +Imagine you are a hiring manager or recruiter screening a resume while juggling many other tasks in your job - you simply won't have much time on each resume! When a hiring manager looks at a resume, they are in fact quickly scanning for keywords of skills or experiences that they value, before paying any additional attention to your resume. Recruiters and ATS do that as well, but based on the job description that the hiring manager helped to write. That is why optimizing your resume based on job descriptions is very important. @@ -50,7 +50,7 @@ You should always analyze the job description for must-have and good-to-have ski Include them under the "Skills" section and pepper the same keywords into the "Work Experience" and "Education" sections. Be sure to closely imitate the language within the job description. -Remember to include common abbreviations as well e.g. "SEM" - Search engine marketing +Remember to include the full version of common abbreviations as well. E.g. Amazon Web Services instead of AWS, Google Cloud Platform instead of GCP. However, do not do keyword stuffing for the sake of it - always remember that the resume will be read by a recruiter or hiring manager eventually. @@ -62,9 +62,9 @@ Analyze the job description and determine how important each skill and experienc While optimizing for every application is ideal, you can generalize your resume to a type of position. -- First, collate 3 to 5 job descriptions for that position -- Then, copy and paste them into a .txt file and upload it into a free word and phrase frequency tool like Online-Utility.org's [Text Analyzer](https://www.online-utility.org/text/analyzer.jsp) to identify regularly used keywords -- Incorporate skills and experiences that you have into the resume +1. Collate 3 to 5 job descriptions for that position +1. Copy and paste them into a `.txt` file and upload it into a free "word and phrase" frequency tool like [Online-Utility.org's Text Analyzer](https://www.online-utility.org/text/analyzer.jsp) to identify regularly used keywords +1. Incorporate skills and experiences that you have into the resume ::: diff --git a/contents/resume/write-effective-content.md b/contents/resume/write-effective-content.md index 1f54c48958..9b0d31ec21 100644 --- a/contents/resume/write-effective-content.md +++ b/contents/resume/write-effective-content.md @@ -34,7 +34,7 @@ It is daunting to start on a fresh slate, so I recommend you start by making a l :::tip Expert tip -To maximize efficiency in applying for several job types, create and keep updated a "Master resume" which you basically use to maintain an exhaustive list of all points under every section of your resume. When applying for each job, you can make a copy of the Master and eliminate or optimize points as necessary. +To maximize efficiency in applying for several job types, create and keep a "Master resume" updated which will basically contain an exhaustive list of all points under every section of your resume. When applying for each job, you can make a copy of the Master document and eliminate or optimize points as necessary. ::: From b5edb26c2e7a8efd70be62d46abbc3efd725181f Mon Sep 17 00:00:00 2001 From: Yangshun Date: Mon, 14 Mar 2022 13:42:56 +0800 Subject: [PATCH 038/159] website: add MSFT Imagine Cup tweet --- website/src/pages/index.js | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 269fcc1a1c..fa572174a1 100755 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -563,6 +563,20 @@ function TweetsSection() { />
    + + Ready to rock your #Coding interviews? Follow along as + @yangshunz shares tips on how to land your dream job from + personal experience. + + } + /> } /> - Nice open source tech interview handbook} - />
    } /> + Nice open source tech interview handbook} + />
    From f8526136e28c1e83470c508fcf78e7c9f4f589eb Mon Sep 17 00:00:00 2001 From: Yangshun Date: Wed, 16 Mar 2022 09:51:38 +0800 Subject: [PATCH 039/159] website: add Carbon --- website/src/components/SidebarAd/index.js | 1 - website/src/css/custom.css | 62 +++++++++++++++++++++++ website/src/theme/DocItem/index.js | 9 +++- 3 files changed, 70 insertions(+), 2 deletions(-) diff --git a/website/src/components/SidebarAd/index.js b/website/src/components/SidebarAd/index.js index fe0a44d22e..ba38ef30ad 100644 --- a/website/src/components/SidebarAd/index.js +++ b/website/src/components/SidebarAd/index.js @@ -1,5 +1,4 @@ import React from 'react'; -import ReactDOM from 'react-dom'; import BrowserOnly from '@docusaurus/BrowserOnly'; import clsx from 'clsx'; diff --git a/website/src/css/custom.css b/website/src/css/custom.css index 6791f47cc9..b19942f054 100755 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -159,3 +159,65 @@ html[data-theme='dark'] .navbar-icon-telegram:before { height: 28px; width: 24px; } + +#carbonads * { + margin: initial; + padding: initial; +} +#carbonads { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, Arial, + sans-serif; +} +#carbonads { + display: flex; + max-width: 330px; + background-color: hsl(0, 0%, 98%); + box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.1); + z-index: 100; +} +#carbonads a { + color: inherit; + text-decoration: none; +} +#carbonads a:hover { + color: inherit; +} +#carbonads span { + position: relative; + display: block; + overflow: hidden; +} +#carbonads .carbon-wrap { + display: flex; +} +#carbonads .carbon-img { + display: block; + margin: 0; + line-height: 1; +} +#carbonads .carbon-img img { + display: block; +} +#carbonads .carbon-text { + font-size: 13px; + padding: 10px; + margin-bottom: 16px; + line-height: 1.5; + text-align: left; +} +#carbonads .carbon-poweredby { + display: block; + padding: 6px 8px; + background: #f1f1f2; + text-align: center; + text-transform: uppercase; + letter-spacing: 0.5px; + font-weight: 600; + font-size: 8px; + line-height: 1; + border-top-left-radius: 3px; + position: absolute; + bottom: 0; + right: 0; +} diff --git a/website/src/theme/DocItem/index.js b/website/src/theme/DocItem/index.js index d0f7e61925..10148ec320 100644 --- a/website/src/theme/DocItem/index.js +++ b/website/src/theme/DocItem/index.js @@ -78,7 +78,14 @@ export default function DocItem(props) { {title} )} - +
    + + +A while ago this tweet went viral in the Chinese programming circle. The tweet author used this exact question to screen new grads for an entry-level software engineer position. The tweet and the question were written in Chinese so I translated this question into English. + +In the tweet, he complained that he was having a hard time understanding (很难理解) why many students came up with the solution that we came up with above. Instead of a straightforward solution with a bunch of `if` statements, he said he was expecting an answer like this: + +![alt](https://pbs.twimg.com/media/E_IiA2JVIAcZSSk?format=png&name=900x900) + +Compared to the first solution with a bunch of `if` statements, this solution, in his opinion, is more **modular, extensible, and maintainable**. That was the answer he had in mind and failing to arrive at this solution means you are weeded out in the interview process. + +I am not sure how you feel about this, but in my opinion, this is a pretty pointless interview question to ask new grads. The first solution is totally fine. Under the right circumstances, the second solution is closer to what you would want in production code, even though it is still not quite the [table-driven development](#table-driven-development) you'd want. + +There are so many things I want to unpack, so here is the tl;dr: + +1. Different types/styles of interviews call for different answers and that should be clearly communicated during the interview. The first solution is totally fine as the answer to an algorithmic question. +2. Take control of your interview so you don't have to guess what the interviewer has in mind. You do this by asking clarifying questions. **Keep asking until everything the interviewer is looking for is clear to you**. +3. The table-driven method (what the second solution tries to achieve) **optimizes for changes** and that's why the interviewer (the tweet author) failed students who didn't come up with that answer. + +The overarching theme in this post is that you should take control of your coding interview so you don't have to guess the answer your interviewer is thinking of. + +## Different styles of interviews calls for different answers + +Generally, there are two types of coding interviews: + +1. Interviews that focus on **algorithms & data structures** +2. Interviews that focus on **practical app/feature-building** and test your hands-on engineering chops + +Normally it should be easy to distinguish between these two types of interviews by merely looking at the question: [Inverting a Binary Tree](https://leetcode.com/problems/invert-binary-tree/) is a typical algorithmic question, while designing and implementing an auto-complete search feature is more about practical app-building. Although sometimes the two types of interview questions would blend. For example, you might be asked to (partially) implement a [trie](https://en.wikipedia.org/wiki/Trie) when you are talking about the design of an auto-complete search feature/service/component. But these two different types of interviews are meant to test different competences. + +In a pure algorithmic, LeetCode-type of interviews, your **main goal** is to leverage the right data structures and come up with an efficient algorithm to solve the problem with the right set of memory/runtime complexity trade-offs **as fast as you can**. How readable, maintainable and extensible your code is, or whether it conforms to the current best practice in the the community/industry are _not_ that important, or at least secondary to the main goal. You can go ahead and name your variables `i`, `n`, `p`, `q` and mutate that input array in-place without being judged as long as your solution passes the test cases under the time and memory limits. + +> As [Joel Spolsky](https://www.joelonsoftware.com/) wrote in his [blog post](https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guide-to-interviewing-version-30/): with the algorithmic interview questions, he wants to see if the candidate is smart enough to "rip through a recursive algorithm in seconds, or implement linked-list manipulation functions using pointers as fast as you can write on the whiteboard". + +For more experienced engineers/developers, the coding interview tends to lean into the practical app-building category, where **readable, maintainable code and extensible program structure** are what they look for, and all aspects of the full software development life cycle, even including error handling, are fair game to be asked, as they are important in real-world software building. + +Here I don't make any value judgment about which type of interviews are good or better. I just pointed out that they exist and interviewers look for different things by conducting different types of interviews. + +### Take control over the interview + +As an interviewee, you want to make sure you understand **which category the question falls into** because the underlying core criteria on which you are assessed are different – you don't want to overload the capacity of the working memory of your brain with tasks that are secondary before you reach the main goal. You want to take control over the interview so you are not left in the dark. + +One way to take control over the interview is to **narrate your thoughts** as you go and **articulate any assumptions** you have to make sure you get confirmation from your interviewer on your way forward or they should help you correct course. + +If I were the candidate receiving this exact question, I would ask this upfront: "should I write production-grade code with good engineering practices or you are more interested in how I'd tackle the algorithm & data structure part?". That is probably one of the highest ROI questions we can ask during an interview. The interviewer would either tell me to write a workable solution under the constraints of the runtime or space characteristics or treat this as a real-world engineering problem with real-world tradeoffs. + +### With all that being said, it is a bad question to ask new grads + +The question itself doesn't test any of the core competencies that distinguish between brilliant programmers and mediocre ones. What's really being tested here, based on the (ideal) answer the interviewer (the author of the tweet) had in mind, is the whether the candidate – **new CS grads** without any significant experience working in the software industry – knows how to use the table-driven method to implement such a function. + +I don't believe that any smart college student who can breeze through a graph traversal problem in an interview can't understand and pick up patterns like the table-driven method in just a couple of hours. On the other hand, any mediocre programmers who happened to read _[Code Complete](https://en.wikipedia.org/wiki/Code_Complete)_ can write a table-driven solution and pass the interview. Not to say that knowing good engineering practices is not a good thing; it is just that using that as the **only** hiring criteria to hire new grads is pointless and it doesn't help you find the smart kids. + +
    +So what are the ideal interview quetsions to ask new grads? + +Joel pointed it out [in his post](https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guide-to-interviewing-version-30/) that the ideal interview questions should cover at least one of these two Computer Science concepts: 1. recursion 2. pointers + +I actually agree with him on this. You want to ask questions about these two concepts not because they are ubiquitous in your average codebase and you have to use them every day. It is because they are a great tool to test the ability to reason and think in abstractions, the kind of mental aptitude a brilliant programmer would have. + +
    + +Anyway, the moral of the story is don't be afraid to ask clarifying questions so you don't have to guess what the interviewer looks for and cares about if they are not being explicit about their expectations. + +> You can stop here if you don't care about technical discussions about this simple interview question. + +## Table-driven development + +Solution 2 resembles a form of table-driven development described in a classic programming book called _[Code Complete](https://en.wikipedia.org/wiki/Code_Complete)_. But even if you have never read the book, you probably know this pattern from your experience working as a software developer/engineer. + +At its core, it tries to separate **data** from **logic**: instead of having all the information about pricing strategy (the data) hardcoded in the function (the logic) as literal values, it separates them. + +The pricing strategy is a business rule, and business rules tend to be the source of frequent changes. By encoding that in an external data structure (i.e. the array `priceMap` in this case), we make our program easier to accommodate future changes. Whenever the pricing strategy changes, we can just modify the entries in the array without touching the logic of the function. In other words, we isolate the unstable part, so the effect of a change will be limited. + +However, I said it only resembles table-driven development that you'd use in production code but it is not quite there yet: + +1. The pricing data is not fully separated from the logic as the array `priceMap` is still defined within the function +2. Magic numbers are still there + +Depending on where the pricing data comes from, one possible variation of the table-driven method for this particular question is as follows: + +```javascript +// config.js +export const priceByRanges = [ + {min: 1, max: 5, price: '5'}, + {min: 6, max: 10, price: '4'}, + {min: 11, max: 20, price: '3'}, + {min: 21, max: Number.MAX_SAFE_INTEGER, price: '2.5'}, +]; + +// app.js +import {priceByRanges} from './config.js'; + +function getPrice(amount) { + // error handling for amount outside the range + return priceByRanges.find( + (priceByRange) => amount >= priceByRange.min && amount <= priceByRange.max, + ).price; +} +``` + +Now the pricing data is stored in `config.js` seperately and `priceByRanges` is resolved at load time. + +### Further optimization + +If the array `priceByRanges` is always sorted in terms of the price ranges, we can further optimize Solution 2 by leveraging binary search. + +```javascript +const priceByRanges = [ + {min: 1, max: 5, price: '5'}, + {min: 6, max: 10, price: '4'}, + {min: 11, max: 20, price: '3'}, + {min: 21, max: Number.MAX_SAFE_INTEGER, price: '2.5'}, +]; + +function getPrice(amount) { + if (amount < priceByRanges[0].min) { + return 'unknown price'; + } + + let start = 0, + end = priceByRanges.length - 1; + + while (start <= end) { + const mid = (start + end) >>> 1; + if (priceByRanges[mid].max < amount) { + start = mid + 1; + } else { + end = mid - 1; + } + } + + return priceByRanges[start].price; +} +``` + +
    What is this >>>? + +`>>>` is binary right shift by 1 position, which is effectively just a division by 2 followed with a `Math.floor`. e.g. for 11: 1011 -> 101 results to 5. + +
    + +### Notes on performance and Big O + +It might feel that the first clumsy solution with a bunch of `if` blocks is better in terms of the performance than the second table-driven approach that _loops_ through the array. + +Actually for the Big O analysis, both approaches have the **same constant time complexity**, as the number of operations (i.e. comparision between `amount` and the price range), doesn't grow no matter how big the input is (i.e. `amount`). + +What's more interesting, in my opinion, is the performance implications between using a loop vs. "unrolling" the loop. By unrolling I mean discretely writing line-by-line of the loop body. [A quick google search](https://stackoverflow.com/questions/38111355/javascript-are-loops-faster-than-discretely-writing-line-by-line) suggests that popular JavaScript engines such as V8 heavily optimize loops. But getting any accurate results from such a micro-benchmarking is really hard as the performance varies a lot depending on different factors like the engine and the code in the loop body. diff --git a/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md b/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md new file mode 100644 index 0000000000..91d1454559 --- /dev/null +++ b/website/blog/2022-04-21-why-you-should-include-debugging-in-the-interview-process.md @@ -0,0 +1,72 @@ +--- +title: Why You Should Include Debugging In The Interview Process +slug: why-you-should-include-debugging-in-the-interview-process +author: Zhenghao He +author_title: Senior Software Engineer at Instacart +author_url: https://twitter.com/he_zhenghao +author_image_url: https://pbs.twimg.com/profile_images/1489749168767660032/M_us3Mu2_400x400.jpg +tags: [interview, debugging] +--- + +
    + +:::tip + +See discussions on [Hacker News](https://news.ycombinator.com/item?id=31125269) + +::: + +## Most technical interviews are over-indexing on coding + +Over the past two years, I have interviewed with over 10 different tech companies ranging from hot startups like Coinbase, Stripe, and Instacart to FAANG companies like Amazon and Meta, for Software Engineer positions of various levels. + +The technical interview processes I have had all consisted of at least two rounds of coding interviews, where I either had to solve an **algorithmic, LeetCode-type** question or build a **practical app/feature**. During those coding interviews, I always started with an _empty slate_: if it was an algorithm-heavy interview question, there would be a literally empty file in the editor for me to start writing code; if it was a practical app building exercise, there might be some boilerplate code or some utilities/helper functions available but still I was expected to build the app/feature from scratch. + + + +I do think they did a good job at assessing my coding ability. But the issue I see here is that the standard interview process in our industry has over-indexed on coding ability along. As a software engineer, apart from meetings and writing design docs, I’d say at least half of my programming work isn’t just coding – the other half largely involves searching through a codebase and reading existing code or code-adjacent artifacts like error messages, tests, and logs. And oftentimes, coding isn’t the hardest part. + +## What is programming exactly + +Programming is a complex task so it makes sense to dissect it so we can study the different phases, dimensions and components of it individually. + +I have been reading [_The Programmer's Brain_](https://www.manning.com/books/the-programmers-brain) by Felienne Hermans. It is a book about the cognitive process involved in programming. Felienne divides programming into five more concrete activities: **searching, comprehension, transcribing, incrementation, and exploration**. + +Searching is the activity where a programmer is looking for a specific piece of information in a codebase, such as the precise location of a bug you need to fix in the code. + +Comprehension is reading the code to understand its functionality and the way it is intended to work. It also involves executing the code and observing the results. + +Transcribing is about converting your thoughts or solutions to executable code. This is what we usually refer to as **"coding"** and is what the current standard coding interview process only focuses on. + +Incrementation is about incrementing (iterating) on an existing codebase, such as adding a new feature. It is a mix of the previous activities, where a programmer has to search, comprehend and transcribe their thoughts to code. + +Exploration is sketching and prototyping with code. Try things and use code as a means of thought. It is also a mix of the previous activities. + +With this newfound knowledge, it is not hard to tell what exactly the current standard interview process lacks. Activities such as searching and comprehension are completely left out and you have no way to prove your competencies needed for a big part of a software engineer job. + +It begs the question of what we can do to complement the interview process to cover all these activities. And the answer is to add a **debugging interview** in the process. + +## Debugging is all-encompassing + +When one is debugging, they engage in **all five activities**. It entails a sequence of searching, comprehension, exploration and writing code. And it is incredibly revealing to watch one debug: + +1. Are they debugging with a plan, iteratively bisecting the code or just randomly tweaking the code? +2. How are they navigating their way through an unfamiliar codebase, forming different hypotheses about the bug? +3. Do they try to write a test that reliably reproduces the issue? +4. Are they able to find where things are diverging and trace to the root cause? +5. Are they familiar with the IDE or editor they are using and know how to use tools like breakpoints and watches to step through the code? +6. Do they understand how to read error messages and leverage stack traces? +7. Are they able to implement a fix at the end? +8. ...the list goes on and on + +On top of its comprehensiveness, debugging is what software engineers do on a regular basis. It is relevant to the actual work. + +Out of all the companies I have interviewed for, _only_ Stripe conducted a debugging interview. They call it Bug Squash, where you’d dive into a large, well-written library codebase to fix real-world open-source bugs. I had a blast going through that interview which I can’t say about boring LeetCode questions. + +Granted, preparing such a debugging interview involves more work for the company than just throwing a LeetCode question at the candidate. Still, having that in the process gives you more signals for selecting capable, experienced engineers. I hope more companies start to embrace that in their hiring process. + +## Further reading that can make you better at debugging + +- [_Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems_](https://www.goodreads.com/book/show/3938178-debugging) by Dave Agans +- [_Debugging Software_](https://blog.isquaredsoftware.com/2021/06/presentations-debugging-software/) by Mark Erikson +- [_How I got better at debugging_](https://jvns.ca/blog/2015/11/22/how-i-got-better-at-debugging/) by Julia Evans diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 9bbf7c2f53..0871f4b316 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -185,6 +185,9 @@ module.exports = { gtag: { trackingID: 'UA-44622716-2', }, + blog: { + blogSidebarCount: 15, + }, }, ], ], From 6131f64e71dc24e7cfd48e0b68bbabd028efea0b Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Thu, 5 May 2022 11:12:38 +0800 Subject: [PATCH 103/159] website: add Rosa's success story --- website/src/data/successStories.js | 16 ++++++++++++++++ website/static/img/rosa.png | Bin 0 -> 113159 bytes 2 files changed, 16 insertions(+) create mode 100644 website/static/img/rosa.png diff --git a/website/src/data/successStories.js b/website/src/data/successStories.js index cbb6ca2aff..f1d028d188 100644 --- a/website/src/data/successStories.js +++ b/website/src/data/successStories.js @@ -65,6 +65,22 @@ export default [ ), }, + { + name: 'Rosa Tamarindus', + title: 'Software Engineer, Amazon', + thumbnail: '/img/rosa.png', + quote: ( + <> + I'm so grateful to know this amazing "Tech Interview Handbook"! It + really helped me to understand the entire recruitment process starting + from the very beginning stage until getting the offer (and negotiation). + Furthermore, I really love "Algorithms study cheatsheets" section since + it's really concise and helpful. Following the advice in this handbook + helps me to ace and get the offers from FAANG and other top tech + companies. + + ), + }, { name: 'Kevin Huang', title: 'Software Engineer, Uber', diff --git a/website/static/img/rosa.png b/website/static/img/rosa.png new file mode 100644 index 0000000000000000000000000000000000000000..59e9055d3b5c21b9ee1c76297f1230b339a98368 GIT binary patch literal 113159 zcmY(p2UL^6vo{3L>{^L&tkN$so9lTfn zqjL`ch;RT9{EyD3fAl|((!cf}oByWx`FQ^iG5_BG)y4zl zJS2RjS^rBz;vfGXF&`_-f2nvnNwXTNYq7|K+-+Dyc=>txS!Euwu&_wEf3}s-d9Uz4 z=Kp%qtoELst`dBFK0ZFYK0>@8cRM}-adB}zenCD#L7smaJRW{7o|e8mE*@e`)^zWdGwwitj(p|38!Y?@0ek`Y%+Ohf;k1``Tn4 z(whAx0s!6ul;6wg`Qm}w{VJ-AywhQ0z8l6KJ_fCerY?(1&{}+GWR3i=1wqK$dujJx z4Za9vef&b_T@iuS`===cN>(o)KTf8&NAaA3;HiA%oh#ithTk*@5l`42)35T@U#;7- z;ElhF0UEg*usOtrG>qi5{Q!1m_6JniSnAXH=PW1Ziabuk+s7MTh(=p>{Bd*k^YMA1 zEn7flot>SnMwh2okQbYiR7hv~l1Um&b2A_*N6yN;Z9E<4@HZ7Q&z+0AERgLY?k|Ic z5t&N6#WP9KTwPraabT^LN%tI5p31H%^94j{v!5uEGk>iWLgw#kPywg>DU>Lu#-azH ztRLc}1kxDMacwk99sLcU_3g}6gH(=Ud%*$@C{Fr?tP=FYVM47Yq#P-H6CLL@R1(*D z)3`k0S@C48u0Lv|sk>9MCX6I&W7$Z&79BaiiffPmVqe2{dbP(cah z#Fm27nnf3gF)aHUh!1a|hcj@K6kaE9{}!+fq!>uheUAB;TBwY!_tG{a=h0C?^KSfKqPad40E%u$O1X4FX3&^&a{(&%!MxZ7EE z%P1j1pfPChBY7IQc7RQpN!sR5!hCM_<-WFqJkEQ3L3`cN)fH_Fj?(K+b5|80 z>6>T`&Gj`B*)Ly(PkS^gsq1G=Z|&m?(T*3>U2jCI)=8Y(F%`5NX{^?Ma6y|@{J=7e zq-&LevT}0vBMTrlMz}tVvXg;r5)Bx1`mIGZN#@Do*I@DxH#h-!j`BM3_PMMOJ)!uP z!Jxe9sA{LK^QVyarJD$k7UYK59YzfWw)r2(7;@m`37;SMLit*5~l&FexFVq z{|=mD*9;ycemFdDa*c`aGadM%KLdt4o(c@XRd8Ubj+|Oz>^}XY>=!Cb&cm?Q%%1Ny))qWC&j5| z=x-7E#~P-Nh}e~i;kt4i%aZ=S9#VTSZ~?BpT;~Z)sO+r-5|+E2w3B&B?^eT~aR;&{ z5Dm~s2`UUbXp&>4V^KwF{HkM)*4*F^FS5!tmj$URea84`ugZJ}GeW-R#0i`uc=A?> z+_#O)1lXnw|Aqz91z&6TH9)L&(p)|oK#xBuN;2%_0XK>V!$_#zK|`w4$mWYj4Zu>M zQ4rjXL?(?ZD*!NQJn^xFASK1a*H@pVJr8!1R1n(-ifUPP0+x$cpu zH=BrCdfo_|XycNa0ywf-u;#e}`C90oKb%AAa$A?wcLVgsjYZML<;K~4MER$!H|Tm9 z=cMZ%mtov+qq)0EIrY-4Q_e4^DQjePW%a>wC^4L>e785N4klG^Ha}E_%c%jW8C^%u z;&>+g*Kt(Ap_K1;7=8Ng^IT4<)8|x`xAMdMpZGH8lo%{eG=Ly4rRQy~Vi|9A?gWC5 z8@)p0+pl`EhSQeHI1YwtPn)kD+TlK$P`av|ew9bkbH5%h`Oo_r$qiXzCj}S*;p%P_ zOT1(Jx;b{Q-Bw^c0+Ku%-=Vd|dD|!Nb^6|_Zx8I?F=a#cj}^8X7&|0%QshM=PCiAt zheN^zpQ@GfpG?oVOg+;bTO@uiD>#|THlW(teD?Yicy6Ciw!1gIDwk6x`OLc}@Sr1# z!GEBaOYP(`A-zfT^w>bw{kNzWxT|jTxooXohy8JwjhmDNCurL{C)Fi=;HVy`HrN1k zrp&9a6g)>ZyERt4i;KZ@iWpP1pNf-EA46Z}Vyeomb!7IEKQ$U(P%xf|NkDZZbU`S( z(w#(}*0ih+aKe0$^B|REubs_94v!G*TE^yuC9{|;qVN1G7)hy$Sj2l;_xtsGW&9VC zNPogef>c1>;=&>A;|~Ts4H677U8(b8Ye=4o3IcouNkk~OcY>%*tv#*7s%t;w+ne)) ztkw5Lqi;fJF2BQdv`K~H)NBvgZQ#!}nN8hVD>NL9jc$Ij<%Aq=lM4Khc1SA?04m!y zhV^!j_0$a~dM6dX@IIE!02)XrQs8o|N?&))wics?TE1cu~(#q!45Ff$SMuFSeBT6 zPU$q&tgwY zh)vawpT^C;i*hzBWe($fE;!rkK1n3`WnqXe_4CWR-v(2mvM2McOkq zE?>(Au*Adfq1{5?-Pwus36o@WKx#+x;me^cI2)(aFDX+Bz$N8Wfg3^10f{?w%sWh| zKU7oGWoQoso^SZTKQ!myXWeJTxEHWnfI8=@>W($v?1>m0V9jf)wBYkiV^*!C&Wbs<^hSULu;vw2BSXGwPo6x>%BC(Y;v7>R;W8jpT*^UA5qo&YPw0=%xu7L9DE(> zvWwVl@=#Wgwzjzt7eG=UF~LH-qzas>C%r8Z@Qxn_`t-CfC`CMOX>aX8>Q_|eUL*M85ITJ9Ngoa$YYjJ(lv`%IF zJH)1}S@VYN- z^l)pJZIg@HnElTj9p|uGwxL4hiQ?tj;{J%7bjj9v$KW;2bi*9y`$_uRbjQyYDye;0BHg2-osSlq%ZR`IrCx;Vlnb_k@4Lw)Vc|)NGAZu$zz_k@Zwv8e zE;rMLVn#?g^U&sv?Z)=(M7owS5}A`l!)O;Udny@M(q|Sh0sXaXx2JbfM*d*CF&^kN zk-`jOTNDzGSvKz( zQjIQQAN zKPc+da)DcRHshI7jKS?5GESJPhr&bs-RH&LZwd?E)TpJ%y(Q7z@72|pi7ht7IYlvD z6Uw*Itx;K0;9VFh@HvPp54cEJDHYD+;VCYzku8$4t7~^Gkvu4QE1~`MRo-u68Be2L z@*wMXPEr@!$7?mqUw{3|O_P^LrD$$m*60jWN`!fpz=ms6sWm@c$q7J{sK=V5ObAkD zsCAJBu)rKl-B*pi!XV$*ugxzfr3BsbZ3?2Ci4&xA)9yCCR7mv%pG|A}!Bg?d9wFwY zJ6UkFV1m{B+chj+E+irRv7MvFcTBg|3kf@W3T3OAo;_bS zGF9VAe^I-lF9u-O2P_k5z^wtlv23{EREE0Ce{?)gfG5V)0(*&hc zOu9k>QM&t;V1dRM>$XTGk%O~*Y_)}d+Td^MPAhHA=5daGYiQ@VQ}fziYe8=fjvq7UN>s?_!|^WV>sefE-bwee8fM1ck&cPyH?&1k z!@E<=+R}tT^zoSwq}>NyGbBI@>k&rhlObh+wBzcPSr3^5S&0b+jR3K*F0|N51;u?A zA_9Ao*P8euZvpGS4N(N&IApnUjadg*-=rDOS-guM`CN+calwYtgC;vwJB(Au3C0f< z$GyLxS)Ap7?I((H$850bX2yD7F);(z*ocSHcv)z1U<~yO?;q@Y8Fzj^|qcS+j^l~YjF%)M<(Zo}D1Kc)^yY6Av zUBtZNB-%b8vbh8IP&zO+oTg;$Lwx5p zi1MT)L(v>z?M_0JnMSQ}R^emLlPiJ|BHTUTJ_V}Y4RP2|B>Qn(6oq{}p6+^3)sUph zYc?PZ#Z4H+PAQf%V{?)xG40=zg-5r)}ew^S%Ox`BUd>K7DG#3!Ahw zk48)357^&i{muVV`r6M|t+X~94{WlU<kA$6nXxT(Qv2R zpq>8H((GJy<=v|AD3v6Do>?$6AxErI0O%x=fvB}Y%sU_}8&kEbrf}t}i5#MrX{ne_ zcc}4UzHk)|H*FMJbxzV6d&1i4IYSae+Mqg+y4Bm`?ZCbFp85OnnW|1NLg9?9nr1h0D0_DfYP&f?{-K;F?>;oh^&FznVLgAozITi_$$8Hwm4idF{u}L%fH) z_hj}PQKQ&Oy{Rpe5B6VO7_!OKLV+xdN-yy#7HCKr9(*)6EEprlPgoW!^?%%WVVIN@ z&SUI9aY>lS(#yTXDH-~#daIi~&T%uWwiZ?sJu4G!y=|x)F-caSu(Hw@8!Zf2PhD`N(>(hlTp3 z(iaZuh-pjipaEgiOiqU~9bprsdx+s|`l%?U&$+S1kFJ1tPj!GV7fTy)Dt4^AXc1Eo zgsf4EuEw-s&XtfALa8_#zK&>MNE!{dyAtp^ZRiBlVdE>|mjW3Xr4J4*Z$JO4M$xtc zi|sjeP~jfdn=$wXjXc-}uF04CgA3ZM-p*3DO0_n)tiER_F}p}G9P%DK4CvBw>D9u` zN_TU$2g#|m$M!)gSP{Y_r{B@z?rl7|*Gfibzv0tK@*!z0(4h!rUjJ_;kXcpZpVVzp z&-Yb&cQU4r?4y9Wbz(eh8kPe)g+R?Np~f(J`eLUAY^q4uY^@)iX+GXjVMZ1+`U5ov83Hj8`KVlkFRhQtZmO%}@9l2=;DC>mbOr&w{Eqgd| zs@Q6u?Ft8(K;lXN+wwX`Y?yy~y#K$)DC;255&>)Uz1$x&lc<9BGLXr2v;mz*b@2j_>hnylRb@#g#Ai??!1Q=Q9tE9Vd#*^9A6fR2^WFATH|7I#fsHhx}dks@Fd3m6(uHY0Bfw z5tCmL!q{}@0i;jK;rOGfHy1CfHNdZO&XpHLxXNQt9se>Nmm#CEMkzm-&s7QetL)XE z)K&{6i{6mdn}PEH(y>--tH+{r974k;%LsF4)r=e{~%PN^*KqQ|G{p zP1O~x-4Vh>3ENy`OOX`KXZ4;e0Beq^6z~7URL`>`IZuBvtd^MeI4s0jUy6Ep5Rcz8 z#t_~QByNrb^<1+l{=2Lj!PrC2}1w*TSjp;%pQo3209F zN&+jNg(G3}&vK8oFSVc5t@0nFzv(x)aTCAU!7DdGLOM6?uZFM4b?p(9^-0AH+tUR5 zr{{#3toFvitnp^-;HiGJ>dcdrw~)`dxNt(Fik{L)FDh~18?p~!R6K%V$egivtwFL0#9-pxp5n(^u>X$OY1?TTZ{w(XW5UBcz%qs|{xP>$Gnu|FnE!OtI0iw-NfPflJzPboZ1-vpYom ziE?q=6=Kvo7Eb)BC{e33xetfZOn{_thl%Dvtg^@o!U(|^fdf7A`azlsCkD-HtD!jI z{PeN$mcX82R{hXUB!3-7bN6Wp?sDb1^lgoeNLlMOxeZ+0nCx9f*5Z#2XC40XWlUOa z6$+k=gA;xHRCN??dRjXE$-bh*91`KqM+gNWGJIDdJ$X_Ow0#`k)g&DjndBk6L!%R_@hLM*)wj2jsa>#7Fa zBUI~2LNr7!TZ0EFQB$dd81KG47AMms$~}GQAN1K(ic~G4-)EQXt$EtB1CI*@3dOMH zG|26J4+E)xC6!sH%+Y{?n%t~l#1{RRwfMLl5XtYcBG&H%d7;}G^o0)8Qi7B1(x9G^ zdi3{iHoMr<_X0rO_UyX7mx1hqALFZV(|-V^d)C>PJ2tc6WsXvrrV z081GYr+In627q8f zffteeCcURhu(-yOxvTbUxcA#rRW_R!G>Pe7V#`jl_D6C%&Q@YbG%C~>!cIcpR%X@N zkos9&_#u?0?%p^GCrRyPtbcSzgg+DsNYo9-RoT%G%7hG}%g$)?%X3ubH2&>6M>`Wa z6u|rk1N+Fx)nxjECww!n4vs!`VntycjuOo`uTS>p`@)l#M3(JVlM4cRcABTs5|J(r zXDx2C=7A#sZrS5%WcI2Ww7l3cD~>IQUbNz{^!U2s)=3BP@jJ~L5KYSXw?r|{pYL?l zo((#k4oD-hk!5;1_xVbUaF>Jp#<{)!t<%E1oQSvHY-f>u(b7?oW$2T<#I2wmn$^}8 zjN7V}2V=d4s6ey4uz6)m9sA@}(G#`DpT8qxngm`af3A}8>sv^+d-&eBv9xa0 zOS0WuyrJ9cM~suKEx4d{j}rA>jXAWula~N)>qw7Syv(ZAzJ}W5esk8$W}=>?rov!^ z>Xa`XSwU?nnDkh~OD(#Adab|J%Lpj1Gd3q9MTqwVigkoP&Fik>p>6u%t^UBYh5doDin<=6I**r;ZV zzw*Jmw-OoZO`~`QZ^9qxCb7K=mx`;#KA}foTqk9ds=0y;!#f5)q7YgYQ*@<|r!$pCa$E!J zVz`Y*ul)|GCM=&ZwmH1te#ow^ftckSLXn-4ec}<2vW8hpENgJu5p5^Pz2+MG_-hAA z{AwgcbCCF({}o3r4G*k0SG^W%ZWPGrC$3leTFPsRD#gZAT!8Z@uLRaKFX2dQ?6df} z+Gs#_ILi0z^!zxz3XiYI9-=2>Shp8B_n4V})K~6%SDLLeW6zc@}cgVX>rwAXfPi7qs7gk2H z*a6`8GMf`cQmmv1wFHMQAv^tCtJ*pr_$CKiHr6h1JG$coN3}Q&TTAsWcE;}RwVw5< zLoXB+d(OTHT|J?smgEpUh-IwW+HhdD^;^E1lN^*ml$n7P~uT&?gY{g>q;p#A9PL$IO_rT!7sL zjZ_+ZyU`X=mVO9TggsfNa$4oNd1`B{U{(ehflm`5MbO%kHf&AM4_nVn5Q>gx z5xd8ob=#-UmjphT`khGf1U`s~GeIo3QD#&+bx<6intvKZB)TkNt7TvG`9beuGp8@? zQApT)>Vk~t!lItxU(LZfVTUPIAe`4Pexcz8ftP~U>&5LTVV119@duw}1i;q?WT??* zz)|Y?w0l`(JZX;nb70Do^EylXO#>f$!r0RujG^JzK8m*U#tG`0 zKpvtbj65m&9UoS17->Il^(QQUw+WDK9TS)rwq@6egP+sO1^}-yusHZeymz1I)=SEp z(;P|kdJYo(BpBuv zkh;9Og(h>7nExxe*Id3{6ldpd*<8?2?$1iei}}kPk+%H(CO>S`VWar)GfhwQb; zm|$5gTcPxc@)C8~;RKC4y+K79bzjS=T2w97S-(223_OS8phlCLp_4Y2>C%aKC_%OD zYeS{y#2TyP3cZadeit)Rn87q($P+Iae~oV&O)ooQZ9e-j$+&k~_DOtJy8o+2<5(Sk z2nm1Mz!>FxZ1=YPK}EfYVR>Proa42yTRYzu6GH9#h0-@qINUc+UQFk~^~SzBqEEe{ z9Hp0CJPbe|j-Jk6rFanH=J};@V-)xTiH#v&z0DOpWr|BT4**^7js07`=c+qIgT4=d z?=MSNEmWh{U}y7_2d?6-?gwe{PahC^IAewUnCrYY)Pmi!cCJkQ`rRXf83eNY=)Syo zV;)y4{i}MMk!S->_9k#B@3(&3X*5`$W_bd&M4x_o2LG7L0)~9BZ}W1xo&?>koRi-* z2D^b#KEYN}U64Nk-0yjvH=0HdW26J+ALTbhoS8X;kkU7C(jI%?-;F)6dLb+=liK!f zn$5KNCP9cbw9ccKuG1lEB%=hkrkD^9kNqC`!hS%f!AA)*b$sNhlM+s$>=}PUd9fU_g+~E5#~@LFMufZ>;NA#R|mwn|Di#Y-NnateTAE2WzY^=7%xV9sZE1H#;TsurJQw zsWh)75*?}xrr5#$al(O(4ZpSfD7lKD-SDCJ0r@`U2a z+>Hu3EO)p$U2kf3O5K)@p=k1C7wCz|nPYvJ_uNGD`uuhuG|kgxgf?_Gk;Gf*d*U4TEo31pG-MNzq4#@!LI?n9wq%=!OmT>|JrA(+Inqe zL+r0pzKn9yZ}mPlPgIlW?T9&c^?XV8{05EeJPEsCd&14WOfMFEYvMvh*9yD^piBY& zhhO4QM{KmcE>jK7d+f${(W1Q$0_c~Sc2CklffUIxsRE_W12NB@TrX%mwqb+~_KCck zoF2+Q@NX!sTv@X|1sN8zg`ZE+Wp{tHop`0F!8pXg`Ah-)OmXSKp>p$0(sW1f0VGJn zHjLiS*U73}X5R}~j&d;(t=Q6cm7a(#AbxlWdN9dH{bPlt@+6&*@}oK9#b7njs1B3E=_)Ya{h<9 zC6uMlZ&MR|TaGTWuKO182maQerUx{IcW5cehu-)chrB`qdD6jRW*uGKp<}_@ut3x~ zq;r+JHshjPihFr6Q5hjd!83T6))?1d5-cgGC&u{$Bz<0CzRa zx8@c0u^%EWgzi2}pXi0g9#%OIlw)#6OjNs3A}PK+>F$9)liv=jD(Vy2HQUtT|JL7K zouiTsjaS8cyS`xFtFl**%k65{OGvYwVmIvKzG!s)X!1OLQT{WzJ$2xvY|u6d8g@Gc z6LVsYqmDm=mrK>7z6KB9Tj`N?yBZZ)))-mHmApj*%9jsYiN=_1B(0tts^w&T+03)< z_VxDp5!zLjd8sZDxMxyt?0mvWzkI zQd{D3Z`8#p>uNuk4$|iQQdBU~T^L{gHKyaq6K){W!)xQv#dp((0S~UW^JA9HvnJC?W9S1j%zYqCr7B= zhPH)HfL0b{G_3kU4k(MH@yU6cPv&b(yr}h0(s;3JIzJH8$zd5h)TF+r+Ghrr^=rjZ zHp~u%d?&9IZinvy)QxBcLMuxpj5&jJT_$&}B@0$-wP-lg%)1uTQp=uZeT+j22qG1v zu?UwQroxx|xC^%qtc}@IlzU%WFSxVTocE;%IByBhxmiMw_tT^UeF;4Z;PI-_&0eIY zXA0h*DeOxbF}BhW=0duagNQqUzd5KoKGzL>YmU&k_ouX|uJt&fzAb0b_zuP>ig#XN z80hTXZ*(M_yLC6g9PDr%50atb!#UqH1}J7%EPNCbFa&s?k;9)cwM%z-T$K+W21w1e z4rks@49L_iSFAP51fl+(bXdDQzP!Hs!U&L^5{o-<&-|TpwM)48jHMlI-C=F!yMQLW z`|@&aIp>&Y3_DNTgrEPiy~qMjx%5D?DI2k=s%gMaEbWw_k#Q)=(5&YwP^S*>I`0qj zK$pXqA?7C|25{yp=}s5$d8nqld6HsS4_X?Jk5~>y-=~qefj7%%q3K3j z4gv6blRbNJJVhVEqZBL?g+y44AEbdYzE`B~d>2@wodHA(zCY6e)r}3zW zI2Y3T)vGjl0S>3tY$2{I4OO&3V|jJgG07tbxzcHSL; zEw5A2f3U<F&H$8U=v5BLW(T+GIjL)so~9tG!KZA382Sa-G30T3nfG5o3F`|YATERfeauCF=} zi;oUIU+T04uWSu*-`gcHBp986beYKDEhNj@f!HlO0Y%O8<=&odHH^UEt~#y34nBWt}1b3`6&&GPs>=7h;2 zU?$flV^jH=i)%-@_wl<1LS&`ILc%m^NX!@G>;#T0H`hzlf<_1b6&8%qXV-h_aFnc% zTN?oT(ri_H%+cQc??SC-L`}^Z zM*I2s9q61OZ~TWoSw>{N^(7G`cy@P`R3+S0O=sPy9_Sf*>+6zuS<&16gKIphuUsa% zHL8|hPg0#>w@`>AtIxg3fLger4$QREc`d`x`T_A3&tFgGE(5z0SwWn^FPS{Z+YBh% zKzi4#@`J#=>{HGM^uxs@BMrUrW|1>@iErC+X-l(ct{{hMj!!)#C|?N|8-~z9Kfmni zbr-8K=^ytr%~Sahz^v_4F_Egs`MDCvNDn9=QG(ZDi_*hY$ABjuFI5lkao8&0M1<+* zFHzq-%#=fMsRwbLK#^0==sQ`IQj(70_ob5lAIUEi?!&+#6QN49fm?)$RV6;vcAF|R zI)76~ToTp?)YT}|`WMJ@Dss``3uD;ZThMJSU)&h82@MK z1adF-{lxtS}PvL9*<>*V=ftKEuMn=-|Qluh=X+Sg7u0J{lhMhc({Hf3^; z2fn=lzGCj!!}%uZi=?R6k(n|kcN`PccJRlP-gcw5Ij?0noBC;6Ti_PC4HK}cJs@J% zT4?xv6FannkLQF$GKe||oo%JYHJEJ#Smg$2Kla6+51)+k^d)_;qV2_Dsi~y?M$>fa zdm9iRLH8!b8kPO$jeL$D|M(7LxRh5ib%z8QoZwSO-xzOch?Z~?4p@(Nl8oLyc%FQd z>f-`IVXe(+WZisi+5k6pezpfgzSNnP5fAn~OoMMyt0Aqj7e0OaV|PzQ&s}Vhxk7@J zz8YGDv$=LgRAKnGG<=7^0JvF4f56qyFI>e4Hb&H z+_RmeClMtNJXYLjCW5osn^85jZ^-5(_`CDrv)I%gPUJTx9Yq0*DL-qwb8O#R$%^dZ zKKNkv*grEp{1$C~TZulqHJ1I&Dl*2f;pcUp@JD$EEjNa1AJGhmE-hAR7%S>AM%AI5SN6 z60duDCaHn6yl(K#M(3NjTP%uEk}o)o18`{~rXA9mqk^Zmw89Qnk(U<54i=oL_TxBb|*NzXud^@d* zZXTkBADr``nCZ`aL0#T5W4yfsZRui~99XvPrD_Lj^)0%Xv}3d5tIq|>rm-4lffIFN zZz&anbTB-3=VCG0V%t&15iNlO_Ox#i1?($u7fr;hsddTcBAA-rQ!&}KV(h@05r`qW zey?lGuzQNUR$Al>Eoz&qT2T3dlc*R`aO1QbZSHW_#}ufZdqsBqFR!}1lzW`|k(5nj zP}yNNhr4LMLht(3MtAXUCi|RFuTwLb*eKVA_E$Tv>St0oxYQ_;3IT^h7aJ15&scxLoN47^I`ot>@#i#6Z3r z;3Ktm+jX1D(Ijv;?As%9^)28bdLOyjrZ@`elH?{JN{17-hUBO&O0CJ;1PMP5EuYt>RsB~1(xhfO$FJ9@}o{cC|R~Pl@!G=N;vFCl!c8oPeJGLIlz;OD(J*u&o7La?V;x<*Gdk(nYa!SDa|aUrJ1 zZRVheagP{bmw%XF*~DVueSIK%^e@b1875}y)_{oCHP{z%tGYex>aY#_rLj5KVex7p zk3rG=M$jXwUNT0W72}+}CtiJ%>-&6^VL(_+qZ>b@W>{hNNt~Ma9_)$ANTFAeOvdCI`eJ6E*fgO^K zOUw7_YsKLKIFVeOI3iC+kGBPuwz`G1s~_1tx^U+$KI42eWfhNeqTTP5kj$K^kre%rAp)qYi-ZDEGz3+#yO z6(Zc)Hj!e8Z=yatoJr4IGvCMpOGTVfgj_vBGeKRBV)suQ-Q4&7eHV~wG{XT+6XnKe zyC#Ln8}JxQ`n?XKeDake0S~0~8R2e_eeRZWF4iFHD%?_9dH%2D!!zHb1XLVt8;4ZT z68YT-b}R3K0Y$kIMHo{Uzk1#Kys(ZhmM3(H0=f%3HpQr9q_x!!A=!7vI}1PsTno6I zm}+NKtX}(*#yOEtUbWTX%C10;n1gJC!Y1mKai!?OlzRX}$<=SM+9~uV zc02*^&HdJrS{SU8Q&xW3C8bxz9o^C2OZo}Uemc~`p8{NjiYD5jqv$UQVk>YZ=dZ{x zZ_?iT^=i(LC)uf(`(L1Bj{Xk-X+W00wegR35606rJTv)8@E_!{n`g;KU z+}P#XeD|2gf!z2@{5j>@4l{;nJ>F{^llnB*-084ZN$pQqb`gn%$Vq&B{k3tA%Yyw! zceqK9fHwh|m?yWmL3o?*AiQ^t73$j9x$!2ucFx>BKJ+rcmBt&9`0kD%wo?aPm)was z;k^lH-*x|m2|IiSrjuTWkiEeo_%vAK`RB(E{3m~Y{FBdo0dqdJpxsyij%pE5p~sA& z*zRk`MXVVQGCJ9B99x~V3AD6c^N?>{+dEGZ3d1pw2?)OK_OVQ?LSdFn?4)17hUPK* zsTA~W!!PQYOk4V;Uh7W33(xT>hFGMGW9wUac(E;(Le`5mtEX*Y-4vU%kow~vXKc#E zo+$cjN}J8Q`*+{sdp;_{mE0 zG#7}lS3Ar;iM%pJ&v+0En)e<&gQf4NFKmGxPw3d3Ewgka)gil+zGm!_$L|e(cty{` z1}`#+sSuQp&cuoBl8b)HZg&jvqv#p8#4LZ}%=U}l8=qpg>MN$UL#}_yY6GMQ-U_`EwRd3jGX*i z9C)!)_E)gfGuh3R(GKOdorZvBUB1t_-@I{W{4X!x93Q&KwKR9}ou3aF^zZV<-v_xC zyUeS=@4d-c_swg(+=DKDoZM%^i4!NZVS&R?J?kTrBRAq?w-211xwg0YcYH+0%|XB2 zr(dS{i+-LQaMs`9&i=h?Umv@--r~h1eB%b9i<93F95>kwc!TiW*T(qzSNIvQH^&Z_ z5#usX4S4Zr_=wRT4srLP9|o2*{mZu$nZU-8rx*I(?PWN&cMhLw9FMp7&4Leq@SDc? z;Pc}@{m=gU@z&e#a$}Gep_u#+ctmJ!Kj!f(xZa%WwEA0IWYYM>v|krrw)Ds-JX89Q zVz&C^>s}RdN_9U+&pL;(sAuZ_mmYiMEwh!gY-;(`#R=6WoR^VS*GUDM{I;bpEe|n% zlsa%VIc-;Mm4EVMlRO@1rxt^zFHB|ON$;`VGSwKtj;*$*0aCa1t`jx@Qgwu6U858d zfB>0v)SDK;l8uh#K6I$CCZZA(SM0VKyU4YyGRkW;L27S<(~FTl%!L9u@p|wot4=Vc zy)K8C%H%7j-Nc&7c`|=gBR;cKZsi=03|i{@&dC`7gi3O}aOt z=b1mh$tR>g^x=e!4cvAi$d`F&N275|ZRR67d1>A`K#awczcs%vaKdEWJwQ*(VetvM}*cXem&wYq-n|l)1xg>b)%iJ4yHCF*U7q4QA z`vG9)1th(3K{4j|q)jYa=1lL?i}@oWEKsA zKk=vjVlJKRpCfK!dQTvC=s816v%Dq=7$&joTXXxM&+>f&F{Jd5c^zcYQPv$~#;6!| zh+}fBrX;R3j>LgnC)-?J=n|DP6;_^7Ov==!yyk%Pk~c2PZCh6RE28wogq;4)6Ylh* zEKXg0bba@`)bgn&dnkGFovMy7YG(Pn={)tI_KZF955m6N4qE3-A*(^|> z6e}d;GMOoct|1OFtasyfUD`C%iIXP?lQ8sGAR zzk2+!|LzZtPkif(K8bIgQf%oKWpI%Xc1 z$>dO&KE4Rk#2bYyRy$9AfJK0N0=&4yOAN@&_Z9N9V){=?zv>!`P@y$V7Hx!h)topr|zxWi<37jOX10o(jN>fY<~rke|t{<)+K&VfU_+!k9>>pA^zR*odkgV*|Fz7$bA7`DfaPRuw5va)tue^{ec~J z4|9~l_RQm|G5~S+VxqzHWBQ~x<2)HJ_z$%zFMv5}&vWl;6COvh_ZBSh4 z!7jYUkk;E1ZMg_2A72V5le%f}<1f5i|D)4&-8hrfk?wBv_+uwC{5{Dc^8`2Oo@QHq$h9~R(Rh^R^*Lw0l+TazoB{md&%U?emiiGtH+FRB z0{Dn|&mR$CAvj{Py9wUm&i|8~i0(ol zKl*3JAOGP$z{J0h$AUf?@P3Npz+I1hYVtG9MecV8?2Ggvc~bWmc~O?GW2DDS$|wZ4 zF*Z8EYPuD8$?`crw!UQCLGDGU{Z+3QpNwJa$XPZ$UJkK&WwUoC;YA6p$bd2bhb310 z)NhXL3M_|wy5LO9C96&+?X_;xq7Oab5XD8#5t?9?>j|1*CBXY8miE2Y7@&Y(!5t}|&^2;ww7TTm;~^v8U|S5lNT6!gXkLdl0F2Fb>3e1F6LOK;vD zKX&6}e1J)J-z~KMGx)#48*abEM{w*atlxj{&Ukq92J@RU8TSR!9XUHe|E?*;h#0r-^#+XaF}bNBMI zdmweh$9`kx)&`%AxT{LbJ0+oFFDpB?z>G`0(yckxXbNA{ELE}{BaSyO1U zI6sjKujHDQacD)X8Xp-Gl3FP2vO{@|3w2ETfUdQKOpp_|ltZ(RwAza~E9x zmfm&|QB-?L?Zd3a&erevwUueSman|=T)^TR^p0m+Qe67{xrlNi1~&l-&=WT6U4gn# zbVK=vE}Pe@c`9TlQnQs04is|v-iaFQh_mMfrAbyFP-OCfM|IiJ)Wn2$PQrNZ8-6g z1=2@@Ib-<9&k2t2{&J9u#=(W7aqBh<4R|M9Z{N6wU2g@bHQ87L!(&Y_i-| zyT|>DyyH(z#uaW3KA`Vzzmo;*gcpZ){K+xwxM}fs3e#8uU_67l8h0)X@ZBZ2BVt#u z`@%06U-`)&A0PR|FByOE_x<7V3%}zNDF;N<9WbDcShWhohv&S&ygfSWBazBQJEv+6KFAOuVWoU%1(gDqsFaLJavF z?PVxdN>;wrUi3PKt?kgj>bA;PpwW+?rJu5xkEilMa?A8ieu=hT$>tJZx~`vqZj8k- zNXi<1oP+N~_t~y`9n2YbqA(k{4YzK~1<#?$0Ml-t5h7;*9NSeaILPTt{3VxfXJk-0 zP~~^(GI=+qXXqyThdkc7bANp5?K|-KK~B!74s_4>cX;&oVjctTjd$2WKf@${{dJzP z^QPUgKfKAJK;+ApU>b8C`<;vrJ#m@i%DBqC1Gn?%*xv6mxz4ej_Sk3g`)cnY6Zit( z!S_ctdwEHHVB;)H~Eff#(M=r0J}^!F}ZpP_3tJ4M@hybCcL&-^md+nl2?ea;j6{^&jN$-xg*HUt+@!KPh1dk?T;KW zg=U+(2<-8##3!F0JKym=dDjeVqQp-Mqj< zp7DlVbMO1e-}K;Vf9e~&9vjL-nX;5m6Xn8ihvKD0zc0``gkY3TYl`O>GQ}qg==vW1 zENTssAL{DQ`?;?$O{M|Uh}{S%v|sJR(nWt_(ZKll)%Wg>&oCz(#F=1hkuM-~lP&&5mc}=k zSa12uKl~=Zjjz6zm~t&`s|CyW<012gKgGo*#m7JN?D*!Vo)}m8889yM#}nsw#uZ-S zJ${9OUZNA+L&S-esGZ8j*IqZLCEilv68kji`O!hOOIUXG+SEJwc88Ml2;JAi-2Qu8;>$w-^QOg zh>kB_t%O~7wvmq=cc|rU=W!<9%zFTMW6K7kom_w_d2~R^QdcgM*PLT@J@`@G}t0Px#)kN8rNHxUiWKN51x zPlh=~)OS_)iRUhVRy=P6K7;=^?vH!iIK1Ikk=a2!e0U>^+Wx`Q<2t*DBNg_*wcYsB zWIONq2ops78&}u~IGK68m$uZBlifJ|iZi>FyhA{ovpa}A1^9jg^29HyAj9Lvo$vVg zc>Qyq=2GC3<4^zapBUf&z27tbm0$DA_>1QE@QFX>>Vjgt9JX5yEXA&M{j*LU51^GN zv(LkwA6O61TE;_sN@eMa*ZPsuh9Vv{(Xvf0Ib}>+omt;dHnLKa%69yK(DdZUSHneA znm(8;)AB2}_=bG=>Q!ob*PG*f@Tp36;`p%MqiGBj)U};kC%zQ6OHE@=0T~;^DR;eP zt8N1(VCro|L+_i)0p%m1T+51A^*BmB&K6(!=rMU0zB;Co$!cGE$}T&Uom8Eqt8<%g z)_v~wG0*q8lg(g%$hQ25$8WdU=3Zj!&N4A>KRDqj!2WpK=l^&4wx4&)yaYf$g9gX+ z;`t|^7~lN#GvnEdoV}g+Osb3gfXHRG`#xs82%Z!EBDOAp_XOMT%N&P1dGOlUpWEK& zEPlY@eDnt1xpQ19INABhmK}U^Ge4iJyHN0*AFwXFgWxv-p1yQ>Jb(4#c#0{OVM~2XM>*YZd2=y(3r_Wn-BkIAJesXL>vCsW zHnr#2Xofko#cw*axzIBCI~I7E#4WSUl_@!WupCTjV9js!O*_)9ckKF-ON7#I*!IcC z%_}u{8*4@aY5<+@1A#3sodhrXEsspwcpSew@Ns+Xy!KyZp$-m-sEeCzxc1ED+u?&*ML?lYL5kmw|eV=jTr{InQwkkU`Jg`T2$& zSPXbynSGuu^mFX>FY=}go9t}E`B{!UU$v7x!ymA)_%&lM11@mCVUHVbzOUd!_wbKz z=#z_>ihGiH=9%v0*TVU|LdxzgJT7y2afRRTyTT2|C;90xC!CAK z;lrCO0&kCJIQz5A@Te0E@BCojzd}6tBGGv5B^EXofhV4xI~#CwKLD9n^WGp0YTKt< zVb1|RLl^^*OgBzR3`KoY#VW@gVMzF1i zR{a%w(x^}Md`32o#F@zth9ByN{{9nj*)$f#IeKxi+;*m=Q`=ofWXf2m6wLOyXpt}4 zve^pcZBsD&Jd@uz^{e8VakP<%vgQnAbt2E$mF~oM$LZJB-Knnmh^+p^r^0TZPEUKonowW+6J6e|C;*#pV^ z9bWQzmuRr?U;1s*)cxGE`UFV@+yx`zv<&28UNKE_)Fs-|IE+fGmll>1<=-g4XjR& zso+eM^|?merf-|6eEJ!l81`$h$W8JyZp|eaA6Xyqy>O>S$*V8D)3#i+g<-wr^`mUG z>igx|@}($k^Cm?icKBby5-vMo-sn45o zO~Q*++!j1L#38W@N69oAv}{QnFqCs9DIbDXW$_ZE^2&h|PvsZp$~VT9?bS8*YIRh^ zx;z`;rJH1hWi z_3Th5ow3?}^QN7=UC!Fa{7@%X4eSiqtuT1p1sw4*&_iAT+GQ7mSL4vw;om!8p(4(6 zyeF{Bq0h%m^vjR9kFoz8j|ef&TMDzEXm#Fd+TK!q7XFlx)Jc5DiT4m3Gl^Sy zkHkx{g&VhdKY zr(j+LlG(yCw>L$$M$dXMJE22Z&XmyrHWrmWlc&S5r;VQc%Sq%@j`FGV($4yETIF zCnA%FnK$-0qvs1s*gxb?iZO+FjK4STd6(T^21aKWd@p784)~@ZHyrox@r}8A>@;}m z@5ZhB<2H+#u|9q7>G9T)?s(~zSBk!D4$IAnY{^NBXe*ZkL33K0KpM~r` zcXuvwBk=P13*#QwgjX)yAJ_M9jyG=bBO=_NJ2`k}updC*fe5BM99{}~^r|-rxeR#n zS^g3+HwsC4OVEYRwj@pm+KGRiI9xvbUVwwoHey4t!(Tkw;b!2;XMdVsFdpOUZ*d>u zV^_w%_s9S0`0nrer_={5LL zDfzCav89pJbCTMqZevZc+5EE86M5=Rp*7hzjUKFt+B=RkMDhGXp0}7; z-W1ah-~M~Rnai6~zPNM0o~u61gnjkqoCFyJZ2j}t#gS1hWpR%Qkl)q!Zap?Uv%6LI z@Y`bkScb)vf`sJUT4eUTW44Q4^C4~dP_vnqm*nR0xAH9Y)O7H0VeS&-J zSn_T@L)Lcz_Mjbbx#C@S-*7xYXAhiRb`_5}gTH(07MB$KgxI;~_`O4V0U5t*;6ku- zj|K1bFY@g{CMGvHPl!K#fPHU-x&z3}NPD|wrEWaL${JFM1?5BE1jbYN%r_^w*Ye@3 zJLBvB;4|Z||LBj8fB%PmFmW1(zX$1!tB$?<3&_ySET=#9VOvja@@*g6-nO&67ID%kuQAh!v#elVA$s;gf^H~NZ z#{l^meVq`03c!Pl13jT7TTg=Jb?3qjkB_L7OvySam1|r@bM{~>Yyae-0c;C*0DcYFf$3khabTpg;JF~|FnRq+ z@Dmpd_+Fhn^ge|P3-x2S?%Zs=?+=x5NwDW4fFEA2A6_^fw|Iwvl_7o~gU65hj)$Ds zpT>9p2H=BtSp@EJZ{xy~;~kd5SX|JV_o{m&0FB|cMiYp7mV@KKf}|7!|~cX*T?hU`JwTL{`mhje)ac%&-kuS zzL+-z{Vl;gZVoz`Y~zdxu_?!-WlhL4*Cyp8W1(QJCu90}a$Drg_z13klA^n?YJ5VE zUGhxAjhr?zrpmWj_6^4AJEA%m-v!S&4{>68$)kUXwdvYlI#WaYD@Gx$dw8Nl);8Ft z=7(Osg(kMCbk1NxbN-}tBgRK7DOjp{GM(Adf_c`7B@b_-y^O~XKS=uT!0**wn)3 zgvBGPV}9;x-{1V_l7O|F&T|-QhKcC5nKPWvQhiBCmTwgL{N5XYhg_R`{qL*4yKM2D z*iPUB@7nv89|Paqf#Cvhz}tO?+{yRs;3PlbhNNf61D*oxa|Sge%peLn&shj+aJjBpL zEn1b;eZQ3P(DLTUNfRgI&M~qnH$OXwl07pHQS9+2TreyIC4|)UG`@n7-Gyx!_RO=G zz|-EsD0|lR$$LPy)fs(3lrtBz%OQsv%VL-&MX~9}yaa%udlCg{A&m`@F2ZtE#)Ix9Yv8duA}084L)J0JxJfX~~uuqDb38n+(YzTj2;w zwl6;VzE&-2U7ul_wC zv-@9PF7KB6o4fSP#Lv*^@aduL!MkAa4n8z0eib%?k4DOdLz>_U?>F+`*Bc7MRns~z z!!3kKIP6XWS}7)-wWH*2SuyzM4!mVs1`7K*X8HG@QeanB==n`}TYAcUAT2a-r{VCz z4(UtV!fWAhY0*9Z8T-@YM=htpa3W9*UV z7_GLu0f7a^Ie}SzdtBS?MIrli^S(cLu+OPMv=}e`bf@k%dm2_y<)1R!zq{qEJ!!z7 z39cPG;9}7!;;}G)u{`mZFOznl)Rlp|@71TwPhZMTNWD|>;hEJCwIJnn#zNJ@#sMM6 zYzf&sH4fh4x$Dd&EGKS{R@ckrH_w(|{gvM>KmXT$r2NDWej#%K9vM#KXasA7!%A23 z7=ETv&vWhd5L&?Ur#BSx7pImh?YKg>!D@$IMXKLX6}p$1PN&0mS@MNOcMGR|a5uZ| zQ6rSx8t0=R@Rfb254x4lI9q>o3ys^3LSq@|CVYj(L%gI@qoH5i4LCA2df|b8-3Wwd zClJQCy9p5lkx+gFh@1o;finW5%z_Ubo}n$>h>g2{djvZ#VKmaw*el0J+>u`b`D5>) ziTd0UD;|wb$I-9GFQKXYdsONjDp4IqIOZZ=q&EsM1liF?Fa6{Z>OZ^Wa;YWj;)-R@ zU+I}?s!+yH>V#1NCYET%lFj9 z4g*}J5sx|qFacutDr|FAzY)TTNcF7@fsOhjek0r~Zx?8w4c-veXe6Se^zoN>{DqOM zUtsi)Z1R$?1r3w&@+ghwKSZ+O3R{n{GDB`*qtJQ*NNsuP_bA9KsLA)~EiW?{;BLJK z&u9R+`=2SYsQZ-$loMYHjTMC&IL_uDmlS82P_wd6bKyr${*k;^Tnl-2^EGu{)!zod z-rvS6>c95<0~S2TmEsw-sKtD3e6shS*2-l^s+_lj^A|UA>@Xa8gqnSGb-CPKUN0ZA z1^2yM56X>atK}i{8K$8-1nIA%L3pdrKKuV&K0J8NW}t0`12im9gBRL>7o9$FyYNSB zG^(;XspnDQOnM?;dVOV3J{u>~e~RnK-DPO*U3!@>4TPE!jp&oLwQ}W+!}5Rs@89Hw zp${@YGBg0Dt5`dIJ5Y1KP**CO$QEmpyL(5LCU-B_#v`;NLzQiWMdjHDC~pj3?Ny!% z?O#I&ztHP(p;=C#NG2$NRw$YGgc?ocF!7I!_=ITt4lOIVNx%l@r<;xwfq_%?>iiSo zh8v!Qbs3VW5V6Xu+P$E%;n(E|AMrHO23F(W4pU`wmYo7_&xuB?I%z^oS&HeUUR^q! z%Pk)~TPf45S=YV^3XPuXKSdqcYXf4EMeV22aJ#R|i?dXi>#Wo-LQ<<&E-~VUD*BZF24SvGZyg^JUEw ze(pT7!r%S4?4MpL(`PT2%?%zS<+kETri>1SsQ46|Gz^G~8$WhZmQ@;1_7sd=zE%!b zdDe`5k!lX>tU@r!QvUI;|55qcmp;c;Y?E~^fJ!?~Lzv1#r0fOLE4Flx-F)R|$CGlT z+i=rN-XQ z+319}ZhnzXK56J1jBdjS+p zsfB5c!M`^I$z1vI+u`TSGA_3r2!lGm&2p6md6pG`)n|$_VzYqwReXv6?+O*-+Gj> zU1XsLqjE>Ppk-3c-a|Iyq5qbr7713BU!&sRezaV^{lN$2gZFRIC>)k$?&9;d;UE0c zYvuD-E|qiK%XgefLwoyOhX80g%Ny%lOLnY0JHF0kC9^aJ8|Bf;Mp<2XSY{Zz?=U~G z%VenAPrm$@@F1^FD(H6B-9#9iu0T=xWuNQJHNwx z!s%R$yu7hnUOInRe*ORWX8HTS@Dt_7zVbTByvvEf&9VT!uKp%3Nsn$~BYv_N%0deq z^|OpRywap&YH39k7P z>Gtpnsf3lQ8mcfazzM9sjbyX?spN&k5Z<^3xB3|uI}EAwqYjbUc!4P~RlykD)z+L< z9ARVp%1vDD{CZ*~0mL^9V1J{uLWA(&Nld%n&zPQZfp1}*mh?iK2*@uDRP*a$kxx9r z^U2?cS~i$4OI?SGa{=4LeSreY+;zFc1)G!fkdNuH3Rh+w&=_#F22Y$L8nRnTOjof8_93Y?l6zAK|0!C%!FRq6V6- zxc3>)I{~@FS%iHmu9sYRb=e9VdTu;?R6e}1lAp6r227c>J5Jwb`gN^iP~d;^DATJwFrJ(!em0Tq7#*sPNirNd22i25ek@n-CV{ z80koZ-)M!bfk%HkKYeu;VSnl*&Rw5A683_u#4c;7%gX9F^?^ zYW5tzS?J91JAUFsdL#GE+np-S3_Y(EUp3!xKUJb>AvGq67cw|8cEA=~H_U9ar`|ma zUaawGWxafG>wfw6cRwzxRA`4CON$F^_gyJpdie@#>@SsTm(Q0uCKqQ|5>y?wAz|Ne zwDn1rCkwCpxNGq^HxeCiThY!jmI;j?L8|NfoFbf`ImNq&oQ(9agV&4S{(#3p>CqR? zF|*IsVDlcCOcx7e4oXpxEe9dA!4e=>mW{C?s9fN#faOOt7H({Ehvj;?a&@u%>OcC^ z@{2$7wdhiTVz8scLQbc4~| zO}81|Y38l~8cfr&hucomDgb1K^2@J@0B@M+CnJP55#lGKCP45F11`b}&#$+{dUyZW z`D1uD!sX&k2x#wxf0R#`M?CGJjV*MVEc!=IXMno>F(xU*;}XL`|2*ohE-|z8N2#okSkmYk%K%4;89{X^&IB}-nmmJ_#USLm@mh< z0Q5Mjx08KN*d;zxIF}6_%bT7a39b`owI@?NE4#36%<&=+m-C*lZ}3~se*W7}pE1F= zRzAFS2N~ecgynG>o^vPX%jYkhF0a3Iv0S)tn#xZ@MqDz1h`ewN&wLX?0RumBIcLG1 z0`~2tci&@@@)`F9xQsY8eu6g=m76&5>d@h*pO*4{7pT;16had?oM;JxR#I;ZqM<|6 zp_OAE;7%Dsiz*&7Ub?~#!%r9z&=@#=A^o?!XytIa{IlQwR(b35S2I!S#vqqUZBR`k zhZ;$6|B^1<7}n|d6_?*%W~5WgRV)K+Xf%8XR`f=@Q)|92 zk_NVy#n6zqG6+SOe%d=sjmVLl(hQ8e#2Gc>nr_m;--c|)x^Y4)vQn8)Px5@nG6HA zM@UCB4g3coMK2@fN+@3Sd1eeK^_yF$2nhlZa(aMI`fH8y2L7>Eenr55n zzuNN)PePI=DjBmZ>m5hcpJSqLo}azGSAAzm&lXor!`>fQW9*AV;>H7h@nbx%2IMcZ z;;6&h^!7fovG!~YwVZW))bmd{n6yb{Q*LMU&!1Rio9$v6pEEQ-rxxb%caqL}=y;mE zVn^Tx6PoKx_-#1ZrwUJ+m`*lM6EuDk2UcU__>*z-w~GVMfNVuHoZJ)ZOTgx}&ZDnC8$EWder|5=9t zOuFS_M`&m3E;Hj9ccx9EF@U#&4;vmC7;jI><(X|C*hJ-jj+(s1#Mmk-zq9qu_`5eC z_w~`5pE`Z2ymjSbCeB=WIBpyQJ;UI4Ye-28yC{RQ?TFqCmGtm5zdbw%I9~8?w0pT4V6mja z`5pDd{sMjvYvn!8lw<2%#T?-E2O#CxZ^w-cRofo?dRT)qy-W*xdDE%et#4g}H;p=N zcps4xxVsggn?RVD!tzUE6PN_nUqBgj!hZE@VVzd|^v86+>ZrKlOLM63+WAG`hSOz` zK&PRf_Q(&7YU)>>y|L2n`2Pmy`?shB&R0!XtEmjNA#f*4u2yrSiF}Z;Xl+72ovmr<_!h9zPp63pV{e z!c)-I5|D3u{dsv#Z?F2l%2M7I4Z=FhYOVmd`_CoJmzK_!H(B003y&$#U6rt^IO({J z+~0op-SVxs-!1ptK3zsbSlTcD>uyZ~goQe}xaN25;Gt{%1`nNLx8tVBn08Ze_p>^n}$k*$hqC zsDJDY-*CZ4zE}rdh9z!#Vq$N!y1%&UZy{pFM}+1Ml7BP`-H-=&hsUEcvtUcFn=V{; zkA6qPI$s5QAwfGW6Q$b+B2{kbXwonUBW#CnO!C1`@8_tPA8`<7=3MrsF@~>a1ALUz zv-I8-xJd;ZW5dd!_vl+G?b)JsTZ!p~s36ALt-bcNGxYY0+ys2;?78gGcbDBbzo^XM zTd0-acv1(UiCs4^3T3+OG4|c2r`$nBKcEM6Mtqlw@69~V*U?6Rk=_D5>pYigoIQS` zETT^PNQuTh4AV^d-Q)T4Kl$$aWsx!W6Xpuu`|!i^?t6F2Q*Hs;KiuZFVumTmbApCr zp5@BZG+qm|AajVq>18S?y)v|>+|$6^#&bm9WIkY$BfitPx4le+^Tdare1|pu3#j)C zHE(E?l7GgD^m3Dw%_XV_ai+JoG34RZ!)Lr;49%KH9$(%oSKxp9y?f=~zr*ulKlNqO zsqPH)OoZh@V;c3j9rHRr{CnA{^jaDlE)w5frqsr4aP=Q>I*eb#gvXjM?s)6wrz>Io z3#>-^@~N(P9sQABqa%zwVmiEWBfTP{0gYA#YVH<)!-Czu;itXP>N5N7X4oXxa5|rK zhyvkHA9fUp6zc}8|ETGSqn|8VRI1SW^$7NF0BfWJkAIyXsEOS1yHHWuKm4uVFW>s^cgiboeYL#u179j%ICi4kyL+oVN4q(F@>IEX`&PNZ zgkrhP$w%faE}%Iq(!0A?!3;h?78LNP|A%M`o4ZU3a?8&qMP`gRlm`#W_>;Tr4Pfe! zd@!L?4a^hb=9vVwASN#|oI*ev0q46-ylcZk6AroZuxcgj!y=og}aWCesq z!-Xp=zrUnEcqt>&(e9UDIw;aAZu~7DrkxsAABq_Ul7EAfFYa`Hz>3rH`&Yk;Vf?De zxBE9<36Vyl-#`bP?%!z)G>KQzPh3nog#o#iab>8+vWS6){m4*Px-5K!>@dCY41MAG zg_ijI#OKc0=E-LeicpI>-37(N64$MlMY39)4=!U<;THz*)`=+E{x>n!=*^9U`IQ@id~ zqvNs_feRlR1A1UZ*+YlkLJQbK)tz9+pI2+Ia0%v9)ODBJ+!VCSrkg#68D0hEnE-bR zx}JZGU4ipdVkhvNByAKDOzsrkGPP&1|IMaO4P%vAbpq_ezVFy@3E zD#<YM_BwS=a3lO zy-bHLa1FHqy(ni2jsT6fK+;s6G(dV_bQ_m+h}doT2BRoA((5-m>CMUio;JY;rl*lI zc0UCibxSKlfKkbZh)aYY5>%!Til9cqUo$4$zyLq-!@Su8s}TC*7lCza7e-pRdqlf` z!U#8Pl%HOmrdBIVZ_U!HG}?xVo5YlcgfYucX#nW?Hr?m{(xs@i-oNK&o*62l2WH06 z0>&-t-Ua6YzjG<>I^5fU8l*`OjEWLaoTa>q*3xU3A>PC^A?t|_DJEeSre4R1;{5-e!Os}UA*x^xg zPWy8gAs$Cf`UhClP&EVY~*nU=}TW3(&|FqQ=k-}I1tQ-1Vn z{(dyl{w$BU!AT`Vo;sP^8mC4&$fJKc&%eO0%U^j_0+!jtRXl&VUoi5=BbB~|XLw{? zRi*}P{D(Bqzu^f}DY}L;IBH}CN=5G+MFM6Nt_SHiFc>_sbee|i-`t;xMs4MU;THoh zg)`ELV)O5KX1ugUjr3pisiE-$R-7t>WDm<4LjXP2m#M5&Fkj@Ea6OybL7!3i51-SM zahb*#=hw$A)bgW#I0cxOd7VLX49m{9r@R<^_sRQg`DOn6rr@pQWSSLkg?k6)&z>QA;6vUa1bsX83KtEKjmkFk_EE>Z ze#@aasgX)@Ffq#^8x8@zd$0V}|N3v1AO5kgmVfbEzf=C;_y1Kn^V(O+^@XYOQ!g!+ zx2|0(m(c7++(u4zF^yls|g+ zR{13wKkrlU$hP^{I|q?0AFB1rDnH#R7f>-Bd%4ly&M7#A#Y8@A(&5t^l!W0I`TJK- zE0j3=Oc!zdb$nw>;1QnAh99`jZ^U2gXq^d-4ghpOi@%3Mxy98#aUd+TM3ixW{mkT^AULbNe+{$n!mG=l1Q_TXW%df{y*=lX`}fNlh2uFfiqmnq0;Ia zz7uqgKMxP5GE`Y*E&l;Dt}uhoC%w7N(06+jqL_t(rCfxR(ua&?4gWq3XKXW=Oa%Yg! zjY_kq^mB}>RcN+oF!q?Eu;Efo&KTPqBfU?eA-Gk*mx)&yzD%M`sLp#|;ue|)x(VBa z9lO#pKKhhxeGf{x{5kRrx9f>+c5=PnM5V#<0FXn01Uv17){@qXw+cLxOybZ0?3S}j zJLR8#`{VLI-hN!Z`1#8;P7b>m7P*?x3q10frfNy%wdtX;{P;`4`o$QY8=@LchcQb7 zTY-Y3dnh~DO^=iz(l(mHC{FWB<6!<8rXTk3_uCEr;f4GFm?D7_HvWWbLc=ia;&gh_ z@~6AOg%9$@1fO)UvBd<>Z^P+4{E8>kD4pyC#IFjY1rsEJCDI5fz(54Q-m_Y12OKTU z9na7HfdFM_h-AgA{5mfqFiNAh;-kDfOz@Qpo`Hj(m0>U@IwtUZy(90zipx^lW&ML& zWsSY`CtkTOfKXJp-LgjS$7(g(V<(uLVl@D}J@Evzj-hH_WV!F^nT7HOTW(+Bcan`a zz5}pFPj|pWBU?@&QeYkP+rw?Sho7&Bx8GEJ&)~b$&C+WhkShM%;7-%M)JOwf}!$SP7L=4jFD-Ljy1vx-5mq+UMi|_a?q8NY34cXb@zGlYxB$^ zLnSs8@$}awt=B&Ah1G@f3bXwu8QuUFHBWWl27yK@OQ@cyAf2O1Q{gk$5OvVT(T1AU z0EYpKhvkp|>{j`izw$-mTbKUK!@jYlYl7huDUbdDmU7q2$Pj`|FO)|DhVp~W&|WU} z?_vFGSnRFbb-VNvCViR5qtfb)f|w>rf?9Z-<~KMEE8&)bPA5{4F1o`Hh|p}jjAQpV zeS!;2hYvw{zrcYk05*+^LSe6~075syp{kp}Zp@w}Dqk}|^{Bf$OkxR65=2k&Wuj47 z!X9frsH*Q2O1ye>ThK6Zokt@OXYygJb&|V{MB-rw*hax^Y6?46W$e^RlN&=UX{^!!m{EIfsDdY7QaSmPd_+^RfF9;S(_^d# zY_or1xBTii-!K2&FaB70`SO`)ZOK>C!?I`I_K9EDxo!L%4(OLgRDQ%wxa2$Et`%A; z`p@uM0c*MJ0vq878CWw% zOC0=Z1{_T)X!9EEEiAMQYxEP2U2@rf-TX&0Qdxu(#>(=S8MzB3tSapq6>6O0xRZ>3 zAKiaYu2JDmQz@K9eMYb89RP>kvP-Y(IN$iVsmI>PMqr-G5PtONKEgT6TYP572IKBs zdf5$r%giI}p<=trHEjbxOP<2(FadhXGR=kgR!HyspE*V)a{`gb*elPo#dmX^jYvdm zVw=lJnW?v75WvpTxKGibx&Ogo!YTLeGaG;FPrsFwgl(?i(x_QX&`?Z{ErzH236$Mq z-_yi-o@LN^4lErz$(3YOCWT9*M)(ffhO@*9ycd!#I0rzFKfw@X@6c3M0QomMK?mJt_B|td#2< zZgOk1`R9ET&?nEQ1qDjb5kP zD^qw0YB)d3g7O8w;dZ;>%8*~fNtorAuxLkq<=srzZabdw*KXWx@RU>U}1T}BPh7~8^4Z{#wa z6Mn|UzZ5-G;H-3!VpO0MwuxvFckbS!@^Wh~739vXJDknGP4BqI@m+duddJgj%DH^@ zB(L`}&Tq7w!rx$@!2DqvM$Y#L(3cbs0|ad)-_>jzKI zON>p>7_$1YaGVB&Wk&Z$JmDnY2Ol%UKxYvC@bNt=I$t*X*h*!4aAan@Z>#4rpKxY* z+)y`Ox>F8FYvP;x7ts{n`{-Wzp|`H5k?UK71r02+DxG%o+sfGEX!(f0;h2<_&~JA9 zqABP{ni!r2oo{Fd3s}ElSUrRbujbwPhdy-D0NEe|*I_?HB7}x8;TkOvD!(AW6n6uz zUu5ko9I1cs8#Tc;A^mT>nhc{bsTX)0)fwP0b+D(c3jqOx{B;3EGLaHF?Dopp?=3S8 zxWQ`9>N)ba2^AkBhg({j(ACo13Tk6xMs^tt)(mdKZ2LkXc#Sci$QbCF7%e2wP69d) zFv-N&fk#%I33s-hP?xwY5ZhFK3+n+|LT}}L?rMS_*G9sbZ^!o^fAVP#*1Yt}^=KCF zz5h}9<9FWUGEQ#Qf$mc@h=s+I<-t2QxomTy{4|$d{J`g5Drc$e<7gso`E?oc7(MVf z6@QW;#RR?SB-((-a6LCaIYC3h^yU6R&Vbx#X9XNmKLM}G(fRZWa zK71?F291%ur-eR;mEb2Wha3(;h!qJ%1%eh!9SnDzo$9K>I&_H(3K*pBYS-5nf(u5z)5ph8t8wQsEcs9tWr8TuhB_FfQ z!kkPR2;#EN@QI_9`42BQQP~J+w+s#Cs=@cp zrk9ysE`&{)13!L#p)p!fMqw?dord3Dp`$@{w_ko8537LrbRLm2KKxMz=?c@}DsYW! zrBlN~7x+*U7P}7XqtM1BVeyZx!pNq>V^2K+=BNR{(S>MeK^%xlP!j?1ZEk%dI2ELZ z5fs4sXQ0*n#2XPL-l19P^bFBIbd{^)R?qlL*Np0N7}PUTyF3!kS31(z1^#W8q%N`k zy^kty18|@5^Qpu0*|Fzi91a2K?kJd6c2#(KV-h!~^(e>`jq<_GTUjyqfiHile8g=$ z|NQI!y8PMQgYwp!7t1Seet|i$Tji~b+@JS+m*>ZMY~;z4@+~gsTzyQ&jvZ9_E~6yKLS0Mk7cU?`0&D`}oV3bjXWEh?d3?nS6sl^;+4SAUwfZ z{5(Co^9}Y$u4;^^#C#I1=;4RuKB+QJT+0fZtCp@N?UUweD-Lr!3*aT8q7fGPAUa%(-cVtx6C-%T0{=wx1k@R%l>(dzKMEE=v~ z_=2Y_16+p}2pXx6+A+cm#xNbmLs_~!Jq{xjg&S}Q*Yu&Z_PP;BLb@~pbvNH6b`5F4 zHK8OW^Nwdi2pf3(HTm1<#be}8L}>!aGnv@jRm@7?jEU(mBQ%DHGAkxezxQLtkZj3c$|g; z4WGuq)&QDZ5$3k%W4tDG`ohI>nbne4Ke<;PK0wPD<5gwu5AepMq?~DOW|;J9PEP)* zUYIldH+`FhuWA7XxP2PEMIKCCzq3{zbDQxs<^jAMr4KXhJ!Wqzem}z3;gF$l|sl<3lI7}3B)Gm?u)ISN8 zAkI#s+l^2Xq|r!ZBiM_$iNpxaSUV1mo@rH*CYM0adLiNP3XC!mF~fp8LQ9BkPw}|_ z4*#gx+;>08o%s*eQTJ7GZ4>~p5Hld{R13l z_zQ29pZMAjF`;&%{2KS&Ut@F7#fulpsWYd_pMQFv=ek{XJ1DPkQ_mV3Y3xmpagm3W za@t8mdSZKBdoG#*6Er=}1bgsZp0ww4obRhaZWwYLe~eRoUVQ1Efeat0=)rI4Jb{|; zKKE%F4=cWv*);OJzdxTbQwykLOSF&~w2xGBU}zYez?4)ZvT^bnF;j$>hNl-!a_D zFu6Lo+_=TWB1SoSCBd3_`0Yk}uNvlmFOSY0)G)(8V_BdMk zO~>vQ${AHRGp>sC(D2S zmDkD_ubwXpR7fY`ye)W)ne9Es+3t;3HfJ=(QLC+_R@`lFBid%E?KpD?hp5iG+bc}^ zk&(c-DaQ(|GU_}+G%qWtjh6+!ZNYWf(}_46g`D9}15+CTIhuxQ4PN5u5Fs0O%yrVz zasU@J3=3#=lW4#)W~5SkFTp&|qwk+vDwo)Iur%|2`Gh?X;}7qbeO5!p*mYQYOqhTd zyNv=pe9d3{<%OwvSsMXm@&1Kv8WWytF7JH$xcn>|pEN^$R|kkDT#ZKnwCmUMUVCs7 zCGzq!cpWD&;x%05(e!VX7ut=kZo@*a^XuP+mojHV)ZjX9Xad{6ss15U8@SGMpbvhp z{NX!F6FO-y1#UEZ9DCe#cl=H>Je0Q??s%vPC2;p{GIf}v#1Zz$cd(5zG_rBG(4KMn zb<^!b;v3MzkH7-n`SnCK*aFr4o%pfrJFay?toIbXl80QQZGl(KRNYSPUZD5==-u*= zYqoYSoh_$WHdEc)Wxs$Z^7I#Od|l4VyMi<%uEAg7fX`V%SD!p6cW=y=>-74+@(=#| z@|fktS;qKFsMjZ%0Ni7Dpsx_kQE8m<*UZq1dk4Oiv+CJI0^`_!jw`fw8DsCc97$zY zadv8tsY%O0WOq_6JwEZ?rNX$0X^aNy5N#pq9r8OA5PaN;ID38kY%Ezrs0G6%I=Xrb zQkI)k^@+PX7=<#O+_9(HU)5<>A4osP@`yXlWZmV<7r5g4B=aJxyfgTq>@(?DjxW`% zyYd6S&ZiKIaVj?PQz*_eLW9*4hd;#2@xK#>hHRz*m@41Czs9kQZSFjz!6VOy^?oAK z%Y*ULMCET41df64+JK2BTrZbHna97EMQOyevLd`Z#FgG)T6p{n$KA`E_TaQ{=hu06 zTFDTP9)SX3K`bw2vrI7EdL zup6}nI-JZtQ$Y?M+{x{~o9vdGu|lx@SJjx}+0q19ye%|4jJ;hmIK~Y9^~1A@sQ^vlWDW3PO~wG zOETCrWMy`&?QnpZfHKP({T7>*Jb~yfLF2{+8QhHHL|S@&1f$%9rZeUHRGi5Jmf`T1 z&!NKtCjD$=%%AK|Brc|n^8#2?$;YLShOw&*9MLl^53IN(TbAIE=m4$73p@|FBvmad z8fUiU2?D=D?-v$16cpERhY#vZ+DRBi#z+yL=b+j7`7 z#yrEejRbQLzyIWEE^t}!j06#lyzthTqrH*W-c8a7`G@jIK(7QAn3R_WEKK0=mxlI% zmVW&3?4-kgplf&!GZQ*KDB193!v<=nFO|S|95_io+EK$*&TbMnVVew*O?x*zthu|C zBM==je8L}}0Z!ihX!4t9BPf9vfbfqy6hIOI(-We@_iqhV?gk0|s6DtH$ghGl-koNG z@z>p3*PgM$n<@FHOwyN3&jgVhy~9W&bi0T2QuRuHSY-~)h5zAu_kWs%zFLnFJ0uw>b3HPFMXk$zkI38u>)@04Kds#^z6=!vdWU! z&O;6qp}xA|#=Y>RpWxz7Ceo(o7O6<|wem}xn&^lz>7^Ua{KcSs5WfRp zO-p-1mjF!z3yt#wn$Q5n^>pphcK*P*0JkEWEY@p#TaO;c1J9(L`2b!mgrp7syxZWA zIPCL2qNj=uSOT0rWR(F}liPW`c~&mYF%+7C=AMl!4~wAkAPoQv7l1-$heYZz8vKEk zcgltK3|%acYG^tS${C11;pQecR*kXcI^_VIlo87SKO1-_MwK~3AgLRs5jLNiMrn*l z5Ag!g;IvD#HdaboO`~$e4;X32NP}Nw(WCjN;iMt9k%^Z)M(~2&a66sQ07iP|SC_|d z<7c>?L()oG;v2|UdV$y7XqXm>kM3qSxXY`IU2eZti6mMCz{7$=9@K=uE+dHx=eIM~ zJqSA@j9@Vx7e{BVf9U8pI9jIa#^|5O#?}5b8FX1V5)A$T>q85_N0~9njLT- zfQc7D zlX4_Q^3L3|u;-mZD-M+<<F8$act!ATL+E}!=P%O>XzUF)QSU&tk&h{0r!^=ay z$k2^pX_N?)XJ8w?T;!_>NBqM}w=^0*VLF`Qmf^_I=!idRgzfaSi4%DIQ~t#pks*yG zFlkhP;qq1QWn(v4)G+pj(`s9_(g-xE+b4v=K&FjogoR)iBCxp40PUlR(1km~t$3kf zVuBMpc$&DOWx?!j{cQECPkbYn1qg%+=U?!;$#|A9_puOB3QJ;#jKq^8vs<6uD7)Mb zFn{G7YB2l=_t`JgL6Y*DrT4o;rM+_DR9Ry3>+Hpg%)ry@rxMbVTFIHDn>@alW43$a zo4f{0PstgXLz>xR%$CoxDqyef+Wedwa!~gVcR6UI>Yu{YM*B=ax+lR2w`tb)wTG<;2TFxpExEY<9H(@tUWFbgGDWs zhzftm?E5}8+dmiV!!0A)-EOD}` z^5|}v1a21%Cz(VdM*VjOVe*KwVS{2B5kRfMyfQP~97O!A5FWo)GkC;=tC=8(c@I>j z%coW{Q1KngrQw>2poM=G*NM?iBYp|xk4E^vz{t-K>5D6zb~{StieLK*XI^Ubx7-F+ zcYH_wfS+;=OgECO-1y)h9#}(1FVZFQ02olAu@5rf*67#$E6EBioqlpsI?|7{s)!bH zu&Pi^T%7pTiWM=95MEv6O7_T2Pz0Aw4BxcGx{WBmjyu>1(@%^DO(aK!4<+yv-iQux z*ef4=>i-m~%J}H-(7M7Uk*6Z$m7W$aHu#tQySK}yw{LPS^%YM1&6iuKzUlVqE}Ta5 z%I(uk+Fjz_{YzB-^B2#vgU?MnZlf>*=v|!!XQ}L9M`4uG0?Jk0=g+V;cai<}C+j*p z>6~RbDuZKkdpgzqy1SAJ%)b8vDl#*B<~$9+Y?%XhmrF{moa6M$`fL2_u)+keQQPIz z-m)k6;4$;)F`ika*$90b_GDja_y_9xw-T$oU1+*dw%VZpr>Cn0pp6XAy=|gO1@I>T>Doz&1iY9K4M~;oTK5%ml~Sz zPAfgSod;nJJ2L8yU*dpGIY(jOVI$1sIg>;Jo54m1dm^byDv|_7j6^m13LjWKUcgOO zhh`GTu+PvDWiZm|ron|i_Q=H7h{~g@E&*?NX(`3i&2Lm<`3DySwHprgr+^ETxajzNDSGY&4){#5<+jRBAMDIOmD9~WR?1wnjpoq$axyHj=6(QV;4scMTWeLp zrRjRSmw-5ScPp_KK3Piq^6nsw%@~`9_6c)7WAE7`@TrVf>%}Beb#oefy=fXDl_(t|dr{Q&cX_sJ2whwx|` zk>yCX@Dr#Rl^kZ{;7@fT&WE)HD2FTumbbrKw*Shba*`W!o$aO+vjv!Q_RyT+`RXO+ z22}sguTH}6B(j#AD?FuvWW*BgbKCCk={cpgZj8)i{(T!2zmc6+hj?vC59C)Lq21V z!`>6l8;}T_>?`ovavv$3a#9jiJA6swl-G1#5T&Fhy@|7vhP%j}j=_8Y(4nH0a-TWD zHSScr_|g^fub$L9HGjOEr!m_?EAafn;VD!D8YMG5+Ksf+X!YEvU*{U?|i(c$9BAK^5{F*qZBqwqEo-3)w`5r3&# zc9k*nQv%|ztYOHXE|31b99LXm#T7+s`yFvJxbo>R!pq09rO9xZz+Qj4tipE_+Koe1@AYo?C2ZnNhEsYR2uE4(Z7rzf+!bP1w0tUPpbU zlCT`eTObt9gK`SI>!|WqU%6fuIDbFQI=yPVX|%WJIG!ml$I4WanF)JEG!@in@4K`0 zx94UAotb-wTQ&+d1XElUW>%P?T2vlAlr%w)I>9nv3YMFF@bkLxT~0F|GR!b-Cz)V7 zlol1v`G;9%@ls{VEiHGXIS4g(k}7{3D=#)Fu}suNqzff}CF0+j=QYYYN8M-0DqJr);L?n<5vrcM7TR& z6?GOhmcr^%pf~0J8rJD-+wU-&W)UNCOnV9Ty*Cn%@5S@)G!ub1=JuX1t5 zA`^Hgtq+-08)s|mz7A&Q?B$){60gec)EjU}w(sU5!}uLK<`zS3hEs!1_GPJ#Mq!fe z#4~KOor0DXY;TPhb^%uXF2_k9BI)+sZPaqj7(KF$f?9=V>EKJOayucVfE<> z51p=;XUmi25pN8hTRByZX~wgPt{^y_wo6|pCtz_AOY!QGkpO@tJZp9#?g`|NUvcxG%2uyO0B9h1nk zZ~QtR!})a?Dl~xj$-7Y;?b#m;h_~-L zS?M7o)85BOy?4-t(c6S_{~*2emJfdN-+7BYh7`W2G=>I~)(HuGA!(LI;LuG!dyElC zHyad@EGgz&^4*MU`B58o+?a&B0mwOz87mVF3k}MAHc&PE3Of7^8R=p^Ywzl~+LQ4M zREM=p@f$?3tYadB-?*UJ;N!$I@LhH*bSqfBOhTYxS`0g2^|LpY!H4e%u26x) zPq+aOxBhO#>frzkJhgm}zjTFf^urgp(8SLitBEJJ%y4($xb>58hm#@p{2HMSr(Z6B zY>A^V{zfAkJZTu#8Un-P=1-4seDJq2XqUf@Nw)`~!AD-}l@BMyB1> zCs}q=qu74-m?GWT=OpJ3rdhI_WwzeA0!{Gf1-V2!f z4C$T6X!u;Ea8JR(Hm?XF^SFBsi2pH;HZMSXm$UujOd#eWR2m+&7gP$;$aKO@-0kT} zpjs|SL7T>;p_P8pIS$gDaMi2@WY&Ncll<2v9SywoQwGaQ_wPNVy{27am%KXAb| z-^BNehaXLbWYs#*Phi7KU1-3u1KS1xm6o{5A`Cyt`V+R}`W+1RbetnJ#p^PMmNXiz z;C1>qx(p)};})BIg(`JsPiEl;wM$mJ=_%K|I*@%1by)D8CmkoXgf+$Ndxha<1U+NW3D;qHOVrjrJuddzo{ZM4T|XngT^nkTkwT)f0H z8kA#b&JgT#hrlkk?`+|}y|S4r#MkNNSGkUBmx?t>gRsB3LeI^0WKZEyTO|(Dty7S> zk;q$zymA~3AzOISBs@*%t4M1sE#A5Nm|K#bm&@!^@U@~`tA*^QX)fZR5pqdzk9h)5 z33@Sz4}Ex70o4>gCl#58U?b3+nhbFpQycRBKkaG(_P{m-n4>ae`2rxGg5qX!(gRF& z*oFk~Il+@>!67ad*d(6c;MMY@wfPM6qj@H+;nB)q$`Y{olK#oFARp1wnF`X%+<=Q) zX*(awU^EyJF!hW@4Hqsl`!x^~Ja~o%w9>Iz5d2}}*5Gp29Vv-M=TA-aT{l z>#bwpJ|k;yY|^sJqv0lVY!t%B28qsv3O_fmY6%=O;)hi7L&lh1`cbuorLx7YzUyy( zjU_(R`VHO*0O#b=DJl)a26|Bs=S)yg?HQ{fj+q0fEw+2)59saOL~}q-yT=W^yKC#% zsW7OwTU1z6c>erFDj}1J{3ckdpFoanX4dz&*3)P?d$7H}%E>@)1VXi^Az8=0%1Xc* z4Zu3RJ=L9S&X>z=-s#)MZ=S~KBtw+r$ZBtYnx(%5<^!_opsSumqXnP^ z;hWxFcWnXGfYK-{44GwqS(qai4rd$2XcXgSi*&ZCRuKOR9h0(P8Pu4${5q}bS^o}N zW58;eOGhGq@ifx$*WJ|@FXP|1j)cp{*f>`rees0Ls!xY+-;OVi=^DAQYl203^d7mF z`5HD7Tk(P+PBq=FE42BO?+6cJ2mZ>hn{bUTf0+YF5CH@603WrG2~T1GBZF4SlcgZ_ zh>2e-QYCJ97!4IsfEpQLLzl09Jt1{!dUzMO`i}eshm;Gy0j5P#dZWff_ZY2XeXqkh z$tk|A84lr0vloAw$v!skxJ`Kc^tp2Ln}1kd{h^;Mm#$qcAN}$DvdH$}Q*5Z2X2>w% z*?X4}8SA@QCS{t+nL{=i>%!G#D|$!Q(06@dhnagP{u~eI3NOa+E@K{}(a9wpTXgTDHDmWpVG%BXcc`E)gcO}}>XL*TX$Uaw=yC*tz zncT2JNZ#%;X~>=cwFBoz_Rv(EOl8j^d|72x%_l8Mh8(@-p0aW{Yb7Dje95QfZrqeJ z5e>4PFj3ifm4<_cc9S7TEh)eV1dg^a(+;lGMvdV%O2Sw+3>R*+q8S|1;4<`WUZbDh zvFMjhMS99h{`oe8PrOAS(n8r%7cB3>=WqRXnY%2?7kwZBq7ouq@t{3wltH{+&O433 z#9?5Kv+Q#`-|u!b0XGZzT97~Gc+S!s+<<3XkGj73go{I#AD69%D`kx(yIIZ*xUpt) zd4p%n*7HR8CP#!fQLVS(`3P;mBg5A&T`Xtm>Ae>)_x(F-Zk(-v#J?6+)1(fA!W;+> z6m461sdcm295q&+F--BLqb=qSyoiLs3vu)j65<7ps=kw&7W_$uI+MIgY{NE5H!Xc1 zG4TPFJsK59A~u8(L=7qF-@1e$Ta-^R`I>3N54Sxl_Yc@erCbo$wY>^|RQW~IFGS>{ zTXNX_ri{pA#1Cub3q;CB4+Ac=S~!kMw|_;9urzjU;#9(8G`5<~H+FF_@^x;-GMxPy zU9J|^R|tYDf-)G^;EY8hHN>sU5LpSVX;k@3LY|$@5C`bRKS6N7&5*CPRx;~c8bF8+ z#A{@vI~Z^@`O6$I85qJkPT-ZVS}Gp) z9uN5%)@AbR{SwpMZFk6yzcI$b2OP)UaV_1w=aG*YZ}zjFz4jKTe-?R8oHcCMq`R$#5UJmtvr0l zy8I$N|Fg1o=Vn>C{h&N}|7Lk|?{S%4S}04eUMsV0c#%g+NMLW;S?4M)m-s%%{d)^s zNaE9Ei6jy9N-(eZBE_iW#=fphxYAh*R2@=nC?9F*`+uvO_TX&dd$L@vzI2(2%=`yK z3{`dWbi#o>4WF9;$5;`_3&5s(%Zme7IaJr_vE4Qt^&KsR*+%eO{u7pjCz$_3A&gB; zDjBF&MW8h3P4{U;7$ecpxeJjpz`tw&L$>6pc_kuW^Sj2a(Z)Y8q?IH!x<_GxV*mis zZkYNA*gkx*59Lj|oi;pEcN%OE{PP)E#Eo_#Uh4qys_eArCz`k#;D%t`(i5VJbOe{6 z8uwavMurm5jLcyqkrz#PwRmuAbV|km5ya*i1sqhQMl@lR4mXDkiS#`To763lf&*=N z7?PiV#Op%qL?#of!;Q)m9Kzh!-!mgBk_ji>#tSmlNE;**QMetJu*R6hpF?e4^CcVC z*(qpaRI0jcwNxJ5`m~&W<%{LwrG@fGZ@`%^S!X|FbIrp)`Br)N_rG19v+MBuRbK8z z&A##Ncd5R$=T`0as`2OG&+rqaaaK51d0+4`o1reC{cI87od5?kF2+xLJ$77k(R8-4@#LSA zsF?&y`kOB_h)fak^b&%|pY(A~fa06{u~muTYySAdC~Z|-nQyQ^U{dt$d)(TDoO5ow zR^tksuw=o2mn=?MY+ebkREeKyA>~$PdU?SsWzBDjjmTK!(Ph%w{le2Ay&9~+mb;|4 ze*UUwK2hiK^KuqVEuRg>H0IaK_rN#81U$S37-^4$$!pMxtj8MZjo2d(exXfp<2<-C z$1=)zRG40&f&{a!(syE`3_IcYwLiio!s7DNZYJ2XYbdT~CRmnJ5ju zP9&wL0HL?8;wHQk8TlH0NYV2`iz~r4_vd)7dy&_A&z12f4|v)3Oxc^^@(pI($IqQF z_rCeZ<=PMZR5`&RoO`T=`&zDrI6WO|sk8P6oV2sN(l5~<&|6Zm?CqVfb3Hz1>!}=W zq}isj`LKs?5Gi2gxmp*(dT~lCo{q3B;FQ$S65j2=sHAq&fEXvjR70oA4OHD9<^H~p zIMg%7#NQ$6_yK#_$G9ZaiL-5%1GiavJ9YUQn7_?qA9u=6s#;U9;SvoXy{Vc2{s&%S zNd?F=PgL$)wgKCH8U**#`zYupLy6~9jk5+EEMn&#v1Gz; zIr9U1tO%Uo^x-Ux$!TbY7DI`B)oSA8grXCE9!Q!%)lZ{J1$W(lmvPQ6U8t4b=fPIj zSUrI6Hgq5z)Xt4xs(Xfw5UuZ;i$d??W)Qo)T&3OcJNahtjD-y)wb zv2WvB@7*fze{#3{_z%3E8<_wGx0zOUQl9WmNG%AJCS^d{z2`Uls5Ho$lpwrQ>|x@> z^f2AP)+*L``-xwrDV@Xx?_etje$v$KuiN7?9G{d`!#h6yk!j%B!WxZEC*``q5|lC- z8m3<}a!{sG{zH9$zKv2n3!tE#7~d}VC?Sb-6T&)x)gH!i){xGS5TQa_nrQ*abb0km z8O2YF4g8Q86*+EkI;<+4JJsUmD{cONPaNzqDo}_I#==EC+GdBJ(fygGI4fs4?_`=J9my{K;}Y_d!O(N+>J0zPg_@H$S*2lCKl1c+#P6g z`kUaw5>@_eYO>)&9`nw8$=IDRBFZEn4S*&~0_K(`xmJq?Wx; zYt0M07C-#tR{2q1Iu@Hojz6KIJ0;9Njr>rK4YN>afFJDDqw%cakw{o0XIT;@aP?1U z#?N@SFlFGU>9j*9KJl!wHJFM>IuWGSC4+F1877}5Z}S>@Yu(ZwrLSM-i#7IyE0=L- zw7QJK#27wUZ2<5HLj`R}J;AzHh)@8#Ackwq^x%G0@D?t;;2MsfSUG_wD_g3L-{B>y zpYRP=94m5`r?49qIXYa!sS@eH7&f$o(xb5Amo;psr+Eutk3%xAU$|QS?990`$4R^A zo7`r5lFIbpMwwi?UOxG)-(>Iq=gXJB`day?|Igdy@BW>e=-Ws#bVw-%j|`GyezDlpRi+aC?kv$pX_PaF%J*6 z%YCj=cdp5F&k6)`OGH?Q9c}MZtswYIIt?^-nZz9%e_|@GG*Uhz3;|&tu^L>p%h%3p zDDQ-dH@FE4Ke4bUa*d|A@{eDGGwr0;O{8q_c8nTnSJ`j~(BL~Q>1ul1Y_tO(&lYF- zK`+DRKtraxp)ZAO1r8B_`?tY{v5bx?QJl&K{F%uHkPm@wka9zDMtMoLPH!#@R_GV~}&38Tl+Nnne6_xowJ`d6v8X9V)mS zw#BZ!NAJ8}R&L$`9+jI00X9_j)k3-*0OKv?@i`eqA5Yp}#syP!NtZ<-* z%rFV)o&mKU8UWfmdN()maK3^GKwlO@RZF&{c39QIN&cCI^0KnC z8>{^JhaYDm@E9u}t_Y+8S>Pqq|FnEho?Cv*e}h}N@yf(;nCoB1*;A^9skcy}IgHySV0GvkACsAUHhQzL_$Fn`T0t$}xi zOg_5vQ-2%DFvJ~MarV0Fu9ljhonZT#U;(maZmn-e?t<#>jD(H4z6mU=%iV z&efoo00%{gsb~uPYyP0oBdl(Ox}J4OTm;V2rBi{B;4Nf0HP2 zIBH-jPLIog-|+kdf0SOATloS|r1;pOv)826^cfv=EW3L%^ zxS>LxVAAh9fA9z8`+xrD$~8V-!Ug65e*GKe zcYf~=%e9L?m&)%s`Y?l0dV4qjpapnX#$Gcg^XT>KW+Al&ih=RKcxT@@YQMd3jjU1= z#(#GQ`po$9jYsA7pMSu-#73DtcQQToBJU3D(g2)bBhwhC0T0>3KmK^DOyA!t7p|Ns zZ@j{p1u7}`cb5G*?gU`0zR#{jb|aL#TvqCi#2F{(kmCd^4d%PrinHugV`$gON-Kn$ zj5g2^+Az#;o8Hj(Qo8;QJcVT}9#57!Z#n1vFz!OJ}1j6uE1VMu0gG-yk?m!+8HY%jNOYXI#b3ge~-}Y_ygY7dkEV zs@uPv%j2Lcy{s zoO}jZ#33)jhXl5QS~MajVSc+^BEpH=<}GkW7m;&zJTzw_)NpdBC)%`+-A z={L@fzQQ^Fr_3WLzqc6g(8D{61?&%Y@=_9{SVCAx;`r?DJ1lkyFK zmDGIieEg(?it)LFQ8!)O5^T zGfj0~2~tQrK1`+X@lMCtj+xgOpC7PM$MjI$U*!ei```UI%X24Cbm?3W7+hXhlQqCDN+63Wm47gzcYt605%4WgG_fb0^?jq+$noz5aFhq%Y>`~ zY;W*p152}TE;sM+?3k4Smt_Fxe5F;Xfr4HCPG75n5B}gggizbetvUgKy7@L*_LNUr z_-n$meWl0$_(?atc?;{Z>92`fI+3Beg;z$)NhY=>)=b4}j^^KG7d}S+5xdyo)9DyC zYA1YR*!)dX(I&PhnQ5o@MUHLwY@=?wrmrTj^59YV_}kwpC)tGb zGDD6TBC+-EN9FL&N?H1mH_FsAUhVw}wE?aiCw*rwaOL&~_jrA1g%tv>Ccpgznj7@| z^!Q^8A9#p!bAt-Lc&uDFdx2e#i`?Xcz5rd*rZ!MC`1Ih}-A5||2mY~YpvrH>1lFU) zrl(tZmD>u))=@j~(6CZZ(3rVX?cZd7!X?_I zfo}2S4ZXw@NO6MK!h8AgE1yuuE{)#c4;)+g;Fj|U9i^6b`19=-dvy3gUT{V$t?-)Q z8c%u0qhdrB-6L>@B)7^7Zocy>}R!9+rRk zFTYW){oP-TG{(?JJ0|yzQ9yx5l|RPeAushDqX(X5Mx4h6$_yKE<`}z=GY65EbmpSQC#??A1hN--YswUWrA^svjY3{@|;^@72{@E zzx%LEo?qZG&8@OBv0a{xGXxl8Zh(xPKfB07B&W*)clS*&8R&(cs`KvSw{p6V!V2vU zUDGCO)1=cbjRFG`V#Plzu9I^;ErH($A=j!?an%rZ(E?VPD7?ed=Y@+!#@z_SzK87p zx95i@8N#p93aPlMjAo{P0z;%)!{ZRZJrRdIH@?AX!gBpo`Nnr|(a5Z^igAkk1_!*Z zjfyX+QIm2Z%!sG)a7(xG?H$Jut{kLWk8Au#@ke;{av8ay*~`~ZX2A;`<27Q0Q|^4R z_i}6f&{Uq)rak!rTv)^9y`~>j~6(N5&S12EwOG zetwSLhYB&y>Apk06B{#S?caS|R{#2qvT*G+wg+=7Fa_6bthw6i{MmB*-cybTzg{*@ zEtNO9PvBSnx8E%P;SYbMy!O`1Y#dUhM9rPxVo)m99_qZ;WlynrXO0Rn#ggL=6@8wo z$UF(Q$nHaD%)QBHgLC-H_a2r9{2rmYzxB1RmN(w~d^wHgG0QTb1#+9ouQ6u%XPzyW z_4hw1J9C^6Tzy*Zvi`rr*nR5BR#|8E{h1elppJWs<~$9}%tbB&VW{I4VGCM%P4#xt z!5w@W=J7~#3M4(Ug-dN<2UxX|6h7e76X6%bWF51{$p;qvX-6Cq9G1uI1pEYTWcK7$ zH2-I=ivsTWm`}2<GyntitN{&7H^>>|3M|paybIEbMZ>EUL#JBvw=)&L3z~$Gqqx|yA7g?<$3E6h*%)X6= zM}ha48}Q)}*VnhEHW}li7NdG@vHkX#D*!FSXPI~S!dJdjzVeelUgj50m6K6Kv9sOnBW9z!G9r6#(RX9G2+7DLbOS%34wwD+4`fADhlKh-YF zdoZICK4w1S;qFYCM;q8A^a{vf!L**^U==kgu zW@M@y?96ny;LAc~d5cR;aU+ps!}QEOiSgl2|F$w?URy@;ZDF!CZF?EgDXrcc3L6-~ z3{~+yPF0{8APOYkk6z(Bcn9f%$b4A#lV;e+U?Pg-#+8mdJF3{%tgZ2dt*k zJ)+)PZ)rBV(jPJhoX{2@dZ98xchoKY(9kksOw=r#Y*BJabn9!OcH^e1OXByf)Pszjo3*b ziCQQ!q!=lbIHX95q&PENW+7*KnO>{6>aMP?>gw8GKA-RX-Pf;ML~i%1-|u(VbI(2J z+;h*}Q1Pcc9T?YVII!}@8)a4s3r@DCZi^dI;ia*x?tTFE2gxb|0?y+9r9D<5fOVo{-5z5FUS+oeTYg<9+ z&HyN#Bzo$uaERcx_g5hD^a^tYLXQhokd|dYkB_uL3qTkkEKXm#k;OsMOolJgg3f1q z@4k&QqzUO|B;5B$>CdEMo2C_J^XA!H^6$c$pS^kb1ph{Z$=e9}`QX=hDRH_y zhVNZCk6H(w(cp+D6b*Ls^Cyo)i!gz8^)d49t1kJ|et9RByqh7wFvA*R)Q2i+rp*oG z3XF}}0nsuaGAx-Vyd`YUk-YR0*f;?j7K`+oi;#r^lUHTK6XhGg$UlBOvVM*e;*t zw0kh6*MNqGxu;!cU&(HbboCCZNH z#bAVMdnCJ`4d=Z|ez-(&E@X3~x(OECFq z5UlagsIb9sH#(Y?Tel|>WK?L+OnLPpw>Tqkys1fhhN}VM#uXB2~%$na1dYYpB0*I+vUIN$^ zl$`zUa?N)aHk$9S(t0NTgV4a(<(V=`uV4EG2}HMdi=Rmi=aIT}<(b74D&&+V&{9Y!SS zBx$D6PG->}b|2m!tN%31c4sh7PI9wPkKw}%M~F>g2pi-0uQlupZs~Qav5fD0{WjgQ zQ(ZE%nt~v0awvxey&Sa-90O-U&>qGp-*f(%A7m&|{brdNnZa(6nGF~>d;PU7n3ee8 zsdyFMRfNOY%QwLhLnbac-QI*@MMNACaUnCc0^2}g4ztJk(9dB2+Cd!-kSYK9$TIv?>0P0td6c*yhfwJ194kU!ltlIxm_Cbvb@wM&-e_} z)UW!twSZs7Z~2-&e*CF)r+|ppgFmC+dG8WEh|#@Saeh{&#`BZ6F1~&NmZ$zLn_=Zg zGi-tF*`+oABux4aAe$K@Gsr(UYxs?_}JDllNI?murO zzQdR}%?pECLj|BXml0$VFaAKxF$=-a0M*+41`ZJ>&~cSJs8n* z52sP*$BCOF$;$;g{(>htlzM5fo5%Wp`ki^S7^V+d_AFbuKEk$-vwKhD_=j`}@mcfG z4q#sP{?P!WMsWu0ECR?jWApJu;?#3_wfx#2zrra^*j0$5)|2bXjD)l9wsn4dH(CpA zNH;oZp^MYPtG8uXMPTdVR3Ah2GL&cjc7MoIe}BoH@8oG&Mr>((>KA|B{T@w2RMXWY zH9zUbJoQUlzfF&;W#Fyw)35m_luw=w-e}>3KP=d4c+=>TELnG%)naOHLjbzW^XMuT z=u&?E1kl7c5_#2k{&oPiuvS+4e)MStqx$kpWhu`%BBeQrUH3qe*#khdUECIL6nTPe zKF{o%D#!P7G&n2m2FyM8v<0|(&j%)G$81^(IU|pywVCXKdHra{UV9 zP^RRjo_)TYJTX)L`;ULQynW_81c?nm%>nd#(vFPoPZe7&z$LyONIFdqJC0@`oWdS> zd3Q`~uUi`qW_GtB1ir==UR7OtJP+VpV>scO`&FJgdwWk5mWeem?!fM_hgpC4U=AX76X>X&&5m(sAAoOi~ z>Ab;foYD8x3%``ZGccOo_x!DYhP+}JKl3%bbrRw)WwkUdajSGIpgmi7;*(i*B7t{5 zjnMpkc7+-~n&*RjIs}?5NoyMO5I7qumFV&uR*1MVg!wd;&x%xsZ+rLI{aX3v;oW=3 zc2Aa{;+n1VsN6GAi6MNLmF}+$ZgL9G+pj~Wzz1V_<1btI2oBz`dn7L$yD3=+G2YCHI~S3O>;f~wu)(n3)5U~x{KL^y~hr6it&N6n;nh{ znjF%JU~;Cy6^P!B%(;vBLDe6qdmUmn8viyohwme6Y_gBsS#TN0nU#hKwV7YJcJaz15pLbBypsR z)Ej;h(&aT0{XtwBQX~!ug}61x8pU^kA0o|4L1j%a1a{K2^79;lwbjQOdO^th_S3sS z=({=gtH-W5%=VN(C}ZrEuY9qL-*htzeh@xgECPV5zv;m}tOE`yw^^CC|M?fo<4+$f z|Kzv-sC@hNv-GTL00wh>6^z|OZT1-P31=20aEQMh+g*vwlXk2}lgt{0=n?1*ZCp7t z>-7n@bJdD&x^e9c7#wF=^hW#3Y7E??Lc6i9JB=Weg$V`hNxy>8!tZ=~}tAz|KSvy+!Yw3qY)h zE|0Dye77FpBh22>K;rqwiaAXwe$?umYQ!MQJSgwr(*sG>B!Jn&MmWT*lv{VpKm5cW zm79y4;Dqq>)MB+R>(+WUOSkADy;yGd3wVTyOI`l*{%D%!Z=7L1e&9y)uDJ|7hxxSf zgv)m|yar!`!RN4C-b2qFToo`QbS1Qcy8O(yEjvV#mOU|9at_k>#^8hSKN-iaq-0yG4pAn=zJ zVJ)A)C=o+I5_ngJ$n(8{@B0+J-UlA%Kv0-t2S;Fy(@SScO6xNOSgu|wTi<_`SJKi` z=2AhX?6%MXwpcqb#vOrkb93b$_xA02n#)A{JJ=}n|8UFBt+bV@t@$bOv(Fx((MKq_ z;KtfYYQpJ48t1sRv^zy7vo}|V2V`wsNhf1^cA$8$H@8=xf!U`pV(!?3kutW0+US+3 zC`T2a^cv=JWEX0>=Ln=H0uQpY>PqlKzL|?hV5#{yt?3NKB-4(Q^zuCpE8V8tEtv80 zt)=pXH!i2#+!<)CfIX)n!Hl(A0Txinf>ZvW;_DEAo+=DhsW)j_qoiyEt@uaC_P7OU zz>dhQBQP%EE(NeYcfje1t<~~{&wRan;)~xjH1%;=wm*+ftGF|SG}J%N@^n1oZ=TgB ze?x!x8Qz?4#?8|gTw@$@)_(fec*Hc1?tA#euS=dZ<`LI<*8G8|`I{cN{Y)6&NzuNA z-SW+(dj|e|R{vI>QFQIwG$5tbX66BP5`%>`pj^vVsMJ=M9&}+s z+Dl^P4<5D;1fKU=zi0rY%~}D5I6Z9~iC5cQ;ZZfde!0pvH$ZQ%oLh^%Mi;>tiI?lfj0TJH^e-f91TH1!7qzMd2dDTPS zqefMr1T4SSFn$sx-savAS>caIg@rgf7zQkG%g*Po-7kCTAy-*m=P5P}wy~OHV_-eI z;%n^aiEN4iqs-|8BkTLOIXAF}nkqpq-nw26pL~+3zoX?-zx~Pb;~#o|dHgV&c34d} zNv|)1RWx9KaO_1{GP`sC&Kd+xG?5833=iD!96p&KLJ3Q9itqX57)*fQhcCLdM&{KTq50>8m0!Xwr16+4=lJYETGt|P4o+|5TKX*6-QElQLf=Sx&z!g_dTG7_Ai1%tNL{L#@ z>12q{09&E;Z=)q6<=b$a{?d_t?U#Tb@W=2JG7OWs<6C_MKu4a5SDT^wjf4&J>B=@j zgMq|;)imvI7jJY}?0chspRK5-89fjHEjs}aFr0~%Hv%76y6mze2`(IJ|)PU9o4qWo*|8_&q>Vk?8@Ba_T8R z;*UhcW5u6>gnbUHEIwLdCc+zf-oAFL{NXEaaHhb{986-_o`f6$pcINzP*q`NK?;BY zf{?*FFd*ERZSiL1Xf_Hpv?3WCK*I2$oVmBkfZLEk1o6m&?b+qn^L!%^IBZ3G3?~JY z9cW9h&2N-Xy>YGlAMB3&;)R>#yH_|X0lZIRoN&5uarqwExFCu$s9S~!!40$qPQp+; zn-fRz!=usdgHZfB`ZT`yGORs)AI9zSY*{)Rh-Do@J;;WgZ@yFpoY~()?OtHP4c%3y4F}`Q4$NSZf)Q8PsPoSK z+vSBP-&NlH;SjJWWcz?hWDzzsD-B?&IUwiFsjEY>R1`|8|7#b0;x~%@w z(AV0ZRv|xtsXuV8%RwNdQ~=~#n1DsWOQF~isMF#Nn4DhUWs|JAD94^bKFGjC1Wo`> z9qw_6$!<1b?ZIn}>&o9)-YRcgTQ9%<4w~Ff@Z{{o{EhP0PVOi_`|R=Z{-;lt6P%5p zhNK`6g3N*l8?c7C@vD&P)xjvBT^wIW-;L4Y55w{@@~5kN@G+XtNR(k1;jLVQNAs@G z=-JV67cQ96!Ki=I(zc^+G~f7>&)7fs$VWcbq*MxMne)^Qg+V?Z6r4c+SbCRc2yBPA z;dje(n5cVsG;K@Qm2JKPttuysGPC16;nWDGU({UCWH09XLz0tt#);#ZH}m1=O1WJa zxOyC%@jK^kl|wMvk{UULp?crT!WPn>y~Mr%)YJXP@F$FaGE}bWf^t2DM?7zlW*$NC zp7%dfzWmbLFw;``;TN99N)EHpBUz91`1Y=(aemwBGFjH1T#LKLLr)6sJ0#F(2*5!J z@jPlQDlHzQ2pk#L!ZdY_0Bimkx@33(1Lrm(2;DfF2ntUqR;=_`E(n^koHtf^gpkaP z7kq`POpk9G4+33eti4PRdX1sdmtOyVxjetb)EftNu=&YeJeza`Pz#+;5us}DEuY{> z=I_b4_V{Wtl+OqMc`|5Mb&u+gX5~JB0n?@tP?yhO2t>7i@kiPJ@HAyH+%XU10HfEB za~f)lg>G!}G@?~b4w@lsH|6bPMrVUfQ)AS1W@c}B_11Rz)HlwRUwirW@*HNKXHL+T z!7aNR!FgtAfGl)o9jprxq!(!|G^C&J-7g>ApGISeVV%reHes=OJZj`&8Dk&$2UP$hBmY=|NO21>eUce61fcm0 zGbCvAJ#qch(soaQd?>#b(Qtn$TO#3=UyWOb1H(o#j^SNi5dcX(f)esd+U{w5zZ)VO z4ECtIS)KRNxrK6?IJ0oZ281*~#h1nUGR7q3UA|a)2amDe9YY}uENv$@)oZ55G_Zwk zP&x0yG$&6TEHC}>Ys?^Quvg$j;imEQs2cgaCCHvTHwi)5TFKQ4wDddwKZzDHfnid? zplY8(Ln%@TuO;6)Sa**km#JlRjd`2wp7ZK4zcnDPAutp;E*Nr(OzhaMt4^5#hrPW5 zV9R{15_#DBd#T7O;Y*xkyvP>gId=NJ^45j&7H1T?ba~ZPlH`>Za`6uuP=5C41W7s- z(>xu@IF%>EQ;nyi4#Tz)0<4ele1&=!!y0=9&|1)loORKt>k3Y_yQ40p9-A${#SrGN{?HSgxWt{1 z2+T3?E*;dVP?}fi*tub6BChbW)^XBm=i1wl-tbrRY&2#%olo;?bV~#>tf@!yZt+bM znl&%d=~|enMnFiI9*J*Q^%=t4VA0$1b^1k{{^&zE zXJsJFh5%9!Y(VG|y=w+6bCd5}O9r#M&_nCDE97jL7#?A6d-Zk3{(|6dOS=L2dAFd% zpn+_SJQopy3v83V$Wr5PoxW7wJTu31Bj@y+otApl&HRvr3V_auhoN{7&#l*Yn3J|8 zR3l**7U9XXpX)JtF1uz{1I}e%#&Kp`*stLT6}YOfr7Xw)z}MS^={={N1w?C1Gv*@&E=Rc&iE^J6^*1>#?*PMBD-$NSi@-cr)NZI%``c8Q*efMm68kS$n zqYH0#4)bfYmmuQ#J@%20AOK9%0P@u@BW(N>1_}n<5D_gN&*qo#8p*#yM45-@^sz&@eD)&e*wf1_*&V`A z9E%Hqb*j3()1|Yt2oOP>a2^B*;aGMis9}DYjhr(~KzJ-J-RJPoUF9o(a;Dt8zgV7n z{8(llHX+vSSkFmL?-L^*DP0{H&6u9c=8wOf5qa4=dmezy?)L`pc`SLx>M**y4P82% zy9p5hIt9QcFvj*EVFO=iU8Vvz64y4X3~dJ#dd@(^xC!y!@%{k>*adD7`p%j2<*l<< zVg4P=j>-_pnmP*@L=E?47~s3W!-1mT{NR2*L99Xm!6p-D{BN(HiW26+DY9}2c5mNN z;-a5h2sRERm6ERt8?^%3!sADfe6{RoVzdL%r4zLoy7SZx#HPF~PI6X(DN;q#GI5S@ z*TbjYx>Ek)vA zm-INKU0`{L-i_~%@{H32MoXiA3-`SW)MQ%gKT?*j4ZdN#F5g6>oIuAj0>H>aW@!cK z=Rb(Pi~b-^%fQ?^p!00sk321`0c22nPno921sT3~-y%VY>?*dv*V1*Bm%vRKjR0ge zq>Umt`I@&cx)E4yP@OXihd4mvK1YFl>h@AOM2ED($+d&~o3 z-Qv52wxZ#09f9Rpe+(YDBo#u3;A8MxS!Z+4Qkmyu;CHxj=oMBrp1*R3=}C;E3LcqV zOj-bsFtoD|4g+*BdNd(mrsXPuDgYeX#7_YMtA$BR9ol)gPXpDK}`hP!#aZRZ5D04_vlWh z4>!vt44ju(+;o*=*6+EFgXzf`+S~GSb|d+O2D>t)oW?Khz0tDYiJP_)ng?-t&9_f! zG40DUaqyBBw7y9IXs?OVWfe*2!MaoT(5pZRdh)ZhI036v7r zE46f~h-vx7@l0Gk0;}meKLUaf%Twjm`Iw}!|I#xD%SX=L;iMc^+wFq+ckeA*T*K94 zyq=!Qxoqa@2jBWr#;xqx-*Yeol4Zh7BMvltp(Yp35Gdo`H0&sTxm<^__A?wfKX;;tcn_J@w>0nzT4GzTd6ZjwYa<*&#>grd-Cu6l9ssYacBV52>4J&En!Ln5F+ZVQY+Z+8r(wl zsPE>L{2D-Aex?bId>L^8wEJ#=wqOyZpU$$w5Ii+xIcGjZl4aIN(F#PyXugIeoOtHb z!c67&QML%ra<2XF-Pynvz!h5@Vdd^ORnDlHV2fx~E8wiU9w!E&8{>h*CR)zvN)IQo zGA2bHls4 zpDV~v?LClFBjARHKMZBLyi@Bx_*%nn6>TKFJ$bA{xc6YB6^(=USS?371;G-U!xBqw zZ(>NhLht_$XA^$&%mt?X^P7h%)$QlcTfNd(yrBoWvwobe07Z2J_ zjUXC_vl3toy1T&6pwj9;O>-IH`G>4PD+8 zeR^)8eC9is%XjA&$_WI(ac)+cKr2uXWU3Xo(nAXt?}1ZzI@f5ceYdAAE8OlLzSWxMxcpO zF(L`v@ZC82`N*I89*@yKUE!v+;`SZ^tjjwH;C+~fW#Cdl(L_Mr%}0NSB6@c5M3$8b z!fNEiGnd5E&v*Zr#(emtUU&t0h7m!eOhK%VaZ=D{8S}!vWrf}f)`Tu4_9W1hU)9lt zYxGd4sw@lk#2Q+Tc+}4^Ej^KCN!*z9Syuqj0lUWR4GdrhIo9j-*KU{3zHz=BU`O9> zh98p(8fWE`lpZb!^HGNw+xG0Jz#8%F<=5%)?=wBO$_c_-FqU)LUO~3PYP}T*eg#6+ zn72Xi@11^YXa~z^6lwzZ@xKeBEilfXC;d%U(p|Z=Sl;Bgt+&o!W#)rD2TZqRaS@DD zTL{1c6!p^P;d=;)Cq#wB#jnL71-Q$43VVFjcPl`lB84^#gAf`6Bi}MSc|=e|oa9C~&H zHq(qKB;TFyz|&Fc_uZ>^%Ws~ZXS?&DoZP>&?8jIX zy9?z>GmZ9ywb5LAN^?TooOG9X(y^X=hl#~ss#fXK^us)eX51k!`YmmlH$Ukt@$vV) zKEzgy7hLfkL2i7VY3p0w$3FVekA2MVBsW9e6QO0^Wo(?d_Dx2kfC|7cV*j zfOh^ZulN%$64kuM z@56NF(K6_sjYp)1q3hBK#6#(c&^q?OM)(j$-YZ_ATBiX`C_pLDz>)VMK=FO>C-Eip z=DKvrc+^kC5Z3bX*(%Z`Q@%-Ko~F+;c~n?@4UB|YQJqFEeOo1cT0!$~aZ_gVPi+4X zkB86XWS(7_#y`0qwf@#}`OM;K*^goGzGHtF-}(3+#87)a8qRbaAI3Ggl_*^gV4kY7 z9pTnxvScq|%h;-_F!q|(I11mpf2y3jyi)%3s~5}S#xg@t_V}Zsx(m^9pu-%C5l`9% z{9cDp!}Kt)clX^zefD6^d+6==)AM`Z0E=Vj+3)aNfuWXG*2*p3uV7T0TUsvH_?}}N zd~trBlXksUoHCh)V;L2|!Zhh7;iQUUv4sdQ>&+_KNbSR$wZ92}y>Xvt@M?#;jT3Bxix8EO}lk)pwa%pchUt>r!fLz-WP zTBOsNz&3J`6&j9kMgvf*V3^QTa7R^!;|xpHe418g!FhC{=A}n_c42lTEv{iX1HyQum*;fZ3y?Sdv`mKI7MP!bweb4) z0bq$sn1BxpOZ1K*jbK{Cc@8VVyGW67!@S8z#;)TVKO1w`>eg==qav$jx)Rb zOq+5nuYL^S&!>NIqpas09aKt7ro=Gir8~ESEqCJmI<2t?l6;%Bz ztmeB$FF(&+fpfR-mOCu)*}~4zcWE(s$^hWba%j)w z9i}A;$c}0+2!yL~4RVYd@dK+WKY36dQz97>(ETT!T-4)A^BnM^5WjVk>Hq@^g+c=g z4u%8+)(I#Bb2>4a4eNwy@9DC{+7H)p97a3*?DwvhKVtvL(edqaWZ#amlhvekvk~(u zwmU?kW*R5jaKrIB{$X(Zr1S7hh>9|e*uB@+4%d1osMc~cjW|h1IFg6ut8JuSX2iQ- z_?@ZRJZs*87t3%5rjZ|lAtl#h&8J4o-!4-#PeEjAcvDSMm=&}^bQan@jVHqjr0>nY zf>h&*uu+K_>$9+tr(v}+U76<5RjM_>C|oI)KMn2*2Bmc{1#ZL1$6aJ+=kJzZe|4_B zzB*IB!IaoVHl>Wy^KNk~4fk)Ca^pJd%dex#a$(0J%S-4*25Wb)YM;WY&5t9%Q!A&m zd?PJfTM5$MN!6Y@_!KLu+dV9XGZG%*_vYwDQFlM^-u>nI69>!wgF89mi#`9?8YJ*E zIC&~0mX=o8`pU&12nE&r6$FOk{{;j>tpDWg5MT|9{u+k9HEaYqV^9N~)^G4BGo{Cu z32ieiZrU=!?BEIJ07#gEcZ6W#3O`4dr_H90l>T$iApo(o@8paHv;plDT#W?t8wc%4 z0cidR3jKJkxJeEYs2C%Sf{3@+5M+F{3qdiSQ;KSR3{e6%Ii!adzovCK0RFbP3a1$9A)7Z+DT>#5FXA{h0YZW!L>C7Zhmc{QT^(8LHu_- z(c%#`E_}wD{zQ7{**Z#t!dsM=cz%lmXk8cn$Q$qEkNE&L;qp=F1!h%Nto`{xx3}>zkI!X{yNN#iu~g7Bjx+3*L~F2bvDKHSu0RDDX1*m z=KAZ~5IKy^vDoF-*;1|}6c7Ntc7mbF4yFz#Syzmij-8Ay2;v?Adj0zf4#xPaGJ6bKjQN4vJqX*G zTSxGKjjXdLZEylHXI?zz+g@E8inQQYxB$;;@EU_0$8=M9y!V&hfluXC;&wQTAsF>X$0$G;JAqTub}&zKXRh{l@B~oKJffwS?qP+84qyik>yV5y5Xp) z-02j>uk_K;>5wKxjqTB#adc^;8sD}Vjng_=1&YpmWpr~%YQ9IymfnZuioYrVz?Z<7 zNTm7RJ(DSj4*~dr6Mzvgn`Z^AD=q3HW#4Tqv*H;joDXR>QsZPGPlpIsT(RTHa#H$lj*M zTse9+H}+hC4^$%|l6#A#cbDt1Zd@#b+xW9reQ@{~(@uvWD!MNj+7)*)qU+Y3J)j4* z=a+y1sQZz>uMRa33~HmKW_U_(eiz2eExD-$bLRwlF(;m^2c;I{|4d2Yc7@V!YsqzXnwvo=i6u;J{Wp>CH4dOTnyt}{2RAc%HMu% zA;#oybME}|T{Z(Tw%&a8JLR!soXP*AA7XVJ7jd$?YzjiS&pm#FMF@u>fosnPw|T;3 zgZa5qF1 z`Whm$JehL@fI$XxPC9j#ky(`p!oVqnA|9ycsB@aKN*D=<98Ck0Wfz_duTT&M)+khl zSIRsVZ})Ek1yW zwxi56uj>U6KskO*K|rz$HJs0PMIPS~STeo|+K)1-T}8ppyEvjfSQTZ0;GoA&!vQk~ z>HQrB%1d+$9^{`C)>D5qEjYWuhVOPs3_c%{2ryscE@6RSr~LuU^jKGdHwT0HYI z?$Ghw_|mX81kSpWmMQ+a*dd^aXy^KouZCp|pRz&cczdWoA}Li8-o=u*{0_hZ$9wY= zhyZJLBk}Zm)U`54L;hSjmT6k^GH)u-gu(+!TFW28(WUV_ zSD1)oA$*9acJ+1WktMQ(8DFAx>&|K8QW_)msu1Hww1k=rSa~H zMG{nhU`bobU^(2O76TJR$XfKS|7eoq*9 zpg9aM%yLpH^+f|WHQkcv`P0E=Kjhtb2-W5a)3sSxsf&OYc zE?#1K(ILhWH3!13D{Oa-mw)u01LbGm_gH!S5C^paujekv*bWK299H^l{FUbj?TS0` zD8q)o4D+XV{`$fjdC2&7Zsu!PIyvJs91$;Rcs9YJCg7}6)c|CyF7r`l)z1XOf?Gz( z8#J26LiB$mEcxNrDj+<~r2)E+0LHt14M>BMpZVj|I7E=JSXtdrlI5$WHBI2}(g|D2 z^2yKedQy&H)0?Bd{lOb^<$t-n&OZ04ausH{zPerBq4(e7l%FwG{%c&xefCT__52fM z$Ft9sH*d~!^Di_4@q2+~P7h*Hjdp?91f1u_VqfOZmvZH8pu?!dX+eX%jGG;UV%5^n zmLA`#U|Wchkl{v{nBG!`sf+`0tNvOGjdPBXMY(8k%)3sxs@4)MMmeXupj;wQUwMw` zabY4D)Y%FRkz2Ro4MyqVpD7b3pJp%q{xZ#){NC)rx)*{SciM;5a8#=u!c5W&ZbR^! zUZ`sC0aIsqk@A2~MyGx1@J2v|wbF((@{ltP>VA4t+Ceu6WBCSisoJaZyDovaaSm%> z(&SJ5ofSwA?RZ@r!1&Qb6k3)o01hv>sj0~L8b7I1AI1+JI9a*3?{L|kXE>)oR?vwn zwTUU(3MP#aP(SSv4sk3;;oz8CTzY$vb#u`d=SucDsre{pJ1h`>e;K$qyXcpG_)z(U z51uMd9c6hrjH+U!0B|L%D!a8C)uyeh*a{<4_r^={AHkz>GA!U342dVgV=KWYouqN} zGoPA)f1?qEPBH}OnA`}X3=|+*!X)F*5CDrLhK1^Qjht!W_>TfrBbmHPBLHbYmcOS; z%s;@@8+)5 z~o;uX}^Jcy9(DXx(O7t*p@NYy4UR-T^&>XWOYAU?Uh{taA+7!$u(SWQCx;FajXs zY;6N_wkk6VQ_{0Z*s9nHJ+%NBA{7dcgGb8Bh9zMbm-%Hvn4s$c1#aM}IO_~eI>*|> z(tpnf*~@Sgp>&J`PWN(A2`l4VPHfM$0&}Z*Xs=K>$(ss})g@-cAaa;slUatS{#mpG z%#lc>rTmP=GkmGE4q0SJ%=UGfp0l+UnX z03&-hK@K%Box;#wAA#TyAe?ObsDWAjZrTf(10`_%v##xZ@DwmpXVbzv<{p2E}8GwH?wRb~)Krv4xbSH6`!Ctwza6ZbHr zK|tFW5i#4xI2HBQX{V`u5E}VlQSPf|a&KUmj`I7e{c@2OXL}zoJaC#0c)1mXxHL3h zQO9KpjFN-Gu%z6?pG`*0O!QCwt7UNLR0wx^r&jN&tQM3pRbkf`vFzIeLdDs|Ou%S&$$Y^u!&EktW*B?^mOoJKp_fM+c7HjzIQw|8Fi;kV9oI?<{S zF*BI84vU~J?JR0Xu_sWTwgu_MpB!bGW-i^h5_1+K-~NO3tbtYHGVPaZ$0NYVUvxU& zciNK8U*fnf1_A(vZLT`3!!N!Y(AM9w8hw%0a}HB6;bB@<;k~goRpx-d4;;r)$Hp;~ z{wKdZ&w8Vk^6&lJdqK5}y1+3-PXL4WI5=Zac`&tzpp&sFE&js}t%HU~>Z&%}G-JI? z6P$pD#{9zTzwl^--Q;Z@fbF8|nji%x5s?LI=zLFRBtMiQZ3Ig1axT)VSeKJlHo@^`*FU!H}Jo_f!- zOuI9Mh6Zql9&L_Z;tuNVZs_Aa-ySU4cTSrz{upZnHc!7@b}>J{>xJi8N()2N=ot&r zd-f?PhDLhAK3c(+cLugz92MSnaSR=1Ms-Yc*z*9pbqqco(-JaZ?Lg19^7f1pwoD2W zX2{_b;e814Fg-Ho;;HNR5LA6tTCM~ehv+9bNOKeGH|JkujOqzOZY5SjDcC2XzT3kq zR1{WP>@8cy4|C(M@CmU)g7`PWugnR&VRWL^Mhe^_J7ez%$B?eALq1mCS0fWgElB_L z*uYP3SuY5MM2S<+4&dGCK;orL;WCXl30&ZS!Y#kr4S-o=otlIPj7&1dcP4>ecAH^Y z&mo5EA5`Im-P@oXCkd;9N>$(XQVSz^z%5Uij&VH#-`W4clFP7tIgy+|K<#+zezgm9s123?ofeU2N*wjkJg$6>`4#?19Vso}` z3R&E+*O#FA2~vpL2R|1ina(A~VSK~Mpz&Mf1xgaXwv)kZZZNx{r)hMlSA9+9qu+Wb z%_GkMBgFbA*P3rUs^>7BfW>w3YB0G9Fdsu;sZh%+&n|w1Ld%2rZ7h{I__y>vomp~| z%$LsGDF4l?*ULAq+%3m`0jCirZs5tXS*U3Mkqj7T zdNYtG3~!o-t}p67hP5#mRi@?0;WExRf1LXO*6gVu8r9E98rhSKrw(ux7`BDG8l@oa zO;)YhI_9;FaM@IlI8H?iiM>JMjEWD#!}OW6mzjiDBcV10zx`=EX$r_?G%WFBxDkaru<)%A0WS`jQWlrTl;vyS{9c)6SK%&Z3~q46 z@_+ne&y)|o_)K}>`RB^9Bi#55^Sk9(r)|J%&oZUQw@hv4mQI4Fc%>04jr)$1Zsg?9 zyKu!5%<~@AKlrxkAM7GD?n4?t%edBl*c4To1S6J2EZ%Lt=8~>`w5Rb#o#_P-zohNH zQ&yL!0O<^G?}q2S3rh^%MMm;6ADmLpcr}N3Np@5i%l`E{<>TMFR(|;%rnnfNKi1nQ zhYoUfKZ`#09_EaB2;GkKF4I2lmb-(BxQqeNdFd@xa(e`OZVi0e1+Wur&0XWHzpb+C z-OrW#OrzanO}z(TQUhMyS;f2qg@uRu8h-B;fBq{sbnH zsj_j0p_bNrnN@r^#8MkTJBkfOJ4#L}BAq?Bcd9E?r6IpPD7*!aANy$DwH8#?+&X(S1`C@H6G&-nMs&G8`x;iyYI}Ea_*&4 zp83i0OaJy?DgW}%{Y-h+$;U#+ZL9kufQlb`<{5*6mFe^*vZny2~U zU)_UrVd|lO2M>|5K3~Gci6EtA)n#aJtjeC`GKb3k^>g#(SI^ulU%t0hPSK+-xNMfj z+sU-tzGHjKF)q_oYrJ)T6C>atOKI=IIG#xD;UHeaZSgXh*8S`Vq&M#&47OMmXiq(h zCUGC)+hT2i+Jf+8!9@fBjSm()UTO@c=);hVw6QU8)tL4I>g`QHJ6US#aAJjCoil4H zIfjJWB3S_gmyuy@O~Sv z!0}Uf?3LqheF-LP^6-(e!P4DC;!3cn>IzF|JZyiBdm29-^B;MF`Ve-PUN;M;U`*Cw zggKcC3?r-dJG~e<`J;v-lUoP#OvRu@1h4oBi~?gXFWl_Mh~ZY1-(J-^m_``Hv1>IJ zE;G!!22RleSbnT6!n+^T`nF-tNnqN?=C852)67B~Ef`Erm0 zOxnlAn+9Ibb7RjLc}#74;JTH83X{#-!x;>sx|1>Y-3i#n0_~2qvq9F51ozQ zT#dwc8kiV7Tf#;;j|zh1(-=0$Nu~fxC7UxJz1w$t*FTNggR=yS`y?i}>{HIuG!0ErHi>Z>ffRJ+?iRLP86(=+g!O5s8+*)@Skv5h54{ z5N1?P^2pSLJMQF0iCROYs{z$U97ag2{&X<3JLM`d;b$+O0RKv4`G9EfH!koFoLxw; ze<;Idk_Y_sAQjdB&QHOWK*DQWUn+KM9NUr@`}eYu5JBaxK_F!}pXalyP3=9)xC?PKJ6JG5%QU7F61dd?S zKoytPC&G%SuqjOa_WTAB<8TWYq9I~L?JZu1fG*Nzydxlb+$9OB=scKGo1VA6f@sI2>LdpL?>YpZoMZkR!yS1-lG@y+(0*{#JVpv6DJ#TfWaOJgw?$5bs#>A2(DZJ z;PPEG4zOAoB+Npcj6gZo#}*3%s_HZ@cZ^RG+hO=e6`6=V&NvLAn~8)c^HH?SogM|; zLYe$v4%#YZNwmojf6F$Xu7KeI9}GuwS`TC1ZB|rfA(2c%JEv0My$&O6JDhl<4YN+b zUYd(h%bv$!IC^@7_x5djUWDf^>;P^~+QAdNk{Lok_;>~uyh67yy&4VSSsf`})k+i^ z)&qeer3P2pQt+yRLK*?r;$M8+x=;q!&LOl(&Tt{c5I1KtT4(Ydhc0ZFb?h=bp~3ZA z*V$*XR(2x*w)Y+^M-c+AV^eznp*`i-e(B#W&zw3z^K%Chc%0>88aEjUlRdk9)>L}= zCwwV>c#jaEO@-T=og*~xm&fEA<1{S*jdcTo0)RL(O-4N9x{Tv*IKLFevsv6*{4lT? zo0g}pspR@KBZdGdovcWUYaV$wsS=g6t*pS-!K0Nk0>p2A3IyE_)cGrHb^Xs@x?Fzi z!tHXHUSfhVqngzc2(?$ThqRaP?b}_pVg9MZ`^t+?9w|G~4pxEbl8b*JgazBwakD)s zh_{!`I(Okh6%T=mTK(;X^=H+f%XqGo{dDjk^{2s9$u%5VzV!q)m-TMm zyPIc@+@e>my&CxwzbC=k+bDb@`Kct@idOs#LBiPf>{QUaRq-V<@(GioL5R-?Qybhd zwkr)41VL=j#vd@9X-1w7Ek>Mz(w69Pxha2vgS1A0fXy!gKtU)|Sr&CouhiN$9HUT& z5bZT(Duhjz`wCBbQ2eP&&IbU8THLcZ$l;c~F@h?y0pc6Mn^TuaF&MXe^5xzD?ncL$ z%It@NkC_toN2Bs%H*iKop^&4-g;Dr{Ap#t{0%wj7W7wgs$2x?|c^~eV&{zoksdr1~ zr?wOEF8y&_{NO%^!>ls=Q)W41V4buF(B5j85n6z}6~i6^6FTB-A?$+7Wn=zY*?HmBM~4EnO859grH1prh4jlx8TN)eLhX&3kTAZ+4WGK? z?Mp2v<;OpNI(UdHoSt~2!LK3#q(ameFJCRc|MsnNmct#Nq=&uCT&!opPa(a>?D?H? z%e=EO=Ch*+T zr;s(C1O?7;Gtp@Bnm?((Z{RKT1&@f&sQ-E=Rt>jFGL-AuIz~WyilL+sxnvZfz|-4p z1->z_89d~O9|2(H3214J(-=JQ$xDeOkd|jWH3Xl-3J}q91<x6hTAzWRFU{m_TY?V~5kXU^QjN)JPMULMPHRkiIEoFm_I0}k6iPkr!x zWe4lCx9M>vAULm*_NcCFY@r>qS4RR1gLU?Zs2uk#F$yRIQ#bbj5X7I;d+7bQm>F;p z4}c|3Sw5T)!WIQXw**?OBe>UMjvF=<j*CBGB(?8Nw(I-ADyaGh3lAb#q^SdS&sOgf&j` zB(6`}B4K={IE5y?zpEJmhPs1ywIFchk!IO5ARaQ!XWjX)0I}y*up%HF$7e;K;|t3X z9y1qL8VRKv6K1A>cMY-ba@4lsiqHF;DRA!wpcCdaA?2y=_nk?g-c`t&1%gbiz=ps% z^ay7r3rw&CzkM5}GAG-e`^f#Ifn#6?Kp*Mx%= zPhl;7_dQx*vH++Ctl#ErUIHxO_QDyfAn`qkb%inSU6$I;-?~%g*@<_SE2`gq=URE^ z8j_cEJ5WQXP^G4ye42INAbXJmJZ>-0bGxFA-quPZW!;(g{F5hG%FA5-L8g=-mKD_g zfm1~gV~8^iP5ps`zX4A8CPXAey5Sg{df9_mSFihW@yD111`*l=r9v(tMN$vuZm*%iCh%PpwE5o)H9& zlQRZ|sZ=#h3y}wIU=xr!Zl?yqY#aJ?@GevN3dj1$Nk;Zs5ONqU@eJnMXhzbHdgnXp zw2Z@-Y699y(izv`3JD?vV6Y5D9MTZIk6~=fwh$Jl>Oz6UCTyU<@kM5_JO!DIsL*kU zVjBJ%CsS{Ju)e|Kdy}N2Eo&Y57B3EaoH-F1^Ye#`FhbBLj#GjJ4uDx5K7u)igD|Tg zj-(;m37Q;mq?*0`;Pz$wX+Os0eKe4WLts-b(YV-}6n5g(5Mgq7#9LsOUkCv{;|P=| zK8-mf#9%ole&|qc&Ci!33?skF3B~{DAOG|6-~QddRrWJGAYZ5nIJVa|V3k^j+EtIT zy3Urc;6nk|aOX4Lba2G0rqJpWLQ5vWmT5#Bz$S5hH);ws%nw}6vcCIw7;ZkM?efc$ z@0MTlSAc+%a)aG>*Vufscy}o~?(Q>he(Ca+a&7*0xdO9azwP`v>J<6SAjS9W!eUP8 z>lphMFP|%ie)vP>DCfFggFqxx399D=Ki`8sb^)aRU0T68bI;;mllkfS#m{|uhB08< z3ar3v{Uknq62&$>wN;6*vywKVV_M*LOmB}paIpzD`3513oeQVs^texO;1XdroD8^b z+yx=M6Q|1fp`&FBW6*#@KQdP@(r8fC%{mWlPeh(Dftz^DGY4TxG+Np9r`Rwq@CCRq zwT(?){!$k+?mXHnK0!GC3P)QqV{9uELkXUyRV$EdZBZhI7QkKgvm6Onf8J$K!7yG3 zT;_$y@8fUp?y5R)lsao;QPUxfLe-&1h9Ax#1O~H}c`6*S!7xXYp#=6Gr$&>WQ<=hC zEZY_iXD510!woR{re10WVG_RG7OaL~mI_I5SJ6Y=tdjoRS5RNTN6sv?Lgbls6ttUr zJ8s_~KAnXIIfTCZ55$W^w53o~hzX00qc^xovmgj#5M&%;j4@}UsC!0ZXm(BsZ=+dk zfg_E<=5Z5E?>XxG$*;Uw-u>kNU4HRz{57*od41BvmL{Dx1_us#D?*d^z}5N5>j_5OBhO-POW;_ElBm0NQc$`eQ4Rj&1~ zfOxL3mT^2;BMs$3oYgXS;c|K3U;goO2L_sW~H&9adVxKtg9>i#7)uw0Go0R-p|rKK5wT!I^Vq`zAJm<7^Ds zj}eQ;Uq?XXq#E)IK4mK2Z6C{_68yTxb^J`MHYFH~b%cOX!-WQqI3cs0NmHSeGL!c} zE5As!`=TOMIFkqeb!n^mnzZ#>9Hq7iv6s_y5!s=E4tQNt@2WbE5Pb`6lVjqS+rYzmktFnt9MxNCw&fL%fh z&{;@(uRdM;k+2kMWHa+&UOwA9dCB~@P}M*2yPqll;eYjy%Lkq~P@a13S=8ON^7v6E z@KB94EIAABiLk4PZFjfD*g`&41!6V;Nq?W|xVvw^S#~}46yr_^WG6k2>+BtG!R*^K z$R5UL2jBN>S)ym924xWf-Gzi@aUcg>*=QZOl%>!Z2j+DNkhGI%2%8`+h^GD$SY0i~ zyTqhL*dCMjoP&LgLGy&zMB=63P*c4cS)j#XFAlWOApL&NFec1xQr9o zCVVCqf6*j((q_p!_@wuC?%j5=j{ejLw1Oj%o8?E||6fHR^<|@uoZ}sU?z;gK(cZ0$ap~-VHMopE%P+z3|_?6?$}d=VHj`jeBpy-z;e~ zhDIRlAm161+S7!g!XUz+YfoN{FMLU7SmzXS@>bQ;i@>F=`Y^bj4|H@@SeqsUv0RH6(R|-}kTzNCR zXghW;AoHFl{)YIg+kpj$Useto2y@BQI{#LQZ4@e@zwx_ggoOUaGd}*QAn%FivvZL+ zFr|lAe)StKmp^#vYvt=-d$laznq%F@!Lop5U)mbSD7Qi5dgJXF7TE}lPH4DM!hBX4 zm)*F2HOFM{+%;RqxWcJFkNw~*yY-%Yp{zMS%|@Th3nNvXs+%IOJCuRl8H@d9*~?yW zH`MeYYA=YeaLe+RU13iTNSK{%Zsw(yc2K%34R)+1Q#fYXIQz#p7j9rIWc3=o&c@uuiZ8O*qO7ASwg2xOW94>gs%JTI(Jqd`~4pM)Kpu?Ng zp6tSW)G8`IN_qk3+6U`1B#!NhD761UmWmY#=r2&HW<<>>8WK?`T@ znQq{eGQ>#U^oUuVM|udWZqR{Oo$u)-8|j1H{nO)4>x0!M@} zKCjjVENZ>4BrPHHopvP%yyO@%4$g?t3*2mTCqa+%4>ZJWf#2TzrHY{JI3zx4>*5`V z+hQrspC!ng>Dg_Mc;ZKSP4$+?vi2cboAGh@WlRl>5mE{v85O!nZx2HoGxfEuGMjNS z2Jc|8p85w0GpzLt{#d(_v@32DV?)-{?2*Nz+Lf3A{1C0CcItWFClk9V`EDeEJW{cfNNy9T?Pe;>`E4*_qHrwZY2o{RRJJV75%2#c1E5le(&ka3D{iyd9w z=9}J0Lc?H~URYwJve8V~n6qhGq_)P%t!1W)R7JV`BYW{BS|xdwq=Fxee-d)0&&&sA z?|DugtJiwF5iZ&cnBMF;ZI&a$YzoQ-)~MWFTgX7RA|jkTq{t5Y!0*4VV zG9GDKU=7o|f{-j?2!q)@YoNbtx=f*^th&NZ<0J5=T|H>i-k7Pe?00ZQo%Ktm0@k@0 z$*8}*I)!DrEkw^ZFokd_U$_+xf#3Q?dYA`r3cF0rdsvL%sUJ%i7t^~)}C9xZFde3?Rkg_Kjw;Q8|aYo>0im!y!|QI7z(E1$yxvsPns1z zg@bDiq6Jt6Oq4p+^~W^kG}btZ;drZXAN9C%foksRMUbV4U6`{=aF zpIj;zE?zFryz5DtqHg{P&vtN-Bjs73nO7IB7X0-cCJ39Z3&+kSgnris>4Fo-ceC*) zfwY41)UOM(X(DyQM1IsTpXvFr++OFV)sKJbbLGsHn`Hru@GYkHyw~2_ZVnzi9L8IR z0h}rlDdVJ>VM*sC%(@D*DJX8k_&2X#V`nGZDyfWX@24>0X^7bl;d>Foy>k1^_sYzV z{Y+Wl#@{g*YTL8@Q7JXDTqR%c&f5WFV{> zpfql9KqBI~Of^P8kl<;(TUw%d&y*c`yB8mwM8u*guyDuSdRiM@xrQ}3<78oN97fy1^4z0dWgl9BOtp_V8VHx@rQBgSY+GLF&18M^kjOL&wj;P>v`{R5x0sb#adDGsu8bg)S|%HAWVX6y9~j9f1fA?t zNG;3qP2)ITTvQ1|eSrnsd(J}WiSGeZrwW8hljKReX8%LDi}*4%bub_6Dm(yzKlw+f z5XU+Ss>$)z$5gTC#{*o0!-2LHj}b>mmo?X0FyxAnPZ)_WEsM(_hg^Uwxu=qZTNnNX z4&D_pwn2K>T4?GR?JBAbpTHWUuu=I1@!)0}Y^PcoYcnC#sV+bQpMah)*M#i4dmpypyXq@w?T{ zC~;jJgCnK8I9(t^UpC^;V<~CL={0mtA@4*!F+^Tcmv*%!VnO~#O40qB` zuvlg%JMDI02)qyT&%^ZB=PpGBoZ&1tSH(@jpgTGJMu5f?yZm=Oz|@|-W$EQFm96LB zU-}33vv2=;IdGEscr=20j8S(|V_9aLp5rP#!6swNeZaikA!Q6Ct-`=cXr~%;Vhg=q z7Km65+lf7?N2~O3#hp9*BvKngK!DlaF{jjuM}-J=v}bkk$+q*#5*zU32r7Fbg`cXa zy&>>rg`7;MVAy{s4CJ|TNWmIcjX{PC{%KsNtRjg)i3|s=d0##-JQaU_meU^URdmqkL1g1y#F6&@Exvz_=3%VUV{;~7Rz3{axrQ-I;??$dGdWCR}- zzmC1t7Hk{h0>>6`30?%3NPt#sy$r9UJMpM)gMiR5XlJ?sJ-F_laVaAn%h&N2Eq9TP zW|{uxvkD<7fiz9MPgMC?Jn>O+;9I^TR9f8OUH}ud@jofjSfW)|B{G>w%$*y);b&$7 zptN!Zpv4zFrOg-r?3MD`6%Np#^)BAH$x7DSWr>|o>+X6(bzDPDoMK#PuRezLa|h?M zP3_u6JcPv6xpMi;IT&=a>|qW66l$@npeFb!)pVH-p==vTYihahX6c_lT_&FWV3|B| zobw?j%9X2k%1+kePaoJ_ws!Bx_1SxE7}DHEK=olfPvzN!`6Zqh?j$Ife@ttv3wFYD zGAOvBzS$z0p3!d^9%3fVHVb^zWWt;Fo-I>6?kYy!?Y)Pr#)=UFflI@i&LRkmwV~; znPy`pn#)qN!G+#Bm6a(%H?{3E<)}wMG(((>W|>%|nY#iH5;D|bS>Q5~H1tpF$TTvc z(`>GlNIp`MKg0Y>USYuMonaQt<6@r&=pu+ zTqbW=KXWpfpXQ!2`HsBBvkG*YRbwCvjyx~Wcw5j=mZgI}4U2K)A+G(!r^`6szWc*9 zttxrr*UAu<7y+YZ81d0WrZyHXdHJUmhF=;w0fZ-3{nLPQ-SXK>bLDqmexvNdSob|H z+PLuMTWs1wePkhnW1eaJXHe6f2X&X#6vnj~40Wy#xOV0`|X!LQ^uZnq1^^jIEV8J(|6{ z<7oVaBN~(GJYmK#8&={H=^d`4di(Co0=5H>@9ufRjSeOoaMoO=BstI|o0lXP8$&IH zI%!SM1{j&fthx1g;s~2)IEZxpozvujz%&lRBp%R0G~?oeLxqZk zCglTI$)^qkNNM?Y9>DJGyj#1ssgKoirY+UuodordV}E9cdhD$rRjdyR)(tgFB9F7W z)P-%Xk8v~72JIEFNdG9ai?^U8@YL{>hrh-7ZsInirxmKyQFU>;BI}fmgiGc;lhhKs zN+eK!zXJ*HL5eg|<4FW-RN!-8{|Z(`Y82%~#+d)JX_`8s^v07GWSQt6NZ#s#sNvU<3|=oO zW&71XExq^sL|F!5yBJQa-@1XiOD_cyUG}SbCK*k@$e_0N+RGA*L`o~F>S};PsA#B( zRv;s~@kFMkcdu4`>TJC=knsz%W-3SALQt+qROPh=7z${`wwK6smWDJdqcabiDAIwa zb(ff2%#t_~C?3MV!XnSC@7;%i9XC#(K`7`LQssIuxeF%9ZbR##^UgXoh@FS19>W}P zzs-z8NE7W#;S>9T_KMEcp$+iS2KgzZ07@__Odaf2&Kr5uRBST9&mkmAOYtZ3iv#0< zlL!;58!e9Z&5Fb>FT$e=x85CLovCPXVfo~#(6f*j>x3yJag8U^bTNUWeToDL8Iv(V8ikDWYKHh%q|l$|G@D+@dK)1dSMdv}*L?)}@d4{Pti zz3jGPQw2TIHdBN$W!Ch2zCVoZrJ8*VR3Y9VQlgdW$wxz6#*bYCLoLAzcubF~AYjHo zLJ4MqpRU(uI?xk^!Vqc$60-TK{sT*T{LJ-}GQ?h=S-2vR%lxV>FizjS2h1I3Mcg>c zRA<;^By8SA;51@NCyi(1xvY900)ykhH@NvHJ+VxwFmi`m@+Gb+j%{jhPY%hWW2$hq zxRz!N6ZJByez;WAJSA>FfIosjxE(h~yC6rh?|IFbJv#4Z5bZ0yJRS-@1zw&~9~uf& zs9>pu)S3w$V*@;enM|Ywaq5w3t^(cE5Q~eD5lZ2p%;ZCe@W`x$D5z6!<4gNKse`Em zP=l&yNtksG&*(vn#8VSxZ9QHQ6xLn5DJh)^A$#*Oj;S(>VH^TttTm7B=aAYVBO#E6 zOiMc84vcVu_5mTQIn{j0GWln9ED0*y`T{b);WuSi-a2ibA&S5oB}NSa5NHbx(yXt* zJjgJaB{xAZXM}|DeHT&-;3@rl>-(oM*7eFwF4mZ3-gxH|@1o-CtgO6KE`0wjjD0)G zQclWca}TGXOwyw{-@kB+t+ZsY4I^vt+eO$k>*yyioGGx}#kZDu_iA%+xl_fW#;rg0>P{;zSq^3P=TQ+==b6^>Fp!>Ceo0LB zB*c?aRYTJwI!wr{0|f$4H4qX`Pg@VI05`76BRHCo>G`tBV$@U3r>tu5A&k0&`71)h zl;*4O3r;C7d5dHTUBVT?ie~WIV`d=-U%K-VT$CMX2MQzGL+62&3LRA6EX{Ro!ZPE1 zXD8A-cU_9y=!=M@MOpOOR%ML<^3JNt{%h!U@ zc%*q+pQ2Q}ZO0Bi;|fPUi9;Qtpy*FPjYht4HDb^}oAfw1Mf1nz7MdAu8=Se}OgUd| z4$uMU90$kS8Gnk4PVgt=I(=yFj`gcu2T%x$cFh1`nOT`_+u!)O4%ECW0OC(r_?Bml zmEho29x+}7KzewfPo&g>gdi#s+|2cR#3h==c1+h!_%UPin;?P*Yrc8;Y8hiZe2Zy| zF)Y{~bG^bo{Ux@@uC6VWU98|+M@<{!!bw^uD*W;tw$EzZ0-_BT?Cj;dx1G#GkHdTd zY#wV6uq&pxW)b8mCv8u{k)~_zs)9bYxO`*w>8Hx_@BK0dOP(zK-6x>;JHRo+ZM#hU zFyt7Qk+FamW+w(5?M;PfIfw^?7+7XGE==MoLWxg8q$hO?s22UGx}5XYa~ew`8=@Ip z%2bX2)D+a&Y%qx)+;{k~X|Xd#eGsI)(iQsjIM=uU%K>uMvb&Zm?a2TP3uL z8_P{6A~Ex8J!IM^bt1V8sDRm|M<*+-`&HGqBq@+|DS`ZjM+TskYnhe}9;}Z)=*ppw z!a4Pj;L)67h-JtXx4t z|6}XVVz=GS`@Zja$GtbXNs1IjQlutoOl-?>J*hF`wn+z|F;E9ZeNr?iiu$AnZS6K4 zPIA_uDT<;fYPU#}Hg!fLjt3-_V>ni1)lRI`mM2NpU`>=LisC$M?%|#O{eFJyd0x^& z?)QEE_kFM7TGzU!b*=GUyfpm)|4c6aXX{VD(MbLdLJWo$x9Fz!C~yLKt=NIwa>qvL zztpi#-d|)PUvD`9EJ? z|D%8G@^+uWdRA-uO1ldkK>4gW?+0}WE}v|}2bVEMIqK`~D}C+Pppg%K>Nk=-9DG-w zebS%Lb0JX9+xJzNyXNmVZA2(>S-&3TxWgEQaqiv;HpSyzlw=GFmdz)df7X0t_^McW zq7mbwOR;0Vdd@(d(eR1N5h65*HuntP%~)s^6TUzYm>D%n+*$R*A>+4k0xi&$en;|3 zUR_oPD->;B=`6stma9szT$6|Hm^n$7r*|k<%&NrzsW(Q=_;nXiLHh`Z=lH)%-i?iT zNZ6;WrQa){>XUb6aFth*A>34CsVAG@Xlcb!a%83zf>(={vE3OxDbxyiJ;9|c~H(TDP$c=(?@`uS7R_;I=f3LsY} z9Dh!mVDk?{h%L!dms7GVM4JH?5H3U8a~BwNa=O_wJ%o)gU6v)*a<3)#ekgEcqUVG9 zwQ|L~6d;|rA=&fh76V!tmrpeR{<*I-AeDO!x!XLY{>#^Lv$^P2*-d>z=oz&%f0H^6ygr+h`2`W?IE<&ZtVTYyDwk**Zvom z@BQQd&&%iE{lQLS{Y+DYAJ5fqO@MiQgGHbHRC1PZMND6cy?e`E^PW3gbVqhohbgVJ z3EA9ku4mJhmnRVyk_}qjqo^HD@uG2x5+1_qXG?*DJ~$fA{-GjLPjD%!mcyW#maRI9 z+$X`qYpK!prc82|7t`+<)$Zsp`L>JA8icv+2@{auT6H)Bk%Hus&R{W0!2oDNn$fsQ zXo2Cec*>VDKWfbd17-xjdJUm6pL$T5aE|jq>i@z_R^wXzOJLu--q7NI<(v)^iR&`yMgbpyw zSXF}nV~}^%fFO?x-h%1PbZ74cTyeZ5yy>ZI@;G=$8hIWn$jgAa4|LT?&}6t}8n9c* zOY`+Vw*tV~nt%lES3mvP6tWXd%L6tzl;7#RPnySmrGdTe*1N`Q{goDk@VRRxRIB(B z79;!1e@%yo1~6W0z;Iql41Cy{fC+E{!WwQ_@LDF&B5p){^nve5QL5dWpRHy8%;iPX ziVvjy)URFcKKseSej~-rief_3MVCB)v!}o5v@GuS>T|&vhy?iVs}ZrK#v72Muv)E1 zX?gGXZUj4deWAZ?!41I=r#oE?ckfzw3XRhfsG>GaRy>076eb15j}Gz_M=6S@Y`lwo zoK#`f65uCqvUlSUU~E}4CEC~nJc36C`lkgN%x+WOvJA$xf6Dur8(&%bbeFomID>0j zb$F$7T2meTZll`4afSD$InA8JjV&9Nj^YoAIMge)-*u+rz@dx!={T>I(+w!WtB^i< zM>q1)0V`Wly^0j4K24YIOo1N3*$>Yq=eMAvSRAfHdkJqBeYiefW!l><#dKu_>F)>k zDx18CQ-R2<4#|XWshs$EpO&wCP*9JB?w@JcDtZk}nejT>Olz+CDgOh8v%50^U+M(e zzIp=Fhtl8H$4EoT74G?E9=sHGEp-oSe5;5;`oD~8)jeP1J+3yrzq~vL@MeXqQT|NF zcQG!nSa8zvT-^W*8Q!T&@J{0cuYLG~hgoHv>q7x5)B=b{4OsbHH(7*}_0WumPkTR0 zfuv^`9<+GKG~5o%OzWOj27>D{JefNffPmc9YCDqo*)RXh<;y?!_b-?K(tjgXaivmD zi(w3g<*9V;SPgJ^Aav)v-L-MaDDK=mBjt!fyPLkeSe@12+THcrb8EFRD}|o2>vN+l z!w{}Fdd|Y5m)2_2QYB*)c#G$aSf?&r{_ZnQL7F=py*8y}$XT}_T5N!iL9zHH zMLjG2&>$G_rX(`88q&WZ1(z!?ha% zRRW%F6BGQ=qf58R0N$idiDx$87|`mE_V)hUE^RFZ#r0V+XCs`C1573+%nnR7gA=@s zpR6kV3HIqmM56|dcZyVkU@P{@3FnilztQFxhSPN|^T?tOt}`Mp_1CW{Q?F8_V*Z@B z0iD{;E7;U@{HX?|Nu_oFN<*dxziR2KwU)3HSGq~MGHiwvL%l0ocflh_$>vN=+vQ1Uar?FTB3yoa72fEm%DbI<)m6Ku2sZAGZ*=s>=$AC{s z%J-~1uhvCiWXyk#xuJ7f+q?%#gn|+GX?whX`Oo|xFYo`S{>bI-2Y;}S=yqUe`JCM4 zthdwes7!8dn_wp38Jr`4DIcq;!qwy6lMIG_7{EWsH&ZHFfA`CV|1Fyy|&Vn2D?T4-& zU5r|Q{X1cYhbLq4(Q$F`1e@L zfcxFxu4NQny46*A8H4^^Iv4Nqt{R9EcJ;SZRW+jaA9)c;)My63%KaV}!7*Cbkc<2AQggLMZg&LVSlTz>Q_J=%>H z5lI6^2}SLiLYE^?$3~s!rsn8Gw0oWhW~@hkO6wT%XS}ix+-uDGjV7m_US7*%Wn|Fo zcp9gyH5ST|x$EW;m^q-sRWpBk=}3)}r^WI!ZPL_@cougIf-}*r1`9 zlw>Cr$3Xpl7sKIVtqqJksq*tU!Ut|UO}Fix4->F&`ko(bz0B7xU+F8Ymj(k(^KI0X zkOD)nw9Kv3H=3?bPpI$g;2TE?QA`T2d!0Y9?+0js-uK~?mvsh9H75AM0yo@7EemCO zoyTCdV=Z&<1#ZDgE$mU)BTVZDD>_(}oWK%1FpD3PuVn%5m(a{$%!Mq#1|t*p(fH2b zqHuHPE4Mh_=ajd*D?G(bm_3WTUTfu7mylJq^BK`88k@)85@eRb$UCoQ;|^SZFe?*X z_1#MX&zD~iikC+Hwbpm`JG|P_Z`OoJ2c9a%clKl52K+E+Yl(DT!KP;6$e1rt3B!A> zVRaw_7Z3Sjc>Z zv%EbIjKAW#yh{^}u7nWqTd!-z1(y+WE*w(aSO5S(07*naR0Yi#cqwckukql0x@o@O zF!+}Mkw9+0Tl!jx{!W8;Z}fe)w`%?0uCM>7JM%VurKXNb6l zrqHxF>X@?Z)E)zn;d$3=gyX#K`TR4NzVU-fUipnEUM~OOCoY%Y{FPwU(zJUq3(z7x zgO>@`W&{r1colO^2@6l7dTf3Dn*Fj7lKSpjK%#X(+v)>e-vaBW8&G&mU%u*zZigSF zU)q>WQCMP;x(Egqz0?{ydB|D*rZVqdDGdMnHw>kpkVxE^eI9$OD)_LwPL?Q7FS7%@lrfXyoi@v@e z;X4_wbsP{OH%kT9Ndd=GDMuK++WP)i8myrFU-;xFFK@J_|D8tHHx2jtyV~a4==t*$ zs$-ufun~02A1fP9jKBu160)ZW6!%E0$<=v4koy_@U;u`H`4|FupGwQ!3Nft%y!NTB z(7V@hTaUlz`!4rC^@;T#xy`vL{SpQj#v7E;w{OMbDDoa=6fa`BGwY$;A zs4aEQnAQZX+i~)!YwHW1wSMBQrcmuqxT~I<>{r3y!eLkM^#Si3@~PWoaZ+FKvA^Li zdAUP#iaAuu<3FQooWnBb6yHw1BghyEXnzzF8XG(tA$rcJ&#Oo_c#>Roqx~8kvb_c) z*qfyQCvec5+`I1u{Af!_-OJ0%@axaPgF%f4XJ$aYnT_%=ATX-YQlaIo5zD3F#ojLR z%LwT%Z?jnMyOen=qcEQCTa(YXFaP47`tz4x|LhkVE9;oKjDUl6HwJgrLG(d}=|;eK z8J>Yw)m>lK8X*&Z%85>s4q6i_t8Ff@E{@lwV(N!K9>5aDdsy) zJxvfFw?XHAjDPS-jMh?tSiYmM5hrFl4vZq3NtpW<;Ps)(zZnEX@A*lU*T`)eFeTg9 zQ%-eeSVn{hN2yHlJ^I*pchvYVbu8HP%LiLUXW#$5j_BUvnRwK}>}&NiuL-Ij9Q%1s z`7f_z1ln3``|Q3u_st*eG@lPO4$!X^k9R-&(|I=;2~%^*Bt$W1iWBP}IKN)&kMdUq zL9Iwsi`ME4{SRC=?P` z+N_L~lVCDdrV<-qyR(15@?}cj&y0f2PS)9XFk5x0weM{Hd%5HHd>-qrR)11UT`HWw zYWW!{v`EM;20HG3M)qN@K3bW{iT3jhpjJ`?WIIE_Ov=|fsYk2tyMOxkGhUPm+`xOk z-gQUrH_K$b0i{|Op;mWSIP8NUT7G35%1@T3_=+Ae4i1w~bSy2LT&Kb5p>WE+Re3!# zD4R-;w$~~wi^hk^Kyy?H&GAZOwd-4E{melbM8vu|4b?Z5F;mw)Sr zf2>I!^3lLxJoB59m*?wsI7rLuiIF<^ADG(@ z>9ehjYf;Zm>%DXwlu`W&R~QiZ49v?f=ThomM!~ZpkkC3dO8E}zz=*am-?dEhNk-uE z9p6*h3?63WO}wBW3A9gyX$fXjGD3HZ0Jz;xUpApqwkbPCz%cE+0t7FdYe@ z!0Hc&AhZ5m>O8lcfx)-kd#>E)W(vA%FtoI1h5%Om)YDa*kcIVEozGja(M8J|k9UFZ zv7c3hJ5#cku*>8fLmQDn0(5DZUv36{kGG_j_1gy9Mn7a9ols54xKhHPE<~eOW-2f2(j) z=(pJbF4wb&`nZc8=g-tzxq>u`|{@dzU}fbZ{@kZzCJO*+L7MsMWL!kEkB#E zrKxMxQ>?xU3bO+Qc&A~?`-RBQOb*-{`DOTcKMc%_Cb)(6n_M0^o#kcS9L|# zDR0g41UuoFU~#q6j-uzf&O%P!qsJIQb0Pq;Y1tSb2lG=l#>6yBin*z`2L4t?Q-hPe z29E}}zxNCZs$BVJoK=V-5nY3L-8Zu^TI30=Kw^FJ3{FbAfzly<&>95V9nV(hU{2{8 zJ2Aa?54|aYc!PpkzMgwonITj6BJbkOT>Yo5$C!~S%$J0R!}YKFL&D{mGV<1p=XkD+ z`>kl)G}sbF)5@TX=R&8R6id#K(j(LvYd|F?3SAUZ?HLX7Cp}P;(cL8q#y7}qA%d1p zBP6YjKx>K1ygC2Eq}sOb<&Q_`QkXp3?aG@{H~1Ix>lw9g{l52H{>T5ypS}F!-}P;m z@BfYuH=}L9m1?17FbDUP?eEHB$huB<;Z%JAHzd74(se9PRi3b^`Zewve=A^#3zP3_ z4f1`V_5P0Re)GEEM><3?lE0G59}M&STTxg( zgmCzXlYwAseSkYl$0ef&DhYNj(Y#p&iLnMKaW^zEu6aZo_5K# zb$J5xTI>AZ)q7(UFYLeP{%ff|(E0u!`;L8Ma0_D$AR0`3t3j_Xx5(&opGq*A4s5-_ zy-uFF_nyWM5DwwT)XIZDA@$WFE+51hiHxQ}K>f*mwu+GuRvH6J`Z`X|ar!O`w>+1gt_zD?cT zGcGd{Tsl_=iGd*e|28#Y2dVvf!dX*|8HM~!BmT+bPLummtRZo zBOG6ej&C*1w*^GOj(ohiL(J~cOb_7*P!C%0!tjzJZJa0>Th}kSTew*U+6~MSBfM-! zcEQ?ma*Cd84YvDWm!`U}Q8}4r5Imv@bB%APP$GXv33e{3o#$)1wZ?g5;2p;d20haU zeR{@wafQWqo-KSs`{nh-ac0VCU%kIDRKFSg?q9G19v*QxbFTH zb4~aX^r?_U3XlPy6)vo6fcJELF3rNbSp)D^eMDV*3i@hpwZlA~wlL?-76EP5o>n_1 ztqj&afil1a%FO`Gb=41LYP+;V^2}9?L60NWD=E=ywaR9fASmTC^WoC7ERo*VgV#r^ zg?Yzw0{;5z@4vh&!|^DEdhPukuwf>^KvV;MN#z;wHw~q{&L6nn*@XKV?R!i6k#E1; zHD+LO#^oys>Zg9OzW*oMf}1B$UpOB>BGh_)Eo1PBUw8>)N>6~ziAJA&q;hl%&+#Cp zM+5u8x1){NXn8YwTPL7JW-Mk9qDuzzHYXn2OBd6%l%?NRWm9nV-M2@8aU7gzBOfsx ztl|?kU4?txZD9rp+$q;68tn01p2MpRO!{!CZh&hZ!bx2P%SG`Mt@wPGN9F5Cmsc~U z3@XFQ$TrY=l(G8bF&StJ_}y2d=@&nn5vyATbbLSEveM+?>_Cv{NFDsl;|rtoJM^;m z{!h7(*Qdm1;7Yxgoq>?1`_xj}WCd&dR;IM)aepbXfDJ%L0=D>;UL056=jNWblJRLT z4ONG8Rf-l*oBnivRv-3R&kh99Fr9@{B?`&gG`7u14|I|8(u@V18LXqU!)^HvVr1nv zYiPf>ZS6nuBY*4i!+-538m7v?mBv?tbj9b{wm+lw}uP2@x;-npCn>(v-{hHGGESJw*pArtJff=aso+dkH=?e5q*yb`t z$rllIM}Tn^ql6WJM*LZ8cu)}g0OsOU0k~|fz)(Cy*7BWAMeP#&$9`W2ZGKyQsyO%g zcKq3Z#2wZD(lTXSwx3_CHP^a&nzi`Aw_ffU?2AfwpZb-{<(GdtVg2>(t^@x_P;rb; z0&(v*KY4`nv7!+UFUzTn=sHn@ zU$lHVT}RNPJDJ!y65;3B?or-~t=v-k$!D@HR%*I zuHc1e%o6zxm$xxY*ewo`2JYmM`(^;X(pvv79cpn(!Y6f-OaQYK|*(OA#9iiLqWD;6BCl$QQ!Eu9$yaqB;dK$xLVZ`^-6{Xd zgPR|B-_qn60}9^{(3Ry`SPD-0%YEwK`};DOolkJjrYVUn=n34){s_nvvZrFe=9lJ8nwQ$@o)X5 zzuvmE;6)cYwe8b51Vh&2FjWOW}T zG+OG{T5b2n=RbFO((=XkG*IzsM{^-PIk;ch6dIA9>F4xLVGnB{+2i12W-n3H0i8#1 zlb3|iXOz4@Xy9u?9W#0@UGZ9%2~t8Ous)zQ1#i6hYgx{BT^|18KTP<(czN_KABq7j zS2l>&IR!j`efUFn!p4hl`ap`G09XFNwW9IvQ=dpN4nyWLM~k%r&__`Hb*+!pa=-L* zm&^Ax3qoj3Y0Ztl(J#RyiuI*;sD(0YC|Z3ZQkRs3YflWGve1b_EQ$A`uL3i+EcKPM zU{(FYFL&3Vb~|v9=L8Y9fTAm&I6iyn6(sFVT2B76Kn7iUpAmppbbP(;)O%C@wL%GY zxSg?ucw&SWZ!G9>T$j&p=`;G@Z!Uiiq0ohg*D~S6K=+TToPXufkVM;u%Iy+wd+qSP zYN3TuVGt||oV-AP<&_TV%H6*KSehlNUh~#?Ez{I z(?5Fo-9PYMmp}Yp{k=Od$7jbMH$c8Rm+m09QWhqN^iAnDf7$aYiAW+=o8bnph@UG{ z!800!xl1~6x9h3XbYig9`ca!Xp7(W=w-fpoedXp|tqm}r{*FFy3ioO-jD}kK|Fp^w z>K)&#{3<`=P@0#xaQV9s!T{oJP=nFX4G>EZV8w-dIwl;WVF2uL-Up62PW;_(ekR;L zf4TecM=tMbVCpR&@!&qj;q7CuQ1=(+leHe0R@^pae6enWt^;^hyHONY45IPu&aOkQ zo4#C@eyj3+=_gZ)4}@T?V&fvySnfHY&4V~~EDsrO$rt9IIpN;%VJ$x31hSx&6`d$+ zWu3y^dM=(auFKHNV53Vg4xSks>54mJCBRl@aLzX33}(2=M{PC;IG*JFXyr#^Nc3ZL zGDOBJ?p3$DcfY@no22|Lo;oMpGN6lv;gWPSc{t;FaGX&XBC~3_SS4&=f(E z6$W~S{~&ecGXzTm_tJ(%|4trhdn(?aLgS?wf`!X7Z{k{PiO_W7BCcz$eP~er(Hep` zG_NqF=VcDBlWXYgu|FGo+Di$CcK|YCuzaa!g_BqrC81kpx}IGLQuS=dqLFZ3CsH(LStsMUY(@%gI;Io@tH z-aGC8|3L2eRXj%!aBjcjy4O8Oak+K`_d(X|cJRTq3NSu-)|b?5fAO_2}~{qDEG1@$P$6szazae1eK!gui`dbZ&uCa>koU~HpX?je|K zalk_S^|#$rq%wmkbY+rj(8BcQ9|pp#mnri4n@-G-)qn}Gm3#hyS` zwAG#4*_k1R)07_FRpKhNQ-JPr~9@aVwQeOn99i;H( z?70-()Pbtrs4AAGV*S_>4PT^qAzdJzFoMNJi$Q^#^6}5Za8)`)3Ll*7v$AJMbpVRa z06wrfHJ-hgVJ$v`rH^8qxBj)|2<^#5(5zP-cJ;6;a^3(%iil?#Fd;8Q6Pi1g?3k`~U1`KX>_iKikJSTMz%$ zTE8bLrCoQn0Dtp`Kb-v3pAL8|PZ{36d?^?CT`d__VXgWzTSqG$^R-9>KuiBHi@0;_ zBNF@`c`uKVczxgP9pK`j-mbA@Pr4>!bbWWm!&!o_w36>dAG3V;=#9&_f2_}mWktWz zK;WzI`^ed9X-dx_nx);epmq3&@`i&-Yvs%keA9;-u{LN$*cxmJ=bhBUOJR)MwO(*0 z+Gtd@YT8L!M>Rs4L;gu*26K6W!sH|vlelhP|K%) zXo`Qro!z(jd;Pn{d~61~XUnxY{aXJ!&nd+57Rpn7i;Om%4N-%EKl$;!gJpUbT*&!f z{U$tKy!Ef_n@^9pARU!Mk!a#th^ova6pr#tV}6i zD*udt5(<18k8bY*^ySq{7i2siZUIupVBlxZ*xmd2sarwi!F~B3GzRswW9=S{7IFq6 z9*))-6A4XY`(6fWIMDXfHC*5Nf!8kolYjTGT>gpg{m#qxfBQ#TAXMYkKi%ZG`hC#rZ`J=w|RZ=Wy+)Jyax0A_k8C1VWai0f3UHS?iOs>?|{yf;A)$6JJwc} zJ!FcDFY#gh`DnQ*Nd};4yjg$YZ3R1rf@8tj11r5RZ``a1w3L6-VI8zs8J-wf_tuNv+&8zh z^Nca+Iv(YvnX;@Nqg#2(2o|>8Z{BSN0AEvXxNV(*$fZAc%v(uTH7rwnWz9T9Kfrlh z>5?-x?C892*?ivbGj)0T`OBa9^Z&`^U;3l}-Fpflf_5QKukm}hYZO&;eFyc5CB z!H{-Tg;zDy3cgE!z4CbrtZF7C+Z=&YE=P~NyN_jjrt~jb+yD5d{`%$3U-`M#_kZ`k znB#oFdQ-K8@0;>%Va+!;vfXFQE?;amK50-marwj4$!dk(T6<< zF=pEe{N@)92ekSQz0jXD8=(#}1k&<`Vt!?;>yTlvz~*=al&XpiMg0Orz`UO1L} zEFGnrTYs05ZUGM|Ed47PX9sZTySFA{Gap)DQlERf!OT*gZcbrf`rmJguW!0mzJV*V z7d|z{SoH;-gJ(>jnBg-csw>u zMylj-U2lWyZM1@?XY#6yWDmX+oX4<63;dq9aH$5xDn`q}8GVQ1ka6ANr_zMh(aXwz zTDPG!7oTlW+Q&cezRSP!BY*qyyT9k#FaN`T_785OkQo8G>m$7tuzI)~6&b>(VtYJ) zZi#wRcr+gXk)CfAl+XA7zSwCxpL{#V@%3+NnyuD2L3mSN-_hLP`t5c76Rgs{UH=zz zbRh_s0}kKF{eE}*1KyQu{?)rajhzyi&Y|33v#tnb+He9>`3P+db`_Z7z0>jH&#UBC z0aniO00_#l)c38&FQ4f|L_l<&g~2HUhM)PHKYID%cmJ0!kACSNTweUde{y;CxBtP* z^Y&XmZ^6s+7q4C({q#>>o__2*E*G9mf;)vPuN`c5$>}!}gnQqlMQ`=rS4;E0l>gap z)X3&mX9)YMY04&V3<&pojr5L^;j@h|lw7NhvrY`c{0Ub|m{Hh=H@MgO=vugO0XKRo z?~$)s)o541jMCD@kL7Li4k6tk7`5`3cQq!{L8m)XoCZd>m|WU$^IQ?@1!J~iD7pu6 zTQ|@vGxGjtirTA>Y$Hf_j@(UJkQbryME4_ijX|nZTL~v89;g>Q-!0? zJeqhkzRX~P6CJuK=YBHtiB<)E{G%Vd{0o2fM=!tsw|&p$w}1SjeZ|h^y0cVX8S3xS zw60KOM3|kFqNZI#W)C4;*sUHX>yj*wr=R=fU%mY3CqI4pr+y&UF-3i1Md0TeS+4@` z=~G>|13e#w_s`09otaGlD#?QqB#~ zh^%`N>@8 zznDJe3is9B%d-a4GAvb&_g(GwXM(Ufe^ibh_fn({l&xMVmM+0n5SCFT2>e>7%8+l2 zDW9(pU%L=uxQlmvTjAd8-!;$VULV8McQ=4#&U*A>K=RB62Hss8yZBmtNDGH3F|UMD zuU_E;M>9IL{!uwt!r*z*m$7{PZ2W0l$U-beoOW#tLSe=8EIhenSyzw-t~mumcw|9=#CeYSyHSeJ}^cvhNDJg-b*k}x)OBlS%F}epAre%M@rx&QGb-`8C!*pzm=&p zVm6U3Zm5)Ks7Swjur6ikR)Y-JJ{)=tTLJS3_Eau#0tS!d-cs&NS@Kh3+1`!kkAj*f zy8~Dy**Kf3&h|Ji>(4><2SdDrOeqoda{wi0la zUeO0>k1FhPzg1`f!pe*h@?og{{=fd`e)wzw?yJ5}S`3u=&HYc2AHUve+P2Te{D}oY z>!= zQ9Qa=w2M)aQp*g#_~`>Mx^1j9B?>@EqKlUEdQGOJ@5eKoY)mD~u(TSdh~#9UvfsCm zhT)Kh*bndC2U_m<&s&hkxY9F8}t={OaYO`=Q@8*P0t?GtgJt8vAPfk%#YToqe#M zn-)5dy9ZW{y5OKI@Fc6{5D~Kl1d025bNS5@+z=n0a0^K|5F?;ASki-?gU^kQUhCrs zvPbp7395>#gF5Oi*hJ*)0pkX|pLhE1{g?jC|Nio!ANoU=ryu#j%R68CT`H-hd$bar+%_^}zy z{QAH533GL++=)1uW)4nP3tW*GGGeXgA}O6r=+??u+$rJXH1 zu_v5NBm?Uorx2UM4WID|tigjL0isFWuLVSvy>2{WxU7&B2G6U8EX|DfqUlNUqzqSr zIiq;q0u9qHIA0&h-WgK?x_|P@9$$(Yy>nc;$Z2{|#&rcqJ0S9tB`M&}v&~pPYTpWY z&-0>xwFdaLZ+-ppFZ{*7e)*x_`F)p8TQyE0!QDORb+;}bc4L8PwJU)xD*kyyn(-iLE zgEsW!GT0-4IqUzUbg5X*+x`PEAAa+9)NT0M<>@E??&a~5#v~%-``-QPBackOw< z|G~aT@ci3PT?|?>giVpHRbVizb}a9916tP%dmc`8?4fiSHZuzZ#B`oRJGAP&grcs1 ziq8;)GbMMBhZg-T)JcexlVPxcY3B)eS0<3)R24r1QIo&wkew+{ToH%Aa6$j-V5+uU zaUwiRixfpB=cy8)1pqDIO}2utFfpX?>mGrkK|6T{${U~q0?>IRZ!`3vVoqIoyhQvM zj>=wI_sY?Ypr{Ag#rZ?l{6BbODOnLzeHfo*@u!ez0>+ek@Bj;fL^mACMHjX`=fb*z zDgUjUCDn}z*PAh9RLsKF49<(aYoEl^@*llI`zVtq{jBjSc^+i!-|lF>kAL)ImtX#s zPhI}aAO5SC|KwMJa~TJigGr9adfhNjA1d0b2Q9pBr@#*G>LoxhSt z(5%2O{+-pXxDeOC-^`pg=I&Kj`mZQF(C)~8H_tnw}mn1)d4>IN8rcb4G0 zz7r*;gvSFS=%s6Bq{^KYh9t+~a18{m9~j<8BDKg}yo?6qW+Za=H(gd<1Bz>ft-mLP z8NGWxduG<5zCC(w@UEL9xa-)Lo}?ELuZ|oj%X4AE!*xo3uvEIB;i?R7|BL9JWKEVH z#cwbvH7JS7*RQKwQScL-@uXn=JLx4oSS*v`T{jrrkD?WnBI?@Bz@b+#=aDRX5LYLZ zCgYW-?Eamr@>J@YMgcPni!PkO8yVnV+J2(O3u)0Oye;7IqR9OLkCI=n(M>UO7e1OU zKbUgCE*z5;Ggs$uobWB}zFrL8XsMV|*2Uh=Na0|S#E$-dC_10Q++<^S|&{@UfA z{2kwa`KN#1@2D$q4i5o)9|ob+r_eHKKD#LYh)|*p0QNpYT?>%r-~9_eeEAQ4{nM8} z^aI~D0*CJ^q;hY!C&1e`HC;AEHn24&vwV=O%3xB4GTheq8>o1*LAej)0Wg#LNxlfY z$|%|Ua-!NMf9uu zemf(-)q6;>H2|hm+ta^=Nzt{!rWEUfFaTP9GYSUorX+a2#{htNWB?7$1%G&T!?)Wd z!28uDh4u~}HQ-YEvqnErrz}@GY`SjX6)4%^*Ll2|0Wt@r8|7|kOLb-D8OuiM@^!ztNbeECVOx|XA`O3YZ|$@rdu-T-ZKGVe8yQG+-StsME{s{9n$s zvNnI?C;r~$kN<@qz5FxZ{n2eu(B+)FTY5&so&W<GE|8P=O zmhgBd_xqhE?`>t?`!BC0Skn8rs22Z~aJXOV>T*=HR{L44+FJj-3nv0^fkv&rR(|UX z@(@(+CM;Y*&yH4pzR^JM)sm7$_*usK^j0_Sq@V=(6@BhD4&Cp|Lia!W%a_;xiQn70 z_r7lYwNE$L`klu>IZvRu@5>iIeYxkXK!bl;V^d_x3EZezt3B6_5)#~$eESXfmem#S zZv&10^-}MjFe+a0oL8U;P^jE|GqGS9ICveN^mW_1``MWk&lM zoAC*(n{goA87aI{e}=mSO`E3URrEUJMbSs&1eDjH`KcavEh4hVr|-86gj!d z)J+LY-7(-Z;(;v3uI0y{RpffR@v{`C6$Zcm(v@&492o!ut;@JbiK|DrO%j zIOPZ6d0oBFyz$EAA8TjsU;Qh8>+&D|zJL7k&;Q~7*3RtMG~hB+@Ct(nqPTii{*7UX z;rc6o?Z+?w_J8(Mm;cK5fBR0^vD@gCw!I>X0fu+_*_ZG5FRt{{5N0pWPP9QB-EVNg zTy-kf`RtUu!t)~f9zZM89=!WZTPz*i!hmYZ9_M_! z>|`yzYiA4a6ev&s;4zmpETq`C*5JUvgkC96*|d{3Gdd_Cd+;-`LP2VEG`FhKdr zD;cK^#?_r^bpEULy`DV%R9iMF7NyBcX;4O=Jo8f>C}`o8eWUBNta7(t1!frlUmqrn zNBN_Y^jdr^xirys-GrVa$W_pK6x*MrpP&~n8v&y12C0^6DbKT3zW96AmWmq4O-nk*$T~X`~DAK{`mjx&s=`{_kP#qcmKBU%kzfZAdY-{I-rM3f3i;r z0w(H5f9f|sclp2kdp~^n{onS%?frkX9Z0X%T1rESsuC_u+27rofCstj6z@@^;7>!8 z;%>09LJ(!Yo-O3jnr~Jhgbdm#6MkChhYu*Vfxs$;++c2F^Vkf;&S+Q8z*djSx}T5->g*fn!8vUYLh|9O5BHVg*WUNu843da zuJ^p&z~SS|*O~_03a$!fgr0P0$X#m*#$f9MI_<{L<=%;-`kksA9`w$ApL;i-!jC{trLi@wgYdYy*j`dSn0x7>pQg6x!(-#q&EYX%1O6=aha$> zSd>qq|je}4I;ue^QvctGAxxn61B(V+3OT7)N6&iwzgx&>gq zH^q2&8%i8d`F7z^q%s(i&ht+pj&fs0LQrLu<4ioK{BEGH)|Ha$W~6P`btJZ@F`W=FD)kN5|DI4PBV{jU>9y!K^~9qI*c2~AnnByDQ1B8x`GxCNYelE zxre1)LpeD=DN>NtZ=ZGp)BA9UW}~y5M@~k#L5c3k$#1Ms$|a<(+bC{r4PG_5Tr>;y&reC3kqDnS|4K zKY3aBodVObUiJ?>>tx)g83Er3@UDzA_(#=x@9&cch{&h9F)Sj!))@d&@J0-FF-8*H z+o_WTXb`8d&V(WD`z&K%FK^*Pg;Yq@-_3~ zRvqCChX`CnyM+(r^)g?yolej10lf4s#4oEo(&nyuV;cjzHnm{?F` zR_3_`Uqert;OcuXxxY)8EY?lC<+)}JOt_weaW;HPkj)O%a=?)t39M@3Rom5r$pW^!~;N>qI@je(g9h@Q3r|dyv z0$x=awSpGe*!}2%R8pISI;TF*?^4bzEnhbwdR|m1W?8B zx%67OYqz6Px{AvH?;L==il{|nq$M@>P48jV$AqML* zRHVE>1*eh!tp6|k(yv_pof}+50ZfOmlUu)vg>L{&f1!J9z2Q3d^5Eyp0IvQ#jneW$cG_@K zvcbU=Byo)Z)*96B^|v$|1kKupT+mM$HN8z6ru^^y=F;U=#H5`qz*Fdq_q76AEQ})z z)fWyEm|;mQL={%v4FoR!TFZ=%nT4(24$EX3;#-h#-^ zfSveJW@Qu~EOkGFmMi_h8T6%G`SY5fC%iKJ^M8x2FhLlRxZ=@m65`B1dXO|gWO($q z@}w`rP$~{>$qa%K@jP`iTQ6+TnzdEQL)8@+rC$bfVn-|wyUUyD_X ziV40A@Z2}%!tge*gJEnkYny7-x@YAPi4q9+H^nrS#;c^<@D1CI5fF&IyGKB)6Rit) zCqsl``t|zm?`mnW=}S|8Z#5-irosjbT@~U74x#Bw1LdJSc?}r?a|Clai}P_(*7yum zVpef|FyvmV7A-Y?R6er~&-!-V6MN&)lTs2!SFOHp3ht}`N}x5aTj4Qlc6DrofINv)QL8@OPFr7Ql;8^K4#?h|7ySDq@+s8OcPxAbD9rF;% z!-x|if(9=wv;4X)Q>Y50DU1q1)B5y?7V8=mz0-v743o@dt2?~AZ}2bSBOmLfbQcY0 zygpUyrE6|;kB9w7sZLUIBh5*NueWD+|Gpj;?&`?%(%mWUprcOZt11cr0Uamb!o5{r z+#(MK{FX5UK=H}47mU`5_6KCZT!+WYS9*$HGgW-)RG@1)h6tLR;MK5aG6oNG_v3+d z=v6BnCjE;)VF5pD0!}3W1t=Wi+pR|Uht@S)gAvnC{jD2tX26R+$(QW;qLw4@+c)#| zQF$pogb~pnC79iwR>lTb z;KvoO4qO~OdtODK*6%;exDvJq{e4@3&68R)y(P$%x4MR-fj%n^0nxfEOW)DXIkOkT zp|Fxp@ENL+=N8?ME6-Mza7M8YTM z-Bkp`^!I7Qk<#9a^FQ>^uRjyE1%~JO=w-p-vhxYlW1d7XviOvDif%wKZ6s6?_Q0jw zc)#?5de5*OWjShEaV5cr>ii%h*W-}Ux-{xubRI}NvgqlmWCc|UJ`^5~uBy=0Kwx|q zM%;uB_MYG$O!ccSr%Q0stdONG7CzGSSEJ$|8lnAYg^uDU&t$A;1`4Py9?4qRXfN#4 zvT_5=w}ayh-3lsycxs|tP(FsH`>9ZY;W1u;c3`e@4=g~#x>Uh~hdPvZpBTSl zB8(v~!RUZpqhW~99Wp?k7RLL7V0r06?&`XL8yF@_od{&H*|WUw2aQ{)tFf^y1%`~@ zOC(1y#h>fP{?os4`T76+Kf3&$f94N&PT8BC9}$3Dkk=dG-=6xI^t3rf%H{lj=kCe; zULVs)U|wyY@NJ5h0CJ~qWsP8zxr#6h%EN5v06-}j7#n})>X+aMAYoae!DL(_2 zLr-eqHy}7A05LcTwXVcIq0E@9`q%oF1SDe(mRI@!$qWi1@8@Hlv%KZHc^d|29A5cq zM&L;;xDSjNY&1il{&6k5^zBoMM#S&Ex7~Wy``g@u^4w3wpkm_u!#Rroe5a8O-pVOi`s^6*i@baJL0iJuS~5pTa64>;xll7ipNn6)*i7 z1|g6DOS${MOcE{E{(@1uqPs`9#hp?GF@}qcMk{k5@hyJO`|1{7&ewuKDKDNZFL(i5 z83o9z42{690RtfZkeBG2><{8Jz2V2#bqT_Z~+YyL|uv zH$X{5K~!ZVHQJNz@=w6RkKkM60o{~)6p41rTiV;>>Z8A&A=HOmS$SCt=kiyleGy5G zD}F}80~|3^n9A3J%oF3`RQ3+es1U+B1H?#G##~UeSUtd__=Fw31BV8IRvej$@RKLJ zAXmCs#*K!537;DTEUk+3Z2BAOrzHpKQ3;RybPr!EJeQV12&R>$0DOJ=vbqSb9I~Yx zQvta)M#+QdDCtxWOgJc32*hQJ9MVrZ(8T}Zz&SHBB7@ocwF0A~JTu}AnCiYiz{|=9 zXJZjpe$hYjsg7*3DfUKEPnomLE3h&u5l$}mgSeM#xbk})dBH4wx;YQLa~m7#hT(8o zhK;<-jv=lq@W1)D|K8;f(7u^u(sU|><7 zzKG$!g*~fYLE)%SVchc#c8M!&19>Ukc)?)k%cMvT8!3Ic^*9{Q_DMB`%Q?$#N0oaQ z8aUl0>Fj|}<_?6Y{%wcMHLpv9!E41sJa5Ay8%&!wp&wrPTV2Pr<_3Jy* zY-0nCQfH(X4@wP*EP`B7cVZ_*wjQ& zXPDyQ4m_#W_rq_4j_`I-hQSM8$Ejxp4Ze~iREny}afL<)U*0|SZQ!*ure)bZ7oq0$ z9e4JGt&dD_!pronX*bmpqN-(CK6yQp0|x2LCdFSUsssGsDPxzU{04VVE26vic{wM* z+w?1w5lwnq!SYD=4a&d53oPGY!iQpd!RzR`!Mgt*?xt2H2MKdqs?JiL==sXMOS~6z1y_OM?Z!M`XO6R1XzxZQ6e!2X% zk85a#>H6&<`gVPZN42ahHH+;Kj<<62alk69FE#b&%Oqg(7|{LnqrIoFTxE(3ZPpCY z;9G^yGDsGX0Fm=Eh5(ik{Hi>HX^kRjUUWvMiaQ<*5fFqzR%+#+ddaJ`-qcUe3PYQ< za>3(WY%pVe;S~5Pl=B)GyvpICJxHl+Ml!YNfJStBo6=`o9A!2pXn~?G56RM5Um03? z(Eu}7(dtPcC?MhI(oeAbxp@dl!(CmHt2%hA%kbGEWPC@W8;6v4QHitMEG?Lh%Jw`76-TLv*-i+tPIVVbrd~XShcGAWzB{33`pD=47aluAcM#wSO0kB zXgBLx@N`ur#E1dewd~7yx%|SfeB$yafBf%We%D7n*dhW<&&|##Xzg8V@wogfZvVD= zF9uN3chyIJJ0k!qCz4tqvpO!PqK0N~D(a_|sr;24u?vS6+L%uCtekZNA}9;^T4h)? z^bVW~+f{xeoU2m=0f!;ES=bHmRUWbyopE{CD#3R(uA!e?NH{#y5)#%K73&mKBl6XP zNn)J9tit1j?1hC!DZAZR&-yVK%E}7%i@cQLI*u?+KiVEZOpET$yEU0!d`z3y38fU-Izs5AYY1vrmmid~t?Ri<iu4`Ko&&#{5oEsHDgSHwwT6(AO=p_YaNapkcD_g z9uT{qya&L+7ta;zzGqTD#QeSDR{iWUmEWPS@=xN(xp$Ya-l4x20r7ZA3bg*pT(P*41fXGGdBZU9>W|a9Fe|&5P3abPV3tz#%4^(;QNJR13d6hM zd1y3)SK6(QIVp;U?|B)o!GXYNlcC59aF8uBBGC$4{PkICvi8@1;wR@anBH>00pzXp z+ca8;5O&OUF&vxTOZXm|UZ{nX&YXNA7xT5ohpF5mN@ADZ=4{LFeS#21TsH(Tp0I^J zAvsuxQabU{8n`n>Xsn_PK~Zr+aeEh33zNaJPzWKFcM~{yG3c>@zm&i_05HKhxblt= zsv4B{enKTJp`$#`C45}jmL2aawCKzbh0Bi2;;J9>o^nJyN){Z34&B$Xr&!wxd@Nst ztSsy%}ZRsq~YC0D! zwscoFq1lmrOmkC=!QfGlMs_J9y&#+}afCM-kxjDT)rF_i4DW$EeeDC8 zJ3JVtm|$1Gu$PwyEtRPM!mD_(H@-q_Mr?d6$Fy-khCA+`^m%e=Y zvA_Rwm*4yT*Dr5TBhem&HfcSs1O48%JP%%}%Gao3)vJP-1atUKTq-*N3J zVx!{d5>?ZH5D+d?0M8UnWr)vcp4EY+iEK-YAx7H?HKh;UnHvV6vV}*B#TPQf`uNCQ zpXX|mLS;*zfq~_^6{U%nGa~XDHyJG}zp;gV0Z5mDp~7o0 zU=h6Fs23h=N-!EwzP0`ljLcB}!31|%Z?b@QCygi<8uzzk1M2Y_=I%uvx2xPnL)QiX z)vXL#SaLffDy$z`j2^v~eRxe4DSIPsQk0{K8WVwd1XUg(`27U@mJ2?nfgj}YZG2-o zLiYE+)bVJAU3qoIr6#2$@tf=gW8(s36AhJz#(|m9oX+%8IT5^HGNw_}&1SfJK7;F5 zhg16`s!)nDwGK89zSW- z8q1^auVwWtpL72Z%(IUbwg#{PBML$Rj{80&QYwmb%2D=VGN$YcCJDLeID+HnqV(`Q z`I`HeCLG!5c@SulFmnAZ;BiOr2}=15G?~)}&)oC8fWk-E2m?MbdKNBWpOX6_kv24@_`d3MukR2LtlP#I!ZP70&jb#vXl|7t>oxb z9sr+Zlzj_e3z@(Pso?|Veq~^8<8_a{&UJ@B*w?x&AsD@r_cel2gK_Oro>hbrbuDXn z_{U((bL=jUl&7IzXZ?=|1jCSUlZJLm9M9~8Z3uZ&OK zjS1zO@Ktdw`?E6qr$7C3mv`5)+1)o~Odu3yk;T(m5u@%mLamTsY;{pJ&}u$ve*BG= z1;156n1P^N`nlq(H0vztlv(!1B+MCSMp*5_c?3HPjZ*av4|SJjN?4f6W9Zfq+|rD? z3s*VuODaTE_73qe$wog+SbP!opBc!gT`(R#za5%5QFXqxiuo-xQ1` zmhZ@h)YnT*!3OU(hEM>@Zv>wp)G`nFgo||cyImAKT+tm)>qAGI85CtjMCa_?z12rf zGKQOmOmlcZ>^uW;W*K^}kL#R-!^i4fF^unEhd4|JlCVc-{QO6+C{@4P>QJ&%s)~qr zWFy4~cZwXnSH_{*X%Nu5c>i2eWa2k8y!+Q%>az+Mffi z*JEfYvKN9qS{9Dk-gk8mx04s2`+?uDnuVYG1^6nb;}e*(PSW%byza}?`}b)BEJTu7Fd0_46r=E`rf|Mqm}M=3BoX^9g|QGSpZFBY*)A6?r8=x6Bp| zc5eFMpIHI%Z?p!1CjyrJ2MF@4zAODXgRlut2%Rnm1JZNloW5b}7J^Nwo+f|Dbv&5D z%FNKLTN3QYjsC0O#uuu=>nXoQP;b6zp%5L5E;l8^M6Ui?FWl8W^|QDqLvznGnM{&# z0TU4T`9P+lzbMO;EBI@bs^|LGJP^_o&VF+l^)qoc7!wd(h73SiFeZy1jDGeAWWmc1 zcyazzhcT=BJp+8fpVCvt%28B=J521!YapDJ1V8<7#>K%^QPV zDZ*=oUkz=~D@R!h3!UqG5uwHinDq(g>c>7lOc`qyX3T-2w)l^J_Lc18Dg>}dWzFaZ zL3IOiZsPpY@&`@2MN4vpdBca1naabX(|aqeA9wqdc@z+QFist^TFKN2TlfY{gROh4 zAazYf$f5gw%60*w`}ff)eGByDM)saLI-e#;b5TrI||AUEFN5u*T66|cgN5v7YEaa0#!f1+ip zl3Oe^Llw-$@LG)g=dBp+?3qH_q(cFY%a88C?tR}&OL2%AbI15RVSl%8V${DaNyGQ`i(OX3u*gP#Di`uj~nCY2oMJ@M56y474;=FuF1b;ZaMysVur~ zs;m1}D;k8Q%prQ`h<0@hzbU(&fZ=?v15$kY`|`GFzu>c8@z7K$0cKFS!@e~BN^z$A zEXFd{GQ|$$lnv>+Cd7ro_qfb~bGAWYYEj^xhZBX4fBNfXoQ$cLgu>%53Qb8Z`?Wln5^}kv z-RLeMtwLyU+;&1SvP>~=VY~*Fnj&={oCHue;dBMUrE>OJFzHHcvj)aKOxe!yUx^r3 z7PAw+!9wu<(E%+L*B?O$zK@170MAVMRF>`v>;L%G*UO(#DDRUjtEI^f7kM1#2*NpW zh2T-^hZGD}0oG%CCq#$6sBMHx#Q4R3JJkJ5Bgj&RpaS)>;<+V!w}cz_9&rF3NIaeNv0 zl>^ENI|HPpXH0Z-bFmbz=&p<%z&Qns6z1#8pCh zd9(7=wb5l`5Z1OcI_NaxwmUJhbo$T$OROqoT&J+{Vps4({ygrv^16#YO4^+=^>0Qa z#o?KeqnV28EnM1-s6!aU!PjZQ;o?`uRl$opdJt|`G~7MX#Zww6ys8wkFfA^DqSP}I zl`E|@wQYkoktnH zYihPP#fNdezBYi2o4$@u!6NIP-~Fz}vxddW)&GBR`BKw=KmX~^<;FkV+J8rGQ^J=> zMY^{e;eGA$zREj?au$6m8Y94Xl#pz#vjZ`+OpXf?j+k2QF(M=;Bw;{t9&wQoFvegu zf-*?^!cTX^<{rWWEH1cn2QU#l>4hJ~uH`TN=~C$5-o_AE)K&JB;kiqw6NX=nNZjI$ zu9sW5MI`G-#t6c+fl5q?A?mX45~M)fcz7QPsO*%prGiHg=Dr_+yeW|TT=p>}0}%~g z6v0ymYI?lYn4+to`CXMcS@{J?wf$RS!=2YVsWGvj(tc{ z?KER>-u(V*J1(CVv@|s}hbQ-I+1L83&*9VTcXGJy0FUF5vg?vj?r6qC;C(4zig>tj z`th16U5yMob)2%OCOLx;-RK6@^9RVoV?lc^Z8>-GGI(!}nL7u}Bx@-^Y^t2_Nfvg& z3(x`X2DcM)qWkN8IFyELjUrbiJaMOdIFd%!!sXk0Z!=B>uyDMuV>9Cqp#9>no2tsZ zTQ7`(i<~)NX1K%I^Abs%(KRR?k6*me7plG-tPbA2*Qebd8Pu-Z`4sC)ZxDRmdAL&a z%~EAJ(2wrwr1dN1mAK0KjZc5}@~JO;xzS!Nb}c>EpQVq8&v&$Sh?W^(%U_>WDI0@x+u}(?fSRgx%b(W zZSr|u-7NZfJ9=ynLFMB~a~m6Fx3a3r#WeIxANK!qu2 zA|2fNdD{bEGf`n^qb_SnDRJ=D*ESmv?vzl`M^FNmD}MJ%{pP{!J#S;>tKp|mV z-K7QATAwaK@Qj&=Pq6M7SsoNgohL}4%BPMBP3f$sSf#>kOHL_F#znUc0hNu;@7&Hw z5E5Dx4Hf5osaIjN_9&nPUXQ_F`h)CH;cXn5Db2DGVgIfe5SJe2`o$@ggQSvmy+c5+RD`P2pPau5IU28{hkAiU7%B)k2cVMB+= zdFopNnFpX83=8@UPM|B+f}V9dGYC)HbMhpQm}l;|J|3cTI3D$N=BMQ|Sz~797$U}@ zqM)_bAw*rj*13N^An0&Tt*o7NzPxkqK?SKyEtRRcCkfTV@G* zXOh<G|C!n>| zyaIWi^E`S!Mj}POlITqF9T#4Afnm67@M&KH%B4L*5iY@$*V0vRoPqF;^az7L({V4bu6;ANOjYMrxk=**i%BUV|Nx<`A(2={lQ8}%A;ZvmL zuMRV!(XukM(DynXEep8r$>ps!kr*l+dI8V)+&u|av;cnfLVaHljy8rR%qm#Et@Tke zml>V0J*|6b1n?jlYq`L3GsUW<+U~*L$G`3rvC#ghGi5sImkDt8DExIl=k_85m>Awg zg{%m11k5r=%h*=g-D@m#6xWbZmZcBR$~^d2Uhp)62U>sal~BfvDCmVTwl3kW1Lz;Y z;}rf9%J5oxcn0gGe4HewyglDw<9|@%-C0gtV{L5a&A8M+{sr&09_01Q^Y)KC?l~>X zC^UGOaYmnc00ejkX(nhtU;qD2n`=_oS7WfLm3@XtC8`YB)!*Hw9Pf+)_pr+Wpj#>% z0P z8z>yp3uEmQ(5PP8;P?>eHr|ydBTP|uZojR{16sO_aD=%QP^d0~K}l1TP^8V_x|4-G zHiEp?JzDHD;_{Ylf>n!{U!P_c;3T6wi76~$4PTgz`q9Xgqy9g7Q^F*sykTBa*ZqtO zxRm=0YRdifOFsO>Gu7XFLd%%2q3#=xi5BxjmRaI{-vDTy;*cDW#m(c{Yk7k;lqzqL zn$?xq--2KjC1TCBS%J*;nsMgl-`+<9^@*NU6wdI068h}w_L4@RS6(TK>aR5Z%YPo1 zW!~5#7-iV@TUl3FUUd^RKJ=-7_u|o=18VB7KmGh?GUV^Ryy*L#_uuy|`xd2H1)t5+ z1OPpO|NNJ}bou#De(Lf#L3@%gzLHWtNnoh=vBLGU5_*d0r!Z__1lkKX18{3~Q;l-v zMf8{ObD^CHz%6`ifT;L0mwH;=!v+;ZKy*v(l#$=U2)t7M!H)3;6n*O)ktPsXVEU$? z{5*WsM;C+Jf4q_MhK`orX~H|5c4!$hsHGB~B8(VUVV+kIB;L!z`G@HdujtCyS5stO ziovH15Ej0%gW;c6+6O>@8HtW0o16KHibavR^WviH1SE{Finh;rwU1(hbKE&XLFjn^ zo})E^az?=B?w$JkxIX&x@-QI5<~eBf@7nfR^E?Jm&?@6}3)GA72gt6y;F|8Uwx96r zw4}NrIB2kOURWc>6Y7M|#|6oXj>#2sVWJv{Jh zUCqMrZ|TM>3fX&k@Y03n=K}wz529=t@X{QaAxD!Bv_+Q!;&fS+-QQ?Kf?u?JT0g?n z-Ab0zffM>*;H+<>Y>1M0iV2IACq9|0)q$D(^x(^Ra6U_HL>>#VE5yMLdQnab?f7 zR2{M9CuCT@a==e`c^c}wum7xsSeS=GxQG(`cp0ZIakmARQgoc!lwN)H-(A7o^cf+|f>WfmJOsfxg5YIDLPW)80Pa&{T_wt0 zS@(Sto|Ht3uXi(w<1y&(hu4%{U6hlXc)l+f4h9SpxCv``-95K!Gx+fW?YEs&-PVet z5We)A^^ITQXFzZJ7!?=p6ccinFayK+;c8M;%#(g{a~ zb(s_l$7ohj(BB1ba1LZaVK&;G_}}_>*>0KL;oALl;ou#FE1s*LXGYHbTIT4e;qu;n z##lp$9`Sz2rGpz>R)&V`t6#Z1{oHR%zF!jJ6QBBx%TIo(Z}KH13PwN$>GM)Rtv5nH z%SE;W&UFO8WEH$6!lkpLZi{PL4B`u<2D|LMLs03f)`7K(XLZXvA-R@;qTXGU^9Vz- zo&tL}_fJu|mhc%PQxL6~t`}TK#PaKY@MNaoa44)K%Of9UrW_X6JSOytMcgjk7XzB- z+k$rgRbI-zR*h1Hzt$gJHU(%?2Jgn8X8Fe-AFwd^Rhn}NO*zABjG>@b)>)LpEuNJx zzB-I~TN#|6EP3?` ze`SgFpfuE*p_89$a*o>+Rl-!LtzOlwojY^Y~i&F+&}qCC*)2b&NhOb#)Gg ze)f;>kl^d`2TO}UV8UPt~!oC_Sj?31SD3lVaiE4@Jtw!>`oWP~4#1dD7CPg) z@{SR$M=*NSrPPb3pKRvo9*vun(^H9;+i=2BPY;GQeAPo5(iUG-bU^3N!d%rGm@@ogNzio!p=7!H^dRqHh(Ig$8r=5`{f zI8)H|HL6?pZH98*powAs)ap1HW>4Gtch%+M;2hg$vPv_BLKl`^9StLn0T(w$u$z8b zrj<~J!YNIf_yX9$UvPAZE(E!7$?oXFi2{$u0~zQAE5hw()Smmn*MIf8^K!)*($mKu zUcGw!=l}fX@%MEjrwkWz>+toLHw!vLi=q4KO~{N534}mxoY7)31}g~L3Yh`!T)$eS zuN&7=RQr=Tkxi(jq;oW*Ha2Nl5>hlKIFobD9i+rxW|Z4d61*eFb-x+jgc~#(?)MF5 zxY4D)3t6^XLj^qzV@Lz0Q(Q!qC1VIL zd-K-Yc}^f^FT+WZJ~JI5<=OLH0KQIfC>e)#6CA8z!1c36|Fjp7c2EbS4v%fptw)|7 z0Nfmk3d1?)Qe2w($r!zpVh*9=P^_GO;W9}SLu(M4EBNrHa)WKyv85*T;^UO2dMR6W zv&_m_{kq06OO|_0nV#eTOeC)1h)2fY&#NbcYg6{*%^^K$1!6ll!!TZ5*ZY2o9i6IG zpR&8;Sh?gYuD|EEXM|~R;sf49ca--}O~oDEzw2I>%^l2n!7>~-?sAo1I2gK7*Aun) z{fUU}u}G(vA56U3tI@LDkQc7QdkN7aZUBeE&uPm8Px_!obK{uYJjg`W{aig00YGvZ z&hCZo_jnhvr}zSwURUCjFB^jB@%VMif4}(6H`{ZM!31|3DS9^{k>S{AgE74MjQ?W5 z=ZV2GpEdsQQpN&8yhqPrXjQcOdI4MF>AK0i=-AtILBnf;k+9{P^5xk%0vP2L)D4|y zC~$@dX5@KSWlGa!y+0$iJaA%Q3|lz?>ScS!0eyNf8y2e`alpp<@MQ7yIXK84_d&Y#LUC;QtC;6+v@$P(d^`R8%ljAzA zN4Ro=mR8qNa3(p6eayrDe#}w!r98KP!B9CHBc z;TaYMKj)ldV|GUfITrz~HgTZ~eU+=r|I{$3vKCQUN2bYGS2hHyO}-OUnbs>zuE)T^ z2=a#k&g4a^@NoRD%U?P<>j@%sIf7r0q4>LJvSD6`K)}xV(BlOaRLHIfyW+_NOjrEd zkoe>ntTlBBprtdeM`8kZ0H z3*qXZ+*8hC-4EA+qf>`seIfnw3;5^1{MF<4&8(X!VfbF0dEW~lTE<=&7}IShv_&^{ z-najBsf|N@{pTzxB$RfuX`vGf$;7+vGZF&)xJ?pG3YO0qf&!ycm+vEzc;+PBD{~4o zuniIRu73(=z210#6IGSL0Z<5Z3sbztq-OT@U~HYFV4L_0x1Pni^H({6q{r2ZXViie z_I`lg%6c^^CV|dLMC{yWD<6&DPfHcOQ|8hP0TMh}k$*J{JVULJIWo>GJnMF^Ab)}_ zecN~Q{F^icqsR^e#g~13RvCj0$DCj|*Mb|@Rd)5C!Mi8eV7A;y#ti>5$Q{Y0ywbhi z+j(!nmd6+|xvx&jim%66mDjzXD{F26)8gOgpq&@&oB$1p=c}`FZazoX-pRn9(E|mZ zC&N(hmmG(;XLKmy`BOugWU%~jR9-)zm_+Vpo~Gw?@h~1900$2qI!tsbQvC6e;ldm2 z!Y?=Kaz87_bH6$0WU_!yt#BP@D4%eyhqgQBPAhe^+|QSzxF6+JQO{jBto`g9i<=`) zXZ=GPx&(Q4b?@eicMG<3|L*wpw(mT{(F&L3*KglF{_SVKc>KdxF({+|@cMO=cWpKF z{k)6-TEhfi&Bf?>^D4xs_7M)n#cTI#g?j#ev&(H2=2VgtVtAYHQV1S=zBR@$ z_tAF@*jz+ZGL+z)g)na$v-D1i+|MSa^K!-0$9wz>%9doAhupsMVo5ikmd;8TbijQVZO!u9eaG3OnhCgUzX|yGxUKP~}nndMhQ4 zZc0DpQMNjjYxNcc{nPBY$#Nw%wxQ@k~B< zWgZ_s)t#HMiCP^sCIgFBvIXj2Rg4}^d3c86!qa64OFx-CyOj&uT&vgc_J@p%8Ljg8 z34=fPavXGrAIG_gy~1_7c+Qh^9-e5;AWoS_&!*PtV8lYK;E|LngW&zk^x)efS!Z+!8mNxo+K&$_uac;j(qi;ptf8Tz5mfprpY zOtic1Md!>t>xCAK_bDyFmdO0%@s{4lgy86G%5iqu9Rt$RzNm*`YG}%l(r$xJxV{V) zu^i5vM_2ghoL6!a>*L$DtTOC<9CVC7-O4Y%vI5cP%D!tOQ2W*C*uupO3^zZ3*wBWf zdS;M5NzO6(z=z5{e_GeRa4V!Dsr;|TkC)FvUF?qGrn3MTF`&P{2>eHaI;7iSpo2MGmomka3n|dv4Xgs z2Ir%f_VQwkU3|7NJBA!iP8NUCg(vTlKcj8}GJ%(-KFUvq^`K^5XokPC@M?}*x$)PK zDOVeq?)%lEmm;-c z7hAG3@h9*0j8ABcG9wPBLpFaX-KfoTB0)B?+9{)8(vJ{F&=H= zzO`gE{$NOqYntA8>Wh@a7GrWXN%;Of2NLa-dtUN6J%CVz(>-mb^K~h=%t@-Jwg0X| z3|{)OY6d`H#+2TZIIAL+7p>>y+*lgEh1p^BROchG@F9^z<_xf38AYaur>D>}Agw@G z%Ft7FDvwDvv-Iky49Z6^_Q2Z}2v>AR*?J&nvrqX9y#{|!PcJY(BvZEPu>&kVHsNSV zGF(2PWjHXWg8qgYo0w{@z))d_W5lOA3ONtP&kCwWj^GEq8jek!t|A%y@jAta`tZ;- z7(OGa8I++8nc{`t=AO`r=hrWkbrjO4%F`q1&9w@~3n>S7y3rG?cw6RJb*R~?JAlP; z)_5!_*aNYL;=5kAGn(L4a*kZ~Q((N7H$x>>@#M*&f5s=hu>9wCfRLlb6y-(TP)9rSv@rADKC=1d?Vq8Vu*}F)3WqAbd)qN!^$L2}^4nj0HAt5)9QR8% z3>Yz52!??W3|V~Ke3rvGTR2tFMjK0xXO`AVgO=VH{hU!iM|;jdzFYS;{jD2lvl9ET z9QnMivHZ_ghboT&m5F(-drK+`Ui9vP&x(Wnwh6Hv?pgYo30EbpR*D{C>&{zy#!3pH z#s9m`)XR~b%{D1zX=@Q|y^X$2FDTPEpCZMV+)gwES|GT%5Uz~vS?Br1%PM=;_UrQR zbI>0kC{Mtg+1@`0hQd90!ua8hr}6)k7jYCuhz8{eN1@#{v1d+$llFBdZy3Ia5JL<* zIkol!5rniVbN4duqn@Y1&8@4c;-Ce9nvnrGJqS`F_v&}R7DQgRSu%Iyr+I} z$wdEkou>C74rcQ#-|J;nKPxn3cpSca`40kR3|E(h3-^h<;i^mePM*M5%AK@`6T8F^ zo*E5M@u#SC9&gor(0Dl7#pN>N*M{+3pZz%l{g0pi{PB;CmQ zPdhP}kc_84Wt>hEqSV>T2sG)Z1rQJ{fHySRrXXF@YWbld3*o)U_`F@X6LZRDlJI@F zKTc>p*Ai~FSnCE~OoC@Ea_}D;Kfik$4;oHj0LP=DG%sNi6Dd>LQVn@HneQ9Us4FV> zrCnFKc^|D_PgDHryNx@p(&R8^S6`mGdYwGwHZwz8tif04T762o13)+pY0(7NO6X5z zp@HHI_aSx-^P%BHPZz;e?#e*zhBslANcrSt;2cI#b0GKyHT>vzRsb~qtgLP*np1_% zgVcIDEOl}(?|J~`80|w@`uL!L>UQyA&Y>7M!`3Ap#+x}-v{uYWm=nyA2DcTO8ivXA z%FFQ@=c?1rEReA>*64~9=e=QzgK78dtIFH1PH~#ef1EJH+O@C{;h5Y>cAIIK0y`hZ@RWS zd8=_1c=ooBcl_@6-}Fw&r^lt>~eccy;txY>0 z&KPp7VTFBHH+vIw6f*5uce`Tk4D9XX~i$e#akmr3`ulTdObm zT`iP(2S%&Pl!lQSGH5YkS!p?q_@`{1j`7-Jx=F>Hf!=_fb58y>;ivbqxrdZg4@8_# zh}qSsC!ocNTW9D~nwHP-NUZ$?o7s<+DW5I5b$_?zRNQ{mW4A{k=Rhb-|0b~NupSMb zAiOe-{q#QSj-&_iF=JnsI79vPWiXAU*Yyo{v-gxP_&E}|6}U3s>~^}S#6q|t_H(`| zP!4gu96Jl2rvvZm-8D4(^nFK#lVg?LnGk4dDBu9pz1zSkmbT?9+rl}lqjBqPJnMNp ztVGdIjm5k7VhtnSiVL3S@EE$e7m7dok>^s_wO&2j$!3_vF?>w*l^DoFI-PxDdIFp5QKC zos=7)>tDlSS6FdBPD00zv-FH?Vb`Vir?T!|%Va)AlyOO=x#eh&hpTG!`pl}odHW$D z@X~-XkSWiwt`J@AcXj#SWc0?yTIu(%-#k7x9yG=uQ>&m&KhDQrS6+panEH$up(CYU+6{V6Zy`B;#Tr#{c&fF;l3uD76q>1)m5vH$iag=1z$yW6FdR8N8tY zgQa=Pl`=i6dAA|xyxo`qRUT(@CYhqI=hf{J>{(K58FTT5EGgu+1*T-mNjc{T5+ddv z#i4j(K!%-hk%pF=k3`7?vC%kRJmI4{KrA0~tCWktQB(IhoF2t<&!BqXKt4IPj z=K@aNf~DL!Ox@D>Lt*)?#1J?KQcs}kdRQ_<4qZW_0Pp_A&v7#NIc567_?1ha&{L*k zklhe+NyC#9*hZ@!;PN*KowS~I_Mb8l=VwUNkCWy2&OVEibLn8C18>Eu%RFuHa~c@D zf{T~5^sdD(-y#pdS!Du#<-x-lX!0Lief07$3LeCp`z#*IFJ@Rx7?)Mx6P4H(f4 z8@%mD0L~)YhL0@ZWi7w=kH6LmCzR)v^DW~Tqw!md9DJ4DFe+Nj7jWPo(Ug&#Zu*%3 z)VuiFX*UJVfP-kXI<5LhFyT^dGFTbizi&prY@>5K0o(IiY182^+RSjA%;`;VcIGp5 zg{##um{>)fIfH#bwEMj=*Yk9RP;TQ=x_FtjSg;t=h)0A;JZ0Ro=47+3YI!ISZPF4( zpN475-DUfjwMNR37e$;8!n_Lm}rtikcI!6j;9C&`XVE9qoPnc-`^$mDTAqYBbr#4^r{n1w9r$hB?t_o3W!a z`rLy@+Ke$`$XHo}Q!JQ80HW-0M1Y}-$!hTJ8(2kr&|^VgqWA*Vl)+u}82;6}s~*Q& zi%k!d6JXc}IwvY~*^)}Sie4z98NK9!2RS}9J&7_Dl!d0nC$sV$62J-SdvZxRI{+^n zU{~K!5}x9(q-CWa1^nRO@%7*jNR{I2*}t(82e}N@;*?u`{`p`2_3<}9d6B_obagkU z_OPWK9~*-pZ7q5@jX50(`a><*vkd3m`!~(3H)$9XO(Z>2U`nq-mR;2Q%hr+)uB8SGariHS#>ZXmws32;F2 zt#=R(%$X9U#DsTZFdYxjSRMPV8(x$ijHONI4}#I^D@U2|g4NTpmTlMr=R8R;Yb}F2 z3I_j}Hp5I)x)!yUe=;!F>N}&d)-Ru0M6-Ck19K^JM&JZ6z8I_uPF~g&_rgezTR~_~NISy98$L_4UQ?D;xoP}{DGWgG z#mgETTlL)6iwCCF&ox|z%x<_u8?^9|@h+sedH{Er%!1>j(S}4ivvdF8?uIHv zXtE5qIiwJ6Sb_yJnlM(@NLOaCeqkKFqBeF9>pk4KZQKx+-x_txM}vA^rrqsXlE8tK z*v*N7M|}o=<6$FYy16NJp^yEb!)pzY^mufL?SjwHc6 Date: Sun, 8 May 2022 20:28:33 +0800 Subject: [PATCH 104/159] website: migrate to GA4 --- website/docusaurus.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 0871f4b316..1c80ca15b5 100755 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -183,7 +183,7 @@ module.exports = { customCss: require.resolve('./src/css/custom.css'), }, gtag: { - trackingID: 'UA-44622716-2', + trackingID: 'G-9F86L298EX', }, blog: { blogSidebarCount: 15, From 8f9883530bae0cbdeb63f86405b50c4ec86a3832 Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Mon, 9 May 2022 07:33:19 +0800 Subject: [PATCH 105/159] website: add GH stars to doc page --- website/src/theme/DocItem/index.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/website/src/theme/DocItem/index.js b/website/src/theme/DocItem/index.js index 6ab929e7bd..f6df962407 100644 --- a/website/src/theme/DocItem/index.js +++ b/website/src/theme/DocItem/index.js @@ -92,6 +92,13 @@ function DocItemContent(props) { )}
    +