From 399fd026f52b4b4086e4ac64682e86eaf7261276 Mon Sep 17 00:00:00 2001 From: joao <> Date: Fri, 6 Sep 2024 11:59:37 -0700 Subject: [PATCH] Built site for gh-pages --- .nojekyll | 2 +- howtos/submitPS.html | 13 - labs/lab0-setup.pdf | Bin 16253 -> 16248 bytes data.html => labs/lab1-submission.html | 149 +++- labs/lab1-submission.pdf | Bin 0 -> 36205 bytes ps/ps1.html | 4 +- ps/ps1.pdf | Bin 43352 -> 43278 bytes search.json | 1087 ++++++++++++------------ site_libs/bootstrap/bootstrap.min.css | 4 +- sitemap.xml | 86 +- units/test.html | 787 ----------------- units/test.pdf | Bin 52194 -> 0 bytes units/test3.pdf | Bin 14648 -> 0 bytes units/unit1-intro.pdf | Bin 53998 -> 53995 bytes units/unit2-dataTech.pdf | Bin 174820 -> 174829 bytes units/unit3-bash.pdf | Bin 69030 -> 69032 bytes units/unit4-goodPractices.pdf | Bin 110673 -> 110677 bytes 17 files changed, 733 insertions(+), 1399 deletions(-) rename data.html => labs/lab1-submission.html (62%) create mode 100644 labs/lab1-submission.pdf delete mode 100644 units/test.html delete mode 100644 units/test.pdf delete mode 100644 units/test3.pdf diff --git a/.nojekyll b/.nojekyll index 62581a1..862d634 100644 --- a/.nojekyll +++ b/.nojekyll @@ -1 +1 @@ -ee8a1eaf \ No newline at end of file +d6e4fb9b \ No newline at end of file diff --git a/howtos/submitPS.html b/howtos/submitPS.html index 5703bab..cc37ffe 100644 --- a/howtos/submitPS.html +++ b/howtos/submitPS.html @@ -334,19 +334,6 @@

Problem Set Submissions

-
-
-
- -
-
-These requirements are still being finalized. Do not rely on this material yet. -
-
-
- -
-

Submission format

Problem set solutions should be written in Quarto Markdown (.qmd) source files, interspersing explanatory text with Python (and in some cases bash) code chunks. Please do not use Jupyter notebook (.ipynb) files as your underlying source file for your solutions. In some cases we will ask that you put function definitions for more complicated functions into one or more Python code (.py) file(s) and show us the code in the appendix of your main solution file by using inspect.getsource().

diff --git a/labs/lab0-setup.pdf b/labs/lab0-setup.pdf index 2c050bacf5851024f19586caf2250af104955b39..63a832e19fbb7bcbd4664560c707b6297382b508 100644 GIT binary patch delta 3156 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 delta 3178 zcmai#S2!Dt0)}gbh*44Muf1#UEjFpvXceWkY9y2(c9fJ-D`sl%t@d6us-6 zrAH6QIme2;NPh-Oi@cwI^>P3dETEAVY$Brnbu-TIrWKxsa963wOxPGFngE455u5}_9Y!QT+%5Skgmgh3 z9@b3OuXFbUqwFBCfwYL@OY+Cks;N6DXGU zUpn>A#*f};6T<$^APyuK*^v)ED`Q zh8r|<6Wu+2fY1Ek6ntMADM49qgLHUtn z8ej$>$&nPoKw+4`N5&~RA3_uSJ0m!Ie;D+fgZ86drc?Y^X7CaIUOxx^oiJCLX~bH) zOvJsW{(6r8(pcrj*QUrsbcn0Z@2DA#8d;Njf9nAP=oD?UNw5TPc6`!e}%DqjJS&oqkq9wc8hY%wyBDYd{%CeF)WKA+*H56*QVzdd@b{2X=K4 zyEUS8c{NgmH>agWeX_paES z+7JOp2ohI+*_OyBl*TC=(n`5@)_!{Gmn{#Q>Q$k z!`qDx?t~7zcS5b>AR03D?sg+*FZjC&<~`!tJpWb)@?ELEJC7-cDhyw^lqDHFPwABTJ<;u$3>hHu^y zP{C=tu-Hv|UlgB@6~X|nGP{2q_XD{Ay1HBUELu+^M;Sugz$LX@FfdvC_dTBaHhIO1 zDWMH*qqG;Jm;26Iqw0x;zPODlr*Wim)y&CievrKD??a?SaDiZ&q3kcWF zPN?hQ>{P6eG&$JjE@N^v8*y~|gWv}Zfl0WaS#-?}jVx$W18CFMU1rj8(TG~ba z!c>=w8j6jMjMGkPro{eUZ%~X`;fZ=m*vrqJvdm!5lv!Q&2B4^E&^nefhCR8^TjP;( zk)*<7>q=^#dkN)CK_Lbw1`}9pC;O!DsycPy!iM@O+b|U^isLU9Af+~W^Eo`Ag7z$% zsUarCD%{z?N|y0;?wL;eWy2t^V-6lgwL%#GX9L_}_E7(|FXzufZ(w;+ z2P3Ca`Ak*Oq1>3{PE}imNqF<*Uy%(RkJv*7nEl&|KI3JN%*U}1{QgarS94$vCQv$g zCo9J8Q;thW+<;U^?1|(mi!qYyp>4@?mvGF)Kwv0LDsau9 z?<~Dy)G&txjSrKJBXBacjYccZ4BpP9{5@nw8h<|(L6EYAmdTpOl&^PxTdTeZLMowc z&@50Q;K+ah2^Dxr&ZQc_^s6fL=(Q??b z0>UQ@-0IQP?=|Mn6uQLM7eoKc<;VInynA~S{7~ZAysxP8cao;?c+LnQG-p|6ki5LWP@&hDjSJQ@`7@6O@ zdLhg-Wq&5X67o*tNxbIxTH3P)y}AOE6E--pm+ebGRFv@0z{24i5#=j}g*Ag8tS@ym z+24KVu=x|u3R+OhFS3oLy94U$(={*?<#bU)GaOBbY3GPAI||D_NE|u9iL82g>9{`I zJ1TT3FIDkB93tf01n%#ab-NNtca{~Go44{DZuc?5mf#+mS_FhbYsB zMv9D2L+k&zTh7;R>POw!B0g-#(=MWmRYkw!NS&ZL$Gz_QdTQ`eM8=CyRq3;xU~jVD zft0<7{C3sz{goX`3`@3j{eYZJWMFsV4tre>1QuykA9^X0KFy#0LVS~1Ka)3oiE2*1 ztyQQwgAczlltWn8J0Yvup;?m3ZxP8qGoy1T*`BKF>9CLdT@4#>>zh*TU{!OC-*YoF z04?%GCEU_J-LcBP|2OAQ>#4$iW~XW-KRytLtdm0-3QMdgJjS5N9-sK5MV?+QMsT4R zZb@1(=F?arh_HsEos^w~t*wInYiVgmTS;jNTX}ms1xZ^eX&G5*Ia?`+^8Z_4-5@$> znSXyV?}!q8h!IHb2kAYn=cKA<=(DN8SUf(g1#Gs2X$(NJBZwEXq+y7JM_gRqtWYkY z7hhR?YJ$0UmWlc4Dy_IaYTTiQYfxz1>Zy+uHD|0sB%P!fN^k7i0>+5ljs%9lT9Xn* + -Data +Lab 1: Submitting problem set solutions - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + + @@ -83,17 +85,23 @@

On this page

- +

Other Formats

-

Data

+

Lab 1: Submitting problem set solutions

@@ -101,6 +109,12 @@

Data

+
+
Published
+
+

August 21, 2023

+
+
@@ -110,14 +124,95 @@

Data

-

We’ll use data from several real world situations in class.

-
-

Data 1

+
+

Submitting problem set solutions (09/06/24)

+

By now you should already have access to the following 5 basic tools:

+
    +
  1. Unix shell
  2. +
  3. Git
  4. +
  5. Quarto
  6. +
  7. Python
  8. +
  9. A text editor of your choice
  10. +
+

Today we will use all these tools together to submit a solution for Problem Set 0 (not a real problem set) to make sure you know how to submit solutions to upcoming (real) problem sets.

+

Here is a selection of some basic reference tutorials and documentation for unix, bash and unix commands, git & GitHub, quarto, python and VS Code

+

Some books to learn more about Unix.

+
+
+

Quick Intro to git and GitHub

+
    +
  1. Creating a enw repository
  2. +
  3. Making changes
  4. +
+
    +
  • Editing and saving files
  • +
  • Staging changes
  • +
  • Committing changes locally
  • +
  • Pushing changes to remote repository
  • +
+
    +
  1. Undoing changes:
  2. +
+
    +
  • Local changes
  • +
  • Local staged changes
  • +
  • Local commited changes
  • +
  • Pushed changes
  • +
+
    +
  1. Merging divergent versions
  2. +
  3. Working with branches
  4. +
  5. GUI options (sourcetree)
  6. +
  7. Getting help
  8. +
+

Discussion: - Why is git so damn complicated? - What do you need to remember when working with collaborators on the same repository?

+
+
+

Lab Submission

+

Refer to this guide and please ask questions if something is not clear.

+
+
+

Hands-on Lab Instructions - Steps

+
    +
  1. Clone your github repository to your development environment
  2. +
  3. Create a subdirectory in your github repository with the name ps0
  4. +
  5. In that subdirectory, create a quarto document (ps0.qmd) that has some simple code that creates a simple plot (you can follow this example/tutorial here)
  6. +
  7. Use the quarto command line to render it into a pdf document (quarto render FILE –to pdf)
  8. +
  9. Commit the changes to your repository (git add FILES; git commit -m MESSAGE; git push)
  10. +
  11. Add another section to your quarto document (use your imagination), then preview and commit the changes
  12. +
  13. Use the quarto command line to render the updated document into a pdf document
  14. +
  15. Add the pdf document to the repository as well
  16. +
  17. Make sure that you can log into gradescope and upload a pdf document
  18. +
  19. [optional] Undo your last set of changes and regenerate the pdf file
  20. +
+

If we finish early, We will also take today’s lab as an opportunity to get familiar with the basic use of all the 5 basic tools listed above.

+

For git and quarto, very basic knowledge should be sufficient for now, but for unix commands and python, the more you learn the more effective you will be at solving the problem sets (and at any computational task you take on after that). You will need to learn more advanced use of git and github towards the end of the semester when you start working with other team members on the same project.

+
+

Chunk options

+

Like RMarkdown, quarto allows for several execution options to be set per document and per chunk. Spend some time getting familiar with the various options, and keep this link handy when you are working on the first few problem sets.

+

Depending on what’s required in the problem sets, you may need to set eval to false (just print out code) or error to true (print errors and don’t halt rendering of the document). Some of the other options may be useful for controlling how the code gets printed.

-
-

Data 2

+
+

Troubleshooting

+
+
Quarto succeeds in rendering html but fails at rendering pdf
+

Install tinytex via quarto install tinytex

+
+
+
Problems running and rendering bash commands in quarto
+

If you are using the knitr engine, you should be able to tag your code chunks in quarto with {bash} and use verbatim bash commands. If you are using the Jupyter engine, the {python} tag should be used instead and every line containing a bash command should be prefixed with an exclamation mark (!).

+
+
+
Quarto rendering (or python execution) works from the terminal but not from the IDE
+

You can go to the settings in your IDE and point it to the specific python installation that you find when you execute which python in the terminal.

+
+
+
Quarto rendering (or python execution) works from the IDE but not from the terminal
+

you can fix the quarto configuration by setting the environment variable QUARTO_PYTHON to the correct python path or by running quarto check. Restarting the IDE may also help if you had just installed something in the other environment.

+
+
diff --git a/labs/lab1-submission.pdf b/labs/lab1-submission.pdf new file mode 100644 index 0000000000000000000000000000000000000000..436fc2f376ff61a9598322f14f3a18e9b1562c78 GIT binary patch literal 36205 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 z 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 O&?t-|6pC}UQ~U#&f;vV3 literal 0 HcmV?d00001 diff --git a/ps/ps1.html b/ps/ps1.html index 99b8293..d65b1c4 100644 --- a/ps/ps1.html +++ b/ps/ps1.html @@ -347,7 +347,7 @@

Problems

  1. Generate a numpy array (named x) of random numbers from a standard normal distribution with 20 columns and as many rows as needed so that the data take up about 16 MB (megabytes) in size. As part of your answer, show the arithmetic (formatted using LaTeX math syntax) you did to determine the number of rows.

  2. Explain the sizes of the two files created below. In discussing the CSV text file, how many characters do you expect to be in the file (i.e., you should be able to estimate this reasonably accurately from first principles without using wc or any explicit program that counts characters). Hint: what do we know about numbers drawn from a standard normal distribution?

    -
    +
    import os
     import pandas as pd
     x = x.round(decimals = 12)
    @@ -358,7 +358,7 @@ 

    Problems

    pd.DataFrame(x).to_pickle('x.pkl', compression = None) print(f"{str(os.path.getsize('x.pkl')/1e6)} MB")
    -
    30.777135 MB
    +
    30.778352 MB
     16.000572 MB
    diff --git a/ps/ps1.pdf b/ps/ps1.pdf index 9375080fb4951fee7324da9dfee07c0f5410d1cb..b7b461925d0874953d306e94b65c371313e68859 100644 GIT binary patch delta 14334 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 OXfw(a}<|G15FZs+!PV>R|z>zQNE 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
    - - - - -
    - -
    -
    -

    Good practices: coding practices, debugging, and reproducible research

    -
    - - - -
    - -
    -
    Author
    -
    -

    Chris Paciorek

    -
    -
    - -
    -
    Published
    -
    -

    September 3, 2024

    -
    -
    - - -
    - - - -
    - - -

    PDF

    -

    [This Unit is under construction as of 2024-08-28.]

    -

    Sources:

    - -

    This unit covers good coding/software development practices, debugging (and practices for avoiding bugs), and doing reproducible research. As in later units of the course, the material is generally not specific to Python, but some details and the examples are in Python.

    -
    -

    1. Good coding practices

    -

    Some of these tips apply more to software development and some more to analyses done for specific projects; hopefully it will be clear in most cases.

    -
    -

    Editors

    -

    Use an editor that supports the language you are using (e.g., Atom, Emacs/Aquamacs, Sublime, vim, VSCode, TextMate, WinEdt, or the built-in editor in RStudio [you can use Python from within RStudio]). Some advantages of this can include:

    -
      -
    1. helpful color coding of different types of syntax,
    2. -
    3. automatic indentation and spacing,
    4. -
    5. parenthesis matching,
    6. -
    7. line numbering (good for finding bugs), and
    8. -
    9. code can often be run (or compiled) and debugged from within the editor.
    10. -
    -

    See the problem set submission how-to document for more information about editors that interact nicely with Quarto documents.

    -
    -
    -

    Code syntax and style

    -
    -

    Coding syntax tips

    -

    The PEP 8 style guide is your go-to reference for Python style. I’ve highlighted some details here as well as included some general suggestions of my own.

    -
      -
    • Header information: put metainfo on the code into the first few lines of the file as comments. Include who, when, what, how the code fits within a larger program (if appropriate), possibly the versions of Python and key packages that you used.

    • -
    • Write docstrings for public modules, classes, functions, and methods. For non-public items, a comment after the def line is sufficient to describe the purpose of the item.

    • -
    • Indentation: Python is strict about indentation of course, which helps to enforce clear indentation more than in other languages. This helps you and others to read and understand the code and can help in detecting errors in your code because it can expose lack of symmetry.

      -
        -
      • use 4 spaces per indentation level (avoid tabs if possible).
      • -
    • -
    • Whitespace: use it in a variety of places. Some places where it is good to have it are

      -
        -
      • around operators (assignment and arithmetic);
      • -
      • between function arguments;
      • -
      • between list/tuple elements; and
      • -
      • between matrix/array indices.
      • -
    • -
    • Use blank lines to separate blocks of code with comments to say what the block does.

    • -
    • Use whitespaces or parentheses for clarity even if not needed for order of operations. For example, a/y*x will work but is not easy to read and you can easily induce a bug if you forget the order of ops. Instead, use a/y * x.

    • -
    • Avoid code lines longer than 79 characters and comment/docstring lines longer than 72 characters.

    • -
    • Comments: add lots of comments (but don’t belabor the obvious, such as x = x + 1 # increment x).

      -
        -
      • Remember that in a few months, you may not follow your own code any better than a stranger.
      • -
      • Some key things to document: (1) summarizing a block of code, (2) explaining a very complicated piece of code - recall our complicated regular expressions, and (3) explaining arbitrary constant values.
      • -
      • Comments should generally be complete sentences.
      • -
    • -
    • You can use parentheses to group operations such that they can be split up into lines and easily commented, e.g.,

      -
      -
      newdf = (
      -        pd.read_csv('file.csv')
      -        .rename(columns = {'STATE': 'us_state'})  # adjust column names
      -        .dropna()                                 # remove some rows
      -        )
      -
    • -
    • For software development, break code into separate files (2000-3000 lines per file) with meaningful file names and related functions grouped within a file.

    • -
    • Being consistent about the naming style for objects and functions is hard, but try to be consistent. PEP8 suggests:

      -
        -
      • Class names should be UpperCamelCase.
      • -
      • Function, method, and variable names should be snake_case, e.g., number_of_its or n_its.
      • -
      • Non-public methods and variables should have a leading underscore.
      • -
    • -
    • Try to have the names be informative without being overly long.

    • -
    • Don’t overwrite names of objects/functions that already exist in Python. E.g., don’t use len. That said, the namespace system helps with the unavoidable cases where there are name conflicts.

    • -
    • Use active names for functions (e.g., calc_loglik, calc_log_lik rather than loglik or loglik_calc). The idea is that a function in a programming language is like a verb in regular language (a function does something), so use a verb to name it.

    • -
    • Learn from others’ code

    • -
    -

    This semester, someone will be reading your code - the GSI and and me when we look at your assignments. So to help us in understanding your code and develop good habits, put these ideas into practice in your assignments.

    -

    While not Python examples, the files goodCode.R and badCode.R in the units directory of the class repository provide examples of code written such that it does and does not conform to the general ideas listed above (leaving aside the different syntax of Python and R).

    -
    -
    -

    Coding style suggestions

    -

    This is particularly focused on software development, but some of the ideas are useful for data analysis as well.

    -
      -
    • Break down tasks into core units
    • -
    • Write reusable code for core functionality and keep a single copy of the code (using version control or at least with a reasonable backup strategy) so you only need to make changes to a piece of code in one place
    • -
    • Smaller functions are easier to debug, easier to understand, and can be combined in a modular fashion (like the UNIX utilities)
    • -
    • Write functions that take data as an argument and not lines of code that operate on specific data objects. Why? Functions allow us to reuse blocks of code easily for later use and for recreating an analysis (reproducible research). It’s more transparent than sourcing a file of code because the inputs and outputs are specified formally, so you don’t have to read through the code to figure out what it does.
    • -
    • Functions should: -
        -
      • be modular (having a single task);
      • -
      • have meaningful name; and
      • -
      • have a doc string describing their purpose, inputs and outputs.
      • -
    • -
    • Write tests for each function (i.e., unit tests)
    • -
    • Don’t hard code numbers - use variables (e.g., number of iterations, parameter values in simulations), even if you don’t expect to change the value, as this makes the code more readable. For example, the speed of light is a constant in a scientific sense, but best to make it a variable in code: speed_of_light = 3e8
    • -
    • Use lists or tuples to keep disparate parts of related data together
    • -
    • Practice defensive programming (see also the discussion below on assertions) -
        -
      • check function inputs and warn users if the code will do something they might not expect or makes particular choices;
      • -
      • check inputs to if: -
          -
        • Note that in Python, an expression used as the condition of an if will be equivalent to True unless it is one of False, 0, None, or an empty list/tuple/string.
        • -
      • -
      • provide reasonable default arguments;
      • -
      • document the range of valid inputs;
      • -
      • check that the output produced is valid; and
      • -
      • stop execution based on checks and give an informative error message.
      • -
    • -
    • Try to avoid system-dependent code that only runs on a specific version of an OS or specific OS
    • -
    • Learn from others’ code
    • -
    • Consider rewriting your code once you know all the settings and conditions; often analyses and projects meander as we do our work and the initial plan for the code no longer makes sense and the code is no longer designed specifically for the job being done.
    • -
    -
    -
    -

    Linting

    -

    Linting is the process of applying a tool to your code to enforce style.

    -

    Here we’ll see how to use ruff. You might also consider black.

    -

    We’ll practice with ruff with a small module we’ll use next also for debugging.

    -

    First, we check for and fix syntax errors.

    -
    ruff check test.py
    -

    Then we ask ruff to reformat to conform to standard style.

    -
    cp test.py test-save.py   # Not required, just so we can see what `ruff` did.
    -ruff format test.py
    -

    Let’s see what changed:

    -
    diff test-save.py test.py
    -
    #| echo: false
    -mv -f test-save.py test.py
    -
    -
    -
    -

    Assertions, exceptions and testing

    -

    Assertions, exceptions and testing are critically important for writing robust code that is less likely to contain bugs.

    -
    -

    Exceptions

    -

    You’ve probably already seen exceptions in action whenever you’ve done something in Python that causes an error to occur and an error message to be printed. Syntax errors are different from exceptions in that exceptions occur when the syntax is correct but the execution of the code results in some sort of error.

    -

    Exceptions can be a valuable tool for making your code handle different modes of failure (missing file, URL unreachable, permission denied, invalid inputs, etc.). You use them when you are writing code that is supposed to perform a task (e.g., a function that does something with an input file) to indicate that the task failed and the reason for that failure (e.g., the file was not there in the first place). In such case, you want your code to raise an exception and make the error message informative as possible, typically by handling the exception thrown by another function you call and augmenting the message. Another possibility is that your code detects a situation where you need to throw an exception (e.g., an invalid input to a function).

    -

    The other side of the coin happens when you want to write a piece of code that handles failure in a specific way, instead of simply giving up. For example, if you are writing a script that reads and downloads hundreds of URLs, you don’t want your program to stop when any of them fails to respond (or do you?). You might want to continue with the rest of the URLs, and write out the failed URLs in a secondary output file.

    -
    -

    Using try-except to continue execution

    -

    If you want some code to continue running even when it encounters an error, you can use try-except. This would often be done in code where you were running some workflow rather than in functions that you write for general purpose use (e.g., code in a package you are writing).

    -

    Suppose we have a loop and we want to run all the iterations even if the code for some iterations fail. We can embed the code that might fail in a try block and then in the except block, run code that will handle the situation when the error occurs.

    -
    -
    for i in range(n):
    -    try:
    -        <some code that might fail>
    -        result[i] = <actual result>
    -    except:
    -        <what to do if the code fails>
    -        result[i] = None   
    -
    -
    -
    -

    Strategies for invoking and handling errors

    -

    Here we’ll address situations that might arise when you are developing code for general purpose use (e.g., writing functions in a package) and need that code to invoke an error under certain circumstances or deal gracefully with an error occurring in some code that you are calling.

    -

    A basic situation is when you want to detect a situation where you need to invoke an error (i.e., throw an exception).

    -

    With raise you can invoke an exception. Suppose we need an input to be a positive number. We’ll use Python’s built-in ValueError, one of the various exception types that Python provides and that you could use. You can also create your own exceptions by subclassing one of Python’s existing exception classes. (We haven’t yet discussed classes and object-oriented programming, so don’t worry if you’re not sure about what that means.)

    -
    -
    def myfun(val):
    -    if val <= 0:
    -        raise ValueError("`val` should be positive")
    -
    -myfun(-3)
    -
    -
    -
    ---------------------------------------------------------------------------
    -ValueError                                Traceback (most recent call last)
    -Cell In[1], line 5
    -      2     if val <= 0:
    -      3         raise ValueError("`val` should be positive")
    -----> 5 myfun(-3)
    -
    -Cell In[1], line 3, in myfun(val)
    -      1 def myfun(val):
    -      2     if val <= 0:
    -----> 3         raise ValueError("`val` should be positive")
    -
    -ValueError: `val` should be positive
    -
    -
    -
    - - -
    -
    -
    -
    - -
    - -
    - - - - - \ No newline at end of file diff --git a/units/test.pdf b/units/test.pdf deleted file mode 100644 index 5a07d98fb75f2fc95dad852ddb5ddd49f9a6da9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52194 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 F3jhEuMZW+5 diff --git a/units/test3.pdf b/units/test3.pdf deleted file mode 100644 index 84bd68d93c461730856bfb50f8d0dbcc30de16a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14648 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

    d~*9? zrH$?GchOTBv3k{*^z`rxJ0@%|h7s|q3>};|DD23xN!_Xh9fEAXN^RCEL#5DYNxT7z z+_8Kyqk0HGG8xqL8{hel>jhFYSgoC*ZuOm!e7xKHePSQ#D~a!4>8sChwd-pFjvG|G zUZBO%u}vsbnSWqkYXuN?3h8N80%2p&qI>ys{YD(iDV@Cs5S#!mBFW=gi^o=0PFbTs zArE8C!jgiX$D&6nJm``elSX+pwBelUeno9AuDO1*(#U!`*6pkc3G}4!EtY6JWCmE> ztkld!?nrL~D~M0)RA=a*?_A;N9>rX?VK>a6ut$%*`ntyKDL*WeuVbo;+0H;vX_W8Kvz>-`T5s=Dvyj-8l?pxf=|YOk?ZK6K`sTdhpmgYWk7jws zqI>_{I!M1Cv?0%q4!}qn6A3x)DwCy1I&tq~Z$xc(+_$NK=OU!w6KY8CSerP-KK#}L zLhIK8MY7H_$?d^QiQJoSe~)FjljQXxu88~vf}uiJ!Va^$t45p(Vvy8u-$vhxx`>gI z*0;?9?yhfi+j7<;1mp$G4vV~G``7{H*1=&IYalr7Gn7&Fe0UvoQCCwXDx1G@$u0_qZ1)Xt#hMF06JaQ2D(s=RZvI@w@SHJ1ar?HM($YfOT@jv!L)?G75 zkScg83Fv?TmR*hmnov%^i8~+|-_kBox1BvXZu-N!sgN3#NP?X+p^7nWlDGVRuwy_` z%*{&3%ZZz*v>*k%LoG;D-hEM4QBdvY(q3LP9ydfk%oi_uYzx7GU)7&c2`T$b6&(s9 zM68cQGVPDr;>%0UN5pwX0QRf;yXX+|WBg_%9EBa{2_2IfCQ=Tf#^7CRRyw;Lc!FBn z>hvPxx7Al8c5FKsC57QpaC}r4s?%zuPYu1O0I={V;j1G3=Tn2g%&VCdWo)E@oR7|X z>K_xFafWU4v!iFhcv`m*iWp$vFn4Gl0ydNS6P86>$y+6fNPG!{^Ud&vjc|Hqa6**JIJ}S*t zz!a;zK{Rz0m*C`Y6uB~Q4_-uhZrV)!2dR=p*laKf>n?fa`H=?Dfg%z;BG~Vq_0HWt zMBI-&X1JIkzj~3K-0d{xVbqj-!2uy6%zY$7KM)emH4qr@@Z7dv+F~8@H>oJ{`{^IM z*mNTmpA~)e%|VxO$}61|#j8b@)O}jpUX>^r8$cf+u=f395c(2;HJONl!gTpN2>$40xB*onXf1?7XfP=<&{>1r4;AFRY6~0Cs*pfY8dHD)*BiwJEYin zNm;tFOrHSr{C^6L%w-rc2w7TiKk-7s9<0O@%_izc>3{D0DU%6Xf4vogsOP6@NSKjYq7B*^8ijDLBzQ2?fkwNP?@5TS7#^Ts4?vNcYip1>JHUu4*GNaY zY`XL-QBxfg`?60jDZlLZqtJ%Jc{dpJ&KzEm1#h=9u?gP7K=%7`?)M)zY7JkH7joN+ z3hGK|cgh$(!5bHx&5}EL8#ye*_tWL==PYL)IR5N~Rc?MZw|1OWv(v(_dcQx>T z-O2+E*}1#>CZ%PvUT5BCp731*z*G&1$dRD>H7LljA41pa8n%_n=-XWidYrjAL%cC$ zk;15A(H+Ktt}sOySZ1k_<3mvL6j5Fr@NYjCZVG-p(1}Ci8GW5MImFA5y!y=xkE!~N zKqgwMDglw_ij*>0k+6rnMUsHz5xv~X$=1VRm!oUZbZJ>Lgh$23WHl_-7WI~@Sx=6) zuC8KcKN}dR4olLaF0eYossD&oPph6$p^%_W%1;@CpxvoZn`S#r!KRUKXV9@6RWB~x zR@IiHDUdGXz@gKT>xon^wrHd%S~8qezH={-DUsnUt53%G`D?tC&02L_W2I6-nF8y< z>`2D8SjJw3+I&idMxG``#e~CN3klVvxwHUY!c~sL-XwA^1}Dw<<9bR)GbNM7`Y5t! zB2j}eieqDP+$Kmlt%#+>+O_!9ujomccg=88ent6%IYea9#R>vloL_NBsiBO^ir|r? zDO_7_=*L7E`l7We$|FyTNLAjliv5qWMGBgrd6kSZT`O2X@m(1R@eHG%m`Z|gF=$zq zYL8*8A(0STE!8gmUQNiO2m=#sE$2=7DR+W`OSHbEADOR=E^#*s8b%|7h4pNgq3BH* z@wo_uXn`oBY-8dXq)4kw#~5m9>td0IQJ;fyiPd1ln{ ze|YdX63SwH)=WmC%~h7!5D{ja39{mJ9ZA7+g_B~Awl+|o$rb?I^y zVqa^ncAeKX&l~of4bwb6+oa#RK46@Lmcmn#(>xs#zk2W9!3n*=MFp7PVcTqwM)|yS z^&7k9{|J#EHOI)J_2_$jMl}#11?3-bF#y=7oA(*SHAcF#^9=S?>pjrZ?m!ZJxZz3s z`9G!v)FX-U)P-7sI7C{J1ol7xlFl8@suEcY9h}#@%9#POdHnuLSgwB~cz2P92V@-syvL{28p;9Ms`Ne?0qZ<=8#n z?oYlP&kh3!5RDU;T3^6$@^vN=tkz{dh@obgTC;42|sQ@fA7W^ zHalpU@G2>(8#(84(p$^GM-D~J?9dzU>9rTY6N0}r*^jc4u~|Vto1_(py=}R~_Z70{ zbj;BrQIpy}C@mcA=xOL;u_?ILeKo;*5oe~Z$n326q2E>CW?uw_v|8*<*v|-Cn}=&m?$j%ddg?i4Nc`lQcB2BBtr zu2ci!WQ5m8aRSr|AGe4{?LxlA7wAX9HCjrhGzF7$+!d5If@x?UW$48UfHeinv)S2{5AvqeI_WC0-H6c0ky)}S_N-Ayo@)aMWy`9uaoR>#in?y@C^jG$ zl+b7_S2JtIgs<1+!$y_&1B9&7s}YQeWLOKhV13>u+x zy7Mhi44;XmVM&ko{i5u|k0uUWV;@LI=VQg70mF6F$u1$zSM$Ri(*;B9sRzDR&x@@n z`B1fR%?1hlK0(?^oH}nbY`<&J7Qa*>%AlK5dubx*=xphJXyKL=6;^gk-EPq=PsM($SsUfcX)*{fjTh{{8OPq0mK;EDYwICsmFz zUy!%F6T!gg+yzL56arQM-ShX}TId-udRg6Osrxl8fo&$_)SaG}y{YGe6C!H5J>(iq zQfs$GG&YjE2ZQa*<2LrYOcVv|%Ufw5~p7oxXk_5(^4v)Fakti#uAFK+b4DPKC96g`=y5Ifm#-}PILZ7e9!oddMo_na zH!ObhP>;2km{g62d|64p9zR82)-O^LibMb|3P(rO2Jh4LJzL6kS*gU&pPVn+SL>dx zR@Hh9L;c5x*tAP2!uA)9CS98|tZ(#F7q3rSM>Ui+`q&w-P6KIt&CPD^dL5k;%XVx! z7u=2pJqSijw+lU6xD{{^IdrhaOi#DP1;Xrl~e2Qcv zySJvxvO&K$Q7v&d9K-T$1qBv+@6;Ak^SA4u1V~oGL2odm16mmFT2gK>?wL=pWZBZ# z(tw-;Leuh5T^0f))A534BM@t4i@%R~l{pO%-(fEjC_PP>FTmi5O({InC(!}((eI9e zU~wWxr0m|9{h`voM-4rby@MppjEV-2>!Sx->vfKER>)#7W6egBDOGL_wDm|Jn9)SeHYSezcks-R`CvHYm_U-*>sX&}I?dPll`>~Vb zPSVWoAd73LEGiEgBLeaRF42$<`Z4rHB(7>n9|B`djau|xU6_!Z_1tM+&+yC#j+5RSZ|8EaC z%uMY6+FFuqEr+LuHgbKz(9oEb577Lq1stpE6b1bBXXi^y2fDKW$APViLpiADeRoL3 z&crsYW4EQ@V3CuR^kT$Qj)PN!o|u#}Tyhi9%T-Yz?UG{=Y; zzTcbv%-M9F=I=>r!>ZK;3N=FHWaDt6TOq>ez*o~9G=KTCRAuE$C|ri7WGNRy;hLc} z)i4THoPu(!)_-?0vHl48L71fV3S<~Y$g&(jKPtvod`%ZK=r%x%%ofCd#=J9z0^KB_rkl!AKo=rN$1ii9AH zcpl`PRXYcr(aNxe8widEyYV}haz8ASu$hUmUm;)*9Ba328o{UpwHZtlHDa6I4YNal;1{;MOoL z)nXHGJ6rEBx=SNrWU~5Ptnvdy?YJ{ZBB$6n6F z$aA{8!}n}?-}`wEBYpBqZ2WE;Z8_XtWV!8v9>K_sEt!#Z%xg)y~P0j!P+ju>|-OL zFx@h-)reaZ4<09fUN0IupAG>2zWZ}#`KRiuVYBkHe{q%Et84g#iWakp*e6v)U&A1+ z1$!qD-_o%7+i{_*IH)dS-g~ zpuw+2DQWss%Tf(wJPsyJCG6oN6R#*Re8`XY#mKWkBN_%xi!jwo!sp5Sma2r4gEVIT zkW-o-ebKe}clC}qLuO_q_GO)yps;G}&ez-LghuFVP%?&9i&?d+a^#!^rGS;L^-rc% za~PhY-%Be<)}p3!jM~3`sj22BXm4v1vyk4eHOmKViC)aCL4@BMS<=$`G5nD{bt5R17I!y86U{QfqF zG*a0g^U5?g6rPIfM$X$nfEfVbdP_;_S`|QnNq=Ulozhu#i0o?7_sb>~@dt3w#|Eju zU)^c~oR@UhI))VIT$Fb%=WS_s4#r}uP#`O2{m$e}f2(SbMI0hsH1SSx4 zH!#mX*!`O%^uNt&>`edC`v_1Lwm=m|%aU%6;4rD;509sK#h`~VOKOZfoeEW5r$C;E z(r?+4uD@`jyqHGuz9SRk=-?pmLJ|)2f>wb+uE|F0i^8lS;rB*k`3-YLa@yzTaeeQR zgLrL3CJkl6r%}DQ8f%Pkw}xZO6KWh{B|RCHEIUsUBL)E*9)7P}MK<{cDBz@^(|BS=4}vK#vdkAZ{(mKzn^vLu{3G?r)mP38jR*ah`zkK60~u3|ndm zP)*Q34+LBsO*R(Vla?E)fYKH=T%O5!V#6pL)w(j6*fJGZkEs63jto~#07Y1Rv%GwU z2nVd;4;cFC4Nhn7D>i@`yK_vh$w{;z1uy0{K;v5VeC_Z?7qCu!gcMeYH zi*c<-Bt?riG9a)_JSaRcA{T0Se)#1v`m|ltk?Uiz@8Bu5wAI(GbOd(mb0FG-&~ML+ zuS;3W?XeKq@2l_UBZKn?+xCS3RiP{CF(F=C!QtuXC4uQ*KVdGONCyGPwKgIZJkAWD z62Q%P{}iUQcyl(Mz4yvq@!t3Rk`&SJzJ1r~#m@(=6j zZ!+NjeVsD@ABACmU~nMt3ZT6IZjbqI_Wq+Wj#1Ir>W7OhqXH2N_g^h?PR=ewEX>UR zL$e$+8_T~0MU&=+-3AxZ&z+iG9aK8qTLmj*Fsc1Viq&GvbC(4@HN^6%RuH_g+9Q(J zcYZQ*gLJO&x#e(vvJ(e0E}l%}ezd&cqF`l--^6k>{d5wU4v~TiV0*rUP%T&}!~vx0 zmi<2xWrTx!^?SiNSgpfXWNE@V$x?{*EkwB%aj>B8)luk_C?fo|CZQ{(v1Fh%dSSp@ z3kUllGg%<;7Q_n09Q?7tL9ifBv~~7_Y7M#sJ+=&G>6k)(dM)B| z40UpgeHk7bLQGn_jRum&O^G=?ob7yvqt_&01x2e*oU!ew+~%r0v9DBND7@Lt(S3lz z0KcUm+9@-hkcO$Da~KFt>fRwJ+_Ji>9T5I95EMmW(leEFOE7$g=>jr@W|RG57>UA? z%GPan)XH3bPE(APFqRwN$TD}eO?)u4$<4mk!{GSH?WMG7AzR$U zShW$kJA;GwVmQs?MAY`h`T*KZ%zB_Ej>OJd5jUy@d--FNfRb|J_?&0Ys1Cf)c9$vt z^v$7f>~g*K3x$hcKX&tD*Y~3;GsgbMMR$F(4ICkyfD~L9mJ9uEgPKxB%dH8ygAf(B@dE2WjiSyb&K90NLTuhk(dN zmuIe`{Bm>1pssexV=2;N5T~HG<5~L3kVRETpF#_&O%u*iiagc^3t7gtlCbkYL$=jA zCRPvCDrYtF$X=Io%4RKRktR3AY4n5=DrQUNV?{%kp}J;(LPgt75v$whX$_)37+`LT zz};hjO0cX7;+^Q^HDceis39Zh^#D6QXI-G`kA5MJ?ZHXUO+K>{FRRVZ7ipj}MdN`Y z%NNZE=Rme4T_0B=+A8s>#(aY77(?M?hrJ-Io z(a-ScdG;r%W@pUdwFp|Z?ex7(WA?C7vo*Ktl?_W@|MTnENmCV8!n@?rQINwze18anS&WyZnp8&0hAkHbZI^s3r>yBGM9<&P zUhyY{H-BqnzG}wNTfmP!XF6vEVZ2PVB+ho8a*@3?LJ`mV(O>_@)Jw15`(!L^+IChaikn(cAe5p-Z%Wd%<3rz@ZG&h21lIOXsvyCT;KzT!N5w#Q^TWwPC!81p=;M-ay@ zwf@870vq$pEZLTHl3v?}VZ^p^#8wbFZ}hcn;sdhu;TPHK`NLF6&zmiseY(N2lUVx{ z@|gZGGA##JzuW|JrJVyzPllngZb87q7k|AK=XDnRmUnJ>X5i8ArJFR8@# zS{8Mf;8yH%CMoVZ?7C(~J>?Qp9hJJQii-|J7CWpUGZR1z^S~EvCcAY{J6HVgvw~ zFay|FIXJjkxs6S^Oj%jkO*pvC%viYv{@*k77**`;U0|61`h*Ijw4Iqf(SJ}X6~-Ty zUH~FCE=CO<=D*&s=>3m-$-mqkB%kU)4pc%5-qRBT^YPc+kpTtc;j9M+t*8aVW#V9K zz{_Bog@L;SzMhuuehq4H26E90hDke($}Sz$S<5%QZ5%(VR%hSZC^tN)GPAi-2W@UzO1vDh8r_<)8u*;E68naV nLtxxRJpY5_|KE2{XBQ(U7Y`?Z*1aF@olad&r5@SwpvxHQ^maCg_>1ozOm6Wk$q@bA8NcK^vg ztyQZA&)&7qS#@3ve^Lxz=gSG^6ca;p_i(eZa6`t1jnVds~Z`y*I}x%+?@-x+q4I{8eR#Q_?VN$2qNzcX+?C@pDH=lTk@f>KRSAK06&l6)-K4R! zUWM%%ag=opiTyNBDb>^eG=;qa*tqUJ#B57*TYv4eIfPvm&VN6?WCu?i`;G=oDOS`y zUQG`K4@OjZ-@rE`>v*!pkq@mgRUIK;n{!;)d@Wq`Iki^gj;&Z8=Vd#U=duqdO`Yo% zVNf{r5*tf0QRpIs#;EfO*7J*^LavV#$TatQ9?VfYbguN$ecEzW$3^3xMyt%RtMezA z<@3qh^XG-W@#*Hf5Lle&**N1y+)Weq^gtG8y`hZYU@cWg|@!1x0 za>?6XciDp9OkYpIjf?R+2Xt%&U^TlunJ*$ z0CsQgjJ0^WFsql&*TD}CPuv6~C{A>z)C-U%vOF@qp`rZquB8EL;OTp4Ou2BRB(7p_y3uC%J4 z4AfCpE-s!w{mu2zvRDbgS` zLp}U`zN$V`2fy}U6{RZd*L#O+QGflsFtu~H&5m)K4Ch57t$WKyr&aD!(<}!qgZAdH zMoag=BUl?lNXa%@SH))3&J-O@< zW3j*RBQCeg;=|5@RwM6$E-PUUQ7}fLOIJW-n$3L9q37CD1Htl&@xVCOhZfUrFw(Xhi^pK(`q~oHJikJz5 ze2|(kIMxo;2*L2@P%=2kQcmNY8mgr7U=aun=#F3Sgtg6Bl?STgbjNS(BO5?djx5*2 zkuwNUcY4M$>_>u%ITE9wMWdqOw$sAWw!RfECE7ycBzKtzP`)cz6H2Oq)CxP$d;u@o z)3eF~46qMj>~{2PiUT=ieB0?|x&<9*^Y-*NTH6%BgT8^=d={iwlAAS5e6=Y7!<`WC z?uaYrGtRv8`5!RK(k8wee|?kH*wVFoowzHIkGk2)b@v~VGM=+Jdo&mTzbu{G5teRv=CJR~x6;OWoSV?5 z96oy4qP?9>D{B~c^359YBt$|A#FBsYn3--4=eu&ZZN}!VzibskWj#Fl=HgeSCAk*& zUcJ8Cm92yA@K>E^rJuV`{lCActciNv!mjN(2iZ# zWrwzUogQ-YvONrCGp*2%CqbN=MSP@dp15iVQpwfMdWLFeZR(ZP03WYYw9z#4h9wNp zRxD!5F^bTp@oa7L(0D-Q1L;UiFzG8^p2aIj!WQwp*Yf9%9Uj=Lafg zbCZFU<=Sv4XQ59yZ%u5UrZ)1uu`u_)=tN-zTH8ouetCFEt#zv7yZCz1qIZ#Ii$+ed z;&E2C0lSwoCn@#R`5OSo$MrJvubNK$3}Au(Y+$mI!>R(88 zSaebs&;)0&z_}uE_f5}95CL-9Oct10O#s=+O*_4hzu>672rvSBY5aY5=4kyjBMK&i z$U|0g>L0x+t0G6Ap1<_OwXA5^be+)3aDlv}L_w>HrJXpf4Ttb`y39 zKgsN(o_@F?ZhyZ4Qu#s;8xUZKv{L#9R2kJ0z>f+z1u1{#jBrHgEYtqX(PmsCWh5qm z+Tf`}NQ%tq(Qzh#sJ5sZYFmRPm^r`gaGAi~L!H<;(VzNe6B2mBGNw6s zXw#YILc_mP|6~QF0*wKkB_-%IGhZ~kRbpFtY18RM@N7|C?&DfM{bcgXn{$V3cZS(9$`3 zbHF>&;Tm&tcU$a;oLYiqb#6B$s`@yp+hO}-X4UP!nsg?+vwohgc0%P={a96WG|ERc^}C1I zTvUF(#(b~`o6By|hCg>I#eR|?Z6^4RQ(~!^pr_e%?d9e4+$S-Ycns539VhtxG*%8Z zitC!D1>*<^c?nD-l^_3u2*1~M)K&pQW}yYqb(*3HE??5R8J{Y15YY4oTZ*gV8lI6m z**lM@f}d&*U0qam3L)t?1xnKI5#qwHSo2YIhcU3Hwdi_-;0A;)cV#>F6A5U&K?4D2 z+CWA46oODvwU7A|bX<#r<#9#*a@yCFsBzeqAg%g{whKeo1k*l>dy^8Ud06Unt@{MCX zUBsU`FJ|yz(2Hw}gKOHdv(!%1qoBGAN)Y}Z-vbdX8q#^&u(eor0sWwD zf7B9P2OKxp2y0M@wAp)=*eU}0*%2)eT~JA1RtBoOq5xx-$<8U-sGKosL?ka)vutn% zZz6PGFcHcY9wN)0F^jo|c3BfM4m1s3Bxj^pz+yRajyAe;D#6O|nLIWdMW9`J>{VxV#zp^_-9M`%Hw@g+7L?JZDZl2w88{LR290^hRU z@Lbbpx-gxt>J$&0K!ZtAk7-3ZR;)*R!9HT)@?Zft>bA_$x6V)WD3zi-lvQ#lm7B*; zpWdFk#Se4J1q@RkY3zsDp8 zJJO}>ci2-xx=GbQ*orinu3j3(-|50na5>pNOZ~Dv|8M&|i zAPBsu{cTk3CA}SZWWA z)$Cg{8DMGeX()4|^u((4Rj4p>17NpEjh4uD@+UoR9|S>1(jwtK)0u%J85vI$lnRbs zF$5u!F#$kvK~>CYDhS1Q3ohanqlQup@V0Z}z@z~jvUG~(orrb{bSngrf^ajc464Dv zCjJ4*%7MI%f(-zAI{bn<*2_;xK?e)eIs`Ka*wwTEA;87hl2`Ep&jW@rW)uOCj+I6g zWs72zwxpuLNbc>-5dOmxML0mYgOCi*#3q4IG7l9@C!>o&z_Tych!6CZCwnB0@SXNl zUkD+9cjd?rmQ|>d7!Cm#Y-;80-iJ z$MOQF)3M~udA*?}NGTM%tixIP61)*6)Ihn|Br>gEs6h2J_p$;D?1rGmIx%EkA^>(> zs$RMa*8T=#g)7dxBI=0Y&@VKjWrXH7P;H5F)Rrtm%w%c-U!2QVBAVdtJX~EE%Ztbc;^>HljzU@5fTCtfAL~23 zF9^M)=D{PqxWnjr%2q=lMUDGUzZ&kbzxv$y*E61+uD{r*xYR}umY&MAW$lgQhPX7i z-f;{6Qk50y78$Plx@&)tu>W|$pl z(PqDuE{6{BiNt|s*O9e<%ISbg+4jAd-ATSjSd)u2fBR~3wrRh}n0_o$BOpVQSKY#l z*gv7Tw6WH!!j37$7sQwA68zB}2p;^v#q8PS+p#=PB}`s_T2(eos-GlV%o=Kj z8O7M%hOcp3DGg_71QIjOn!PwIskx{Sw=vLBJ1(ez*rk~6kE=b1faR~3!2x`1E*Iw~ zmaf@4^OIwWnj`p?05{CcnT!GIkE26A%xBb-$+rA^E}jN9Nk_oi3T(*swSteIu)%}` z^QN=FfWJ3#LGW$4v{zA+0v&)Ej+6RYplQ$09kcRC$JbzEK{c~89)l*3{%z;U`3bj z7cd?z=QGYufn=bCs*Su$rZ$6Mj~s2o)A3)9Y7qi*aLy5nPd=F6c^RmJH}`HC{rr4W zyMBo;E@3W-MzLiDpJS8&uR@VqlE4I2y|RxM3cZFN5BN=NGlW#J1VU&-xZ*uo2b zvtj}aOQG|OSE_mXEKZ?VAIleLDta{QGC^?=9Z5sAX~)ZN?}jb>=&0@tdLyvL1pr{; zEcH+wWH%*L6H|N-JDX}s`}pu%L4A(o ztHLL0@iE`ot8=)$KNaZ*CQS91pgRW9-$Opi8b<<1GfMSsQ#Ao!_EO2QPyg;M3hh|Q zk{1{)+^~ODVR#<_-dfgNPn)aUCS+PXJZ#Fs+MG|a5fx~cavww9IV~M^+Hl|oMHF5O z^~fOiFS=No2albZg_(?QO9F^dn+^2qCEZqp-+S#`X47&Nb@V2LDmyX&?AZgee$t%wN<*O6AV2i?Aq zh<|alH|&f1O8eK3t5TL;Ug01wA0@R|Yr14re#rl3NBk{C9Y=<_6bMMNb`{T!Zw1cU zVe{>&G!l|du2F9SDq*D6Lt3Y+^A(u=eGQd5_BlcwTI}PDZ>!6!#nQ>2Gv{p^HJ02u zvL~BfY`i{!8^6trx!@WjjusWX{A7o~gs2|)e)d=ci;WGPlTLeLHWnQ3cT||FK4%8C z&URL?2pM2sGFB1Gi2lko+0)aDQJ6{}xwMM0n@sO(yz=&{pOSx`{xy+7`AB-hRbiLA zeUK@%J{Pt0Ypg_N=K4~Lp~Qtj>Gb$eBrEv=)dD&NUT9Tf6#`_A%tvFjRx+xn`F0u+ zJcZpKU1}Ya1=wxS)EDEuHCsDJST}qmc5tL3nQBOk{E@l;UA(1!uw&j;dG7RYdD5a2 zbS17RFrvtwt^9bYEPIgCs)DDH?+(*b&q1ZH!{`^N%teDHvjt1Yt5D)%W~jRP(y@cj zP&U&O%tdl~PPw|~b-DJNcgct^BQt!ViMaCPf&xVMDY9j!RMnnTrC=cT#CPnoxS_r_-cz*7%nRt$)YJ*n<4%~?^56M;eJimKUVEsTBTDSw(hjzp6C6(cKn+Cjt~_X zBmgicf1hzhPqABiahN|{A9+N89hBHz7!f>7bBAAF8YwC>J3B}-BC$Cwh3hT|IHais zk3H=HYY+W|Pyu{aE{V9c%9W&WA9zhG6Jv-?*Xnd`mig`Zp@}^)&o;YdG;+Hewlk77qDMASTbN09+<$g3=Gld|9XLOZzizj8D8tFhiN$w zjz-NB|DX+MtTFlMdCIcmD1$P{S_{Ut$m*KXuR2kd?<_cTET>!bWwBm zaIoFra&^LCZ%`%G+(7&ZO#_a7(Nk-$byuh&>h{W2df9lE(&pPN$EbRSfSAcA-YyJR zE78vngCbR^r1!UzD^!#3tuw<4O}?xok9h#PrX!L&Foe&RUw~#50XZ**Ym?v_XK{u% zF@W+H+w`}4bDXodZyrMB*M+mt{aZ zFY7Pk2He6}wMk;rw*dBaWv*afN0~$0+Yw7SIm)=Qj-8-nEsHvS6h`|~ay0RM?7i0bnRgc66{w?>m&O3IS`T%iClF{K5Qhhq@MzAbV6Pqq-p024{j0`R2j;HxS`4BxgE@mp3m`HKrAo|FmmK(AJ6~|y)j1;$lqXsNHVivN|$fGzU90WzB z&wwBvgAqx0LV8l1x~1*eR!Pa6JT;D`cB2o0srdQy;@oi&QDB(8HPA$k2PpR3SI+pE z7@zZ@=M(2OsC(PD+t#RU;2_s6r!!3WGL z2{e$cvlU>=<`-f^`yKt~aH0f)b)~K8T>9gciE@sZ@wmm?pHrF$R8V>P&{3a(L>=BJ zWXehy@VFNWIpEK>R}`JIL3}SHJT3HkuzNUVD$(@JxRfJ}SwUw~-;pIEdCWgR=HDlC zs<+LzTwiaaDSo=&Dm{N7*F$cb1xa`L~mUC$s#N zZ-0+(Wxzhd2Ic{sBefR?Npzmzd-eH;vxn^p41;A)jrsA2!h^;uZc1yH!+xpyA7Vne z)UC|N5pV+Q>yy_;ip@l42oi6=+LG~YEIaid>hj||M;so@z$ZFmed7yBL!ZTu4F~f; zNBs1X+3G(cyQZHmsOH51=XE0+T@#R#%%y{eTJT~Ie&ZvOm^FO)hvYQO#0Xlct;2Sz zb+RG|a9NP>!1B@GRrD8LYW5_7+Jsi^lPt`u8VJx@)F4wjTJRIwsjCm-}hl(s1fNk12$_~8veZXRJgajH{RG7Pi|+Le7$`CEqXaL`iZct z*X*msAl0Eqoh7D482hG?5?(7jOCL(jGFY|u2gAF@^-zysk z+S}cI?mybp{pb6InBvVm7Zi=Ni9k@}B`Filu1y9Cb3RZv#V#8Ok+SJP6;_XuvtTJh zX+zd-0c?I?cHKI$k~xo0xqtKbymHq|y=X-lwCZO!p5SMb6o!ZBc0&jim>{L%VEpa7 z-;in5C(rtVC;fUqbDIw@U0V%wO=T}zSI_GaNsxPT*8;j8WJ5kYK?n&o>7%4V;!+qGFt7hU!2AlwrF2RkxG6Hu zu*vT-`n1nG^!$QI+(8_Mdl+Pp9*&qEVxu3*s}J{)qi0C{JqQPb8t0oQN*L!-xC#m~ zsk8*GGzho^rj}K%qM$?%z(KyOLl#bWhb51{T6``a3@0D1EguAw|1g|ZGyV-E5E|fW zdMHhgp>Py})tHB4oPbS`fT^Pn->i--lK_vXj^WH0r1?dXI9ZBLTS|0Sk^(640Vs(F zltTBAWNDHj_2}jFkm9%rk*nxj=+OZi%~2T4J+YA(W3y(6vl+Uut^B%$@yuKn^3qeZ zE_8ZNH4P0OzzhMK*$bfv8%?@4v&Fnj4Dp7fZpYJCV>+=5sm3M_54*4W4tnR}O(nZN mvL_NbxlPYkZdN8&FZ1c(oJ!%{q@fuq6kaqsIvF)twEqJx@MpsS delta 8050 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 Tned!kT>L-~2vJH!8u)(zpFmes diff --git a/units/unit2-dataTech.pdf b/units/unit2-dataTech.pdf index cef0498abe2137e63477cf7a8b5f7fffecbffa13..d0d38df43ccba704ef25dd9626abbfca8855217c 100644 GIT binary patch delta 9517 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 biaa=u>wZvI4J-u;KPN8=9i5zpJj(w85VU&E delta 9484 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 diff --git a/units/unit3-bash.pdf b/units/unit3-bash.pdf index 6d2ae55f7e3391c72a20e2cd61e8e45ccfe67242..a257d2c9007d09bff527b04686eeed792a1db88c 100644 GIT binary patch delta 8160 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 HltB6)cLRv| delta 8161 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

    EP*n;tBjKMtNfN2&qg#$RY16oAt71tgjj!dn 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 H1;GCSng6R- diff --git a/units/unit4-goodPractices.pdf b/units/unit4-goodPractices.pdf index 4c093248bf974b153c6c3bdcc2cc930f161ba3ad..583766f182c484603a95b96a1980912c6b9eb3c7 100644 GIT binary patch delta 6862 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 delta 6838 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