diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..28c4be04c12439804e974fb46909234c6dc182f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,239 @@ +*~ +learning-git/repo/ +learning-git/work/ +learning-git/slides/git_elic.html +learning-git/slides/git.html +learning-linux/ACELI9_2023_Registration.ods +learning-linux/example/ +learning-linux/Linux_ACELI.html +learning-vscode/VSCode.html +learning-vscode/VSCode_WSL.html +learning-vscode/VSCode_Ubuntu.html +learning-markdown/MarkDown.html +learning-markdown/TODO_makdown.md + +# ---> VisualStudioCode +.settings + +# ---> TeX +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc + +## Intermediate documents: +*.dvi +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.brf +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Auxiliary and intermediate files from other packages: + + +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.snm +*.vrb + +#(e)ledmac/(e)ledpar +*.end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls + +# gnuplottex +*-gnuplottex-* + +# hyperref +*.brf + +# knitr +*-concordance.tex +*.tikz +*-tikzDictionary + +# listings +*.lol + +# makeidx +*.idx +*.ilg +*.ind +*.ist + +# minitoc +*.maf +*.mtc +*.mtc[0-9] +*.mtc[1-9][0-9] + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# mylatexformat +*.fmt + +# nomencl +*.nlo + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# xindy +*.xdy + +# WinEdt +*.bak +*.sav + +# ---> SublimeText +# cache files for sublime text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# workspace files are user-specific +*.sublime-workspace + +# project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using SublimeText +# *.sublime-project + +# sftp configuration file +sftp-config.json + +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover + +# Translations +*.mo +*.pot + +# Django stuff: +*.log + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# ---> Linux +*~ + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* diff --git a/learning-git/LICENSE b/learning-git/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..af0388278fe437e718b17d7316eb7759306596de --- /dev/null +++ b/learning-git/LICENSE @@ -0,0 +1,39 @@ +Creative Commons CC0 1.0 Universal +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + +i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + +ii. moral rights retained by the original author(s) and/or performer(s); + +iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + +iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + +v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + +vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + +vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + +a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + +b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + +c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + +d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/learning-git/README.md b/learning-git/README.md new file mode 100644 index 0000000000000000000000000000000000000000..83a34e56cf8b59909c3c72981df940655ed6137a --- /dev/null +++ b/learning-git/README.md @@ -0,0 +1,146 @@ +# Learning Git + +## Purpose + +The Git Training session started with a lesson of basics on Git and collaborative development. You can find the slides [here](./slides/slides_git.pdf). +> Presentation is [here](https://www.elic.ucl.ac.be/users/pbarriat/slides/git.html) + +The second part of the Git Training consists on a hands on. The objectives are to show how to use: + +- git on the command line **OR** [gitforwindows](https://gitforwindows.org/) with Windows +- UCLouvain Forge portal + +We are going to do some exercises in a dummy project that you can find in this common GitLab [repository](./exercices). + +## Getting started + +First you may need to install the Git command-line tools. + +### Linux + +- With ubuntu: `sudo apt install git` +- With centos: `sudo yum install git` +- With suse: `sudo zypper --non-interactive install git` + +Prepare your environment for the first use of Git. + +For instance: + +```bash +git config --global user.name "My name" +git config --global user.email "my_mail@uclouvain.be" +git config --global color.ui auto +git config --global color.diff auto +git config --global color.status auto +git config --global color.branch auto +git config --global core.editor "vim" +git config --global push.default simple +``` + +Clone the Git_Training repository : + +```bash +git clone https://forge.uclouvain.be/barriat/learning-git +``` + +### Windows or Mac + +[Download and Install Git](resources/README.md) + +Clone the Git_Training repository: + +```bash +https://forge.uclouvain.be/barriat/learning-git +``` + +For instance, paste the URL into **gitforwindows** and it will clone the repo locally on your computer: + + + +## Tips and Tricks + +#### How do I add an empty directory to a Git repository ? + + You can't. The design of the Git staging area only accounts for files (see below for the workaround). + +#### And if I need an empty folder anyway ? + +The solution to this Git empty directory problem is a simple workaround: just create a placeholder file in your empty Git directories to convince Git to put the empty directory into your Git repository. For instance: + ``` +touch .gitkeep + ``` + +#### Git Auto-Completion + +If you use the Bash shell, Git comes with a nice auto-completion script you can enable. Download it directly from the Git source code at https://github.com/git/git/blob/master/contrib/completion/git-completion.bash. Copy this file to your home directory, and add this to your `.bashrc` file: + ``` +source ~/git-completion.bash + ``` + +In the same time, the following script allows you to see repository status in your prompt. Download it directly from the Git source code at https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh. Copy this file to your home directory, and add this to your `.bashrc` file: + + ```bash +source ~/git-prompt.sh +PS1=$PS1'$(__git_ps1 "\[\e[0;32m\](%s) \[\e[0m\]")' + ``` + +#### git-config + +Tell Git which whitespace problems it should recognize, namely any whitespace at the end of a line, as well as mixed spaces and tabs: + + ``` +git config --global core.whitespace trailing-space,space-before-tab + ``` + +#### gitignore + +You don’t want to commit all your files into your repository. Things like temporary files, logs, configurations that are specific to a computer, files that are for testing only, private keys for code signing or files that can be easily regenerated all don’t belong in your repository. However, they will still show up whenever you type `git status`, even though they are purely noise at that point. + +For this reason you can specify what files you want Git to ignore in a special file called `.gitignore`. Placed at the root of the repository, it contains glob patterns specifying all the files you want Git to ignore. Any file (and directory) matched by these globs won’t show up in git status, and if you try to add them via `git add`, Git will refuse to do so (you can still add them by specifying the `-f` flag when adding). + +For example, Rails 3 projects use the following `.gitignore by` default: + +```bash +.bundle +db/*.sqlite3 +log/*.log +tmp/ +``` + +This tells Git to ignore the `.bundle` directory, all files ending in `.sqlite3` in the db directory, all the logs in `log`, and everything in the `tmp` directory. + +#### Using an external diff viewer + +The built-in diff viewer is great most of the time, but sometimes you want to diff non-text files, or simply need a better visualization of what’s going on. + +For this reason, Git allows you to specify external diff viewers. For instance: +``` +git config diff.tool vimdiff +``` +Then, when you want to diff, just use `git difftool` instead of `git diff`. It will work as you expect. + +## Additional resources + +[Git cheat sheet](./resources/) + +[Windows or MAC OS X](./resources/) + +[Tricky commands](./resources/tricky.md) + +[Got 15 minutes and want to learn Git?](https://try.github.io) + +[Version Control with Git](http://swcarpentry.github.io/git-novice/) + +## Contributors + +- ELIC members [@pbarriat](https://forge.uclouvain.be/barriat) + +## References + +- http://nuclearsquid.com/writings/git-tricks-tips-workflows/ +- [BSC-CNS](https://gateway.bsc.es/dana-na/auth/url_default/welcome.cgi) +- [Consortium des Équipements de Calcul Intensif](http://www.ceci-hpc.be/training.html#versioning) + +## License + +This project is under the Creative Commons CC0 1.0 Universal License. See the [LICENSE](./LICENSE) file for the full license text. diff --git a/learning-git/exercices/README.md b/learning-git/exercices/README.md new file mode 100644 index 0000000000000000000000000000000000000000..cba345df57d80ddcf59f4f87086eaeaa15a51673 --- /dev/null +++ b/learning-git/exercices/README.md @@ -0,0 +1,16 @@ +Simple Git Exercices +==================== + +Theses are very simple exercices to learn to manipulate git. + +These are not even real exercices, more like **DIY** guides to learn to handle very common situations. + +In each folder, simply : +- run `./create.sh` for Linux +- double click on `create.bat` for Windows + +and follow the guide :wink: + +> The create script in each folder will completely reset the exercice. + +> If you want to re-read the instructions of the exercice, just cat the file README.md. diff --git a/learning-git/project/README.md b/learning-git/project/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3c8a0922f6f0bf57fb07686c76690c389b61150a --- /dev/null +++ b/learning-git/project/README.md @@ -0,0 +1,18 @@ +# Git tutorial - session + +We are going to do some exercises in this dummy project. + +- [linux](./linux/) +- [windows](./windows/) + +## Basics + +We're going to learn what Git and GitHub are, how to set up a project, track changes, push code to GitHub, clone projects back down from GitHub into a local Git repository through your Git client (e.g. using TortoiseGit or GitBash), and even publish websites on GitHub Pages. + +## Branching + +The act of making multiple copies of the same code in the same project. Usually in order to do different things with the same code base, or to allow multiple people to work on the same code at the same time. + +- Branch: Another copy of your code +- Master Branch: Like the "final draft" of your code. +- Feature Branches: A common term for branches that are not master. Usually branches meant for experimenting with new features before adding them to the final version of the project. diff --git a/learning-git/project/linux/README.md b/learning-git/project/linux/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d71890d94588b20115978b454c51b0563f91457a --- /dev/null +++ b/learning-git/project/linux/README.md @@ -0,0 +1,28 @@ +# Git tutorial - session +We are going to do some exercises in this dummy project. + +It is very simple, only consists in a couple of files written in bash and you will have to write some functions there. In the end the idea is to enhance the functionality of the script with functions to say 'Hello' in different languages: + +| Languages | | +| ------------------------- | ----------------------------------------- | +| **Dutch**: Hallo wereld! | **English**: Hello world! | +| **French**: Salut monde! | **German**: Hallo Welt! | +| **Italian**: Ciao mondo! | **Portuguese**: Olá mundo! | +| **Spanish**: ¡Hola mundo! | **Catalan**: Hola món! | +| **Turkish**: Merhaba dünya! | **Czech**: Ahoj svÄ›te! | +| **Danish**: Hej, verden! | **Faroese**: Hey, heimurin! | +| **Norwegian**: Hei, verden! | **Hawaiian**: Aroha e ao | +| **Swedish**: Hej, världen! | **Welsh**: Helo byd! | +| **Irish**: Dia dhuit domhan! | **Cornish**: Dydh da bys! | +| **Afrikaans**: Hallo, wêreld! | **Latin**: Salve, munde! | +| **Lakota**: Hau oyáte | **Japanese**: ã“ã‚“ã„ã¡ã¯ä¸–界 (konnichiwa sekai) | + +In this tutorial you will learn how to make commits in the Git project, to create several branches, to push things to Gogs, and to follow a standard procedure to develop collaboratively. Afterwards, you should apply the same methods to any other collaborative development inside the ELIC department. The objectives will be achieved gradually following these topics: + +1. [Set up your working environment](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/working_environment) +2. [Prepare issues on Gogs](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/gogs_issues) +3. [Prepare branches](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/branches) +4. [Add new functions](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/functions) +5. [Create pull request](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/pull_request) +6. [Review and test others' branches](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/review) +7. [Pull master changes](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/pull_master) diff --git a/learning-git/project/linux/branches/README.md b/learning-git/project/linux/branches/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8541971d49c91eaaff0d6cd496991080b8409b6f --- /dev/null +++ b/learning-git/project/linux/branches/README.md @@ -0,0 +1,20 @@ +# Prepare branches + +Branching means you diverge from the main line of development and continue to do work without messing with that main line. Branches are instances of a repository that can be edited and version controlled in parallel. You can think of it like making an entire copy of your repository folder that you can edit, without affecting the original versions of your scripts. + +## Exercise 5 – Create branch in Git_Training project + +Go to the terminal opened in your workstation and 'cd' to the location where you cloned the project. + +``` +cd Git_Training +``` + +Create the new branch checking off from “master†branch. + +``` +git branch branch_name +git checkout branch_name +``` + +`<branch_name>` could be the name of the language you are working on (e.g. greetings_catalan). diff --git a/learning-git/project/linux/functions/README.md b/learning-git/project/linux/functions/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1c27e9dae5e32c8245418af6057609070cdcc533 --- /dev/null +++ b/learning-git/project/linux/functions/README.md @@ -0,0 +1,60 @@ +# Add new functions + +In this chapter we will create the functions to say Hello in the different languages from the table above. + +In the beginning you will modify the file `greetings.sh` by adding your function e.g. `say_hello_catalan()`. + +Then you will modify `../run.sh` to call your function. + +In a further chapter of this tutorial, we will merge all the calls in the same file `run.sh` and we will see how git helps on the process of resolving conflicts. + +#### Exercise 6 – Perform function commit + +Now you have time to make changes in Git_Training project, i.e. modify 'greetings.sh' file and develop your function. After that, if we check the status of our project again, Git tells us that it’s noticed a new file. We can tell Git to track a file using git add. + +``` +git add . +``` + +Git now knows that it’s supposed to keep track of 'greetings.sh', but it hasn’t recorded these changes as a commit yet. To get it to do that, we need to run one more command: + +``` +git commit -m "message explaining what you have done. Fixes issue #issue_number" +``` + +When we run `git commit`, Git takes everything we have told it to save by using `git add` and stores a copy permanently inside the special `.git` directory. This permanent copy is called a commit (or revision) and its short identifier is `f22b25e` (Your commit may have another identifier.) + +You can do as many commits as you wish while developing your function. If you reach a point at which any of the open issues gets solved, you can make your commit message end with `Fixes #issue_number` ([Exercise 4 – Open new issue in Git_Training project](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/gogs_issues)). + +If you don't specify the `-m` parameter a text editor will open automatically to allow you to write the commit message. + +You can now ask Git to show the project history to check that the commit was successful by using: + +``` +git log +``` + +#### Exercise 7 – Perform run script commit + +You can now modify `run.sh` script to add the call to your newly created function (do not forget to source the file containing the function). + +Test it: + +``` +bash run.sh +``` + +When you are sure it works (it greets you in english and in your choosen language), perform a separate commit by following similar steps as in previous exercise: + +``` +git add run.sh +git commit +``` + +#### Exercise 8 – Push git_tutorial project branch + +``` +git push origin <branch_name> +``` + +where `<branch_name>` is the name used in the previous step. \ No newline at end of file diff --git a/learning-git/project/linux/functions/greetings.sh b/learning-git/project/linux/functions/greetings.sh new file mode 100644 index 0000000000000000000000000000000000000000..40234c29cb2debfb8ab321a9d50fd84c9306b46b --- /dev/null +++ b/learning-git/project/linux/functions/greetings.sh @@ -0,0 +1,19 @@ +# Functions to deal with greetings +# +# Written by Domingo Manubens-Gil +# +# Barcelona Supercomputing Centre / Earth Sciences Department (BSC-ES) +# Created: December 4, 2015 +# Adapted: + +####################################### +# Say Hello in English +# Globals: +# Arguments: +# None +# Returns: +# None +####################################### +function say_hello() { + echo "Add same function for your language below..." +} diff --git a/learning-git/project/linux/gogs_issues/README.md b/learning-git/project/linux/gogs_issues/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d5150981f11d9bbd21dd83bc2754f98babd6c468 --- /dev/null +++ b/learning-git/project/linux/gogs_issues/README.md @@ -0,0 +1,13 @@ +# Prepare issues on Gogs + +In this chapter we will create the issues on Gogs to tell other developers in the collaborative project what are we going to develop: a bash function to say Hello in a language of your choice from the table above. + +Gogs is a visual layer that works on Git. It displays graphically in your web browser all the information that Git provides: the ongoing developments, the track of the modifications, browse to any point in the past, ... and on top of that, allows to discuss issues in a forum format. We will centralise all TECLIM developments in this portal. + +#### Exercise 4 – Open new issue in Git_Training project + +* Open the browser and go to the Gogs project Git_Training main page. +* Issues .. + New issue .. Submit new issue. +* Put the short name of your function (e.g. greetings_catalan) in the title, write a full description and put the label “enhancementâ€. +* Click on “Create issueâ€. +* You can then see a list with all the issues. Each is assigned an #issue_number. diff --git a/learning-git/project/linux/pull_master/README.md b/learning-git/project/linux/pull_master/README.md new file mode 100644 index 0000000000000000000000000000000000000000..752d52d7d0429405c66e22564797dbdff7798d7d --- /dev/null +++ b/learning-git/project/linux/pull_master/README.md @@ -0,0 +1,27 @@ +# Pull master changes + +Once the project coordinator has accepted all pull requests, there is a new version of the software in the master branch. It greets you in many languages and this is preety cool, you might want to update to it. + +## Exercise 13 - Update master branch + +Following instruction from [Exercise 10 – Checkout a branch from Git_Training project](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/linux/review), checkout the master branch. + +``` +git checkout master +``` + +To update master branch (previously checked out) you can use: + +#### git pull + +``` +git pull origin master +``` + +## Exercise 14 – Run final version + +Now you can test final `run.sh` and see the greetings in many languages ! + +``` +bash run.sh +``` \ No newline at end of file diff --git a/learning-git/project/linux/pull_request/README.md b/learning-git/project/linux/pull_request/README.md new file mode 100644 index 0000000000000000000000000000000000000000..64ae47b48b97e5d496345217811659e048cd54ad --- /dev/null +++ b/learning-git/project/linux/pull_request/README.md @@ -0,0 +1,14 @@ +# Create pull request + +Our willing at this point is that our enhancements end up in the master branch of the project and that the responsible of the project releases a new version. Before doing so we need to go through a review and testing procedure. We don't want buggy code in our release. For doing so the first step is to create a `pull request`. In that `pull request` we can kindly ask a gentle collaborator to test our function. + +#### Exercise 9 – Create a pull request in Git_Training project + +* Open the browser and go to the Gogs project Git_Training main page. +* Pull requests .. New Pull Request. +* Choose your source branch (e.g. “greetings_catalanâ€) and target branch (in this case target is “masterâ€). +* Click on “Compare branchesâ€. +* Fill in title and description. +* If any comment is needed put there. You can now take advantage to ask a collaborator (the person on your right) to test your function by using this technique +* Assign to the project coordinator. +* Click on “Submit Pull Requestâ€. diff --git a/learning-git/project/linux/review/README.md b/learning-git/project/linux/review/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e465a118b2aa494b0fc1898a407b3c6c81e36718 --- /dev/null +++ b/learning-git/project/linux/review/README.md @@ -0,0 +1,84 @@ +# Review and test others' functions + +In this chapter we are going to go through the review and test procedure. You might have received notifications from your colleagues asking to test their branch. So the first you need to do is to checkout their branch. + +To know what branches are available you can use: + +#### git branch + +``` +git branch -a +``` + +The outputs tells what branch you are on, marked with an asterisk. By default (if you have not created any branch) you are in the master branch. + +``` +* master +``` + +## Exercise 10 – Checkout a branch from git_tutorial project + +Since others might have asked you to review and test new branches at this stage you would like to have a look at the code and test it. To review a code may be enough to browse it in a Gogs window. + +But in order to test it you have to checkout it to your `working copy` from the command line: + +``` +git fetch +``` + +(this will detect all the branches that others pushed) + +``` +git checkout <other_branch_name> +``` + +And it will update the contents of your directory giving an output similar to this: + +``` +Branch greetings_spanish set up to track remote branch greetings_spanish from origin. +Switched to a new branch 'greeting_spanish' +``` + +**CAUTION**: If you have uncommited changes in your project and you perform a `checkout` all your changes will be dragged into the other branch. You will see a `'M'` after the checkout. To avoid that it is preferable to do always `git commit` before doing a checkout. + +``` +M README.md +Switched to branch 'master' +Your branch is up-to-date with 'origin/master'. +``` + +Additionally if you have files not added happens more or less the same. + +**HINT**: It is very recommendable to use `git status` before a checkout. In case there is something wrong or potentially dangerous you will see a message describing the problem and suggestions to overcome it: + +``` +Your branch is up-to-date with 'origin/master'. +Untracked files: + (use "git add <file>..." to include in what will be committed) + + greetings_catalan.sh + +nothing added to commit but untracked files present (use "git add" to track) +``` + +## Exercise 11 – Review and test + +Once you have checked out to the branch you have to test you can open the files in your preferred text editor and review them. + +To test it you only have to do: + +``` +bash run.sh +``` + +If the program does the right thing you can express your approval to the merge request: + +## Exercise 12 – Approve a pull request + +* Open the browser and go to the Gogs project Git_Training main page. +* Pull requests. +* Choose the pull request you are willing to approve. +* Go to “Write†in the tab discussion, and say you are right with the pull. +* Click on “Add commentâ€. + +After that, the project coordinator will accept the pull requests and a new version of the software will be released. \ No newline at end of file diff --git a/learning-git/project/linux/run.sh b/learning-git/project/linux/run.sh new file mode 100644 index 0000000000000000000000000000000000000000..10152eec5e6ba9a0886ba39da06ed91ad4b13f46 --- /dev/null +++ b/learning-git/project/linux/run.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Load (source) the functions +. functions/greetings.sh + +# Say Hello World +echo "####### Hello World ! #######" +say_hello diff --git a/learning-git/project/linux/working_environment/README.md b/learning-git/project/linux/working_environment/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5ae46f016fab44002c7033cfb703b4decc34e7bd --- /dev/null +++ b/learning-git/project/linux/working_environment/README.md @@ -0,0 +1,96 @@ +# Set up your working environment +## Exercise 1 – Git global configuration + +First of all you will have to configure git locally in your laptop: + +> Of course, you must have git installed. With ubuntu: **sudo apt-get install git** + +Open a terminal and run the following git global commands (put your name and email): + +``` +git config --global user.name "My name" +git config --global user.email "my_mail@uclouvain.be" +git config --global color.ui auto +git config --global core.editor "vim" +git config --global push.default simple +``` + +## Exercise 2 – Gogs configuration + +If it is the first time you try to enter in Gogs click on “Sign-in†and use your classical ELIC login. + +After completing this step you will need to ask access to the repositories you want. Send an email to the Gogs administrators of this (these) project(s) asking access to. + +## Exercise 3 – Clone into a working environment + +To start working you need to create a clone, called afterward “working copy†of the git_tutorial project from Gitlab in your home (or folder of your choice): + +``` +git clone ssh://git@www.climate.be:3022/TECLIM/Git_Training.git +``` + +It will ask for your username and password and you will see output like this: + +``` +Cloning into 'Git_Training'... +remote: Counting objects: 3, done. +remote: Total 3 (delta 0), reused 0 (delta 0) +Unpacking objects: 100% (3/3), done. +Checking connectivity... done. +``` + +It has created a 'Git_Training' folder and you can browse into it: + +``` +cd Git_Training +``` + +Git clone allows you to specify parameters such as the target folder. If you don't specify it the working copy will be named as the project. + +Hidden inside a 'working copy' resulting from a git clone there is a special '.git' directory that contains internal objects needed by git. + +``` +pbarriat@elixir:~/tmp/Git_Training> ls .git/ +branches description hooks info objects refs +config HEAD index logs packed-refs +``` + +It is hidden because you are not supposed to worry at all of internals of '.git'. When you type regular git commands like those in this tutorial, git, transparently writes stuff like indices, references, branch information there. + +When you are in a working copy you can use regular unix-like commands such as ls, touch, cp, vi, etc. Additionally you can use whatever git commands, for instance: + +#### git status + +``` +git status +``` + +The outputs tells you in what branch you are on. By default (if you have not specified in the clone) it clones the master branch. + +On branch master +Your branch is up-to-date with 'origin/master'. +nothing to commit, working directory clean + +Git status is very important. It's recommendable to use it every now and then to know the status of your branch. + +Moreover you can check the history of changes by using git log command: +git log + +#### git log + +The outputs is a list of what has been changed recently, in reverse chronological order. It tells the author of the change, when it was made and the log message given. + +``` +commit eab1f5f77cc3c7041f6837ce15172f2be7a650b2 +Author: Pierre-Yves Barriat <pierre-yves.barriat@uclouvain.be> +Date: Fri Dec 4 15:19:11 2015 +0100 + + Initial commit for greetings functions + +commit 50920a3d04197bd4e52bbfdfdfefc56be23955c6 +Author: Pierre-Yves Barriat <pierre-yves.barriat@uclouvain.be> +Date: Thu Dec 3 19:04:16 2015 +0100 + + Add readme +``` + diff --git a/learning-git/project/linux/working_environment/env.sh b/learning-git/project/linux/working_environment/env.sh new file mode 100644 index 0000000000000000000000000000000000000000..756b8bcb21241420775433be44d13395136a4619 --- /dev/null +++ b/learning-git/project/linux/working_environment/env.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +git config --global user.name "My name" +git config --global user.email "my_mail@uclouvain.be" +git config --global color.ui auto +git config --global core.editor "vim" +git config --global push.default simple diff --git a/learning-git/project/windows/README.md b/learning-git/project/windows/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5d31b7a01e2b67c11fe15c9c353a83b1df3d7c6d --- /dev/null +++ b/learning-git/project/windows/README.md @@ -0,0 +1,14 @@ +# Git tutorial - session +We are going to do some exercises in this dummy project. + +It is very simple, only consists in a HTML file and a CSS file and you will have to write some style definitions there. In the end the idea is to get a big HTML file with many `<div>` parts, each one in a different style. + +In this tutorial you will learn how to make commits in the Git project, to create several branches, to push things to GitHub, and to follow a standard procedure to develop collaboratively. Afterwards, you should apply the same methods to any other collaborative development inside your department. The objectives will be achieved gradually following these topics: + +1. [Set up your working environment](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/working_environment) +2. [Prepare issues](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/issues) +3. [Prepare branches](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/branches) +4. [Add new content](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/functions) +5. [Create pull request](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/pull_request) +6. [Review and test others' branches](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/review) +7. [Pull master changes](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/pull_master) diff --git a/learning-git/project/windows/branches/README.md b/learning-git/project/windows/branches/README.md new file mode 100644 index 0000000000000000000000000000000000000000..c590f65dd14ded06b0a35d8e687f5f9481a60686 --- /dev/null +++ b/learning-git/project/windows/branches/README.md @@ -0,0 +1,22 @@ +# Prepare branches + +Branching means you diverge from the main line of development and continue to do work without messing with that main line. Branches are instances of a repository that can be edited and version controlled in parallel. You can think of it like making an entire copy of your repository folder that you can edit, without affecting the original versions of your scripts. + +## Exercise 5 – Create branch in Git_Training project + +Branches are very useful when many people are working on the same project. Such cases are premises for lots and lots of conflicts. With branches the developers have the possibility to work on separate parts of the project without causing conflicts. When one developer finishes the feature that they are working on – the branch can be merged with the main one. + +Create the new branch checking off from “master†branch (Here the branch name is: develop). + +||| +| -------- | -------- | +|  |  | + +`<branch_name>` could be the name of the PC you are working on. + +Switch to that branch + +||| +| -------- | -------- | +|  |  | +|  | | diff --git a/learning-git/project/windows/branching-website.html b/learning-git/project/windows/branching-website.html new file mode 100644 index 0000000000000000000000000000000000000000..7fca3af75d7db0c1fa7701f5f4b329a904d910f1 --- /dev/null +++ b/learning-git/project/windows/branching-website.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> + <head> + <link href="styles.css" rel="stylesheet" type="text/css"> + <title> Branching Practice Site </title> + </head> + <body> + <h1> Branching </h1> + <h2> A website to practice branching with Git. </h2> + <p> This page has been created in order to practice branching with Git and GitHub. By creating branches, we can work on different versions of the same code in the same repository simultaneously! </p> + <h2> Tips </h2> + <p> This HTML file is associated to a CSS file. You will have to write you own style definitions and to create your own appropriate div part below. </p> + <h1> Branches </h1> + + <div class="master"> + <h2> Master </h2> + <p>I am the master</p> + </div> + + <div class="example"> + <h2 class="example"> Example </h2> + <p>I am an example</p> + </div> + + </body> +</html> diff --git a/learning-git/project/windows/functions/README.md b/learning-git/project/windows/functions/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3d87123e15515d7f18d6e45f755b3be9bdfe9125 --- /dev/null +++ b/learning-git/project/windows/functions/README.md @@ -0,0 +1,56 @@ +# Add new content + +In this chapter we will fill the HTML file to see different sections in different styles. + +In the beginning you will modify the file `styles.css` by adding your own style. Here there an usefull link for [CSS Colors](https://www.w3schools.com/cssref/css_colors.asp) + +Then you will modify `branching-website.html` to apply your style to your own section. + +In a further chapter of this tutorial, we will merge all the styles in the same file `branching-website.html` and we will see how git helps on the process of resolving conflicts. + +#### Exercise 6 – Perform function commit + +Now you have time to make changes in Git_Training project, i.e. modify 'styles.css' file and develop your style. After that, if we check the status of our project again, Git tells us that it’s noticed a modified file. We can tell Git to track a file using git add. + +``` +git add . +``` + +Git now knows that it’s supposed to keep track of 'styles.css', but it hasn’t recorded these changes as a commit yet. To get it to do that, we need to run one more command: + +``` +git commit -m "message explaining what you have done. Fixes issue #issue_number" +``` + +When we run `git commit`, Git takes everything we have told it to save by using `git add` and stores a copy permanently inside the special `.git` directory. This permanent copy is called a commit (or revision) and its short identifier is `f22b25e` (Your commit may have another identifier.) + +You can do as many commits as you wish while developing your function. If you reach a point at which any of the open issues gets solved, you can make your commit message end with `Fixes #issue_number` ([Exercise 4 – Open new issue in Git_Training project](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/issues)). + +If you don't specify the `-m` parameter a text editor will open automatically to allow you to write the commit message. + +You can now ask Git to show the project history to check that the commit was successful by using: + +``` +git log +``` + +#### Exercise 7 – Perform run script commit + +You can now modify `branching-website.html` file to add the section `div` to your newly created style. + +Test it by opening the html file in a web browser. + +When you are sure it's fine, perform a separate commit by following similar steps as in previous exercise: + +``` +git add branching-website.html +git commit +``` + +#### Exercise 8 – Push git_tutorial project branch + +``` +git push origin <branch_name> +``` + +where `<branch_name>` is the name used in the previous step. diff --git a/learning-git/project/windows/issues/README.md b/learning-git/project/windows/issues/README.md new file mode 100644 index 0000000000000000000000000000000000000000..87c32054970273d9d15cfe80b43c026767f32afe --- /dev/null +++ b/learning-git/project/windows/issues/README.md @@ -0,0 +1,15 @@ +# Prepare issues + +In this chapter we will create the issues on Github to tell other developers in the collaborative project what are we going to develop. + +Let's walk through a basic example together. We'll craft a small website. Then, we'll create multiple branches to experiment with different CSS styles. We'll compare the styles, choose which we like best, and integrate the favored styles into our "final draft" (that is, our master branch). You and your partners should begin following along at this time. + +Github is a visual layer that works on Git. It displays graphically in your web browser all the information that Git provides: the ongoing developments, the track of the modifications, browse to any point in the past, ... and on top of that, allows to discuss issues in a forum format. We will centralise all developments in this portal. + +#### Exercise 4 – Open new issue in Git_Training project + +* Open the browser and go to the Github project Git_Training main page. +* Issues .. + New issue .. Submit new issue. +* Put the short name of your style (e.g. ceres01) in the title, write a full description and put the label “enhancementâ€. +* Click on “Create issueâ€. +* You can then see a list with all the issues. Each is assigned an #issue_number. diff --git a/learning-git/project/windows/pull_master/README.md b/learning-git/project/windows/pull_master/README.md new file mode 100644 index 0000000000000000000000000000000000000000..4fc264af9e69a721d6f206bf42a06d774698af33 --- /dev/null +++ b/learning-git/project/windows/pull_master/README.md @@ -0,0 +1,23 @@ +# Pull master changes + +Once the project coordinator has accepted all pull requests, there is a new version of the software in the master branch. It displays you all the sections in many styles and this is preety cool, you might want to update to it. + +## Exercise 13 - Update master branch + +Following instruction from [Exercise 10 – Checkout a branch from Git_Training project](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/project/windows/review), checkout the master branch. + +``` +git checkout master +``` + +To update master branch (previously checked out) you can use: + +#### git pull + +``` +git pull origin master +``` + +## Exercise 14 – Run final version + +Now you can see final `branching-website.html` and see the several styles ! diff --git a/learning-git/project/windows/pull_request/README.md b/learning-git/project/windows/pull_request/README.md new file mode 100644 index 0000000000000000000000000000000000000000..29b85a5bc536e8aec3f016c785df685e8dd0ba1a --- /dev/null +++ b/learning-git/project/windows/pull_request/README.md @@ -0,0 +1,14 @@ +# Create pull request + +Our willing at this point is that our enhancements end up in the master branch of the project and that the responsible of the project releases a new version. Before doing so we need to go through a review and testing procedure. We don't want buggy code in our release. For doing so the first step is to create a `pull request`. In that `pull request` we can kindly ask a gentle collaborator to test our function. + +#### Exercise 9 – Create a pull request in Git_Training project + +* Open the browser and go to the GitHub project Git_Training main page. +* Pull requests .. New Pull Request. +* Choose your source branch (e.g. “ceres01â€) and target branch (in this case target is “masterâ€). +* Click on “Compare branchesâ€. +* Fill in title and description. +* If any comment is needed put there. You can now take advantage to ask a collaborator (the person on your right) to test your function by using this technique +* Assign to the project coordinator. +* Click on “Submit Pull Requestâ€. diff --git a/learning-git/project/windows/review/README.md b/learning-git/project/windows/review/README.md new file mode 100644 index 0000000000000000000000000000000000000000..cdc24f62a19e6e2652cb26c7b1d1d5df0e990930 --- /dev/null +++ b/learning-git/project/windows/review/README.md @@ -0,0 +1,80 @@ +# Review and test others' functions + +In this chapter we are going to go through the review and test procedure. You might have received notifications from your colleagues asking to test their branch. So the first you need to do is to checkout their branch. + +To know what branches are available you can use: + +#### git branch + +``` +git branch -a +``` + +The outputs tells what branch you are on, marked with an asterisk. By default (if you have not created any branch) you are in the master branch. + +``` +* master +``` + +## Exercise 10 – Checkout a branch from git_tutorial project + +Since others might have asked you to review and test new branches at this stage you would like to have a look at the code and test it. To review a code may be enough to browse it in a GitHub window. + +But in order to test it you have to checkout it to your `working copy` from the command line: + +``` +git fetch +``` + +(this will detect all the branches that others pushed) + +``` +git checkout <other_branch_name> +``` + +And it will update the contents of your directory giving an output similar to this: + +``` +Branch ceres05 set up to track remote branch ceres05 from origin. +Switched to a new branch 'ceres05' +``` + +**CAUTION**: If you have uncommited changes in your project and you perform a `checkout` all your changes will be dragged into the other branch. You will see a `'M'` after the checkout. To avoid that it is preferable to do always `git commit` before doing a checkout. + +``` +M README.md +Switched to branch 'master' +Your branch is up-to-date with 'origin/master'. +``` + +Additionally if you have files not added happens more or less the same. + +**HINT**: It is very recommendable to use `git status` before a checkout. In case there is something wrong or potentially dangerous you will see a message describing the problem and suggestions to overcome it: + +``` +Your branch is up-to-date with 'origin/master'. +Untracked files: + (use "git add <file>..." to include in what will be committed) + + styles.css + +nothing added to commit but untracked files present (use "git add" to track) +``` + +## Exercise 11 – Review and test + +Once you have checked out to the branch you have to test you can open the files in your preferred text editor and review them. + +To test it you only have to open the HTML in a web browser. + +If the program does the right thing you can express your approval to the merge request: + +## Exercise 12 – Approve a pull request + +* Open the browser and go to the GitHub project Git_Training main page. +* Pull requests. +* Choose the pull request you are willing to approve. +* Go to “Write†in the tab discussion, and say you are right with the pull. +* Click on “Add commentâ€. + +After that, the project coordinator will accept the pull requests and a new version of the software will be released. \ No newline at end of file diff --git a/learning-git/project/windows/styles.css b/learning-git/project/windows/styles.css new file mode 100644 index 0000000000000000000000000000000000000000..8d08dc777f5ea282845723d2c2fdaca404624b05 --- /dev/null +++ b/learning-git/project/windows/styles.css @@ -0,0 +1,15 @@ +.master { + background-color: blue; + color: white; +} + +.example { + background-color: skyblue; + color: gray; +} +h2.example { + font-style: italic; + text-align: center; + color: teal; +} + diff --git a/learning-git/project/windows/working_environment/README.md b/learning-git/project/windows/working_environment/README.md new file mode 100644 index 0000000000000000000000000000000000000000..fd1dbd7fda662b723485f7743b187243468c4589 --- /dev/null +++ b/learning-git/project/windows/working_environment/README.md @@ -0,0 +1,109 @@ +# Set up your working environment + +## Exercise 1 - Git global configuration + +First of all you will have to configure git locally in your desktop: + +You must have git installed. See the instructions [here](https://gogs.elic.ucl.ac.be/TECLIM/Git_Training/src/master/resources/README.md). + +### Gogs + +Go to https://gogs.elic.ucl.ac.be/ and "Sign-in". +> Choose **local** and use your family name as login and your name as password. + +### GitHub + +Go to https://github.com/ and "Sign-in". + +After completing this step you will need to ask access to the repositories you want. Send an email to the administrators of this (these) project(s) asking access to. + +## Exercise 2 - Clone a project + +To start working you need to create a clone, called afterward “working copy†of the git_tutorial project from Github in your home (or folder of your choice): + +For instance, paste the URL into git-GUI and it will clone the repo locally on your computer: + + + +It created a 'Git_Training' folder and you can browse into it. + +Git clone allows you to specify parameters such as the target folder. If you don't specify it the working copy will be named as the project. + +Hidden inside a 'working copy' resulting from a git clone there is a special '.git' directory that contains internal objects needed by git. + +```bash +branches description hooks info objects refs +config HEAD index logs packed-refs +``` + +It is hidden because you are not supposed to worry at all of internals of '.git'. When you type regular git commands like those in this tutorial, git, transparently writes stuff like indices, references, branch information there. + +When you are in a working copy you can use regular windows operations such as create file/folder, copy/paste, etc. Additionally you can use whatever git commands. + +### git status + +The outputs tells you in what branch you are on. By default (if you have not specified in the clone) it clones the master branch. + +```bash +On branch master +Your branch is up-to-date with 'origin/master'. +nothing to commit, working directory clean +``` + +`git status` is very important. It's recommendable to use it every now and then to know the status of your branch. + +Moreover you can check the history of changes by using `git log` command. + +### git log + +The outputs is a list of what has been changed recently, in reverse chronological order. It tells the author of the change, when it was made and the log message given. + +``` +commit eab1f5f77cc3c7041f6837ce15172f2be7a650b2 +Author: Pierre-Yves Barriat <pierre-yves.barriat@uclouvain.be> +Date: Fri Dec 4 15:19:11 2015 +0100 + + Initial commit for greetings functions + +commit 50920a3d04197bd4e52bbfdfdfefc56be23955c6 +Author: Pierre-Yves Barriat <pierre-yves.barriat@uclouvain.be> +Date: Thu Dec 3 19:04:16 2015 +0100 + + Add readme +``` + +## Exercise 3 – Basics operation + +### Make some changes new-file.txt + + + +### Commit your local changes to your local repository + +Click with the right mouse button and click on **Git Commit** + + + +You should see the following window: + + + +In the message section, write a short summary of your commit. It is good practice to always have meaningful messages. Do not forget to add your files in the bottom part of the window. + +When you are done with these steps, you can click on `[Commit]` and you should see the following window: + + + +In this window, you can see how many files were changed and how many insertions and/or deletions were made. If you are satisfied with the information just click on `[Push]`. + +#### Push your changes to the remote repository in GitHub + + + +In this window, you can manage to which branch you are pushing your files, but we will talk about branches later in the exercise. For now, just click on `[OK]` and your file will be pushed to the master branch. + +#### Check whether your changes are online + +Open your GitHub repository in your browser and click on new-file.txt. In there you should see the content, which you have written. + +You can see the commit message is written in the second column of the commit you have made. You can use this column to get more information about which files were changed and what has been changed. That’s why it’s always good practice to write meaningful commit messages. diff --git a/learning-git/resources/README.md b/learning-git/resources/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a1abb510accba6caed7f90ea8715b203ea959e96 --- /dev/null +++ b/learning-git/resources/README.md @@ -0,0 +1,67 @@ +# Git_Training + +## Git cheat sheet + +- [git-cheat-sheet.pdf](git-cheat-sheet.pdf) +- [git-refcard.pdf](git-refcard.pdf) +- [github-git-cheat-sheet.pdf](github-git-cheat-sheet.pdf) + +## GitLab with 2FA enabled + +The UCLouvain Forge is based on a 2FA UCLouvain account. So if you try to clone a repository and you get: + +```bash +Cloning into 'learning-git'... +Username for 'https://forge.uclouvain.be': barriat +Password for 'https://barriat@forge.uclouvain.be': +remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://forge.uclouvain.be/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied +fatal: Authentication failed for 'https://forge.uclouvain.be/barriat/learning-git.git/' +``` + +You must create and use a token: + +- [How to create an use a token](forge_token.md) + +## Git for Windows or Mac OS X + +### Windows integration + +Download and install Git for Windows from: [gitforwindows.org](https://gitforwindows.org/) + +This installs a minimal Unix style shell (called `git-bash`), the basic OpenSSH tools as well as git. + +During install select the following (for any other options given choose the defaults): + +||| +| -------- | -------- | +| | | +| | | +| | | +| | | +| | | + +> You should use [Visual Studio Code](https://code.visualstudio.com/download) as default editor. + +Setup of Git GUI’s: download and install TortoiseGit from [tortoisegit.org](https://tortoisegit.org/) + +> Select OpenSSH for the SSH Client and just put "ssh.exe" + +||| +| -------- | -------- | +|  |  | +|| +||| + +### Mac OS X + +Download a Git installer [here](https://sourceforge.net/projects/git-osx-installer/). + +> Keep all options "By default" during installation + +Now, open a terminal and use Git as you do on Linux... + +## Tricky commands + +Here are a few commands that you may not know yet, or that offer options you haven’t been aware of so far. + +[Tricky commands](tricky.md) diff --git a/learning-git/resources/forge_token.md b/learning-git/resources/forge_token.md new file mode 100644 index 0000000000000000000000000000000000000000..f3988809d7fd6f407a353cbbd0036c0291426126 --- /dev/null +++ b/learning-git/resources/forge_token.md @@ -0,0 +1,38 @@ +# GitLab with 2FA enabled + +The UCLouvain Forge is based on a 2FA UCLouvain account. So if you try to clone a repository and you get: + +```bash +Cloning into 'learning-git'... +Username for 'https://forge.uclouvain.be': barriat +Password for 'https://barriat@forge.uclouvain.be': +remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://forge.uclouvain.be/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied +fatal: Authentication failed for 'https://forge.uclouvain.be/barriat/learning-git.git/' +``` + +You must create and use a token. Instead of: + +```bash +git clone https://forge.uclouvain.be/barriat/learning-gitlab.git +Username for 'https://forge.uclouvain.be': <UCLouvain_username> +Password for 'https://barriat@forge.uclouvain.be': <UCLouvain_password> +``` + +Use: + +```bash +git clone https://forge.uclouvain.be/barriat/learning-gitlab.git +Username for 'https://forge.uclouvain.be': <UCLouvain_username> +Password for 'https://barriat@forge.uclouvain.be': <a_token> +``` + +So first, create a token for your repository. See the 4 steps below: + +> Warning: at the last step (when you just created your token), don't forget to save it... It's your only chance to save the "key" of this token !!! + +||| +| -------- | -------- | +| | | +| | | + +Once done, you can now clone the repository (and pull/push in it) with your username and the "key token" instead of your account's password. \ No newline at end of file diff --git a/learning-git/resources/getting_started.sh b/learning-git/resources/getting_started.sh new file mode 100644 index 0000000000000000000000000000000000000000..c57b988f560f73ee8793ecf46d5fead8503325bf --- /dev/null +++ b/learning-git/resources/getting_started.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# +#git config --global user.name "My name" +#git config --global user.email "my_mail@uclouvain.be" +git config --global color.ui auto +git config --global color.diff auto +git config --global color.status auto +git config --global color.branch auto +git config --global core.editor "vim" +git config --global push.default simple diff --git a/learning-git/resources/git-cheat-sheet.pdf b/learning-git/resources/git-cheat-sheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e3e34ee638e2020b019a7a5d221d12b24850b6b6 --- /dev/null +++ b/learning-git/resources/git-cheat-sheet.pdf @@ -0,0 +1,3321 @@ +%PDF-1.4 %âãÏÓ +4 0 obj <</Linearized 1/L 251664/O 6/E 210179/N 1/T 251543/H [ 12596 592]>> endobj xref 4 615 0000000016 00000 n +0000013188 00000 n +0000013248 00000 n +0000015548 00000 n +0000015582 00000 n +0000016578 00000 n +0000017057 00000 n +0000017946 00000 n +0000018819 00000 n +0000019630 00000 n +0000020463 00000 n +0000021260 00000 n +0000022180 00000 n +0000023252 00000 n +0000023314 00000 n +0000023376 00000 n +0000026024 00000 n +0000081347 00000 n +0000081594 00000 n +0000081707 00000 n +0000082087 00000 n +0000082314 00000 n +0000082376 00000 n +0000082438 00000 n +0000082832 00000 n +0000083059 00000 n +0000083121 00000 n +0000083183 00000 n +0000083578 00000 n +0000083640 00000 n +0000084036 00000 n +0000084294 00000 n +0000084356 00000 n +0000084418 00000 n +0000084808 00000 n +0000084870 00000 n +0000085277 00000 n +0000085339 00000 n +0000085746 00000 n +0000085808 00000 n +0000086216 00000 n +0000086535 00000 n +0000086597 00000 n +0000086659 00000 n +0000087066 00000 n +0000087293 00000 n +0000087355 00000 n +0000087417 00000 n +0000087822 00000 n +0000088049 00000 n +0000088111 00000 n +0000088173 00000 n +0000088581 00000 n +0000088808 00000 n +0000088870 00000 n +0000088932 00000 n +0000089335 00000 n +0000089562 00000 n +0000089624 00000 n +0000089686 00000 n +0000090092 00000 n +0000090319 00000 n +0000090381 00000 n +0000090443 00000 n +0000090850 00000 n +0000091077 00000 n +0000091139 00000 n +0000091201 00000 n +0000091595 00000 n +0000091821 00000 n +0000091883 00000 n +0000091945 00000 n +0000092349 00000 n +0000092411 00000 n +0000092811 00000 n +0000093069 00000 n +0000093131 00000 n +0000093193 00000 n +0000093606 00000 n +0000093833 00000 n +0000093895 00000 n +0000093957 00000 n +0000094347 00000 n +0000094574 00000 n +0000094636 00000 n +0000094698 00000 n +0000095097 00000 n +0000095323 00000 n +0000095385 00000 n +0000095447 00000 n +0000095846 00000 n +0000096073 00000 n +0000096135 00000 n +0000096197 00000 n +0000096588 00000 n +0000096815 00000 n +0000096877 00000 n +0000096940 00000 n +0000097333 00000 n +0000097562 00000 n +0000097625 00000 n +0000097688 00000 n +0000098096 00000 n +0000098326 00000 n +0000098389 00000 n +0000098452 00000 n +0000098855 00000 n +0000099084 00000 n +0000099147 00000 n +0000099210 00000 n +0000099623 00000 n +0000099853 00000 n +0000099916 00000 n +0000099979 00000 n +0000100374 00000 n +0000100603 00000 n +0000100666 00000 n +0000100729 00000 n +0000101148 00000 n +0000101378 00000 n +0000101441 00000 n +0000101504 00000 n +0000101915 00000 n +0000102145 00000 n +0000102208 00000 n +0000102271 00000 n +0000102683 00000 n +0000102913 00000 n +0000102976 00000 n +0000103039 00000 n +0000103443 00000 n +0000103673 00000 n +0000103736 00000 n +0000103799 00000 n +0000104211 00000 n +0000104440 00000 n +0000104503 00000 n +0000104566 00000 n +0000104954 00000 n +0000105183 00000 n +0000105246 00000 n +0000105309 00000 n +0000105702 00000 n +0000105931 00000 n +0000105994 00000 n +0000106057 00000 n +0000106454 00000 n +0000106684 00000 n +0000106747 00000 n +0000106810 00000 n +0000107203 00000 n +0000107433 00000 n +0000107496 00000 n +0000107559 00000 n +0000107974 00000 n +0000108203 00000 n +0000108266 00000 n +0000108329 00000 n +0000108750 00000 n +0000108980 00000 n +0000109044 00000 n +0000110208 00000 n +0000110271 00000 n +0000110334 00000 n +0000110736 00000 n +0000110965 00000 n +0000111028 00000 n +0000111091 00000 n +0000111480 00000 n +0000111710 00000 n +0000111773 00000 n +0000111836 00000 n +0000112255 00000 n +0000112485 00000 n +0000112548 00000 n +0000112611 00000 n +0000113014 00000 n +0000113243 00000 n +0000113306 00000 n +0000113369 00000 n +0000113760 00000 n +0000113990 00000 n +0000114053 00000 n +0000114116 00000 n +0000114512 00000 n +0000114742 00000 n +0000114805 00000 n +0000114868 00000 n +0000115257 00000 n +0000115486 00000 n +0000115549 00000 n +0000115612 00000 n +0000116002 00000 n +0000116232 00000 n +0000116295 00000 n +0000116358 00000 n +0000116775 00000 n +0000117005 00000 n +0000117068 00000 n +0000117131 00000 n +0000117526 00000 n +0000117756 00000 n +0000117819 00000 n +0000118244 00000 n +0000118307 00000 n +0000118370 00000 n +0000118768 00000 n +0000118998 00000 n +0000119061 00000 n +0000119456 00000 n +0000119519 00000 n +0000119582 00000 n +0000119972 00000 n +0000120202 00000 n +0000120265 00000 n +0000120328 00000 n +0000120731 00000 n +0000120960 00000 n +0000121023 00000 n +0000121086 00000 n +0000121475 00000 n +0000121704 00000 n +0000121767 00000 n +0000121830 00000 n +0000122231 00000 n +0000122461 00000 n +0000122524 00000 n +0000122587 00000 n +0000122977 00000 n +0000123207 00000 n +0000123270 00000 n +0000123333 00000 n +0000123724 00000 n +0000123954 00000 n +0000124017 00000 n +0000124080 00000 n +0000124468 00000 n +0000124698 00000 n +0000124761 00000 n +0000124824 00000 n +0000125220 00000 n +0000125283 00000 n +0000125682 00000 n +0000125745 00000 n +0000126143 00000 n +0000126206 00000 n +0000126606 00000 n +0000126669 00000 n +0000127069 00000 n +0000127132 00000 n +0000127529 00000 n +0000127920 00000 n +0000127983 00000 n +0000128046 00000 n +0000128453 00000 n +0000128683 00000 n +0000128746 00000 n +0000128809 00000 n +0000129205 00000 n +0000129435 00000 n +0000129498 00000 n +0000129561 00000 n +0000129972 00000 n +0000130202 00000 n +0000130265 00000 n +0000130328 00000 n +0000130717 00000 n +0000130780 00000 n +0000131175 00000 n +0000131437 00000 n +0000131500 00000 n +0000131563 00000 n +0000131969 00000 n +0000132199 00000 n +0000132262 00000 n +0000132325 00000 n +0000132732 00000 n +0000132961 00000 n +0000133024 00000 n +0000133087 00000 n +0000133492 00000 n +0000133722 00000 n +0000133785 00000 n +0000133848 00000 n +0000134247 00000 n +0000134477 00000 n +0000134540 00000 n +0000134603 00000 n +0000135018 00000 n +0000135247 00000 n +0000135310 00000 n +0000135373 00000 n +0000135779 00000 n +0000136009 00000 n +0000136072 00000 n +0000136135 00000 n +0000136544 00000 n +0000136773 00000 n +0000136836 00000 n +0000136899 00000 n +0000137304 00000 n +0000137367 00000 n +0000137768 00000 n +0000138029 00000 n +0000138092 00000 n +0000138155 00000 n +0000138559 00000 n +0000138789 00000 n +0000138853 00000 n +0000139383 00000 n +0000139446 00000 n +0000139509 00000 n +0000139901 00000 n +0000140131 00000 n +0000140194 00000 n +0000140257 00000 n +0000140648 00000 n +0000140878 00000 n +0000140941 00000 n +0000141004 00000 n +0000141396 00000 n +0000141626 00000 n +0000141689 00000 n +0000141752 00000 n +0000142141 00000 n +0000142370 00000 n +0000142433 00000 n +0000142496 00000 n +0000142890 00000 n +0000143120 00000 n +0000143183 00000 n +0000143246 00000 n +0000143629 00000 n +0000143856 00000 n +0000143919 00000 n +0000143982 00000 n +0000144379 00000 n +0000144609 00000 n +0000144672 00000 n +0000144735 00000 n +0000145129 00000 n +0000145359 00000 n +0000145422 00000 n +0000145485 00000 n +0000145880 00000 n +0000146109 00000 n +0000146172 00000 n +0000146235 00000 n +0000146625 00000 n +0000146855 00000 n +0000146918 00000 n +0000146981 00000 n +0000147377 00000 n +0000147607 00000 n +0000147670 00000 n +0000147733 00000 n +0000148123 00000 n +0000148353 00000 n +0000148416 00000 n +0000148479 00000 n +0000148885 00000 n +0000149115 00000 n +0000149178 00000 n +0000149241 00000 n +0000149637 00000 n +0000149867 00000 n +0000149930 00000 n +0000149993 00000 n +0000150396 00000 n +0000150626 00000 n +0000150689 00000 n +0000150752 00000 n +0000151147 00000 n +0000151377 00000 n +0000151441 00000 n +0000151846 00000 n +0000151909 00000 n +0000151972 00000 n +0000152356 00000 n +0000152419 00000 n +0000152801 00000 n +0000152864 00000 n +0000153246 00000 n +0000153309 00000 n +0000153698 00000 n +0000153761 00000 n +0000154146 00000 n +0000154505 00000 n +0000154568 00000 n +0000154631 00000 n +0000155003 00000 n +0000155232 00000 n +0000155295 00000 n +0000155358 00000 n +0000155741 00000 n +0000155804 00000 n +0000156191 00000 n +0000156254 00000 n +0000156639 00000 n +0000156933 00000 n +0000156996 00000 n +0000157059 00000 n +0000157431 00000 n +0000157494 00000 n +0000157923 00000 n +0000158184 00000 n +0000158247 00000 n +0000158310 00000 n +0000158694 00000 n +0000158757 00000 n +0000159143 00000 n +0000159206 00000 n +0000159591 00000 n +0000159654 00000 n +0000160036 00000 n +0000160361 00000 n +0000160424 00000 n +0000160487 00000 n +0000160899 00000 n +0000161129 00000 n +0000161192 00000 n +0000161255 00000 n +0000161640 00000 n +0000161870 00000 n +0000161933 00000 n +0000161996 00000 n +0000162399 00000 n +0000162628 00000 n +0000162691 00000 n +0000162754 00000 n +0000163137 00000 n +0000163200 00000 n +0000163584 00000 n +0000163846 00000 n +0000163909 00000 n +0000163972 00000 n +0000164368 00000 n +0000164598 00000 n +0000164661 00000 n +0000164724 00000 n +0000165115 00000 n +0000165345 00000 n +0000165408 00000 n +0000165471 00000 n +0000176961 00000 n +0000177247 00000 n +0000177888 00000 n +0000178267 00000 n +0000178496 00000 n +0000178559 00000 n +0000178622 00000 n +0000179024 00000 n +0000179252 00000 n +0000179315 00000 n +0000179378 00000 n +0000179768 00000 n +0000179998 00000 n +0000180061 00000 n +0000180124 00000 n +0000180568 00000 n +0000180631 00000 n +0000181082 00000 n +0000181145 00000 n +0000181580 00000 n +0000181874 00000 n +0000181937 00000 n +0000182000 00000 n +0000182393 00000 n +0000182623 00000 n +0000182686 00000 n +0000182749 00000 n +0000183128 00000 n +0000183358 00000 n +0000183421 00000 n +0000183484 00000 n +0000183890 00000 n +0000184120 00000 n +0000184183 00000 n +0000184246 00000 n +0000184648 00000 n +0000184878 00000 n +0000184941 00000 n +0000185004 00000 n +0000185410 00000 n +0000185640 00000 n +0000185703 00000 n +0000185766 00000 n +0000186138 00000 n +0000186201 00000 n +0000186586 00000 n +0000186649 00000 n +0000187032 00000 n +0000187095 00000 n +0000187471 00000 n +0000187797 00000 n +0000187860 00000 n +0000187923 00000 n +0000188326 00000 n +0000188556 00000 n +0000188619 00000 n +0000188682 00000 n +0000189100 00000 n +0000189330 00000 n +0000189393 00000 n +0000189456 00000 n +0000189859 00000 n +0000190088 00000 n +0000190151 00000 n +0000190214 00000 n +0000190617 00000 n +0000190846 00000 n +0000190909 00000 n +0000190972 00000 n +0000191351 00000 n +0000191414 00000 n +0000191806 00000 n +0000192068 00000 n +0000192131 00000 n +0000192194 00000 n +0000192586 00000 n +0000192816 00000 n +0000192879 00000 n +0000192942 00000 n +0000193321 00000 n +0000193550 00000 n +0000193613 00000 n +0000193676 00000 n +0000194074 00000 n +0000194304 00000 n +0000194367 00000 n +0000194430 00000 n +0000194820 00000 n +0000195050 00000 n +0000195113 00000 n +0000195176 00000 n +0000195578 00000 n +0000195641 00000 n +0000196039 00000 n +0000196301 00000 n +0000196364 00000 n +0000196427 00000 n +0000196817 00000 n +0000197047 00000 n +0000197110 00000 n +0000197173 00000 n +0000197575 00000 n +0000197638 00000 n +0000198011 00000 n +0000198272 00000 n +0000198335 00000 n +0000198398 00000 n +0000198801 00000 n +0000198864 00000 n +0000199251 00000 n +0000199314 00000 n +0000199704 00000 n +0000199998 00000 n +0000200061 00000 n +0000200124 00000 n +0000200523 00000 n +0000200753 00000 n +0000200816 00000 n +0000200879 00000 n +0000201290 00000 n +0000201353 00000 n +0000201764 00000 n +0000201827 00000 n +0000202239 00000 n +0000202532 00000 n +0000202595 00000 n +0000202658 00000 n +0000203053 00000 n +0000203282 00000 n +0000203345 00000 n +0000203408 00000 n +0000203792 00000 n +0000203855 00000 n +0000204253 00000 n +0000204316 00000 n +0000204745 00000 n +0000204808 00000 n +0000205204 00000 n +0000205267 00000 n +0000205642 00000 n +0000206000 00000 n +0000206063 00000 n +0000206126 00000 n +0000206532 00000 n +0000206762 00000 n +0000206825 00000 n +0000206888 00000 n +0000207278 00000 n +0000207508 00000 n +0000207571 00000 n +0000207634 00000 n +0000208047 00000 n +0000208277 00000 n +0000208313 00000 n +0000208422 00000 n +0000208519 00000 n +0000208665 00000 n +0000208756 00000 n +0000208853 00000 n +0000208999 00000 n +0000209105 00000 n +0000209202 00000 n +0000209348 00000 n +0000209464 00000 n +0000209561 00000 n +0000209707 00000 n +0000209831 00000 n +0000209955 00000 n +0000210079 00000 n +0000210143 00000 n +0000012596 00000 n +trailer <</Size 619/Prev 251535/Root 5 0 R/Info 3 0 R/ID[<C6804A921E6648A4B197D4C3CEAC21C3><59D590B8CFAC4FEBA8C802E539B853C9>]>> startxref 0 %%EOF 618 0 obj <</Length 510/Filter/FlateDecode/I 1363/S 38>>stream +xÚ¬T=OA½uAR ü�Α% ‰ˆ”"’£€Œ0æã�Û`r>G€ )P +Zºü…ô‘É?@(þ´ˆ™{»ò.-g;y³s;og×G%Dc)i5Eþ±•hàHõ…’ÂøyE/®ùµõSÏêiýL¿Œt·4HC4ô|üï=]Ñ{5G¿W `“E7â'l9¬«b‰åÈÛv°Ìݺç‚Ûl[Xws °œ6øª`¬Öé7ÅŒ]ú#˜ïƒ7ÁÁw{ÀmÇ‹¼e ]wóëÀÄ¿0/—Z⧈ ç8в +Þ® ž€:Œê«ø›â7½¼ÌÕ)ðâvÞÖYvõbî—Y+æ¾¶ÁYf.4í:m¦jOüb9ê퀷ƒ^ؼÏ.Ïh»uý-«;ñ×kA?à5>ÛþÞ7‚³Lí–w‚xÖ×ײQÅþÛ<Ììµ®ÞH¼‚µklK/!«ìż»hæÌûjØ»GõàŒj’ßóô`ߣçô/ª«*2SºðvqÆöí +ìÍ«»L^2SyFx8 +ÔY¬Ê)ô¼Ó°º6ƒî¦ë=Š}@w2t.î¶»Y…í)íânæ nêGõÚÛaþɽ£IJiBÆ·2Vdœ“_Y¾sOúhÒ—ß͇óÇ�C7ÓÓ endstream endobj 5 0 obj <</Metadata 2 0 R/Pages 1 0 R/Type/Catalog>> endobj 6 0 obj <</CropBox[1460.81 400.0 2456.57 1156.14]/Parent 1 0 R/Contents[8 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R]/Rotate 0/BleedBox[0.0 0.0 3708.0 1728.0]/ArtBox[1460.81 400.0 2456.57 1156.14]/Group 616 0 R/MediaBox[0.0 0.0 3708.0 1728.0]/TrimBox[0.0 0.0 3708.0 1728.0]/Resources<</XObject<</Fm110 24 0 R/Fm111 28 0 R/Fm112 34 0 R/Fm113 44 0 R/Fm114 48 0 R/Fm115 52 0 R/Fm116 56 0 R/Fm117 60 0 R/Fm118 64 0 R/Fm119 68 0 R/Fm50 72 0 R/Fm51 78 0 R/Fm52 82 0 R/Fm53 86 0 R/Fm54 90 0 R/Fm55 94 0 R/Fm56 98 0 R/Fm57 102 0 R/Fm58 106 0 R/Fm59 110 0 R/Fm120 114 0 R/Fm121 118 0 R/Fm122 122 0 R/Fm123 126 0 R/Fm124 130 0 R/Fm125 134 0 R/Fm126 138 0 R/Fm60 142 0 R/Fm61 146 0 R/Fm62 150 0 R/Fm63 154 0 R/Fm64 158 0 R/Fm65 162 0 R/Fm66 164 0 R/Fm67 168 0 R/Fm68 172 0 R/Fm69 176 0 R/Fm70 180 0 R/Fm71 184 0 R/Fm10 188 0 R/Fm72 192 0 R/Fm11 196 0 R/Fm73 200 0 R/Fm12 204 0 R/Fm74 206 0 R/Fm13 210 0 R/Fm75 212 0 R/Fm14 216 0 R/Fm76 220 0 R/Fm15 224 0 R/Fm77 228 0 R/Fm16 232 0 R/Fm78 236 0 R/Fm17 240 0 R/Fm79 254 0 R/Fm18 258 0 R/Fm19 262 0 R/Fm80 266 0 R/Fm81 272 0 R/Fm20 276 0 R/Fm82 280 0 R/Fm21 284 0 R/Fm83 288 0 R/Fm22 292 0 R/Fm84 296 0 R/Fm23 300 0 R/Fm85 306 0 R/Fm24 310 0 R/Fm86 312 0 R/Fm25 316 0 R/Fm87 320 0 R/Fm26 324 0 R/Fm88 328 0 R/Fm27 332 0 R/Fm89 336 0 R/Fm28 340 0 R/Fm29 344 0 R/Fm90 348 0 R/Fm91 352 0 R/Fm30 356 0 R/Fm92 360 0 R/Fm31 364 0 R/Fm93 368 0 R/Fm32 372 0 R/Fm94 376 0 R/Fm33 378 0 R/Fm95 390 0 R/Fm34 394 0 R/Fm96 402 0 R/Fm35 408 0 R/Fm97 418 0 R/Fm36 422 0 R/Fm98 426 0 R/Fm37 430 0 R/Fm99 436 0 R/Fm38 440 0 R/Fm39 444 0 R/Fm100 451 0 R/Fm101 455 0 R/Fm102 459 0 R/Fm103 467 0 R/Fm104 471 0 R/Fm105 475 0 R/Fm106 479 0 R/Fm107 483 0 R/Fm108 487 0 R/Fm109 497 0 R/Fm40 501 0 R/Fm41 505 0 R/Fm42 509 0 R/Fm43 513 0 R/Fm0 519 0 R/Fm44 523 0 R/Fm1 527 0 R/Fm45 531 0 R/Fm2 535 0 R/Fm46 541 0 R/Fm3 545 0 R/Fm47 551 0 R/Fm4 559 0 R/Fm48 563 0 R/Fm5 571 0 R/Fm49 575 0 R/Fm6 587 0 R/Fm7 591 0 R/Fm8 595 0 R/Fm9 599 0 R>>/Shading<</Sh0 603 0 R/Sh1 606 0 R/Sh2 609 0 R/Sh3 612 0 R>>/ColorSpace<</CS0 7 0 R/CS1 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0<</Color[20224 32768 65535]/Visible true/Editable true/Dimmed false/Preview true/Printed true/Title(svg2)>>>>/ExtGState<</GS0 22 0 R/GS1 613 0 R/GS2 614 0 R/GS3 615 0 R>>>>/Type/Page>> endobj 7 0 obj [/ICCBased 19 0 R] endobj 8 0 obj <</Length 928/Filter/FlateDecode>>stream +H‰ÌVËŽ7¼÷Wèš#’z^=Ž q�cñ5h8Y³6Ö{ò÷)½º5³ÎÂÇ ±’Z©"EêôËïÿ|þfNÎÖ¼y{6Ëé|±f{6\?ó¼}YNïaúóya繜 sÈäTLÎBÖŠYcð”‚7ß>/,O‹5%6™µŠXøÍ|ÁÒéÝ£5o¿.ñYb6–Ô†á +.2eN†Íd9Â…2<%'?怛KÙüã·úx‚3‹çóÖ‘·'²>N#f{\Êâã¢>dù +9SÐYƒºlV%Nz¨‘Øf³-Çz†Å•½Ãâ”,vt¨Õž‹ÞÜ}ƒû!_¸Qw,®¬wjhÝÕ¶Cæºë-ÖŽeë·Æ-ilM´¸”IéUE¬a"…# “¯¤pL”¸Èœ˜¬D³ +r5ʶìçEr‰ÄE3 VÏÄAÍp3ôJJ—q,¡(y7¬¹•kW«/ÒõÌu×[¬ë)ÚI)²›d?Éa’ã$§—„¢ˆcJl‚MdN:1êk¶£‘R-3N©ãƒÑ®–Chet¬ +œ+¥Ý¢¥‚-kEYC÷3ôJi—J»¡rt` µ;ëœîá\wýuNów-1èˆ!’Y_ã%ßóâoy‘^À³ê /LQ ¬UqõŸxizã¥É/ͰóÒ°öc7g·¼È/þ?ya;ó¬È¬Ì5ÉsQò\•<—%ÏuÉiVò¤ÈÌÈÌÈø¹ ޽˜¤åܸí{nÅâz£é—Ü +nDÔÒE„K“Žƒ]¹Ý {ÍïǨSléXåî—2~†Þz«»«ùn¹êX{ªãwjþÇs+s6dΆÌÙ9:gCçlè‘÷.3¹{VêóZ*ÆÍý¨‹¥Î÷&YDìùž\\à(aŒ¬©^jGчªärz¨eÔ& +©rË•94]Ž8kA7ÄÔ'Æù‚@1ío~Íåüë"„¢ûÛ8óqÿ…¿ŸÍÿð Ë¥¾ažJwâÚbÆÈ ®6¯bJ®š|.-–‘šï>í›¶å…éÚM9VS©ìzzjI–)6êx7Tœ[Óµ™4ê¼ËËg¾=ÄÖŸSxù-«GõSÓ‘xK¤ú¨HÁ©Upl‰ý»À$¼£XJK…£’ˆbwo>™ÓåÁšçóÓ'Ó¸{ý§s‹Ñ¹ÉÁ«ùW€�ü‹%C endstream endobj 9 0 obj <</Subtype/TrueType/FontDescriptor 21 0 R/LastChar 126/Widths[278 278 355 0 556 0 0 191 333 333 389 0 278 333 278 278 556 556 556 556 556 0 0 0 0 0 278 0 0 0 0 0 1015 667 667 722 722 667 611 778 722 278 0 0 556 833 722 778 667 0 722 667 611 722 667 944 0 0 0 0 0 0 469 556 0 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 0 0 0 584]/BaseFont/WNYQBO+ArialMT/FirstChar 32/Encoding/WinAnsiEncoding/Type/Font>> endobj 10 0 obj <</Length 820/Filter/FlateDecode>>stream +H‰äVËnT1Ýç+²¤‹1‰óp¼EÖˆY²»R‘ÐPÕÿ—pÞV‡J°F•¦9Îsì8yüe¾˜góþÓ-}Ü hÀ +D§×�5İ¬Ð¿öåøiž@ùóÖg.P0£M%{²ÇÍÔ©›ñ‰!Éè4>{È>Ô9@Àl/™Ê† ¸x{˜e„mé4dpìtu È¡í$B=ǧ¯>½„èò´`c:ÌÄ=”sáéðåÚßaž–PI«–5ÐÙ‰3;Z8¦È6£P0£R#DÏ];”ps©k ºTCqÉo!•*ÝšNmþT’OêŠîê‚9TÜi&nê±ì_„Žûcaå²}-ØÉ3 -šsÁëðu¯ž®Óäî4"ç Ÿld† ++ØúQ_€bÕËs‚Rs-’Ê!XPþq¬"MƒdåüœÊ’ J¦¯Z5¾Š4x&ž%æ»H)„eh»§åkÁN&" Cç\¸G;œÝ©”ô™Møv%Å!;—ÿÃJJº{¥øZ#ô”¥’ˆ-•Î;ݧd*Ѩ$b2)kЇ„0ʹ^0�"W‘¦!JòÄr*KCZÕðu‰’nÙÊ䙸‰4Æm›pd÷,´Óׂ¬UR3ôpÎ…{´ÃÙ½Jº[%Ý’îVIß%‰ÿ ftÅ’‘_kYâÖ²wý¦L+’ß0Aò[˺iöÑ/-{³®Ç~úª$¶“gây*ë¸k‰¼M\¾ìdCKœáœ÷h‡³;-³¾V³>¢Y_«YfŽìd|þŠöûK3æ»ãÍ»ÚQnàS›}ÞP¾•y¶¬ˆ¤Õ–òâ¶Ú•ÚïÊÕjÃToøZjw²vG«]£}Sm]ŸY×gÖwé¤N +é¤N +é¤ÐHʇ«¼}²°êßööy½Ö´\ŸI+j½ÂÙ1D—8–¥GQãz3ïì·‡‡ëóñ:(ô¹#úÛ‡ËˇˆƒÍ_:¹Ÿ¤ „Vˆ+ÖšÀÚQû»'ÉëpA¹,\-ûeë#µµÃât[‰a:ƒyM¦eh¥0$S.¾/\#Þî&„‡±¿�>I%‚ endstream endobj 11 0 obj <</Length 804/Filter/FlateDecode>>stream +H‰ä–ËnÝF†÷ó|CÏp®ÜÆI +hâ,š½Ä(ä‰}ýþ#i.²ÀûÀ8†ø‡—Ÿé›rÎJ·ÌjævØž£/t‹Èn?‹ùbþ2ßÍÃÇç\èý·nèd;n6d6ül„ÙˆÝøíîéëËÓ+všuÖY¶Vé,"ýT œ5ØÄ•ÌDX%£ +[Ól9ɉ¤Äyw¾‡ÓTUªàÈ©Å\Põ£…}š‘Ô¸€â±‡êöžÌb^µƒ©„ íµ÷0“>G.,æÊVódþ¦¡º¥¯øÜBâ4 4=Z¸+–xÆ×K.êhy6ï>ÑÃýÉÑË}øD{ÅÇÈ1»¹‹`–‹›˜xDÑ({%A󉻫$¶V…ôEÎHØFG=žÆ²‹ß’j`1Tý¨²b$',&$P8Ù4b °ç³˜Zš+™Ø¡A‹6ét¤4uóÊ.ÝDiE´ø@˜U%åT›)>çºD§YÈ)¦Ÿ5ýÏRÈg‹…±=þø¼E‚¼)~Ëö+½,ˆOn[(µ(ÝŲµ#k]¨1ê11Cx„‘}š”ŠXN–µ +qX˜ííunvá79Í +Nn¨'imÑæ¾™KäxÆt,1vP#Àãá¨Y{˜Å4{OcíöžäájÞ¡wKwh‚á³ìks‰î‡úýô>¿Ó¯×“¹›¶2P|ˆy¯]RÚVF£uƒv¸/ ¤œˆg‹uX_Ž×lYàÆ3Jœr¤O5êI5°˜ª~ +¤P9!ulCž<)V^ù«ƒ=Ÿí>£u S%ƒ5 Žh“NGJ,æÊ®+£î , rX‹©8oã¾1Ê´þ·/Ç$q,yÛÂØÿÈãÚ–ÇéãN@aN§ý'Þc¸æ‹7‘ví¯llÜÓNÚ náún9kAÕ¶èÖà áJjÔÉSÁ|‰N±è÷þY9•1Xàˆ5‰t$4‰{óÉÁ+V²á'ßZœs'µf;稞S<Õ1Èhäk¶ú_€�>ƒ ø endstream endobj 12 0 obj <</Length 742/Filter/FlateDecode>>stream +H‰ä–Mo1†ïùþë&v>œ+H U{ ÷°B³ Ò'™É|µ•àTU;ŠŸÝyí8É›eÆ2äd1Œ†:‰“Í ¢°ÆŒ5fk1ùfOT„9!±Û ïÐy·ÒñÙñ’¨ƒVKÞ’q!ÎZÂLiÇJ¥=—³Î¢ÚSAæÈFs1Ÿá‡y0¾éçä#ú˜½‡ÕЪœÌ™¤¿.I²ƒájÞÜÃÍùâàñïîáÎÜU=—H€“8Õá¯/5•E‰ ôIõá-�œfÑ—J·&бÌ. ·.—åË«!V¢µ ÙS)-"ëê,æ,="$í•ÎyŠ}ªýœâ¬+À0‰œt> &ñ¥u4š“C +óEY•&9jòƒ™ã–~ìq+n²õo0_µS7·g·gí‹/áPžÚ8ß~2}öð<|ÔÞ|×Ïxͺ˜³i[K'-huçÔ9—É_Ó3ó”L +ñJdC›z’wl\XÎ ³[1¦ªÞòåT“hEÍ`0TmÂ!Ç-!Œ.¬„Xíˆy•ªƒVN=È[4.h3‘…Í-˜²ÚÔ*ê`0tp Ý„´ÛC§Ýi‘1fbÑÓ>½"…Å"èï,âÁܼ¿ŠÀÛŸõw%È-¨ËïH÷|àÅÅ®…1Ч•ÿ9RMnå‘+Òœt0G6.¬øvÙ QR‚ž/‡båzQ3̨ëàwHÐ…°RJÚý²kz®Lõé´™ÉÂæLÙV}šJZßvÜŒlUžvׄó¡^ëëQüŸ×„c‰gxÂùÒóΗ^ä|ô„ó¥çœ/<á|ô"çK0 ýÃkâõ4kuM8j„mÊ–¨Ú„bJaaJH©4‹´7D9Ô±gãŠÇö¿Ú‚ôPpUoùй{]²¹¦9Ìž• j¿q‹ÔYÉt¢¯3uЪü`�ØJ¨ endstream endobj 13 0 obj <</Length 764/Filter/FlateDecode>>stream +H‰ä•ÏnÔ0Æï~ŠyÚãÿW +@ªö@ï°BYôÀëóÙŽgS$ލÚìίÉ7ã‰ç³˜ 9ØD9GAhVÒ‘ÑZ8fÃk $Ægb +ñ RHbÂF&ud³º¨ôMýPš¾àsòl½$Éd<ûŒÕž4Ä\à“8<ÓvAgš®êÕ#Ý/BOzóHꡪ™(‰lÔ‰NõçÏOK¢»·×¬éõwܧ9…H¸J½8¢§ ·AJ(r8T!¾åtÚÔ„åŸW%‰srø9+«ÙåR§5qÏI3¸FÂ"ËïqbËÒ{œ9j¡Eäd4GZÄ[0•ÆÔ_³:öÆ,!”£õ] GM~R=néç5nÅ-BºþMê3ÚqwÖtF/lY'Ü+ºCçûÊ >G¿ÈÑ{ôæ+>ïèÿlÖEUÛgmÑÙo;úZ˜e“ÆYÀ¾emã0/iS5©#›76ä†;[Õ[¾œÑv½ÕÁ¤¨èD‹aË{ä8F;(EÏÙ¤!× +Z=EúÍÚdc½K¶¡OKI£gØžÙc¥ÙTϘMŽaÛ’ÿæ¦yF}ëÚö©ø¶–†äµ0á&¸°×Õí†)íˆp®ûüÈæeëÑ!¿G®…WÓóelÿ+hEu0©*:Þ²Žq( J°wXõkž"}ƒæ íV²±Þƒ%ÛЧ¥¤•LêÈo=¶Æ›¨-áppøÎ1—÷®C&|Y/Û`{ïæïÞû-èÖéYÇó8!su<ÁÊs1?‰˜�ÓM¥GÝñzܯÇŰ,-"‹ã5ñgO°ÒÕñJ‹@Ç«ñàx5^¯=<ø`ÊÕÛåÚï_8þŸf Ç,‡ *©kÆvF!xj@˜ÒŒq‘æŒÖ¤Á`Xê,ß°ycÅz³÷{8bÏötÅÒ#j_Kê`RTd\díÌ%–%—Q®R •S¤oм¡ÝB6Ö[°dÚ´”´’IÙ¬è·��ì55 endstream endobj 14 0 obj <</Length 728/Filter/FlateDecode>>stream +H‰ä–ËŽÔ0E÷þŠúö¸Êï-,@õ‚ÙG@¥A0~Ÿk;±“ŽhÔÔ™v½ìºÎE½§/ê›2ô Ÿ“×ÖK’L´cB†ÄX§GNу_±w’#MWõâ‘îΡ§½z¤õP½q”D6šD§úøýÃèîõ5½üªÚ/…“ÕbаÑW°˜µä4HÐ\Ò2&èdÓŽˆÎ‚Tԑ̓eït„Ï2:¥H=^vQ£HêI`R?ÂYÇ‹6ñð#tL<" в™ÔÍmëØ°¥k´Ñ¥–P·'uKfuÙïwn§L;²KâÊŽ‹aí¼7-d]žbÊ<vœÿlÇQxˆ„o©_ŽèiBĈ‚E¥×IGS;XÎp.1Ê?q¼6ã @Õ¹¦uFÕ'£3àj¡Žv;i¥,[l´Á-NN¨'d4¬¹_Í©tdyžÕ‰µøÐA‰�‹£Õja&µÚ-¹Û-ÉÅ•©“úˆŽÝÝŸ ÝŸÑdg´5½ óý;UûN?ÈÑ[ Ïø¼¡ÿ»_ujIm•‘ª ;?H¨Câ@ÂŽfÌ·y¾aó`ÈA‡ {„ñ°–z¼œÑ|ëiIi5'uªN öjì𥅨æg€–Kæ=šÚV±aKýk´Ñ£5¥N&udµxæv(ZÄbmî‹]0ù/oÛn‡ß çPÑË3ƒàPð2Á§6!†Í Tk3ÕÞBµû '›A(îÿpØäJgpzÊå"]=ÂóâñölˆŠåkµ3^e®…y¨©÷°õm|¸èì†à:v¥ò#›+ó™ØïQÐ>Uï-^|7‚žÔ +&u@ÅOÌfÜ#‹¡æ§ìº„´X´|Šë4´«d°µK´MŸ–”:™Ô‘ýRB<gaSŽg¼y‰Öپإâé ¡Ÿ�À‚ endstream endobj 15 0 obj <</Length 851/Filter/FlateDecode>>stream +H‰ÄVAŽÜ8¼ûú€5¢DŠÔ5“Ý[,ú°¹7™ÃLÙòýmÙ–§gH6hÀvQj«T,RN4[(š,ÌËãÿL‡OÓçéîϧÆáí¿Ó_Èêtw÷—î/!E!;]ÃåþýD±š†¯Ã»0}~r*[”R‹M+…ëÓäƒ~%‰<fÊ‘[ Y£á-s¿÷Ûuš³ÅTõ·˜ÙØhœm˜Î%Š.¯“ÖÂ,UÙËTv˜0óâ»È6Šd¹‚,¥˜¸¶‘lIØ Èf‰©YSÆêýÞoXOÅxWÖ"¢‘’ Ó ,K`Åv-°šÔ|àèk䤹ÓMVFº¬/,¸›+®a6Ž„]tèë3æ ã®Ò:.º@•:L§B J,žºêÉP_ŽÒ€_à3ĪÔB“Õ Â@wîòvuŸÉ:ïz-êÊ8®¼M‡¬«ºÇô®îÜåÝÔœ»¼ßQ7'†©¼0wçvãžk;¼Nݸû¸kÓVç.ÆmÃônܹ;·;uîÎ}ݸYP[V¸sÕ_ÅÕ~Wb¤¬ tÅS©Ï] ºƒ©‘6‹Š4!ÈÀá+í·X÷éÍ!zØ1ÛZôÂ&CqS‰Ùà N‹ ;ö"Òz˸(6ce«3’×{Ÿ{˜=ïavîaíç÷°UÞºÊËÆ|’ƒº¡'váµ~…½;‚\(Á"û¨DA;s$ÞÈ]°M¥‚ú!hg(mÒàÕß`?_(µ¼ã׺¡“,ª²z{ùN†üãªzë’êfñcŒ%éo>è»'C‚ãIrYLàÿè +ÝQb’¢- ;ghFK°Ñ@v ‡…;á˜ÃÑe^°°¬…7üG±uTAÑæ\±øWxå·áöò•aã'G�?!Z‘㜔":ÞV—û˨±E•=†ˆ“öêMX™ó)’c+Nû6öxÄš¦X‘à1„Ý(ÎÉ}=WZؗ뤶Àuº á=È4²Ê§òY êþ&WW²kíÎç:݄и“!Ö5ØV;tÚ(í‘ët{œú'd +{GaMTQnÃcò©©µìfØþ¾œþðâ›áîòP—‡ðLJ°f3½ôµ¾ 0�Ù é endstream endobj 16 0 obj <</Length 1002/Filter/FlateDecode>>stream +H‰äVÛnÛF}߯˜‡<ÈEµæì}óV_Š"@ +&�A0m)ÐŦèyé·÷,I‘Z¹P¦vç>gVþL{QÈà<á©ú‡!:Ö{ñBL>LªðN†è,qQXÉž#Õ;‘^ÒéˆãV¨¤epT^FfZ2F?IJ*¨'9Hãu2å(}¡ht²äBÂtp>5"§X²TÖŽbòìÕÉÁIÜ×â$á·“<$7:*úO-Å'q}ûPÐíza§§Õã“n, þ&CÑ›ïøû@ÿÏfÅÚõI¼í¥FpÔl¤G«v¢oDÌŒ±²p.!ˆÏ%r©â7ØvÆ…ÔQç“ì4MñbDÛñbJêÔâ ?Œ(liiŒš=1*06αf`ȧo íWr†=8E›ûtJiBjñÛ¢ÿŸ±½/˜ôSš¶•Úª àÚIÃJ±S‰^EÀ¨xüdl8$RÞ|¡ë‡µ¢ãšî¿Ð0JpØcôÚóNǶã\ÿºCtwè{Ig’É$;Hó:qÚ&]`²Ã&TÈiؤ³ b¬41I¤öé´@©L¥V‰×7ð¬áãÜ>r”ÐR\!«˜Ùc{eÀ�NöÖ›Ü^± Ò’K`]fÌ¡Àôx4uYÙ>“B&ÅAâË„Ò ‡¹Ù9šE]é¢H;v¦›¢~§h3ëõa¸8Š®÷Ø/»¨€tÚÉÆŸ…WÈɤ‰%Ò*-]Lé(Ü8ä[ÑšIdÆ.ö÷Õ„€iªÓ™RÑ/ßÉ�+U´tŠ5Ãí5 +¸…´±gTFÍ'yŒ‰{lÒèóÚNÀ÷è0¿Èk¢.©‡Éàjuš3*(N<t8Û想í`›I…8£gâx.©lÒŠ3)ËEe¹¨,•墯\nJq]–©å£ÀÚ÷]lœÁ? ”1?søy(wbñn³¢÷´?tU·9ìéõجh³§n½9âšišŽºn”ç¶96ûŽšM·nZªèªüÞÏ\**ïÄ¢>ìv›Ž6«Ÿé[[íë5’VW=ѾÚ5Úï7Ûa«öÛ¦k«öõÀiŽÞÎuG褰ü` +î� ª•+ñu±«Ž²¼ZêãUóX½n;|ÿÕlÏ»TÊàæêòƒ(‚Ñ¡Ý<¡ò«eŒ13z}>vmSíRÇMwhôVsš_¿ÝÿrSç\oZ¿¶íEŒKí?¡ÎÑ÷êÏU¯}x¤ôæB½×þǤR}Û±3Þa°(uñ“jè éuËþ‰sµ_]8„Ñ})î?ÞxBÿ +0�ÑD8S endstream endobj 17 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 18 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 19 0 obj <</Length 2574/Filter/FlateDecode/N 3>>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®cÖ}êÒõ0êè8´×Ž8GNg¦Óïï÷9÷wïïÝß½÷ó� '¥ªµÕ0�Ö ÏJŒÅb¤ � + �2y.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é �@8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚ó�ÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAüom?çW= +€x¯Íú·¶Ò-�Œ¯Àòæ[›Ëû�0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçLUáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.ò�ò·�åÒ�R´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£Vš‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð�=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "AˆYA+äùCb(ЇR¡,¨�*T2B-Ð +¨ê‡†¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r9‹\A&‘GÈ”ˆrQ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½ÄÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â*6X[ݱF=3ë·YŸ±~dó ·‘ÛtÛ´¹iÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=G</zÁ^Á^j¯^—¼ Þ¡ÞZïQïBº0FX'Ü+œòáû¤útøŒû<öuñ-ôÝà{Ö÷µ__•ߘß-G”,ê}çïé/÷ñ¿ÀHh8ðm W 2p[àŸƒ¸AiA«‚Ný#8$X¼?øAˆKHIÈ{!7Ä<q†¸Wüy(!46´-ôãÐaÁa†°ƒa†W†ï ¿¿@°@¹`lÁݧYÄŽˆÉH,²$òýÈÉ(Ç(YÔhÔ7ÑÎÑŠèÑ÷b<b*böÅ<Žõ‹ÕÇ~ûL&Y&9‡Ä%ÆuÇMÄsâsã‡ã¿NpJP%ìM˜IJlN<žDHJIÚtCj'•KwKg’C’—%ŸN¡§d§§|“ꙪO=–§%§mL»½Ðu¡váx:H—¦oL¿“!È¨ÉøC&13#s$ó/Y¢¬–¬³ÙÜìâì=ÙOsbsúrnåºçsOæ1óŠòvç=ËËïÏŸ\ä»hÙ¢óÖê‚#…¤Â¼Â…³‹ãoZ<]TÔUt}‰`IÃ’sK—V-ý¤˜Y,+>TB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßYÕ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú†žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝèþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO�¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬ÐD¸®-®¡¯¯‹°�°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ�÷„óû endstream endobj 20 0 obj <</Length 55237/Filter/FlateDecode/Length1 118559>>stream +H‰”—wpÇÇ¿·ûÛ»•~+T °@D1E4cÓk€Ä€=a$@ a 4B“`â!4Ó†6Hh�ƒ26!‚)¡ØTcLGô.lŠ(–1Æà˜¼Û[_”xRüÇï½ïî½Ý}÷Ùwwûƒ ¦‚#¥ïÐ×{\Z”òõT�/,ûåÐVm#Úþz";“úRFe¥foTÔ.ZåúMnüšØ3w“�{ؘì±Y_YÖ +r÷Çf¾=fPr\!¼ ™ž–:úÌÁòíÀ¶Ë4_‡têˆjWã`{4µÒ³r'=ñüµ;I§2'ŒJ |×s*ðPQûlVê¤ì¨â +¬ZñãS³ÒÖfflՈrŠŒÎž01wèö#AXb€ý³sÒ²• ÚkO*Ü ÷^CQhý"5'u$âG½“‰acsÒÞˆô´‘9—™š;“(Êz}H¯xÔž?‡CãBD$ª#ÌmQŸ¤ÙB¡Ž(DA ÊA_¯,0_3ØÄ˜æ8¬_<ñ®Ì5Ô5*+Sµ¥í|m´-ÔvÝèÌŒ±Ø8&c|*¶h»3c|F.öj{(câ„LÓ¶ŒSqQÛëD2·´½Ÿ•6:´}šC—-hkSš:c¹VŒ¬›ý/=ÿTݹkCªØ`+«Ø°*ÖÑÖ›'´ŠUÆF"-„.è…†áLäâÌÄ|äc%Þ‡m¹±s¼œ(ÏÛSô.[²µ-ò ÆçÓ=ìZò›t¾Vèã/z>¢žç«o¤qäkõñ|Lº7OÌnZ‹æ9fÚåæ.¢è×@¯Nde=p:;u+*ȥ˜˜+°$&{È!Èd™Œr²|5åïå4Ô–3äÄÊÙr.êÊÅr%âåY‰–ÁƒÍÑ&Ø:ØIÁŠ`Ú«½j:¨ê�:†E†ÕD§°˜°t…%ƹe5`I¼O ±èŒ€!x#19˜ŒéDn1–a5Ö¡›±ûqe¸Œrzúá{+`)g3¸³Á)r>Ò¾ØÙ¢}‰³UûRgù"RÛµ/rþ¦}±³Cûg§ö¥Î.0ò»©ULÑk_ä|¢}±³Gûg¯ö¥Î>Š.vöS«„¢h_äÔ¾ØùTûçö¥Îg]â¦V)E®}‘sDûbç¨ö%Î1íKã]úoDÒ‘MÏüÔÿ‹È }眓†Ì)Cæ´!SfÈœ¡u68g Ÿs†ËyÃå‚árѹdˆ\6D®"W ‘kšÈuCä†!RnˆÜ4D¾0D¾ÔDn"· ‘;†È]C¤Â¹÷?ˆ kQü‰Ü7D" ‘¯‘JCäkMä‘!ò©˜Ç†Ì·†ÌCæ;]1O Ÿg†Ï÷†Ëß —‘çzÑh"ÒòˆHæ‘Ü%")<"ÒöˆHÇ#"¥GD†ü"{q§p‘ˆÜA%žZÌ +•¡ôˆHå‘aYÍ#"Ã]"2Â#"#="2Ê#"«{Dd´GDÖp‰ÈšYË#"c¼Š‘µ=2²ŽGF¾àVŒŒõøÈº†O=Ã'ÎpiäÞ©Œ7\ê. —††K‚Çåg©ð‰46Dš"M ‘ ‘f†HsM¤…!ÒÒI4DZ" ‘6šH[C¤!’dˆ´7D:"/i" ‘N†HgCäeS1]™WtżjÈt5dº2Ý=2ôf·Ü¼õh } ÆÓ'@Ò× ÑšxõÂ`$«“ô¦ï)_,Q§ŒÊS§µB}eFå©3¤z븳Få©sZ¹qçÊ£uêÐ2i?â ¤Ð[=S0G]ðWºè¯tÉ_鲿ҥ«þJ×ü•®ÿ¸’ºKª¯ìI}Få©{Zõ¦¾ûFý·Œnø•ûÝô3úÂÏèK?£[~F·ýŒîø=ð3zègô•ŸQ¥Ÿ=ûV¢•H˜:¬,Ö5Ôßb:¹…%éS@.ýÆÓ¹ ênÑé‡÷cßjÕÏWý}5ÀW¿ÐJнG!†ÎŠ zd¥õµñHG£#»ÕÂ*i„[-ù¨ýSVXAçšblÁ z~žÐ“£¬šV¼ÕÌJ²^µúYóÜUƒŸÐ\˵Ú㫽?*ö9©eZñÕQ_óÕqÜS©b'\Ín-Ð×NúQ§|uZ+Nôª!š•én&˜›ÅRs¦JLMææTÀöSd;ëÏtÎWç}uÁW}uÉW—}uÅWWµrè܃xÚ½Dt@Fg¶ŠÖûT¯ºŠ ¨UŒN +¬Ú‡to!;H½…ìš?×uÃÂaÙbª—Õl-E®cÊŠY1ÂY)ûì/l¢Øf¶Nü\ŸŒ£©j,tÓç¾÷´Oc×Ð…õl=͹‰â9ÛÁvÐY‘*å'°÷Ø{ºé«Cµãþ#¡÷,[ÁV .[ÉV¢Í±qÁ`º·wÓüŒjŒÛ³íYÌý·À¹^ž‡rú?ÁWz>Šà·íºÜ|ËŽ³ë»Zñž¿ÄãxSÞœ'ò¶¼ŸÎgòwù>/ä‹x>_Ê—óBþ¾–ÿ‰¯çE¼„ÈÿÊ·òüc¾âGøq~šŸã—ø5~“ßáüÈ+ESÑB¼"ºŠî¢§è%úˆþb€,†ˆ7Ä›b„)ÆŠ·Ä1QüVüNLSÅt1SÌsÄ<1_,‹Å‘/ +Ä2±B¬…bµx_¬D©Ø$>ÛÄv±KìÄgâ¨8.N‰³â‚¸"nˆ[¢B<ÄñL<·¹íØA;ÜŽ´«Ûµì:v=ºïx»¾ÝÀN°ÛMífv;Ñnm·³ÛÛí—í®vw»§=ÜN±Óì‰ÁÁMÁÍŠ)[…ªj*JÕTuTœj¨«¦ª™j¡Ú¨öª“ꢺ©Þª¿¤~¥†©d5\¥¨Ñ*“(ÿ‘Kî9âxíCÞŒ(7§}hÉ[Òû¡ oÁÛóö°ù4> ŸÁg@ýwÂgóÙåsù\ù¾�ŠvcÂxí`5Ú•¥§Y޾НB$_Ã× ŠÀ?À?Ø/óèšÏ4Žï}ó¼Á}I,±'wI~!‹‰-"" "B,±[Ä[,Uµ¥j§¨½vm[;¨Qmí5¡FÁ騃vŒ¡Œ.2OžÓ9§gÎü;çôž“ßûäæ÷{ïýÝçûùÜ<¹S;P‰»µ~ܱ=¨Ì]û�U¸s{Q•»w�Õ¸ƒGP»x5¸“'P“»y +þê´:�u^‡“;{ .îÃ×àá.ß@ wú6Û쎺KÝS÷¬¨¨ÅÿµÕCõ!ê‘z„PNAm„qÂN±‹:Gqˆ xŠG]J Dr:’PÒ +õ)™’ÅIIA4§¥=pb:¡!§¦+qrz¢1§'M8ACY”…¦4Œ'šXI#ÑŒr(q4& 9M¢IˆçtMENØt$pÊf"‘“–‹$NÛ´äÄå¡§nZsò ™Ó·m8‹Â)\‚¶œÄeHå4®@;Nä*´çT®F's-:p:ס#'t:qJ· 3'u;Ò9»Ñ…û!ºrjóÑÒAt/J/zp~£gø$zsŽ?GÎòYdpž/¢/gúúQ ?]¥«Àù¾Žœñ›È䜃At—î"‹Ð¦‡ôCè1=ÆPzFÏ0Œóÿ†S!"›9PÁ,xc$óàÀ(f£™‹òÃlTDóQcu5] ã´¿öÇxfŃ LJ&1-Áxƒ‰©ÉLM(¦09á˜ÊôD`‰éº¾®:ZGc&ÓÔ³tŒŽA®ŽÓq˜ãu<æè€7™°ÞÈcÊúa®ÎÔ™˜§stæ;ö:öbc¿c?ÞrpÀB¦ÏŽ·™@ELa,fËa ÓXK™ÈÊXÆTVÇr`°ÂxŒ+™Ð`¬bJkã&5«™Öp¬1‘&kM´‰Æ»¦±iŒuLo,Ö3ÁñØ`’L6šd“ŒM&Õ¤b3Ý[˜êt¼ÇdwÇV¦»7¶1áý°)ÏēͬïdÚ¿ÃXåV!*RE«Çj¾Z¬Vª5j½Ú¬¶©ýêúXcžS_ªËêÏ꺺¥¾QwÙ—ßQˆzL!¦æS*u têN½©eÒʦÑ4Ž&ÒdÚD[i'½Oû8KG(ŒŽÑé3:CÔe^¿¢¯éݦ;tŸþNÿ¤§ô#½Ðvu]VÝ¥Tí§<º†ÎÖ )«=@¦ÛŽÃÆË”2ÆøšJ¦ª©i\&ÈD˜(ÓÈ45ÍM¢imÚš4ÓÉt5=M†`²ÌH¾×qÄi6±™]l¦Äf^b-_i1•·˜ª”˜ª´˜ªŒ˜Ê!F2b¤²b¤rb$1’¯©¼©‚©¢©’ÉOŒTYŒTEŒTUŒTMŒT]ŒTC\TS\ä/. +9Å3.ñŒ[<ãÏŠg‚Ä3–x&X<SK<S[<"ž Ï„‰gÂÅ3uÄ�b€ºb€H1@=1@}1@” ZÐ@ÐHÐXÐD#h*ˆ4ĉš‹âÅ�-Ä� b€D1@’ ¥ • µ YÐF"h+H´´¤‰:0ûNt–; Å…ât!·‹ÛUÈí&ävZ{=…Ö^Bko¡µÐš!´öZû ý…ÖÂæ@a3SØ$lf ›ƒ…Í!ÂæPas˜°9\ØÌ6G›#…ÍQÂæhasŒ°™ó+6모ÿÊæYuQ¨«ÌæMa“3ô’ÍÐÿ™ÍÃJGé¢Ót^ðz…®½dó}OèzN¿h›&]º„M7³9\Øt›YÌæ¡ßd³¾ihbLœI0LŠiÿ;›¿³ù̦Íf‡5‘ ü-šcøB¦Ûoñž+ðô€ „òÅó›ú³<S=ãc®zÎÇ<õê<Ø©™žÈÇæz[èÉ|LüžÊÿ’~”~–æÊ¯ËoÈSdžÿôÔ¢3¤šVRM/©f”T3KªY%UnI5[*;4Œy\T›'¯žaÛÜèz;{çDvƒ†f?”A)æ:‹§@Rx¬3<ËFË.¾ŽsL3_©î¿ª8üJŽóüÛcžÞnÈyåÔ4fŸÿV¼ªû2!MÙÀÆWÞ,š ù³²ñ'V4ñÞåit7W6û†âÉW>Žr2G¦¢àã#פðŒêÂùÓ/¾;ûY™eÏñq¹ìö7®ÖHu§¤úöU¥_+:›¯ôâ¹v#¤»ì»ø™|{>O½GíGáÅï6϶ˆ_§ÿרj¯l›,{…Rdwh/{ÑÃëB?ÁÄDžlKóÒÛ%ºø]¹ +¦‚mQÞq¶}ñ°^ÁÌ9àâý‹ÏV@ùEüŽŠ©Åküâ5dwñ¶…Wo ÈU¼Z÷yõê¬å«ù['þÑx¹ ¯v;ßþóÁT^¤½K•.ã0eËùø–¯P±’_å*U«U¯QÓ?Àér{ƒ¬àZµCBÃÂëDÔ¬W?*ºAÃF›Ä4m×<¾EBbRËV“Û¤´Mm×>CÇNÓ»tíÖ½GÏ^½ûdôí×fÊ<dè°áÙ#FŽ=&gì¸ñ^›øú¤7&O™:múŒ™³rgÏy3oî¼ùÞZøö¢ÅK–.[¾båªwVcí»ëÖoظió–÷¶nÛ¾cç.µ{Ïû|¸wßþü>òÑÇ8zìø''pòÓSŸ}þÅé3gÏ¿pñK\úSÁå+_]ŵ¯¯ÿåÆ_oÂË7Žo4šoÕ›Ó:ÕVhwÙ{Ø÷¨@•¦F©ñjªš§ðwÍõÔ«¬Wš×ªÈ–½OOØ…~üMèd¯eèBïþÃü‡ûŸô?ã_0-`MÀ£€çN?§¿³¥³³›³‡³—³sŠ3ßù©³ÀyÝùÐùÄùÂåãò¸‚]®HW´+ÆëŠs%¹2\£\Ó\Ë\Üä®è®âö¸ƒÝîöîtw†;׽ܽÝc÷h§‚ÇÏSÝãô„xÂ<ÉžþžAö@ß@·ËnËתdUµjZAV¸mÅZÙÖt+×ʳXKÖnkŸõÑ¿/ਮ+Ÿswß¹g÷®�u ¡]Ih$IÈ‚1§8QâTL€1˜ØÇxBLŒ¦XtÑ¢ +QDコЫèe—Õ‚¨Z@`Ú®¤\ FñLÆã¼™ÿÎ}wî™ýÞ;ÿû¯s—sŸó˜ó¤ó’󦫣«³«‹««¯«¿k€ëƒ´iCZE5.Jˆ@û@Ç@§À«®õ;šàÛU?«ª¬ +V7ÖkßOýfèvK=ÄS²)Ó4Ø4T{ÖÝ׋ô ≹9ÓœcL1ŠûÚ*”¦f§D}Êê#3ãAS¿/¾Úöl{½ÒŽG‚ãuGæKj½ÙŽ-ŽŽóŽ+ŽJÇãHÓÔR5µŒ„õÔ²4µÜ„‚:jQ/©½‘øfâ[šZn=µPM-6Éþ’ZŸ¤~uÔ¾‡Zf=µ\gsE=µ#šÚEMí'õÔÞqeij}ÒkjÑE Ä~¬©u¼è8{Uuª£–P]K¦T÷u…Öií¦?ÕJ©m¸ê÷jGs±ž¥¾hÁ`q𨡽&xú¿mYÞ Â\¡½Í?à¦v¤?ÜêoèñÛüÊoõ[üÒOúƒnò?”Õ>#ðÖš¡5Ê÷ìê2ß»Yz¾õn=Žó (É*ùطü4Í7É?«dYIž7Ï[èà]Z[_íýÐÛ[ߥ{;{Ûz“=Ý=Ý<=<í=m=éžO’'ÎáAw¹Ûï¾í¾á¾V[å>àÞëÞãÞªgûÝKÜkÝÝÜ]ܯº“ÝIîD·ýz¾o·o‹wgÿèþaÆÝ‚så9[æ¿øŸt‡:…\9e+3ÀԷε2´#•kB=5±®ZÙFާÛôn›V{*”Û^T³]+3¸X¼�Ö¨ÚUkØKu‡¸¬í¬Ú#ƒ´>úÎê º±nÅ:÷{kÇÔÊšóònÔýÖw*{Z{ÕÏ{üû;ÖÏú«ŽêÝÿÙ`‚E0 +F›zAžN*c`Œ‡y°ëoá8t$LÓùåL„™ƒ¨óLÌ×ùæ!TÂ#(„U:å€Õð6ô…\èGà8‡á…cpnA8'¡ÖÀß¡¦ÀYŠÎÀ»pü0²à=�ïÃ@ø‡ÎMÀ‡0Hg©Â¿`0|Cà6ü†ÂÇð ƒOa+,„áðdÃ(Óg¡í˜‡3Q Íh@�‚8óq6Î*¨FB‰58çá|\€¸-hE…6,ÄEðžàb\‚K±—ár\+q®Æ5¸×ázÜ€á)œÃq87áfÜ‚[q†`ÜŽ;°!6ÂP\ÅpŒÀ¸#1 +'àn܃{ñKü +¿ÆhŒµ°c±1~ƒû0›`<Úq?€gð®A):01 â!<ŒGð(Ããx›b2:Ñ…'±Oái<ƒga6Ãæ˜‚©pnà9GãiM¤I4™ri +M¥i4fPͤYF2åÓlXJsh.Í£ù´€ +h!Ò"ZLKh)™³Ìh-§´’VÑjZCki§ ´‘6™šß§Í´…¶Ò6ÚN;h'í¢Ý´‡öÒ—ô}MßÐ>ÚOè ¢Ãt„ŽÒ1:N'è$›ƒæ*sµ¹Æ� a˜³adHƒ ‹a5¢Ót†ÎÑyº@é]&7yè +y©„|t•®Q)]§t“nÑmÝëeä§»tÊñ<^À‹x /£[…ÉF2T†Ép!#e”Œ–12VÆÉ&2^Ú¥C&ÈD™¤ÂU„ŠÔ¹¯DùÔUuM•ªëꆺ©n©Û¶ommOlOmÏlÏm[ÐVe«¶Õ„@†ÙT&K§tÉf²¹L‘©²…áTQ*ZfËòs9RŽ’£åù…Ì‘cå89^Nå$9YæÊ)rªœ&§ËpJd\”3å,™¯ÝkŽv±yr¾\ äBY(ÉÅp .ƒ¼p®È%r©,’Ëär¹B®”«äj¹F®•ëäz¹An”›äf£bUc§š¨xeW• U’jª’•S¹T3ÕÜ<Õ<»˜‡òkÜ•»qwþ¹y0¿Î¿à_ò¯ø×üÿ†Ë™ü;þ=¿Éà?òŸøÏüþ+÷à·¸'ÿ{qoîcž¡RTªj¡ÒTKÕJµVéêŽ*S~uWÝSmT†jËyOæ\žÂSyOçœÇ3yçólžÃsyAˆ)Äb€+ð>>@VâC|„ñ >Ågø[`�ƒX…Õ˜¦³4…I˜…!HHÁÂ"¬ØR(}ä DCÑH„Š0."°•ˆQØÓE´ˆ±¢±ˆMD¼°‡ÎhtÞHÂ6˜!šb[‘,œÂ%š‰æ"E¤ŠªzE¹•G]QåªBÝWø H-E+ÑZ¤‹6"C´íÄ+¢½øâÃb¨øD|*†‰ÏÄp‘-FˆÏÅH1JŒæ#bŒø‚ò1>Î'ø$ó)>Ígø,Ÿãó|/ò%¾Ìnöðör ûø*_ãR¾Î7ø&ßâÛ\Æ~¾Ë÷¸œ+ø>?àJ~Èø[~ÌOø)?ãç"GŒ5¡à f„sWF¤eDs,hFŒk1YÌÃBia‹Åbµ(‹ÍhlÄMŒxÃn8,!–ÿ0^&à5iÏ÷Ý÷‹÷|ç +k'97!!„¡–Ø—ª}§˜B µSµµµ¯A)-&]ÔR1µL©mJÔBµÕ{Ýľ\KDo$óŠL¦óÌcfî}¾ïùÎ9÷}νÿçw¾ûþŠS •@†a8V¤’D¥(˜JS*Kå¨<U —èB¡d“‹Â(œ*:EP$U¦*EU©Ec%Œ êTƒ^¦ªIµ¨6ÅRªK¯P=ªO 0+SCŠ£FÔ˜šPSjFÍ©µ¤VÔZß×èUjãps’Ótj§E¯Q[jGí©u¤NÔ™ºPWêFÝ©õ¤^ÔÛétw:KÐëÔ‡úR?ú#ÅSJ 4Q" ¦!ô ¥a:›’h8 7i$¢Ñ4†ÆÒ8J¦ñ4A,‹Äb‘"–ˆ¥b;Ýr±B?ˆ•b•øP|$V‹5bø3MÔôc£Ÿˆ[ús½N¯×ôF½I¡7cmý›¸#îÊwä{r¦œ-ç²{.–Ëär¹J®aX'7Ê/ØD·Èr»üFî‘ä!yDž¿ÊyVž“çåyEÞ·å]yOÜ÷Å‘-ŠGâ±ÈÁzXè/õWz‹öë\ýTçé|Äñ›ð‹\ñTä‰| ÒBJé·$bŒÆ†‡±)W7Ç–ØÛ`[ìˆ]±'ö‘6Æã@‚I8ÇâY'áTî‹ÞÅ8çà<\€‹0…{¤÷q®d]-«áZLÅÏpnÆ¿à6Ü»p7îÃïØlŽáIÌÕñþ„nÌÄK²&^CÞÅøý˜ÏÞÀ=| *©J©²Ò§Ê«¶ wô᪒ŠTUTUj¨YGÕR±ªRcîö›«–²˜j¥Z«WUõšj«Ú©öªƒê¨:©Îª‹êªº©îª‡ê©z©ÞêuÕ‡¯ôÕ[õ×ÿÌGšRKëy>ªŸJP‰j¨¦·[ÂR–i·‚¬2V+Ô +·"*VU+ÚŠ±bzVœÕÔjiµ±Ú[îVo«Ÿ•`%ZC$k„ö:Ë9Ëç ¯‘idŒ‹”o‚i˜Â”¦ÃDS™f1“LÓÔ¦e:Íâf YÂ,i™¥Ì`ã’qÙñÈñØ‘ãxâøÍá×éú¤>¥3ôi}Fÿ ÏêõOúg}N\7ÄMáÓ‡`+üUÌS‡ŒXØ;à;ã +| Ûà Nƒwá�Ì–Ù;»²Cu1‹ôaÙCö”½doÙMv7óÌ| ðи¦ -ŒW´Ô±ß1¾Õüw«t ]ÒJ·NZ§¬1_ÿ«à6üÖÁR£ ,6šŒ%ÆRc™1þfLÖ¤’Õx5Q¤éoô.½[«÷è½zŸÞ¯ˆÃâ{qDÇÄqqB¤‹“â”ȧÅá™"K\Å%qY\WÅ5¦³ÓØ »ciK—“áÌä LÄÁÌi'ìŒ]˜Òþ˜€˜ÜvØ;0kñ¦1oÇñ¦3»ã0Ç3Å£p4Ž‘•e%«2ÍoãdœÂ$Ïežg3Ïó™ïi²šŒfª—È겆|YÆÈš²–¬-c™Òl|ˆ˜Ø[xï0§%˜Ô g÷dNCU³:\>y“Ç-沓قIÏÂx‘éb†+3ÃÕ°µŠQ5™éæ¹:SÜPÅ©F…Q²Ž¬+Èlp¥°•”à>:€ûiœ0UŽ’ãåT9O.à#Ý1K… ý(ô‰]Ú±[Ùì^…^;ÅÞf´ÏØnû®mç¹]áìµ5Økc] мv{íû®í^[¶Ðk;†u‹g¯]^äµAìµÂíB¯>¸ÀkÃ^àµ#мvYÄÇ›‹¼ö8{í9öÚ¸"¯9œ½vDôDöÚ +ëÃræÏŸ3)grÎ4¿ð×õDZã6ó·ôoõßðçç|Ú¤Àq+æå>s\¶\*“å$9ƒY$?•§sB $/4Õ»œí²ÛØéoO·wØiööyû¾ýÈ® N¤ +'RËU¿(‘$N$Å•ZH™ÂD:„uëˉ¤%R’)Z˜HBxbA"®$Ò¹(‘”ˆÔˆME‰åD~æD%282‰IˆNæDÊ®wå$ä$åŒ.Hdªßð‡øëq"Mý-üýgü¹¹ñO$âÊ›^˜ä_bcz¶Êöïªæ+í+å+éô9}–OûLù|ʇ>é>¸YP5“Çr3²ž\Ø5ñV¯wÞªÏó¼¬)�™I™oeíò¸µÈ·2sCæ +ï +ï'Þù�ÞÏŸÕg–õŽñöç£oSomo%OkO+Oœ§¾§®§¶'Æå ÷¼ä öî;nŸûºûŠûâ³*wš{Ÿ{¯{'¯¹×¹·¸[¹›»›¹+¹ÃÝaîÐË«²ödíðîRvHPðÙàôà£ÁiÁ‡‚â^~,Vs?üaÀªç¿»üÆÎ_œÖM9~r‚øùáÁ^²ƒçýêj@\± ´WwµüWñå—3ÔÇs‰¿;_0œqÎ{amò³áœPx4öÝëw•mí‹Ömþÿºçßø_•ÅC‹·ýÈ¢÷§0fÊxXWa,‚ù°6Âg¼ËÌãÝæ=X¿Â=XÀÃ�Ü…µ° À}ȆO`3|ið%„A‰pÃa8épŽÃ ¸C NÂ)ø +Þ€;°~€Óp†Â ðÁ\H‚a0Þ„0RaŒÑ0ÆÁxH† 0®ÃŸ`¼oØ;ác˜Sa:¼óË‚Êm£ßœîoÎw±öD°»ëØÝÝÝÝÝÝÝÝÝÝzìîcw{íNÐËc<Ãyå¼qöÐLšELñÈC®óÛ‰¡Ù4‡æÒ<'ÖùCBJpþÒ|Z@i-¦%dÈ,yi)-s¾9ßi9 •´ŠVÓZKëh=m ´‰6ÓÚJÛœÎ5Kãh;í ´‹v“âÓÚKþqL%Œ#ê¡óˆS�í£ýHIh< ƒtˆþ¥Ãt„‚(©³ÉÙLÁ”ŒŽÒ1 +¡PJNatœN8?_Îcç …S¥ ”t’NÑi:Cgé§”Š")Š¢é"]¢Ët…®ÒÎ^JMi(-¥sž:Ï蚌•q2^&ÈD™$“eŠL•i2]fÈL™%³ÝH™#s•2OæËY(‹d±,‘¥²L–Ë +Y)«<m=ídµ¬‘µ²NÖˆ8;6ÉfÙ"[e›l÷´÷t²SvÉnÙ#{eŸì—rPÅùsXŽÈQ9&Ç儜”SrZÎÈY9'çå‚\”KžO¬çç¯ë¸ä²Ïõ¸®+®ºpë·—åŠ\•kr]nÈM¹%·åŽÜ•{r_ÈCy$å‰<•gò\^ÈË8Ÿ_Éky#oå]§t“nÑmº#ïåƒ|”OòY¾ÈWù&ßå‡ü”_ò[b$VþÈ_u””5žzÔUQU¨Q?µêUŸÆW›HhBM¤‰5@5‰iR Ö Õä¦á¡)4¥Mll õ·ìCûÈ>¶OìSûÌ>·/ìKïWï7ïwïïOï/ïooŒ7ÖûÇû×çøÈÇšJ#5J£5µ¦Ñ´šNÓ»QšA3j&ͬY4«fÓìšCsj.Íy4¯æÓüZ@ê?ZHk-ªÅ´¸–Ð’ZJKk-«å´¼VЊZI+kªÕ´ºÖКZKkk«õ´¾6ІÚHkmªÍ´¹¶Ð–ÚJ[km«í´½vÐŽÚI;kíªÝ´»öОÚK{kí«ý´¿Ð:È&±A:X‡èP¦Ãu„ŽÔQ:ZÇèX§ãu‚NÔI:Y§èT¦Óu†sÝy 3›:Kg뜸ϋkò]¨‹t±.Ñ¥ºL—;·œÛÎç¾sù§+t¥®ÒÕºF×ê:]¯t£nÒͺE·ê6Ý®;lRl“Ùj“Û0n#l +›Ò¦²‘6ÊFÛÔ6gªgŠzú¢Š£J¢”§;J£Ê¢Ê£*¢*£ +ª¢ª£j¢j£ê¢ê£¢{f š¢š£Z¢Z£ Ú¢Ú£:¢:£º¢º£z¢z£ú¢úc�bc†b†cFbFcÆbÆÛ´6Mo3ØŒ6“Íl³ØÿÙWöµ}cßÚ¬6›ÍŽ ˜ˆI˜Œ)˜Ši˜Ž˜‰Y˜9˜‹y˜E¾x>ÏuÂè=} t—>ÑgúBßè;ý Ÿô‹ÒÓoŠ¡XúCè/;LÌ=ì²°2ذedË^öq|öçœqb LÈI(3eá NÊÁœŒC8”“s‡s眒²R6NEÙ9’£8šSsNËé8=c –b–cVbVc ÖbÖc6b6c¶b¶cvbvcöböã�âþÅaÁQÃqœ°9lN{ÇÞµ÷ì;ûÞ~°q’3pFÎÄ™9gålœspNÎŹqŠóp^ÎÇù¹�䏿"\”‹qq.Á%¹—æ2\–Ëqy®À¹Wæ*\•«qu®Á5¹×æ:\—ëq}nÀ ¹7æ&Ü”›qsnÁ-¹·æ6Ü–Ûq{îÀ¹wæ.Ü•»qwîÁ=¹÷æ>8Í}¹÷ç<ñ`ÂCyç8Ã#yÎâÎã.â.ã +®â?\ÃuÜÀMÜÂmÜÁ]ÜÃ}<ÀC<Âc<ÁS<Ãs¼ÀK¼Âk¼Á[¼Ã{|ÀG|Âg|ÁW|ÃwüÀOüâÑ<ÆMà&Äoĸ‰ÜĈÅ7À t“¸AøkC†Ý¤n°‰g<Æ5bÔÀãg¬ñºÉÜ7ÔMáÆgâ“ÀpS¸)ÝT&¡Id›�h’˜ “Ô›d&Ä„šä&Ì„›“¤4©|b¢L´ImÒ˜´&Io2¸‘n”Éh2™Ì&‹Éj²™ì&‡Éir™Ü&Ékò¹Ñnj“ß0Í?¦)lŠ˜¢¦˜)nJ˜’ö“ýlJ™Ò>õÁg|~>ëóš2¦¬)gÊ› +¦¢©d*›*¦ª©fª›¦¦©ejû|¾ø>_›Ëæ¶yl^›ÏþŸýúî⺢�|Þî{‹ïÞû£WÛ€íØôn0‰ÓllÓ;¸ÑqL]tB„Dï½÷Ž@¡B—½Jô".t°qVb<ÉqÇ™I2agöÏ};û¾wfÏ-Ç广ǹWæ*\•ßç¸ÈñÇ\kpM®Åµ¹×åz\ŸpCnĹ 7åOøSþŒ?ç/¸7çÜ’[qknÃmùKþŠ¿æo¸·çü-wäNÜ™»pWîÆ~Ü{pO÷eîÇýy�äA<˜‡ðPÆ<œyq0äQ<šCx‡råq<ž'ðDžÄ“y +Oåi<gðLžÅ‰ÒYºHWé&~Ò]zHOé%½¥ôé'ýe€”A2X†ÈP&2\e„I°Œ”Q2ZBdŒ„J˜Œ•q2^&ÈD™$“eŠL•i2]fÈL™%³eŽÌ•y2_ÈBY$‹e‰,•e²\VÈJY%«e¬•u²^6ÈFÙ$á²Y¶H„l•m²]vH¤ì”(‰–‰•]¾L¾Ì¾,¾¬¾l¾ì¾¾œ¾\4€Ò LCh( £�N4‚‚(˜FÒ(M!4†B)ŒÆÒ8Oh"M¢É4…¦Ò4šN3h&Í¢Ù4‡æÒ<šOh!-¢Å´„–Ò2ZN+h%¢Õ´†ÖÒ:ZOh#m¢pÚL[(‚¶Ò6ÚN;(’vRESÅÒ.ÚM{h/í£ýt€â(žR¢Ãt„ŽÒ1:N'è$¢Ót†ÎR"%Ñ9:Oè"]¢Ët…®Ò5ºNÉ”B7è&Ý¢ïè{ú~¤Ût‡îÒ=ºOè!=¢ÇôýLOÔY•¨’Ô9u^] _\¸Êµ\ÛÕ®q7û’K®ë²+®ÏMïfp3º™ÜÌn7«ž§çëz¡^¤ë%z©^¦—ëz¥^¥Wë5z^§×ë z£Þ¤Ãõf½EGèz›Þ®wèH½SGéh£cõ.½[ïÑ{õ>½_Ðq:^Ô ú>¬è£ú˜>®Oè“ú”>Ïè³:Q'ésú¼¾ /êKú²¾¢¯êkúºNÖ)ú†¾©oéïô÷úý£¾ïè»ê¢º¤ïéûú~¨éÇÇñ|øæ#|”ñq>Á'kÖu+ÙJá¬Æ+ȉQ¥±¥.c-Ö!šc1‘ž:‡Øµí:v}»®]OR£y—ÝÈnl7±›Ú ì†î÷¬ØReÙfmíÐýÁ^‘ätœ‘3IœÄËAI°‚ù&ã&vb>ÂTE„¨Êª‡ +Uaj¬ê‰MÊŸÉñsº;=Xçͼ…#x+oãí¼ƒ#]Önkµ×Úgí·XqV¼uÐJ°Y‡D+É:g·.XKÖeëŠuÕ”7L}ÓÀ44ì¼ököëö¦•imÚ˜¶¦¶©cêšz¦™inZ˜–¦º©ajšZ&ÊD›kö™ý怉3]M7ãgº›Ž¦“élºØùívA»écúÓÏš&À7A&Øô7ìÂv3Æ„ÚEíbvq»„]Ò.e¿m—6·Ís×Ü3)憹in9œŒN&'sê;ÜN§“×iït°Sìdï¾áTr*;Uœª&Éœ3çͧ€SÐÉçäw +9…M5§„SÒyÓyË)âuÞuÊ9å +¦ )h—±ß±oÛw਽Þùš7ýØÐ0p/à‚!ð!=2xd&dFdE6dGäD.¼ŒWð*r#òzO¿Ž7ð'¼‰·ùQ�Q…QEQÅQ%Q +o£4Êà”ÅŸñ¼‹r( +xQ •QUñ>>@5|ˆð1ª£j¢j£ê¢ê£¢£ šâ|ŠÏð9¾@34G´þh“ðNðÅ0xç8Ð*‰ c¤×]ú"Äë/þÃXŒÃxk�&b’×cŠ{¡”×J{¡Œ×Y%0Ï;«°‹°K°¶×t†ZeaVÿÔ줥%59íµŸ�¯ÿ·‚½†ÔÇêýÇš"Ò$‹½|*i>Ÿ¤5â¿MÒnæI>ð¤÷=Éßsý»£Z£ ÚâK|…¯ñ Ú¡=:à[tD'tFtE7ø¡;z 'z¡7ú /üÑý1�1×ÿ>ÁñÔ£0!ƒÐ_Ý1!5ÁÞ¿eŠ5Ó030³0s0÷ݱ˱+±ê÷MÇflñ’wׂHV +QˆFb±»±{±ûq�qˆÇAïp‡qGqÇp§pgp‰HJsÏüÂýw»þ¸ßó”xŽñ‘ÏíŽßtÏ÷Âýßé®,oýâ®Rwú_ÍûVlKÛÿçwÿí¼ãÿÑ]MPÑVé§îÊàgÏý ã'tVùUåÀO¥SÓÔt5½Õì_Ý+yê®èYw妺;ÉjZ«V¤º«•jCšûy®6«*£ò©ôj‹ŠPYRÝUV•íoî*»Ê*§Úþ¬»Ú¡r©—Õ+©îêU¥¢q!Íý¢Êò`÷_¯ú訊+>wfÞn,ŸùBy›GRÉfEB©!¤aÍfh’d—†²IIhU¨bA—I ”á‚K©|h‹/iÀ •6¢õØ!Šm 䈤=iEöõ÷6!fý£§;»ûîÌysçw÷ι(~ÿ˜]¤ã–ßéiì4¦,ʦ:…}é +½JcØ9Ê¡½¬S9ÂÒðKWö±4™ 1ó~—g¬Î¼lé'¿¬¢=?KCuàæØ1ê¨WÀǰ.ÞØ |¶ Ð~ˆT (hßJifüºœÙ ^¦À'«Áâ”j~‚(jï`TØ“ ÏÎDÜm¢éæ2ø«S> ÿOG,.¡µfÐ|ÆÜbZ±Ò*Þ6oqéˆÝ…¬ÝüLùÀüØS…8ÛÎ:iK¿C`ÉÄg«ø9"x‡˜'É\d~\ˆãvp·ŒµSwãí5ì¯>¼ei˜o¢×Hp¥–í`GhMá.¥Ê,3ÛÁfrÀZÌѯ&GÙ‡äPºÌ_™]`y.˜¸xœ¤6»µ.6ˆ)@i< ëú="ôiô:Xq(yŠWyÜ|q2Lƒøoaÿ |5Êñ–˜Åˆ§ì@ñ}þK÷Ó|Îl»Äy¹;ù«x?‡·Ÿ%7æÞ!öÈ—åMÛ±sæ@x$›=œó:¸—J*=BOÐ{ôN´óùóü‚Ø*ÈÓöVý=d¾M`â BùTNߥZª§õ¸ñn§v:E—q®ÄÉñš¨KÅQYŒ2K>"ŸÄrƒír,{3öçØ 3Ï|QX8ù)|²+k+Ï t²¤ †¢¨`ílZ‰²š6Ñ/i? ÌrŠ.Ð'ô/ºN79C±ñîâ™(Ω?æ[ùNÞrŠÊÿ#RD&î±D¡‰‡aÕz±å8/Óe‡4sž²MyAÙ¯¼¬SºlûI,éÄ—{nåÜ:c±ÆØ¶Xs¬Å<|eeª‘ÈQ…°>‚²þÞÆ½ÂÞ!°KGôÑt 3ŸÓRZ$Ÿ¢ôbÜöƒˆêvzŸ®Áæ|dÜæ»qš/Æá~œÄkpÎÞÌ·ðþÿBØE1H9bŠ˜'jÄ£b…Ø&qBü]\Ÿ‹/QL™,GÉL™-ÝrŠœ/—É]ò’¼¤T)Ç•‹¶dÛƒ¶§mQÛ?íß²ÙgÚËíóìÏÚÛßM +ƒo w¼Ú7eÓ9±NøÅ!ö/ÓøI~|žÏªESù~j䫨…V–Û&ñI4ƒuÉl`ýÎ'‰2*¥Yl1î2ñm˜| Bù»*_ÃÚNâÍËmZͯ٬™Ÿˆ9ÿ(î‘nqœ}(:É.w³¿ÊdJ¡«|Ÿ˜ •EJ¹ÄNvP,¥Uì÷3–|3i#x<ƒ^B^¨¤<ú·0q÷™Ý+>Â~ûþ»Š8nd?£j¹9w<Õã¼Q1FyÈ–cNâuRçC©…qy�«›ˆ\(”aì)š'vØ®ñ3ØÓ;d2;+~ ë;øAQ&»” +ªE¬BV_j®c+” <M‹—`Yò²[½È“.<× «T!§FtA¸O”¡%Ì™^̶öy”ç'$T‡Ÿƒ,v’µØ*y”-R²còx¬‚Í5÷²íæ"ö¹…yÖ›õxã~v'ÇýÔ[‰sȈœ³4] ð%`z¸ÎÏྐྵ-Ñ¿@;‹RÙ”ƒ¨)¿cº|;áds£ù°û.dØí8ñ|ûăì3Ì0U´±ñ±¼Éˆ%Xo'+7÷™£°Õš?Ä^ú{Ñ®°ˆÝ të]Éjx…ù¨¨‰Õ‡g‚h-Cþù‰×7»ò>ïä¢oN*˜˜ï„oŽÏwÏØ»=¹îœ1w}#;k´–éRGÝyÇÈŒô´Ô”Ç 2Ø9hà�Gÿä~Iv›"'–ë×aÕÈ2[›:ÕcÕµ"}Â†Š¦@bC Ç»©‰=½èùý¯õôv÷ôöö$§ZÈ +=¹ª_SöMÒÜò äM%ZH5®Æå²¸¼9.€ìra€êO-Q +«~#ðXî—àuMý“}š¯&Ù“Ëš’ûCìÉHÑ–4QJÅžâ/hâ,i�Œ2Òµ¿‘¦•X"Ë©6f–ý%.WÈ“ko¡¶À`Z±1ÈïÂ|ñi›Ï°Ç§Që¬Õ° jSn›¾1êdÂnGµV© +"²æìƼ%FÊã§~UŎø‚ëûj3„îOSª®¯W_”ûj]Ö(„w`,Ï +„õ�¦ÞKg©˜7„‚5`JÕZ‰µªîõÕh~«%¼X5úiÅZ¾8פë«XájNO÷¶šçXº_Õ+ƒšË˜œ¡…"%#›†1½bÅoÓ¼jZ¢Æ“ÛäÜ lÓÀA=‚c@_¡¦W—âÝ-©´¢Y²,Ò¦†ºP…%A kÊ·þjò™¾0Ýð FÕðHÑÏÖV»5ÞP²œšª_g`€võÓÄ–HO‹-ËyY¢Å“^ªA[6Ün#'Ç¢ˆÝŸÂÆ¢x}‚'÷±(×´%NÀÇfÛH¨`,àw¹,oˆzÙTŒµåÁîºÊd43ïXwÈàaKÓv[3|¶¥Y{[Ó;<¬É-w6ÜHÊîýrŽê¯-0hÄÿP×tëKgi¥åsƒª_÷`[Z™PëÖç÷êz$c¨/(2xÄ3D\RVõv¶*A‡!³ðµÅI]µ'•ñR†3<µû?”ìrýŸƒ¢f—5*þøjX™F;±>)¡ž`žC0[eiå\]ONÐjÝNëy€ñ¬2èR}›ÈÌÂ7j¶å[¿P†ád>«ø×ÝÔSMè˜Ñ#‡ð±ØéÉ Ñéz@SzXD͵4Õ©éü?¦/ñ‡o'jÙa6†€U- (8+nÒ¨±¼ÉK³æ[Œ©•ÁfNÜ.Y@r_e°¯÷â!ò0NñãbÝ팹»þËuµÇ6uñsÎ}8¾×sýŒIæØIc“Ü?ãºY.k»GV7Ð +S +ª:Da0 DS›´¥<¶ñ˜4ªµšÒÂI &Ð mHU©¼VëLƒnŠ€Mu†¦”±‚}ǦtíûÝsÏ9þîïœï÷=ŽÒCÊ»çã.ÜÓ8Lùø|á‹ð>8SpV|á”ÈTŽ$äÉI]®ÑDɸ×Ä…‡¦KÓ¨«t½«îT}e4�£‰’üg\(¤x ¥`§âà Iò ÿõ#µªú8ÍjZ¤Ó bšÎ ®®-]ÿî“ËÇaL5ªX Û9%¦p\GÌy#y-þËñFΈ-Ÿ»÷ïòÏ +†u57N¶U°Êègá@tg¼±9.äçîè–¸,JyŒA”gŒ55G¡F“¬ÆÝFbÃèN³5n¼Š9^#X7+qì1õýª–ATµLI£%5«•4Ô¥1P% Vlé4»"a¬ªv‹UäþhaÁ_"…07ŽÝ·n•ÿ^•lÏ¿3·€·‹‹P+œ�Rø²Þ<àÅ|¸-‘}Óßë_Ê&rܺÐn›¿?´31äßÚ› ‘üÜÕwä´×ç{(Þ–ŸûDoó5Ås5©V—)ésµ†ý2rš’‘°9“þpø’)é0™’a“?É»£bž¼qf±€…"®Ÿ$o :rbÜÝ0¥æq‡.9œ®Ýn·C@yœÃRz'Z¦°¹~§`ꑱŽþ�ÛÉ–ôÀî�È“'tk«ËínhðùR©h´¥þýSÝ…œ‡ªF"²,Ia¨0v£€VybÒB{ÿ&º‹:‰÷"§tk—Ð#ìö ¼àI¿÷jeŸ³™âl_‘Q‚~ù-ýjq¶ˆºf¡Vëb‚–¦+¿ì´bs§‡,íêå…‹VøDµo×»ýI“ý¡æ¦æÆfN´,V³•ˆIGŽÍÑfoïAaˆDsªû}ÉT<íA±èE…aÕîY#0%b’à ÞÕ;X^U[ÕÖÁAh!5‹³BG; &]n—[ Žx2‘R°C T\n/q:Dƒ“E§Ãå¶'ñ@—‡FwJ§å6mY–~z<wtÕÖÚIúÜòá¶¥¹ôÌ»¹õÛŸß™[ÿò³¦&”§~·§ñÀ#kdÒé\~kã…m‹mË–Y3kß®ÏõÙJÿi´7ç~Ò{îsãq>ήh.¹Ì¿è_»-NV1ƒo èN$pX˜!ˆôáý˜àœÈxOoga›‹¸Êï*¹‡Û+”¶}öYy´”—5¢¨S—‚VŒ¨ÍPCiÇÆÑˆ¥îºb±¬Få|ÇWŽî©(.Ý.ÒÛ ì®“Å¢°MЉø:)Æ×þ!³òüàö`glpyÉy|[f®”î~´â•CçÞ-7”}_yÿsºi>™O‰Q¢ÙŒ4Âa¸O nµòÅ¥¤w&¬ÖJczÂl®4>Õ’Dz–±·ÝÇÈÌú8íMH‰Á¦ÁÓII‰Ù¼±3¸cðüÊ̇å%øü×óg½²òwKWfÊÿ*×�J[Gþ(kÑKz·Œe©×I¼d4Y¬T1ˆ2&µ¬ª6 ž«qŲ̂©Y])³¡Êvð®K¢ #D}ìø1îM1êfáM¤+ö8òx6渚ªÌ,‹ÅZ)«¥C¸ü°R½³[$Œ²và&,A4$’nÑÀH ÁD2 ·|ÛŽpŽç_lßµ£sÓöt§¶n‰ò'ö¦ZN?²î`¼mo«¥c¸·gøµîÞ}íÆ¥·ÊWñQIèñÓ$•·Úb=P ÷XÂ’HLöÀÉuœÃŽóŽÉ,€CÏNÓ"x9x‘–*¤‹„c@9C–Hž),~*šNp…Bß«Œç٧ὋpžäÈ÷!¦¶éžÍd3G28¯lBdž°&xøÍ¯±M™ÎÒë(”)ÂÚûÀˆ~ç"Ò‚ó§O3ô“ †�=‡šõZÂÀjUˆ'Æñ”·³o¨‚š,°œ‰tîIƒe9ôäYÄÍ]s¤ DjÝçHæ0áF¸“á¶"ì€Ùx9$q7¹ ¼…—óã;jY™-Ò*dž„v5û½È¸¦ªNÃxty¹GøôsËq½s7xE¸�|ÿî=EX>Ö¥y^^pxÍf7$±›n³†îaä6*ÈÄzËdib}(Ä.€(Àz؊ꪙý«šfA“È4]/©4ft,‹L%e=ˆšLL²¾*¿Ô9!ú<´ÜnŒøäßÀÁ— .+d¯µ¼8D†åaëûÁhkÉ£öǜݞ‡ë–ÚW9Wyž¨Û`Ø ¯³otnð¬©ÛN¶‰[åÖ!ñˆá}¿ö +ùXüXþ³uÞ¸ýFÝß12RÈåû”~ÄR–z}†Úïe†95øs¶O-Þ‡‰³}(‹RìƒáZ±ÂNm‰XÔå²s‹MÁ€ºbÑ„BM±wÃÔ±c[¾‘›zýòögGFG4Ð%S˜ÇÇŸ/Ï])—Ë¿?qä|´|øŸ·ð÷pnfýKŒ+×À€wÁv:©û8V_làw‘}äç5üq‘(Î(`Á—¤ +z‰ aç ãW¢4þ¡+ƒÖWj©vY÷0s}a“Š}æ™*á‹Ø'è<ò$Öð‹¨ê}*ì‹ZýÀ«t cAƒU5Y”UýMŠ(:ÀcäîÄ¢©¥‡ÿÚÂïüú@ï¿ué¶6 ¸l€µyñ{÷¹dT¨¹Ön{ÍŒJŠRiÌèFJ¡åu^FQ7›àõ²Qo½F¼&†Ü›'çt‘Ün_U dl€hº\`²€BE†´‹É‹QF^òà…ÿe»üƒ¢8Ï8þ¾ïþº»Ý½Û;<Ž»c;¢('Â) ëñw‹N%ƪ€ÒŽ +MÌQ4ÒÊÔêTc©ÆX5©P~˜F;ŒŽZk3Ö4©“¤Q›8¥5-“ÊÑç݃´t`wßÛ}ß}ß}Ÿçù>ŸGr8ˆ1¡n¶ÙÉØ<ÑEGYìsÒ{ôÝgàÕ4TD‘,GÕߨÅÿ7õg:͘LŸ:›Î÷qð}ÂeÓ0GŠIåÖ:i•u“cSÒNÇyÇ]÷Ý´néñ\IS<ŠWñ)üoF œßW3XËí³(&ž¿êq;=·Éãµ0¹=ŒìS�ÖÞû®Û»±«‹~2¶Ã†‰diwv›ú:î#[Šà(ÉÞUL–“ud3aI/ ¢t¼ûtÂÙAWçPy¡ù ¨x`ð%YAjJ‹Æ" ¿ÔÇb™É~�,nI ÃaˆcHмÀ +O +ȸÌ#þy|ÿ+MqOÒЇ7Ï>öÛ·–ù::f¼ðzÿÝêº=ßHºñÉýŽÊwο½cÅdð”èÈ=6<%ÇF '¦ºtºÿ.ÂÔUs$øC‹l“l>‹%”ì󰾇ÉYr¥BzWêüª Q+ÒîZ.UŸë¹ô9"ÅÅDÀ~—”KŽˆÒŸ“Gj¿ñœœ"Ï”·ËìL{…}c³(åûÊZ窔å—Ûå7œ;ÓŽÊNe¿%ÙÊ +æÅÔ,:|@v¡’’%)™uQžN%µz¬’ƒeÊŽ†åê:•¨.êÉj£Ð Ú¤a¤)ž£O´¶ ®n\x&õ&¦œàÃÅÿªÕSÝø§§Ç˰"Õ¬Áœª„n ß¡Î9�Þ„9!TÁ€xCÒ;Õ,ÃpBÁ·Í1R# +ôŒZ´3}oÝæ_¿õZx¾Ó!6to_»¦ÕÙé¿ÿîKWëªW5µÅ¿øèâÞêÚßrªéÕÃÎvòÒk+›š›Õ®Ë5gV-?8Ñ÷þO.Ä݃E»A JlަOuTJµÒé„tEâæ3ó埱Œ|I<#p‘Á~•aÃ22"’œÓGú JÔCº±,tAW-l7©>ÇqÝ›>Å2¦„–Db2ÿ02”ê]ôŒÀ¡ÑŸ/´Ùu'QvNAD!*aLÇ@ãÎY:†tY»q«±Óõ3„pÊK‘rO1tª‹ÇEöHÄ à–‰9,„ŒQWà’e•=H†œïˆ€äüQÃ&cB„a½Þ"úŠúèNI#RcYDÒµˆ”á너¡¶1¿ÝŸÃöprÀÎØ1Ù7ÜL~±çÒ¥Îx>^~”9ûdîÑøaê½Ãu°¿PÒâí¬! B]e9Äf±LæY –\TŒÍ‡M£\µÜ¥"ÁX|‚â)ÄÃÑ�ÃÄ®_r@† uñ…Â-îš…*пô +Ö¯¨)~f¾¶Î´Îq=ë/ –Ι-·n +YS2CX3g{µP¾{j¤$3êŠy—ú£¡èœXtµkufuh£{“·>¸ÍÕìnõîò·h©V¥ÌŠ˜ç¨ŽYlY“Ä2‘ˆBJ™JÐ<Ò×Y2±¤ÃÓsÓ°š³>‡äôâ(‹ôÍ´ Xè&[u›Rö +:Ù‚“”õFyªÓöÎâÂì ô7£�i×Íj>ÎO¬h«&‡!z«êp�´| +èìIqÕPˆÈ¨üèeòïi±f�À¸‚0Ck³p^ÁTGþd°P³9ذ„2…gÁ`-íÈŸÇÒb@ ã³4L=CŒ³vçŒÃcÇ×ùº¾¢=’ñ^›/äÍÖo;ï¸~?þÚ[xÏ#ÌãïUv…‡âï|õY|g|¨¤|Õ&|ëCxWýŠßýxæb§Oi*/|uÃì–ú†µú‘yKk?ÞòK\|hiÕ›Ã+ZmiYO—ay÷1œñîíxÍýGñö§^_óçÍõw÷¾{ðSlÃêµ+×âŸýõjvV*ž¿óç%Íתwì›Ñö{À’‘a„¸Ä®€¬¸æ,†ºÄ’¯;GCF„šYc”0Ì=sÆ9W™¤Ô˜jÍ/(;˜6å +w‰¿ <PDÃQR¦ÔЧ”‡ÒCù¡ÕÌJ¬ÌZÑbæX”ÕÄ‚m/ ÀÒ0n3¨F$'<"Cï%Ó{ŒÊJNeöqœÉÇ3|7Y¯›‘IúR'˜^,"ŒEÝ!©hµÀ,*co°Ÿ³L‹ÙnŒu±Lº |.1m–èoÅ&ÜÈf¡Q ÂÛGJDK*ðïïp§*ÈU\äo)¢ÕÉ�eóˆþ–‰.ãj(C‹ÒßoíïoáWP†y§Äçæò-\RÙÉÚ“ÐIÑìÃõª¬�º0~&ÉÏÐò‹!áIå§'‡ß<ü þji†'Ìõ~SŠÏÇŸ%Kð¾žýx‚Øß*û%XÊŽ¼('õ l2‹28Ë–¢ê@ƒ¹Ù̯q¿È77ˆ[¹"Ÿ•bf\YÙ¾¯Ùœäðeg‡BÈãõÁ¾¥|!“Kã%ª©<hª¦tÉ;¨Lò<ÝyÞDßζæÔøòLMòÐ’…ö“¨_$Ó^’û)¯O5UåÕÇFEb4FYõ›NÃȉŸ W‹A¬U9Ó—¹¾¥Ñ*`–ï?Žê(ÉÀ °$:’kИH”VÃvÿÿä8+ `^c´�n^›ÐÞG´ãתk¶í®h¼ØßƒŸÞR8w^iS{ü6þÁóZÉ’iå{[ã\o¬gõó¿ +go¬9ýÂdf‘=¥zÁœu¡¤ÂºÒE/O¦\=ò7n#T‚^t³k%Yë%8A˜Æ÷}¡/§-åÉ+ÑzôCo#jö¶¡ÜIæ¨ÜÃtÊ—å? ;Þ‡^»Õáµ{½L6?ÞžíQÓgÉQgEr4µ–«ó¾âØå8Àì·ðÇo“ãö[Ö$äDnÅ©¸YZtž1øiÂøˆbC˜MKòILš5+šm.ÒTŒ±;}œ¦š°I¢«ùéÕÜÄu…ï½»«½ÚÕ®V²lÉ’%ïbKÅa¢â4;!aÊÃà¦)Á6 +N˜¤?·<:ih'ÁL!>†˜¤„L(Pš3ÁÆà“êf’ÂdR`šd¤@C§%LëŠí¥çÞ•À?t*£{Ïî +éœsÏùÎ÷ÑÒÄ’E'Ó�”hX‡\~àÉ„`ê(ÆËq˜$.XYh'§Ÿ`xÈØ…¸ðnç÷çþéœzež1ø1ž4ýpÝà»þº¨ýü³¿þŒš/†‡¿ûÁ9ЬgŽMÞ¾q‡óEç!çÂOÞbšv+`OT´rwΞb–ãÔ΀‘ð# +.{q9§ˆ^^T^…kÜ¿ÃKCR´<nÜqé])”ÞÕBé%n-½¼»Yr5Õ3VÚõBL¦*Q‘ŠžÒH4B<ª} À¸( ••ž˜¶pP‡%BË,\¢,YL§'Âk5α + —„Ac†ÔgÒªÍóì*¨Êø?o´<Óüýó~ØùþZ§g;_«¹¿ñ¥'æu;ïIÅñ¹:ÇßÞé8»©í®¯¹ÿÂëç¯LL@Ô;�>‡<ªèv±GJP*ËHY"oBETfÕ7‚ùAa¶©˜Q¢šèý?ÚÕ7½Õ- |ÒyÃæ‡Î¦oíÓšjˆºØÊ¿wˆ•#[…ôÈŸ…5Ò@·sÏnGëf]Ô1¬…¼èçvšÇ°Æ!a0k•¨z~Û*wÜ—oBç6÷•鋯¸?Æÿ³@›\×s·úÞ%|2rŽìmb~µ{ôqð¡zÿ ô~ÙÑX(VLÚªðô…ÊJdÃ$‰„7§É|ÀØNè‚•ðx1NU%+MA€¸ªÚ8E=Ë#áÓ7ÏUÿÂO€OßûÿdyG®Š§L+»¡”¦–´ÞhåF#w98Ï”oj&gøµ«²Œø@Aß'VÄÊ¢e¥e‚Ç—2’Å©òMŠ©ŠdD‹[¨Ä_dÁ‡CE¦W㤤…ËT¨ìP�–„ײP¥�b?n4 é‹Õ:0«©ÉÀ—У$,…�|€ä„ +ª? Ì%íœÛO;Ûö÷⦶a¼1µÇz´ï{k`ݵ“Îg.}ܳžY¾â ~øôI¼bÿ·û_¬^ÚÑø5ó×o{Û¹ÚñÈ4€óxeï„ÓŒ¡±£EÅQHx•íÊ …(!*…6eÙÃÔŸxoÐ +lêqqéaú/Â'æ“/סa¨nÕ±£TàKï üh¾üÆ NI¾{L ›Z“Ö¦-ÕÄéÍÐxüÉ#{Žé.E ›²¹)†09(IxWÀúê ¹688ê‘F_'-×f’ÞÑFðñ04ÔjÈ‚€Þ;Àz‡Hàuï]wgø^—q÷ÉÕî>~‚»W$Ý=žp÷H”ïöDÍȘÒóÒ jÈÚ´íEâЫMèSt IAn>ÉU],‘|vþQÈÎÅBv.Û†Ëôxvvˆ'›Ç€/¨¦}@çrÍË–7Œæ +)arŒµb]àð £F#cC!F µÛ>LàŒ%DMFúÈNÛ/áŽÁíòmÁsÛ@8ŸsQÍuÂ*Þ4H>�GþÝ ?±!<1ÈÙBf<ÚB”¼¨®xÿBø`@‚.Úã™å²Ç’ß'x&Ô«êˆz‰¢z˜¿ªÁ|TÁÇ>ö)Õ@Lòæ#¹ZˆdÄd +øø>_ IGŽ'N �%J§ùO£X‡9e—Ë<ã¾ +|ù*ñ•².¨`á° ÀðF¿Éù¾ÊI@YÂÊ™•’°ÏT‚?_$Ÿ€°C‡Âôa³oãÿ’Cd +B®ØZŸ=…ôó¯E˜Å24 ™~ƒLΆ¿8â¤cö*Dü4DbT|Ò÷¬ï(¤Ò7Ë7Ë/L“Ú$}¡Ð*>©=¥¯Ó¨J$šÕêõùdŽpŸlÓFí^]ÙL^6É›h—°Sö‰_׫%’$B}šV-Q0©ïÿØ‘A©WQ¡²uÝ`çÔì’à�éB®Ù'™´×ØŠÏ«˜¶o•ŠÕRÇ*<!ý M¼~(DÿRýdÁ›¦Ô&uHÐ,¤«7Àš¿ÈP®!uÆÕØÑgs E Ƙ¿((¦IÖ=Í% l coJß ßõa¨Á“ ïNrå1g¯ž‡g¯öè +»ÍÆ.?ì³²ú$+«õƒ9-«×NãæÉpwrÖMy3h´,}ÙåKÂõÓ°„+p`3®ÄÕ%¥Sñb,rìqJÃÿêüzÓ+Âȵ™â±á©â™aÖŒ[�ËÙŒÇO÷Õ’Òˆ¯Tãʳ(ˆ?S¦ )‘zEB¼2Óã‘ +ˆ"Ý�mÉí$€Y;ÊË9gªØT›Ô6u©Ú¡J*¾Àa[ƒ»3â ÞŽÜ7ˆÃ¸JçÒ«— } «Ab¦E~BnûDÂõ3oújÂÜ\SÍÆ&œÁ~jÏÌBøGúff©]ëšµYy\i–‘û¾R0k]“Ýà¦Vde=ï"v=ÔWfÜ5ã`3ójOqþüÒxLëÀÖa6Ap`Ë;xgÄ[-®‚Ãêî`Ì| ðšO¤‘Žbè]»)êÇ!#Š…c1Q4ÄVcâ®pŸþ]‡#1bÆíÀü¢ùa;ºPZè}ÈøV`qQKxqdAô¡ØOÃ/£4!Á„ê-N™@ë˜@b‡ æ—8ƒñwŽ`q@Ù±Xz¢q÷§ØzÆ@GiYA͸r&W@îFWÓ0uj$M‘¬Z‘‘oÎJ¦¨®2$ Z‚×ãúcxæû¾ÃÇ®£8~ê#[y¡óOÎ)ò.nÇ¿t^ûøSgû£¸å·Îç8ÎàX/V_pιjF…êÖPí³'=øNˆÌ1æ„ZÖ¨ú€0(qÙl0E75òØ›çw4jF1ü‹F´ÿ•äÞÎÑKÇŽ1>ÇæËxrXb +³ + k\š$@ØË +€}C• ŸØØ|Ñù£³ÿè¹¹5kœç¤=øX_û!gtt·€¶jÑ‹5V9¿‚ï†,DÐ8<b[AUÇÁú²–òÇi{9R>9ø*󵊼ÆÎ›¾‚¡Œ`ÿõÏzƒÑì—zÇUeì:^•1ò»?¿ÃóÓ½ñ”û>oäwöÜžFRŸ]6Ûü¦º¨¬½l¹÷)}¥²Þÿ’¶Ëßïÿ\ÿ›ß€igþ—ñªmâºã÷Þ}øÎ¹ïøì³;¶ÏvŒq‡$†¬9Ö�ƒ6TR `i—‚ø*TL´[¡ZØ´ÒvëÆRUX[(!ƒI0°µCbU5XÕ)b0µ+qög˜¦Ist÷þ9Ü»ÿû½ß‡¦x4MÑQЫp8àusº¦J"k +‚×ð}„Jü¤é>®uÖÓ4E惖üG ]r•Å¥rìdc,9òÄ\>]Ý¥£µæÿ»ÆÜÿä£ÈÔwþ+È”6€Ø$–FiSð^[.‚Š4_n‡<)ÅnU‡Èò§~Q%'f»y[É)êMŸBhsCö øsð“‡lWçÔZ5pÜ'¢^¯áá\w}•z8EhlEÂðΡ¶üþO‰îÇÇGÏv¯^?ö9:ðÒ¾9¯,Ô³'çžÛüÖ¥ ±èœ…u¨á»[+\célËæ™ßÙN2ã’ñ¿37 }ÕcÃŽ/§—3ëé ‹O¦sÕÒ³\O˜^Ó‚^äZ2aA¢¿RŽpEú-±ra•‹x¹ˆ8KQüp±ˆ•«\ĉ£Aª„dEq”ŽÇš•¦HGlzæ©Ð“‘îØªŠg¥•òÓž^ssÅi‹²UÝ]ÛNï¬è—v*¯¨/E¿û‘´OÙgKN-¶ô*+ XIdQT2 3 Õ›KJo®ê¯ÂU1¯”Æc(ÆzYÂŽ3cƒi!ôÒç¥ åå‹yDlTf¤øWe§cQYª`ÃÕ‚U¼‹chÌ¡X´®ql°*° ìö�x©´_•UQu¡´íEDïÙ•irKrk˜ñlÁ¢’(I(\–qw’LM"ßKᙥù&oéeëËŠ³Ë瓽ào(ÅÙ|ç0 hD>¿åPùh‘ÌUHÃä4Jž`¬¹…•ʯ{€bàüÊ– ÎÑ·¢qËšÜÔÜœTú\P>dPŸ—ñ9 å@¬%'¤¥ç¶®9üD×’©…UóúžùÞ×?>x{;{R9rè½¹VôéÂm[¶ßýÙ‡…›o¢OÔÕ¯,øæúŽéÏD|ËR-{×üfEßG/È»^}añÜlvebêñM/¬ßp µ´á$°¢‹ê·%¡áôe„A¼þ˜[:Á…ÎЈ†ú8*¥Íkv…C|‰¾.Ç–¿•Iâ^™ +EM~‘xóáíw2œ¿JÈ Hý õa-<9l„5\Y˜Àì,T±Ò‘#wn’Ù�õ¯…Ùz¨Om·¥,dòçyÆK`àÕÄLåg0³ùMÊÛì5Å%RXħ>à…Ëþß÷g؉{˜°`µ/ò!/ +y»¼¸Ç»Ö»ÍK{%+äFî²t;tè.Ó¡»Œ÷}:t3¥HQ¤C÷}:tç bÏÐa*?Ò©‚î;(ºGíRTeµ’˜VÈãõP4¦çìŠÂÝ?ÿ±pgíÙ™G¶^`OÞ{ÿJáÞÁW‘tž{ïèéãß>‹<¤GèÜè‘=RL}¶Î"ŠwÔÝM±Ï"Ìf®|¬^ùXËf¡çí�Ô†ú*;šaQ• cîŒX/öˆý|¿°W<#~%V„Ä.3¸‚ÇE&8! ‚üd{;"8‡o»!ijžg)€f=³ÜêzÈ É¤—G½˜'¬Häºx´ßËÃÿÙ¶¹¥íÁû1ÆäŠb»X\id/{†ýŠe!‘¼|¬¢çb"Y7»‰¦ +»„$à1ÛÛHî�Ñ ¹TLHG)VâŸG‘‚˜»VçEH>ÖìjüLë¢EŽ)Û±(Œ²Å<‘ExÚØ¹‹h뤚Ú4Úý»±³àJ?Ù¶ö¹ç˜ä¤ç~Šrm"ÞýŶ’”¥%uËÌQÍZNo6gQ3µYúLs!µ@[¨/0Õ7ø7”R#í¬Šþ”ÑÄ6‰l‡ø˜1Ÿ/.6V°+Ä•Ævƒø¼¡°I®:[ ;ëØÞÏaOÒü Í@>ä\Ð|7 QdE=•ºnx}¦iŽ·c)3DFQ×Èh?e@ü XŒ!ƒx¢L–烆é1S!hèPꚨ(!U󨪦"o¬¢©°¯`J,mªŠ"<aN¦®kÅ|¾€:M@ó¨%ÂـæX4o Bùýƒh×ûEcø;Ç NŽücæœé½Wï{‚rœ$~�žO+]:—ÿ9ÀNÚ!«CCpj*WŸ`±Xl`Bw›°‹ˆÁź(V®mÖn-‚â»y�De•:•Y™Vœs!ôóÂó~ ´º‘ïçFªÓW[X}ªð‡¸Ëç)œ‡½Úþúk7¢ô_Ç…/nîú€þ%šüîPïÌ»=Íø(½ÜG-s¦`že{rN‚üaÆ,âÚ@ÕzmfÛª qùVæ2½ +_F}.þר‘ +£ÓèÊL¥nÞÖôoä2Å’Q »¬ªŒ�œ#ô—¿BË~ˆ–ÿÜ:|ï3 k +^躽AÑÈ,j§p€¥üÌ£ÓÈr «W©L'$¨¹†9Tè{ñEâªg_cª™G¨Õ‚ÓöDAêüR .)ÕÕå¤f£¥jJݬº¼”¯{Vê«ë©ß)mOþÄûÓÀ!ÉHCJø2N´Äñoû'ü§Cþ‰‹Æ•ßáEA¢Õ¡S]wÌ„c)&Öî&U¯ÆLM¬kÊ1¹‰³˜oM|’_”zšïKmwˆçÅÛÒí”ÖÒ$#FÍD›|a¹4¹&‰“Õ¹]Þ#ï—Çev¿ü®ü¥LË"¡u™˜Bô2¹±¡ª\·,—9E³\Mûñáó5Ouµ‹" +827=în¬¦+’ËÔeç(`,%ªS2u_U'Ê¥€ÿ‡áábÔé—‰¢BåÜ(ZÖÏè ^lËq›²T+dÕ[ïZlŽdâVÀì]pŠrÍ–‚‘¦úÜ™þEå|dnÓÈ/úbfm&zš»Àá®ÃœìÑI¦“�D2Ήlœì¤•Üœkh}ÓÖÕIý›ëjnâ8ã»w’ÎÒétwÒéÎ'Ÿ|~ ¤`°dó‚ ˜‡P”Š7˜Ô¤a0C PhC;“LšâB !µIHÒxhqÃ)Œ)d&N(Lc·$ÁÓ7uÝýV<ÜŽ·wÚÑÝîïû=>‰/äž¾‡VO‡{{ÁÁz•}iRx$ÏߟŸÊ½I4äA¢ù'E(‚hCƒÏú*CôáŠghRý~EÕ +G±ÎCš?°A2‰¯ú¨¡õìŒçf–oè^‹£Uûvn¶eoìÚ¿ïdäÔ +ÎÚŠ›–•=»~ݯGw×W¿½gή9ŠG…\›òT*;u ÆZ>klSÿw{¦LÄ×J©dvéÌä÷æNù©è½¤¢M¢å +âfë0¶»Å"{¹½Ên¯4ÛLÆ4Œ¨1ÍØl2“}q5¨Uk‰¬„°DL¨O²žÖ‰Õó3w·ÖÿÍ÷öþeð†9lêyöR±Tg¯-{Xg_cïÞµ JnÉï±9”cAqù Ÿ]ÔÅc‰·ø$ßÌÛLÐâiòÙtä~?ÚOkˆ6¦P<dpƒ\±JO~–£ˆ²Ñ8eCÓIbnÁm¸ÛL\‰çbC`ƒ¢%ƒ{VÊÓRÁ40a/” +¦¥Bf|{*ŒNUáÖ8ÖsgLøŸØUÑŸ-¥É–]¤ˆ¼åI4D&¢T~!É@$ç2~ ³$“B€.ÀûÍ™ÆÓ+ZSÖп~v«ÿÙ¶SonÝvÊÞž¾ûÒÜ—>~nèöЧ¯ãWÎÕ¸ü箋—‰ÖÖ ßdûˆ^ðÒûé(æÙ)b‘ǪC›‰öÙ¼Ïe6{ü\¬ž£«çܰzN‚Õs´Â/_¹˜Iþeð5Ã鯦1Ý7][à[ %}Ií0s˜}M8&¸³ÝÕÀ¬gì[Ý›…fá¸û}ç®÷ÝnÕ½×ý%Ãz +¾/nwЬˆ‰ÄXÛÇ!x¨$y¬C¨Ý@ý$܉"=£A½È“Eõ© ‡¬¯ˆ›Ä͉×Z ‹¢3“b ˜<iø‹:9lr•Ãy`ç‚I•Wn|NìÂý„NPÉ?ÑX³ °†:$‡ìk¼îk¤k'd—'•J‰ò¦}Áí)¬·‘óBSó°§äØøéàíßvý»ñ«ýï|a¶ê;—î;yìņŸâ=Ú‡8ˆ]§0³«õœ Ïœÿ˧¢SM0»N)FÖ[Ç\ŒM 1á Á^®”‹™…®ùÊc-³Ê¾Ú¹RIæûUß5½×׫ÜÖþ©÷R橦�]kÀ]n,S$ŒU'3åB S%T+O‹]‹„µB¯ãê ¾ã‘°Ÿõð’HÉs2"”dùì(F!YIR—Œ%Ù’“r³L¨ 5‘!¨ìæÈÔ´€ª²*H¦„•ië;.{`ÇÉù-ÊR…i€Ž¼Å[tŽëä®sÜ šË±\.-9ªÓ\n¦)lÔ–8ê>œž«Á´Djv_z$éâ$ ¤ã=´Ñ€Ï#ž‘¬›Ê/-&bœŒp+xÆN\}açÕ Wv'_)}/wjë¶7Oü°é½¿:øÝÑ#˜ýñ¼©Œg°šñ^úø»/]�ÌjˆŠæžù f,ÍD†Ÿ©gö„³ž_Ín°or®æ³üà‚tÙd`͇QЀïbïgöAe `ï¬7¦zg¦ó¼ËôùÆrï³åF“£É?ÀdKHÅ¢ iu*ôl¬jˆ‡¤‰‘$[ŽáâP;s*öšu6}—;^ööh–@\—6q`·ÀÿaK˜ï,k°0ÉÙ{¡Q18ZSÁfMlªQ©ˆ³ŠÆÄ •7)ƒ"•!˜A1R)^©‘š˜ÏN÷Ì‘H4H=lÓÄ!{(¹ñt*NS>À…ÔBqªñÅ$-C²ÂåÓ>ç¢&Ê>ݹõÑWC·±òÅUìÁ÷nºÞݳò`º›™çž¸hÿoáEÚÑ3Ø$bïÆ%Cú”×Ú¾¿¼wúºãDE|Âf’H5,X¹Š‹z©>N·ôÍúa÷/…·„¬€P"´éºM‡ý( ˜±`–ÀºEÃ…ýLXñÙXrQ°2ì³lZȆXæçD–`ÇOŒÁÑ +fìº4Ñ-Ð)�*+¨�ˆƒ"4IQâPëR`?Q&£ÑÁß©á‘Áà‡4†ÍÖÏâv”°‹†áð°"Ý!IÅ} ÒFÅãñ4¡é,Æ›¾ÝR$ÙáäY$!INo’bãð˜]»p˜ð¤1*–GËc*Mˆ¬ªù£þBùÝ#G|ÝÛj—åL,›ÿDg'ûÚÁÔ†Xõbïë®ê䊃÷ÖFLšÇ~M‘‹ÆàMV’çíJ„)µ|•âpõ`„¥D +'ñÊ,¾ZYÄ-á×ñƒ®»~ÏØÂHñã…׊´D¸ŠüŠÑ•‘j¾:¿jôÂü…£×s+óWŽNFš#ÝÅ7óoÞ.–5ÕáÿsúL‰á㨓Hyhõ‘fÔº‰Ì«Ìn¢«ªÀp»T4u…²³»4,i––Ôš5[„l9S¡²¦QYÓÊšFeMSéoŒ¬Á,œgdMƒP0Š^Û"â*0‹Î‰âuqX´™b¥8—eŒ�lÅø7Ñ€©¶‰TÛD=Ù’òž3BÞîôIÿ§péž8!Oð§ŽÐô$RÄ”4MÕ2²˜°†ÉèœV•B}#ÄnM+_6}ËŽ}Ù¼íóþŸüäìóÇWÞò‡¯q|Ç'Þy¾éÄ’À¼PÙª¥ÚàøµW1>øjó½†o;›ÞfÇ|ÒqîÒù‹çI7…~„{“¸–‚IW§’Â÷k1Ú¯C¶r¶ŠmlôÒdMiY²[VX;F¢açÞå9hEl؉;œX¥£Z�ƒ³„~+�6ÎI³3�óÈÕ$N q‚Áðp_§è¿�{뜣µXE¬MíW™Íj‹Ú¦«6•QB”¯–Dž¡Ÿ¬å‘ʹl@5*¨0°4ÊÒL¬Ì‚[#Û}†fò ú/ÛÕÛÔu‡ï¹÷œs_¶sý¾ÁIìà8hx€Ò¤ÙìnÐ�) ”¶"ÁV™(¯!][ÂÖehí´Ð!:uÚ‚…€uZþ ›ÄC ëØ£/‘²"Fm(+;ûßu‚aËãžs}}Îw¾ï÷}2ÒRFËÙl^X4EÔ =4‰HQâqT°É±ƒ Äç°ÓÃ=jÂÃ]âÖ€—3ù’¤&É:Ç%†BAoÜ‹0ò ·'·cpÓ¯[r×.ü~XÂíÍüI~¹| gÛâ=Ûó¿Nî à%p}ªt6ó}–XA›Þ«÷éýú ~IÑUIê]úN}qè²>¦Q<–JeEçÊ"qÆ©ÁÕ“è~ÚGûé ½Lù ¡²Dctî(u¼²ü,Ø7ŠûF ñ©•Ž+&\ì$2ÄÒVíáÝ[»'d,}K„øG~}wÒ?³.¨À®ìÎårôÆÜ ÒÚ»¬½UXDqÍ>é|fe ö8c»kŒ©”Ê”ù%â6e%à¢^fªb…&W+¼e½ èá0°Ò0Œ^“DÍ´Ùf*¦XQ½X‘ia2Á `b¦4«0™¸Ä¢L 3 rÛ,÷~UÝ\Êjd1dƒ¦VkΪÙ׺¥ô‘ `U¾†‰õyëêz,É9šUV«YF„è5"9'‚dÅÚI=Rv Åwå +/LžŸ•«{bß<zýܹÛÛÞôÌÛK;îö\°Rð΂òì‹)5ᎷâÏñ¥ºRæþ7åŠîèq‘±ÄòŒñŽ>Þ*’±ÄƒÏ*› ÙÇcþê”áìˆoJJ! ZÃjȼ#œRFy½ÞPðGŒ%Æfe£ñ‘r•«‡8‰óZ5¡5ðÇô´»ÍÝNÛùµ]ßN·²7õßó?Ò?óa~]ý¿}†Á…Êœ«º®Á®i •T•+”&˜`Ì0àÀRÀ±d\Õ€±’A‘²ŒÎ¨À†MÖÄ]uÓ…¶eR/ 3!É ÈŠIKmÀ8ž™éÈ}D\BÄ%<É’�ã„„ÑD*w¹¯T7k„ê0XŸÑdä)oÁ/ç&o¸¡‡=š¤Û“ÐÚItT€]kRðz˜cvs·è$ª¿¢Èºíö¦@ºÛáü¹cIÆÐ?_Ù k••M�ØÅÊhþ4Ãæpu~…vp¾à¥dž8.ñ±Áê�qp $š‹Vw¼sasØtN¶Ãaf|(Ñ!ø´@ /ðÔè€-þçáˆóv’mGë&zݨW¤Ž8Q¡äë…5äw¾ÅNÜ{ô6åWÊÑo–‰sù2\ꑯW2(&lTýc)lS3vÚt§œÀ6“€rSÆ¢l?»Äh\F˜e]l'cÔÜGàÅL(ôAp6û%21S.UûÏî«}e‰Ú;X;~L+š1G² 3†@šÐ.©•>¨]B¼’IG¾°J¯w†Åμœc'î<Y¬¡¼<Sœüá¸äš‰éµcÅ0诙¦;• ÃtX¿þ8ÆÎ³Ñ˜ÖbqÝŽÄtE‰WUð °*áñIå–1” ½‰¾„œ�ó$z½ÄK1±Ù˜ÖD551±Ä"½‚Ña±P¯Œ¹ elaf–;é˜bH6ã²½Áé"ÓEp:¸ÿ4ãÓE°JF1]Dp ‹sÄ%&†û{8qDÌ’äºx‚IÀ½>IŽJ‚ +ò¯òø‡Š+…ŠøÞ¸G¾• `)v ð8”¬I#[Ž<¬ÀXT ‘X%#7KŠs6ߊڼ^æJ’èJP¦Yvüµ—7B|îàx¡.FÀ78C¦¸8å}tiá>0ãКMû¢;Nýì#ñŽ/vý(·dåS/5ÒÚ×[—¯XrâÝ£ù)òO×-o|ý`~Ÿ<°eËÂÿ0ÿ·qÏu ÎKˆlÏø™Âýò/¬cÖUåþeÔÏ©Ü&80[-ò†5d_¶ÇlÓž@Èž‹ðÛp{\ž}–žËD·e¢Û2'Ü–‰$0'ã;Ä£Û2ÑmÁýmPÝ–)ÜÊ¡‰†Î$ðg¶Ú‚t“„ó²Gl¹Ëî³ûíA›ÚŠ\!7Gs^¯Ã¼ÿo¸Œ‡—·ÄpÑ"3¾‡ \kØÍvßÇXxMØ£ðsÔXø0¨Á.,Ľº¡ª¡p«ÖË=RføŠ O}IØm8Bˆ²ðcá îykã…ç,´ŒÜÔµs7¼Mk÷½;§kÁŒíù ò®ot>±÷Lþ=p(Òì±Oè@Ñ-•“µGƒ¶X‰˜ˆ$+”Ü zåø‚O5Ê]Í|®öo×¾ÎWkZÊjô5†fÚs¬_KhŽÝÁ:ô§¬/zÚîdúJ«Ó×Zio&A3÷2åöŒ±ÌµNYÅVë\F¸‚ª^Œ@M³O*RfÕ£ªUɉýÇzÑ8`¨�Á_“HMS‰¤ZjLUÔé—@#Äø¼ªxjô=5’Ë#b¯éìB|+_âë°õG +!˜RÈ,MŸ”ªâš½œÕÌŽf³%XB2Jß©…Û-Ê–¾˜-ÖW°:µI¼ÅoÕhRC‘TŠfüÎû'¡m7^»T¸y| g×À‘W{d?™²gSáJþìo“*â>sú̹÷OŸ‚/ÔSXM«AŸTEVdö¸¬G¬/X-MÇúcr4ö9W¼rFpFå—*»b½11Ü™ži×–¹:‘5ÚZ×j«3¼62û0pÁ¾0éêáÀpÕåØX,§I+œI'é|k©õ±y£²`™^ª¨*ªð˜’§¼fÈ –‘1ž7v4†ÆNðm×2¦�Ò°‹÷wÆ Ý§ˆ%:;¡!ÎZ\l¶ñ"ñ×Éu¾„$ ‚"}¤ŸŒ%iÒF"êª1A5&¨ÆOq‰)‰ ³ÀߊÁˆ¸ÄÄ ‘€+)6×Û$Ùj=$ÄVþÖðý˜›íÓè‰Qk¥¬(œR·\TCÁ€,í¯R‚^ÏÁƽ/ìZ³ñÒ¶¥?xÔ{hÓ–_¾ýâ†Ã…Õì·ß]´è{coü¼p÷µ§ów•ƒgOž>úÔ_çV+—CKª ³2{L9)Oµ—[ä.ž¦Ë[Ê{«úªXÊŸŠ¤«fÿ—ìêmâºãï=ŸïîϾ;ÛñùìÄqü_šÐÄ! P|ºP:-+04~))+M`TA¥ ZúM´R§R¨h×±Jø)±¢ èø#m€ +©ˆQÔhUŤ –dïû£´•ì»ïùîùî¾?>?3£óó£ËË¢Kc}±‹â%ÿ-ñkõNXŸ@ª]ÑBšÔ'ÈOÔE¤‹\Qÿþ*ôµu+ú?¢aÁŒTz$Ÿ¬XáL_#Jëú 뚣-Õú4!æxX:c¼zšPÄåè‰v-ÄÏq"…Ôk!È5@Ÿ@~y‘£Ç:#õ¹t^º.JB5¹ílS|’#°PJðÙ•„/Ÿg«*¶®¦0Ž%;{æ Ûãê4•Uiêƒz°Á'É(@qÌ&¦ùÆUÅU›ßõôÉ‘¯ùÇ‹gzö×ìß°vß§/üjïH‘§´á:,íyiߎ{3\üë/÷2+ÍYVs¦Ô°.à¤Pfó…•Â:A¤†Leê Ô‹\2öð‘@ +ͽ)c9à�I%áçè?$†qZᅫ1ŽhDDßS¼‡‘8Nä·ù[Oßž2f¹©wÞí½É’©ianä~®ß·å4$ªw–5)A^$F/ï™ÖU\¼dÚcMYŒ ™zfMþ(ÛZ\Ú;|²P½í:Ȳ0Ñe:›„D01™Î¦3S+›éº-µ/ð‡Ú¿¸¼ÔŒ„͉OÖ^6ÝQò4!zVÂríP:<j‡·[î¦ÝJ·§[íöd²Z6“ʦ&LJ-Rz–g–çÖ%×¥úR;•÷Ô·s»j;ñCå÷êÞ쇹C™3™P®¬Då YRå Wr‡c×@,©rPÅ|…ãµ,’³iU"ñL…à©«Š#Ÿ8 «’_mvëçÖ§ÖyKÔ¬jkuݪ7,bdµ©`}ñ ¬ªA¸\Ç&:¾ÀŒÖ1Á óƒ¡æe÷Œë:ªVW‘ªÊ +I€Ç€E,¸Å€•užêޤ,'.4Àòz;+\Ú´X!è++8¬²¸q´Bœ¥‘ÅŸI©<[z¸²åBçá.°"ã “/Ï)îEù¿UM6_XÚpªúHƒŽ1N¡pIïò–‹—²Ì x�"žÒ8�küñ´øBÜsâ7|T +‰ëe[k=LÊ`˜ ù±¯Îv½m\"ÁO=öœqšxˆia¸¨8Ôão©/9Ú|Çš}XÏ›%õädŠ%ÝÁÚŒ¡ûõ€îÞxÑœÅî‡Ø&d‡5¾d%’^Už Dq.KÑ¢¨Z¯eëL••6à@í¼½uëV4ŽpgoOg 9T‚šl&[Gš +“šKÁfŒk± É´™#%²Ï?Ó^Ý´yCSzçÙwÛ§?’kþ–“‹ŒêÚ®ÍÝ¡P}tÛç»tÝrþ +~´òÙÞ3M†Ó Olmkݘ«¶gmZž×1¯9YYPRÓ7w,zÿgûaNS£ß‘¼û]d¢/#…õ`2S PÙé,è³0ªWÁ.Ò©)Œº]MO öúÓ*•äÇéãK¥ç¥>éMI@L9í–H§¤’(YVI%²æÁw€YRÉÕK +º¤É€ûY$ŽI³’ª”NnÆ“®üIeô;Äô±~~¨ÈB@x£±Q?¶Õ¶Ó&ä/Ód$¾73$KAH=Ñ#?ú‹ÕµÛ¶:|8`çb¼¯O[±‡,{ K«G^mxçœÚäè%†e7„»{ûqa¹¡fÄ¡‚OÛèì�NÉŠ!sƒ¥ 5†ÒaìD„{“»Ó 0¹í„˜¾ÍþÄäþÄxçþÄä†Óâ…|Œšø”‰Í¶Ô¨¬IäÛy>²;r 2"jš> ŠÓôh™8èâ üÎT»RøÎ”{JàÞ´Íïù Ûl¸†~lBƒ@Þ‹SKÌÁ‡("è>¯æ%¢$‹²[fFDP£È+Q6$ŸßÊø—iâ¥É²â4¬áa &Aì*n¾´do»îðÏÍ»cÊÀ{³~ÙÞ´–¼=|èõ‡[çÎc;i¹•U‡•Èu›UGÁw2ã©gÓ-#E±¨ 7•ݘ¸SÐ~îzûÚ ~mµ°<jôh“£„Ñ¢�¾{ÊlfA† aHwˆíñØž]ñ¥Cc5”c®;i"]@!¶aGWsugM€r4£´ &ejUàd¡ü]‰W’.¹‹n@ëñz²QÞ@×+ý¸Ÿ¼âzUÚ.ÿ†þ½CßRö£=ÊItT:¨œCg”«è’ò úJ¹î*µìu”0 +)9”Qš•vä(ÔíøC7k•ÂA‘¿;e﯎@";”QAC!ð—³þ+q»U+[ý5›å†}íAÕ‹¼”Q§Y‘d9M• ¥ +r„Icö +“,²L%…ºv׫XMÈŽãÐ>Jè1=ì¸ûÜÄÍ"‡Æ‰ƒž;‡nŠXÃÑðÐÍN 6ŠS.‹ltûÝuvÿ–ÓýuaØ-dĶ™#ozQçÂÜ™“šÿidõŸo¦«Ãö7ÇGž2ÃÛVyê²5ë!÷QÖ~¡ªÔÇ‘”)G‘•8æ1.¨^N±·™De‘WK'N øt~‚Q+D†ÃÃ…‘ÊÔ5– ¯*Â@©&‚" +e 3ëê—õ‹ö t$gŒ`¢lƒ8/LPÈlc±±Ãpq^¿c£78 +åÀ�Ø¡Õ5½²*pýs´:UD•Ä(µün ¢‡z|²_GWPª”£ž*æ`ÓR^¶}Ô$M–§øfºZEGš#?陡µ³ý‹µyþg¥åò*ÿFñ×Ò:ù¸xB;âÿxŸæ<Få¼Y_NËúëƒ fÿzùù×.õ#ü1ùسO=ŒŽˆ'|.‹Wèmá¶ö/ÿ]ñý?ÙUÅq…gfïöwf÷öÎw¾s8Û›©ø/—°@ Lå) +$)àP76i¤Rhª´¥©’ù1à�„ H“’RÉ---&%µ’Côîúf}’ÞÞÛ7ÿ;?ßûÞ›„&òëþ›ùoÓSÿmaWM°‘%Kr•D«L~3%ÁÀz•ÑWø“×ÌYÊ�ô=èßÕì„DU³Æ¨)knàIu¡µÂê²^±TK �ùq̽Îúammjþ<Ïø3ìýá÷!Â’‚ŠªÊpGQ™e¿·"b–o©JÍäû–$'%˶SAÉ %ιÊ0Ã0e¸î¤TÙî(8b)ˆ`ÉÈÔÒMßž <.Ë’ÄMǦÔ4‘êÜd^d¬66‚чßöÔd›ŠW©›T¢ö‘yžÒfáUÖ&‹X<§± ^\ Æ%€q½}ßÝ\ê‡D±™CÙlâøs#ËF?±,V|`é¸hu–ÿîžy¿Á}Y*»MvV2YšOsi=0jNG¯‘Ô“ädá*Ä´W‘Y¸Ø‹êhÒŒâGŠ¿Lë†9`qráâA©ûåsZÔ?±À/½zPJ—ÚPú€_ +…PƶºxHªã#BãÃ_|¤_‰ßÏ*\=¬&IÄ+€6ð”…þhýGm?raE™¢3{ŽS á*èŠÏ'¡N*•Bµ€[ó'Žï¨ßûîÏ=Ú“ï=±wì% ˜7¬É·s»>º@–Þ¹LºŽü÷÷À4üпiþKÑ…)ÖÄ�QD"€HêGä´6åƒÒ*ñýµ1ˆ¹"÷?³cîº3°SÞmþ”žžOKQ…z·T)a£”5âñÚKø‡š\kÏd¤ŒÖaþïRwiÇHŸþö¡ù;vYø£òãÏìºjß5.MG¶E£"g7“§¨ˆˆT•€pâ$� q÷–Š¢ ÉŠ‚EQ ù(øsSj0 ‚ +bh‚ÎT‘ª²sèœBXR„çlT那낪(‚@D¸ è:RÛll·õ +•.•ž +žá˜'Î7‹‚ØG¦xfRØH*Ú`/[¬.ÿ¢švà+Øu64øiöKxæ¾"[Dkö»ì,âÓ§´[öQ:üÅ¡›–ÓEPôšÑ2Wãû•¹zE‰+€ðü¡r—qŽWÃ.®(w/áÞõ8™l'J €Ã©/á®§R�LñÖüîO~õµÄ¸ªÃ—ò?ÂÛ¯\ŸÿŒÔàü¯×M®¿“×sã™|ÖUžBø0RŠÿSÄH™êPA1j‹šòlšÔ<=YÄJ¬6Uz¥4z¡4ƸâÀôÝFü0M`ʱ2áÖ8í´G<ÃIÖÔ50þ’tÅŽQ»Z«Ö«&½Éh4w[Z]šÉØ™P&¼Ì^Z^'¾`¬³Ö;ëÃÛŒW¬öŽÐËÎ.õí$;awþ¡þÝùÂȱ[N!ñÀ]DEBZ" ÓT ±‘éûóƒ3ÈqÔL©Î€+!rˆ9¡P•:¡:a•¦:š¦†l[×5‘€,Aj§$ÑG&¡°žÓGæzÚDÛ³ÉÓö)›Ø}xòQŠ+ÐԸʫüÝò’zÞ¦³õ‚Nthq¸–ÂÞ‰½ñd#l^®®‹�"HFÙÐ@Œ d;K£lÐO¡(¿8ÜE”HM™EHuûøÖ3m¢À6'^¸´Â |?×8…¿mvÕŠf×+;vа[D0 Ä0�ŸP5q›ùs/„Wqð&g¸ôôkLP˯<s%U1*u7¿bÒ躮ö†ü3{YÍèø³´,P“ÛýüK]/gï|Ð393‡G95À=ý€+÷x†ÝG~+?l—4�‡~ì)ÀAÔ +¹3ÞHŒ%5J-s±«¶àidšÜ¢´±…x.™+/Pf³x Y"/W6àµòe;Þ&¿¬ÜÂC$“Çà±rJqå_Ë—°Äå7 WBú½JÛÅd¼¢YU«0÷G0øE‘,¦`‰êb<U|ož2UÒ‡i/8à x‚|!$Ae„WJÆ/LŒLÏ\dn6ÿeMÞo4¯2×"u#Æ=·¡U¨€åÅ(FÙÚrN©YCÀîé™låxb ņøáæàš’J³ëpE¼nqŸ_5™y6gè{?ƒÓ<2‘ ¾»{2ßKÈ9Æw‘o¥ßwfpÖ?{èƒòM(ªÇâ®"GâòàìP‰ë_»ÔˆKÒÈ=b©oÄbeycyKMõåáòÖšŽ|›ðÍÜ{«Ö-Çÿ|]Å×_Ì=µAyƒŸó|òP ]xEÐ<Ì'‰kN$`$Sú€>N‚“»ê™x,©ôë¨ßI +}¤ÃÓuC/b+éÜáG +iv3jgå€U¿Ö B,š 56Õ?¾‡5‡EÿrVY!Î_¾?½uýÔ©•“¶7y[žL¯ló:ÉC¾SÙPfϚПnJ,oæóƒ`›¼:õ³Ïü4M!ÇeÄ{®U?ÈõûÕ¯ÝîÉ=ìCVö¼ˆôX~šÂÐížÛëÙð8÷ýŒF±XDÜ9@.¡§kP¤E*C/ÛQîFÈ>ÔÅE(C^`?zÚîƒü$ÐÇy_h?äo ivÒbÙLÅ sxÚ¾Ëû«ù8¾^ƒÈ£Ðª`{!ßÛ<–‚¼ é=kèÑE+!ÿô;@¨™·>;Å}h”ÿê—@Ù› ; ÿKH/„~uÅ´"ý�Ÿ¡|,Œ³½¸Þjá=ÔXSøÖ’1g€|¾1ô4Vh=¤ŸGßÇç{ 4Úßïæå õtgÔO„~£!¿Ò¥04)©!û ]ëŸ?¼nóè[|Í#k‚ùçôÿ2<ÇÖû¾ùJ⮃Vî›ÛWeËW¤E¨Gÿã¾üc«*Ï8þÜsÞsîÅh7 +AÔ¡€ +”˜:´«€¨ `[ƒÝðGÜWØüf”U¡ 5¥AÄ + k1à„M™¸Ln`fV6'[6dØM7,ZÚ³ÏóÞsÊõ¬0÷ÏnòÍ÷>ïy<çyŸ_§Nƒ`ª³Gf›%½žõ‰«ÀïÔNW›*™Œœ@ÏéÞY©2¸Éâ ݬ’ÕîQ¹‚gøõ¼GöŽËHçï2Ü¿Xæã_¥ì¿�4°ç߬?TÉ-œ?mYZ–rÖG‘Ô6ȸ×iœuBãõÓÁî¥Ü«úpþHµ¹Þ{¢¼ãJædN¥‚ñ/[ðîꓺF׳×Å¡6ždidNvýl@¾êÁúYž½É>ÀÁp4‚4¸ +Ü�†r¶p®kýŸQß´þox»°!ºYŸÍ¼Cƒ½ÏL̬ ÷Òs.ô7J:Ä…º§Æ‹ú,º¼í1¥>±õï´õûõ=Õ§:™Ø32Au°1ˆoE¬q‡ÎõN™ÔÂ+ñãõYÕ/bµ‹úšµ 1ò¸¬w-´1»"_ }½&âÈ|·¬eÏÛý;É)«e¢yP&º?’;Í?¥Ô&#¼BÆxænvZeZj§Œæ.§ ?ãŠdKâo'ïÙŒ=[äylzŸiq.2- Ïk{’Øí5;óìÿ.Gbg晲"ûÙ™ŽŸ œ}^39³9øÀk Þg™ÆD²5Q.ˆ˜ñŸ€jpiê²ÄŠT:ñj²Lr}‘£à»¦D®òJä«f'÷“Ož'/óþ*¯¹u²Ø´ï&ª¥Úi‘…É|¹Ã©'§q–³Ojº?ü½,?ú”ÏÅ})âÈ_ã¬9?ô©A°Oüí q0Äqp?ºŸ,ÐÚ ùÙÖr4X˜ñ×à“NÿÜ-/ÂODþóÓtÌ?Ïûeœmm!¿GqŠ‹£÷×ü¨9Ns¤æ9Í3Ñü8g_â4áÇš‡÷ÈŒ0®/ +1 ßcŸ<Ì}W?>Xïo 6¸}‚ ~ÿÿ�¼`=ï=·³¦Þt„õtXTK3ãrNTG½Ñ2;Ìgkm¾9"ÏØ:Znõëáo’ù^÷N´ú®c{¢wÚÜŽÍWÊRÞ£À]D<2*Õ&ö.Dúi]Кè.ÇÎZ‹ê¤Æ}~A׎–Þ¶^Kºï¶cÔTeó*¤Ño•"SF®Ý)UzWúªÞ}ê!é•Ê'O´È(ócæäKOæ¶6(‘õÖ/tmš† +[$ï’$>;™9ºß»¦Dú„öXkma×Ó‹¨«-ØÓÏ—i¶Ÿh•¼2© †Ö$«e ݲØãEÖ•©.¬ëoëõr¹øª%7Õ’sÄúÿŒ Ímæ}æ’×[š¥ŸW ÓöÝKM&Ç.Òøq›äõ9yXû‰å²Ä\&×ùi©c¬Î#OrîŒ=Fü»‹Y?(ÌÛÂÙ‹×µÅÚËh ñ’,‘¾~µíÄê } +织e;Ijñ㯧–c‡Çe8.Mãù`TVžbiv,7ÉÝ\ùŽ;£åN8G$кÍ,ï˜r)rG»½e¸ù-±ú±<çæÈLó–<g^•¥*›¾2ÔÝÌûo¡·Ôñ·åfwÞA^!3Ì8Ö×Ê3Sp_Æ÷~'=Í,îšuÞ“øÉ`Öa߉2Ã-'¶òÿã`£Î³gl *f¢·ë²`uÓÙ¹·šÄ¢¯þÿ”¾èÚ©g¤ã)ô³ï©û²Nç˜çdvÚ.ÎpÇT§NšÁjçò ÷&ù~bC°»Žab¶lÆ$#ÌùXÀÿËៃM™ÞmŒ¼gï×áWô»@á\+c•k�+À¯£gÙÐsN5ž o@°ýSòVj H ¶+âó±óXÎk®¶+ðÅI +¾ä%–<wãç³.&{ˆ§2Ø•àßÝéôYàW˜eÇ’ìwŒîþÒçÀþ,¾@9¬ gÛÙ‚û¾iíû¡äg|HÎKìöÃå‰}’ë>„äáÈ}#{F÷ÄøÓv<vøŠ¨Íããq9~¯ÝÉÎ+23‘túÃ2¹FaŠ™ârj·\£ðßàÙ]e³¾ÌKÝ•ª>8¤«ìO‘! +g0ºö×5Äè”ß&G�k×÷’ +]…³…ï5Ðù|Œ\§È²ëXµ«»2ó<ºŸè^â÷ƒ~%f¯\__ O‡'Eœ³ñ¸E¹äTsb±Qxº=ÿŸ@ì¼v7ÿ×g%_¹ÀßORLÙBr›Ôˆ´“KNŒëÈC·À¿gŒêÝ1ôâoƾ ?/ÒvŒÿ÷3Þ’Aà˜²:ì+ûi¸6î7=³¾íW"Ÿ›2ëÛšÀ=üÿ ž·ý ~^ÁüX÷ü‹Ìóö™ÈƒÈÈ÷‚[ùÿœ_ú‚>¬¯Wh?Òå;ôçS|^¦g¹=ÁÛáGãߟ›£ûì†ãßÑýwÇ^ø-Ñ•3và›é}ú¾ÍÙß>Ÿõ1÷Ù‘ S´ÓSž«}´ö²Ú?Ûþ1dûýfûXÎÉ‹}zhÿª½³ö¯°î¿È÷¬>eèu»Õ+¬Ù¹5qT@.rš9;C‚½äžüûßFkÈçò‚·©]9Ôº×È»Çà=ÈácQM‹rk—ÛMMû¢å3‘gQS‹BÌŒátã®q½"^‹ÏÝÕ姩ÑÙuú¿•£:¡Ç5R¤H–Ûñ¾´KÐÜ]Ÿ{¦r¼ï8c9Ö—Dr]žÇ}/êgúKÿNÄâîL¡ßfëÉÞ?Ò!ÇñÊØèºl††5´‘|AÿÔ¨`cóR'¤(õ’!oÔÍŽÀUú~!Q'âÚ‘ˆœköع·†¨êΟã~«ý¹í±™ÍƒO©þ2| ô/ƒÙÑ]ë7$g¿ëPuõ;×ÌŽ™½ ÖvËcä>ðrr¹8ÏïMÞ.‘õü_÷„{’ß§‚Yäò›½]A»ÿˆ3‰gã̓2‘<?Ç´°çà—äôÙ¦Cr’çÊ"jg 5tÏëY[‹œ÷K^ kÙçUÖ?¡5À?B¬ öÐÚÁ¹åÒ�ÒÌbŽÈ3î9RÊ>ƒÍɹÐk“;´^ù#XCÍcl<Ôòe*¥³ß85n3>rˆµÔ'Ov¸“e‡Ù(÷³ßæžMÒÐc—4¤ªd|j¾ÔûMRï®’ÆV%Ÿ”Uþe²H÷ˆêªÖÄè?ÍT"9ÐÖüÙÈýC¾6zçxO`õ«”©ËÙçFëRã©¥GxÎV]»ëm¨ñK@ïaàãñóÔFNSð›ËÝa¸³æ—K%z«Mm+eª;ï>ézþ:xŸ|Ë,¡ãºDga—öÓõBQoÂÿ +0QïÙB¤¯ú•õ¥Ê¼Ãö¾®×;ózÃ9zÿÁ6µÅ\æ;R`>øê©À¿ +Àb…Ó@ŒÎ!VðAó4=S“<‚¹Á:»î^»®ÔŸŠÑkç4OB?‰à )“%ØKïÏɶÁÿa½\`³¬Î8þÿÞ+-—BKYÛAa£+HÇÅ¢0n…•Rn…ÒŽË” ¥‚uB˜C^p©Ûç/ ZÜL`€ÅŒmN\™.3HÈ€@·`3Já{÷Î9ïׯ_o1ò%¿<ß9ï¹_žç±Þc_#¢Öo9ÇTÍ}þõÅu”yg8ý™/çs6áþ“Ÿ1£æn¬Z«q¬—ÂwÌ‘šÊð[{”è+®›)ëD¡?Žçµ# +Ý}ȱ¢~ù}]Oî]1÷5OÙçí|‹ìn¨"…ÁÉH=-•º`]fþ?i71]…yÖG¸‡ëõ8y€<Ãy7(NP+Þ—‡ ‹«&ò-~?Cæšÿ½ôæÀEØF vÅÁrÁ9Ò`=ϾPabÛ8öcwåýK€uú›~&9?àkÊ„DXWìàD˜/ö;‰˜ü¬D˜/¶ æ´0ŽÖʵ6ŽÖòsa~î-GkíöM„ù}Ûß”D˜?å+Œ£µuÎI„ù9mŒcz"ÌŸž8ú'¾c£Gù6ÝKû±‰÷—h§ÒòôEÿÊÿ|_•&ý±)÷²…¼H®‘}^°€eªhÿCv‘™DÓö„ú…ý›É�R®û’ºÑúo…é3ºO׿ùºo\:Úƒ\Ðý©¾Å÷ÖÑö%[Mùõ¦ß7ôØ£›ËËw™£ª÷F#Mfñ{oÚÒF¢ÐoÓþŽ|BÞ%ÇÌÿl³2çƒÒV£_Àug+ªÅJ¬ök�³ÃTåsßo«”Æ`œÙü]@ß7ù^gêWP ºA|¸»X•ßèV06ú„ZAé…³pwéžÇçAL´PO¢¿eί1_Ú¿-šÃÞ€i¤Dbý¦ÄÂ)ô¹UÉû•~éÊ2Ý‹ï‹8Â7Ûzw:Š?÷1ý+Îe;uêËpÄûŒc=JÆ«ÞÞŒpŸDQø¶õ–!ÉíD]`lÇ%õd~ ãîLLª¢®;…®Ùð°ïØ:øèÎ|Ù3*½(W.ʽ¿‘G¦ª1s¼ÔaŽ“G=FͤâõÝ\“ +5žé?=pìÇ÷ +c÷dô÷“¨½c}R¶yŸsûÊ][û!v rýûp»[…\·Œ{”GÝüo®ól$‡–¾ýˆ¿¾;/h vÛî,Qz1Õ©E†ÒŒ]1¶Qƒ-îã¨æ™”¨kBÓ®Úã²°Ø|h%~ÆæolœÞPëÎüb'yn:ÏuG3kÆä§c7Ënõ¬Å¾M»•ÞÏQêN㺤¡Ô©þ$dˆ>ó}¥ë–IŒv¿¤-E.ÏþsßJä.M2w|ó?"{õ}”û%ùên2ïæV“?YM–êïò-X«ÿß¼¢ÛWßVëò7yƒj.›%zÔð©F½CúÄëT¥Gµ¶njcº^ŸÂvm‚þlÍÊæI‹éáPO6·›i—„iê¼OyGŸcÝ>Äut¢eÙ¨QÖh«´¡ØÆ¾&gM´^¢éêVlkú5NÇê{Z«ŸN°÷›êëölL7±A`Ò]bz½=[Ž$¥;õŸ¥?¤ ÉO‰³^³÷S¼U{ÛèXÑïÅ¢¯mÔ¢m çNðžähJ¹`o–ðIÿ¦ß*Þ/YtèHpUà˜ŸÐ/ê ¿ì 8› ®*äíÖÞ+ì—t¨ñk”þo®|Þà©ÊzÛ„*Cð¯6†®{¸Žáºpn8ï%±1‡ý›v¿î>~Ý}¹UónkìñðNž'¡õ„ÇÍýQ\ÕˆbÙ4ƒÇu=LjÉ Ãfw%‹÷ööbž'_§Ù9x–oSÁ¤å. +•Ÿ¡ïßH—5˜ÛÒúø‹õùóûéurp¯Ñ^ç9Îâßãûr’J°]ù‚rô߸+÷|ˆógT6Õ|A)ÏM¦Ü ÆI—廹+Ph½¼æ®¢Oø,8殥 ìká¸a›Ö~ÁïiGªu7i÷Ä÷m¶ eØßr²Óèmѱh¢u~ã¸BßkÁy4 Stƒ3™J¿,EÉ´ëùzsXoß‹ñ3ìaÔVÔ¢Ô]�Òœ3´šÎ\—{wÜýÎÃ:§ŒëDD©}:Ê åªúYÆ/ö—¾ìÓÿ½z–ã7Ö[/m¸û±Jt‘Í…;ƒçb&ËÎþno¡-2|Aäx˱ÔZ‡v%òSÔ;éÌÿ yˆÿ3hSÈ\ò2Y‰ÛU~ÏÉu–'¶Ãôßh]T|ëKCµF¾G +Pa@5qÛÓåN«:‘¿¨¾*ì¶Çr_J6…nþ{üþ4ë¡a{‘zÝ–ú–Ij,ãþ…É•(ôÒȆ ÎÔE.a´3ݸ§ÉÜë“æý :ê}ÂÕ +^eú„µûŠ[ƒ:»1Ö}KÝ1èÞ¤>ø„çà,F»Ÿã%w,ú{%Œc{!gi‘·]¥³<¸ÁsWjNFvs,qxsžô&qÁûÐZµ„6R¦âx¦õV«ß¶¹kJçúñïq!ѾHk,wÿg¨»½´Ž“7T”«È}(¥oHf™æÏäyÚ.gËhAV öZÈ»6neuV ²MÝùú]¬!Ï“b¶û2ß1#…ȵà!.]'Üê´ó†9w’1ü?¦yšû™oh²·Þs¸KpƲœ0ìRWïu{ioú VûÈj!½–ﺕ|JÝìöÓÖ~ôÔyë×<Í9}_ˆÍ»½tgž-ž·Ø™nmþËÑÈ…Œ+G¼šà4ÓÉ&úׂƒ à·7^Û`wäÝ^Á7èdähN߸Ùô_ÙN5Ïu¿niôMâéçoHŒ0ñ¯Ší6ˆ.µ3èÿÅ—Q+šöåT$õEçÓïMßçÞ2ñµâSUÌ •wýM…øë8†Z7´ŠœV@|‘ݾ£€c,PVý·ŸR€$k(ç²Yc§Ç•Oê¢}– ¶wHüã¯öW½ì,í¿¬µ²Î°LÈ5rù¼oi$æD÷¨Øt]ûIåé§å¿¼]Ìû)Eî ýÅøöô’Ñ–µ öphÛÓ…¦N©Ó¼ü<”:'yN¶qï$&¿‹ÛÜ9è{wCeýÝê½RÄï¢Au¾Ä<‰“jŸ¸GeÔDõˆ$¾œÓ(•½uÇ!Ub×é(ù0Î.Ш8-ëx‘º,™qwªêƒ>Ží§óœ^3ã”÷I&Ï鯨Û/|Ë…o `”ó*vØ÷Q A‘‰÷oŽowrδÇÅ€þÁ“³Fã8qÐÿ9'衦J*1£jêBøÍ¯’Vɳ€N«.å\‚-Ó5µeRIÇš>èñàK£C&ûÊ:|“ª®ç‰Fz±\ŽóÛý¾?rjro{”ÓÉò8¶ïþt£u¯#‡4ùÏ�w,†õ†ŸFp#Ï£?�îâüÆÞŒ£ªLìE€Éìs +oË4Žeú `&Ç>ë:0{PÎ9Ïgä¿{âÿÙòð(Ê3þûesl"‰x€ ‚£¢‚B¢A‡" Šr˜¼ÑÉî$Ù쬳³ ñÄ[o¥JÑâ]¨÷‰¨à}Xïû¬míemKÛç±µï¼; O}úg¿Ýç÷Íï{¿÷{¯ï˜Ž_ØçôFÓPƒÿ(¯Å·ëP‚ôEæ……ƒQ$} ®`´1„¿µ 9Q¦½ AÄc˜‡³"^(:ŸF¼CðuÄ‹QÁxÄK°šý#G5×E¼‹ +º|•¬,XFª¿Ú¢}#N¹/@IQ:â1Tå"^(:7G¼[ˆx±è¯Šx Ž+Zñ8ïñRL-îòUÎ9Åb™…1ñÕ§äUåa…ú–¼¯¼Xå_+×J–¬Wy¼XyiXÃxÿˆK ã#.5Œ/ЏÔ0~MÄ¥†ñõ—–"âRÃÒ!—–Žˆ¸Ô°ô«ˆK ˺|I Ë–+/ã,Ÿ®|«0¶ò¹Êû¨¼Yy…r_yß0¶òÓ•o'|ÛòÅÊ·Wë•÷S;+•÷Wùjåuî³Ê©Î›Ê«Î—ÊwVþò¡ªÿò½B^Q¦|¤ò!kü{(W_5!ï“—OT®¹TLÇ +X¨AµüGkD+y΀‡´ @'2*™,=_xØÚ"wU£RF&!%õ"k‘ù²Úsäéˆv»´IÑœ$Ü•¹)kAN˜-²}Õõд6Ò““ÚÌFþ-ÔŠåjŒ6L,¹HȨ'ãšÅâð¶67³Rò_ÐCo†T¡g®æcÍ=)vÚ4šù"ýüøº…VÓj1?oŽô\é…•²Ð ÌÖ^ÞsZ¤UjÁRÛš‰%¹zR™´ÆåªvåŽä‡zÝlŠjvh¬-ÒŸ%¹6kÃÑ‘º:š¢\fêH«HµÊb„Èf«'_G\aƒ´9Í(¿–¬ÀXŒ‘58J³±´¶òÌéþÉ×(¿Ík 2OÚ¤Ê3꯳»R–H|)ˆj”ÖZæû¶Zʨ÷6yWÕ›ÔF׊¤¢<ÓÝQägtÅá÷ÐÍèžKJÄ õ‘¯G‡ÆVdÓ9äû¡nB¼å´"I=QW"œ‘R6Lô‡Ë3ÜMQÜ›¶þrß`=Ù½ö¾î¯®µìÚ=›Ê çÞî׸kf’Ï%P]û2´ŸÏ5)’ÍÜÓS·¥`÷Zu':)Ÿ—°ªèåtfm{÷nÎÛ 5S¢±¥=T¹Âª©®m5¶:Ö/íÇšìùÏ·×KWZ“R)«Þmi ²V½“uüv'Y9ÉwíT½Ó’KÙ~׬:Z‘´n®ãge¾U[Y=Ê6ÃMø^Ök†«VÏÁÊš*›Ñ˜7àf-Û +|;é´Ùþ|ËkÞll–›¶›“v'i5vàÈät²Êó-OF|+áåÒï:ÙÊÍé–5†ÍßîpÓ-Ö¬æf7áX#z¯I¼Ìt^ÊÎŽ°fÛb.áÚVƒK'% kÔØ15Gy9«Íî´rYG"’š½t`ž•t³™”HPVÆwE˜GžvÖÊ8~›„¡7uj")ñ™MÈ@hÃWiÆ÷’¹DfÛÑ*ôð O7Hå’²&VW^:Õi s‡[N[“Øî¡Þ¢wUO†ÙûN6Ì2,ÏùjG¶ÆiFÃ\ñ8ma-}W¼&½Žtʳ“½‹`çS—åè^/dr•tÚÃ2‹N«“Êô®P¥ÜÁžžm[Oœj–Ë®=Qöíoõ–ïË¿a“ž¸dliìžØc±µ‚‡c«c·›¯óU`¾ +ÌWù*øï¿ +zݽ¸{fScŸõÒK‰ž·²ÞË›±™ÎžýÂ!…£ +-œV8AÚ±½<¤Åîæ¬Ì”¶]«˜?ë¼›7Ä kÞu~tØ[°°i^�ý}¿'–`¿òZ€¢C!ŠPŒÄQŠ2l…>(G¶F_lƒm±¶G?ôǀ؃°cv–úï‚]±†bwì=eçÇ^Ø[î—‘²Uz‡×`ì+7úhì'wÉXyOŒÃxLÀDì$Ãåö›‚©8Óp0ÁtŠÃäî›)wÚl.÷XƒÜ{säqŽ”ów4ŽÁ±8óp<N<›d„û¥Yßp®¼gçKîmZÍNÒ›,¶ËŽ] +v2NÁ©8 §ã,Ä™8g㜋óp>.À…X„‹°ã\ŠËp9®À•¸ +Wc c¸×b)±×áza9nÀ¸ 7ãÜŠÛX,ïì•,Á¸wán܃{qîÇxaÆj<‚GǬÅãxOâ)<gð,žÃóx/â%¼ŒWð*^Ã:¼Ž7ð&ÞÂÛxïâ=¼ð!>ÂÇøŸÊÎú_àKü +_á×ø|]|ßá÷øþˆ?áüßâ/ø+þ†õø;þ²”eøÿ¿ñ=Á؇å¬àÖìËm¸-·ãöìÇþÜ8;rwâ`áδ¸wånÊݹ÷ä0ç^Ü›#8’•¬b5G±†ûp_Ör4÷ãŽeÇq<'p"÷çœÄ9™S8•qæ!œÎCygp&gq6g=ØÈ9œË#x$âÑ<†Çò8Îãñ<6›˜`’›ÙÂVº<‘ó™bÓô˜áIô™eÀÛÙÁìäÉ<…§ò4žÎ3¸gò,žÍsx.Ïãù¼€r/âb^ÌKx)/ã异Wò*^Í%ü ¯áµ\ÊŸr¯ãõü—óÞÈ›x3oá¼?ç +®ä/x;ïà¼KNì=¼—÷ñ~>ÀùWña®æ#|”q ×òq>Á'ùŸæ3|–Ïñy¾Àù_æ+|•¯q_ç/ùßä[|›ïð]¾Ç÷ù?äGü˜ŸðS~ÆÏù¿ä8®ï!ý²ÍesY˵jÙ¶mÛ6—m,oaÙ¶m›«¾ßùþˆûœë~<ƒ'ÁÓàYð<x¼^¯ƒ7ÁÛà]ð>ø|>Ÿƒ/Á×à[ð_ð=øü‰<�@FèPËaá ‘Q Ñ1±'Ô<ÄE<ÄG$D"ü‚ÄH‚¤H†äH”Hj:R# Ò"Ò#2"2#~EVdCvä@NäBnäA^äC~ü†(ˆB(Œ"(Šb(Žø%Q +¥ñÊ ,Ê¡<* "*¡2ª *ª¡:j &j¡6ê .ê¡> !¡1š )š¡9Z %Z¡5Ú -Ú¡=: #:¡3º +º¡;z 'z¡7ú /ú¡?` a0†`(†a8F`$Fa4Æ`,Æa<&`"&a2¦„š…©˜†é˜™ø³0s0ó0°‹°K°Ë°+°«°k°ë°a6b6c¶bþÆ?؎؉]ø»±{±ûq�q‡qGqÇq'q +§qgqçqq —qWq ×q7q·qwq÷ñ�ññOñÏñ/ñ +¯ñoñïññ Ÿñ_ñ ÿá;~à'C1 HŠfh†aX†cxF`DFbdFaTFctÆ`LÆblÆa\Æc|&`B&â/LÌ$LÊdLÎLÉTLÍ4LËtLÏÌÈLÌÌ,ü•Y™Ù™ƒ9™‹¹™‡y™ùù° ±0‹°(‹±8Kðw–d)–æ,ò,Çò¬ÀЬÄʬª¬Æê¬Áš¬Åڬú¬ÇúlÀ†lÄÆl¦¡v²›³[²[³ Û²Û³;²;³»²»³{²{³û²ûs�rs‡r‡sGrGsÇrÇs'r's +§r§sg†|Ù,ÎæÎå<Îç.ä".æ.å2.ç +®ä*®æ®å:®y¸ ÜÈMÜÌ-ÜÊmÿ¹íÜru»BÞn7÷p/÷q?ð ñ0ð(ñ8Oð$Oñ4Ïð,Ïñ</ð"/ñ2¯ð*¯ñ:oð&oñ6ïð.ïñ>ð!ñ1Ÿð)Ÿñ9_ð%_ñ5ßð-ßñ=?ð#?ñ3¿ð+¿ñ?~çþT(‚(É +0 +«p +¯Š¨HЬ(ŠªhЮЩXŠ8Š«xНJ¨D!¾I¬$JªdJ®J©TJ4J«tJ¯Ê¨Lʬ,!ʪlʮʩ\Ê<Ê«|Ê¢¢*¨B*¬"*ªb*®!V*©R*â¥2*«r*¯ +ª¨Jª¬*ªªjª®ª©Zª:ª«zª¯j¨Fj¬&jªfj®j©Vj6j«vj¯ê¨Nê¬.êªnê®ê©^ê>ê«~ꯨA¬!ªa®©Q1«q¯ š¨Iš¬)šªiš®š©?5K³5Gs5Oóµ@µH‹µDKµL˵B+µJ«µFkµNëõ—6h£6i³¶h«¶éoý£íÚ¡Ú¥µ[{´Wû´_tP‡tXGtTÇt\'tR§tZgtVçt^tQ—tYWtU×t]7tS·t[wtW÷t_ôPôXOôTÏô\/ôR¯ôZoôVïô^ôQŸôY_ôUßôŸ¾ë‡~:”ôl‡v‡u8‡wGt$GvGu4GwÇt,ÇvÇu<Çw't"ÿâÄNâ¤NæäNá”NåÔNã´NçôÎàŒÎäÌÎâ_ÕÙœÝ9œÓ¹œÛyœ×ùœß¿¹€º»ˆ‹º˜‹»„wI—riÿá2.ër.ï +®èJ®ì*®êj®î®éZ®í:®ëz®ïnèFnì&nêfnînéVní6nëvnïîèNîì.îênîîîé^îí>îë~îïèAì!êaîéQí1ëqï žèIžì)žêižîžé?=˳=Çs=Ïó½À½È‹½ÄK½Ì˽Â+½Ê«½Æk½Îëý—7x£7y³·x«·ùoÿãíÞáÞå½Û{¼×û¼ß|Ї|ØG|ÔÇ|Ü'|Ò§|Úg|Öç|Þ|Ñ—|ÙW|Õ×|Ý7|Ó·|Ûw|×÷|ßüÐüØOüÔÏþG<�°�0�»VܶmÛ¶mÛ¶mÛ¶mÛ¶mÛIàuàMàmà]à}àCàcàSàsàKàkà[à{àGàgàWàwàOàoà‚ (‚!8B �€Œ…Ѓ°‡ðˆ€ˆˆ„Ȉ‚¨ˆ†èˆ˜ˆ…؈ƒ¸ˆ‡øH€„H„ÄH‚¤H†äH”H…ÔHƒ´H‡ôÈ€ŒÈ„ÌÈ‚¬È†ìȜȅÜȃ¼È‡ü(€‚(„Â(‚¢(†â(’(…Ò(ƒ²(‡ò¨€Š¨„ʨ‚ª¨†ê¨š¨…Ú¨ƒº¨‡úh€†h„Æh‚¦h†æh–h…Öhƒ¶h‡ö耎è„Îè‚®è†îèžè…Þ胾è‡þ€„Á‚¡†á‘…у±‡ñ˜€‰˜„ɘ‚©˜†é˜™˜…Ù˜ƒ¹˜‡ùX€…X„ÅX‚¥X†åX•X…ÕXƒµX‡õØ€Ø„ÍØ‚Ø†íØØ…ÝØƒ½Ø‡ý8€ƒ8„Ã8‚£8†ã8“8…Ó8ƒ³8‡ó¸€‹¸„˸‚«¸†ë¸›¸…Û¸ƒ»¸‡ûx€‡x„Çx‚§x†çx—x…×xƒ·x‡÷ø€ø„Ïø‚¯ø†ïøŸø…ßøƒ¿øÇ Ê`Î$E3$C14Ã0,Ã1<#0"#12£0*£1:c0&c16ã0.ã1>0!11“0)“19S0%S15Ó0-Ó1=30#313³0+³1;s0's17ó0/ó1?° ±0‹°(‹±8K°$K±4˰,˱<+°"+±2«°*«±:k°&k±6ë°.ë±>°!±1›°)›±9[°%[±5Û°-Û±=;°#;±3»°+»±;{°'{±7û°/û±?p q0‡p(‡q8Gp$Gq4Çp,Çq<'p"'q2§p*§q:gp&gq6çp.çq>p!q1—p)—q9Wp%Wq5×p-×q=7p#7q3·p+·q;wp'wq7÷p/÷q?ð ñ0ð(ñ8Oð$Oñ4Ïð,Ïñ</ð"/ñ2¯ð*¯ñ:oð&oñ6ïð.ïñ>ð!ñ1Ÿð)Ÿñ9_ð%_ñ5ßð-ßñ=?ð#?ñ3¿ð+¿ñ;ð'ñ7ÿð/ÿ)ˆ‚*˜‚+„‚(É +©P +0 +«p +¯Š¨HЬ(ŠªhЮЩXŠ8Š«xНJ¨DJ¬$JªdJ®J©TJ4J«tJ¯Ê¨Lʬ,ʪlʮʩ\Ê<Ê«|ʯ*¨B*¬"*ªb*®*©R*2*«r*¯ +ª¨Jª¬*ªªjª®ª©Zª:ª«zª¯j¨Fj¬&jªfj®j©Vj6j«vj¯ê¨Nê¬.êªnê®ê©^ê>ê«~ꯨA¬!ªa®©Q1«q¯ š¨Iš¬)šªiš®š©Yš9š«yš¯Z¨EZ¬%ZªeZ®Z©UZ5Z«uZ¯ Ú¨MÚ¬-ÚªmÚ®Ú©]Ú=Ú«}Ú¯:¨C:¬#:ªc:®:©S:3:«s:¯º¨Kº¬+ºªkº®º©[º;º«{º¯z¨Gz¬'zªgz®z©Wz7z«wz¯ú¨Oú¬/úªoú®ú©_ú?ú«â æàá€aZ¶C:”C;ŒÃ:œÃ;‚#:’#;Š£:š£;†c:–c;Žã:žã;:‘;‰“:™“;…S:•S;Ó:Ó;ƒ3:“3;‹³:›³;‡s:—s;ó:Ÿó»€º»ˆ‹º˜‹»„Kº”K»ŒËºœË»‚+º’+»Š«ºš«»†kº–k»Žëºžë»º‘»‰›º™›»…[º•[»ÛºÛ»ƒ;º“;»‹»º›»»‡{º—{»ûºŸû{€z{ˆ‡z˜‡{„Gz”G{ŒÇzœÇ{‚'z’'{Чzš§{†gz–g{Žçzžç{z‘{‰—z™—{…Wz•W{×z×{ƒ7z“7{‹·z›·{‡wz—w{÷zŸ÷û€úûˆú˜û„Oú”OûŒÏúœÏû‚/ú’/ûНúš¯û†oú–oûŽïúžïûú‘û‰Ÿú™Ÿû…_ú?Udõa É&¿™y¸»»·÷ …�ÅJ7›%YØì†Í.Z(îîÐÒB[¤‚—ÅiÑw©áîÒåpÚÞ7ïݹwÎy÷ºuúiݲn[w¬»Ö=ë¾õÀzh=²[O¬§Ö3ë¹õÂzi½²^#R# BŠ0ØŽX�Á -Ò!=2 #2!3² +²!;r 'r!7ò /ò!? + +¡0Š (Š¡8J $J¡4Ê ,Ê¡<"QQ •QUQ ÕQ5Qïá}ÔFÔE=ÔG4D#4F4E34GZ %Z¡5>@´E4Ú¡=:àCtD'tFtÅGè†aGˆ…݇x¸Ð=áF<ð"½àCü 7ú /ú¡?àÄ |ŠÁ‚¡†á‘…у±‡ñ˜€‰˜„ɘ‚©˜†é˜™˜…Ù˜ƒ¹øŸc¾À—˜ø +_ã,Ä",Æ|‹ïð=~ÀR,Ãr¬ÀJ¬ÂX5X‹uX ؈MØŒ-ø [± Ûñ3v`'va7ö`/öa?~Á¯8€ƒ8„Ã8‚£ø ¿ãŽãNâNãÎâÎã.â.ã +®âü‰¿ð7þÁ5\Ç ÜÄ-ÜÆÜÅ=ÜÇ<Ä#<Æ<Å3<ǼÄ+¼f*¦f†0”a´1œ´’¢aZ¦czf`FfbffaVfcvæ`Næbnæa^æc~`AbaaQcq–`I–bi–aY–cyF²+²+³ +«²«³k²ßãû¬Í:¬Ëz¬ÏlÈFlÌ&lÊflÎ(¶`K¶bk~À6lËh¶c{và‡ìÈNìÌ.ìÊØÓÎ:K'»3Žñt±{ÒÍzèe"{ÑÇ$ú`oöa_öcà'ÈAü”ƒ9„C9ŒÃ9‚#9Š£9†c9Žã99‰“9…S9Ó9ƒ39‹³9‡sù?ç<~Á/9Ÿø¿æ7\ÈE\Ì%ü–ßñ{þÀ¥\Æå\Á•\Źšk¸–븞¸‘›¸™[ø·r·ógîàNîânîá^îã~þÂ_y€yˆ‡y„Gùç1ç žä)žæžå9žç^ä%^æ^åü“ñoþÃk¼Î¼É[¼Í;¼Ë{¼Ï|ÈG|Ì'|Êg|Î|ÉW|TJ4 +Q¨ÂdS¸"d ¢$£´J§ôÊ ŒÊ¤ÌÊ¢¬Ê¦ìÊ¡œÊ¥ÜÊ£¼Ê§ü* ‚*¤Â*¢¢*¦â*¡’*¥Ò*£²*§òŠTUT%UVUU5UW ÕT-½§÷U[uTWõT_ ÔPÔXMÔTÍÔ\Qj¡–j¥Öú@mÔVÑj§öê ÕQÔY]ÔU©›>–]1r(VNuWœâåRõ”[ òÈ«Dõ’OIò+ Þꣾê§þ O4Pƒô©kˆ†j˜†k„Fj”FkŒÆjœÆk‚&j’&kЦjš¦k†fj–fkŽæê3}®yúB_j¾è+}o´P‹´XKô¾Ó÷úAKµL˵B+µJ?jµÖhÖi½6h£6i³¶è'mÕ6m×ÏÚ¡Ú¥ÝÚ£½Ú§ýúE¿ê€ê눎ê7ý®c:®:©S:3:«s:¯º¨Kº¬+ºª?ô§þÒßúG×t]7tS·t[wtW÷t_ôPôXOôTÏô\/ôR¯ôÚ¤2©MbBM˜±™pa,C#cLZ“Τ7LF“Éd6YLV“Íd79LN“Ëä6yL^“Ïä7LASÈ6ELQSÌ7%LISÊ”6eLYSΔ7‘¦‚©h*™Ê¦Š©jª™ê¦†©VÖp»C‘!‰®ÈVñ á«B…òU"œn·+1É•Ú0àó¢i¬×ow8œD[‡3ÖåvÛm±Ÿ×î·¼½¾$‡×ç´%¸b“m¶º1>go§Íž‚ðºÞ8¯ÇÙ3ܤÃîóz’›SÐ eFx÷&ç[SÃ`ÕD”Ýð;mî ¢‚î„F%'†ºßĶ–=A´º<)0âž8»/à¶üÆûß›M°ÁD›`Ÿ/ˆ¶ÁǤ(ÚáMH°¿Aþÿ\lÑA»?aí|.O\XàÍiÚý/9ð¿äNÁéýS€Nï¾ýßɰÆöä”°èx§ßÒ:Þfw'ÆÛÃbn¿=Ü™¼wr^’+.Áâ·Bã]&à‰}»Ø·åìëpÛÞ(OR Ñésy}¶DgRò8Ëîóyû¸Ýýá)*ˆú\qñþ`1ÖÛÇT1^¼õÖëÑ;“ä„×ç³7»[.?9ÛéðÿËu¹5·m$Q¸J"EK¤×IÕþŽæ +à$�GÉn”J¢òfß "ƒ€Â‹/ûëw€9ÓlëEç̰Ñ_ÏPÓwóúïsó©jën]OwýùX¿u¢í·Íºj»þt7oU{z!ût÷Ÿ‰"¨„®¼ +ô M ø]¢_¢ÐVh<où‚"Þ¨…ÆPðL +Í KhàäÐZzµà[ð-ø|¾ß‚oÁ·à[ð-ø|ëø/Om¿þ8sk3èÔ·Úg¯‡Ú§ã®ÚÔÓñïlóqÔÛgw®Ý®é¿Üywp+9;šj{~ñz@{ÓymŸoÖÍaÝÖ·M÷éÉÝ%õipè;î·¿ªuí6Æ'j\ÏÝÍs½w[c2ü™_|²nÏOÓ]]9Ħ©ö}·™ïÏGl–úÌ»Ý|uÿÓUó×¼«^úãéпì†Û§Ïj½vŽÓ!"?B`z3L{†iË0m«ò®©;_ÿ,ÛWîVêf•×ùjÍyÿÜÖ_æë‹¿[]ìšì¬ÀÓµ×›Â߆õ(wÅ噚ìü=#láý%zKvñž_C[Ö˜ÿÈòì.~òãSu˜ìÜŸ›ûSÓnê›f”Ù=jmP뽯µñ7÷=.åÆëü'–ý¯‹_üÌëùøMc{¨ë®ºM³^ü‹ÿÒòÆ/¼Ñ±ÆuÑm¯ën;{@¡= +}ð…ö£,~ãÏø„üÎJ>² ùc˜Ó0!~BÎ~BÁ9ƒóè9g?!˜3&äËþ™ù?™ÿzñSwWowÙð^ðW~Ev–^«zÔùñܡ}ñ·Õp�Úº©n>¸ÓÕöÙËÿ.ùì£>lšúP»·÷íçànþô_Gyû÷ÙåFå®ëÍí¡Ú‡ËÍLÛªÛúxr[´[7Îzxì§[KïóçæSð‹£KÒ…Øä7¾ˆXÇôÔwýñm(hlÝeÃûl´‹Â¿ÎÆÆ›âä{oï{¸ÅþÅ7YðÝþÞú ïþ a:&K÷Æ›0ùïð6u„É|úsõòR¹ŒýÓ¦ºú÷ùê—óÕšhW¿6׿íúéïã;öê<ùzµk®=6‹{F|‡Cû®º¯æÃ«Ãðš0¼ž¿}tìœ<¹Àévø˜üo(zhž†ÉðàôãXzëKïÎW_wDƺ¯»þfü0pw*^»ŠöÃt-øL½{_ô|®Ï|®{šëáîŒt$ ª j Ch +Í Kè +Z@K¯þÀ)¸\®�W€+Àà +p¸\®�WäPðø| ¾_‚/Á—àKð%ø| ¾_‚/Á—àKð%ø +|¾_¯ÀWà+ðø +|¾_¯ÀWà+ðø| ¾_ƒ¯Á×àkð5ø| ¾_ƒ¯Á×àkð5ø\®×€kÀ5àp ¸\®×€kÀ3à¥oê¿"¾)|~³Œ *¡ +ª¡ž‹¡ 4….¡+h- ¾.³wî +ܸ9~Ïñ{Žßóð;êÊQWŽºrÔ•£®uåõå¨/G}9êËQ_~~~~~~~~~~~‰¼%ò–È["oé?¡£,›c|ÃÜÀgÃz1ŸÀ¯†ùwñc{Žºpÿ¢À§Ã|3/ß‘žY‰WíÀ†õf>a~/˜—Ì+æ5ó†yË|Â|Ê|Æü’ùóÅŬ¶‚ÕV°z +VOÁj(bæY=«§È^%eóP²:KÆ*/óæ÷ŸŒ¢ 9´€ú}hñ±¸ß-îq‹ûÛâ>³¸,î‹ûÇâþ±¸¬A<î!‹{ÈZô[ôÛЯ j Ch +Í ¨Ëæo¶í×—]ë`)7¡©J J”‰F£‚ Y3Çø†9 q0I0)L’§!y’§z޹ÎRèU¥!yŠ)ˆ‹ô‡ç¦«¨Ñt͉ûzÓøç’H£ƒ1Á`–»€²”®qIéCJž&èî;³te9\ã’Ã5.9²%/yxÉÂW«”…çfl`02O†áILL(QQ0"L˜82«Y…Ì*dV Û+æsææË‹7¡@þó@FþóÇéŠc,qŒ%Ž·EÛ–P<gñœ qãóeä?'.¡+hø}ÌW–å +ÙP™ S`ÃØ06L® “‡Åarã0¹q˜Üp`“8dŽCæ8dŽCæ8dNBæph“ph“ph“ph“$dNBæpb“pb“pb“pbÿISæþÏi~Ð7mÓ¶Õnìw78®L¹€²S!:ïÔèÔ¼Ó ÓðNLɦäSòƒ)ctÆ<N«LxŽ„çHxœc™ò:3ž#ã92žc‰Î%_òð%Çá–üp»_ñð9ÏyxÎÃq_J~_J~_Ê‚‡ãb’%¿ŠPÞ)Ð)x'vâ»@a(ÅJpK ®q)Aa(ÍÃ5×<;Gnx¸ááØSŠï)Å÷”â{JaO©˜‡Ç<<æáØmŠï6Åw›â»Ma·)þÖPü¡ø[Ca*¾ß‡ŠïCÒ‚…»Æ%Ü5X8ÖNK.y¸äáXUÍWUóUÕ|U5VUóUÕ|U5_UUÕ|U5_UÍWUcU5_UÍWUóUÕXUÍoŠ%Nʲ`ªùË^cÙ4¿$4GóÅÑ|q´_œï0Úñ®lŽ}ûMÇð,ëP¯#Ôëó:Â¼Žˆ_GøQߎ÷¹ˆ¤ 'É)ršœ!gÉÅärip*"GEEEEEEEEMMMMMMMMMMCCCCCCCCCCKKKKKKKKKKŒ˜11bbÄĈ‰#&FLŒ˜11b$ÄHˆ‘#!FBŒ„ 1b$ÄH‰‘#%FJŒ”)1Rb¤ÄH‰‘†ˆ"r‚œ$§Èir†œ%“KÈCCCCCCCCCCCƒÎ¹ s.èœ:ç‚ι s.èœ:çB¦Ó‡]è¦ýø÷qü{þ†:ׂεPߨAchúv×÷«§þS½î÷O¾WDPP|±»ù85íf|"è,ø(¹šlúnû¦ïêÓ®9lnOŸûÑÁ¦1Ñ þ?ÛeÓã6’ƒáÓf7ßf~G£E[õq¬*IÀœú°èÃ= t²™_¿né‘ý6ǃEŠâK±Èz]]ßólÉ[$ùwäßÕe$wŒŽ;F7"‰g|™ñE{r¿[¾ýùîîá›Vaxõþðíý§Ã³Ñ(‰h�€F¢Æ‡ ÛZ.=F‚F‚<ÝeE¾[W/Êi·^ìNËwåîãýÝÃç??íÿ7û7ˆÇü½ê1~Sà_wŒkî5~5ó_vÿ´½,Üï¿ïç_îd½Øç¼°Ïë·‹ý”ÉÛÝS÷æxo^¿Yì+ì›ÝõùxZl/ÆsÏñŸs¸gKÔw£/òÞF_õ½¯úx©êûKU}Õ÷¾êã…ªïÿi{ñÛùÛ>ž–Ï;UáãiusZNoßœß>œ³»ñŸ~ð†_‹ƒ¯ÅÍ¥Z.ÕâÆ×âàkqs¡‡µ˜Ò9Á‡ór¶ÎI-Öyùf¶ž’xsx¢.ïÌàË;óòõl]Ñ^T{~{Z=œò¹=|8/oÏ©=œ—·ç,ÎYÞ>Íòái–·ç,ÎYÞ>ÉòáI–¿ŸV?OYþ~øó<¿/Óñsó¿ó® È9-r¸FvHCn[dȈLÈŒ,ÈŠloåæø¿hs½½ºÛ}`,oäI{|"úõ£>GØfCn‘Y‘ ¹|ñ¶ð~áý2"— +lë5²Câ_ñ¯ ™‘àU¾0-q¬çùˆÿ¸è!p +£\…ÂôT9_ÍÂôïãî^©ú‘ó®ŽL}l‚¿œ•÷ûý×קõûÿ^âö}ÿí?ë?÷K¬®ÿ×Ý×O»ç?vß~Ø}þ{÷ìëçݧOßßžðjw¿ûcqï7È-rÙó¯‘Ý+¤\û¢a45n0nÔÈ•6öjä⃹žF½žFn¢Qo¢‘›hÌré<*çâ•sq#wÔ¨wÔ¨wÔXÔ½b¬ê^Õ½ª{ÃØÔ½©{S÷ã ê>aœÔ]û(j¥ëWHq?*g÷£"îìmêÔ½S÷NÝÙõdênênêN?¤ºoÔ}£î[Œ[uߪûVÝi¬Ô«{¯î½ºÓ])ª{T÷¨îô]Ò¾Kô]Êj¤»RQ#=”ªé”ÔÔH?¤AœiT#&1f6<_«‘mÍ:²™ÍË:²™-Ê:²™È[5Rî¬sœ™ã¬sœ©tÖ9Δ.ké2¥Ë:˜Y3ë`fŠšu0³fÖÁÌ”;ë`f̬ƒ™Ùˆ¬ƒ™u0³ff‹ò¨îzÚqgó²n^aóŠNkÑi-:¥C²“EǰèÃÂâcXt»_t‹ŽaÑ1,ôEÑ1,:†EǰÐ1%¨{P÷ îôRÑ^*ÌfÑÙ,ôRÑ^*ÚKE{©ÐKE{©h/í¥B/í¥¢½T´— +½T´—ŠöRÑ^*ôRÑ^*ÚKE{©Ò6UÛ¦jÛTm›ÊiPõ?*⮇|¥»ªvWÕîªÚ]•îªÚ]U»«jwUº«jwUí®ªÝU鮪ÝUµ»ªvW¥»ªvWÕîªÚ]•îªÊ U9¡*'Tú®&uOêžÔ#¯ê¿”ªÿRªþK©4pU©´iU©4cÕf¬ÚŒU›±ÒŒU¦rUý_QõEÕÿ–kÚrMªi»4¥“Æ–7¥“ÆÆ6¥“Æö5¥“Æ&5=[Ñôh¼)Ç4ÊÚ´¬²6-k£NMëÔͦ£Ùt4›Žf£¬Mùâ gŽžê'¦tPΘÅA9{`â-27¶ÀM-kØ„ä^ÂM-pSCCȹÜoÂÈ-`„{FCrkÁ¹5Œà¯ŸÅ½(¬÷¢üü܉mšôø>*ç:Oz|Olà¤Ç÷¤Ç÷¤Ç÷ÄÄL:1“N̤3IˤÕôÐlË¡ÉÅ6lûÓ*œVñ´J§Už/¼3îww‡_Vý15ln7 Ç_vßv®~||¿Ç4½›_ÛnçKØÇ¯‡OO±Ä°ñïÑ{^<j,ŠñÞ#xè=¢÷HÞ#<Ø¥íÕÃýû”8+’rç¿Af©K×ÈiÈ r‹ì‘‘ ™‘Y‘ 9 —Iê2¸Ü^/ƒ—ÁËàeð2x¼^/ƒ—W¼er»Â÷ð +x¼^¯€WÀ+àð +x¼^å»*x¼ +^¯‚WÁ«àUð*x¼ +^¯®x|_£® ü~¿ßÀoà7ðø ü~¿ÏÉØq2vÃ4ðæ:Û«»Ý—ÅÎIÙqRvœ”'eÇIÙqRvœ”'eÇIÙqRvœ”'e7’'f7’ÏH=&ð'ð'ð'ð'ð'ð'ð'ð'ð§ß®¯‘ÒäÙ#2"rWÙrD.ßcøøøøøøø]|õß»ÃçÏ»ÝÝÝþ¯o¯¾Š‚™tdÒ‘IG&™tdbdbd`d`d`d`d`TÀ¨€Q×*´yÒAfäaäaäaä±! Ùφ|zž÷<ïyÞ¯ÏÉ·'ßž|{òíÉ·'ÏžúôäÕ“WO^=yp¸Ü�n�7€À àpu +àðøü�~�?‚ÁàGð#øü~?‚ÁàGð#øü~f1˜Å`ƒYf1˜Å`ƒYf1˜Å`ƒYf1˜Å`KàÃ0ÃX¦1˜Æ`ƒi¦1˜Æ`ƒi¦1˜Æ`ƒi¦±~æ1˜Ç`ƒyæ1˜Ç`ƒyæ1˜Ç`ƒy¬‚óÌc0Á<óÌc0Á<óÌc0Á<VW<¾æ1˜Ç`ƒyæ1˜Ç`ƒi†1Æ`kà4p88888üç·þûÿý Æ2þËe0”ÁPCe0”ÁPCe0”ÁPCe0”ã[âñNNONÏ¢‡GéôàôèôäôüRty]ìxáytzrºÆVßäb';]ðONרú,»ØÙÅÎ.v¾ð¾Æ^ëÖ=pzpztzrú;¸X—ôèôätÍ-º÷£Ë-ºxÑÅ‹.7õM.vr±Óÿätϲ‹]ììbçïkìµ&Ñíת§G§'§¯±£‹.èÁéÑéÉé[ßõX—ž'§ëw'÷~rï'—[rñ’ËMŸe;»ØÙÅÎÞרkÞÉíת§G§'§¯±“‹.èÁéÑéÉé[ß.v¼ð<:=9]c«¯ÿ}É_kšÝûÙ½ŸÝûÙå–]nkììökÕƒÓ£Ó“ÓרÙÅ +ôàôèôätïF;^xÿÏv½ìFndA^yaŒy“F‘'“—%ÉÃóMÛc–/h{Óo?¥æW‚ x!D±DæŸ,2##>/ŽßýþÜåÃØË‡±—8ùpü~ì÷ÿûø}¼¯sùvý·Üšjh¨¡¡††jÜçot§MzÒ+G…fših¦¡™†fših¦1à¸ÃJñõÑÐGC }4ôÑÐGcÄ×KC }4ôÑÐGC }4ôÑqõÏÐ?Cÿý3ôÏÐ?Cÿý3?ð?ð?ð?ð?ð?ð~Ãoø ¿á7ü†ßð~Ãoø ¿á7ü†ßðõÜÐsCÏ =7ôÜÐsCÏ =7ôÜÐsCÏ =7ôÜÐsCÏ =7ôØÐcCO =!ô„ÐBO=!ô„ÐBOˆ4¯4¯|Œk^i^i^zEè¡W„^zEè¡W„^zEèñX·zEè¡W„^zEœø'~á~á~á~]üv»ÑkÜÖwÇžwó¼›çÝ<ïæy7Ï»yÞÍónžwó¼›çÝ<ïæy·éÁ;éu_mÆŸñgüßûмmÆŸñgüßûÒfüÎþúåùååùóþøû·§/¿úÞ|fóYÌg1ŸÅ|óYÌg1ŸÅ|óXÌc1Å<óXüî‚»w5îj¼Õx«óWçoæ¹™çæúÍõ›ym~§Íx›ñ6óÛÌo3¿ÍüvãíÆÛ·owþþ8ßüvó;Ìï0¿ÃïxøãÆ?Œÿ0ßÃ|ó=Ì÷À?ðóûŸ_¾þùËøpЖ5ŽÑ8Fãc4ŽÑ8FãC4Ñ8DãC4Ñ8DãC4Ñ8DãC4ŽÐ8Bã#4ŽÐ8Bã#4ŽÐ8Bã#´ò‹Öõ‹vÎÐoiÐF;èLúo£;=hÒ“^óï+âZ ÝJè+îŠket+£¯¸+âZ9ÝÊéVN·rú†ku+¨[AÝ +êVP·‚ºÔ nu+¨o¸îѾ%¹{b»ÿÝ>}~úóÝñðî8þáxyw<¼¦»wÇLJãö8ÿ•;œ×s¾ë@G´ÑN':Ó…®t£;=hÒ“Ö¥þ€?àøþ€?àøþ€?àøþ€?àø#þˆ?âø#þˆ?âø#þˆ?âø#þˆ?âøøøøøøøøø ¿á7ü†ßð~Ãoø ¿á7ü†ßð~Ãoø¿ãwüŽßñ;~Çïø¿ãwüŽßñ;~Çïøþ„?áOøþ„?áOøþ„?áOøþ„?áOø3þŒ?ãÏø3þŒ?ãÏø3þŒ?ãÏø3þŒ?ãÏø‹ñã-Æ[Œ·o1Þb¼Åx‹ñãîgu?«ûYÝÏê~V÷³â¯ø+þŠ¿â_þ=¿*~UüªøUñ«âWůŠ_¿*~Uüªnñšô¤×ý¿*~UüªøUñ«âWÅŸŠ?*þTü©øSñ£âGÅŠ?*~Tü¨øQñ£âGÅŠ?ªñÁsü¨øQñ£âGÅŠ?*~Tü¨øQñ£âGÅŠ?*~Tü¨øQñ£âGÅŠ?*þSü§øOñŸâ?ÅŠß¿)~Sü¦øMñ›â7ÅoŠÏ©þ×üùIñ“â'ÅOŠŸ?)~Rü¤øIñ“â'ÅOŠŸ?)~Rü¤øIñ“â'ÅOŠŸ?)~Rü¤øIñ“â'ÅOŠŸ?©oÁ[ð¼oÁã7ÅoŠß¿)~Sü¦øM-žûå7ÅoŠß¿)~Sü¦øMñ›â7ÅoŠß¿©‡ß¬ø+þŠ¿âoøþ†¿áoøþ†¿áoøþ†¿áoøþ†¿áïø;þŽ¿ãïø;ãî¸;ãî¸;îŽ{à¸î{à¸î{à¸î{à¸nâ&nâ&nâ%^â%^â%^â$Nâœ8'Ήsâœîïô\OÜ÷Ä=qOÜ÷tŸ'þ‰â^á^áNáNáNáN}㌷뽽ë@GÚéDºÒ¤q¾Íwœ.ÿûõüJ®.¹ºäê»Æÿ}úòüéÇ?þ~ù鯿^¿¼×æ1Þv“º^æÛ8ÒkÓ¹k§Wù•¨Q‰OZ7êúëǼkPã•ñÊx×z×…®t£;=hRó¨‹×&s׎4h£Nt¦IOj\ó=…¡†RJa(…¡†RJa(oqVºÑ4éI¯—4…¡†RJa(…¡†RyKå-…£ŽR8Já(…£ŽRyKå-…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RXJa)…¥–RyKå-…§žRxJá)…§žRyKå-…©¦R˜Ja*…©¦R˜Ja*•·ªRyKá*•·²RyKa+…¶RØJa+…¶RØJa+…¶ò +[·éZWwèHƒž4éµ>§Áuƒë× ®»ÖÃm²Þ'ë}êË÷?¿|ýó—q\]qž?ÐOÿ{þýÉ—åËz÷eù²®/ßžþûíà·Ÿ~|~=ý:Ò v:Ñ™.tý×ë }îéóøîs¼~~=w¼ ö”k¹Ž·h×mÆm˜Þ>ÍoŸ–·OëwO//O¿|÷åùëÓËuíÍÖp³_ÝŒ}=’»6jÿºÙ¿n¶–›}ìf»¬î®ß^µqÖºÒz'Ö¶†°5„!ÿ·5„!l akj¶¦öØŠÛq¯%p×Ã<jk°å„-§Ùš-¢_ûùýY\ãõ£Ó‰zõ®û¿¿š^ió˜Ìc2É<&[ÓÔÏÇÓºšÅmî··oúÛ§·ç|õ‹û¿†·oÖǧåíÊ«EÜÏß¾‰·OooÏÿ¯ºØ(®+|ïÇ»¦5»Þ‚mÂzgý·–bïìÏÌbïÌڔĪL€R›RLù‘‚äH–@ªÔ0HE*Jƒ£T¢-•j”‡<$ŠXÆ•»$S¹M7-¨¥T"NÚ‡æ!uÈCSžÜofÎÜ-Rº£ï|gΜ¹ßÙ;÷ν|K «~MŽ"CŽ¢à‹Yò>Sj›²}3¬^ÖlÖ=Y½V_„Õçúû¥V¯ËH^zé…Õ2RϯÇÂê¥N.lÝ’‘°v[F¶+2"Û–ó+—Û +#ZNzšôÂÖ‡e¤(½’ôžÙ)#²â¼ì™<Õ^ªGdÏÈ·B޶wzIV“—Õçeõ4óô’¬´ óõU_’:Y}AV_ êK²†‚¬^Žç\1¬^¶ G^NŽ®\1¬^¶^õg]«—×êÿ¶þJaõò¾ºv½ýRX½¬¹îé²z=¬^Ž]V¯Ëêõ°z9–Â[’cIk—ãÆµ²v#\|iñ.Ñâ]¢Å»D‹·N‹·N‹·N‹·N÷ë´xë´xë´xë´xë´xë´xë´yÐ链Nú:éë¤o¾Aúé‡õ¤o¾Aúé¤o¾Aúé¤o¾Aú雤o’¾Iú&雤o’¾Iú&雤o’¾Iú&雤o’¾Iú&é[¤o‘¾Eúé[¤o‘¾Eúé[¤o‘¾Eúé[¤o‘¾EúéÛ¤o“¾Mú6éÛ¤o“¾Mú6éÛ¤o“¾Mú6éÛ¤o“¾Mú6éWH¿BúүЎ¢H_¸&í<LÚy˜´ó0)Ϥ‡Mq›âvv$ÃòM¬É5M“kšf¥W’^ýCzá×Ì~é大IOj˜RC®lš\Ù4Sj˜RC®my¹¶aS&=Mzyé¤W”^IzºôéIœÔÈIœÔÈI\!Nï±þ’¦o{vjòäC¹%Ö‚Ï pž¸@\$.ëÄ´§+О®@{ºíé +´§+О®@{ºà3¨?¯Ó^M§=ZðÆé/T½™ElWˆ)örÚËé3¢H+~‘>#Š9šššššššš;i:Z.ø?à`¤ç‚7žV >«À9b8Oæ‰KÄ:±Al[Ä6q%`ÚÑ©Ú Þð–žÙ 6‰€µ~b9nŒþy¶Oyl6Ó®Þ¾¡lfË€P6»Ùu^Ù¤t¸«åšÒ=›X¯Å¬¯*iÆYŸoÓ°“À`h`J +ñ8ìÀ®�Àm ‘1Xïj˜f€eïŠÒ¡$Ý´·6)pï&XLic+À* 0¶&€i`hôó¼È$pX�>󯔕6÷•<jos_ôiöÄIÍ?ýNpzðÛþéì7ÇþúÓ=¤mÒ°Còy›ð¦'z5Çã5ÍÚM«UiÅŸlEáÏÃrñk㜩첲žU¡4R¤¬$f{2ÚÌ‚ÒÀ¸"ÎŽ1uõ¦ÂÝæÍZ#VÅ +K0UüS|\ŸÎ®mÑf¬§ÄÇì +°�(âc‰Ø±ìõ9ì 0,�·€ Q,ãøÇâï³>`˜�f€`ˆˆ÷aãâ=´Æ|ëùƒ€ïÁÆÅ»ø[ïÂÆÄ=x÷Ä=”ögW7µyßÉö‘£ö’Ó¶‘œD«VrlƈÊàIcD]WºØ�Ë+]noN)íîŽgÕšøÛl:«^¶úÅV*¹å;, ìÏðî»Ëàeà2P0Ê`ã@Z,ï�wY?PvQqÛ…LMÜr3¶jµŠ?Šß²6ôøÄï|~G¼åóïÅo|~œ/‰·Ü”ʬ/á:Ã=qp܇ëˆ_Íö$ÔU«E, ïTØ>`&€i Q,ˆ.÷˜š@#×ÙR”!ÓeŸøü{5ÊÊ'Ôr¦‚˜öLfûð`fÒ3QÎ\ü)N=“¹ð +<Ïd¾ÿCxžÉ|÷,<ÏdNž‚ç™Ì±ð<“90Ï3™Ñ}ð`jâç¿ìÙ¤ê£Ïñ´§ÑK§ÑK§ÑK§Yƒ8íìAƒWÛÏÜ-[Ðc—ÊÙÍ[Tçwnpgw^åÎqî¼À³ÜÙÁCÜÉr'ÉwÊܹΠt…ÃË¿xèÔ,·sg‰;orgŠ;îôr§‡;i®—k¢Ó}2ïÓ°O³–7éÀOàíèÑNŒùN¼`o«þYIé® yCÊã®Ù-ƒÁù¶íÚ¤µK,âÆE<†Eö!Ѐ´ˆa´ˆFÑ@v˜�n+À*Јì.>íÛl0L�g€ Ñ/gl’J¼âÖGEzgbGŽNÑYîˆ'ãÙø.e:Éc)>šZM µ¶2Æ-Ñ–ožû¢ùß_4³&«I\Ó¬âeâi÷A‡Zã?q3×Uk=ÿ1K5`Ôq“ex/Ø`Sþy‘%£XR¼ÖÜä~Üs3[Õk|wלú ùwõ“dMÀýGòºú×t»ê_ycN½“<¯¾ÝW‹"r#Sã ki?u>i¨o.ù©gqá’«¾àÑœú½ä×Ôç’þ…ãÁ…CS8+ÇÔ=™ê.´7”<¢–§Ðæœ:˜<¤î²ŠÞ=sj?JÈî»9é‹v§ü¿¡×ø3å‘‹‘±Èh¤Ñ"[#5ÒÙYMDãѵÑ/G×D£ÑÆhCTDYt]mu¹œextëã56x¶Á÷ã³0þKG{ŠU¿¢Œˆ‘½6©Þ<ÊFޤ«ÿÚÛ]ãkž>P}¤ÛæÕÄÙgWìH-²º§ªgGª‘Ýß»Êù…qD«â5ÎöÕøª:·±š¨ŒÍ3Î[ν´ÑãÇν4>ÎÚ[O ¶&ZÌCÿÃ&›ÿÚò;ªGöŽU_ï¯jž³Ú1>RýÑÞôÁ±yþ9ÿlxhžß÷h|l^àŸïñâÊÀÐøøHï÷óXšßGFÌ}?/Š…ÙËcéh*È»äõâ~äõx„¼¦&Öëçõ65ùy ÜË»:Õ3<tµ§ÇÏiK³)?gª-ýß9K½ÈéíõsZ¶äç,µ:^NuÀOI&‘’Jú)üQ–ôS’üQ?e=¥RÎË”ó¾’Âë9É §y9Ìi^FNöÿý·³Y>ûøøÑƒÃÇ»‡wW_<õL{Õ9’N_=:î]HW•ÌáÿÐYõ¼ Â@Ô$CšÒt©"!EElµÒ)R¨RBŒ²P5Ž’F‘Ú’Íuí?Éhš¥J—þ³öRÕô„9xϾÇ6øqõ„~¹VÜY3µrØUî¥èiÏa9IÃY’§þš½{¾:KÆwQ<pi½ÕZƒø@°ƒ P+rÐ.Òj¹¨å¢VäG…)æxœäG$à“´ô»†yóuaÙ<¸ì¼ŒŠÉëÙݵ‡ÝÊ–˜”«'P§Ðêûc¤`M!u𹦺϶öÆVS€/œ€P™‰ŒtÃgV ™aÁË3ÿp¡ò—LHB¦êúaªîîçIÞjºÀ”Ô°ÂL3üøþ*Á�‡6›uGÄnk·uÇ¿ï?Ó~‚«àµñ¹3üž!‰àMÕ›Îð)˜Í!×tžìa/…¿Á!AaPCT1ôcSJÊ{‚9WMfúJ×Bj_Ž„!¢*ImX,ZWLRú#À�ÎdÙƒ endstream endobj 21 0 obj <</StemV 88/FontName/WNYQBO+ArialMT/FontFile2 20 0 R/FontStretch/Normal/FontWeight 400/Flags 32/Descent -325/FontBBox[-665 -325 2000 1006]/Ascent 1006/FontFamily(Arial)/CapHeight 716/XHeight 519/Type/FontDescriptor/ItalicAngle 0>> endobj 22 0 obj <</OPM 1/BM/Normal/CA 1.0/OP false/SMask/None/ca 1.0/AIS false/op false/Type/ExtGState/SA true>> endobj 23 0 obj <</Subtype/Form/Length 132/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 18 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.38 957.559 1773.35 937.129]>>stream +BT +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1700.3843 942.7373 Tm +(Concepts)Tj +ET + endstream endobj 24 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 17 0 R/Resources<</XObject<</Fm0 23 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.38 957.559 1773.35 937.129]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 25 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 26 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 27 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 26 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.53 930.149 1777.27 909.719]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1699.5303 915.3271 Tm +(Git Basics)Tj +ET + endstream endobj 28 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 25 0 R/Resources<</XObject<</Fm0 27 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.53 930.149 1777.27 909.719]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 29 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 30 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 31 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 30 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.34 509.643 2291.34 497.455]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2224.3379 500.8008 Tm +(git reset --hard)Tj +ET + endstream endobj 32 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 33 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 32 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.34 500.267 2297.64 488.079]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2224.3379 491.4248 Tm +(git rebase --skip)Tj +ET + endstream endobj 34 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 29 0 R/Resources<</XObject<</Fm0 31 0 R/Fm1 33 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2224.34 509.643 2297.64 488.079]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 35 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 36 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 37 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 36 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 589.187 2249.0 577.0]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 580.3457 Tm +[(git dif)18(f)]TJ +ET + endstream endobj 38 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 39 0 obj <</Subtype/Form/Length 159/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 38 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 579.811 2305.34 567.623]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 570.9687 Tm +[(git dif)18(f --base $file)]TJ +ET + endstream endobj 40 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 41 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 40 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 570.435 2305.9 558.247]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 561.5928 Tm +[(git dif)18(f --ours $file)]TJ +ET + endstream endobj 42 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 43 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 42 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 561.059 2305.33 548.871]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2221.3379 552.2168 Tm +[(git dif)18(f --theirs $file)]TJ +ET + endstream endobj 44 0 obj <</Subtype/Form/Length 80/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 35 0 R/Resources<</XObject<</Fm0 37 0 R/Fm1 39 0 R/Fm2 41 0 R/Fm3 43 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2221.34 589.187 2305.9 548.871]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q + endstream endobj 45 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 46 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 47 0 obj <</Subtype/Form/Length 159/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 46 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2216.22 467.083 2367.05 455.741]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2216.2388 458.8545 Tm +(After resolving conflicts, merge with)Tj +ET + endstream endobj 48 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 45 0 R/Resources<</XObject<</Fm0 47 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2216.22 467.083 2367.05 455.741]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 49 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 50 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 51 0 obj <</Subtype/Form/Length 157/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 50 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2215.22 526.083 2330.35 514.741]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2215.2212 517.8545 Tm +[(T)111(o discard conflicting patch)]TJ +ET + endstream endobj 52 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 49 0 R/Resources<</XObject<</Fm0 51 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2215.22 526.083 2330.35 514.741]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 53 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 54 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 55 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 54 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2192.44 592.631 2212.87 405.451]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 0 17.2716 -17.2716 0 2207.2646 405.4512 Tm +(Resolve Merge Conflicts)Tj +ET + endstream endobj 56 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 53 0 R/Resources<</XObject<</Fm0 55 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2192.44 592.631 2212.87 405.451]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 57 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 58 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 59 0 obj <</Subtype/Form/Length 155/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 58 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2323.55 579.449 2383.86 570.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2323.5471 572.8926 Tm +(\(against base file\))Tj +ET + endstream endobj 60 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 57 0 R/Resources<</XObject<</Fm0 59 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2323.55 579.449 2383.86 570.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 61 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 62 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 63 0 obj <</Subtype/Form/Length 158/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 62 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 569.449 2401.77 560.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2324.0471 562.8926 Tm +(\(against your changes\))Tj +ET + endstream endobj 64 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 61 0 R/Resources<</XObject<</Fm0 63 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 569.449 2401.77 560.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 65 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 66 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 67 0 obj <</Subtype/Form/Length 159/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 66 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 559.449 2404.32 550.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2324.0471 552.8926 Tm +(\(against other changes\))Tj +ET + endstream endobj 68 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 65 0 R/Resources<</XObject<</Fm0 67 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2324.05 559.449 2404.32 550.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 69 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 70 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 71 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 70 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 606.203 1773.89 594.016]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.2954 597.3613 Tm +(git checkout $id)Tj +ET + endstream endobj 72 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 69 0 R/Resources<</XObject<</Fm0 71 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 606.203 1773.89 594.016]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 73 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 74 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 75 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 74 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.05 498.646 1864.83 487.305]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699.0522 490.418 Tm +(Create branch $new_branch based on )Tj +ET + endstream endobj 76 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 77 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 76 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.05 486.661 1824.31 475.319]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699.0522 478.4326 Tm +(branch $other and switch to it)Tj +ET + endstream endobj 78 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 73 0 R/Resources<</XObject<</Fm0 75 0 R/Fm1 77 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.05 498.646 1864.83 475.319]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 79 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 80 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 81 0 obj <</Subtype/Form/Length 165/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 80 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1703.12 474.999 1867.08 462.812]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1703.1152 466.1572 Tm +(git checkout -b $new_branch $other)Tj +ET + endstream endobj 82 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 79 0 R/Resources<</XObject<</Fm0 81 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1703.12 474.999 1867.08 462.812]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 83 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 84 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 85 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 84 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 451.145 1795.27 439.803]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1698.2588 442.916 Tm +(Delete branch $branch)Tj +ET + endstream endobj 86 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 83 0 R/Resources<</XObject<</Fm0 85 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 451.145 1795.27 439.803]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 87 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 88 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 89 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 88 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 438.104 1799.67 425.917]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.2954 429.2627 Tm +(git branch -d $branch)Tj +ET + endstream endobj 90 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 87 0 R/Resources<</XObject<</Fm0 89 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.3 438.104 1799.67 425.917]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 91 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 92 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 93 0 obj <</Subtype/Form/Length 151/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 92 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2177.13 773.046 2305.03 761.704]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2177.1279 764.8174 Tm +(Commit all your local changes)Tj +ET + endstream endobj 94 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 91 0 R/Resources<</XObject<</Fm0 93 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2177.13 773.046 2305.03 761.704]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 95 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 96 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 97 0 obj <</Subtype/Form/Length 143/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 96 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2175.51 805.685 2232.16 785.255]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 2175.5107 790.8633 Tm +(Publish)Tj +ET + endstream endobj 98 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 95 0 R/Resources<</XObject<</Fm0 97 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2175.51 805.685 2232.16 785.255]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 99 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 100 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 101 0 obj <</Subtype/Form/Length 143/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 100 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2178.77 759.134 2237.74 746.946]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2178.7705 750.292 Tm +(git commit -a)Tj +ET + endstream endobj 102 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 99 0 R/Resources<</XObject<</Fm0 101 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2178.77 759.134 2237.74 746.946]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 103 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 104 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 105 0 obj <</Subtype/Form/Length 158/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 104 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2176.56 733.079 2332.74 721.737]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2176.5625 724.8506 Tm +(Prepare a patch for other developers)Tj +ET + endstream endobj 106 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 103 0 R/Resources<</XObject<</Fm0 105 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2176.56 733.079 2332.74 721.737]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 107 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 108 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 109 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 108 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2177.9 720.573 2277.54 708.386]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2177.8994 711.7314 Tm +(git format-patch origin)Tj +ET + endstream endobj 110 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 107 0 R/Resources<</XObject<</Fm0 109 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2177.9 720.573 2277.54 708.386]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 111 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 112 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 113 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 112 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2346.55 449.451 2427.66 440.413]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2346.5513 442.8945 Tm +(\(do for all resolved files\))Tj +ET + endstream endobj 114 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 111 0 R/Resources<</XObject<</Fm0 113 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2346.55 449.451 2427.66 440.413]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 115 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 116 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 117 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 116 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2061.94 585.688 2090.38 576.65]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2061.9385 579.1318 Tm +(\(to start\))Tj +ET + endstream endobj 118 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 115 0 R/Resources<</XObject<</Fm0 117 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2061.94 585.688 2090.38 576.65]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 119 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 120 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 121 0 obj <</Subtype/Form/Length 169/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 120 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2061.65 577.104 2166.53 568.065]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2061.6455 570.5469 Tm +(\($id is the last working version\))Tj +ET + endstream endobj 122 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 119 0 R/Resources<</XObject<</Fm0 121 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2061.65 577.104 2166.53 568.065]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 123 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 124 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 125 0 obj <</Subtype/Form/Length 161/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 124 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2060.89 566.949 2142.43 557.911]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2060.8926 560.3926 Tm +(\($id is a broken version\))Tj +ET + endstream endobj 126 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 123 0 R/Resources<</XObject<</Fm0 125 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2060.89 566.949 2142.43 557.911]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 127 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 128 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 129 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 128 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2067.12 548.723 2156.73 539.685]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2067.1235 542.166 Tm +(\(to mark it as bad or good\))Tj +ET + endstream endobj 130 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 127 0 R/Resources<</XObject<</Fm0 129 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2067.12 548.723 2156.73 539.685]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 131 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 132 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 133 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 132 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2064.29 528.924 2127.77 519.886]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2064.2949 522.3672 Tm +(\(once you're done\))Tj +ET + endstream endobj 134 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 131 0 R/Resources<</XObject<</Fm0 133 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2064.29 528.924 2127.77 519.886]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 135 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 136 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 137 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 136 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2065.0 538.823 2155.03 529.785]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2065.002 532.2666 Tm +(\(to launch gitk and mark it\))Tj +ET + endstream endobj 138 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 135 0 R/Resources<</XObject<</Fm0 137 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2065.0 538.823 2155.03 529.785]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 139 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 140 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 141 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 140 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2178.9 684.565 2214.99 672.378]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2178.8994 675.7236 Tm +(git push)Tj +ET + endstream endobj 142 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 139 0 R/Resources<</XObject<</Fm0 141 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2178.9 684.565 2214.99 672.378]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 143 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 144 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 145 0 obj <</Subtype/Form/Length 144/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 144 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2176.0 697.824 2273.54 686.482]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2175.9966 689.5957 Tm +(Push changes to origin)Tj +ET + endstream endobj 146 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 143 0 R/Resources<</XObject<</Fm0 145 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2176.0 697.824 2273.54 686.482]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 147 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 148 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 149 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 148 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2175.83 656.535 2287.74 645.193]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2175.834 648.3066 Tm +(Mark a version / milestone)Tj +ET + endstream endobj 150 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 147 0 R/Resources<</XObject<</Fm0 149 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2175.83 656.535 2287.74 645.193]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 151 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 152 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 153 0 obj <</Subtype/Form/Length 143/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 152 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2178.91 644.332 2229.32 632.145]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2178.9126 635.4902 Tm +(git tag v1.0)Tj +ET + endstream endobj 154 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 151 0 R/Resources<</XObject<</Fm0 153 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2178.91 644.332 2229.32 632.145]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 155 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 156 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 157 0 obj <</Subtype/Form/Length 166/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 156 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2270.63 588.949 2344.8 579.911]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2270.6309 582.3926 Tm +[(\(complete conflict dif)18(f\))]TJ +ET + endstream endobj 158 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 155 0 R/Resources<</XObject<</Fm0 157 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2270.63 588.949 2344.8 579.911]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 159 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 160 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 161 0 obj <</Subtype/Form/Length 171/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 160 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1508.13 506.449 1621.02 497.411]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1508.1309 499.8926 Tm +(\(star '*' marks the current branch\))Tj +ET + endstream endobj 162 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 159 0 R/Resources<</XObject<</Fm0 161 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1508.13 506.449 1621.02 497.411]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 163 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 164 0 obj <</Subtype/Form/Length 952/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 163 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2047.73 697.751 2056.45 690.265]>>stream +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +q 1 0 0 1 2052.4512 697.7441 cm +0 0 m +-1.796 -0.206 -3.205 -1.734 -3.205 -3.585 c +-3.205 -3.927 -3.156 -4.271 -3.067 -4.584 c +-3.128 -4.577 -3.177 -4.584 -3.239 -4.584 c +-3.492 -4.584 -3.756 -4.645 -3.963 -4.757 c +-4.024 -4.792 -4.115 -4.852 -4.17 -4.895 c +-4.225 -4.939 -4.295 -5.015 -4.343 -5.067 c +-4.449 -5.19 -4.557 -5.36 -4.618 -5.516 c +-4.676 -5.672 -4.722 -5.855 -4.722 -6.032 c +-4.722 -6.246 -4.667 -6.469 -4.584 -6.652 c +-4.491 -6.845 -4.332 -7.035 -4.17 -7.17 c +-4.115 -7.213 -4.024 -7.272 -3.963 -7.308 c +-3.756 -7.42 -3.492 -7.479 -3.239 -7.479 c +-2.962 -7.479 -2.702 -7.407 -2.481 -7.273 c +-2.333 -7.178 -2.173 -7.034 -2.067 -6.894 c +-2.02 -6.827 -1.966 -6.728 -1.93 -6.652 c +-1.9 -6.588 -1.881 -6.516 -1.861 -6.445 c +-1.859 -6.44 -1.828 -6.451 -1.826 -6.445 c +-1.213 -6.928 -0.426 -7.204 0.414 -7.204 c +2.405 -7.204 3.999 -5.576 3.999 -3.585 c +3.999 -1.594 2.405 0 0.414 0 c +0.274 0 0.137 0.016 0 0 c +f +Q + endstream endobj 165 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 166 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 167 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 166 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1942.98 733.861 2071.42 722.52]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1942.9766 725.6328 Tm +(Pull latest changes from origin)Tj +ET + endstream endobj 168 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 165 0 R/Resources<</XObject<</Fm0 167 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1942.98 733.861 2071.42 722.52]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 169 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 170 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 171 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 170 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1945.97 721.477 1975.76 709.289]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1945.9746 712.6348 Tm +(git pull)Tj +ET + endstream endobj 172 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 169 0 R/Resources<</XObject<</Fm0 171 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1945.97 721.477 1975.76 709.289]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 173 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 174 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 175 0 obj <</Subtype/Form/Length 169/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 174 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1950.53 708.223 2067.75 699.185]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1950.5283 701.666 Tm +(\(does a fetch followed by a merge\))Tj +ET + endstream endobj 176 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 173 0 R/Resources<</XObject<</Fm0 175 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1950.53 708.223 2067.75 699.185]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 177 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 178 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 179 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 178 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1943.98 774.44 2080.41 763.099]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1943.9766 766.2119 Tm +(Fetch latest changes from origin)Tj +ET + endstream endobj 180 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 177 0 R/Resources<</XObject<</Fm0 179 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1943.98 774.44 2080.41 763.099]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 181 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 182 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 183 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 182 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1942.36 800.362 1998.05 779.933]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1942.3589 785.541 Tm +(Update)Tj +ET + endstream endobj 184 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 181 0 R/Resources<</XObject<</Fm0 183 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1942.36 800.362 1998.05 779.933]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 185 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 186 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 187 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 186 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 761.884 1589.29 750.542]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 753.6553 Tm +(Changes to tracked files)Tj +ET + endstream endobj 188 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 185 0 R/Resources<</XObject<</Fm0 187 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 761.884 1589.29 750.542]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 189 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 190 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 191 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 190 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1945.62 761.529 1981.7 749.342]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1945.6187 752.6875 Tm +(git fetch)Tj +ET + endstream endobj 192 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 189 0 R/Resources<</XObject<</Fm0 191 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1945.62 761.529 1981.7 749.342]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 193 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 194 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 195 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 194 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 785.703 1533.65 773.515]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 776.8604 Tm +(git status)Tj +ET + endstream endobj 196 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 193 0 R/Resources<</XObject<</Fm0 195 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 785.703 1533.65 773.515]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 197 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 198 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 199 0 obj <</Subtype/Form/Length 167/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 198 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1949.41 749.543 2055.58 740.505]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1949.4131 742.9863 Tm +(\(but this does not merge them\).)Tj +ET + endstream endobj 200 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 197 0 R/Resources<</XObject<</Fm0 199 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1949.41 749.543 2055.58 740.505]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 201 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 202 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 203 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 202 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 749.281 1522.58 737.094]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 740.4395 Tm +[(git dif)18(f )]TJ +ET + endstream endobj 204 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 201 0 R/Resources<</XObject<</Fm0 203 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 749.281 1522.58 737.094]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 205 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 206 0 obj <</Subtype/Form/Length 175/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 205 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2001.07 670.566 2128.91 661.528]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2001.0737 664.0098 Tm +(\(in case of a conflict, resolve and use )Tj +ET + endstream endobj 207 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 208 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 209 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 208 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 557.562 1568.59 545.374]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 548.7197 Tm +(git show $id:$file)Tj +ET + endstream endobj 210 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 207 0 R/Resources<</XObject<</Fm0 209 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 557.562 1568.59 545.374]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 211 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 212 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 211 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2001.07 661.016 2060.1 651.978]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 2001.0737 654.459 Tm +( git am --resolved)Tj +ET + endstream endobj 213 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 214 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 215 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 214 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 535.667 1561.57 524.325]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 527.4385 Tm +(All local branches)Tj +ET + endstream endobj 216 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 213 0 R/Resources<</XObject<</Fm0 215 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 535.667 1561.57 524.325]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 217 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 218 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 219 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 218 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1943.4 693.856 2085.19 682.515]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1943.4106 685.6279 Tm +(Apply a patch that some sent you)Tj +ET + endstream endobj 220 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 217 0 R/Resources<</XObject<</Fm0 219 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1943.4 693.856 2085.19 682.515]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 221 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 222 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 223 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 222 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 521.378 1537.67 509.19]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 512.5361 Tm +(git branch)Tj +ET + endstream endobj 224 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 221 0 R/Resources<</XObject<</Fm0 223 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 521.378 1537.67 509.19]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 225 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 226 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 227 0 obj <</Subtype/Form/Length 151/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 226 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1945.75 681.351 2041.96 669.163]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1945.7476 672.5088 Tm +(git am -3 patch.mbox)Tj +ET + endstream endobj 228 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 225 0 R/Resources<</XObject<</Fm0 227 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1945.75 681.351 2041.96 669.163]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 229 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 230 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 231 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 230 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 698.087 1565.83 686.745]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 689.8584 Tm +(History of changes)Tj +ET + endstream endobj 232 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 229 0 R/Resources<</XObject<</Fm0 231 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 698.087 1565.83 686.745]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 233 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 234 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 235 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 234 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1956.61 601.756 2040.29 590.414]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1956.6113 593.5273 Tm +(Finding regressions)Tj +ET + endstream endobj 236 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 233 0 R/Resources<</XObject<</Fm0 235 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1956.61 601.756 2040.29 590.414]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 237 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 238 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 239 0 obj <</Subtype/Form/Length 138/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 238 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 685.984 1522.78 673.797]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 677.1426 Tm +(git log )Tj +ET + endstream endobj 240 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 237 0 R/Resources<</XObject<</Fm0 239 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 685.984 1522.78 673.797]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 241 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 242 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 243 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 242 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 587.172 2028.7 574.984]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 578.3301 Tm +(git bisect start)Tj +ET + endstream endobj 244 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 245 0 obj <</Subtype/Form/Length 150/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 244 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 577.796 2048.2 565.608]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 568.9541 Tm +(git bisect good $id)Tj +ET + endstream endobj 246 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 247 0 obj <</Subtype/Form/Length 149/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 246 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 568.42 2042.46 556.232]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 559.5781 Tm +(git bisect bad $id)Tj +ET + endstream endobj 248 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 249 0 obj <</Subtype/Form/Length 150/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 248 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 549.667 2051.64 537.479]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 540.8252 Tm +(git bisect bad/good)Tj +ET + endstream endobj 250 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 251 0 obj <</Subtype/Form/Length 151/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 250 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 540.29 2048.17 528.103]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 531.4482 Tm +(git bisect visualize)Tj +ET + endstream endobj 252 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 253 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 252 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 530.914 2031.57 518.727]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1965.1367 522.0723 Tm +(git bisect reset)Tj +ET + endstream endobj 254 0 obj <</Subtype/Form/Length 120/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 241 0 R/Resources<</XObject<</Fm0 243 0 R/Fm1 245 0 R/Fm2 247 0 R/Fm3 249 0 R/Fm4 251 0 R/Fm5 253 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1965.14 587.172 2051.64 518.727]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q +q +/GS0 gs +/Fm4 Do +Q +q +/GS0 gs +/Fm5 Do +Q + endstream endobj 255 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 256 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 257 0 obj <</Subtype/Form/Length 157/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 256 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 638.119 1645.81 626.777]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 629.8906 Tm +(Who changed what and when in a file)Tj +ET + endstream endobj 258 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 255 0 R/Resources<</XObject<</Fm0 257 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 638.119 1645.81 626.777]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 259 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 260 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 261 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 260 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 626.734 1558.85 614.547]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 617.8926 Tm +(git blame $file )Tj +ET + endstream endobj 262 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 259 0 R/Resources<</XObject<</Fm0 261 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 626.734 1558.85 614.547]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 263 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 264 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 265 0 obj <</Subtype/Form/Length 161/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 264 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 499.786 2124.88 488.444]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1956.4619 491.5576 Tm +(Check for errors and cleanup repository)Tj +ET + endstream endobj 266 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 263 0 R/Resources<</XObject<</Fm0 265 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 499.786 2124.88 488.444]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 267 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 268 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 269 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 268 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 485.202 1997.05 473.015]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1964.9873 476.3604 Tm +(git fsck)Tj +ET + endstream endobj 270 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 271 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 270 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 475.826 2025.69 463.639]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1964.9873 466.9844 Tm +(git gc --prune)Tj +ET + endstream endobj 272 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 267 0 R/Resources<</XObject<</Fm0 269 0 R/Fm1 271 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 485.202 2025.69 463.639]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 273 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 274 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 275 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 274 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 725.608 1651.67 714.267]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 717.3799 Tm +(What changed between $ID1 and $ID2)Tj +ET + endstream endobj 276 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 273 0 R/Resources<</XObject<</Fm0 275 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 725.608 1651.67 714.267]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 277 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 278 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 279 0 obj <</Subtype/Form/Length 158/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 278 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 452.85 2098.21 441.508]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1956.4619 444.6211 Tm +(Search working directory for foo\(\))Tj +ET + endstream endobj 280 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 277 0 R/Resources<</XObject<</Fm0 279 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1956.46 452.85 2098.21 441.508]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 281 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 282 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 283 0 obj <</Subtype/Form/Length 155/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 282 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 714.224 1567.27 702.036]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 705.3818 Tm +[(git dif)18(f $id1 $id2)]TJ +ET + endstream endobj 284 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 281 0 R/Resources<</XObject<</Fm0 283 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 714.224 1567.27 702.036]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 285 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 286 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 287 0 obj <</Subtype/Form/Length 149/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 286 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 438.266 2030.72 426.078]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1964.9873 429.4238 Tm +(git grep "foo\(\)")Tj +ET + endstream endobj 288 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 285 0 R/Resources<</XObject<</Fm0 287 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1964.99 438.266 2030.72 426.078]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 289 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 290 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 291 0 obj <</Subtype/Form/Length 166/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 290 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 668.756 1634.4 657.414]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 660.5273 Tm +[(History of changes for file with dif)18(fs)]TJ +ET + endstream endobj 292 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 289 0 R/Resources<</XObject<</Fm0 291 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 668.756 1634.4 657.414]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 293 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 294 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 295 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 294 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2216.47 603.756 2333.71 592.414]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 2216.4697 595.5273 Tm +[(T)111(o view the merge conclicts)]TJ +ET + endstream endobj 296 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 293 0 R/Resources<</XObject<</Fm0 295 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2216.47 603.756 2333.71 592.414]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 297 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 298 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 299 0 obj <</Subtype/Form/Length 160/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 298 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 657.153 1610.4 644.966]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 648.3115 Tm +(git log -p $file $dir/ec/tory/)Tj +ET + endstream endobj 300 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 297 0 R/Resources<</XObject<</Fm0 299 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 657.153 1610.4 644.966]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 301 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 302 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 303 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 302 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.0 451.172 2328.24 438.984]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2223.9951 442.3301 Tm +(git add $conflicting_file)Tj +ET + endstream endobj 304 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 305 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 304 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2224.0 441.796 2317.93 429.608]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 2223.9951 432.9541 Tm +(git rebase --continue)Tj +ET + endstream endobj 306 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 301 0 R/Resources<</XObject<</Fm0 303 0 R/Fm1 305 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2224.0 451.172 2328.24 429.608]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 307 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 308 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 309 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 308 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 604.109 1597.27 592.768]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 595.8809 Tm +[(A)55( commit identified by $ID)]TJ +ET + endstream endobj 310 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 307 0 R/Resources<</XObject<</Fm0 309 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 604.109 1597.27 592.768]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 311 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 312 0 obj <</Subtype/Form/Length 319/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 311 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1930.1 1111.28 2416.49 826.791]>>stream +/CS0 cs 0.941 0.941 0.941 scn +1 i +/GS0 gs +q 1 0 0 1 1937.1807 1111.2783 cm +0 0 m +472.226 0 l +476.136 0 479.307 -3.17 479.307 -7.081 c +479.307 -277.405 l +479.307 -281.317 476.136 -284.487 472.226 -284.487 c +0 -284.487 l +-3.911 -284.487 -7.082 -281.317 -7.082 -277.405 c +-7.082 -7.081 l +-7.082 -3.17 -3.911 0 0 0 c +f +Q + endstream endobj 313 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 314 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 315 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 314 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 590.819 1546.83 578.632]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1492.418 581.9775 Tm +(git show $id)Tj +ET + endstream endobj 316 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 313 0 R/Resources<</XObject<</Fm0 315 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1492.42 590.819 1546.83 578.632]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 317 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 318 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 319 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 318 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2365.94 1003.27 2391.34 996.387]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 5.9363 0 0 5.8179 2365.9409 998.2764 Tm +(PUBLISH)Tj +ET + endstream endobj 320 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 317 0 R/Resources<</XObject<</Fm0 319 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2365.94 1003.27 2391.34 996.387]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 321 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 322 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 323 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 322 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.41 848.674 1751.28 828.244]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1700.4111 833.8525 Tm +(Revert)Tj +ET + endstream endobj 324 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 321 0 R/Resources<</XObject<</Fm0 323 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.41 848.674 1751.28 828.244]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 325 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 326 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 327 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 326 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2307.5 1003.35 2333.56 995.867]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2307.4956 997.9219 Tm +(COMMIT)Tj +ET + endstream endobj 328 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 325 0 R/Resources<</XObject<</Fm0 327 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2307.5 1003.35 2333.56 995.867]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 329 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 330 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 331 0 obj <</Subtype/Form/Length 144/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 330 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 781.717 1796.35 770.375]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1700.9683 773.4883 Tm +(Revert the last commit)Tj +ET + endstream endobj 332 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 329 0 R/Resources<</XObject<</Fm0 331 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 781.717 1796.35 770.375]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 333 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 334 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 335 0 obj <</Subtype/Form/Length 136/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 334 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2300.1 994.6 2335.29 981.683]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.9199 0 0 10.9199 2300.1016 985.229 Tm +(commit)Tj +ET + endstream endobj 336 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 333 0 R/Resources<</XObject<</Fm0 335 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2300.1 994.6 2335.29 981.683]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 337 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 338 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 339 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 338 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.61 769.805 1776.05 757.617]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1701.6108 760.9629 Tm +(git revert HEAD )Tj +ET + endstream endobj 340 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 337 0 R/Resources<</XObject<</Fm0 339 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.61 769.805 1776.05 757.617]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 341 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 342 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 343 0 obj <</Subtype/Form/Length 144/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 342 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 751.138 1797.41 739.796]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1700.9683 742.9092 Tm +(Revert specific commit)Tj +ET + endstream endobj 344 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 341 0 R/Resources<</XObject<</Fm0 343 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 751.138 1797.41 739.796]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 345 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 346 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 347 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 346 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2134.5 1003.35 2160.46 995.868]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2134.5015 997.9224 Tm +[(REVER)18(T)]TJ +ET + endstream endobj 348 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 345 0 R/Resources<</XObject<</Fm0 347 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2134.5 1003.35 2160.46 995.868]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 349 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 350 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 351 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 350 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2245.66 1002.85 2272.92 995.368]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2245.6582 997.4229 Tm +(BRANCH)Tj +ET + endstream endobj 352 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 349 0 R/Resources<</XObject<</Fm0 351 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2245.66 1002.85 2272.92 995.368]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 353 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 354 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 355 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 354 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 737.753 1760.52 725.565]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1700.9663 728.9111 Tm +(git revert $id )Tj +ET + endstream endobj 356 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 353 0 R/Resources<</XObject<</Fm0 355 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.97 737.753 1760.52 725.565]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 357 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 358 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 359 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 358 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2021.07 1003.35 2049.76 995.866]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3274 2021.0674 997.9209 Tm +(BROWSE)Tj +ET + endstream endobj 360 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 357 0 R/Resources<</XObject<</Fm0 359 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2021.07 1003.35 2049.76 995.866]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 361 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 362 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 363 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 362 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 677.439 1839.06 666.098]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699.9502 669.2109 Tm +(Checkout the $id version of a file)Tj +ET + endstream endobj 364 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 361 0 R/Resources<</XObject<</Fm0 363 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 677.439 1839.06 666.098]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 365 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 366 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 367 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 366 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2189.24 1003.23 2214.95 995.746]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3273 2189.2417 997.8003 Tm +[(UPDA)74(TE)]TJ +ET + endstream endobj 368 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 365 0 R/Resources<</XObject<</Fm0 367 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2189.24 1003.23 2214.95 995.746]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 369 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 370 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 371 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 370 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 664.337 1793.31 652.149]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1699.9487 655.4951 Tm +(git checkout $id $file)Tj +ET + endstream endobj 372 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 369 0 R/Resources<</XObject<</Fm0 371 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.95 664.337 1793.31 652.149]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 373 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 374 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 375 0 obj <</Subtype/Form/Length 145/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 374 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1967.88 1003.35 1993.59 995.868]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.456 0 0 6.3273 1967.8794 997.9224 Tm +[(CREA)74(TE)]TJ +ET + endstream endobj 376 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 373 0 R/Resources<</XObject<</Fm0 375 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1967.88 1003.35 1993.59 995.868]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 377 0 obj <</I false/K false/S/Transparency/Type/Group>> endobj 378 0 obj <</Subtype/Form/Length 194/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 377 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1771.6 802.218 1781.11 793.555]>>stream +/CS0 cs 0.678 0.678 0.675 scn +1 i +/GS0 gs +q 1 0 0 1 1776.3574 802.2178 cm +0 0 m +0.095 0 4.804 -8.513 4.756 -8.599 c +4.709 -8.685 -4.709 -8.685 -4.757 -8.599 c +-4.805 -8.513 -0.096 0 0 0 c +f +Q + endstream endobj 379 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 380 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 381 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 380 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2020.8 993.534 2046.51 982.137]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2020.8047 985.2656 Tm +(status)Tj +ET + endstream endobj 382 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 383 0 obj <</Subtype/Form/Length 132/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 382 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2027.23 985.826 2040.09 974.429]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2027.2285 977.5576 Tm +(log)Tj +ET + endstream endobj 384 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 385 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 384 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2022.41 978.118 2044.9 966.721]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2022.4111 969.8496 Tm +(show)Tj +ET + endstream endobj 386 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 387 0 obj <</Subtype/Form/Length 139/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 386 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2027.32 970.411 2040.33 959.014]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2027.3184 962.1426 Tm +[(dif)18(f)]TJ +ET + endstream endobj 388 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 389 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 388 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2018.93 962.703 2048.39 951.306]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6346 0 0 9.6346 2018.9277 954.4346 Tm +(branch)Tj +ET + endstream endobj 390 0 obj <</Subtype/Form/Length 100/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 379 0 R/Resources<</XObject<</Fm0 381 0 R/Fm1 383 0 R/Fm2 385 0 R/Fm3 387 0 R/Fm4 389 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2018.93 993.534 2048.39 951.306]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q +q +/GS0 gs +/Fm4 Do +Q + endstream endobj 391 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 392 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 393 0 obj <</Subtype/Form/Length 123/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 392 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1773.87 801.553 1775.8 793.559]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.9394 0 0 6.7572 1773.8711 795.7534 Tm +(!)Tj +ET + endstream endobj 394 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 391 0 R/Resources<</XObject<</Fm0 393 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1773.87 801.553 1775.8 793.559]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 395 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 396 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 397 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 396 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2136.21 992.399 2157.61 981.014]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6249 0 0 9.6249 2136.209 984.1396 Tm +(reset)Tj +ET + endstream endobj 398 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 399 0 obj <</Subtype/Form/Length 137/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 398 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2127.65 984.699 2166.17 973.314]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6249 0 0 9.6249 2127.6465 976.4395 Tm +(checkout)Tj +ET + endstream endobj 400 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 401 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 400 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2134.61 976.999 2159.21 965.614]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.6249 0 0 9.6249 2134.6055 968.7393 Tm +(revert)Tj +ET + endstream endobj 402 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 395 0 R/Resources<</XObject<</Fm0 397 0 R/Fm1 399 0 R/Fm2 401 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2127.65 992.399 2166.17 965.614]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 403 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 404 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 405 0 obj <</Subtype/Form/Length 123/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 404 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1774.1 801.329 1776.02 793.336]>>stream +BT +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.9394 0 0 6.7572 1774.0962 795.5303 Tm +(!)Tj +ET + endstream endobj 406 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 407 0 obj <</Subtype/Form/Length 218/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 406 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1774.1 801.329 1776.02 793.336]>>stream +/CS0 CS 0.631 0.506 0.114 SCN +1 i 0.579 w 4 M 1 j 1 J []0 d +/GS0 gs +q 1 0 0 1 1775.272 796.7314 cm +0 0 m +0.176 2.563 l +0.176 3.636 l +-0.579 3.636 l +-0.579 2.563 l +-0.393 0 l +0 0 l +h +0.149 -0.525 -0.702 -0.676 re +S +Q + endstream endobj 408 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 403 0 R/Resources<</XObject<</Fm0 405 0 R/Fm1 407 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1774.1 801.329 1776.02 793.336]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 409 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 410 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 411 0 obj <</Subtype/Form/Length 134/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 410 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2193.87 993.136 2209.69 981.117]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2193.8691 984.416 Tm +(pull)Tj +ET + endstream endobj 412 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 413 0 obj <</Subtype/Form/Length 136/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 412 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2190.76 985.007 2212.79 972.988]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2190.7637 976.2871 Tm +(fetch)Tj +ET + endstream endobj 414 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 415 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 414 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2187.38 976.878 2216.18 964.858]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2187.377 968.1582 Tm +(merge)Tj +ET + endstream endobj 416 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 417 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 416 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2194.72 968.749 2208.84 956.73]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.1611 0 0 10.1611 2194.7207 960.0293 Tm +(am)Tj +ET + endstream endobj 418 0 obj <</Subtype/Form/Length 80/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 409 0 R/Resources<</XObject<</Fm0 411 0 R/Fm1 413 0 R/Fm2 415 0 R/Fm3 417 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2187.38 993.136 2216.18 956.73]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q + endstream endobj 419 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 420 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 421 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 420 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1786.95 802.689 1886.35 793.652]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1786.9492 796.1328 Tm +(you cannot undo a hard reset)Tj +ET + endstream endobj 422 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 419 0 R/Resources<</XObject<</Fm0 421 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1786.95 802.689 1886.35 793.652]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 423 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 424 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 425 0 obj <</Subtype/Form/Length 135/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 424 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2365.77 995.113 2391.52 981.068]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 11.8731 0 0 11.8731 2365.7734 984.9238 Tm +(push)Tj +ET + endstream endobj 426 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 423 0 R/Resources<</XObject<</Fm0 425 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2365.77 995.113 2391.52 981.068]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 427 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 428 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 429 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 428 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.04 824.419 1844.4 813.077]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1701.04 816.1904 Tm +(Return to the last committed state)Tj +ET + endstream endobj 430 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 427 0 R/Resources<</XObject<</Fm0 429 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.04 824.419 1844.4 813.077]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 431 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 432 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 433 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 432 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1973.64 992.281 1985.51 981.297]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.2852 0 0 9.2852 1973.6396 984.3125 Tm +(init)Tj +ET + endstream endobj 434 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 435 0 obj <</Subtype/Form/Length 134/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 434 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1968.48 984.852 1990.67 973.868]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.2852 0 0 9.2852 1968.4756 976.8838 Tm +(clone)Tj +ET + endstream endobj 436 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 431 0 R/Resources<</XObject<</Fm0 433 0 R/Fm1 435 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1968.48 992.281 1990.67 973.868]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 437 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 438 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 439 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 438 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1700.68 813.507 1767.68 801.319]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1700.6826 804.665 Tm +(git reset --hard)Tj +ET + endstream endobj 440 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 437 0 R/Resources<</XObject<</Fm0 439 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1700.68 813.507 1767.68 801.319]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 441 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 442 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 443 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 442 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 718.624 1781.39 707.282]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1701.4678 710.3955 Tm +(Fix the last commit)Tj +ET + endstream endobj 444 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 441 0 R/Resources<</XObject<</Fm0 443 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 718.624 1781.39 707.282]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 445 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 446 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 447 0 obj <</Length 11404/Filter/FlateDecode/Length1 21819>>stream +H‰ìW{tLWÿsï™<0y¨ÖóNFâ‘Dâ-AE$ÞÕD=dŒ$‚¨x+ñjª©¢ê- õ¦^U©"ñ,aU—ªTÕ§1%™ùö½3«ÅÂZí÷Ï÷Gï]çžsö9ûìsöïwöžPÓ! ªOtP³‚’ä{*†'Å[FuØ’°f€›yøÄTùpÉm?À=—dûL–‘I·—ÿv¨:€æ/9&Ý4—K�õo5ΙâG\Þ¶z'à·ƒÆ[™Iàn:Sÿõ뛓RÓ\ËgR»A@l1fìðøÕþëdÀ¿#Àk'ŧYÄ»R8˜æËÉñI Jg¯¤þTê†ZƦ¤&ϸGc½vÓüËøKû¼L ªwL<ËC‚(uO¶pGÍ£±›tœ»i\Atãât`»rw8ŸðQ©)`Ÿp·Í›åj“Ø$fÎa Ð%;%-µæ¨%‹£ÖL¤YÔb¡T4©3Òdz +¢¤Ñê\\ÝÜ«T¦÷ðôò®þZ×ߨY«vºõdƒ±¾¯_ƒ†û6 +nÚ¬y‹–Z· mÛ®ý›Â:†wŠˆìÜ¥k·î=zöêÝ'ªo¿èþo x;&và;ƒaÃG$˜FšG%Ž“”<Ö2n|Jꄉ“ÒÒ'gL™:-sú»3²fΚ=gî¼ùÞ[¸({ñ’¥Ë–¿ŸóÁŠs?ZùñªÕk>YûiÞºõŸmظió–Û¶çþÅŽ‚»v~¹gï¾ý:|䫣ǎŸ8ùõ©oN}{滳8w¾¸äÂÅK—¯\ýþÚõÒù›tÒPÈQÓ`gZæÁ걦,œE³x–Ʀ±¥ü¿&lÉ~r°*o1øøh|êúøûtõIð=õ„Ûí +°†i˜;«Ë‚YGÖ !Ý©¤{œ_Ru½H7DÕå>ÕTÝ8Òev»p´ÿNå•5ö!ôíd7Û½*Ê+®7rn̺1 4Q‘\w}(påWé +^*Êí¨P{ìDî±£ÏþD”ɬ¡Z‡;[ð)fbö#·1‹°�c#òhÑù¸Œ,,Ãox€…ø�sñ®á>VaþCÖ~ÇZlÅ×8m†áXŒø 8‰S8ƒÓ(·ø &œÃw8‹í‰_±%8b˜ñ3Ê0‰…ÑHÂ$c Æb,L@*&bî “‘ŽLÅâd:Óñ.îâìA%lΓØaÅüAgþ·p7pW)Z”â®ãìpÎÛ…Ý ¸€ìÄ1ªgàæ8Ç6c…³µGð!}Nï1¬sŽ/E¶³µïCìÐÔ»÷7Ø&ÑÕBGÚ®pƒ;E¼ª¨F«yÀ^ðFu¼†xo/k¡6ê .êËðõá?4@C4Bcø#�h‚ £)š¡9Ýÿ–h…ÖÄbw[´C{¼‰CG„£"‰Îè‚®è†îèžè…Þèƒ(ôE?D£?ÞÂ�¼Äb ÞÁ ÆEâiÿ +ê#qak&$ Ë1„f2!i!,$S KÉ4Bq2á8…œF(*þLüRØ7›˜Kl˜Oì{¸¶ˆ¼»˜¸²”اø7‡Ø·‚ÐÈÅGXIü\E¶×Ö{ó“õøŒÛH¼ÜLŒÞJ|ÜŽ||®¢®à¬`^ˆ/‰/{ÕÛðñªŒøs—}”Xpœ8|’˜|Šøëà핳 î*l-!f]$]vrê1ª”¦ÄNϧÐ|1Èÿϱ¯Šå¬þxüÂØ‰§b§Â~¿Ùÿ·Ù?ãìwĘ—³_yþ)ûà ªäd¿È•<c"oJ„‚+a÷ª¼) +îB5ÁCðj …&BS¡.D:ói#5£F<ŸS죬“S¬™ÎüêB,yUŽ… Qíx‘£(?eÇKn¨f߈çó¯5Κhµ¨v¦)¹XqÏ«ò±ŠÍÝæjs±él¼òIå£ÊòÊû•·+täig¦¾ý|®ÖÖÓÖí×íÓíUó¶‰x¥°úT”¹¬±\ÖØÑÙÃj²°§zm=6ð…÷Ìñþ›ëŸÍõŠOþQ¾gFf¤V!y üSHlÛC²õô««N~‚¾1¢4WRf‘^ùyƒª›LžBÞî° E¢rߊhws…<òNù¿€ZA‘§€NŒV²QtäªÕB<äQNklâí‘ÁMd%¹,‹|žBaµ„¹Òì›ÜŸÖ* û¤i…²OªK¤û„bIëH%o‘WO³žícÍyoÚ[6K$Œâ$á²¹Aˆ#üÎH%ÈÖ‘1±t1N}3ÔÕ³5…o>IŒc›4Þ¸#Xé›A>WÎHþçý¤ÞRo:£‰f¯T¿ÙÎo‡ð˜N»„ÛXW±³ÐdbO:÷ZÒl ´$_€J"•i¡ã%¯oB ´PÈ¡õU/Úc™FÏM¼c…Šú&:Ý=Ìb´h§Ó(¡ìÒH¢Àd}>÷í6"?¬oŒ|2Öð\WÖkå|DåWI—íö¨±–›/ÕÎ|uù¢¯ñæËoôˆŠ‘ó¯EF8WŒ‹ Yt5•‰IHPšm9¢YÊ#"jQ3Ì]¼ +ÍU¦“úpAG‹ËšB_\V\ìåaðð5xÌ"*R„Z?Úr´UÆkGƒX©0gÑÞ»9eú'ꋆ„(Ú§ƒ™Ak`QÜÕPYγòhþ0ú‡—KDVëé0=‰P$sò¸¢}KˆÔƒÊ‚iÛZ½ô‹Rb}XsÁÈVU´«`A¶³à,†ÔŒ¢¯ºû>aþZK£×ŠZI/ŠÚPžŒ b²F#q Þ"×êhý‡·ÕP-<|ÆÆ³¶*¼AE»'±m+D_ÛY[ÙèÄl¢¢Ž~&ȘF ÈÓSf’ì)»ý—î*nâ<£ÿ¿«ÝÕîêØKº¬Ë’¬rØX¾¤8 ¦ÉÄi˜ø"&ÁBÆŒ„j3X¸\5´“ÂxOÀ"CJHÉhè$¦1´¥Ç$¤1$ÔÃth¦I-¥ßÊ6Wéh´ûï®fô¾÷Þ÷¾±Ž£$·ˆV½µ¢8ÇÆ¥jç~âÂnŽÕˆâEÙê¢$Jr¬f »=�HåY´D,)p c‘)hð€™8ÞÆG†‹ËJK>rjá÷›M +͘áˆ<ܱüßCïoÝÕÙxóÅ7’²øÝ³ç†ú7lÉžÎ^ÌVÙ‹‡,o#Ú²súºÕ¥_Þ·oD±¼ÔõeÞÙ0ZóÝgš÷ M]¨8fwu¡NGœºŒr\·˜L¸]2ZFÚ J_#9±GoæP=Vä§iŸ—(-‘ÊËòÃÅfø¼4C&ÅhËÉ#u¯-ü<³}õrLÎéñPlçü§^y´½»Ï‚c¥¡æn|‚ônîú^ÁÈÜ9յ٧ߊ=ö€mÒͱ/£öX™D±²€"%³2I—ZÌ Šeå(Ž(ÎVK’,jÁ[ªXõ,–•ã€{’ËïGöÄÅtO°Œ<>°êørðw]›³x裿fOe¯}±ö,U˜9ùòŠ¥é¡ÃßdÿžyUE¬Ä{€×öÆjX-Cr4;ŠÒhHžÒƒgtz[L°v`»Béõº(A&RcгJ\_Ík4¢þ™âXZkåõ:R4 ½Õ*ê±Î9U¥ˆ8YS¥Z”Q?÷÷Ñm»Ã(Ñl¶È>¤‚Úð„™n•Md«ÊÖ/›Ñ±òTçYìÁ#ŸdCmïÿ…Äiò7³íx}k¦—ºðÖþwn ™±×v>û8É +Nê'Ñ[±¨^Gx1Ï•§e †]®¼(Çç¹4ØÔ¥¬šqZ¥‰û‹‰‚<ÎÅی쒑¼¹$:u + +¼Çm�~¢>ÃDe†‰r~]A`Ü«¢ !9¤„L!s9*ÇåÇ!s„Y±•(@¸€ðË~Åoò›+P®—ë•zS½YnA-˜™…Á»`\l÷Tå½`yžà¥ÏÂ¥%ÈÒt«·žkÝ´~ÿ‹Ù£ÙOÛ‡—„Z‡Ÿü¨qKbhþ!ææ£^ùý•ºm,ÜôUö3gžä¡#©šæ'ºgýEl-€ÞûnBTü£bU,Åñœ–b´¼zbµM1äIi( Aa‚RO$Á#SñQ^Km`i^Ë@îa¤Õi8d±˜‹¼ÊëÅ–ÈíÐÓN~§ÜpûºÉ+‡eÆØGÂÎáŸ^ÆCW3¯ã‡‡³Yú*ÑG]È\'”Ììño‰%™~Ò©"‡ ¹æ[@΢HÌ 8H‚äLTGÕd\EÈhÓä†x¿zuf”ƒÉf“ÃÎñ™$í×9És™uaß’‡öiúÔ®ª_Í…ñ¯‡W®±Å·+ÏIy”Ñ€lvõˆ±NO°:Ê`4È¡ˆpC ŒFCTÇ"‡ß`YÔkcSJ Á¿Õ› +õ( <áwؽ1¢-@Ò.fÍX +…[-ª,<3zs\u 0mM&Þî³{óãž#˜s ¨š³¬4¿È_( ÀÅ�1@htúÁiÖۀݘ†QšH“iMZ—Ö¿jMÛÒö_yÕ–§<§s ÒWn�—JKò=áò9XíXø¬Â¹6&Ž>ÿÜô‡k–6þü/í†ÜUgVî}—bí×:‚xamýIߊß6Ña£dï|¬6þ§ã¡y™MéE‰ƒ?=óÕƒ¬"-X ô¹ÛUö�öë`c#"?Ú›' +2Rù>Ž×é5¬V^øºÜDž‡òåû™0IpÃOåçû¢ ±)Jå%L=ùÛ¼^ŸŸ6z|R>ÍOËwú“i.MNÃQ•g`ýÿñ{7¹~˜0ee“Ðjë’ee9"FL l8Ľnë¬Ù‘D¢¶7\]NÍ9Ðvà횪ywµnñÚŽãÂãÝÍõ‹®Ø¸ñÉÆú/’[Èšºú‘}ÙË+Öt××í€Ú1êV]¨$æ06Í2jp5;R¤œÒõLIþƤ½9&ükrNrs²ìÎ9IOÍÉ×;Ø|ùóå[.miJÿÈÿÐö+UVÌíÝúô›µá`èÓO~]ñÖéÓߎ–55Õü±ýg}sæ‚:Ï®+wªc$‘2) ÉêaaFØ,p6S&“"Ã"ßOø$J1)Q‹Ä¢”MÙ¾y›IVÌFZR,´É©Ð¼3 ¶Á¨êøÜ¼¹Ÿ:“šwë2¥¾³ÀœL9Œ}åwSAnì™5»¬-± ·hvEÇ¡5CÙóCöï.Ùlþ#ŸíZ¼›¼ÔÐÐ|eÍÆÍ WW¯ë1?øæúŽºú?¼·{Vüx]ƒêÒVà¡M³ò(€žŒyQ¯ƒk4ùRzÇv:eîÑ'‚NÄ’nG€#«›‚¹&rÙ¤J5šÓj¬(fkgÛD%q’H’I6iMÚ’ö¤#éäZp¾Õtx²¥[ÝÇx¦:µœ<Dk6?×yv±ö™—^º¶nYípljKœnüo4½oOãùÕÄ»OX×sô—™ôôé—þÜgtÔ7_9éM<á.Q¶íŽT@¬i!e/‚º2Z‹Ð”ÀS” ðÅyÂRÖi{iœBÛôÎ Wt/ìÄ<`‘QA<lÎŒŠ¹0“ry6Z<:Kw´™pKFÐQ«c ™IŸì)÷¨:i.ºÎ=õ´b›lÙî“C¿É^pâ8ý.ìMÄw’çw=qz:¥0WfÚ«árH4ORð†w +ÆIw#x’4KpK„ÊŒQ½¤îì¹”©GØfÀ†ÿ^5@Q]WøÞ÷³ûö½]–ý_~wËBèŠBØQFÿŠ +¢¢Ö!h0„Œlˆ³ÙXg’”1 ±ÖnN¥Nª«™ªÍ8i´©3Zk™Njš¦ÃÐÆ1§qw{î{„–õó¾wß½ïsîùùN¢9M-ËðæDìrûK¡9áR ¥Ê= Ézî”1ú€JàŒôýø&2††ó"Ì7õž–»#¸ ²¿úTó¡A‰9bÎrbeöºMçÃÑ€Æ=¾¥ùðËîÍàw@TÙ1ÐVÕi§¿ŽF/x½j3f°–‡N§Dÿ†( †CGLA¬¢I0ˆÐ¨`½[J JݼBò ƒj56¶Û-‹Ì’º)[dìƒ×‚o_ÀižOÃïǾÀ¡H~„kzT +±Ë˜å_ƒáë “)%Ôí/dÂ,d`"À’¦ñ +RÎÙ :$jDJ,4ˆCXfqïÚ$é»7ƒ\S‰&T¾N $g;˜–ÙÃ`:>ûtÀ0ˆá.žd¼ßDâö[±ëáÚ‹ë£7ñ™X}t³â`¬œpŒû õ äÜ\tÓ¿=-5%9‰Owò6»ÍÁCë©.ÁÀ›õ¼NÔI¼(ê2yo†×ÃgdxKd§ ˜ÊÊÔ‰éæ@̰۟‹™N‡×®Óè%x$g¤xmv£ˆ<—èµf —hÏ#ÉZÒñù&R”ÊDh¨‰þOÔ.ýûw¥ãÕ¤èx2€§uoªÏUëkjòâ—à(òàç_b*ZR‡'Ó8ådV™qíÓ*«˜±ìžg7î0ÛzÃ=fË|_uMnO¸Çb*XPµ.¿'|'lÉkóW7°ã«Z¿º;ÚÉô5´;Ë—ôF{™¾-{e%_G{¹¦¦Òòê‰(ÛÎ¥ÆÉ0ý_Qœ%J³Eé½Y£tšµæŒR°ÂQ:qϤ\Sx2FÛ¡6Ôƒ®JC²ß¤!ŒDßoÛž®“Œ¬äLWJ×ãOãÆDr¸Ù´(+{ +—P+9>²gà¹+××WùâȇX_½f”Œ=ìëñÐ×wôÏ|-ö¯ÖŽŽ‘O8aïþP¡â±ØFn'HaJò¯öfzXk„]ºËͦÉ<©�îLf›ˆŸ†#au<LqäY Ò¬SZ@è7mǯ³Á,œå'L²$±P«ÁÜó í0+ÕìÞÿåQ‰Ó‰É„ÚéÜ©è r…½mœI-ûõ¶c§×¬¨¾ö¶à?Öõç/X²£E©Þ{‚ÑO4bh}íŸ>Åî>ßñBÍʺ _ííí¯½÷“îƒÕèxÞe°ƒ‰äK-d%zh gH€f×(Á…ÈëtB‰™Ø ýº bVÙ´:“Î*˜I"2«¥»�T…m.×ÊšáHn(¿óÇÿ™µ;r'òÔò[Ê}O±]yy_^ŽpM#^ôz@Ò}à7… iú‹i‚1êyÙ-è€AH¼[v—Hz·ÌÙÑ&\ÏÙ6Ùë“f.ÝoÞ>Ï-ÉúThhSµF6sÞ, mbì[ÂÍÓ;Ú‰†Öé€Ìéo²Z¥ÙŽ\”‹³mÙöbTŒW¡U¸ÂVa¯Cu¸Ž©ËÙ…vá]Ì®œ.Ô…»˜ý¶ýö®œA4ˆ™ÁwªÕesÙSÙȲ±Ø +ì…¨W¢JÜá0’”<Ñô:h×Ëy¦t½Ù´íÍ“q…žÊwžxës£veûþØÝñuÃ[½›ûÃá+fqy_îÖãŠ?È/hih^Â1fWwÃïF=ž…… [q¬Y~iÇÉOd°ëeð€mü»( íñû1ïLr">)É))iH£ç 9å]-±ò’@”{r’Óf'‘Hw 9Š1™’¯$^rPb3ö ôÊØBÓt^3%ÁÌBhÊJ¡t’¨^\DHŽ…EeøýÔØæNfuËgi£¿|GÐuÆn¥âÜgøwc…¢Cé>û²Â#mILS?šôÄ¿äZ¹&Ðä°ôž:Qb=4ŸV‹™µMv¡j‚Õˆl‰ÞD’(t¤Û 8h4@ëHÔk ‰š°Ñš€]ŽdJÀjË©·ItŠzO8½Åâc'é7\OïÅ¡ƒçZ¡qCï°Ü}î¯yÕé]¯¼Ã'IõV8×l8÷+¦ëû¡pó–#/f7’˜m@ˆ÷€žzô¿JJì$¦@A9žÓ¥ð ¬´¼Ìñ‚ ed–Ñ#=–‘¾D„l&°”=9c0ä:I‹‰7¯)!\ +ç6QL)™P0QßCp¼!aÜèo1ˆFÑź8—8O¬LH$¿Ÿòï‰ï‰'˜Sâ)Ñ‚ˆœd¬Ò<6S*aI•ür¡Bªgëu5Òn¶EØ)n•ºØ|—®]zE_’~ƾÅÂìÏ…°8$ɨÑâ³`ò{Xìi6bý±øÇcÉ¿(Ý><«“Y½À|?Ä´E£x\íE4-(DäO‹‚ʈ™rn\y¢‚³Ì˨Ã,F€œð`ìiT=¬«©N¨ùN!ü(Y ß?4k?ªi‰½J΄t=hïù“›ž3–~‹\‚ò‰ó—î¿®Œ5ÅÛbi|@Û +ëe½²KÛKƒø»o‹Wñ:?ù‡ Ü ´“\ÁH÷ÖÃŽÿÀ½ ÃõwƒI„ùv¸pPøæ +�Íp Ï»Ø3c€4�~È”ÃzºWy^{þ ïw�@ŽøCéþÕô¾Æ¯è5™û˜Ê +2#õôÛC€µ€«ê|¼ÆËêz,�¶ÁýÀJªûÇôz)à( SÕ‰¬Uæj�eT§z˜/‚wݧó`›xŒÚàŽ*?ùêœQuˆŸÜQåF°©™î¯UõVtß§ê<©ÓZ*Ól8J¿7e3@e{=3�²â\õüÛ‚mp9}VôØ?r†P¹Û`L gKÎr#¨®�!ÀÛTr£U°æ†º–¬ÁéÞ¥ô[µÔUôü.¨ó“¶"öñ¨kâ×U ï�ŸÃ»>S¡¼¯Êr™ú)¬Ã`c\6ÅnðM|UõËø¿G9:*(žõS°v +àÝ88€³Æ·ÀnàOø¡êdãÛªß+r&©ç¯è¼šúÇCꇗ©>êgd=È…Á¯0ÌaµãVS;?~¯‚£SÆN¿ w솇èÙ�èx^}þ/ùÕÒGV…¯Çqìx„€E„x\z©¦ãd`ãUÚí²]J»ÛSÝvH€ÛU·»kR]USUíN³`ÁÏ€ b@lFB,A,ç'ð@ˆ�‹á;§nõË80³BWŸº÷<¾ó¼7_Å0¬1.*oyöÄ®y~±ø¬l¯¼ºöùdå“Õ§«Ÿ–Ï<?œÖ¾±ö˵ÜMîþuý{x~·þÙúg÷^Ý{µ±±ñÓ?ß·ñü|ópó·[ßÂó‡wxþò_?ûÿ~è„YÙâ|ŽÓlU|I<-îüqíŸ8éüùæJ4=‡öÄýéYõPÔ ½ +‰ú.³]C¯þ™¡ïâvò+C¯ãz¿7ô=±+>5ô†xOüÛÐ[âáJikûþWV¾]Ðx=Øü®¡WÄýÍg†^íúh×Ðk ¶•» }C¯ƒú¼"ä+kô›o^zEìnþÝЫ⽯úŽx¶µchÜ�¶†¾+nýÆÐëboëO†¾'~¼õ/Coˆ¯?xeè-±û ´µýåï<øµÓ<wÚÎ~îÇÉ$ úƒ\îxäÓÝÝdw"÷ƒ<ËS†–t"¯*ka(]âʤ«3^h¿:å‘ç:U²¢LžÄQÜê†ÁÇ#}ݶ¼å¾«C2-ŸTŸìNy‰•8‰ñý«™T2O•¯‡*}-ãÞ²33~úäy²÷øñx<®v˪o—íÍ«³½ù®¶7·7Ou:²,ˆ#âèTÃ^?UQ®}KöRIШ´¯-™ÇRE™è4ƒ@ÜÍUQv<�'Î| e/Ž�Lyð';1ähOGˆíNå8* Ì—*Ëb/P°'ýØ u”«œðô‚Pgr‡4²€lǽ|¬R]yÄHR¤±?ò4«ñ¸tG¹f–"/ù„däƒx”Ì00†ˆ?-¢ µ£üäŽ%‡š½NFHy6°ælXdóqœÊL#à�Õ¸¿dšÀAmBÎMèØÐx/Pz£4‚AÍ‚~,³Ø’Ù¨û‘örZ)b†ñ˜òâÈÈlÚÁ¦êÆš}(j‰!L!Šs$"+V)/ɬŠ=™ Üêj7� "©<#TF*‡qª¯t\æ“D÷UKX‹ûC5!ÃØz› +s”¨U¾ÏÞáƒñD¥@6 +Uʦ|ýˆôÃI2ÈHˆªTyP’‘D‰([¶TT_M…W+02%Ž™6À‹Â‰Jî¤:R—ˆŒBI¹)[D£ît~§~&+Ón¬írCV¨y+&hÈNÃtMW£ŸHïy .â` +M¿ÉÑ7R% šLuCM…÷н”˜Êå@eШ£Å¨ÀܬÆ}9Š|¹²8[*…7g6‹CênN%Jɦz¦dL”÷Zõáú#¸œ!·/S\�©Ã^ëØ–‡fG¶[‡5×–N[žºsçÀ>•ZßK¾p:Ç³Ž‡[kv^ÊÖ¡¬5_ÊçNóÀ’ö÷O]»Ý–-W:'§ ÇÆšÓ¬7Μæ‘܇\³Õ‘ çÄé@i§Å¢F•c·IÙ‰íÖñYÛwNç¥%N“tBiMžÖÜŽS?kÔ\yzæž¶Ú6t@mÓiº°bŸØpŠêÓ—®stܱ ÔÁ¢%;níÀ>©¹Ï-B؂ˮd–*PB‡´ÏI¸}\k4ä¾Óiw\»vB¼£fë„btÖ<¨uœVSîÛp¥†Ó¹ÀWêšsbɃÚIíÈnÏŒ›qg8²›¶[kX²}j×"GǵëæDì‰Ã·šmûÃ3,€¯4„ÛlÔð¯ÎÈØý&Ü%=–Û™Byá´mKÖ\\+�áÐm.åäãâIÉk¼”#Z»\à"iãà]k@a›`\âåú²ßx:É©¾M“C’j1E-®Üb Œ"´o±Æ$jýÅ'P1åo–Â4FPá8•Š!ì_hLÂŒF +z$¦¡22îw‡ÃØœ™ +aRS.ÌLB,›Â\lªò`LÒ�"ã4È1R¤a5 ~bŽäÔYË•eü©ÎœXÁ…'Uð¦t®1’ êÅéиÎáóò½r–æ²ÏÊ}8§ý*ÝuµÊGÐ׌e} ¢¾ž^$oCà‹DLD*Ñ‘ãÞ¾#<ñ¿Oq?ßð~‚÷>xr‘á/Z(1V¿ +ª&B<R¸S]iüjÈ\àíƒó²)ΙCjã±ä °EøkÁ~™Å\ï*-?gyò'dIòJŠ'ðè âtYo©µÔYj|ÿŒ†¨œW|ìñ›Š×X‹EJ¹GYÊQ{â1ž1?U [–¨‚;ÆïçW/ÛbóÖC¼_t”Èý²Î!kÌ𦜕ú¼§}¶A¡$]=ÞÕS‹$Ckc‹eÄò kËŒ…Zsìø¢¿¾ñÇ3/u挂lÅl»ðÛ3ùIŒöRqØ©Þ<HF¦nwDENuT8ƒ$ëóoƸ<È(ãŸÄŒ`E³í”ñé +9o¤¹Ä8³@EøsÔ—â(‘ÅYLh%Á;†•㜡ñÙƒœk®‹ÝœwK×[°8o”ÝRþ4&c®ƒ¸G,G‘òÚ¼G¥þt¡6´#Ž¡5—¢‡œÏ2× ¸Š.Ï m]ã‡5õó14¥øÊx¾„S݉êböoöºŒ\6™Vt¾Tu3Æá,”ÝЃ)WkÆ23‹>¿É†Å¿‰Àá±¾‚g¾ŽÉߘóRdÈcÛ>#Ò½i‡vŒ¤‚Ö˜gÄ,ósi…Ëæpn:"[à-ûeµù90/'Ùoe²Õ5‘™Õ[‘€åÔ 9%ÍÅÌH¹ŠbåÛfœx&Œ·Ç“€tW/Eë&yŠËdêû0àž.'áÏÍô+V +´W.÷óÕWxž°•"f#hQ,Wzå3ZÊY4‘>øÈ£YKçf©â**j¸´±£ì>ÍÏ:¡Òçéöí,Çã*l–ÉyÈrÁ S=5H3®á‚Þr%›VeÙ7˧ˆ6óN/D~Ì^ù,_¹âl¬Lý^– þòä,UZÑ;¥³¦Ë½Ïá™~(³pÝàŠ¨iñ†c™ŽNð'™â骧ó¹/pßÜ1žö’3ƒQs5]_+…wWÍqÚ1×b”¯Š¬œ‹Þ|ÿ—žÍxŠ–g÷¬ëÊŽ¢›D8½‹¤FbQc•ýï¾ÉZq>·àå{È1µ®÷ªkz%7çco!ZÇÂf[-ÑÄÙjá«#^à†éòžƒ5‰»‹s|`õ€óSãÚ¯pg¾�M[âŒu:\¼I÷K!Y·äoúzþæx¯Ò訊,ü=¾.„4IH€@�QPH€¢BwBˆ–NØ#`:D $A F! ›ˆK‹€(*¸€,Š6›û¾0â>û¾ïΙafn¦^½Þ’áŒþ˜cç¤Þ{·nÝå»·êÞҲ쵅˜ntji~Ã9ÅÈž ©%úYæ³WhJ¹þ¶ß‹`w§Ž¾R½ªÌì!{m‹ci™¦Ç´¶´ªØhŒX6AMÑò¯ Ïú´ìb#϶ AÊ~/Ú96l©Ï`dK¶eh‹JÌ—M-×ÏIšÏoðôŸkKcõ¼ãK¡±À‰„cQ~NÒºmŽ"mW™±ÂÖTæh<´ýcÖÛZǪcÙÄp”í÷˜”ì0–Ž6þS£šýÆÿýw±ñ¿LSÊLl|Z~Dn$wŠŒ„ Ñ<*7þù†|3g£hãY圕ƒ—7Ûò1F“Ï â¿ 'i-£s¡ìˆh(2þ¤J·_ãX¨ù‹£'‹¯al™NÞ;9Q‡nñÑŽìdµ0œS>ƒ]K/œbÛó‰€/<Äa‹~i8ºÑXO4YöߨL3{±ÐpùL¬ýQÆšý;!lyy\†EâXÎωQËZâÙG¾orv8²"º[FpŒÉ§’°…þ(_/7v~êWiî?õÑó»e%ï$cj|/:0îÌïœÓ¸Èð.jÅ£:ç´S¿bw ø^îBU¬ØôºÙá?Ö GºçwîJñpÀôìNOXíRœ:²$Ú©,7³±úîÜŽøû_Ñëx¶,¼¢µ,§Ïœg:[[ÝÐü_•ªõ±ÆÔ~GËró^îRlÿ–…ymúÊwÊê°ß<_¾ÿZïšðkAØî/³Ãrk¹¯Å0±¨6s‹ZE=–}¶´<´îKm®³<ŽøÓ_d£ Ðü•þ€Í�,´úYI†Ú„ +¡-Ú¡½Þ ‰è w„‘Œ¤¢ÒŽÎè‚®È@7tG&z 'zi]½u½¾}àA_ôC\†Ë1@[Ÿ¥õÂ`A®ÀPC.†cFj?®ÄU¸£0^s.˜ý;ÖT“bŒÓ§DïðRS&ë]jWŒr]S¦éº>31³Qk1sMÿYiòªÚÜ8èîBù"ƒK –šûA½Æü&#+t,VâÜŠ¬ÂmhÄí¸«±MX‹u¸ë±±I#v¶ànlÅ=¸÷á~ñ�¶áAlÇìÄCØ…‡ñvcÅ^ìÃcxO`?àI<…§ñâžÅaÁQÃsxÇñ^D'p§pgð^Æ+x¯áu¼7ñÞÆ;xïá}|€qá>Æ'øŸás|/ñ]|ßÇðCü?ÆOðSü?Ç/ðKü +¿Æoð[ü¿ÇðGü Æ_ðþŠ¿áïøÎãŸøþ A³Ë²ÚX´\–².²ÚZí¬öV‚•hu°’,wûºêúù7×̯Z쮩ª]°$PYµ¸¾ª¶*à*\V»DUæ6Òs›qˆGØãpCžcÆáftèÃ̘{¼M£wë—Â/„Ÿ§ò3á§ÂO¶ócá¹£Eê\?òð;9<ä‡Â„ï»ùžð]á;·…o_oàkÂW…¯äðå_jà™Ó›Ôá™3®Ó§f¨Ó›xºÑuêd_ujOy]'ûòDh:qž¡A|QøB§ñù ŸÓ:éÇñæ³Þf×Ñ"9PG‚<à³ÂC»«CƒÝùŒðé…|Jødˆög¨ç¹?ƒOùx*îÛ›®ö ÷¦óÑ ÷ìNW{„»g$ªÝé|¤çq—þؕLJ„;w$¨Â Ü.|P¸mjŠÚ–É:3(¼?Èû„÷yφ$µUx·pKu’Ú"¼K¸Y¸I¸QÏlnHâúé>µþ<ïìÀuÓ<j]€k›Bj°iM…j +±©ÑµfµG©à¯kµ‡wo²Q/ºM¸J?V „·xK€+ݼÙÛÜÀÂ囄˄õunUŸÃ:7kS¹´&E-íÏš...Þ¸0CÝàÂ’ÕÂÞÌ œ/¼^\Äj¯«*ª„lVju•A^§Q¸.óæ†Ô<áÜ9jnˆs]sfyÔœ +Îñº®VgëïÙ!Îòp¦^1339]û8ÝÇi®iNMa¹°L蟒¢üÂ))œ,œ$œ(,MÉW¥~N–¬àøq j¼p\‹Ý¼&È"áa0?‡>o¾ò¥wt–òæsô(os²ÅQɼZx•ðJaÞH¿Êräˆþj¤Ÿ#ús¸0W8ì<‡†x…0G8D8X8h@¢äfv€Yor þ˜Æ‰¼\xYûû¹²T¿ û +=îåÉaá¥ÂK„½õLï!¼¸{õt«^öt³Gf‚ê‘ÃÌfz]Ý»¥©î™ì–Æ•§2‚ìÚÅ£º +»´ë¬ºxØY˜.LKf'=ÛI˜ªÝO¦h±)ùL²£VØQèf²rg0IØA˜¨yƒL¶×RÚÛuf[—·O–j+Tz©Ê£K/pe‘Él“I ÊêJ$Ð:nš6[¾Å¾MeÿÏ_ÿ0�;¢ä- endstream endobj 448 0 obj <</StemV 88/FontName/VFOKNQ+BitstreamVeraSansMono-Oblique/FontFile2 447 0 R/FontStretch/Normal/FontWeight 400/Flags 34/Descent -236/FontBBox[-71 -236 691 928]/Ascent 928/FontFamily(Bitstream Vera Sans Mono)/CapHeight 729/XHeight 547/Type/FontDescriptor/ItalicAngle 0>> endobj 449 0 obj <</Subtype/TrueType/FontDescriptor 448 0 R/LastChar 233/Widths[602 0 0 0 0 0 0 0 0 0 0 0 0 602 602 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 0 602 602 0 0 0 0 0 0 0 0 0 0 0 0 602 0 602 602 0 0 0 0 602 0 602 0 0 0 0 0 0 602 602 602 602 602 602 0 602 602 0 602 0 602 602 602 602 0 602 602 602 602 0 602 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602]/BaseFont/VFOKNQ+BitstreamVeraSansMono-Oblique/FirstChar 32/Encoding/WinAnsiEncoding/Type/Font>> endobj 450 0 obj <</Subtype/Form/Length 128/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 446 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2236.67 992.47 2284.83 981.467]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10 0 0 10 2236.665 983.8252 Tm +(checkout)Tj +ET + endstream endobj 451 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 445 0 R/Resources<</XObject<</Fm0 450 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2236.67 992.47 2284.83 981.467]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 452 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 453 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 454 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 453 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1932.1 1139.06 2124.4 1116.07]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 19.4356 0 0 19.4356 1932.0967 1122.3848 Tm +(Commands Sequence)Tj +ET + endstream endobj 455 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 452 0 R/Resources<</XObject<</Fm0 454 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1932.1 1139.06 2124.4 1116.07]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 456 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 457 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 458 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 457 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2076.16 1003.12 2103.79 995.636]>>stream +BT +/CS0 cs 0.275 0.275 0.275 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 6.4561 0 0 6.3274 2076.1641 997.6904 Tm +(CHANGE)Tj +ET + endstream endobj 459 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 456 0 R/Resources<</XObject<</Fm0 458 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2076.16 1003.12 2103.79 995.636]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 460 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 461 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 462 0 obj <</Subtype/Form/Length 194/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 461 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1099.32 2377.55 1090.53]>>stream +BT +/CS0 cs 0.031 0.035 0.035 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.4251 0 0 7.4251 2182.332 1092.9434 Tm +(the curves indicate that the command on the right is usually)Tj +ET + endstream endobj 463 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 464 0 obj <</Subtype/Form/Length 201/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 463 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1090.03 2383.46 1081.25]>>stream +BT +/CS0 cs 0.031 0.035 0.035 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.4251 0 0 7.4251 2182.332 1083.6621 Tm +[(executed after the command on the left. )18(This gives an idea of)]TJ +ET + endstream endobj 465 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 466 0 obj <</Subtype/Form/Length 185/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 465 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1080.75 2359.38 1071.97]>>stream +BT +/CS0 cs 0.031 0.035 0.035 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.4251 0 0 7.4251 2182.332 1074.3809 Tm +(the flow of commands someone usually does with Git.)Tj +ET + endstream endobj 467 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 460 0 R/Resources<</XObject<</Fm0 462 0 R/Fm1 464 0 R/Fm2 466 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2182.33 1099.32 2383.46 1071.97]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 468 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 469 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 470 0 obj <</Subtype/Form/Length 141/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 469 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2348.43 980.175 2406.52 971.329]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 8.0402 0 0 8.0402 2348.4277 973.2246 Tm +(format-patch)Tj +ET + endstream endobj 471 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 468 0 R/Resources<</XObject<</Fm0 470 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2348.43 980.175 2406.52 971.329]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 472 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 473 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 474 0 obj <</Subtype/Form/Length 127/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 473 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2241.17 980.917 2277.29 969.913]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10 0 0 10 2241.1699 972.2715 Tm +(branch)Tj +ET + endstream endobj 475 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 472 0 R/Resources<</XObject<</Fm0 474 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2241.17 980.917 2277.29 969.913]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 476 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 477 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 478 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 477 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1463.06 475.648 1628.21 455.219]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1463.0605 460.8271 Tm +(Cheat Sheet Notation)Tj +ET + endstream endobj 479 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 476 0 R/Resources<</XObject<</Fm0 478 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1463.06 475.648 1628.21 455.219]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 480 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 481 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 482 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 481 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1924.78 582.838 1945.21 440.777]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 0 17.2716 -17.2716 0 1939.6006 440.7773 Tm +(Useful Commands)Tj +ET + endstream endobj 483 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 480 0 R/Resources<</XObject<</Fm0 482 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1924.78 582.838 1945.21 440.777]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 484 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 485 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 486 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 485 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1596.52 1083.63 1707.77 1063.39]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.1052 0 0 17.1052 1596.5195 1068.9473 Tm +[( http://git.or)55(.cz/)]TJ +ET + endstream endobj 487 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 484 0 R/Resources<</XObject<</Fm0 486 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1596.52 1083.63 1707.77 1063.39]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 488 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 489 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 490 0 obj <</Subtype/Form/Length 122/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 489 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2405.0 421.365 2429.1 416.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 417.9072 Tm +(Zack Rusin)Tj +ET + endstream endobj 491 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 492 0 obj <</Subtype/Form/Length 133/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 491 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2405.02 417.365 2455.59 412.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 413.9072 Tm +(Based on the work of:)Tj +ET + endstream endobj 493 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 494 0 obj <</Subtype/Form/Length 131/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 493 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2405.02 413.365 2443.55 408.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 409.9072 Tm +(S\351bastien Pierre)Tj +ET + endstream endobj 495 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 496 0 obj <</Subtype/Form/Length 124/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 495 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 449 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[2404.77 409.365 2433.91 404.964]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 4 0 0 4 2405.0151 405.9072 Tm +(Xprima Corp.)Tj +ET + endstream endobj 497 0 obj <</Subtype/Form/Length 80/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 488 0 R/Resources<</XObject<</Fm0 490 0 R/Fm1 492 0 R/Fm2 494 0 R/Fm3 496 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[2404.77 421.365 2455.59 404.964]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q + endstream endobj 498 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 499 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 500 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 499 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 705.521 1804.53 693.334]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1701.4668 696.6797 Tm +(git commit -a --amend )Tj +ET + endstream endobj 501 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 498 0 R/Resources<</XObject<</Fm0 500 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.47 705.521 1804.53 693.334]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 502 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 503 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 504 0 obj <</Subtype/Form/Length 168/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 503 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1718.59 692.997 1817.54 683.959]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1718.5854 686.4404 Tm +(\(after editing the broken files\))Tj +ET + endstream endobj 505 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 502 0 R/Resources<</XObject<</Fm0 504 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1718.59 692.997 1817.54 683.959]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 506 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 507 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 508 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 507 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 768.866 1865.41 759.828]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1789.4004 762.3096 Tm +(Creates a new commit)Tj +ET + endstream endobj 509 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 506 0 R/Resources<</XObject<</Fm0 508 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 768.866 1865.41 759.828]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 510 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 511 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 512 0 obj <</Subtype/Form/Length 154/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 511 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 736.339 1865.41 727.301]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 7.6407 0 0 7.6407 1789.4004 729.7822 Tm +(Creates a new commit)Tj +ET + endstream endobj 513 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 510 0 R/Resources<</XObject<</Fm0 512 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1789.4 736.339 1865.41 727.301]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 514 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 515 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 516 0 obj <</Subtype/Form/Length 129/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 515 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1494.91 1125.99 1559.75 1076.68]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 41.6828 0 0 41.6828 1494.9072 1090.2168 Tm +(Git )Tj +ET + endstream endobj 517 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 518 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 517 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1559.75 1125.99 1791.49 1076.68]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 41.6828 0 0 41.6828 1559.752 1090.2168 Tm +(Cheat Sheet)Tj +ET + endstream endobj 519 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 514 0 R/Resources<</XObject<</Fm0 516 0 R/Fm1 518 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1494.91 1125.99 1791.49 1076.68]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 520 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 521 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 522 0 obj <</Subtype/Form/Length 142/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 521 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1701.23 646.095 1755.96 625.665]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1701.2314 631.2734 Tm +(Branch)Tj +ET + endstream endobj 523 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 520 0 R/Resources<</XObject<</Fm0 522 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1701.23 646.095 1755.96 625.665]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 524 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 525 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 526 0 obj <</Subtype/Form/Length 130/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 525 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.56 958.472 1545.4 938.042]>>stream +BT +/CS0 cs 1 1 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1493.5571 943.6504 Tm +(Create)Tj +ET + endstream endobj 527 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 524 0 R/Resources<</XObject<</Fm0 526 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.56 958.472 1545.4 938.042]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 528 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 529 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 530 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 529 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1698.32 583.467 1818.25 572.125]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1698.3164 575.2383 Tm +(Merge branch1 into branch2)Tj +ET + endstream endobj 531 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 528 0 R/Resources<</XObject<</Fm0 530 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1698.32 583.467 1818.25 572.125]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 532 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 533 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 534 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 533 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 877.303 1566.09 865.961]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.6904 869.0742 Tm +(From existing repo)Tj +ET + endstream endobj 535 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 532 0 R/Resources<</XObject<</Fm0 534 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 877.303 1566.09 865.961]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 536 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 537 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 538 0 obj <</Subtype/Form/Length 152/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 537 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.31 570.864 1803.13 558.677]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.3145 562.0225 Tm +(git checkout $branch2)Tj +ET + endstream endobj 539 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 540 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 539 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.31 562.621 1785.36 550.434]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.3145 553.7793 Tm +(git merge branch1)Tj +ET + endstream endobj 541 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 536 0 R/Resources<</XObject<</Fm0 538 0 R/Fm1 540 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.31 570.864 1803.13 550.434]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 542 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 543 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 544 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 543 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 930.274 1565.56 918.933]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.6904 922.0459 Tm +(From existing data)Tj +ET + endstream endobj 545 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 542 0 R/Resources<</XObject<</Fm0 544 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.69 930.274 1565.56 918.933]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 546 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 547 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 548 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 547 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.0 542.631 1871.18 531.289]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699 534.4023 Tm +(Create branch named $branch based on)Tj +ET + endstream endobj 549 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 550 0 obj <</Subtype/Form/Length 125/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 549 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1699.0 530.646 1744.3 519.304]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1699 522.417 Tm +( the HEAD)Tj +ET + endstream endobj 551 0 obj <</Subtype/Form/Length 40/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 546 0 R/Resources<</XObject<</Fm0 548 0 R/Fm1 550 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1699.0 542.631 1871.18 519.304]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q + endstream endobj 552 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 553 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 554 0 obj <</Subtype/Form/Length 153/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 553 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 916.672 1599.42 904.484]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493.189 907.8301 Tm +(cd ~/projects/myproject)Tj +ET + endstream endobj 555 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 556 0 obj <</Subtype/Form/Length 137/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 555 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 906.884 1520.11 894.696]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493.189 898.042 Tm +(git init)Tj +ET + endstream endobj 557 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 558 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 557 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 897.096 1532.71 884.908]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493.189 888.2539 Tm +(git add . )Tj +ET + endstream endobj 559 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 552 0 R/Resources<</XObject<</Fm0 554 0 R/Fm1 556 0 R/Fm2 558 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.19 916.672 1599.42 884.908]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 560 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 561 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 562 0 obj <</Subtype/Form/Length 149/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 561 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1702.43 519.625 1787.78 507.437]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1702.4316 510.7832 Tm +(git branch $branch)Tj +ET + endstream endobj 563 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 560 0 R/Resources<</XObject<</Fm0 562 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1702.43 519.625 1787.78 507.437]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 564 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 565 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 566 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 565 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 866.013 1655.67 853.825]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493 857.1709 Tm +(git clone ~/existing/repo ~/new/repo)Tj +ET + endstream endobj 567 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 568 0 obj <</Subtype/Form/Length 162/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 567 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 856.224 1638.47 844.036]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493 847.3818 Tm +(git clone git://host.org/project.git)Tj +ET + endstream endobj 569 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 570 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 569 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 846.436 1656.95 834.248]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 10.3037 0 0 10.3037 1493 837.5937 Tm +(git clone ssh://you@host.org/proj.git)Tj +ET + endstream endobj 571 0 obj <</Subtype/Form/Length 60/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 564 0 R/Resources<</XObject<</Fm0 566 0 R/Fm1 568 0 R/Fm2 570 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.0 866.013 1656.95 834.248]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q + endstream endobj 572 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 573 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 574 0 obj <</Subtype/Form/Length 146/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 573 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 619.243 1800.6 607.901]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1698.2588 611.0146 Tm +(Switch to the $id branch)Tj +ET + endstream endobj 575 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 572 0 R/Resources<</XObject<</Fm0 574 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1698.26 619.243 1800.6 607.901]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 576 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 577 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 578 0 obj <</Subtype/Form/Length 134/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 577 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1510.84 1051.91 1566.25 1040.57]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1510.8389 1043.6855 Tm +(Remember: )Tj +ET + endstream endobj 579 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 580 0 obj <</Subtype/Form/Length 148/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 579 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1566.25 1051.91 1648.32 1040.57]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1566.2544 1043.6855 Tm +(git command --help)Tj +ET + endstream endobj 581 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 582 0 obj <</Subtype/Form/Length 180/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 581 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1510.84 1027.94 1743.73 1016.6]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1510.8389 1019.7139 Tm +(Global Git configuration is stored in $HOME/.gitconfig \()Tj +ET + endstream endobj 583 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 584 0 obj <</Subtype/Form/Length 147/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 583 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1743.73 1027.94 1809.29 1016.6]>>stream +BT +/CS0 cs 0.11 0.306 1 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1743.7324 1019.7139 Tm +(git config --help)Tj +ET + endstream endobj 585 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 586 0 obj <</Subtype/Form/Length 126/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 585 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1809.29 1027.94 1815.15 1016.6]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1809.2891 1019.7139 Tm +(\) )Tj +ET + endstream endobj 587 0 obj <</Subtype/Form/Length 100/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 576 0 R/Resources<</XObject<</Fm0 578 0 R/Fm1 580 0 R/Fm2 582 0 R/Fm3 584 0 R/Fm4 586 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1510.84 1051.91 1815.15 1016.6]>>stream +q +/GS0 gs +/Fm0 Do +Q +q +/GS0 gs +/Fm1 Do +Q +q +/GS0 gs +/Fm2 Do +Q +q +/GS0 gs +/Fm3 Do +Q +q +/GS0 gs +/Fm4 Do +Q + endstream endobj 588 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 589 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 590 0 obj <</Subtype/Form/Length 156/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 589 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 797.114 1631.39 785.772]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 788.8857 Tm +(Files changed in working directory)Tj +ET + endstream endobj 591 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 588 0 R/Resources<</XObject<</Fm0 590 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.42 797.114 1631.39 785.772]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 592 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 593 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 594 0 obj <</Subtype/Form/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 593 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1493.12 828.082 1536.33 807.651]>>stream +BT +/CS0 cs 0.667 0.667 0.667 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 17.2716 0 0 17.2716 1493.1226 813.2598 Tm +(Show)Tj +ET + endstream endobj 595 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 592 0 R/Resources<</XObject<</Fm0 594 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1493.12 828.082 1536.33 807.651]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 596 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 597 0 obj <</I true/K false/S/Transparency/Type/Group>> endobj 598 0 obj <</Subtype/Form/Length 163/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 597 0 R/Resources<</ColorSpace<</CS0 7 0 R>>/Font<</TT0 9 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 569.851 1623.91 558.509]>>stream +BT +/CS0 cs 0 0 0 scn +1 i +/GS0 gs +/TT0 1 Tf +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 9.5886 0 0 9.5886 1486.4248 561.6221 Tm +[(A)55( specific file from a specific $ID)]TJ +ET + endstream endobj 599 0 obj <</Subtype/Form/Length 20/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Group 596 0 R/Resources<</XObject<</Fm0 598 0 R>>/ExtGState<</GS0 22 0 R>>>>/BBox[1486.41 569.851 1623.91 558.509]>>stream +q +/GS0 gs +/Fm0 Do +Q + endstream endobj 600 0 obj [/ICCBased 19 0 R] endobj 601 0 obj <</C0[1.0 0.713726 0.12549]/C1[1.0 0.713726 0.12549]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 602 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[601 0 R]/Bounds[]>> endobj 603 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 602 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 604 0 obj <</C0[1.0 1.0 1.0]/C1[1.0 1.0 1.0]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 605 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[604 0 R]/Bounds[]>> endobj 606 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 605 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 607 0 obj <</C0[1.0 1.0 1.0]/C1[0.737255 0.745098 0.752941]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 608 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[607 0 R]/Bounds[]>> endobj 609 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 608 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 610 0 obj <</C0[0.309804 0.364706 0.913725]/C1[0.109804 0.305882 1.0]/FunctionType 2/N 1.0/Domain[0.0 1.0]>> endobj 611 0 obj <</FunctionType 3/Encode[0.0 1.0]/Domain[0.0 1.0]/Functions[610 0 R]/Bounds[]>> endobj 612 0 obj <</ColorSpace 600 0 R/AntiAlias false/Coords[0.0 0.0 1.0 0.0]/Function 611 0 R/Extend[true true]/Domain[0.0 1.0]/ShadingType 2>> endobj 613 0 obj <</OPM 1/BM/Normal/CA 0.541962/OP false/SMask/None/ca 0.541962/AIS false/op false/Type/ExtGState/SA true>> endobj 614 0 obj <</OPM 1/BM/Normal/CA 0.706299/OP false/SMask/None/ca 0.706299/AIS false/op false/Type/ExtGState/SA true>> endobj 615 0 obj <</OPM 1/BM/Normal/CA 0.954544/OP false/SMask/None/ca 0.954544/AIS false/op false/Type/ExtGState/SA true>> endobj 616 0 obj <</I false/K false/CS 617 0 R/S/Transparency>> endobj 617 0 obj [/ICCBased 19 0 R] endobj 1 0 obj <</Count 1/Type/Pages/Kids[6 0 R]>> endobj 2 0 obj <</Subtype/XML/Length 41050/Type/Metadata>>stream +<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> +<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c036 46.277092, Fri Feb 23 2007 14:16:18 "> + <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> + <rdf:Description rdf:about="" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <dc:format>application/pdf</dc:format> + <dc:title> + <rdf:Alt> + <rdf:li xml:lang="x-default">git-cheat-sheet</rdf:li> + </rdf:Alt> + </dc:title> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xap="http://ns.adobe.com/xap/1.0/" + xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"> + <xap:CreatorTool>Adobe Illustrator CS3</xap:CreatorTool> + <xap:CreateDate>2007-12-31T15:32:55-07:00</xap:CreateDate> + <xap:ModifyDate>2007-12-31T15:32:55-07:00</xap:ModifyDate> + <xap:MetadataDate>2007-12-31T15:32:55-07:00</xap:MetadataDate> + <xap:Thumbnails> + <rdf:Alt> + <rdf:li rdf:parseType="Resource"> + <xapGImg:width>256</xapGImg:width> + <xapGImg:height>196</xapGImg:height> + <xapGImg:format>JPEG</xapGImg:format> + <xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAxAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxrzP5svtO1fT
dC0bTV1XXNSSa4SCW4+q28NrbFFlnnmEdw6jnMiqFiYknFWMeY/zjvPLOkyXPmDQTZajD9bB05Zp
5jcC1aALLZyx2rLLC/1peTyemyb/AAmjUVZdrPmiW2GlQaZZNe6jrJJs7admswsaR+pJJOZI2kiC
KQCvpl6mnHM3SaUZBKc5cMIDc1Z35ACxufeAwnOiB1KTXX5lSaVqVjYeYdIm0+S6+vCWSAy3q0sl
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
IV1D1f8AEvGv+9a/XK+v/ovL6xTp8fWm1cVf/9k=</xapGImg:image> + </rdf:li> + </rdf:Alt> + </xap:Thumbnails> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/" + xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"> + <xapMM:DocumentID>uuid:C94FEAC825B9DC119493EFD327A74A4F</xapMM:DocumentID> + <xapMM:InstanceID>uuid:665becf3-7209-2d46-8ddb-af2c09923db0</xapMM:InstanceID> + <xapMM:DerivedFrom rdf:parseType="Resource"> + <stRef:instanceID>uuid:C84FEAC825B9DC119493EFD327A74A4F</stRef:instanceID> + <stRef:documentID>uuid:C74FEAC825B9DC119493EFD327A74A4F</stRef:documentID> + </xapMM:DerivedFrom> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:xapTPg="http://ns.adobe.com/xap/1.0/t/pg/" + xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" + xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#" + xmlns:xapG="http://ns.adobe.com/xap/1.0/g/"> + <xapTPg:NPages>1</xapTPg:NPages> + <xapTPg:HasVisibleTransparency>True</xapTPg:HasVisibleTransparency> + <xapTPg:HasVisibleOverprint>False</xapTPg:HasVisibleOverprint> + <xapTPg:MaxPageSize rdf:parseType="Resource"> + <stDim:w>51.500000</stDim:w> + <stDim:h>24.000000</stDim:h> + <stDim:unit>Inches</stDim:unit> + </xapTPg:MaxPageSize> + <xapTPg:Fonts> + <rdf:Bag> + <rdf:li rdf:parseType="Resource"> + <stFnt:fontName>ArialMT</stFnt:fontName> + <stFnt:fontFamily>Arial</stFnt:fontFamily> + <stFnt:fontFace>Regular</stFnt:fontFace> + <stFnt:fontType>Open Type</stFnt:fontType> + <stFnt:versionString>Version 5.01.2x</stFnt:versionString> + <stFnt:composite>False</stFnt:composite> + <stFnt:fontFileName>Arial.ttf</stFnt:fontFileName> + </rdf:li> + <rdf:li rdf:parseType="Resource"> + <stFnt:fontName>BitstreamVeraSansMono-Oblique</stFnt:fontName> + <stFnt:fontFamily>Bitstream Vera Sans Mono</stFnt:fontFamily> + <stFnt:fontFace>Oblique</stFnt:fontFace> + <stFnt:fontType>TrueType</stFnt:fontType> + <stFnt:versionString>Release 1.10</stFnt:versionString> + <stFnt:composite>False</stFnt:composite> + <stFnt:fontFileName>VeraMoIt.ttf</stFnt:fontFileName> + </rdf:li> + </rdf:Bag> + </xapTPg:Fonts> + <xapTPg:PlateNames> + <rdf:Seq> + <rdf:li>Cyan</rdf:li> + <rdf:li>Magenta</rdf:li> + <rdf:li>Yellow</rdf:li> + <rdf:li>Black</rdf:li> + </rdf:Seq> + </xapTPg:PlateNames> + <xapTPg:SwatchGroups> + <rdf:Seq> + <rdf:li rdf:parseType="Resource"> + <xapG:groupName>Default Swatch Group</xapG:groupName> + <xapG:groupType>0</xapG:groupType> + </rdf:li> + </rdf:Seq> + </xapTPg:SwatchGroups> + </rdf:Description> + <rdf:Description rdf:about="" + xmlns:pdf="http://ns.adobe.com/pdf/1.3/"> + <pdf:Producer>Adobe PDF library 8.00</pdf:Producer> + </rdf:Description> + </rdf:RDF> +</x:xmpmeta> + + + + + + + + + + + + + + + + + + + + + +<?xpacket end="w"?> endstream endobj 3 0 obj <</CreationDate(D:20071231153255-07'00')/Creator(Adobe Illustrator CS3)/Producer(Adobe PDF library 8.00)/ModDate(D:20071231153255-07'00')/Title(git-cheat-sheet)>> endobj xref 0 4 0000000000 65535 f +0000210179 00000 n +0000210230 00000 n +0000251357 00000 n +trailer <</Size 4>> startxref 116 %%EOF \ No newline at end of file diff --git a/learning-git/resources/git-refcard.pdf b/learning-git/resources/git-refcard.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6742385ea42d6c97503694c4b588d531b3602ee9 Binary files /dev/null and b/learning-git/resources/git-refcard.pdf differ diff --git a/learning-git/resources/github-git-cheat-sheet.pdf b/learning-git/resources/github-git-cheat-sheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..64ddc41968b794b327ba2350ee2b9094dc2672ee Binary files /dev/null and b/learning-git/resources/github-git-cheat-sheet.pdf differ diff --git a/learning-git/resources/img/1.png b/learning-git/resources/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..eddf86b2bf2ae4489c4cb426eedc926e1f31fc44 Binary files /dev/null and b/learning-git/resources/img/1.png differ diff --git a/learning-git/resources/img/10.png b/learning-git/resources/img/10.png new file mode 100644 index 0000000000000000000000000000000000000000..2e625915fb2a42178b20a6c4e6c224891f5e1eef Binary files /dev/null and b/learning-git/resources/img/10.png differ diff --git a/learning-git/resources/img/11.png b/learning-git/resources/img/11.png new file mode 100644 index 0000000000000000000000000000000000000000..183798ac6969ac5b8bf7687f7bff28fb8af6d640 Binary files /dev/null and b/learning-git/resources/img/11.png differ diff --git a/learning-git/resources/img/12.png b/learning-git/resources/img/12.png new file mode 100644 index 0000000000000000000000000000000000000000..ee550f0a2132a3a2eac23922efefeac90fe10f8b Binary files /dev/null and b/learning-git/resources/img/12.png differ diff --git a/learning-git/resources/img/13.png b/learning-git/resources/img/13.png new file mode 100644 index 0000000000000000000000000000000000000000..6d33ebf5645782ae2bf86f1210c8be2bd80c2934 Binary files /dev/null and b/learning-git/resources/img/13.png differ diff --git a/learning-git/resources/img/14.png b/learning-git/resources/img/14.png new file mode 100644 index 0000000000000000000000000000000000000000..ed86042ce876e42bff45e24fde105dfd76110b35 Binary files /dev/null and b/learning-git/resources/img/14.png differ diff --git a/learning-git/resources/img/15.png b/learning-git/resources/img/15.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bd6dcedc2db6daf9fc75ebff5d810712ed722b Binary files /dev/null and b/learning-git/resources/img/15.png differ diff --git a/learning-git/resources/img/16.png b/learning-git/resources/img/16.png new file mode 100644 index 0000000000000000000000000000000000000000..fe00618019a4caf21b0db5d1b029fb34aab25f12 Binary files /dev/null and b/learning-git/resources/img/16.png differ diff --git a/learning-git/resources/img/17.png b/learning-git/resources/img/17.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0cac424eda71662fac3f622a63e39cbf32175b Binary files /dev/null and b/learning-git/resources/img/17.png differ diff --git a/learning-git/resources/img/18.png b/learning-git/resources/img/18.png new file mode 100644 index 0000000000000000000000000000000000000000..300b596bbac1e713211d1bcd0f01bee83a2991a7 Binary files /dev/null and b/learning-git/resources/img/18.png differ diff --git a/learning-git/resources/img/2.png b/learning-git/resources/img/2.png new file mode 100644 index 0000000000000000000000000000000000000000..03b9010de488a8700451928df4cdc3ed0f44aa38 Binary files /dev/null and b/learning-git/resources/img/2.png differ diff --git a/learning-git/resources/img/3.png b/learning-git/resources/img/3.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e3e5f9dc25d92131d2ba88ccf0666f7891731e Binary files /dev/null and b/learning-git/resources/img/3.png differ diff --git a/learning-git/resources/img/4.png b/learning-git/resources/img/4.png new file mode 100644 index 0000000000000000000000000000000000000000..9576e163450874f28f0e51889dda3ae8bec1f38f Binary files /dev/null and b/learning-git/resources/img/4.png differ diff --git a/learning-git/resources/img/5.png b/learning-git/resources/img/5.png new file mode 100644 index 0000000000000000000000000000000000000000..61dce00dba987593059b9b5fc0153a23f1df2889 Binary files /dev/null and b/learning-git/resources/img/5.png differ diff --git a/learning-git/resources/img/6.png b/learning-git/resources/img/6.png new file mode 100644 index 0000000000000000000000000000000000000000..d2fa7c5f09e90a747fd9b8510d562cdf46a878df Binary files /dev/null and b/learning-git/resources/img/6.png differ diff --git a/learning-git/resources/img/8.png b/learning-git/resources/img/8.png new file mode 100644 index 0000000000000000000000000000000000000000..161561da46a577ee388c779b1aff1eb8b0c09936 Binary files /dev/null and b/learning-git/resources/img/8.png differ diff --git a/learning-git/resources/img/9.png b/learning-git/resources/img/9.png new file mode 100644 index 0000000000000000000000000000000000000000..fd20868cadad6b626460a22e7b7310298de668c0 Binary files /dev/null and b/learning-git/resources/img/9.png differ diff --git a/learning-git/resources/img/git_gui.png b/learning-git/resources/img/git_gui.png new file mode 100644 index 0000000000000000000000000000000000000000..d0b7c0752aa0dce3742b43d9e8c5e5153609f5af Binary files /dev/null and b/learning-git/resources/img/git_gui.png differ diff --git a/learning-git/resources/img/token_2.png b/learning-git/resources/img/token_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f7529ebffa3fcddc6489831f4936d74c0aaf857f Binary files /dev/null and b/learning-git/resources/img/token_2.png differ diff --git a/learning-git/resources/img/token_3.png b/learning-git/resources/img/token_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca20e8c263307f8f1c2032b13c7b36d3358e9b6 Binary files /dev/null and b/learning-git/resources/img/token_3.png differ diff --git a/learning-git/resources/img/token_4.png b/learning-git/resources/img/token_4.png new file mode 100644 index 0000000000000000000000000000000000000000..14808dfb591eb9ef20151f08bbe5a70d62c548fc Binary files /dev/null and b/learning-git/resources/img/token_4.png differ diff --git a/learning-git/resources/img/token_5.png b/learning-git/resources/img/token_5.png new file mode 100644 index 0000000000000000000000000000000000000000..189996d6231d4066b23f168b7632e1dfe8fb4562 Binary files /dev/null and b/learning-git/resources/img/token_5.png differ diff --git a/learning-git/resources/tricky.md b/learning-git/resources/tricky.md new file mode 100644 index 0000000000000000000000000000000000000000..8fa78aa5b9fa326429e71cb6bd222f0dba5c9ade --- /dev/null +++ b/learning-git/resources/tricky.md @@ -0,0 +1,42 @@ +# Git_Training + +## Tricky commands + +Here are a few commands that you may not know yet, or that offer options you haven’t been aware of so far. + +### git-stash + +`git stash` is something that can be incredibly handy. What it does is very simple: If you run `git stash save` it will take all the changes you have in your working directory and the index, and save them away, leaving you with a clean working directory. Once you’ve done what you wanted to do, you can restore your changes by running `git stash pop` + +But it gets better: since `git stash` saves your changes in a commit, you can stash more than once, and you’ll get a nice list of commits with your stashed changes. `git stash` will also keep track of what branch you stashed your changes on, so you’ll know later on what stashed change exactly you want to restore. + +`git stash list` will list all the stashes you’ve saved away, `git stash apply` will apply the topmost stashed commit onto your working directory, `git stash pop` will also remove the stashed commit in addition to applying it. `git stash clear` throws away all your stashes, and `git stash drop` allows you to remove a single stash. + +### git-rebase + +`git rebase` can be a very tricky command, although its purpose is very simple: Given a range of commits as well as a starting point, it will port the given commits onto that starting point, preserving the commits themselves, but also allowing you to keep a linear history (that is, no merge commit). + +Most of the time you’ll give it just one ref: The branch you’ll want your current branch to rebase onto. `git rebase` then figures out where those two branches diverged, and use that as the beginning of the commit range. If you pass it a second argument, `git rebase` will first switch to that branch before porting your commits. + +It also has one very useful flag: `--interactive`. If you pass this flag, Git will launch your favorite editor with a list of all the commits it is going to rebase. All commits are prefixed with `pick` by default, but you can either drop commits entirely (just delete their line), reorder them to your liking, or `edit` if you’d like to edit or amend the commit (note that this also allows you to split commits), `reword` if you’d just like to change the commit message, and `squash` or `fixup` if you want to squash the commit with the previous one. `fixup` will reuse the previous commit’s message, while `squash` allows you to edit the new commit’s message. + +The interactive mode is very useful when you’re working on some idea you’ve had, make a commit, and later on realize that it isn’t quite working out that way. You commit a fix, but the commit it fixes is already buried in other commits, so you can’t simply amend. `git rebase --interactive` allows you squash those two commits together and make it look like you never made the mistake in the first place. + +### git-push + +This is a command that you’re probably using often already, but it gained a few more useful options in recent versions: + +- `-u` or `--set-upstream`: When doing `git push <repo> local-branch:remote-branch`, you can use `-u` to tell Git to set up `remote-branch` as the default upstream branch, so you’ll only need to do `git push` in future. +- `--delete`: Instead of pushing the specified refs, it will instead delete them from the remote repository. + +### git-reflog + +Whenever an operation changes the tip of a branch, the Reflog mechanism records the old and new locations. `git reflog` allows you to access and manage this information. + +This is very useful and potentially life saving after any command that (seemingly) changes the history of your repository, like `git rebase` or `git filter-branch`. While these commands do indeed change commits, the old commits aren’t deleted, they are merely unreachable by normal means (This is also the reason why Git will occasionally run `git gc` on your repo). However, using the Reflog mechanism you can find out the SHA1’s of these commits, and restore them if you need to. + +`git reflog` lists all the recorded reflog information, and you can then specify any point in the reflog using the syntax `head@{0}` (where `head` is any kind of ref, and `0` to specify the very first reflog entry). For example, if you just did a rebase, but decided that you messed up somehow, you can restore your branch to its state before the rebase by using this command: + +```bash +git reset head@{1} +``` diff --git a/learning-git/slides/assets/01.png b/learning-git/slides/assets/01.png new file mode 100644 index 0000000000000000000000000000000000000000..db10cd235a69cfa29dc507842eead199dbfea943 Binary files /dev/null and b/learning-git/slides/assets/01.png differ diff --git a/learning-git/slides/assets/02.png b/learning-git/slides/assets/02.png new file mode 100644 index 0000000000000000000000000000000000000000..74250cdd91004d9ee98b119a92ff63e6e0bd4002 Binary files /dev/null and b/learning-git/slides/assets/02.png differ diff --git a/learning-git/slides/assets/03.png b/learning-git/slides/assets/03.png new file mode 100644 index 0000000000000000000000000000000000000000..1163718074c6d699cafcf25bb5dc1718b1f0bb96 Binary files /dev/null and b/learning-git/slides/assets/03.png differ diff --git a/learning-git/slides/assets/04.png b/learning-git/slides/assets/04.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9512f52b02569fa8e22c9ce2f4a35a490958c6 Binary files /dev/null and b/learning-git/slides/assets/04.png differ diff --git a/learning-git/slides/assets/05.png b/learning-git/slides/assets/05.png new file mode 100644 index 0000000000000000000000000000000000000000..cd84c4ce4835b34300b59f1eb95c856330547f82 Binary files /dev/null and b/learning-git/slides/assets/05.png differ diff --git a/learning-git/slides/assets/06.png b/learning-git/slides/assets/06.png new file mode 100644 index 0000000000000000000000000000000000000000..c0fe5e709d407b567c8053759fefc8b5cc70214c Binary files /dev/null and b/learning-git/slides/assets/06.png differ diff --git a/learning-git/slides/assets/back.png b/learning-git/slides/assets/back.png new file mode 100644 index 0000000000000000000000000000000000000000..0674657248db1242420acd99ec7d510b8f3236cd Binary files /dev/null and b/learning-git/slides/assets/back.png differ diff --git a/learning-git/slides/assets/garde.png b/learning-git/slides/assets/garde.png new file mode 100644 index 0000000000000000000000000000000000000000..7c82359c3ac6126ffeed79a081ab2c75c00e19dc Binary files /dev/null and b/learning-git/slides/assets/garde.png differ diff --git a/learning-git/slides/assets/git.png b/learning-git/slides/assets/git.png new file mode 100644 index 0000000000000000000000000000000000000000..fba3ddf60cc74abfae026b4bf0a2062ab908b771 Binary files /dev/null and b/learning-git/slides/assets/git.png differ diff --git a/learning-git/slides/assets/git_workflow.png b/learning-git/slides/assets/git_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..41e78b93a6b430406de1f3f7f7dd3384881238ca Binary files /dev/null and b/learning-git/slides/assets/git_workflow.png differ diff --git a/learning-git/slides/assets/kroki-plugin.js b/learning-git/slides/assets/kroki-plugin.js new file mode 100644 index 0000000000000000000000000000000000000000..f0baa0a5eb82d2e4f80f1398721ac8a69836a85a --- /dev/null +++ b/learning-git/slides/assets/kroki-plugin.js @@ -0,0 +1,52 @@ +const { deflateSync } = require('zlib') + +const krokiLangs = [ + 'actdiag', + 'blockdiag', + 'bpmn', + 'bytefield', + 'c4plantuml', + 'ditaa', + 'dot', + 'erd', + 'excalidraw', + 'graphviz', + 'mermaid', + 'nomnoml', + 'nwdiag', + 'packetdiag', + 'pikchr', + 'plantuml', + 'rackdiag', + 'seqdiag', + 'svgbob', + 'umlet', + 'vega', + 'vegalite', + 'wavedrom', +] + +const entrypoint = 'https://kroki.io/' + +const marpKrokiPlugin = (md) => { + const { fence } = md.renderer.rules + + md.renderer.rules.fence = (tokens, idx, options, env, self) => { + const info = md.utils.unescapeAll(tokens[idx].info).trim() + + if (info) { + const [lang] = info.split(/(\s+)/g) + + if (krokiLangs.includes(lang)) { + const data = deflateSync(tokens[idx].content).toString('base64url') + + // <marp-auto-scaling> is working only with Marp Core v3 + return `<p><marp-auto-scaling data-downscale-only><img src="${entrypoint}${lang}/svg/${data}"/></marp-auto-scaling></p>` + } + } + + return fence.call(self, tokens, idx, options, env, self) + } +} + +module.exports = marpKrokiPlugin diff --git a/learning-git/slides/assets/marp.config.js b/learning-git/slides/assets/marp.config.js new file mode 100644 index 0000000000000000000000000000000000000000..c5a35bca5b0623dc640ce779365a6d00bf5dab64 --- /dev/null +++ b/learning-git/slides/assets/marp.config.js @@ -0,0 +1,5 @@ +const marpKrokiPlugin = require('./kroki-plugin') + +module.exports = { + engine: ({ marp }) => marp.use(marpKrokiPlugin) +} diff --git a/learning-git/slides/assets/open_source_code.png b/learning-git/slides/assets/open_source_code.png new file mode 100644 index 0000000000000000000000000000000000000000..3585290cad2293353eb6324231f6b5b91284b776 Binary files /dev/null and b/learning-git/slides/assets/open_source_code.png differ diff --git a/learning-git/slides/assets/package.json b/learning-git/slides/assets/package.json new file mode 100644 index 0000000000000000000000000000000000000000..bd5be4432850af6852c031dee557139555a3748a --- /dev/null +++ b/learning-git/slides/assets/package.json @@ -0,0 +1,8 @@ +{ + "license": "WTFPL", + "private": true, + "dependencies": { + "@marp-team/marp-cli": "^1.6.0", + "@marp-team/marp-core": "^3.0.2" + } +} diff --git a/learning-git/slides/assets/tum.css b/learning-git/slides/assets/tum.css new file mode 100644 index 0000000000000000000000000000000000000000..08d289362d7399b163db43fbc0e37f9b4a6c9397 --- /dev/null +++ b/learning-git/slides/assets/tum.css @@ -0,0 +1,55 @@ +/* @theme tum */ + +@import 'default'; + +section { + /*background-color: #fff; + color: #000; + background-image: url('images/TUM_Logo_blau_rgb_s.svg'); + background-repeat: no-repeat; + background-position: right 40px top 40px; + background-size: 8%;*/ +} + +section.lead { + /*background-image: url('images/TUM_Uhrenturm.png'); + background-position: right; + background-size: 45%;*/ +} + +section h1, +section h2 { + color: #1f315c; +} +section a { + color: #5fb2e6; +} +section footer, +section::after { + color: #9cb7d4; +} + +section.invert { + background-color: #003359; + color: #fff; + /*background-image: url('images/TUM_Logo_weiss_rgb_s.svg');*/ +} + +section.lead.invert { + /*background-image: url('images/TUM_Uhrenturm_w.png');*/ +} + +section.invert h1, +section.invert footer, +section.invert::after { + color: #fff; +} + +section.invert a { + color: #e37222; +} + +/* Add "Page" prefix and total page number */ +section::after { + content: attr(data-marpit-pagination) ' / ' attr(data-marpit-pagination-total); +} diff --git a/learning-git/slides/compile.sh b/learning-git/slides/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..475bd7f85b095a1ccbbc4e83c59534529327329b --- /dev/null +++ b/learning-git/slides/compile.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# PY Barriat, May 2022 +# +# Download and install marp (MarkDown slides extension) from here: +# https://github.com/marp-team/marp-cli/releases +# +# Install npm (needed for mermaid: nice extension to make diagramm) +# npm i +# sudo apt install npm +# + +# without mermaid + +#marp --allow-local-files --theme tum.css git_elic.md -o git_elic.pdf +#marp --template bespoke --bespoke.progress --allow-local-files --theme tum.css git_elic.md -o git_elic.html + +# with mermaid + +npx marp --allow-local-files --theme ./assets/tum.css -c ./assets/marp.config.js ./slides.md -o slides_git.pdf +npx marp --template bespoke --bespoke.progress --allow-local-files --theme ./assets/tum.css -c ./assets/marp.config.js ./slides.md -o ./git.html diff --git a/learning-git/slides/slides.md b/learning-git/slides/slides.md new file mode 100644 index 0000000000000000000000000000000000000000..c850ec1bc44fb18d323b924b8e195b182c5e428c --- /dev/null +++ b/learning-git/slides/slides.md @@ -0,0 +1,484 @@ +--- +marp: true +title: Version control with git for scientists +author: P.Y. Barriat +#description: https://dev.to/nikolab/complete-list-of-github-markdown-emoji-markup-5aia +backgroundImage: url('assets/back.png') +_backgroundImage: url('assets/garde.png') +footer: 19/04/2024 | Version control with Git +_footer: "" +paginate: true +_paginate: false +--- + +Version control with `git` for scientists <!--fit--> +=== + +https://forge.uclouvain.be/barriat/learning-git + + + +**Pierre-Yves Barriat & François Massonnet** +ACELI Training Sessions `April 19th, 2024` + +###### some parts inspired on slides from CISM + +--- + +# Discuss :speech_balloon: + +### How do you manage different file versions :question: + +### How do you work with collaborators on the same files :question: + +### + + + +<!-- Notes for presenter. --> +<!-- +Discussion sur l'intérêt du versioning +--> + +--- + +# Notions of code versioning + +## Track the history and evolution of the project + +think of it as a series of snapshots (**commits**) of your code + +### Benefits + +* possibility to go back in time :calendar: + > tracking bugs + > recovering from mistakes +* Information about the modification :clipboard: + > who, when, why + +--- + +- team work :busts_in_silhouette: + * **Simultaneous** work on a project + > No need to send email to say "I'm working on that file" (dropbox organization) + * **Asynchronous** synchronisation + > Allow work Offline (opposite to overleaf project) + > Need conflict resolution + +### Different usage + +* local +* client-server (Subversion) +* distributed (Git) + +--- + +## Workflow + +**Testing new idea** (and easy way to throw them out) :construction: + +**Multiple version** of the code +- Stable (1.x.y) +- Debug (1.x.y+1) +- Next "feature" release (1.x+1.0) +- Next "huge" release (2.0.0) + +--- + +# Open-Source Code + +### Compare Repositories + + + +<!--```mermaid +pie + "Git" : 73 + "Mercurial" : 1 + "Subversion (SVN)" : 22 + "Bazaar" : 0 + "CVS" : 1 +```--> + +<!-- _footer: "https://www.openhub.net/repositories/compare" --> + +--- + +# What is `git` ? + +#### Version control system +- Manage different versions of files +- Collaborate with yourself +- Collaborate with other people + +#### Why use `git` +> *"Always remember your first collaborator is your future self, and your past self doesn't answer emails"* +> Christie Balhai :wink: + +--- + +# Difference between `git` & `GitHub` ? + +`git` is the version control system **service** +>git runs local if you don't use GitHub + +`GitHub` is the hosting service : **website** +>on which you can publish (push) your git repositories and collaborate with other people + +--- + +# `Github` + +- It provides a backup of your files +- It gives you a visual interface for navigating your repos +- It gives other people a way to navigate your repos +- It makes repo collaboration easy (e.g., multiple people contributing to the same project) +- It provides a lightweight issue tracking system + +--- + +# ... and `GitLab` vs `GitHub` vs others + +`GitLab` is an alternative to `GitHub` +> `GitLab` is free for unlimited private projects. `GitHub` doesn't provide private projects for free + +And for **ELIC**, `Gogs` does the job: https://gogs.elic.ucl.ac.be/ +- shares the same features + > dashboard, file browser, issue tracking, groups support, webhooks, etc +- easy to install, cross-platform friendly +- uses little memory, uses little CPU power +- ... and 100% free :smile: + +<!-- Notes for presenter. --> +<!-- +Les goûts et les couleurs +--> + +--- + +# `git` workflow + +Your local repository consists of **three areas** maintained by `git` +- the first one is your **Working Directory** which holds the actual files +- the second one is the **INDEX** which acts as a staging area +- and finally the **HEAD** which points to the last commit you've made + + + +--- + + + +<!-- Notes for presenter. --> +<!-- +Explications +--> + +--- + +# Windows : use `git` in VSCode + +[Visual Studio Code](https://code.visualstudio.com/) is one of the most popular and powerful text editors used by software engineers today + +Free and available for [macOS](https://www.youtube.com/watch?v=8CJXB4Nu1wo), [Windows](https://www.youtube.com/watch?v=AdeWO-n9O2Q), and [Linux](https://code.visualstudio.com/Download) + +> Linux: `wget` the **deb** package then `dpkg -i code*.deb` + +## Prerequisite + +To use `git` in VSCode, first make sure you have `git` [installed on your computer](https://git-scm.com/download/win) +> keep everything by default during the install process + +--- + +## Configure `git` in VSCode + +- Open Settings (JSON) and add the properties to the end of the page : + +```json +{ + "terminal.integrated.profiles.windows": + { + "Git Bash": + { + "path":"C:\\Program Files\\Git\\bin\\bash.exe" + }, + }, + "terminal.integrated.defaultProfile.windows": "Git Bash" +} +``` + +- Reopen VS Code +- Open a new terminal + +--- + +# Getting started with `git` + +**checkout** a remote repository +>create a local working copy of a remote repository + +```bash +git clone https://forge.uclouvain.be/barriat/learning-git +``` + +**add** & **commit** +> you can propose changes (add it to the **INDEX**) +```bash +git add <filename> +``` +> you can commit these changes (to the **HEAD**) +```bash +git commit -m "Commit message" +``` + +--- + +# commit + +`git` versioning is a succession of snapshot of your files at key time of their development + +each snapshot is called **commit** which is : + +- all the files at a given time +- a unique name (SLHA1) +- metadata + > who created, when, info +- pointer to previous(es) commit(s) + +--- + +Your changes are now in the **HEAD** of your local working copy. + +**push** +>to send those changes to your remote repository +```bash +git push +``` +**pull** +>to update your local working directory to the newest commit, to fetch and merge remote changes +```bash +git pull +``` + +--- + +# `git` diff + +```mermaid +sequenceDiagram +%%autonumber + participant Workspace + participant INDEX + %%Note right of Workspace: Text in note + Workspace-->INDEX: git diff + INDEX-->HEAD: git diff --cached + Workspace-->HEAD: git diff HEAD +``` + +--- + +# `git` undo + +In case you did something wrong (which for sure never happens :wink:) + +```mermaid +sequenceDiagram +%%autonumber + participant Workspace + participant INDEX + Note over Workspace,INDEX: wrong modification of a file <br/>in your workspace + INDEX->>Workspace: git checkout -- file + %%HEAD-->Workspace: .<br/> + Note over Workspace,HEAD: wrong modification of a file <br/>that you put in your index + HEAD->>INDEX: git reset HEAD file + INDEX->>Workspace: git checkout -- file +``` +--- + +# Simple Git Exercices + +First, configure your environment (just once) :construction: +> on your laptop, on your ELIC account, etc + +```bash +git config --global user.name "Your Name" +git config --global user.email "foo@bar.be" +git config --global color.ui auto +git config --global core.editor "vim" + +git config --list +``` +Now, clone https://forge.uclouvain.be/barriat/learning-git +> Theses are very simple exercices to learn to manipulate git. +> In each folder, simply run `./create.sh` and follow the guide :sunglasses: + +--- + +# `git` branches + +- a **branch** is pointer to a commit (represent an history) +- a **branch** can point at other commit + > it can move ! +- a **branch** is a way to organize your work and working histories +- since commit know which commits they are based on, **branch** represents a commit and what came before it +- a branch is cheap, you can have multiple **branch** in the same repository and switch your working dir from one **branch** state to another + +--- + +# branches demo + +```bash +git commit +git checkout -b newbranch +git checkout newbranch +git commit +git commit +git checkout master +git commit +git commit +``` +> default branch: **master** + +```mermaid +graph LR; + A[fffc93b] -->|commit| B(fc7f81f) + B -->|commit| D(6fd1a5a) + D -->|commit| E[newbranch <br/>187e6ab ] + B ---->|commit| Z(6ff4c2e) + Z -->|commit| Y[master <br/>c0f502f ] +``` +--- + +- create a new branch : `git checkout -b newbranch` +- switch to a branch : `git checkout newbranch` +- delete a branch : `git branch -d newbranch` +- list all branches : `git branch -a` + > see both local and remote branches + +### branch is cheap : do it often :+1: +> branch allow to have short/long term parallel development + +--- + +# merging branches + +the interest of branch is that you can **merge** them +> include in one (branch) file the modification done somewhere else + +```bash +git merge bx +git branch -d bx +git commit +``` + +```mermaid +graph LR; + A(fffc93b<br/>b_x) -->E[187e6ab<br/>b_x merged <br/>in b_y] + D[6fd1a5a<br/>b_y] -->E + E -->|commit| Y[c0f502f<br/>b_y ] +``` +--- + +# What is `git` good for ? + +#### Local + +> Backup, reproducibility + + + +--- + +#### Client-Server + +> Backup, reproducibility, collaboration + + + +<!-- Notes for presenter. --> +<!-- +Analogie à SVN +--> + +--- + + + +<!-- _footer: "**Limitation**" --> +<!-- _paginate: "" --> + +<!-- Notes for presenter. --> +<!-- +Explications +--> + +--- + +# `git` conflict :boom: + +### multiple version of files are great +- not always easy to know how to merge them +- conflict will happen (same line modify by both user) + +### conflict need to be resolved manually ! :fearful: +- boring task +- need to understand why a conflict is present ! +- **do not be afraid of conflict !** :muscle: + > Do not try to avoid them at all cost ! +- stay in sync as most as possible and keep line short + +--- + +#### Distributed + +> Backup, reproducibility, collaboration, transparency + + + +<!-- _footer: "" --> + +--- + +```mermaid +sequenceDiagram +autonumber + participant Workspace + participant INDEX + participant HEAD + participant Remote Repository + Remote Repository->>HEAD: clone + HEAD->>Workspace: checkout + %%Note over Workspace,Remote Repository: "clone" = clone + checkout + Workspace->>INDEX: add + INDEX->>HEAD: commit + Remote Repository->>HEAD: fetch + HEAD->>Workspace: merge + Remote Repository->>Workspace: pull + %%Note over Workspace,Remote Repository: pull = fetch + merge + HEAD->>Remote Repository: push +``` + +<!-- _footer: "Summary of operations" --> + + +<!-- Notes for presenter. --> +<!-- +"clone" = clone + checkout + +pull = fetch + merge +--> + +--- + +# Conclusion + +- **versioning** is crucial both for small/large project :exclamation: +- avoid dropbox for paper / project :confounded: +- do meaningful commit +- do meaningful message +- `git` more complicated but the standard :smiley: + +--- + +# Version control with Git for scientists :chart_with_upwards_trend: diff --git a/learning-git/slides/slides_git.pdf b/learning-git/slides/slides_git.pdf new file mode 100644 index 0000000000000000000000000000000000000000..193a16143166a9044d2435e2beb339b856150e1c Binary files /dev/null and b/learning-git/slides/slides_git.pdf differ diff --git a/learning-linux/Linux_ACELI.md b/learning-linux/Linux_ACELI.md new file mode 100644 index 0000000000000000000000000000000000000000..c85c2d3c19b95e731f4f54f62e9a4a31291e1a42 --- /dev/null +++ b/learning-linux/Linux_ACELI.md @@ -0,0 +1,551 @@ +--- +marp: true +title: An introduction to Linux +author: P.Y. Barriat +description: https://dev.to/nikolab/complete-list-of-github-markdown-emoji-markup-5aia +backgroundImage: url('assets/back.png') +_backgroundImage: url('assets/garde.png') +footer: 13/04/2023 | An introduction to Linux | PY Barriat +_footer: "" +paginate: true +_paginate: false +--- + +An introduction to Linux<!--fit--> +=== + +https://forge.uclouvain.be/barriat/learning-linux + + + +**Pierre-Yves Barriat** +ACELI Training Sessions `April 13th, 2023` + +--- + +# What is UNIX ? + +- Operating System + > Windows 10 (Microsoft), MacOSX (Apple), Android (Google), etc +- UNIX is a (family of) Operating System +- Invented by AT&T Bell Labs in late 60's +- Currently there are different versions and variants of UNIX + > Solaris, AIX, HP-UX, etc. +- UNIX is **not** free or Open Source: "GNU is Not UNIX" + +--- + +# What is Linux ? + +- GNU (80's) is a free, open source version of the UNIX OS, but without the most important element: the **kernel** +- Linux kernel was developed in 1991 by Linus Torvalds, a Finnish graduate student +- The association GNU/Linux is an operating system (say just "Linux") and provides an alternative to commercial operating systems +- Linux exists without GNU (eg Android) : used to power a multitude of systems... from your phone to your smart fridge + +--- + +# What is a Linux distribution ? + +- Many versions of Linux + > Red Hat, Debian, Suse, etc + +- But one common linux kernel: **kernel** is like an **engine**. A distribution is an actual car that hosts the engine + +- Distributions differ from + - the application/management layer + - GUI (Graphical User Interface = desktop environment) + - software packages + - help-desk, support, language + +--- + +# Why Linux ? + +- **Linux is free** +- Linux is supported on older computers (perf & updates) +- Linux has many more free applications + +`Security`: there are very few viruses for Linux +`Privacy`: most Linux distributions don't collect your data at all +`Reliability`: if you want to stop something, you really can +`Updates`: package manager +`Customisation`: you can make Linux look, feel and behave as you want it to +`Command Line Interface:` faster & efficient + +--- + + + + + + +--- + +# Linux Statistics + + + +- 47% of professional **developers** use Linux-based operating systems (Statista) +- Linux powers 39.2% of **websites** whose operating system is known (W3Techs) +- Linux powers 85% of **smartphones** (Hayden James) + +<!-- _footer: "https://truelist.co/blog/linux-statistics/" --> + +--- + + + + + + +<!-- _footer: "https://truelist.co/blog/linux-statistics/" --> + +--- + +# Why not Linux ? + +1. Hardware compatibility (printers, etc) +2. Missing famous software (MS Office, Adobe, CAO, etc) +3. Gaming + +### Workarounds + +1. Many devices "Linux compatible" +2. Emulation (eg virtualbox), online usage, alternatives (GIMP) +3. Difficult, but it exists emulation and Steam + +--- + +# Distribution: why Ubuntu ? + +- easy to install and easy to use +- easy to maintain and update +- useful applications +- looks nice +- wide variety of supported applications +- strong community support +- better driver support +- LTS and staging releases available as per user needs + +> get the latest Ubuntu LTS : [ubuntu-22.04.2-desktop-amd64.iso](https://releases.ubuntu.com/jammy/ubuntu-22.04.2-desktop-amd64.iso) + +--- + +# Test Linux inside Windows: how ? + +Using a virtual machine: test Linux without changing anything to your computer + +You need to install a VM and then install the Linux inside + +- Get a Virtual Machine: https://www.virtualbox.org/wiki/Downloads + > VirtualBox + Extension Pack + +- Install Linux in a VM: [Install Linux Inside Windows Using VirtualBox](https://itsfoss.com/install-linux-in-virtualbox/) + > Step by Step Guide + +--- + +# Linux GUI + + + +A Linux distribution contains a [display server](https://www.google.com/search?tbm=isch&q=display+manager), a [window manager](https://www.google.com/search?tbm=isch&q=windows+manager) (manage windows, panel, menus, dash interfaces and core applications), and a [desktop environment](https://www.google.com/search?tbm=isch&q=graphical+interface) (eg status bars, drag-and-drop capabilities, etc) + +These 3 items are **bundled together** to make what is known as a `GUI environment` + +--- + +# Using Linux + +**Using Linux through a GUI environment is similar to Windows or MacOSX** + +Linux users do not install software the same way that Windows users do: Linux has a tool known as a `package manager` + +A package manager provides a way to search for software, install software, keep the software up to date and remove the software +> Similar to Google or Apple store + +--- + +# Linux CLUI + +Using Linux with GUI, it's already great ! +**Using CLUI = unlock the power of Linux !** + +Each Linux system contains a terminal + +A terminal is where you enter Linux commands + +It's called the **C**ommand **L**ine **U**ser **I**nterface + +CLUI is one of the many strengths of Linux and can be more efficient than using the GUI + +--- + +# Linux CLUI + +- CLUI allows users to be independent of distros (or UNIX systems like OSX) +- CLUI saves system resources which are consumed by GUIs +- CLUI allows users to easily work at distance (SSH) +- CLUI allows developers to join together simple (and less simple) commands to do complex things and automate... whatever you want to + +> People tend to think command line is difficult. It's not. + +--- + +# Linux Shell + +A **shell** is a program that takes commands from the keyboard and gives them to the operating system to perform + +The main function is to interpret your commands **= language** + +The **bash** shell is one of several shells available for Linux + +Learning the shell: + +> *"When you are a child you use a computer by looking at the pictures. When you grow up, you learn to read and write"* + +It's more or less like SMSing to your PC, telling it what to do + +--- + +# Linux Shell + +Shells have some built-in commands + +A shell also supports programming constructs, allowing complex commands to be built from smaller parts **= scripts** + +Scripts can be saved as files to become new commands +> many commands on a typical Linux system are scripts + +An open terminal show you a **PROMPT** waiting for your commands + +Commands can have **options** and parameters + +All your commands are saved in a **history** + +--- + +# Linux Shell Demo + +Rename many files at once ? + +```bash +mmv '*.JPG' '#1.jpg' +``` + +Download a youtube video ? + +```bash +youtube-dl https://www.youtube.com/watch?v=G7KNmW9a75Y&ab_channel=MileyCyrusVEVO +``` + +Convert color pictures in BW at once ? + +```bash +#!/bin/bash +for file in *.jpg +do + convert ${file} -colorspace Gray "${file%.*}_bw.jpg" + echo "${file}... converted" +done +``` + +--- + +# Online Linux Demo + +- [Run Linux or other Operating Systems in your browser](https://bellard.org/jslinux/) +- [Run bash (and others) scripts online ](https://rextester.com/l/bash_online_compiler) +- [Free online containers and virtual machines that run full Linux systems](https://linuxcontainers.org/) +- [Free GNU/Linux Online Terminal learning platform ](https://www.webminal.org/) + +- [CISM/ELIC Jupyter portal](https://jupyter.cism.ucl.ac.be) + > you need a UCLouvain/CISM account: see [here](https://www.cism.ucl.ac.be/doc/_contents/About/cilog.html) + +--- + +# What you'll learn + +- Navigating the File System + > Get up and running with the CLUI by navigating directories and files + +- Viewing and Changing Files and Directories + > Learn to manipulate directories and files from the CLUI + +- Configuring the Environment + > Learn to configure the environment using the CLUI + +- Accessing Linux remotely + > Learn to use SSH (basics) + +--- + +# Navigating the File System + +A file system is a section of hard disk that has been allocated to contain files +> it's arranged like hierarchical tree structure + +Files are grouped in the directory structure + +The top of the tree is called `root` and `/` is used to present the `root` + + + +--- + +### Absolute paths + +In the tree `/users/usern/file1` is an absolute pathname + +### Relative paths + +If you are already in the `users` directory, the relative pathname for `file1` is `usern/file1` + +- `~` (tilda) points to the user's **home directory**. Useful if you are logging into a workstation with many users. It's the **default working directory** when you log in. If you are user `usern`, then `/users/usern/file1` is the same as `~/file1` + +- `.` refers to the current directory +- `..` refers to the parent directory + +--- + +# Basic commands + +- `ls` : lists folders/files in a directory +- `cd` : change directory + > use `cd name` to navigate to directory name +- `pwd` : print working directory. Prints the path of the current directory +- `du` : disk usage. Shows the disk usage of the current directory +- `man` : manual + > use `man name` to bring up a manual entry for command or program called `name` + +--- + +### Creation + +- `mkdir` : use `mkdir name` to create a new directory named `name` in the current directory +- `cp` : use ```cp file1 file2``` to create `file2` which is a copy of `file1` + > can also use `cp -r` to copy whole directories +- `mv` : move = same as copy, but deletes the original file + +### Deletion + +- `rm` : delete files ( cannot recover your files after removed them ! ) + > can also use `rm -rf` to remove whole directories + +**Be careful : there is no trash in CLUI** + +--- + +- `tab` is used for auto-complete  + > If a file/directory name was partly typed in, **tab will auto-complete** it + + > If there are multiple options, tab will auto-complete up to the point where the options branch and show you a list of possible options + +- `*` is used as a wild card + > `rm blah*` removes all files which start with `blah`: eg `blah1`, `blah2`, and `blahblah` would all be removed + + > using `cp public/* private/` copies all files in a `public` directory into a `private` directory, and keeps all file names intact + +--- + +# File permissions + +### Groups + +Each file and directory has three user based permission groups + +- **owner** :the `owner` permissions apply only the owner of the file or directory, they will not impact the actions of other users +- **group** : the `group` permissions apply only to the group that has been assigned to the file or directory, they will not effect the actions of other users +- **all users** : the `all users` permissions apply to all other users on the system, this is the permission group that you want to watch the most + +--- + +### Types + +Each file or directory has three basic permission types + +- **read** : the `read` permission refers to a user's capability to read the contents of the file +- **write** : the `write` permission refer to a user's capability to write or modify a file or directory +- **execute** : the `execute` permission affects a user's capability to execute a file or view the contents of a directory + +--- + +The following command : + +```bash +ls -l +``` +gives : + +| 1 | 2 | 3 | 4 | 5 | 6 | 7 | +| --------------- | --------------- | ------------ | ------- |----------- | ------- | ---------- | +| `-rwxr-xr-x` | `1` | `dupont` | `grpelic` | `3528` | `2022-08-04` | `file_1` | +| `drwxr-xr-x` | `3` | `dupont` | `grpelic` | `512` | `2022-01-02` | `dir_1` | +| `lrwxr-xr-x` | `2` | `dupont` | `grpelic` | `210` | `2020-12-16` | `short -> /data` | +| `-rw-------` | `1` | `dupont` | `grpelic` | `4587` | `2022-12-04` | `file_2` | + +--- + +# Linux privileges + + + +Linux has a robust permissions system: this is a very good thing, as it enables a **clear separation** of roles among users + +Especially between the `root` user and your `standard` user + +Sometimes, though, you might want your standard user to have **some** or **all** of root's privileges : this is accomplished with `sudo` + +--- + +# Shell syntax rules + +Shells use three **"standard I/O streams"** + +- `stdin` is the standard input stream, which provides input to commands. +- `stdout` is the standard output stream, which displays output from commands. +- `stderr` is the standard error stream, which displays error output from commands. + +Shell has several **meta-characters** and **control operators** + +> `|`, `&`, `>`, `;` , etc. + +--- + +# Environment + +In a bash shell many things constitute your environment + +- the form of your prompt +- your home directory and your working directory +- the name of your shell +- functions that you have defined +- etc. + +Environment includes many variables that may have been set **by bash** or **by you** +> Access the value of a variable by prefixing its name with `$` + +--- + +# Environment variables + +- `USER` : the name of the logged-in user +- `UID` : the numeric user id of the logged-in user +- `HOME` : the user's home directory (similar to `~` ) +- `PWD` : the current working directory +- `SHELL` : the name of the shell + +Set a shell variable : typing a name followed immediately by an equal sign ( `=` ) +> if the variable exists, you will modify it to assign the new value + +You can use special files to control bash variables : `$HOME/.bashrc` + +--- + +# Remote Linux Access + +`SSH` (or **S**ecure **SH**ell) is a **protocol** used to securely log onto remote systems +> the most common way to access remote Linux and Unix-like servers + +`VNC` (or **V**irtual **N**etwork **C**omputing) is a **software** that allows a personal computer's desktop environment to be run + +Aside from bandwidth, latency and security issues (which can vary a bit), the big differences are the functionality +- VNC exports a whole session, desktop and all (GUI) +- SSH runs a single program (CLUI) and show its windows on your machine + +--- + +# Remote Linux using SSH + +You need: +- an access to the distant machine : login/password + > or a login with SSH keys (with passphrase) +- the hostname or the IP address of the distant machine +- and (of course) a UNIX terminal + +```bash +ssh -X pbarriat@coriolis.elic.ucl.ac.be + +ssh -X -i ~/.ssh/id_rsa.ceci pbarriat@gwcism.cism.ucl.ac.be +``` + +--- + +# Remote Linux from Windows + +Using a SSH client to reach a distant Linux Workstation + +**mobaXTerm** is free and easy to use +> allow you to test a Linux environmment but in CLUI only + +Get a SSH client +https://mobaxterm.mobatek.net/download-home-edition.html + +How to use a SSH client +https://support.ceci-hpc.be/doc/_contents/QuickStart/ConnectingToTheClusters/MobaXTerm.html + +--- + +# Linux text editors + +### GUI + +- nedit (simple text editor available in most distributions) +- Kate, Gedit (KDE, Gnome) + +### CLUI + +- vi (available in all Unix systems) and **vim** (vi improved) + > Difficult to learn for beginners used to graphical text editors + > Very productive for power users + > [Vim Cheatsheet](assets/vim-cheatsheet.pdf) +- nano (friendly and easier to learn) + +--- + +# Scripting + +How to do a backup ? +- with Dropbox or Google Drive ? +- with a private cloud such as Nextcloud ? +- with an other drive and/or an external drive ? + +Backup on external drive ? +- manually ? +- with Windows tools ? +- with external softwares ? + +**Why don't do that with a simple linux script ?** + +--- + + + +--- + +# Conclusions + +| Advantages of Linux | Disadvantages of Linux | +| --------------------- | ---------------------------------- | +| Cost | Not easy to master ( **CLUI only** ) | +| Security and robustness | Hardware compatibility issues ( sometimes ) | +| Freedom | Not compatible with some Windows software | +| Software || +| Development || + +--- + +### Need to know more about available Linux applications ? + +[Check out the list of the best Linux software](https://www.makeuseof.com/tag/best-linux-software/) + +### Need help with bash scripting ? + +- [Bash Scripting Tutorial for Beginners](https://linuxconfig.org/bash-scripting-tutorial-for-beginners) +- [My favorite CLUI cheatsheet](assets/Linux_CLI_Cheat_Sheet.pdf) +- [Bash scripting cheatsheet](https://devhints.io/bash) + +### Need help with Ubuntu ? + +The massive community is one of Ubuntu's biggest strengths +> Visit https://askubuntu.com/ or https://answers.launchpad.net/ diff --git a/learning-linux/Linux_ACELI.pdf b/learning-linux/Linux_ACELI.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c8bdba679000653c3b500eb7aa0bb32cd619c3ba Binary files /dev/null and b/learning-linux/Linux_ACELI.pdf differ diff --git a/learning-linux/README.md b/learning-linux/README.md new file mode 100644 index 0000000000000000000000000000000000000000..187bc28b814f81915c9f0bc89b998993830986d0 --- /dev/null +++ b/learning-linux/README.md @@ -0,0 +1,7 @@ +# learning-linux + +This is the repository for the training Learning Linux + +You can find the slides [here](./Linux_ACELI.pdf). + +Presentation is [here](https://www.elic.ucl.ac.be/users/pbarriat/slides/Linux.html) diff --git a/learning-linux/assets/Desktop_Market.png b/learning-linux/assets/Desktop_Market.png new file mode 100644 index 0000000000000000000000000000000000000000..75d1544f311194c8ce06f3b7d3d10ee1e078032e Binary files /dev/null and b/learning-linux/assets/Desktop_Market.png differ diff --git a/learning-linux/assets/Distrib.png b/learning-linux/assets/Distrib.png new file mode 100644 index 0000000000000000000000000000000000000000..2a02854a002e715837e572315b95312b1b40a92c Binary files /dev/null and b/learning-linux/assets/Distrib.png differ diff --git a/learning-linux/assets/GUI.png b/learning-linux/assets/GUI.png new file mode 100644 index 0000000000000000000000000000000000000000..00b03c080ad393ca75da879796227237591bb21e Binary files /dev/null and b/learning-linux/assets/GUI.png differ diff --git a/learning-linux/assets/Linux_CLI_Cheat_Sheet.pdf b/learning-linux/assets/Linux_CLI_Cheat_Sheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e8356bf40ebf413fe49acb1af637edaf66565797 Binary files /dev/null and b/learning-linux/assets/Linux_CLI_Cheat_Sheet.pdf differ diff --git a/learning-linux/assets/OS_developers.png b/learning-linux/assets/OS_developers.png new file mode 100644 index 0000000000000000000000000000000000000000..78ac5a3e84464b547c8f0139cf83e6277466d811 Binary files /dev/null and b/learning-linux/assets/OS_developers.png differ diff --git a/learning-linux/assets/Server_Market.png b/learning-linux/assets/Server_Market.png new file mode 100644 index 0000000000000000000000000000000000000000..a7b2518d0c523b5888bcc464d1b3c807f4b2b165 Binary files /dev/null and b/learning-linux/assets/Server_Market.png differ diff --git a/learning-linux/assets/arbo.png b/learning-linux/assets/arbo.png new file mode 100644 index 0000000000000000000000000000000000000000..952b5acc757d1d05801838422e8e3800de7bab58 Binary files /dev/null and b/learning-linux/assets/arbo.png differ diff --git a/learning-linux/assets/back.png b/learning-linux/assets/back.png new file mode 100644 index 0000000000000000000000000000000000000000..0674657248db1242420acd99ec7d510b8f3236cd Binary files /dev/null and b/learning-linux/assets/back.png differ diff --git a/learning-linux/assets/garde.png b/learning-linux/assets/garde.png new file mode 100644 index 0000000000000000000000000000000000000000..7c82359c3ac6126ffeed79a081ab2c75c00e19dc Binary files /dev/null and b/learning-linux/assets/garde.png differ diff --git a/learning-linux/assets/linuxvs.png b/learning-linux/assets/linuxvs.png new file mode 100644 index 0000000000000000000000000000000000000000..33c28e9f4d55c8fb68f7def0b2d80dbb611df6b6 Binary files /dev/null and b/learning-linux/assets/linuxvs.png differ diff --git a/learning-linux/assets/logolinux.png b/learning-linux/assets/logolinux.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba3dc5a0c5b5063ac56f7e05f95a08f8dfbf228 Binary files /dev/null and b/learning-linux/assets/logolinux.png differ diff --git a/learning-linux/assets/marp.config.js b/learning-linux/assets/marp.config.js new file mode 100644 index 0000000000000000000000000000000000000000..c5a35bca5b0623dc640ce779365a6d00bf5dab64 --- /dev/null +++ b/learning-linux/assets/marp.config.js @@ -0,0 +1,5 @@ +const marpKrokiPlugin = require('./kroki-plugin') + +module.exports = { + engine: ({ marp }) => marp.use(marpKrokiPlugin) +} diff --git a/learning-linux/assets/sandwich.png b/learning-linux/assets/sandwich.png new file mode 100644 index 0000000000000000000000000000000000000000..d148872fb01ff8d05e116a90fdca954ecbc72760 Binary files /dev/null and b/learning-linux/assets/sandwich.png differ diff --git a/learning-linux/assets/scripting.png b/learning-linux/assets/scripting.png new file mode 100644 index 0000000000000000000000000000000000000000..8323da3c1fad863b829610ca54fca13c9fd37f20 Binary files /dev/null and b/learning-linux/assets/scripting.png differ diff --git a/learning-linux/assets/tab.png b/learning-linux/assets/tab.png new file mode 100644 index 0000000000000000000000000000000000000000..93bc0fb149eb8e5d3a62c65684e8ddfb690354e5 Binary files /dev/null and b/learning-linux/assets/tab.png differ diff --git a/learning-linux/assets/tum.css b/learning-linux/assets/tum.css new file mode 100644 index 0000000000000000000000000000000000000000..08d289362d7399b163db43fbc0e37f9b4a6c9397 --- /dev/null +++ b/learning-linux/assets/tum.css @@ -0,0 +1,55 @@ +/* @theme tum */ + +@import 'default'; + +section { + /*background-color: #fff; + color: #000; + background-image: url('images/TUM_Logo_blau_rgb_s.svg'); + background-repeat: no-repeat; + background-position: right 40px top 40px; + background-size: 8%;*/ +} + +section.lead { + /*background-image: url('images/TUM_Uhrenturm.png'); + background-position: right; + background-size: 45%;*/ +} + +section h1, +section h2 { + color: #1f315c; +} +section a { + color: #5fb2e6; +} +section footer, +section::after { + color: #9cb7d4; +} + +section.invert { + background-color: #003359; + color: #fff; + /*background-image: url('images/TUM_Logo_weiss_rgb_s.svg');*/ +} + +section.lead.invert { + /*background-image: url('images/TUM_Uhrenturm_w.png');*/ +} + +section.invert h1, +section.invert footer, +section.invert::after { + color: #fff; +} + +section.invert a { + color: #e37222; +} + +/* Add "Page" prefix and total page number */ +section::after { + content: attr(data-marpit-pagination) ' / ' attr(data-marpit-pagination-total); +} diff --git a/learning-linux/assets/unix_linux_introduction.pdf b/learning-linux/assets/unix_linux_introduction.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ebf1189006e18072d90f52c937c3ffcfbfa334db Binary files /dev/null and b/learning-linux/assets/unix_linux_introduction.pdf differ diff --git a/learning-linux/assets/vim-cheatsheet.pdf b/learning-linux/assets/vim-cheatsheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8bd8d6570bbeb56167d3f6ccc4d67b32aaf5c8f1 Binary files /dev/null and b/learning-linux/assets/vim-cheatsheet.pdf differ diff --git a/learning-linux/assets/win_mac.png b/learning-linux/assets/win_mac.png new file mode 100644 index 0000000000000000000000000000000000000000..d684c2ff8ec4c735afea22c8ddada9af1fbb57ba Binary files /dev/null and b/learning-linux/assets/win_mac.png differ diff --git a/learning-linux/assets/www.makeuseof.com.png b/learning-linux/assets/www.makeuseof.com.png new file mode 100644 index 0000000000000000000000000000000000000000..93ec1bdc43ec55afb09cfc856195507d5f2359b5 Binary files /dev/null and b/learning-linux/assets/www.makeuseof.com.png differ diff --git a/learning-linux/compile.sh b/learning-linux/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..55d7f9c2ce0f0f85aa0cb1418e71b84e6cd2d5a8 --- /dev/null +++ b/learning-linux/compile.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# +# PY Barriat, March 2023 +# +# Download and install marp (MarkDown slides extension) from here: +# https://github.com/marp-team/marp-cli/releases +# + +marp --allow-local-files --theme ./assets/tum.css Linux_ACELI.md -o Linux_ACELI.pdf +marp --template bespoke --bespoke.progress --allow-local-files --theme ./assets/tum.css Linux_ACELI.md -o Linux_ACELI.html diff --git a/learning-markdown/MarkDown.md b/learning-markdown/MarkDown.md new file mode 100644 index 0000000000000000000000000000000000000000..e219fd13c4e0df3706529bf5a74789b657188dc2 --- /dev/null +++ b/learning-markdown/MarkDown.md @@ -0,0 +1,334 @@ +--- +marp: true +title: Markdown and applications +author: P.Y. Barriat +description: Markdown and applications +backgroundImage: url('assets/back.png') +_backgroundImage: url('assets/garde.png') +footer: 26/03/2024 | Markdown and applications | PY Barriat +_footer: "" +paginate: true +_paginate: false +#math: true +--- + +Markdown and applications<!--fit--> +=== + +https://forge.uclouvain.be/barriat/learning-markdown + + + +**Pierre-Yves Barriat** +ACELI Training Sessions `March 26th, 2024` + +--- + +# What is Markdown ? + +Lightweight **markup language** (a *text-encoding system*) + +> "Set of symbols inserted in a text document to control its structure, formatting, or the relationship between its parts." + +Others markup languages: HTML, LaTeX, etc + +Created in 2004, **Markdown** is now one of the world’s most popular markup languages + +Markdown is different than using a `WYSIWYG` + +--- + +# Why Markdown ? + +- Markdown is for **everything**: websites, documents, notes, books, presentations, email messages, technical documentation + +- Markdown is **portable** + > MS Word locks your content into a proprietary file format + +- Markdown is platform **independent** + +- Markdown is **simple** and future proof + > so easy to learn ( $\neq$ LaTeX) + +- Markdown is **everywhere** : Reddit, GitHub, readme, etc + +--- + +# Live Demo + +Several online Markdown editors to try writing in Markdown + +For example, try [Dillinger](https://dillinger.io/) + +After you've become familiar with Markdown, you may want to use a Markdown application that can be installed on your computer + +--- + +# Prerequisites + +- text editor : [Visual Studio Code](https://code.visualstudio.com/download) + +- universal document converter : [Pandoc](https://pandoc.org/installing.html) + +- TeX distribution : [LaTeX](https://www.latex-project.org/) + +- Markdown presentation ecosystem : [Marp](https://marp.app/) + +--- + +## Visual Studio Code + +VSC is one of the most popular and powerful text editors used by software engineers today +> free and available for [macOS](https://www.youtube.com/watch?v=8CJXB4Nu1wo), [Windows](https://www.youtube.com/watch?v=AdeWO-n9O2Q) and [Linux](https://code.visualstudio.com/download) + +### You didn't already install VS Code ? + +Take a look here +https://forge.uclouvain.be/barriat/learning-vscode + +--- + +## Pandoc + +Pandoc is a library for converting from one markup format to another, and a command-line tool that uses this library. +> free and available for macOS, Windows, and Linux +> - [Pandoc](https://github.com/jgm/pandoc/releases) +> - [Pandoc-crossref](https://github.com/lierdakil/pandoc-crossref/releases) + +```bash +cd +wget https://github.com/jgm/pandoc/releases/download/3.1.12.3/pandoc-3.1.12.3-linux-amd64.tar.gz +wget https://github.com/lierdakil/pandoc-crossref/releases/download/v0.3.17.0f/pandoc-crossref-Linux.tar.xz +tar xzf pandoc-3.1.12.3-linux-amd64.tar.gz +tar -xf pandoc-crossref-Linux.tar.xz +mv pandoc-3*/* . +mv pandoc-crossref bin +mv pandoc-crossref.1 share/man/man1 +echo "export PATH=\$PATH:\$HOME/bin" >> .bashrc +echo "export MANPATH=\$MANPATH:\$HOME/share" >> .bashrc +rm -rf pandoc* +``` + +--- + +## TeX distribution + +**LaTeX** is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. +> free and available for [macOS](https://www.tug.org/mactex/), [Windows](https://miktex.org/download), and Linux + +```bash +sudo apt install -y texlive-latex-base \ + texlive-latex-recommended \ + texlive-fonts-recommended \ + texlive-latex-extra \ + texlive-fonts-extra \ + texlive-xetex \ + texlive-lang-french \ + texlive-latex-extra +``` + +--- + +## Marp + +Marp (MarkDown slides extension) can convert **Marp Markdown** files into static HTML/CSS, PDF, PowerPoint document, and image(s) easily + +Download and install marp-cli (a **CLI** interface for Marp) from the standalone binaries +> free and [available](https://github.com/marp-team/marp-cli/releases/) for macOS, Windows and Linux + +```bash +cd ; wget https://github.com/marp-team/marp-cli/releases/download/v3.4.0/marp-cli-v3.4.0-linux.tar.gz +tar xzf marp-cli-v3.4.0-linux.tar.gz +mv marp bin ; rm -f marp-cli* +``` + +--- + +### You must install Chrome, Chromium or Edge + +*True* Ubuntu, install **chromium-browser** + +```bash +sudo apt install chromium-browser -y +``` + +Ubuntu with WSL, add *ppa* for **google-chrome** and install it + +```bash +wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmour -o /usr/share/keyrings/google_linux_signing_key.gpg +sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google_linux_signing_key.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list' +sudo apt update +sudo apt install google-chrome-stable +``` + +> In WSL, snapd is not available by default and chromium-browser needs it + +--- + +## VS Code nice extensions + +Open VS Code and install the following extensions + +- `Markdown All in One` : *v3.5.1 - Yu Zhang* +- `Marp for VS Code` : *v2.6.0 - Marp team* + +And maybe : + +- `Markdown Preview Enhanced` : *v0.6.8 - Yiyi Wang* +- `Markdownlint` : *v0.50.0 - David Anson* +- `Pandoc Markdown` : *v0.1.2 - rsolano* +- `Excel to Markdown table` : *v1.3.0 - Sebastian Holmqvist* + +--- + +# Markdown Basic Syntax + +https://www.markdownguide.org/basic-syntax/ + +## My first example: `README.md` on a Git web server + +https://forge.uclouvain.be/barriat/learning-markdown/-/tree/master/example + +### How to convert it ? + +```bash +pandoc -s README.md -o README.pdf + +pandoc -s README.md -o README.docx + +pandoc -s README.md -o README.html --metadata title="README for EcEARTH" +``` + +--- + +### How to custom the target style ? + +Using HTML template (html file and/or css) + +```bash +pandoc -s README.md -o README.html --metadata title="README for EcEARTH" \ + --template=html_templates/easy_template.html --toc +``` + +> don't forget to add `--toc` if you want a table of contents + +> you can also use the **VS Code Pandoc extension** to export/preview in HTML + +Using Latex template (latex file) + +```bash +pandoc -s README.md -o README.pdf --template tex_templates/eisvogel +``` + +--- + +## My second example: a letter + +Using my **UCLouvain letter** template (latex file) + +```bash +pandoc -s letter.md -o letter.pdf --pdf-engine=xelatex --template tex_templates/letter +``` + +> **pdflatex** and **xelatex** are two implementations for the same purpose. +> One of the main differences is that **xelatex** has better support for fonts: in particular you can use system fonts instead of only TeX fonts. It also has better support for non-latin character encodings. + +--- + +# Markdown Extended Syntax + +https://www.markdownguide.org/extended-syntax/ + +## A scientific report + +```bash +pandoc -s report.md -o report.html --webtex -H html_templates/report.css \ + --bibliography assets/MyLib.bib --citeproc + +pandoc -s report.md -o report.pdf --template tex_templates/eisvogel \ + --bibliography assets/MyLib.bib --citeproc +``` + +> don't forget to add `--webtex` if you want TeX formula in HTML + +> here we integrate a TeX bibliography + +> don't forget to add `--citeproc` if you want a list of references + +--- + +## Extended syntax example + +```bash +pandoc -s advanced.md -o advanced.html --webtex -H html_templates/report.css --citeproc + +pandoc -s advanced.md -o advanced.pdf --template tex_templates/eisvogel --citeproc +``` + +Compare the HTML ouput and the PDF output ! + +Some features are rendered only for PDF or HTML : + +- depends on **CSS** or **HTML** template +- depends on **LaTeX** template + +--- + +# Markdown for slides + +Replace `pandoc` command with `marp` + +```bash +marp slides.md -o slides.pdf + +marp --bespoke.progress slides.md -o slides.html +``` + +> don't forget to add `--bespoke.progress` if you want a progress status + +Now you can take a look of the Markdown code of these **current slides** ! + +--- + +# Markdown for a paper ? + +## Scientific manuscript for submision + +```bash +pandoc -d article.yaml +``` + +Here, we use a `yaml` file to write all the pandoc options (passed with `-d`) + +## Scientific manuscript + +```bash +pandoc -d nice_article.yaml +``` + +--- + +# Conclusion + +* You can learn Markdown very quickly + +* Markdown is directly human-readable so it's easy to share with people who don't have Markdown processor installed + +* Installing a Markdown processor is easy + +* Markdown is easily convertible to HTML + > best choice for documents to be published both on the web and as printed text + +* You can create high-quality scientific documents + +--- + +* Markdown is also good for quick note taking + > you can effortlessly apply text formattings to, e.g., highlight parts in your notes or to create formatted lists + +* The layout can be controlled by settings within the raw documents or you simply keep the default settings + +* The design of your document guarantees a consistent and uniform layout + > font types and sizes of text and headings, tables and directories, footnotes, page numbering, line spacing and borders, etc + +* The file formats for writing the raw content in both languages (`*.md`, `*.tex`) are designated as **open format** \ No newline at end of file diff --git a/learning-markdown/MarkDown.pdf b/learning-markdown/MarkDown.pdf new file mode 100644 index 0000000000000000000000000000000000000000..923ca5b71fa9110f153ae5a038ab020db80ccb32 Binary files /dev/null and b/learning-markdown/MarkDown.pdf differ diff --git a/learning-markdown/README.md b/learning-markdown/README.md new file mode 100644 index 0000000000000000000000000000000000000000..39e48d991f42912ba68bbcdfd3ee4dde368252bb --- /dev/null +++ b/learning-markdown/README.md @@ -0,0 +1,7 @@ +# learning-markdown + +This is the repository for the Markdown training + +You can find the slides [here](./MarkDown.pdf). + +Presentation is [here](https://www.elic.ucl.ac.be/users/pbarriat/slides/MarkDown.html) diff --git a/learning-markdown/assets/back.png b/learning-markdown/assets/back.png new file mode 100644 index 0000000000000000000000000000000000000000..0674657248db1242420acd99ec7d510b8f3236cd Binary files /dev/null and b/learning-markdown/assets/back.png differ diff --git a/learning-markdown/assets/garde.png b/learning-markdown/assets/garde.png new file mode 100644 index 0000000000000000000000000000000000000000..7c82359c3ac6126ffeed79a081ab2c75c00e19dc Binary files /dev/null and b/learning-markdown/assets/garde.png differ diff --git a/learning-markdown/assets/logo.png b/learning-markdown/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..81ae358d67700d66d4f1dc4cd4f2baef248afc1d Binary files /dev/null and b/learning-markdown/assets/logo.png differ diff --git a/learning-markdown/assets/logolinux.png b/learning-markdown/assets/logolinux.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba3dc5a0c5b5063ac56f7e05f95a08f8dfbf228 Binary files /dev/null and b/learning-markdown/assets/logolinux.png differ diff --git a/learning-markdown/assets/marp.config.js b/learning-markdown/assets/marp.config.js new file mode 100644 index 0000000000000000000000000000000000000000..c5a35bca5b0623dc640ce779365a6d00bf5dab64 --- /dev/null +++ b/learning-markdown/assets/marp.config.js @@ -0,0 +1,5 @@ +const marpKrokiPlugin = require('./kroki-plugin') + +module.exports = { + engine: ({ marp }) => marp.use(marpKrokiPlugin) +} diff --git a/learning-markdown/assets/tum.css b/learning-markdown/assets/tum.css new file mode 100644 index 0000000000000000000000000000000000000000..08d289362d7399b163db43fbc0e37f9b4a6c9397 --- /dev/null +++ b/learning-markdown/assets/tum.css @@ -0,0 +1,55 @@ +/* @theme tum */ + +@import 'default'; + +section { + /*background-color: #fff; + color: #000; + background-image: url('images/TUM_Logo_blau_rgb_s.svg'); + background-repeat: no-repeat; + background-position: right 40px top 40px; + background-size: 8%;*/ +} + +section.lead { + /*background-image: url('images/TUM_Uhrenturm.png'); + background-position: right; + background-size: 45%;*/ +} + +section h1, +section h2 { + color: #1f315c; +} +section a { + color: #5fb2e6; +} +section footer, +section::after { + color: #9cb7d4; +} + +section.invert { + background-color: #003359; + color: #fff; + /*background-image: url('images/TUM_Logo_weiss_rgb_s.svg');*/ +} + +section.lead.invert { + /*background-image: url('images/TUM_Uhrenturm_w.png');*/ +} + +section.invert h1, +section.invert footer, +section.invert::after { + color: #fff; +} + +section.invert a { + color: #e37222; +} + +/* Add "Page" prefix and total page number */ +section::after { + content: attr(data-marpit-pagination) ' / ' attr(data-marpit-pagination-total); +} diff --git a/learning-markdown/compile.sh b/learning-markdown/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..72dd709ef100bc6ccddbab36601cee6f09cf9faf --- /dev/null +++ b/learning-markdown/compile.sh @@ -0,0 +1,10 @@ +#!/bin/bash +# +# PY Barriat, March 2023 +# +# Download and install marp (MarkDown slides extension) from here: +# https://github.com/marp-team/marp-cli/releases +# + +marp --allow-local-files --theme ./assets/tum.css MarkDown.md -o MarkDown.pdf +marp --template bespoke --bespoke.progress --allow-local-files --theme ./assets/tum.css MarkDown.md -o MarkDown.html diff --git a/learning-markdown/example/README.md b/learning-markdown/example/README.md new file mode 100644 index 0000000000000000000000000000000000000000..62164d7b1c31b81fd043a7a405562f30837ddaec --- /dev/null +++ b/learning-markdown/example/README.md @@ -0,0 +1,88 @@ +# Sine hic parva + +## Gramen oblivia quantum + +Lorem markdownum et erat gurgite ipsaque et gravitas corpus dubitatis nostris +dicta, descendat. Idem sola loquentes via circa, successore vidisti vidit at +iter numen, Phoronidos ignarus obiecit tegumenque, nisi Hippolytum? Quam ibis +quid erat noctis: vacavit et, rima. + +## Purpureus Iuno insurgere rudi Aquilone equorum ut + +Quae sanesque gradu Aeneas per inscribit luco *terras* mendaci animus lustrantem +quem. Iam coniuge erat corpora arbor hoc ingens nempe si ver explicat. + +> Carens urbs dato circum **fugit**. Iungere [et formae] patria abiit. + +## Fulmina status + +Canibus sanguis **stabantque Hecaten** utraque. Quantum oras mora adeste falsa, +auro consueta bracchia [parentis], hoc haec alternare audita remis me rem quo. +Erat quod pars, subitam tegit invida positaeque recordor postera cornua +angustum; Italiam sicut. Fata quae iuvenes, quid forma patris, via neque. + +## Ego isto temptent suum + +Sit est tamen digna *cinis Athenae* cum gutture nec fuisses adicis abit in +paterno Somnus et iuvenis victu [tardus] de. Arethusa cumque quaeritur tanta +[revertentes] hi ante Buten et super vimque premebam, fere quondam. Tu tingui: +non, Latinas, dat totis dixit lacrimis dedit. Ingreditur carmina inque magis, +coniunctaque futura. + +``` +module load craype-x86-milan +module load PrgEnv-intel/8.3.3 +module load Perl/.5.34.1-GCCcore-11.3.0 +module load netCDF-Fortran/4.6.0-iompi-2022.05 +module load imkl/2022.1.0 OpenJPEG/2.5.0-GCCcore-11.3.0 +``` + +## Non sacra + +Nuda Thebas dum stillanti regis nocebit, nam est difficilis vetui redditque? Et +qui iam pererrat ad inani et abest sole volentem, autumnalia geri et unus dextra +[Iolen] vidit Thetis discidium. Lecti tigno et **aevum** cum ut gelidis Danae +animi; venturi Aglauros sunt tamen fetum; sit verum auxilium? Domum gramineo +Patareaque pars. + +Superis ipse ac sibi dantibus haec fruges vita sumere tabulas, portasque +trepidare laudem easdem utile. Antiquam erat peregit in parere manus his ut +sanguine famae novissima alba umeris, ultima tam arae aspergine, pia. Verba +sequuntur credas carentia; parentem Ulixem, est alterius putes. Viae crines +fores inter dabat incubuit pande. + +1. Satiantur quae +2. Moenibus labefactum munus +3. Thalamo negant qui auctor saxoque onus fugam +4. Aiacem exstat +5. Humo pascua aranea cognata ferebat palluit Aeas +6. Dixerat subito quietis frondibus litora procubuit nunc + +Cum Europa nurus? Acie refert; sub *iunctus malignas* iacuit, luna, undae vox +avitis satiata, Narcissum **tellus**. Ab villae, inspiratque, usus maximus fert +et murmura emisit crimenque mirantur. + +Nullaque monstro, ad mihi undas quarum quos ego rorantia, colle alii virgam +pontus Abantiades [pressum iudicis], sanguine. Numici vel in sanguine Phoebus +tandem pectoris manerem: siqua quos et villos parte, et pectora fecit. Inducta +in minus pressanda in formam aequi guttura, et per color piscosamque quaesita +regesta et ullum. + +[Iolen]: http://patris.org/fera +[et formae]: http://iam.io/an-quas.php +[parentis]: http://rapiunt.net/omni-ut.php +[pressum iudicis]: http://utferoque.io/illa.html +[revertentes]: http://dolebat.net/ +[tardus]: http://crevit-thalami.io/memorant-generis + +### Very first try + +| CC | XIOS | NEMO | IFS | #NODES | WTIME per YEAR | +| ----- | ------ | -------------- | ------ | ------- | -------------------- | +| `EC00.sh` | 1 | 86 | 320 | 3 | **121min** | +| `EC01.sh` | 3 | 128 | 288 | 4 | **??min** | +| `EC02.sh` | 1 | 128 | 512 | 6 | **83min** | + +## Contributors + +- ELIC members [@pbarriat](https://gogs.elic.ucl.ac.be/pbarriat) \ No newline at end of file diff --git a/learning-markdown/example/advanced.md b/learning-markdown/example/advanced.md new file mode 100644 index 0000000000000000000000000000000000000000..595bf552e066acacc989cc202b89baaf3b535698 --- /dev/null +++ b/learning-markdown/example/advanced.md @@ -0,0 +1,323 @@ +--- +toc-title: Contents +lang: en +title: Pandoc Markdown +subtitle: A `VSCode` extension for wrinting Pandoc Markdown documents using Pandoc +author: Dr Taz +keywords: Markdown, Pandoc, VSCode +bibliography: "assets/MyLib.bib" +csl: "assets/journal-of-neurophysiology.csl" +fontsize: 11.5pt +mainfont: Palatino, Georgia, Times, Arial +--- + +### Abstract + +`Pandoc Markdown` allows writing Markdown documents using Pandoc for both typesetting and real-time preview, with no third party renderers nor CSS files, just Pandoc. As a bonus, a curated *Article* CSS is provided, which allows producing documents inspired by those produced by the `article` LaTeX class. This extension requires Pandoc to be available from the command line. + + +## 1. Intro + +Please see [Pandoc's Markdown] for detailed documentation about basic and extended Pandoc Markdown. + +## 2 Pandoc Markdown + + +### 2.1 Code + +Pre formatted: + +~~~ +Normal text +Pre formatted +~~~ + +Source code: + +~~~python +# Python +import numpy as np +x = np.linspace(0,np.pi) +print("Hi from Python") +~~~ + +And: + +~~~js +// javascript +const changeColor = (newColor) => { + const element = document.getElementById('message'); + element.style.color = newColor; +} +~~~ + +### 2.2 Columns + +Columns are specified as a `<div>` of class `.columns`, which contains another `<divs>` of `<.column>` class. `<divs>` are specified in Pandoc Markdown using at least three colons as `:::` . For example: + + :::{[#label] .columns [attrs]} + + :::{.column width="45%"} + First column contents + ::: + + :::{.column width="10%"} + ::: + + :::{.column width="45%"} + Second Column contents + ::: + + ::: + +Which produces something as: + +:::{.columns} + +:::{.column width="48%;font-style: italic"} +1st Column Lorem ipsum dolor sit amet, consectetur adipiscing elit +::: + +:::{.column width="4%"} +::: + +:::{.column width="48%;background-color:#eee"} +2nd Column, Lorem ipsum dolor sit amet, consectetur adipiscing elit +::: + +::: + +### 2.3 Tables + +#### i. Simple + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua (see [Table 1](#Table1)). + + incididunt ut labore et dolore magna aliqua (see [Table 1](#Table1)). + + : Tabla 1: Tabla simple []{#Table1} + + | Syntax | Description | + | --------- | ----------- | + | Header | Title | + | Paragraph | Text | + +Which renders as: + +: Tabla 1: Tabla simple []{#Table1} + +| Syntax | Description | +| --------- | ----------- | +| Header | Title | +| Paragraph | Text | + + +#### ii. Aligned + +Column alignments are determined by the position of the header text relative to the dashed line below it + + : Table 1.1: Simple table syntax. + + Right Left Center Default + ------- ------ ---------- ------- + 12 12 12 12 + 123 123 123 123 + 1 1 1 1 + +: Table 1.1: Simple table syntax. + + Right Left Center Default +------- ------ ---------- ------- +12 12 12 12 +123 123 123 123 +1 1 1 1 + +Tables using pipes: + + : Table 2: Using pipes and colons + + | Left | Centered | Right | + |:--------- |:--------:| -----------:| + | Header | Title | Here's this | + | Paragraph | Text | And more | + +Which renders as: + +: Table 2: Using pipes and colons + +| Left | Centered | Right | +|:--------- |:--------:| -----------:| +| Header | Title | Here's this | +| Paragraph | Text | And more | + +Or simply: + + : Tabla 2.1: Pipe, simple + + Fruit | Price ($) | Existence + -------|-----------:| :-------: + apple | 2.05 | 3 box + pear | 1.37 | 2 kg + + +: Tabla 2.1: Pipe, simple + +Fruit | Price ($) | Existence +-------|-----------:| :-------: +apple | 2.05 | 3 box +pear | 1.37 | 2 kg + + + +### 2.4 Small caps + +To write small caps, use the smallcaps class: + + This is a [Small caps text]{.smallcaps} , got it? + +This is a [Small caps text]{.smallcaps} , got it? + + +### 2.5 Figuras + +#### i. Simple + + See [Fig. 1](#fig1) + +See [Fig. 1](#fig1) + + + {#fig1} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +{#fig1} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +#### ii. With attributes + +See [Fig. 2](#figattrs). + + {#figattrs width=40%} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua (see [Fig Attrs](#figattrs)). + +{#figattrs width=40%} + + + +### 2.6 Aside figures and text + + <aside> + +  + + </aside> + +<aside> + + + +</aside> + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Turpis cursus in hac habitasse platea dictumst quisque sagittis. In ornare quam viverra orci. Mauris rhoncus aenean vel elit. Fames ac turpis egestas maecenas pharetra convallis. Mauris nunc congue nisi vitae suscipit tellus mauris a diam. + + <aside> + This text should be located as an `<aside>` insert (right side). + </aside> + +<aside> +This text should be located as an `<aside>` insert (right side). +</aside> + +Fames ac turpis egestas integer eget aliquet nibh praesent tristique. Laoreet suspendisse interdum consectetur libero id faucibus nisl tincidunt. Ornare aenean euismod elementum nisi quis. Ipsum dolor sit amet consectetur adipiscing elit ut. Vitae congue mauris rhoncus aenean vel elit scelerisque. + +### 2.7 Math + +Use one og the math rendering options, such as `--katex` , `--mathjax`, etc. + +[]{#xfoo} +Dictumst ac turpis egestas integer dictumst quisque sit amet. A paraghrah. See [ec. 2](#ec-2) + + +The formula, $y=mx+c$, is displayed inline. Some symbols and equations (such as +$\sum{x}$ or $\frac{1}{2}$) are rescaled to prevent disruptions to the regular +line spacing. + +For example: []{#ec-2} + +$$ f(x) = \sum_{n=0}^{\infty} \frac {f^{(n)}(a)} {n!} (x-a)^n $$ + +where: + : $f^{(n)}(a)$ = the $k$-th derivative of $f$ evaluated at point $a$. + +### 2.8 Definitions + + **Term 1:** + : Definition 1 + + **Term 2:** + : Definition 2 + +**Term 1:** + : Definition 1 + +**Term 2:** + : Definition 2 + +### 2.9 Footnotes + + +Pandoc’s Markdown allows footnotes, using the following syntax: + + Here is a footnote reference[^1], and another one [^longnote]. + + [^1]: Here is the footnote. + + [^longnote]: Here's one with multiple blocks. + + +Here is a footnote reference[^1], and another one [^longnote] . + +[^1]: Here is the footnote. + +[^longnote]: Here's one with multiple blocks. + + +### 2.10 Citations + +To cite a bibliographic item with an identifier foo [@hoffmann_platon_1951], use the syntax `[@foo]`. Normal citations should be included in square brackets, with semicolons separating distinct items: + + Blah blah [doe99; smith2000; smith2004]. + +How this is rendered depends on the citation style [@temple_beginnings_1993]. In an author-date style. @temple_beginnings_1993 says good things. + +Citation items may optionally include a prefix, a locator, and a suffix. In + + Blah blah [see @doe99, pp. 33-35 and *passim*; @smith04, chap. 1]. + +The first item (`@doe99`) has prefix see, `locator pp. 33-35`, and suffix and *passim*. The second item (`@smith04`) has locator `chap. 1` and no prefix or suffix. + +You can also write an author-in-text citation, by omitting the square brackets: + + @smith04 says blah. + @smith04 [p. 33] says blah. + +This [@hoffmann_platon_1951] will cause the author’s name to be rendered, followed by the bibliographical details. Use this form when you want to make the citation the subject of a sentence [@hoffmann_platon_1951;@temple_beginnings_1993]. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis tortor sit amet urna facilisis sollicitudin. Ut efficitur, enim vitae sodales aliquet, odio dui consectetur nisl, quis facilisis mauris est ut odio. Proin convallis erat sit amet arcu pellentesque blandit. Aliquam at turpis vestibulum, iaculis nibh nec, eleifend ex. Vestibulum porta nec dolor ac porttitor. Nullam maximus vitae lacus ac hendrerit. Pellentesque aliquet, est nec finibus pharetra, nulla arcu malesuada orci, eget consequat lacus sapien eget libero. Phasellus dapibus turpis sed euismod sodales. Proin rhoncus odio non magna finibus, quis mollis enim lacinia. In hac habitasse platea dictumst. In eget neque blandit, dapibus lacus euismod, varius ligula. Praesent at dui ut eros gravida mollis. Ut viverra lorem risus. + +Cras ut congue sem. Mauris ex nulla, dapibus eu varius et, commodo eget dolor. Nunc velit ligula, sagittis placerat feugiat a, tincidunt et purus. Quisque eu convallis massa. Curabitur in sollicitudin felis. Phasellus mattis tincidunt ultricies. Sed sodales semper lorem quis semper. Quisque sollicitudin cursus dolor, quis fringilla magna lacinia eu. Donec at sagittis metus. Ut et lectus justo. Vestibulum sollicitudin commodo iaculis. In in elit nunc. Ut eget laoreet lorem. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis tortor sit amet urna facilisis sollicitudin. Ut efficitur, enim vitae sodales aliquet, odio dui consectetur nisl, quis facilisis mauris est ut odio. Proin convallis erat sit amet arcu pellentesque blandit. Aliquam at turpis vestibulum, iaculis nibh nec, eleifend ex. Vestibulum porta nec dolor ac porttitor. Nullam maximus vitae lacus ac hendrerit. Pellentesque aliquet, est nec finibus pharetra, nulla arcu malesuada orci, eget consequat lacus sapien eget libero. Phasellus dapibus turpis sed euismod sodales. Proin rhoncus odio non magna finibus, quis mollis enim lacinia. In hac habitasse platea dictumst. In eget neque blandit, dapibus lacus euismod, varius ligula. Praesent at dui ut eros gravida mollis. Ut viverra lorem risus. + +Cras ut congue sem. Mauris ex nulla, dapibus eu varius et, commodo eget dolor. Nunc velit ligula, sagittis placerat feugiat a, tincidunt et purus. Quisque eu convallis massa. Curabitur in sollicitudin felis. Phasellus mattis tincidunt ultricies. Sed sodales semper lorem quis semper. Quisque sollicitudin cursus dolor, quis fringilla magna lacinia eu. Donec at sagittis metus. Ut et lectus justo. Vestibulum sollicitudin commodo iaculis. In in elit nunc. Ut eget laoreet lorem. + +## References + + +[Pandoc]: https://pandoc.org/ +[VSCode]: https://code.visualstudio.com +[markdown-it]: https://github.com/markdown-it/markdown-it +[Pandoc's Markdown]: https://pandoc.org/MANUAL.html#pandocs-markdown \ No newline at end of file diff --git a/learning-markdown/example/article.md b/learning-markdown/example/article.md new file mode 100644 index 0000000000000000000000000000000000000000..8eceee3c253c4acf2349bdc87a512b2ef4c1b5fc --- /dev/null +++ b/learning-markdown/example/article.md @@ -0,0 +1,363 @@ +# HOW TO PREPARE A GENERIC SCIENTIFIC MANUSCRIPT FOR SUBMISSION USING MARKDOWN AND PANDOC + +First A. Author^1^, Second B. Author^2^, Third Author^3^, Last Author^1,2,3^ + + +1. University of Pandoc, Randwick, NSW, Australia +2. Markdown Institute, Ottawa, ON, Canada +3. LaTeX Research Institute, Kingston, On, Canada + +\ +\ + +<!--- +Lines can be added or deleted +If adding line in middle, end line with a space and \ +--> +**Corresponding author** \ +Dr. First A. Author \ +University of Pandoc \ +42 Printers Lane \ +2031, Randwick, NSW, Australia \ +email: fa.author@pandoc.au \ +ph: +61-1-2345-6789 +\ +\ +\ +<!--- +Lines can be added or deleted based on journal requirements +If adding line in middle, end line with a space and \ +--> +**Keywords:** Pandoc, Markdown, Latex \ +**Running title:** Markdown manuscript \ +**Wordcount:** 4,321 + +\newpage + +# Abstract +**Purpose.** If journal requires abstract sections, these can be included and made bold by including double asterisks `**section_name**` before and after each header. If these are not needed, simply do not include them, simple. +**Methods.** Because of our selected font, we can easily include special characters directly into our markdown file and these will be rendered properly. This provides some motivation to find a text editor that has a good *character map* plugin. Personally, I have grown rather fond of the Atom editor, which has a `character-map` plugin that does the trick. by clicking on a hotkey, `Alt-l`, I can type the name of the symbol I am looking and it is inserted into my document. +**Results.** So lets say I just pressed `Alt-l` and typed `plusminus`. The item at the top of the list would be `±`, as expected. I hit `Enter` and it is inserted into my document. This makes it easy to say that, on average, my level of frustration drafting a manuscript has decreased by 77% ± 4% since learning about Markdown and Pandoc. Also, scientific papers always sound fancier when you use Greek letters. So I will search for the letter `beta`, which gives me the special character β. Also, because Pandoc converts Markdown to PDF using LaTeX, it is amazing support for mathematical equations and the like. Most basic tutorials on LaTeX should cover the basics of math-mode (i.e. `$math stuff$`). +**Conclusion.** This dummy manuscript and its accompanying files includes everything you need to generate a basic manuscript for submission. The rest of this paper will provide a brief overview of Markdown, Pandoc and the various parts that accompany this manuscript to generate the final result. I chose a simple approach and targeted generic formatting. Much more sophisticated manuscripts can be generated, but it is always a good idea to start small and simple. + +\newpage + +# Introduction +A guiding principle of Pandoc and LaTeX is to separate content from style. While this can be achieved in LaTeX, the actual document in which you write can be rather intimidating for the uninitated. It is filled with commands, for example `\usepackage[margin=3cm]{geometry}`, and typing even a simple document can become cluttered with function calls to make text bold (`\textbf{my text}`) or italic (`\emph{my text}`), or just trying to write a percent sign (`\%`). While LaTeX is more powerful and is what is used by many publishers to typeset the journals we publish, it can be overwhelming for people who have any used Microsoft Office or Libre Office. + +Markdown is a simple markup language initially created to write content for the web. Pandoc, on the other hand, is a powerful Swiss Army knife of a tool that converts documents from one format to another. Importantly, Pandoc adds functionality that allows us, researchers and scientists, to generate professional looking manuscripts. And yes, Pandoc handles references and citations in a clean and efficient way; more on this later. + +This means that we can now focus on the content of our manuscripts when we are writing them. We will let Pandoc do the heavy lifting of creating a professional looking manuscript that we can share with co-authors and submit for review. And since we are using Markdown to write our manuscript, we can use a simple text editor, and the text that we write will be quite straight forward, free of LaTeX-style function calls. + +While we may use various formatting styles when writing notes, reports, letters, etc., things are rather straightforward when preparing scientific manuscripts [^1]. The main types of inline formatting I use are italics, super- and subscript. I also include tables and figures, and very occasionally use footnotes. For the footnote I just used, I typed `[^1]` in the spot where I want the superscript number 1 to appear, and then, somewhere else in the document (I chose immediately after the paragraph as this makes it easy to find if I need to change it) add `[^1]: At least for the type of papers I find myself writing.` This text has to be on its own line, with an empty line before and after. To make something italic, simply add an asterisks on either side. For example, typing this, `*this will be slanted*` will result it text that appears as *this will be slanted*. Superscript is achieved by surrounding the text with the carat symbol. For example, `sum^adults^` will generate sum^adults^. Similarly, the tilda symbol is used for subscript: `sum~chilren~` will appear as sum~children~ in the final document. We will cover tables and figures later in this document. The key thing here is that making these style changes can be done later, *en masse*. If you don't remember how to make something italic, bold or superscript, don't worry. Just leave yourself a note [TODO: make this text bold] and keep your writing flow going. Remember, we are trying to separate content from style. Stay in the flow and don't get distracted. I have included a brief review of key inline formatting (Table 1) and special characters (Table 2) at the end of this paper. + +[^1]: At least for the type of papers I find myself writing. + +# Methods + +It turns out we need to add and specify a few things to Pandoc in order to obtain a presentable manuscript. As you can see, these details are not included in this file, the `manuscript.md` file. That is because we are trying to separate content from style (and distractions). So this file is where we should write our manuscript. The details that specify things like the font, whether or not we want numbered sections, the addition of line numbers, etc are in small helpers files. Lets go over these now. + +## Participants + +To generate the PDF output, we simply need to run `pandoc -d header.yaml` on the command line. The content of this file could be placed in a `yaml` header at the top of this document, but that would be distracting to use and confusing to our co-authors who might not be familiar with Markdown and Pandoc. So, we extracted the `yaml` header and placed it in its own file: `header.yaml`. Note that `yaml` files need to be formatted based on some simple rules, so if you want to change anything, make sure you adhere to proper formatting style; a quick Google search will locate a quick tutorial if you need one. + +In `header.yaml`, we find two commands related to referencing. One specifies the Bibtex file that contains our references the other specifies the referencing style we want to use to format our references (note that a line that starts with `#` is a comment and has no effect). + +``` yaml +# References and Reference Style +csl: journal-of-neurophysiology.csl +bibliography: references.bib +citeproc: true # required in pandoc 2.14 +``` + +`csl` stands for Citation Style Language. As stated on its website: + +> "Welcome to the open source Citation Style Language (CSL) project! Our goal is to facilitate scholarly publishing by automating the formatting of citations and bibliographies. We develop the Citation Style Language and maintain a crowdsourced repository with over 10,000 free CSL citation styles." + +We will have more to say about references later in this article. + +The next part of the `header.yaml` file specifies the input and output files. + +``` yaml +# Names of Input and Output Files +input-file: manuscript.md +output-file: manuscript.pdf +``` + +These will need to be changed if you decide to rename the base Markdown file, or if you want a specific name for the outputed PDF file. + +Then our `header.yaml` file has three difference 'include' statements. These allow us to include the content of specified files into the header, or preamble, of the LaTeX file that will generate our article, as well as before and after the actual content of our article, the stuff if `manuscript.md` is added to the LaTeX file. What these files contain will be described in the following sub-sections. + +``` yaml +# Addition to LaTeX Template +include-in-header: header.tex # Change margin and line spacing +include-before-body: before_body.tex +include-after-body: after_body.tex +``` + +The next section in the `header.yaml` file specifies some Pandoc variables that will control various aspects of how are article is generated. In order to properly process special characters typed directly into our text editor, rather than specifying a special LaTeX command, we are using the `xelatex` pdf-engine. To have these special characters appear in our This font was selected as it has good support for special characters. + +``` yaml +# LaTeX Specifications +pdf-engine: xelatex +variables: + documentclass: article + mainfont: "DejaVu Serif" + sansfont: Arial + classoption: + - 10pt # 11pt, 12pt +``` + +The final part of `header.yaml` contains instructions and a commented out line related to adding numbered sections to our article. + +``` yaml +# To have numbered sections, uncomment the following line. +# But we don't want our Title or Abstract to be numbered, +# so we will add {.unnumbered} next to our Title and Abstract +# headers, separated by one space. +# Example: # Abstract {.unnumbered} + +# number-sections: true +``` + +## Experimental set-up + +The file called `header.tex` contains LaTeX commands that Pandoc will insert in the preamble of the LaTeX it generates to make our manuscript. + +``` latex +\usepackage[margin=3cm]{geometry} +\usepackage{lineno} +\usepackage{setspace} +\doublespacing +%\singlespacing +%\onehalfspacing +``` + +If you want to change the margins of the PDF document that is generated, you can change the value passed to the `geometry` packaged. Next, we instruct LaTeX to use the `lineno` package, which will allow us to add line numbers to our document. Finally, we load the `setspace` package, which gives us access to three functions that we can use to specify the line spacing we want for our manuscript. The default is double line spacing, but by commenting out `\doublespacing` with a `%` and uncommenting one of the other lines we can use single line spacing or one and a half line spacing. + +## Protocol + +The next file we have is `before_body.tex`. The content of this file is inserted after the `\begin{document}` command in the LaTeX file, but before the actual content --the stuff in this file-- is added (by the way, I used two dashes in a row `--` to get the two emdashes in this sentence). + +``` latex +\thispagestyle{empty} +\vspace*{2 cm} +\begin{linenumbers} +``` + +The first line tells LaTeX to not add a page number to the first page, our title page. The second line adds some vertical space, which allows the title of our article to not be at the very top of our title page. The final line tells LaTeX to start numbering the lines in our document. + +If you did not want numbered lines, you could delete or comment out `\begin{linenumbers}` in this file, as well as `\end{linenumbers}` that we add to the very end of our document via the `after_body.tex` file. + +## Statistical analysis + +The file `after_body.tex` includes a single LaTeX command: `\end{linenumbers}`. As mentioned above, delete or comment out this command if you do not want line numbers + +# Results + +## Effect of font on blood pressure + +Many researchers love to hate referencing in manuscripts. Many people default to proprietary software like Endnote or Reference Manager, but many good quality free alternatives are available such as Mendeley, JabRef, Zotero, etc. Regardless of what reference manager program you choose, the key functionality that we want if for the program to automatically generate and update a `.bib` file that contains our references. + +I often manually generate my `.bib` Bibtex files when I know they will be relatively small. However, I have recently (re)started using Zotero, and I am licking it. I can add references when I a browsing for articles, using the Zotero plugin for the Firefox web browser. I can also search for references from within the Zotero desktop application. Also, having an online accounts allows me to view and sync my library on any computer. I recommend the Better Bibtex plugin for Zotero, which adds additional functionality. + +The key things is that you have a Bibtex file that contains your references. Each reference has a key, which we use to refer to the reference. Below is an example of a reference in a Bibtex file: + +``` bibtex +@Article{Diong2015, + Author="Diong, J. and Herbert, R. D. ", + Title="{{I}s ankle contracture after stroke due to abnormal intermuscular force transmission?}", + Journal="J. Appl. Biomech.", + Year="2015", + Volume="31", + Pages="13--18", +} +``` +The key of this reference is `Diong2015`. Therefore, I can refer to this paper by preceding it's key with the `@` symbol. To include a reference to the article that will be included in parentheses, I would type `[@Diong2015]`; this would result in the following [@Diong2015]. If was to refer to the paper by @Diong2015 in a sentence, as I just did, I would omit the square brackets (i.e. `@Diong2015`). You can also include several reference keys in the square brackets. For example, typing `[@Diong2012a; @Diong2012b; @Diong2015; @Diong2019]` will generate [@Diong2012a; @Diong2012b; @Diong2015; @Diong2019]. Note the semi-colon and space between each reference key. + +Sometimes we want to add text in the parentheses with our reference. This can be achieved by simply including the desired text before or after the reference. As an example, lets look at the following line of text: `contractures are a major problem [see @Diong2015 for a review]`; it looks like this when processed by Pandoc: contractures are a major problem [see @Diong2015 for a review]. More complex examples are also possible, such as `[see @Huijing2003, Figure 1; also @Bojsen-Moller2010, Table 2]`, which results in the following [see @Huijing2003, Figure 1; also @Bojsen-Moller2010, Table 2]. Some of these styles of referencing will be depending on the referencing style you are using. + +Now, if you skip to the end of this manuscript, you will find a References section where all the references I just cited will be properly formatted according to the style that I specified in the `header.yaml` file. + +``` yaml +# References and Reference Style +csl: jneurophysiol.csl +bibliography: references.bib +``` + +Here we are using a Citation Style Language file that formats our references for submission to the Journal of Neurophysiology. There are literally thousands of such files available for download, or you can generate your own. That means, if your paper gets rejected from one journal and the next journal you want to submit to use a different referencing style, simply find the appropriate `.csl` file, add it to the project folder and change the appropriate line in your `header.yaml` file. + +## The relationship between hyphens and cholesterol + +It is worth mentioning that no reference manager software is perfect. When references are downloaded from the web, the formatting is not always correct, or they may not include the abbreviated version of a journal title. Thus, it is up to the authors to ensure the content of the `.bib` file is correct. For example, the tile of the paper sometimes comes in title case, where each word is capitalised. This needs to be fixed in the Zotero and the `.bib` file updated. + +## Causal relationship between Markdown use and happiness + +In many text editors, you can split your screen and have two documents open. Thus, you could have your paper open on one side and your `.bib` file open on the other. And when you want to enter a reference, you could search the `.bib` file for the reference and identify its key. As you probably have already realised, this is less than ideal. + +A better way to work is to use the Atom editor and the `autocomplete-bibtex` plugin. By pointing this plugin to the `.bib` file that is generated and regularly updated by Zotero, we can add references without having to move our hands from the keyboard. All we have to do is type `@` and start typing and a list of possible references will appear. We can scroll through the available choices or we can keep on typing to narrow down our search. The, when we have found the reference we were looking for, we simply click on `Enter` and the reference key is added. We can see an example of this is action in Figure 1, where I am adding this reference [@Diong2015]. + +# Discussion + +This group of files provides a relatively simple approach to drafting scientific articles. It can be adapted to suite various requirements, yet remains relatively simple and clutter-free. Because of this, it remains a simple article template and may not suite everyone's needs. In preparing this group of files, several other examples were reviewed; some were relatively simple while others were sophisticated and generated publication-quality PDF documents, some based on the official LaTeX packages provided by publishers. The benefit of this series of files is that it can easily be adapted to other types of documents, such as study notes, lab notebooks, blog posts, etc. The building blocks are simple and most key parts are explained in the present article. + +## Not using maketitle + +Many introductory tutorials on using Markdown and Pandoc to generate nice looking PDF add the title, authors, abstract and date in the `yaml` header. This way, these entries are passed to LaTeX and used as part of the `\maketitle` command. + +I tried several ways to get `maketitle` to generate something that would be acceptable as a manuscript title page. Using an additional `LaTeX` package I was able to specify more than one affiliation per author. However, allowing room to specify the details of the corresponding author and also various other items such as word count, running title, key words, etc was not straightforward. There were hacks that hijacked the `date` variable, but these were less than optimal. Also, I was aiming for a simple approach that did not require writing a new LaTeX template file with newly defined (or redefined) functions. + +Therefore, I opted to bypass `maketitle` completely. This allows for great flexibility as to what appears on the title page. The downside is that I had to use several manual line breaks (i.e. `\`) and a call to `\newpage` in this, the main Markdown document. + +## Tables + +Tables can be found at the end of the manuscript, and they are rather easy to prepare, especially if you use Pandoc-style tables (see `manuscript.md` for example of how to prepare tables). To add a table caption, simply allow for one empty line and start the caption with 'Table: '; this will be recognised by Pandoc as a table caption and will be properly formatted in LaTeX. To ensure LaTeX produces the table in the expected location, use `\clearpage` between each new table you add. + +## Figures + +Figure are also found at the end of the manuscript and they too are easy to add to the manuscript. + +```markdown +{ width=10cm } +{ height=10cm } +``` + +Add the full caption to your figure in the square brackets, but unlike tables, there is no need to add 'Figure' or something similar at the start. Pandoc, via LaTeX, will automatically add 'Figure' and the appropriate figure number on the final PDF. + +The figure can be located in the same folder as the Markdown file where you are drafting your article, but it can also be located in a dedicated folder, such as `assets`. In this case, simply include the folder name before the figure name (the forward slash may need to be backslash for Windows users). + +Finally, if you did not make your figures to exact size you want them to appear in the figure published manuscript, you really should do this, you can specify the size of the figure by adding an additional entry. Note that the entry goes between curly braces, with no space between the closing parenthesis and the opening curly brace, and with spaces on either side of the size command. Various options are possible, but the most sensible for manuscripts are to specify either the width or height of the figure. + +## Writing with co-authors + +Now comes the $1M dollar question: how to write a paper using this template with co-authors who only know Microsoft Word? Well, there are a few options. + +The best way would be to have your co-authors work directly on the Markdown file (`manuscript.md`), where comments could be left in an agreed upon format, for example in `typewriter` font. In papers than do not contain references to software or code, it is uncommon to use such a font, thus it would be an easy way to leave comments `|MH: I was wondering if we could expand on this point a little, maybe providing an example of what such a comment would look like|`. + +Also, rather than emailing the files around, the manuscript could be version controlled using git and hosted on GitHub or an internal GitLab server. With several co-authors, the person who is likely to give you the best and detailed feedback should go first, and then other co-authors could add their changes and comments after a few initial rounds between you and the other key authors (often your supervisor). It would also be possible to have each co-authors create a branch in the git repository, do their work their, and then make a pull-request. This allows for a nice, civilised conversation between the two parties. A workflow around git is definitely not common in many fields, including my own, but it makes total sense to have a lasting history of the manuscript in all its forms, and this without having dozens of files with co-author initials appended at the end or `v1`, `v2`, `v3final`, `v3finalfinal` appended at the end. + +An alternative to having your co-authors use git is to email them the Markdown file and have them email back their changes and comments. You can incorporate these changes yourself on a git branch, and then merge them in to the main document. This will likely be needed for co-authors not familiar with git. + +Another less-than-optimal alternative is to use Pandoc to output a Microsoft Word `.docx` file. While the formatting is not perfect, it is surprisingly good; definitely enough to have your co-authors revise the manuscript. But what do you do when the document is sent back to you? + +We can use Pandoc to convert our document back into a Markdown file. If you co-author used tracked-changes, you have to option to `accept` them all or `reject` them all. You will likely want to accept them all and add the modified file to a dedicated git branch, where you will be able to merge these changes (accepting and rejecting the changes individually). One thing to not is that any comment you co-authors left for you as Word comments will be lost. + +```bash +% Example where all changes are accepted +pandoc --from=docx manuscript.docx --track-changes=accept -o revised_manuscript.md + +% Example where all changes are rejected +pandoc --from=docx manuscript.docx --track-changes=reject -o revised_manuscript.md +``` + +Another option is to accept all changes, including comments, by using `--track-changes=all`. This is likely not you want to do, as it actually embeds detailed notes about each change and comment made in the document. Here is an example: + +```markdown +If [I added stuff.]{.insertion author="Martin Heroux" date="2021-07-08T15:22:24Z"} + +This means that we can now focus on the content of our manuscripts when we are writing them. +[A comment.]{.comment-start id="0" author="Martin Heroux" date="2021-07-08T15:25:08Z"} +[[]{.comment-end id="0"}]{.insertion author="Martin Heroux" date="2021-07-08T15:25:08Z"} +``` + +## Workflow in Atom +If you are new to all of this and don't have a preferred writing environment, you might be curious about my current tooling. Well, as you can see in Figure 1, I use the Atom editor. This is an open-source editor that to which you can add plugins (from the folks at Atom or the Atom community). You can use Atom to do your actual coding (if you code), but you can also use it to write your papers! As you can see, I have my files and folders visible on the left side, my main `manuscript.md` file open in one window, a rendered PDF in another window, and, along the bottom, a command-line terminal. + +When I am in the flow of writing, I don't have the PDF visible, as it is distracting. It is too tempting to compile our cool document and see what it looks like. However, when you are in the final phase of preparing your manuscript, or when you are learning Markdown and Pandoc, it can be useful to see what the PDF output looks like. + +As explained above, I run `pandoc -d header.yaml` on the command line to generate my PDF manuscript. With the PDF viewer plugin that I use (see Table 3) for details, the PDF auto-updates. + +## Submitting your revised, final manuscript +While you can usually submit a single PDF document to journals when first submitting your paper, they usually want your paper in a different format, including individual, high-quality figures. Oddly enough, publishers almost all use LaTeX to typeset journals, yet many journals do not accept LaTeX files to be submitted, or simply text file or Markdown files. Rather, they prefer Microsoft Word `.docx` files, a complex file type that mixes formatting and content, where the formatting will be stripped away by the typesetters. + +So, what to do after you have received reviewer feedback on your first submission and the editor new demands the source files? You are lucky if you are allowed to submit a LaTeX file. Then, you can use Pandoc to output a `.tex` file. The next easiest thing to do is to use Pandoc to convert your Markdown manuscript file into a Word file. The formatting should be good enough, but you might have to tweak your tables a little (see Figure 2 for an example). While this seems like an unnecessary and somewhat tedious step, you should only have to do it once per manuscript. And make sure you do it at the very end, when you and your colleagues have make all the required changes. + +Someday, we may actually be able to provide Markdown or text files as the final product. But we should not let a journal or publisher, and their idiosyncratic choice of preferred final file, influence how we spend the vast majority of our time working on our manuscript. We will spend countless hours writing and revising our paper; I would much prefer work in a simple, clean format like Markdown for those hours, and then spend a somewhat painful 5-10 min tweaking a Word document if my manuscript has passed a first round of reviews and I have been asked to submit a revised version. + +## Marked-up version of your manuscript + +When submitting a revised version of your manuscript, journals often ask for a marked-up version, to show the various additions and deletions that have been made. How do we do this in the current workflow? + +There is a wonderful LaTeX package called `latexdiff` that does a great job when you have two versions of the same `.tex` file. A call to this program would look like this: + +``` +latexdiff manuscript.tex revised_manuscript.tex > diff.tex +``` + +Thus, we could have Pandoc output two `.tex` files, one from our original submission and one from our revised version, and get the marked-up version that can be processed using `pdflatex` (or `xelatex`) to get a nice looking PDF. An example of what such a PDF document looks like is shown in Figure 3. + +Another option that is in theory simpler is to use ~~strikeout text for the things that you want to delete~~ and **bold text for any additions.** This is can be achieved using basic Pandoc Markdown: `~~strikeout text for the things that you want to delete~~ and **bold text for any additions.** ` While this approach may seem simpler because it does not require running files through `latex-diff` and recompiling a PDF document, it is actually much more work. Consider a document that has been through multiple rounds of revisions by you and your co-authors, how will you know what has been added and what has been deleted? The only way for this to work is for you and your co-authors to agree on the convention to manually strikeout text using `~~text~~` and manually bold new next with `**text**`. It could work, but because it is not common practice, it is quite likely that someone will forget to do it. Best to learn to work with `latex-diff` if you ask me. + + +## Conclusion + +The approach presented here is somewhat simplistic. However, it provides a nice introduction to Pandoc and Markdown for academic writing that does not use much or any mathematical notation or formulas, or embedded code. A slightly different flavour of Markdown, called R-Markdown is popular amongst users of the R programming language. When combined with `knitr`, it can be used to write papers in various journal-specific styles. It can even work with Python code. However, my approach is generally to start simple and use more sophisticated tools when I need them. The current approach will do me just fine for the majority of my papers. + +\newpage + +# Acknowledgements +I would like to thank the participants of the study, and to Dr. Honeycut for his wisdom and guidance. + +# Funding +The present work was supported by the two gold coins I found the other day when I was cleaning between the sofa cushions. + +# Author Contributions +Authors agree to attest that they have contributed sufficiently to be listed as an author. + +\clearpage + +Inline formatting Pandoc Markdown command Result +------------------ ------------------------ --------------- +Bold `**bold**` **bold** +Italic `*italic*` *italic* +Superscript `x^2^` x^2^ +Subscript `x~2~` x~2~ +Emdash `--` -- + +Table: Fundamental inline formatting in Pandoc-flavoured Markdown + +\clearpage + +Character name output +--------------- ------- +Degree symbol ° +Greek letters β α +plus-minus ± +Sumamtion ∑ +Trademark â„¢ +Copyright © +Money ¢ £ € + +Table: Example of special characters that can be typed directly into a text editor and are properly rendered by Pandoc, without using the LaTeX math-mode or other packages. + +\clearpage + +Atom plugins Functionality +--------------- -------------- +`autocomplete-bibtex` Amazing plugin that simplifies entering reference key +`character-table` For insert special characters +`language-markdown` To allow language highlighting for Markdown +`pdf-view` Provides in-editor PDF reviewer +`platformio-ide-termial` An embedded terminal window to run your Pandoc commands +`tool-bar-markdown-writer` Helpful when first learning Markdown and its commands +`markdown-preview` Provides real-time HTML rendered view of Markdown document +`wordcount` Wordcount of current document +`markdown-fold` Can fold sections, and thus focus on parts of document + +Table: Atom plugins that make writing (Markdown) documents a joy. + +\clearpage + +{ width=16cm } + +\clearpage + +{ width=14cm } + +\clearpage + +{ width=14cm } + +\clearpage + +# References diff --git a/learning-markdown/example/article.yaml b/learning-markdown/example/article.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a299f5d06c59edeafb4081a5669f5bf7607ff34d --- /dev/null +++ b/learning-markdown/example/article.yaml @@ -0,0 +1,33 @@ +--- +# References and Reference Style +csl: assets/journal-of-neurophysiology.csl +bibliography: assets/references.bib +citeproc: true # required in pandoc 2.14 + +# Names of Input and Output Files +input-file: article.md +output-file: article.pdf # Change to .docx to make a Word file + +# Addition to LaTeX Template +include-in-header: tex_templates/header.tex # Change margin and line spacing +include-before-body: tex_templates/before_body.tex +include-after-body: tex_templates/after_body.tex + +# LaTeX Specifications +pdf-engine: xelatex +variables: + documentclass: article + mainfont: "DejaVu Serif" + sansfont: Ubuntu + classoption: + - 10pt # 11pt, 12pt + +# To have numbered sections, uncomment the following line. +# But we don't want our Title or Abstract to be numbered, +# so we will add {.unnumbered} next to our Title and Abstract +# headers, separated by one space. +# Example: # Abstract {.unnumbered} + +number-sections: true + +# etc \ No newline at end of file diff --git a/learning-markdown/example/assets/MyLib.bib b/learning-markdown/example/assets/MyLib.bib new file mode 100644 index 0000000000000000000000000000000000000000..c3b39fc873f41c8e17a04f0247e9071de3fbcf2b --- /dev/null +++ b/learning-markdown/example/assets/MyLib.bib @@ -0,0 +1,18 @@ + +@article{hoffmann_platon_1951, + title = {Platon}, + volume = {48}, + number = {20}, + journal = {Journal of Philosophy}, + author = {Hoffmann, Ernst}, + year = {1951}, + file = {Snapshot:/Users/rsolano/Zotero/storage/54ZWU4MZ/KP-6.html:text/html}, +} + +@book{temple_beginnings_1993, + title = {The beginnings of writing}, + publisher = {ERIC}, + author = {Temple, Charles}, + year = {1993}, + file = {Snapshot:/Users/rsolano/Zotero/storage/K76FDZQR/eric.ed.gov.html:text/html}, +} diff --git a/learning-markdown/example/assets/autocomplete_bibtex.png b/learning-markdown/example/assets/autocomplete_bibtex.png new file mode 100644 index 0000000000000000000000000000000000000000..7698fda4753f042845ccf490eebf75f80acf786a Binary files /dev/null and b/learning-markdown/example/assets/autocomplete_bibtex.png differ diff --git a/learning-markdown/example/assets/background.pdf b/learning-markdown/example/assets/background.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ecb34573d497c731bbfb510a56afb995089ca6c0 Binary files /dev/null and b/learning-markdown/example/assets/background.pdf differ diff --git a/learning-markdown/example/assets/biblio.bib b/learning-markdown/example/assets/biblio.bib new file mode 100644 index 0000000000000000000000000000000000000000..7d70d56d7660e8bfbb04dc1266007beb6ffa269f --- /dev/null +++ b/learning-markdown/example/assets/biblio.bib @@ -0,0 +1,14 @@ + +@article{example, + title = {Example title}, + volume = {1}, + issn = {26256161}, + number = {38}, + journal = {Random journal}, + doi = {10.1002/doi56261656}, + author = {One, Author and Two, Author}, + month = sep, + year = {2000}, + pages = {111--112}, + pmid = {26352027} +} \ No newline at end of file diff --git a/learning-markdown/example/assets/bibliography.bib b/learning-markdown/example/assets/bibliography.bib new file mode 100644 index 0000000000000000000000000000000000000000..816df75820bcf1616c7ba48d022b3c4a8e81cbd6 --- /dev/null +++ b/learning-markdown/example/assets/bibliography.bib @@ -0,0 +1,45 @@ + +@online{macfarlane:pandoc, + author = {John MacFarlane}, + title = {About pandoc}, + url = {http://johnmacfarlane.net/pandoc/}, + urldate = {2015-02-03}, +} + +@online{macfarlane:pandocreadme, + author = {John MacFarlane}, + title = {Pandoc User’s Guide}, + url = {http://johnmacfarlane.net/pandoc/README.html}, + urldate = {2015-02-03}, +} + +@online{ wiki:latexerrors, + author = {Wikibooks}, + title = {LaTeX/Errors and Warnings --- Wikibooks The Free Textbook Project}, + year = 2014, + url = {http://en.wikibooks.org/w/index.php?title=LaTeX/Errors_and_Warnings&oldid=2739496}, + note = {Online; accessed 3-February-2015} +} + +@online{ wiki:lorem, + author = {Wikisource}, + title = {Lorem ipsum --- Wikisource}, + year = 2013, + url = {http://la.wikisource.org/w/index.php?title=Lorem_ipsum&oldid=61677}, + note = {[Online; accessed 3-februarii-2015]}, +} + +@online{wiki:kitten, + author = {Wikimedia Commons, André Karwath}, + title = {Six weeks old cat}, + year = 2005, + urlseen = {2015-02-03}, + url = {http://commons.wikimedia.org/w/index.php?title=File:Six_weeks_old_cat_%28aka%29.jpg&oldid=141863103}, +} + +@online{ctan:listings, + author = {Brooks Moses, Jobst Hoffmann}, + title = {listings – Typeset source code listings using LaTeX}, + url = {http://www.ctan.org/pkg/listings}, + urldate = {2015-02-03}, +} diff --git a/learning-markdown/example/assets/by-sa.pdf b/learning-markdown/example/assets/by-sa.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ce081ca1621fec8292dad2c8aff473a1b020de48 Binary files /dev/null and b/learning-markdown/example/assets/by-sa.pdf differ diff --git a/learning-markdown/example/assets/citation.csl b/learning-markdown/example/assets/citation.csl new file mode 100644 index 0000000000000000000000000000000000000000..ac18ca255574dd2c8535e9324d51a500724ded98 --- /dev/null +++ b/learning-markdown/example/assets/citation.csl @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="utf-8"?> +<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US"> + <info> + <title>ACM SIG Proceedings ("et al." for 15+ authors)</title> + <id>http://www.zotero.org/styles/acm-sig-proceedings-long-author-list</id> + <link href="http://www.zotero.org/styles/acm-sig-proceedings-long-author-list" rel="self"/> + <link href="http://www.acm.org/sigs/publications/proceedings-templates" rel="documentation"/> + <author> + <name>Naeem Esfahani</name> + <email>nesfaha2@gmu.edu</email> + <uri>http://mason.gmu.edu/~nesfaha2/</uri> + </author> + <contributor> + <name>Chris Horn</name> + <email>chris.horn@securedecisions.com</email> + </contributor> + <category citation-format="numeric"/> + <category field="science"/> + <category field="engineering"/> + <updated>2013-08-29T05:27:03+00:00</updated> + <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights> + </info> + <macro name="author"> + <choose> + <if type="webpage"> + <text variable="title" suffix=":"/> + </if> + <else> + <names variable="author"> + <name name-as-sort-order="all" and="text" sort-separator=", " initialize-with="." delimiter-precedes-last="never" delimiter=", "/> + <label form="short" prefix=" " suffix="." strip-periods="true"/> + <substitute> + <names variable="editor"/> + <names variable="translator"/> + </substitute> + </names> + </else> + </choose> + </macro> + <macro name="editor"> + <names variable="editor"> + <name initialize-with="." delimiter=", " and="text"/> + <label form="short" prefix=", "/> + </names> + </macro> + <citation collapse="citation-number"> + <sort> + <key variable="citation-number"/> + </sort> + <layout prefix="[" suffix="]" delimiter=", "> + <text variable="citation-number"/> + </layout> + </citation> + <bibliography entry-spacing="0" second-field-align="flush" et-al-min="15" et-al-use-first="1"> + <sort> + <key macro="author"/> + <key variable="title"/> + </sort> + <layout suffix="."> + <text variable="citation-number" prefix="[" suffix="] "/> + <text macro="author" suffix=" "/> + <date variable="issued" suffix=". "> + <date-part name="year"/> + </date> + <choose> + <if type="paper-conference"> + <group delimiter=". "> + <text variable="title"/> + <group delimiter=" "> + <text variable="container-title" font-style="italic"/> + <group delimiter=", "> + <group delimiter=", " prefix="(" suffix=")"> + <text variable="publisher-place"/> + <date variable="issued"> + <date-part name="month" form="short" suffix=" "/> + <date-part name="year"/> + </date> + </group> + <text variable="page"/> + </group> + </group> + </group> + </if> + <else-if type="article-journal"> + <group delimiter=". "> + <text variable="title"/> + <text variable="container-title" font-style="italic"/> + <group delimiter=", "> + <text variable="volume"/> + <group delimiter=" "> + <text variable="issue"/> + <date variable="issued" prefix="(" suffix=")"> + <date-part name="month" form="short" suffix=" "/> + <date-part name="year"/> + </date> + </group> + <text variable="page"/> + </group> + </group> + </else-if> + <else-if type="patent"> + <group delimiter=". "> + <text variable="title"/> + <text variable="number"/> + <date variable="issued"> + <date-part name="month" form="short" suffix=" "/> + <date-part name="day" suffix=", "/> + <date-part name="year"/> + </date> + </group> + </else-if> + <else-if type="thesis"> + <group delimiter=". "> + <text variable="title" font-style="italic"/> + <text variable="archive_location" prefix="Doctoral Thesis #"/> + <text variable="publisher"/> + </group> + </else-if> + <else-if type="report"> + <group delimiter=". "> + <text variable="title" font-style="italic"/> + <text variable="number" prefix="Technical Report #"/> + <text variable="publisher"/> + </group> + </else-if> + <else-if type="webpage"> + <group delimiter=". "> + <text variable="URL" font-style="italic"/> + <date variable="accessed" prefix="Accessed: "> + <date-part name="year" suffix="-"/> + <date-part name="month" form="numeric-leading-zeros" suffix="-"/> + <date-part name="day" form="numeric-leading-zeros"/> + </date> + </group> + </else-if> + <else-if type="chapter paper-conference" match="any"> + <group delimiter=". "> + <text variable="title"/> + <text variable="container-title" font-style="italic"/> + <text macro="editor"/> + <text variable="publisher"/> + <text variable="page"/> + </group> + </else-if> + <else-if type="bill book graphic legal_case legislation motion_picture report song" match="any"> + <group delimiter=". "> + <text variable="title" font-style="italic"/> + <text variable="publisher"/> + </group> + </else-if> + <else> + <group delimiter=". "> + <text variable="title"/> + <text variable="container-title" font-style="italic"/> + <text variable="publisher"/> + </group> + </else> + </choose> + </layout> + </bibliography> +</style> diff --git a/learning-markdown/example/assets/diff.png b/learning-markdown/example/assets/diff.png new file mode 100644 index 0000000000000000000000000000000000000000..188982c74e52d386b739a50ad8d255bf42446a5b Binary files /dev/null and b/learning-markdown/example/assets/diff.png differ diff --git a/learning-markdown/example/assets/docx.png b/learning-markdown/example/assets/docx.png new file mode 100644 index 0000000000000000000000000000000000000000..2a685cb055d9b0b9bd87aa3df4996c584e9251aa Binary files /dev/null and b/learning-markdown/example/assets/docx.png differ diff --git a/learning-markdown/example/assets/example-image.png b/learning-markdown/example/assets/example-image.png new file mode 100644 index 0000000000000000000000000000000000000000..b86a2f7343fa7bbf7e06a147e8d45bf13209fcca Binary files /dev/null and b/learning-markdown/example/assets/example-image.png differ diff --git a/learning-markdown/example/assets/garde.pdf b/learning-markdown/example/assets/garde.pdf new file mode 100644 index 0000000000000000000000000000000000000000..94917330c6538b7df7b282cff99a0e56072eeb86 Binary files /dev/null and b/learning-markdown/example/assets/garde.pdf differ diff --git a/learning-markdown/example/assets/journal-of-neurophysiology.csl b/learning-markdown/example/assets/journal-of-neurophysiology.csl new file mode 100755 index 0000000000000000000000000000000000000000..7536050fe84df6be510c1fa129cac76377099963 --- /dev/null +++ b/learning-markdown/example/assets/journal-of-neurophysiology.csl @@ -0,0 +1,232 @@ +<?xml version="1.0" encoding="utf-8"?> +<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-US"> + <info> + <title>Journal of Neurophysiology</title> + <id>http://www.zotero.org/styles/journal-of-neurophysiology</id> + <link href="http://www.zotero.org/styles/journal-of-neurophysiology" rel="self"/> + <link href="http://www.zotero.org/styles/american-physics-society" rel="template"/> + <link href="http://www.the-aps.org/publications/authorinfo/fullinfo.htm#references" rel="documentation"/> + <author> + <name>Michael Pesavento</name> + <email>mpesaven@gmail.com</email> + </author> + <category citation-format="author-date"/> + <category field="biology"/> + <category field="medicine"/> + <issn>0022-3077</issn> + <eissn>1522-1598</eissn> + <summary>The Journal of Neurophysiology style</summary> + <updated>2012-09-27T22:06:38+00:00</updated> + <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights> + </info> + <locale xml:lang="en"> + <terms> + <term name="no date" form="long">date unknown</term> + </terms> + </locale> + <macro name="anon"> + <text term="anonymous" form="short" text-case="capitalize-first" strip-periods="true"/> + </macro> + <macro name="author-bib"> + <names variable="author" suffix=". "> + <name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " font-weight="bold" delimiter-precedes-last="always"/> + <label form="long" prefix=", " suffix="."/> + <substitute> + <names variable="editor"/> + <names variable="translator"/> + <text macro="anon"/> + </substitute> + </names> + </macro> + <macro name="author-cit"> + <names variable="author"> + <name form="short" and="text" delimiter=" " initialize-with=""/> + <substitute> + <names variable="editor"/> + <names variable="translator"/> + <text macro="anon"/> + </substitute> + </names> + </macro> + <macro name="editor"> + <names variable="editor" prefix="edited by "> + <name sort-separator=" " initialize-with="" name-as-sort-order="all" delimiter=", " delimiter-precedes-last="always"/> + </names> + </macro> + <macro name="publisher"> + <choose> + <if variable="URL"> + <text variable="publisher"/> + </if> + <else> + <text variable="publisher-place" suffix=": "/> + <text variable="publisher" suffix=", "/> + <text macro="date"/> + </else> + </choose> + </macro> + <macro name="date"> + <choose> + <if variable="issued"> + <date variable="issued"> + <date-part name="year"/> + </date> + </if> + <else> + <text term="no date"/> + </else> + </choose> + </macro> + <macro name="access"> + <choose> + <if variable="DOI"/> + <!--don't use if there is a DOI--> + <else> + <choose> + <if variable="URL"> + <group delimiter=" " prefix=" "> + <group> + <text variable="URL"/> + </group> + <group prefix="[" suffix="]" delimiter=" "> + <date variable="accessed"> + <date-part name="day"/> + <date-part name="month" prefix=" " suffix=". " form="short" strip-periods="true"/> + <date-part name="year"/> + </date> + </group> + </group> + </if> + </choose> + </else> + </choose> + </macro> + <macro name="title"> + <!--this macro adds [online] to the end of an online ressource, but only when no DOI is given--> + <choose> + <if variable="DOI"> + <text variable="title"/> + </if> + <else> + <group delimiter=" "> + <choose> + <if type="bill book graphic legal_case legislation motion_picture report song" match="any"> + <choose> + <if variable="URL"> + <text variable="title"/> + </if> + <else> + <text variable="title" font-style="italic"/> + </else> + </choose> + </if> + <else> + <text variable="title"/> + </else> + </choose> + <choose> + <if variable="URL"> + <text term="online" prefix="[" suffix="]" text-case="capitalize-first"/> + </if> + </choose> + </group> + </else> + </choose> + </macro> + <macro name="edition"> + <choose> + <if is-numeric="edition"> + <group delimiter=" "> + <number variable="edition" form="ordinal"/> + <text term="edition" form="short"/> + </group> + </if> + <else> + <text variable="edition" suffix="."/> + </else> + </choose> + </macro> + <!-- formatting citation --> + <citation et-al-min="3" et-al-use-first="1" disambiguate-add-year-suffix="true" collapse="year"> + <sort> + <key macro="date"/> + <key macro="author-bib"/> + </sort> + <layout prefix="(" suffix=")" delimiter="; "> + <group delimiter=" "> + <group delimiter=", "> + <text macro="author-cit"/> + <text macro="date"/> + </group> + <!-- <text variable="locator" prefix="p."/> --> + </group> + </layout> + </citation> + <!-- formatting bibliography --> + <bibliography> + <sort> + <key macro="author-bib"/> + <key macro="date"/> + </sort> + <layout suffix="."> + <text macro="author-bib"/> + <text macro="title" suffix=". "/> + <choose> + <if type="bill book graphic legal_case legislation motion_picture report song" match="any"> + <group delimiter=" " suffix="."> + <text macro="edition"/> + <text macro="publisher"/> + </group> + </if> + <else-if type="chapter paper-conference" match="any"> + <group delimiter=". "> + <group> + <text term="in" suffix=": " text-case="capitalize-first"/> + <text variable="container-title" font-style="italic"/> + <text macro="editor" prefix=", "/> + </group> + <text variable="event"/> + <text macro="publisher"/> + </group> + <text variable="page" prefix=", p. " suffix="."/> + </else-if> + <else-if type="article-journal"> + <choose> + <if variable="issue volume" match="any"> + <text variable="container-title" suffix=" " form="short" font-style="italic"/> + <text variable="volume"/> + <text variable="page" prefix=": "/> + <text macro="date" prefix=", " suffix="."/> + </if> + <else> + <choose> + <if variable="DOI"> + <text variable="container-title" suffix=" " form="short" font-style="italic"/> + <group prefix="(" suffix=")."> + <date variable="issued"> + <date-part name="month" prefix=" " suffix=" "/> + <date-part name="day" suffix=", "/> + <date-part name="year"/> + </date> + </group> + <text variable="DOI" prefix=" doi: "/> + </if> + <else> + <text variable="container-title" suffix=". " form="short" font-style="italic"/> + </else> + </choose> + </else> + </choose> + </else-if> + <else> + <text variable="container-title" suffix=" " form="short" font-style="italic"/> + <text variable="volume"/> + <text variable="publisher" suffix="."/> + <text variable="page" prefix=": " suffix=", "/> + <text macro="date" prefix=" " suffix="."/> + </else> + </choose> + <text macro="access"/> + </layout> + </bibliography> +</style> diff --git a/learning-markdown/example/assets/kitten.jpg b/learning-markdown/example/assets/kitten.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0394fda8df6ccb96cdb49b967617083feed2f76d Binary files /dev/null and b/learning-markdown/example/assets/kitten.jpg differ diff --git a/learning-markdown/example/assets/master.bib b/learning-markdown/example/assets/master.bib new file mode 100644 index 0000000000000000000000000000000000000000..c10242397c90bdc2ff6f8920132cbb253d97c908 --- /dev/null +++ b/learning-markdown/example/assets/master.bib @@ -0,0 +1,9 @@ +@Book{xie2013ddrk, + Title = {Dynamic Documents with R and knitr}, + Author = {Yihui Xie}, + Publisher = {Boca Raton, FL: CRC Press}, + Year = {2013}, + + Owner = {steve}, + Timestamp = {2015.09.13} +} diff --git a/learning-markdown/example/assets/plot-3d-medium.png b/learning-markdown/example/assets/plot-3d-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..0aeaecfc7e23158771c82c16f0a5ac86d827637f Binary files /dev/null and b/learning-markdown/example/assets/plot-3d-medium.png differ diff --git a/learning-markdown/example/assets/plot-3d-small.png b/learning-markdown/example/assets/plot-3d-small.png new file mode 100644 index 0000000000000000000000000000000000000000..031dd224b37d7a1e67e2e0b6e2043f9f20badd8f Binary files /dev/null and b/learning-markdown/example/assets/plot-3d-small.png differ diff --git a/learning-markdown/example/assets/plot-medium.png b/learning-markdown/example/assets/plot-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..995bb92cf2c7864cd16875b675f6d69610b2f0ea Binary files /dev/null and b/learning-markdown/example/assets/plot-medium.png differ diff --git a/learning-markdown/example/assets/plot-small.png b/learning-markdown/example/assets/plot-small.png new file mode 100644 index 0000000000000000000000000000000000000000..420b5e331028a1f6bdf96b4b0e22a60e8ca71d24 Binary files /dev/null and b/learning-markdown/example/assets/plot-small.png differ diff --git a/learning-markdown/example/assets/pressure-1.pdf b/learning-markdown/example/assets/pressure-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6e66f0d533e0d3aff2f20ec739ad6ce89e3d612e Binary files /dev/null and b/learning-markdown/example/assets/pressure-1.pdf differ diff --git a/learning-markdown/example/assets/pub-title.png b/learning-markdown/example/assets/pub-title.png new file mode 100644 index 0000000000000000000000000000000000000000..319c37af5733fcdc0f683e96ef3b737ffd8c2d79 Binary files /dev/null and b/learning-markdown/example/assets/pub-title.png differ diff --git a/learning-markdown/example/assets/references.bib b/learning-markdown/example/assets/references.bib new file mode 100755 index 0000000000000000000000000000000000000000..240b7d5f7bc43c635ddc5d6e557575668d607c77 --- /dev/null +++ b/learning-markdown/example/assets/references.bib @@ -0,0 +1,659 @@ +%Huijing2011 +@Article{Huijing2011, + Author="Huijing, P. A. and Yaman, A. and Ozturk, C. and Yucesoy, C. A. ", + Title="{{E}ffects of knee joint angle on global and local strains within human triceps surae muscle: {M}{R}{I} analysis indicating in vivo myofascial force transmission between synergistic muscles}", + Journal="Surg. Radiol. Anat.", + Year="2011", + Volume="33", + Pages="869--879", +} + +%Yaman2013 +@Article{Yaman2013, + Author="Yaman, A. and Ozturk, C. and Huijing, P. A. and Yucesoy, C. A. ", + Title="{{M}agnetic resonance imaging assessment of mechanical interactions between human lower leg muscles in vivo}", + Journal="J Biomech Eng", + Year="2013", + Volume="135", + Number="9", + Pages="91003", + Month="Sep" +} + +%Kaya2018 +@Article{Kaya2018, + Author="Kaya, C. S. and Temelli, Y. and Ates, F. and Yucesoy, C. A. ", + Title="{{E}ffects of inter-synergistic mechanical interactions on the mechanical behaviour of activated spastic semitendinosus muscle of patients with cerebral palsy}", + Journal="J Mech Behav Biomed Mater", + Year="2018", + Volume="77", + Pages="78--84", + Month="01" +} + +%Ates2014 +@Article{Ates2014, + Author="Ates, F. and Temelli, Y. and Yucesoy, C. A. ", + Title="{{I}ntraoperative experiments show relevance of inter-antagonistic mechanical interaction for spastic muscle's contribution to joint movement disorder}", + Journal="Clin Biomech (Bristol, Avon)", + Year="2014", + Volume="29", + Number="8", + Pages="943--949", + Month="Sep" +} + +%Wilke2018 +@Article{Wilke2018, + Author="Wilke, J. and Schleip, R. and Yucesoy, C. A. and Banzer, W. ", + Title="{{N}ot merely a protective packing organ? {A} review of fascia and its force transmission capacity}", + Journal="J. Appl. Physiol.", + Year="2018", + Volume="124", + Pages="234--244", +} + +%Bojsen-Moller2010 +@Article{Bojsen-Moller2010, + Author="Bojsen-Moller, J. and Schwartz, S. and Kalliokoski, K. K. and Finni, T. and Magnusson, S. P. ", + Title="{{I}ntermuscular force transmission between human plantarflexor muscles in vivo}", + Journal="J. Appl. Physiol.", + Year="2010", + Volume="109", + Number="6", + Pages="1608--1618", + Month="Dec" +} + +% Creze2018 +@Article{Creze2018, + Author="Creze, M. and Nordez, A. and Soubeyrand, M. and Rocher, L. and Ma\^{i}tre, X. and Bellin, M. F. ", + Title="{{S}hear wave sonoelastography of skeletal muscle: basic principles, biomechanical concepts, clinical applications, and future perspectives}", + Journal="Skeletal. Radiol.", + Year="2018", + Volume="47", + Pages="457--471", +} + +% Becker2010 +@Article{Becker2010, + Author="Becker, I. and Baxter, G. D. and Woodley, S. J. ", + Title="{{T}he vastus lateralis muscle: an anatomical investigation}", + Journal="Clin. Anat.", + Year="2010", + Volume="23", + Pages="575--585", +} +% Becker2009 +@Article{Becker2009, + Author="Becker, I. and Woodley, S. J. and Baxter, G. D. ", + Title="{{G}ross morphology of the vastus lateralis muscle: {A}n anatomical review}", + Journal="Clin. Anat.", + Year="2009", + Volume="22", + Pages="436--450", +} + +% Bernabei2016 +@Article{Bernabei2016, + Author="Bernabei, M. and Maas, H. and van Die\'{e}n, J. H. ", + Title="{{A} lumped stiffness model of intermuscular and extramuscular myofascial pathways of force transmission}", + Journal="Biomech. Model Mechanobiol.", + Year="2016", + Volume="15", + Pages="1747--1763", +} + +%Bernabei2015 +@Article{Bernabei2015, + Author="Bernabei, M. and van Die\'{e}n, J. H. and Baan, G. C. and Maas, H. ", + Title="{{S}ignificant mechanical interactions at physiological lengths and relative positions of rat plantar flexors}", + Journal="J. Appl. Physiol.", + Year="2015", + Volume="118", + Pages="427--436", +} + +%Huijing2009 +@Article{Huijing2009, + Author="Huijing, P. A. ", + Title="{{E}pimuscular myofascial force transmission: a historical review and implications for new research.}", + Journal="J. Biomech.", + Year="2009", + Volume="42", + Pages="9--21", +} + +%Tijs2016 +@Article{Tijs2016, + Author="Tijs, C. and van Dieen, J. H. and Baan, G. C. and Maas, H. ", + Title="{{S}ynergistic co-activation increases the extent of mechanical interaction between rat ankle plantar-flexors}", + Journal="Front. Physiol.", + Year="2016", + Volume="7", + Pages="414" +} + +% Diong2015 +@Article{Diong2015, + Author="Diong, J. and Herbert, R. D. ", + Title="{{I}s ankle contracture after stroke due to abnormal intermuscular force transmission?}", + Journal="J. Appl. Biomech.", + Year="2015", + Volume="31", + Pages="13--18", +} + +% Diong2012a +@Article{Diong2012a, + Author="Diong, J. and Herbert, R. D. and Kwah, L. K. and Clarke, J. L. and Harvey, L. A. ", + Title="{{M}echanisms of increased passive compliance of hamstring muscle-tendon units after spinal cord injury}", + Journal="Clin. Biomech.", + Year="2012", + Volume="27", + Pages="893--898", +} + +% Diong2012b +@Article{Diong2012b, + Author="Diong, J. H. and Herbert, R. D. and Harvey, L. A. and Kwah, L. K. and Clarke, J. L. and Hoang, P. D. and Martin, J. H. and Clarke, E. C. and Bilston, L. E. and Gandevia, S. C. ", + Title="{{P}assive mechanical properties of the gastrocnemius after spinal cord injury}", + Journal="Muscle Nerve", + Year="2012", + Volume="46", + Pages="237--245", +} + +% Finni2017a +@Article{Finni2017a, + Author="Finni, T. and Cronin, N. J. and Mayfield, D. and Lichtwark, G. A. and Cresswell, A. G. ", + Title="{{E}ffects of muscle activation on shear between human soleus and gastrocnemius muscles}", + Journal="Scand. J. Med. Sci. Sports", + Year="2017", + Volume="27", + Pages="26--34", +} + +% Grob2016 +@Article{Grob2016, + Author="Grob, K. and Manestar, M. and Filgueira, L. and Ackland, T. and Gilbey, H. and Kuster, M. S. ", + Title="{{N}ew insight in the architecture of the quadriceps tendon}", + Journal="J. Exp. Orthop.", + Year="2016", + Volume="3", + Pages="32", +} + +% Herbert2011 +@Article{Herbert2011, + Author="Herbert, R. D. and Clarke, J. and Kwah, L. K. and Diong, J. and Martin, J. and Clarke, E. C. and Bilston, L. E. and Gandevia, S. C. ", + Title="{{I}n vivo passive mechanical behaviour of muscle fascicles and tendons in human gastrocnemius muscle-tendon units}", + Journal="J. Physiol.", + Year="2011", + Volume="589", + Pages="5257--5267", +} + +% Herbert2015 +@Article{Herbert2015, + Author="Herbert, R. D. and H\'{e}roux, M. E. and Diong, J. and Bilston, L. E. and Gandevia, S. C. and Lichtwark, G. A. ", + Title="{{C}hanges in the length and three-dimensional orientation of muscle fascicles and aponeuroses with passive length changes in human gastrocnemius muscles}", + Journal="J. Physiol.", + Year="2015", + Volume="593", + Pages="441--455", +} + +% Huijing2003 +@Article{Huijing2003, + Author="Huijing, P. A. and Baan, G. C. ", + Title="{{M}yofascial force transmission: muscle relative position and length determine agonist and synergist muscle force}", + Journal="J. Appl. Physiol.", + Year="2003", + Volume="94", + Pages="1092--1107", +} + +%Ates2018 +@Article{Ates2018, + Author="Ates, F. and Andrade, R. J. and Freitas, S. R. and Hug, F. and Lacourpaille, L. and Gross, R. and Yucesoy, C. A. and Nordez, A. ", + Title="{{P}assive stiffness of monoarticular lower leg muscles is influenced by knee joint angle}", + Journal="Eur. J. Appl. Physiol.", + Year="2018", + Volume="118", + Pages="585--593", +} + +% Kaya2018 +@Article{Kaya2018, + Author="Kaya, C. S. and Temelli, Y. and Ates, F. and Yucesoy, C. A. ", + Title="{{E}ffects of inter-synergistic mechanical interactions on the mechanical behaviour of activated spastic semitendinosus muscle of patients with cerebral palsy}", + Journal="J. Mech. Behav. Biomed. Mater.", + Year="2018", + Volume="77", + Pages="78--84", +} +% Maas2019 +@Article{Maas2019, + Author="Maas, H. ", + Title="{{S}ignificance of epimuscular myofascial force transmission under passive muscle conditions}", + Journal="J. Appl. Physiol.", + Year="2019", + Volume="126", + Pages="1465--1473", +} + +% Maas2004 +@Article{Maas2004, + Author="Maas, H. and Baan, G. C. and Huijing, P. A. ", + Title="{{M}uscle force is determined also by muscle relative position: isolated effects}", + Journal="J. Biomech.", + Year="2004", + Volume="37", + Pages="99--110", +} +% Mass2018 +@Article{Mass2018, + Author="Maas, H. and Finni, T. ", + Title="{{M}echanical coupling between muscle-tendon units reduces peak stresses}", + Journal="Exerc. Sport. Sci. Rev.", + Year="2018", + Volume="46", + Pages="26--33", +} + +% Mass2009 +@Article{Mass2009, + Author="Maas, H. and Huijing, P. A. ", + Title="{{S}ynergistic and antagonistic interactions in the rat forelimb: acute effects of coactivation}", + Journal="J. Appl. Physiol.", + Year="2009", + Volume="107", + Pages="1453--1462", +} + +% Sandercock2009 +@Article{Sandercock2009, + Author="Sandercock, T. G. and Maas, H. ", + Title="{{F}orce summation between muscles: are muscles independent actuators?}", + Journal="Med. Sci. Sports. Exerc.", + Year="2009", + Volume="41", + Pages="184--190", +} + +% Maas2008 +@Article{Maas2008, + Author="Maas, H. and Sandercock, T. G. ", + Title="{{A}re skeletal muscles independent actuators? {F}orce transmission from soleus muscle in the cat}", + Journal="J. Appl. Physiol.", + Year="2008", + Volume="104", + Pages="1557--1567", +} + +% Pamuk2016 +@Article{Pamuk2016, + Author="Pamuk, U. and Karakuzu, A. and Ozturk, C. and Acar, B. and Yucesoy, C. A. ", + Title="{{C}ombined magnetic resonance and diffusion tensor imaging analyses provide a powerful tool for in vivo assessment of deformation along human muscle fibers}", + Journal="J. Mech. Behav. Biomed. Mater.", + Year="2016", + Volume="63", + Pages="207--219", +} + +% Stubbs2018 +@Article{Stubbs2018, + Author="Stubbs, P. W. and Walsh, L. D. and D'Souza, A. and H\'{e}roux, M. E. and Bolsterlee, B. and Gandevia, S. C. and Herbert, R. D. ", + Title="{{H}istory-dependence of muscle slack length following contraction and stretch in the human vastus lateralis}", + Journal="J. Physiol.", + Year="2018", + Volume="596", + Pages="2121--2129", +} + +% Heroux2020 +@Article{Heroux2020, + Author="Héroux, M. E. and Anderman, I. and Nykvist Vouis, S. and Diong, J. and Stubbs, P. W. and Herbert, R. D. ", + Title="{{H}istory-dependence of muscle slack length in humans: effects of contraction intensity, stretch amplitude, and time}", + Journal="J Appl Physiol", + Year="2020", + Volume="129", + Number="4", + Pages="957--966", +} + +% Tian2012 +@Article{Tian2012, + Author="Tian, M. and Herbert, R. D. and Hoang, P. and Gandevia, S. C. and Bilston, L. E. ", + Title="{{M}yofascial force transmission between the human soleus and gastrocnemius muscles during passive knee motion}", + Journal="J. Appl. Physiol.", + Year="2012", + Volume="113", + Pages="517--523", +} + +% Kwah2013 +@Article{Kwah2013, + Author="Kwah, L. and Pinto, R. Z. and Diong, J. and Herbert, R. D. ", + Title="{{R}eliability and validity of ultrasound measurements of muscle fascicle length and pennation in humans: a systematic review}", + Journal="J. Appl. Physiol.", + Year="2013", + Volume="114", + Pages="769--769", +} + +% Calin-Jagerman2019 +@Article{Calin-Jagerman2019, + Author="Calin-Jageman, R. J. and Cumming, G. ", + Title="{{E}stimation for better inference in neuroscience}", + Journal="eNeuro", + Year="2019", + Volume=" ", + Pages="ENEURO.0205-19.2019", +} + +% Tijs2018 +@Article{Tijs2018, + Author="Tijs, C. and Bernabei, M. and van Die?n, J. H. and Maas, H. ", + Title="{{M}yofascial loads can occur without fascicle length changes}", + Journal="Integr. Comp. Biol.", + Year="2018", + Volume="58", + Pages="251--260", +} + +% Tijs2014 +@Article{Tijs2016, + Author="Tijs, C. and van Dieen, J. H. and Baan, G. C. and Maas, H. ", + Title="{{S}ynergistic co-activation increases the extent of mechanical interaction between rat ankle plantar-flexors}", + Journal="Front. Physiol.", + Year="2016", + Volume="7", + Pages="414" +} + +% Tijs2014 +@Article{Tijs2014, + Author="Tijs, C. and van Dieen, J. H. and Baan, G. C. and Maas, H. ", + Title="{{T}hree-dimensional ankle moments and nonlinear summation of rat triceps surae muscles}", + Journal="PLoS ONE", + Year="2014", + Volume="9", + Pages="e111595" +} + +% Tijs2015 +@Article{Tijs2015, + Author="Tijs, C. and van Dieen, J. H. and Maas, H. ", + Title="{{E}ffects of epimuscular myofascial force transmission on sarcomere length of passive muscles in the rat hindlimb}", + Journal="Physiol. Rep.", + Year="2015", + Volume="3", + Pages="e12608" +} + +% Diong2019 +@Article{Diong2019, + Author="Diong, J. and H\'{e}roux, M. E. and Gandevia, S. C. and Herbert, R. D. ", + Title="{{M}inimal force transmission between human thumb and index finger muscles under passive conditions}", + Journal="PLoS ONE", + Year="2019", + Volume="14", + Pages="e0212496" +} + +% Maas2019 +@Article{Maas2019, + Author="Maas, H. ", + Title="{{S}ignificance of epimuscular myofascial force transmission under passive muscle conditions}", + Journal="J. Appl. Physiol.", + Year="2019", + Volume="126", + Number="5", + Pages="1465--1473", + Month="05" +} + +%Yoshitake2018 +@Article{Yoshitake2018, + Author="Yoshitake, Y. and Uchida, D. and Hirata, K. and Mayfield, D. L. and Kanehisa, H. ", + Title="{{M}echanical interaction between neighboring muscles in human upper limb: {E}vidence for epimuscular myofascial force transmission in humans}", + Journal="J Biomech", + Year="2018", + Volume="74", + Pages="150--155", +} + +%Bojsen-Moller2010 +@Article{Bojsen-Moller2010, + Author="Bojsen-Moller, J. and Schwartz, S. and Kalliokoski, K. K. and Finni, T. and Magnusson, S. P. ", + Title="{{I}ntermuscular force transmission between human plantarflexor muscles in vivo}", + Journal="J. Appl. Physiol.", + Year="2010", + Volume="109", + Number="6", + Pages="1608--1618", + Month="Dec" +} + +%Freitas2019 +@Article{Freitas2019, + Author="Freitas, S. R. and Antunes, A. and Salmon, P. and Mendes, B. and Firmino, T. and Cruz-Montecinos, C. and Cerda, M. and Vaz, J. R. ", + Title="{{D}oes epimuscular myofascial force transmission occur between the human quadriceps muscles in vivo during passive stretching?}", + Journal="J Biomech", + Year="2019", + Volume="83", + Pages="91--96", + Month="01" +} + +%Huijing2011 +@Article{Huijing2011, + Author="Huijing, P. A. and Yaman, A. and Ozturk, C. and Yucesoy, C. A. ", + Title="{{E}ffects of knee joint angle on global and local strains within human triceps surae muscle: {M}{R}{I} analysis indicating in vivo myofascial force transmission between synergistic muscles}", + Journal="Surg Radiol Anat", + Year="2011", + Volume="33", + Number="10", + Pages="869--879", + Month="Dec" +} + +%Carvalhais2013 +@Article{Carvalhais2013, + Author="Carvalhais, V. O. and Ocarino, J. d. e. M. and Araujo, V. L. and Souza, T. R. and Silva, P. L. and Fonseca, S. T. ", + Title="{{M}yofascial force transmission between the latissimus dorsi and gluteus maximus muscles: an in vivo experiment}", + Journal="J Biomech", + Year="2013", + Volume="46", + Number="5", + Pages="1003--1007", + Month="Mar" +} + +%Maas2010 +@Article{Maas2010, + Author="Maas, H. and Sandercock, T. G. ", + Title="{{F}orce transmission between synergistic skeletal muscles through connective tissue linkages}", + Journal="J. Biomed. Biotechnol.", + Year="2010", + Volume="2010", + Pages="575672" +} + +%Smilde2016 +@Article{Smilde2016, + Author="Smilde, H. A. and Vincent, J. A. and Baan, G. C. and Nardelli, P. and Lodder, J. C. and Mansvelder, H. D. and Cope, T. C. and Maas, H. ", + Title="{{C}hanges in muscle spindle firing in response to length changes of neighboring muscles}", + Journal="J. Neurophysiol.", + Year="2016", + Volume="115", + Number="6", + Pages="3146--3155", + Month="06" +} + +%Smilde2016 +@Article{Smilde2016, + Author="Smilde, H. A. and Vincent, J. A. and Baan, G. C. and Nardelli, P. and Lodder, J. C. and Mansvelder, H. D. and Cope, T. C. and Maas, H. ", + Title="{{C}hanges in muscle spindle firing in response to length changes of neighboring muscles}", + Journal="J. Neurophysiol.", + Year="2016", + Volume="115", + Number="6", + Pages="3146--3155", + Month="06" +} + +%Heroux2020 +@Article{Heroux2020, + Author="H\'{e}eroux, M.E. and Anderman, I. and Nykvist Vouis, S. and Diong, J. and Stubbs, P.W. and Herbert, R.D.", + Title="{{H}istory-dependence of muscle slack length in humans: effects of contraction intensity, stretch amplitude and time}", + Journal="J. Appl. Physiol.", + Year="In Press", + Volume="https://doi.org/10.1152/japplphysiol.00106.2020", + Number="", + Pages="", +} + +%Kozinc2020 +@Article{Kozinc2020, + Author="Kozinc, Z. and Sarabon, N. ", + Title="{{S}hear-wave elastography for assessment of trapezius muscle stiffness: {R}eliability and association with low-level muscle activity}", + Journal="PLoS ONE", + Year="2020", + Volume="15", + Number="6", + Pages="e0234359" +} + +%Wang2020 +@Article{Wang2020, + Author="Wang, X. and Hu, Y. and Zhu, J. and Gao, J. and Chen, S. and Liu, F. and Li, W. and Liu, Y. and Ariun, B. ", + Title="{{E}ffect of acquisition depth and precompression from probe and couplant on shear wave elastography in soft tissue: an in vitro and in vivo study}", + Journal="Quant Imaging Med Surg", + Year="2020", + Volume="10", + Number="3", + Pages="754--765", + Month="Mar" +} + +% Sarabon2019 +@Article{Sarabon2019, + Author="Sarabon, N. and Kozinc, Z. and Podrekar, N. ", + Title="{{U}sing shear-wave elastography in skeletal muscle: {A} repeatability and reproducibility study on biceps femoris muscle}", + Journal="PLoS ONE", + Year="2019", + Volume="14", + Number="8", + Pages="e0222008" +} + +% Graham2021 +@Article{Graham2021, + Author="Graham, H. K. and Thomason, P. and Willoughby, K. and Hastings-Ison, T. and Stralen, R. V. and Dala-Ali, B. and Wong, P. and Rutz, E. ", + Title="{{M}usculoskeletal {P}athology in {C}erebral {P}alsy: {A} {C}lassification {S}ystem and {R}eliability {S}tudy}", + Journal="Children (Basel)", + Year="2021", + Volume="8", + Number="3", +} + +% Ruby2019 +@Article{Ruby2019, + Author="Ruby, L. and Mutschler, T. and Martini, K. and Klingmuller, V. and Frauenfelder, T. and Rominger, M. B. and Sanabria, S. J. ", + Title="{{W}hich confounders have the largest impact in shear wave elastography of muscle and how can they be minimized? {A}n elasticity phantom, ex vivo porcine muscle and volunteer study using a commercially available system}", + Journal="Ultrasound Med Biol", + Year="2019", + Volume="45", + Number="10", + Pages="2591--2611", +} + +%Hoang2007 +@Article{Hoang2007, + Author="Hoang, P. D. and Herbert, R. D. and Todd, G. and Gorman, R. B. and Gandevia, S. C. ", + Title="{{P}assive mechanical properties of human gastrocnemius muscle tendon units, muscle fascicles and tendons in vivo}", + Journal="J. Exp. Biol.", + Year="2007", + Volume="210", + Number="Pt 23", + Pages="4159--4168", + Month="Dec" +} + +% 11490120 +@Article{Chleboun2001, + Author="Chleboun, G. S. and France, A. R. and Crill, M. T. and Braddock, H. K. and Howell, J. N. ", + Title="{{I}n vivo measurement of fascicle length and pennation angle of the human biceps femoris muscle}", + Journal="Cells Tissues Organs (Print)", + Year="2001", + Volume="169", + Number="4", + Pages="401--409" +} + +%Button2013 +@Article{Button2013, + Author="Button, K. S. and Ioannidis, J. P. and Mokrysz, C. and Nosek, B. A. and Flint, J. and Robinson, E. S. and Munafò, M. R. ", + Title="{{P}ower failure: why small sample size undermines the reliability of neuroscience}", + Journal="Nat Rev Neurosci", + Year="2013", + Volume="14", + Number="5", + Pages="365--376", +} + +%Le Sant2019 +@Article{LeSant2019, + Author="Le Sant, G. and Gross, R. and Hug, F. and Nordez, A. ", + Title="{{I}nfluence of low muscle activation levels on the ankle torque and muscle shear modulus during plantar flexor stretching}", + Journal="J Biomech", + Year="2019", + Volume="93", + Pages="111--117", +} + +%Ioannidis2005 +@Article{Ioannidis2005, + Author="Ioannidis, J. P. ", + Title="{{W}hy most published research findings are false}", + Journal="PLoS Med", + Year="2005", + Volume="2", + Number="8", + Pages="e124", +} + +%Halsey2015 +@Article{Halsey2015, + Author="Halsey, L. G. and Curran-Everett, D. and Vowler, S. L. and Drummond, G. B. ", + Title="{{T}he fickle {P} value generates irreproducible results}", + Journal="Nat Methods", + Year="2015", + Volume="12", + Number="3", + Pages="179--185", +} + +% Yanase2021 +@Article{Yanase2021, + Author="Yanase, K. and Yagi, M. and Nakao, S. and Motomura, Y. and Umehara, J. and Hirono, T. and Komamura, T. and Miyakoshi, K. and Ibuki, S. and Ichihashi, N. ", + Title="{{E}pimuscular myofascial force transmission from biarticular rectus femoris elongation increases shear modulus of monoarticular quadriceps muscles}", + Journal="J Biomech", + Year="2021", + Volume="122", + Pages="110421", +} + +%Diong2019 +@Article{Diong2019, + Author="Diong, J. and Gandevia, S. C. and Nguyen, D. and Foo, Y. and Kastre, C. and Andersson, K. and Butler, J. E. and Héroux, M. E. ", + Title="{{S}mall amounts of involuntary muscle activity reduce passive joint range of motion}", + Journal="J Appl Physiol", + Year="2019", + Volume="127", + Pages="229--234", +} diff --git a/learning-markdown/example/assets/signature.png b/learning-markdown/example/assets/signature.png new file mode 100644 index 0000000000000000000000000000000000000000..63fb7cc90e7c6f12bd6b026f3561f6cf5d2527bf Binary files /dev/null and b/learning-markdown/example/assets/signature.png differ diff --git a/learning-markdown/example/assets/unnamed-chunk-1-1.pdf b/learning-markdown/example/assets/unnamed-chunk-1-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b7c7317f020be9761181267fe39d6ff927376f88 Binary files /dev/null and b/learning-markdown/example/assets/unnamed-chunk-1-1.pdf differ diff --git a/learning-markdown/example/assets/unnamed-chunk-2-1.pdf b/learning-markdown/example/assets/unnamed-chunk-2-1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..98bd3a11c458928fd714ffa88f5954ed42ee0f9f Binary files /dev/null and b/learning-markdown/example/assets/unnamed-chunk-2-1.pdf differ diff --git a/learning-markdown/example/blank_article.md b/learning-markdown/example/blank_article.md new file mode 100644 index 0000000000000000000000000000000000000000..093c1907865677afe66e712917b2f03fb7607792 --- /dev/null +++ b/learning-markdown/example/blank_article.md @@ -0,0 +1,78 @@ +# TITLE OF PAPER + +First A. Author^1^, Second B. Author^2^, Third Author^3^, Last Author^1,2,3^ + + +1. First affiliation +2. Second affiliation +3. Third affiliation + +\ +\ + +**Corresponding author** \ +Dr. First A. Author \ +University of Pandoc \ +42 Printers Lane \ +2031, Randwick, NSW, Australia \ +email: fa.author@pandoc.au \ +ph: +61-1-2345-6789 +\ +\ +\ +**Keywords:** Add keywords \ +**Running title:** Running title \ +**Wordcount:** n. of words + +\newpage + +# Abstract +Add abstract text here. + +\newpage + +# Introduction +Add introduction text here. + +# Methods + +Add methods text here. + +# Results + +Add results text here. + +# Discussion + +Add discussion text here. + +\newpage + +# Acknowledgements +Add acknowledgements here. + +# Funding +Add funding details here. + +# Author Contributions +Add author contributions here. + +\clearpage + +Outcome Blue hair Red hair +---------- ----------- ------------ +force (N) 4 ± 2 6 ± 3 +distance (m) 552 ± 53 590 ± 43 +height (cm) 170 ± 29 154 ± 18 +speed (m/s) 0.9 ± 0.02 1.1 ± 0.01 + + +Table: A table legend; values are mean ± SD Markdown + +\clearpage + +{ width=16cm } + +\clearpage + +# References diff --git a/learning-markdown/example/blank_article.yaml b/learning-markdown/example/blank_article.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3ce8b6dd7763d6180768ae298e6062343d50a79f --- /dev/null +++ b/learning-markdown/example/blank_article.yaml @@ -0,0 +1,32 @@ +--- +# References and Reference Style +csl: assets/journal-of-neurophysiology.csl +bibliography: assets/references.bib +citeproc: true # required in pandoc 2.14 + +# Names of Input and Output Files +input-file: blank_article.md +output-file: blank_article.pdf # Change to .docx to make a Word file + +# Addition to LaTeX Template +include-in-header: tex_templates/header.tex # Change margin and line spacing +include-before-body: tex_templates/before_body.tex +include-after-body: tex_templates/after_body.tex + +# LaTeX Specifications +pdf-engine: xelatex +variables: + documentclass: article + mainfont: "DejaVu Serif" + sansfont: Ubuntu + classoption: + - 10pt # 11pt, 12pt + +# To have numbered sections, uncomment the following line. +# But we don't want our Title or Abstract to be numbered, +# so we will add {.unnumbered} next to our Title and Abstract +# headers, separated by one space. +# Example: # Abstract {.unnumbered} + +number-sections: false +... diff --git a/learning-markdown/example/docx_templates/template.docx b/learning-markdown/example/docx_templates/template.docx new file mode 100644 index 0000000000000000000000000000000000000000..6fe8bb9929e5aa4a971364fa7a577c4f57516fa6 Binary files /dev/null and b/learning-markdown/example/docx_templates/template.docx differ diff --git a/learning-markdown/example/html_templates/easy_template.html b/learning-markdown/example/html_templates/easy_template.html new file mode 100644 index 0000000000000000000000000000000000000000..1bb16e52e035bdabf20b71ca95bba1e0e46df10b --- /dev/null +++ b/learning-markdown/example/html_templates/easy_template.html @@ -0,0 +1,124 @@ +<!doctype html> +<html $if(lang)$ lang="$lang$" $endif$> +<head> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <!--[if lt IE 9]> + <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> + <![endif]--> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="Content-Style-Type" content="text/css" /> + + <!-- <link rel="stylesheet" type="text/css" href="template.css" /> --> + <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/template.css" /> + + <link href="https://vjs.zencdn.net/5.4.4/video-js.css" rel="stylesheet" /> + + <script src="https://code.jquery.com/jquery-2.2.1.min.js"></script> + <!-- <script type='text/javascript' src='menu/js/jquery.cookie.js'></script> --> + <!-- <script type='text/javascript' src='menu/js/jquery.hoverIntent.minified.js'></script> --> + <!-- <script type='text/javascript' src='menu/js/jquery.dcjqaccordion.2.7.min.js'></script> --> + + <!-- <link href="menu/css/skins/blue.css" rel="stylesheet" type="text/css" /> --> + <!-- <link href="menu/css/skins/graphite.css" rel="stylesheet" type="text/css" /> --> + <!-- <link href="menu/css/skins/grey.css" rel="stylesheet" type="text/css" /> --> + + <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + + <!-- <script src="script.js"></script> --> + + <!-- <script src="jquery.sticky-kit.js "></script> --> + <script type='text/javascript' src='https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/menu/js/jquery.cookie.js'></script> + <script type='text/javascript' src='https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/menu/js/jquery.hoverIntent.minified.js'></script> + <script type='text/javascript' src='https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/menu/js/jquery.dcjqaccordion.2.7.min.js'></script> + + <link href="https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/menu/css/skins/blue.css" rel="stylesheet" type="text/css" /> + <link href="https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/menu/css/skins/graphite.css" rel="stylesheet" type="text/css" /> + <link href="https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/menu/css/skins/grey.css" rel="stylesheet" type="text/css" /> + <link href="https://cdn.jsdelivr.net/gh/ryangrose/easy-pandoc-templates@948e28e5/css/elegant_bootstrap.css" rel="stylesheet" type="text/css" /> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + <script src="https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/script.js"></script> + + <script src="https://cdn.jsdelivr.net/gh/diversen/pandoc-bootstrap-adaptive-template@959c3622/jquery.sticky-kit.js"></script> + <meta name="generator" content="pandoc" /> +$for(author-meta)$ + <meta name="author" content="$author-meta$" /> +$endfor$ +$if(date-meta)$ + <meta name="date" content="$date-meta$" /> +$endif$ + <title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title> + <style type="text/css">code{white-space: pre;}</style> +$if(quotes)$ + <style type="text/css">q { quotes: "“" "â€" "‘" "’"; }</style> +$endif$ +$if(highlighting-css)$ + <style type="text/css"> +$highlighting-css$ + </style> +$endif$ +$for(css)$ + <link rel="stylesheet" href="$css$" $if(html5)$$else$type="text/css" $endif$/> +$endfor$ +$if(math)$ + $math$ +$endif$ +$for(header-includes)$ + $header-includes$ +$endfor$ +</head> +<body> + + + $if(title)$ + <div class="navbar navbar-static-top"> + <div class="navbar-inner"> + <div class="container"> + <span class="doc-title">$title$</span> + <ul class="nav pull-right doc-info"> + $for(author)$ + <li><p class="navbar-text">$author$</p></li> + $endfor$ + $if(date)$ + <li><p class="navbar-text">$date$</p></li> + $endif$ + </ul> + </div> + </div> + </div> + $endif$ + <div class="container"> + <div class="row"> + $if(toc)$ + <div id="$idprefix$TOC" class="span3"> + <div class="well toc"> + + $toc$ + + </div> + </div> + $endif$ + <div class="span$if(toc)$9$else$12$endif$"> + + $if(abstract)$ + <H1>$abstract-title$</H1> + $abstract$ + $endif$ + + $for(include-before)$ + $include-before$ + $endfor$ +$body$ + $for(include-after)$ + $include-after$ + $endfor$ + </div> + </div> + </div> + <script src="https://vjs.zencdn.net/5.4.4/video.js"></script> + +</body> +</html> diff --git a/learning-markdown/example/html_templates/elegant_bootstrap.css b/learning-markdown/example/html_templates/elegant_bootstrap.css new file mode 100644 index 0000000000000000000000000000000000000000..bd157096fa24061b38fbc6cd81e922f5c8a79efa --- /dev/null +++ b/learning-markdown/example/html_templates/elegant_bootstrap.css @@ -0,0 +1,482 @@ +/* + * I add this to html files generated with pandoc. + */ + +html { + font-size: 100%; + overflow-y: scroll; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + color: #444; + font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif; + font-size: 12px; + line-height: 1.8; + background: #fefefe; +} + +a { + color: #0645ad; + text-decoration: none; +} + +a:visited { + color: #0b0080; +} + +a:hover { + color: #06e; +} + +a:active { + color: #faa700; +} + +a:focus { + outline: thin dotted; +} + +*::-moz-selection { + background: rgba(255, 255, 0, 0.3); + color: #000; +} + +*::selection { + background: rgba(255, 255, 0, 0.3); + color: #000; +} + +a::-moz-selection { + background: rgba(255, 255, 0, 0.3); + color: #0645ad; +} + +a::selection { + background: rgba(255, 255, 0, 0.3); + color: #0645ad; +} + +p { + margin: 1em 0; +} + +img { + max-width: 100%; +} + +h1, h2, h3, h4, h5, h6 { + color: #111; + line-height: 125%; + /* margin-top: 2em; */ + font-weight: normal; +} + +h4, h5, h6 { + font-weight: bold; +} + +h1 { + font-size: 2.5em; +} + +h2 { + font-size: 2em; +} + +h3 { + font-size: 1.5em; +} + +h4 { + font-size: 1.2em; +} + +h5 { + font-size: 1em; +} + +h6 { + font-size: 0.9em; +} + +blockquote { + color: #666666; + margin: 0; + padding-left: 3em; + border-left: 0.5em #EEE solid; +} + +hr { + display: block; + height: 2px; + border: 0; + border-top: 1px solid #aaa; + border-bottom: 1px solid #eee; + margin: 1em 0; + padding: 0; +} + +pre, code, kbd, samp { + color: #000; + font-family: monospace, monospace; + _font-family: 'courier new', monospace; + font-size: 0.98em; +} + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +b, strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +ul, ol { + margin: 1em 0; + padding: 0 0 0 2em; +} + +li { + line-height: inherit; +} + +li p:last-child { + margin-bottom: 0; +} + +ul ul, ol ol { + margin: .3em 0; +} + +dl { + margin-bottom: 1em; +} + +dt { + font-weight: bold; + margin-bottom: .8em; +} + +dd { + margin: 0 0 .8em 2em; +} + +dd:last-child { + margin-bottom: 0; +} + +img { + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; +} + +figure { + display: block; + text-align: center; + margin: 1em 0; +} + +figure img { + border: none; + margin: 0 auto; +} + +figcaption { + font-size: 0.8em; + font-style: italic; + margin: 0 0 .8em; +} + +table { + margin-bottom: 2em; + border-bottom: 1px solid #ddd; + border-right: 1px solid #ddd; + border-spacing: 0; + border-collapse: collapse; +} + +table th { + padding: .2em 1em; + background-color: #eee; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; +} + +table td { + padding: .2em 1em; + border-top: 1px solid #ddd; + border-left: 1px solid #ddd; + vertical-align: top; +} + +.author { + font-size: 1.2em; + text-align: center; +} + +@media only screen and (min-width: 480px) { + body { + font-size: 14px; + } +} +@media only screen and (min-width: 768px) { + body { + font-size: 16px; + } +} +@media print { + * { + background: transparent !important; + color: black !important; + filter: none !important; + -ms-filter: none !important; + } + + body { + font-size: 12pt; + max-width: 100%; + } + + a, a:visited { + text-decoration: underline; + } + + hr { + height: 1px; + border: 0; + border-bottom: 1px solid black; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + + pre, blockquote { + border: 1px solid #999; + padding-right: 1em; + page-break-inside: avoid; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page :left { + margin: 15mm 20mm 15mm 10mm; +} + + @page :right { + margin: 15mm 10mm 15mm 20mm; +} + + p, h2, h3 { + orphans: 3; + widows: 3; + } + + h2, h3 { + page-break-after: avoid; + } +} + + + +.Alert, +.Warning, +.Error, +.Success, +.Note { + padding: 11px; + margin-bottom: 24px; + border-style: solid; + border-width: 1px; + border-radius: 4px; +} +.Alert p, +.Warning p, +.Error p, +.Success p, +.Note p { + margin-top: 0; +} +.Alert p:last-child, +.Warning p:last-child, +.Error p:last-child, +.Success p:last-child, +.Note p:last-child { + margin-bottom: 0; +} + +.Alert { + color: #224466; + background-color: #E2EEF9; + border-color: #BAC6D3; +} + +.Warning { + color: #4C4A42; + background-color: #FFF9EA; + border-color: #DFD8C2; +} + +.Error { + color: #991111; + background-color: #FCDEDE; + border-color: #D2B2B2; +} + +.Success { + color: #22662C; + background-color: #E2F9E5; + border-color: #BAD3BE; +} + +.Note { + color: #2F363D; + background-color: #F6F8FA; + border-color: #D5D8DA; +} + +.Alert h1, +.Alert h2, +.Alert h3, +.Alert h4, +.Alert h5, +.Alert h6 { + color: #224466; + margin-bottom: 0; +} + +.Warning h1, +.Warning h2, +.Warning h3, +.Warning h4, +.Warning h5, +.Warning h6 { + color: #4C4A42; + margin-bottom: 0; +} + +.Error h1, +.Error h2, +.Error h3, +.Error h4, +.Error h5, +.Error h6 { + color: #991111; + margin-bottom: 0; +} + +.Success h1, +.Success h2, +.Success h3, +.Success h4, +.Success h5, +.Success h6 { + color: #22662C; + margin-bottom: 0; +} + +.Note h1, +.Note h2, +.Note h3, +.Note h4, +.Note h5, +.Note h6 { + color: #2F363D; + margin-bottom: 0; +} + +.Alert h1:first-child, +.Alert h2:first-child, +.Alert h3:first-child, +.Alert h4:first-child, +.Alert h5:first-child, +.Alert h6:first-child { + margin-top: 0; +} + +.Warning h1:first-child, +.Warning h2:first-child, +.Warning h3:first-child, +.Warning h4:first-child, +.Warning h5:first-child, +.Warning h6:first-child { + margin-top: 0; +} + +.Error h1:first-child, +.Error h2:first-child, +.Error h3:first-child, +.Error h4:first-child, +.Error h5:first-child, +.Error h6:first-child { + margin-top: 0; +} + +.Success h1:first-child, +.Success h2:first-child, +.Success h3:first-child, +.Success h4:first-child, +.Success h5:first-child, +.Success h6:first-child { + margin-top: 0; +} + +.Note h1:first-child, +.Note h2:first-child, +.Note h3:first-child, +.Note h4:first-child, +.Note h5:first-child, +.Note h6:first-child { + margin-top: 0; +} diff --git a/learning-markdown/example/html_templates/fixDefault.css b/learning-markdown/example/html_templates/fixDefault.css new file mode 100644 index 0000000000000000000000000000000000000000..c463a88661ab5ca79cb290df578e9bf1de4de4ee --- /dev/null +++ b/learning-markdown/example/html_templates/fixDefault.css @@ -0,0 +1,32 @@ +<style> + +/* --- + * fixDefault.css - A fix to default Pandoc's CSS to be + * correctly displayed on a VS Code preview window, + * and nicely printed on [digital] paper + * + * Ramon Solano <ramon.solano@gmail.com> + * + * usage: + * pandoc ... -H fixDefault.css ... + * + * V 1.0, Jul/2021 + * --- + */ + +body { + font-family: inherit; + font-size: inherit; + color: inherit; +} + +@media print { + html,body { + font-size: 10pt; + } + @page { + size: auto; + } +} + +</style> \ No newline at end of file diff --git a/learning-markdown/example/html_templates/report.css b/learning-markdown/example/html_templates/report.css new file mode 100644 index 0000000000000000000000000000000000000000..f5c1a0c67f1509b3abb4dff23460c788dd263c68 --- /dev/null +++ b/learning-markdown/example/html_templates/report.css @@ -0,0 +1,152 @@ +<style> + +/* --- + * article.css - A beautiful css to complement Pandoc's own + * + * Provides: + * - Article-style title and headers + * - Images and tables centered + * - New `<aside>` env (right side) + * + * Ramon Solano <ramon.solano@gmail.com> + * + * usage: + * pandoc ... -H article.css ... + * + * V1.0, Jul/2021 + * --- + */ + +body { + max-width: 40em; + word-wrap: break-word; +} + +header p { + text-align: center; +} +header p.subtitle { + font-size: 1.2em; + line-height: 1.1em; + margin: 0.5em 2em 2em; +/* + margin-top: 0.5em; + margin-bottom: 2em; + */ +} +header p.author { + font-size: 1.1em; + line-height: 0.5em; + font-variant-caps: small-caps; +} +header p.date { + font-size: 0.95em; + margin: 3em; +} + +header h1 { + line-height: 1em; + margin-bottom: 0em; +} +/* abstract header */ +h3:first-child, #abstract { + font-size: 1.2em; + text-align: center; + margin: 0.5em ; +} + +/* abstract paragraph */ +h3:first-child + p, #abstract + p { + font-size: 0.9em; + margin: 0em 4em; + margin-bottom: 3em; +} + +h1 { + font-size: 1.6em; +} +h2 { + font-size: 1.3em; +} +h3 { + font-size: 1.1em; + font-style: italic; +} +h1, h2, h3, h4 { + margin-top: 0.95em; + margin-bottom: 0.80em; +} + +/* Justify and hyphenate all paragraphs */ +p { + text-align: justify; +} + +/* center tables */ +table { + display: table; + width: auto; + margin-left: auto; + margin-right: auto; +} +table caption { + font-size: 0.95em; +} + +/* centered figures */ +figure { + text-align: center; + margin-top: 1.5em; + margin-bottom: 1.5em; +} +figcaption { + font-size: 0.95em; +} + +/* lists: increase left margins */ +ul, ol { + padding: 0 0 0 3em; +} + +/* new style: objects (figures, text) right side */ +aside { + font-size: 0.9em; + width: 33%; + padding: 0 0 0 .8em; + margin: 1em 0 1em 1em; + float: right; +} +aside > *:first-child { + margin-top: 0; +} +aside > *:last-child { + margin-bottom: 0; +} + +pre { + font-size: 0.87em; + line-height: 1.2em; + border: 1px solid #cccccc; + background: #f5f2f0; + padding: .7em; +} + +:not(pre) > code[class*="sourceCode"], +pre[class*="sourceCode"] { + background: #f5f2f0; +} + +code { + color: #92000c; + font-size: .9em; +} + +pre code { + color: unset; +} + +a { + color: #0050a0; +} + +</style> \ No newline at end of file diff --git a/learning-markdown/example/html_templates/template.css b/learning-markdown/example/html_templates/template.css new file mode 100644 index 0000000000000000000000000000000000000000..954bf53a703e2e4178897b878e43e0a027d2895d --- /dev/null +++ b/learning-markdown/example/html_templates/template.css @@ -0,0 +1,684 @@ +/* + Modified by: Paul Iacomi + Originally based on a marked2app template +*/ + +/* Colors */ + +:root { + --color-highlight-1: #2f80a5; + --color-highlight-2: #0f5271; + --color-highlight-3: #3a3a4f; + --color-complementary-1: #b54b3a; + --color-complementary-2: #a73f2d; + --color-white: #FFFFFF; + --color-off-white: #F8F5F0; + --color-off-white-2: #ECE6DA; + --color-grey-1: #ddd; + --color-grey-2: #68645d; + --color-grey-3: #57534A; + --color-grey-4: #423F37; + --color-black: rgb(0, 0, 0); + --color-transparent: rgba(0, 0, 0, 0.4); +} + +@font-face { + font-family: "Ubuntu"; + font-style: normal; + font-weight: 300; + src: local("Ubuntu Light"), local("Ubuntu-Light"), url("http://themes.googleusercontent.com/static/fonts/ubuntu/v4/WtcvfJHWXKxx4x0kuS1kobO3LdcAZYWl9Si6vvxL-qU.woff") format("woff"); +} + +@font-face { + font-family: "Ubuntu"; + font-style: normal; + font-weight: 400; + src: local("Ubuntu"), url("http://themes.googleusercontent.com/static/fonts/ubuntu/v4/CGXpU_uR_FUfdeyCjAWgZ-vvDin1pK8aKteLpeZ5c0A.woff") format("woff"); +} + +@font-face { + font-family: "Ubuntu"; + font-style: normal; + font-weight: 500; + src: local("Ubuntu Medium"), local("Ubuntu-Medium"), url("http://themes.googleusercontent.com/static/fonts/ubuntu/v4/gMhvhm-nVj1086DvGgmzB7O3LdcAZYWl9Si6vvxL-qU.woff") format("woff"); +} + +@font-face { + font-family: "Ubuntu"; + font-style: normal; + font-weight: 700; + src: local("Ubuntu Bold"), local("Ubuntu-Bold"), url("http://themes.googleusercontent.com/static/fonts/ubuntu/v4/nsLtvfQoT-rVwGTHHnkeJrO3LdcAZYWl9Si6vvxL-qU.woff") format("woff"); +} + +@font-face { + font-family: "Ubuntu"; + font-style: italic; + font-weight: 300; + src: local("Ubuntu Light Italic"), local("Ubuntu-LightItalic"), url("http://themes.googleusercontent.com/static/fonts/ubuntu/v4/DZ_YjBPqZ88vcZCcIXm6VqfTCPadK0KLfdEfFtGWCYw.woff") format("woff"); +} + +/* General settings */ + +html { + font-size: 100%; + scroll-behavior: smooth; +} + +html, button, input, select, textarea { + font-family: sans-serif; +} + +html, body, button, input, select, textarea { + color: var(--color-grey-3); + font-family: "Ubuntu Medium", "Myriad Pro", "Myriad", sans-serif; + font-size: 18px; + font-weight: 300; +} + +body { + margin: 0 auto; + background-color: var(--color-white); + height: 100%; + min-height: 100%; + overflow: hidden; +} + +body, textarea { + line-height: 1.4; +} + +body:after { + clear: both; + content: ""; + display: table; +} + +h1, h2, h3, dt { + color: var(--color-grey-4); + font-weight: 700; +} + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2, .article-list .article-title { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3, dt { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.75em; + margin: 2.33em 0; +} + +a { + color: var(--color-highlight-1); + cursor: pointer; + outline: 0 none; + text-decoration: underline; +} + +a:hover { + outline: 0 none; + color: var(--color-highlight-2); +} + +p, pre { + margin: 1em 0; +} + +.article-body p { + text-align: justify; +} + +code, kbd, pre, samp { + font-family: monospace, serif; + font-size: 1em; + margin: 0; + padding: 0; +} + +pre { + white-space: pre-wrap; + word-wrap: break-word; +} + +pre { + background-color: var(--color-off-white); + font-size: 0.7rem; + overflow-x: auto; + padding: 1.3rem; + position: relative; + white-space: pre; + word-wrap: normal; +} + +pre, code, kbd, samp { + margin: 0; +} + +code, kbd, pre, samp { + font-family: monospace, serif; +} + +code { + color: var(--color-grey-4); +} + +aside { + display: block; + float: right; + width: 390px; +} + +b, strong { + font-weight: bold; + color: var(--color-grey-4); + font-weight: 700; +} + +blockquote { + color: var(--color-grey-4); + font-size: 1.25em; + font-weight: 700; + margin: 1em 40px; +} + +blockquote { + margin-bottom: 2em; + margin-top: 2em; +} + +hr { + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + border-color: -moz-use-text-color -moz-use-text-color var(--color-off-white-2); + border-image: none; + border-style: none none solid; + border-width: medium medium 1px; + margin: 3em 6em; +} + +/* buttons */ + +.button { + box-shadow: inset 0px 34px 0px -15px var(--color-complementary-1); + background-color: var(--color-complementary-2); + border: 1px solid var(--color-grey-4); + display: inline-block; + cursor: pointer; + color: var(--color-white); + font-size: 15px; + font-weight: bold; + padding: 9px 23px; + text-decoration: none; + text-shadow: 0px -1px 0px var(--color-grey-4); +} + +.button:hover { + background-color: var(--color-complementary-1); +} + +.button:active { + position: relative; + top: 1px; +} + + +/* Wrapper and Header */ + +.wrapper { + flex: 1; + display: flex; +} + +.container { + flex: 1; + order: 1; + height: 100vh; + overflow-y: auto; +} + +article { + padding-left: 6rem; + padding-right: 6rem; + margin-left: auto; + margin-right: auto; + max-width: 42rem; + display: block; +} + +/* header/navbar */ + +header { + flex: 0 0 25%; + order: 0; + background-color: var(--color-highlight-3); + border-left: 1px solid var(--color-black); + color: var(--color-off-white); + -webkit-font-smoothing: antialiased; + height: 100vh; + overflow-y: auto; + padding: 20px; +} + +header h1 { + font-family: Arvo, sans-serif; + font-size: 1.3em; + font-weight: 300; + color: var(--color-white); + line-height: 1.3em; + border-bottom: none; + margin-top: 0; + margin-left: 10px; +} + +header ul>li:before { + background-color: var(--color-white); +} + +header a { + text-decoration: none; + font-size: 0.9em; + color: var(--color-off-white); +} + +header a:hover { + outline: 0 none; + color: var(--color-highlight-1); +} + +header ul { + list-style: none; + padding: 0; +} + +.navbar-hamburger { + display: none; +} + +#navbar-check { + display: none; +} + +@media print, screen and (max-width: 960px) { + body { + overflow: auto; + } + .wrapper { + flex-direction: column; + } + /* header, article, footer { + float: none; + position: static; + width: auto; + } */ + article, footer { + float: none; + position: static; + width: auto; + } + header { + position: static; + flex: 0 0 0; + padding: 20px; + } + article { + padding-left: 3.5rem; + padding-right: 3.5rem; + } + .navbar-items { + background-color: var(--color-highlight-3); + position: fixed; + top: 0; + bottom: 0; + width: 70%; + padding: 10px; + overflow-y: auto; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column nowrap; + flex-flow: column nowrap; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + } + .navbar-hamburger { + display: block !important; + float: left; + position: fixed; + z-index: 6; + top: 5%; + color: var(--color-off-white); + background-color: var(--color-complementary-2); + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + transform: scale(2); + } + .navbar-left .navbar-items { + left: 0; + margin-left: -100%; + -webkit-transition: margin-left 0.2s ease; + transition: margin-left 0.2s ease; + } + .navbar-left #navbar-check:checked~.navbar-items { + margin-left: 0; + } + .navbar-left #navbar-check:checked~.navbar-hamburger { + margin-left: 72%; + } + div.navbar-item:not(:last-of-type) { + margin-bottom: 8px; + } +} + +/* images and figures */ + +figure { + margin-bottom: 2em; + margin-top: 2em; +} + +figure>figcaption { + margin-top: 0.5em; +} + +img { + max-width: 100%; + max-height: 100vh; + display: block; + border: 0 none; + margin: auto; +} + +.img-modal { + z-index: 3; + display: none; + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: var(--color-black); + background-color: var(--color-transparent); +} + +.img-modal-content { + margin: auto; + background-color: var(--color-white); + position: relative; + padding: 0; + outline: 0; + max-width: 60%; + animation: animatezoom 0.6s; +} + +.img-modal-content img { + max-width: 100%; + max-height: 100%; +} + +@keyframes animatezoom { + from { + transform: scale(0) + } + to { + transform: scale(1) + } +} + +/* Lists and tables */ + +ol>li:before { + color: var(--color-grey-4); + content: counter(ol, decimal) "."; + counter-increment: ol; + font-weight: 700; + margin-right: 0.333em; + position: absolute; + right: 100%; +} + +ul>li:before { + background-color: var(--color-grey-4); + border-radius: 14px 14px 14px 14px; + content: ""; + height: 6px; + margin-right: 0.333em; + margin-top: 0.55em; + position: absolute; + right: 100%; + width: 6px; +} + +ol, ul, dl { + margin-left: 2rem; + padding: 0; +} + +ol { + counter-reset: ol; +} + +li+li, dd+dt { + margin-top: 0.5em; +} + +ul>li { + position: relative; +} + +ol>li { + position: relative; +} + +li { + list-style: none outside none; +} + +small, dd, figcaption { + color: var(--color-grey-2); + display: block; + font-size: 0.8rem; + font-style: italic; + line-height: 1.2; +} + +/* Tables */ + +tbody { + display: table-row-group +} + +tfoot { + display: table-footer-group +} + +table { + margin-bottom: 2em; + font-size: 0.8em; + padding: 0; + border-collapse: collapse; + box-shadow: 1px 1px 2px var(--color-transparent); + -webkit-box-shadow: 1px 1px 2px var(--color-transparent); + width: 80%; + margin: 0 auto 2em auto +} + +table th, table td { + padding: 10px 10px 9px; + line-height: 18px; + text-align: left +} + +table th { + padding-top: 9px; + vertical-align: middle +} + +table td { + vertical-align: top; + border-top: 1px solid var(--color-grey-1); +} + +table tbody th { + border-top: 1px solid var(--color-grey-1); + vertical-align: top +} + +table { + border: 1px solid var(--color-grey-1); + border-collapse: separate; + *border-collapse: collapse; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px +} + +table th+th, table td+td, table th+td { + border-left: 1px solid var(--color-grey-1) +} + +table thead tr:first-child th:first-child, table tbody tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0 +} + +table thead tr:first-child th:last-child, table tbody tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0 +} + +table tbody tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px +} + +table tbody tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0 +} + +tbody tr:nth-child(odd) { + background-color: rgba(0, 0, 0, 0.03) +} + +caption { + display: table-caption; + font-weight: 300; + font-size: 1.1em; + background: var(--color-transparent); + padding: 5px; + border-radius: 4px; + -webkit-border-radius: 4px; + margin: 4px 0; + box-shadow: 2px 2px 2px var(--color-transparent); + -webkit-box-shadow: 2px 2px 2px var(--color-transparent); +} + +/* grey out placeholders */ + +:-moz-placeholder { + color: var(--color-off-white-2); +} + +::-webkit-input-placeholder { + color: var(--color-off-white-2); +} + +.article-date { + color: var(--color-off-white-2); + display: block; + font-size: 0.8rem; +} + +/* Title, author, institution, abstract */ + +.author-list { + margin: 0 0 0px; + font-weight: 700; +} + +.author-affiliations { + margin: 0 0 0px; + font-style: italic; + font-size: smaller; +} + +.author-correspondence { + line-height: 2rem; + font-weight: 700; + font-size: smaller; +} + +.abstract { + margin: 0% 1% 2%; + font-weight: 700; +} + +/* References */ + +.references { + line-height: 1.1; + font-size: 15px; +} + +div.csl-entry { + clear: both; + margin-bottom: 0.5em; +} + +.hanging div.csl-entry { + margin-left: 2em; + text-indent: -2em; +} + +div.csl-left-margin { + min-width: 2em; + float: left; +} + +div.csl-right-inline { + margin-left: 2em; + padding-left: 1em; +} + +div.csl-indent { + margin-left: 2em; +} + +/* Other pandoc settings */ + +q { + quotes: "ÔÇ£" "ÔÇØ" "ÔÇÿ" "ÔÇÖ"; +} + +.display.math { + display: block; + text-align: center; + margin: 0.5rem auto; +} \ No newline at end of file diff --git a/learning-markdown/example/html_templates/template.html b/learning-markdown/example/html_templates/template.html new file mode 100644 index 0000000000000000000000000000000000000000..785f6aa73f3d6541a8899eb9215c14f751f3571d --- /dev/null +++ b/learning-markdown/example/html_templates/template.html @@ -0,0 +1,207 @@ +<!DOCTYPE html> +<html$if(lang)$ lang="$lang$" $endif$> + + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> + <meta name="generator" content="pandoc"> + + $for(author-meta)$ + <meta name="author" content="$author-meta$"> + $endfor$ + + $if(date-meta)$ + <meta name="dcterms.date" content="$date-meta$"> + $endif$ + + $if(keywords)$ + <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" /> + $endif$ + + <title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title> + <style type="text/css"> + code { + white-space: pre; + } + </style> + + $if(quotes)$ + <style type="text/css"> + q { + quotes: "“""â€""‘""’"; + } + </style> + $endif$ + + $if(highlighting-css)$ + <style type="text/css"> + $highlighting-css$ + </style> + $endif$ + + $for(css)$ + <link rel="stylesheet" href="$css$"> + $endfor$ + + $if(math)$ + $if(mathjax)$ + $-- MathJax is handled specially. We need to add the data-external attribute + $-- so it doesn't get inlined (and thus broken) by the --self-contained option. + <script type="text/javascript" id="MathJax-script" async + src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"> + </script> + <script type="text/x-mathjax-config"> + MathJax.Ajax.config.path["mhchem"] = "https://cdnjs.cloudflare.com/ajax/libs/mathjax-mhchem/3.3.2"; + MathJax.Hub.Config({ + TeX: { + extensions: ["[mhchem]/mhchem.js"] + } + }); + </script> + $else$ + $math$ + $endif$ + $endif$ + + $for(header-includes)$ + $header-includes$ + $endfor$ + + </head> + + <body> + <div class="wrapper"> + + $if(project)$ + <header> + <div class="navbar-left"> + <input type="checkbox" id="navbar-check"> + <label for="navbar-check" class="navbar-hamburger">☰</label> + <div class="navbar-items"> + <h1 class="header">$title$</h1> + <a class="button" href="manuscript.pdf">Download PDF</a> + <a class="button" href="manuscript-SI.pdf">Download SI PDF</a> + + $if(toc)$ + <nav id="$idprefix$TOC"> + $toc$ + </nav> + $endif$ + + </div> + </div> + </header> + $endif$ + + <div class="container"> + <article typeof="ScholarlyArticle" vocab="http://schema.org/"> + + <h1 property="headline">$title$</h1> + $if(subtitle)$ + <p property="alternativeHeadline" class="subtitle">$subtitle$</p> + $endif$ + <p class="author-list"> + $for(author)$ + $if(author.last)$ $-- not working! + and + $endif$ + <span property="author" typeof="Person">$author.name$</span> + <sup> + $if(author.correspondence)$ + $if(author.email)$<a href="mailto:$author.email$">✉</a> $endif$ + $endif$ + $for(author.institute_indices)$ + $author.institute_indices$ + $sep$, + $endfor$ + $if(author.equal_contributor)$, + $if(equal_contributor_symbol)$ + $equal_contributor_symbol$ + $else$* + $endif$ + $endif$ + </sup>$sep$, + $endfor$ + </p> + <div class="author-affiliations"> + $for(institute)$ + <div class="affiliation"><sup>$institute.index$</sup>$institute.name$$if(institute.address)$, + $institute.address$$endif$ + </div> + $endfor$ + </div> + <div class="author-info"> + $if(has_equal_contributors)$ + <div class="author-contrib"> + <sup>$if(equal_contributor_symbol)$$equal_contributor_symbol$$else$*$endif$</sup>These authors contributed + equally to this work + </div> + $endif$ + $if(has_correspondence)$ + <div class="author-correspondence"> + Correspondence: $for(author)$$if(author.correspondence)$$if(author.email)$$author.name$ <a + href="mailto:$author.email$"><$author.email$></a> $endif$$endif$$endfor$ + </div> + $endif$ + </div> + + $if(abstract)$ + <span class="abstract" property="description">$abstract$</span> + $endif$ + $if(doi)$<p><a href="https://doi.org/$doi$">doi: $doi$</a></p>$endif$ + + $for(include-before)$ + $include-before$ + $endfor$ + + <div property="articleBody" class="article-body"> + $body$ + </div> + </article> + </div> + </div> + + <!-- Image display zoom modal --> + <div id="img-modal" class="img-modal" onclick="this.style.display='none'"> + <span class="button">×</span> + <div class="img-modal-content animate-zoom"> + <img id="img-modal-inner" style="width:100%"> + </div> + </div> + + </body> + + <!-- Small navigation script --> + <script> + window.onhashchange = function () { + hash = window.location.hash + let target = document.querySelector(hash) + target.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }) + } + document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function (e) { + let hashval = anchor.getAttribute('href') + let target = document.querySelector(hashval) + target.scrollIntoView({ + behavior: 'smooth', + block: 'start' + }) + history.pushState(null, null, hashval) + e.preventDefault() + }); + }); + </script> + + <!-- Image highlight script --> + <script> + function onClickImage(element) { + document.getElementById("img-modal-inner").src = element.src; + document.getElementById("img-modal").style.display = "block"; + } + </script> + + </html> \ No newline at end of file diff --git a/learning-markdown/example/letter.md b/learning-markdown/example/letter.md new file mode 100644 index 0000000000000000000000000000000000000000..bdfadc5bd1e5c3dedc966d993ac0e8e42df289d9 --- /dev/null +++ b/learning-markdown/example/letter.md @@ -0,0 +1,35 @@ +--- +#Info +author: Pierre-Yves Barriat +subject: Lorem ipsum +city: Louvain-la-Neuve +from: +- Place Louis Pasteur 3 - 1348 Louvain-la-Neuve +affiliation1: Université catholique de Louvain - Earth and Life Institute +affiliation2: Earth and Climate - ELIC +#PerLetter Info +to: +- Lorem ipsum +- Lorem ipsum dolor +- sit amet, consectetur +- adipiscing elit - 1348 Louvain-la-Neuve +#Settings +mainfont: FreeSans +altfont: Ubuntu +monofont: FreeMono +lang: fr-FR +fontsize: 10pt +geometry: a4paper, left=25mm, right=25mm, top=50mm, bottom=25mm +page-background: "assets/garde.pdf" +page-background-opacity: "0.8" +#customdate: 1838-8-9 +signature: assets/signature.png +--- + +## Neque porro quisquam est qui dolorem ipsum quia dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis tortor sit amet urna facilisis sollicitudin. Ut efficitur, enim vitae sodales aliquet, odio dui consectetur nisl, quis facilisis mauris est ut odio. Proin convallis erat sit amet arcu pellentesque blandit. Aliquam at turpis vestibulum, iaculis nibh nec, eleifend ex. Vestibulum porta nec dolor ac porttitor. Nullam maximus vitae lacus ac hendrerit. Pellentesque aliquet, est nec finibus pharetra, nulla arcu malesuada orci, eget consequat lacus sapien eget libero. Phasellus dapibus turpis sed euismod sodales. Proin rhoncus odio non magna finibus, quis mollis enim lacinia. In hac habitasse platea dictumst. In eget neque blandit, dapibus lacus euismod, varius ligula. Praesent at dui ut eros gravida mollis. Ut viverra lorem risus. + +Cras ut congue sem. Mauris ex nulla, dapibus eu varius et, commodo eget dolor. Nunc velit ligula, sagittis placerat feugiat a, tincidunt et purus. Quisque eu convallis massa. Curabitur in sollicitudin felis. Phasellus mattis tincidunt ultricies. Sed sodales semper lorem quis semper. Quisque sollicitudin cursus dolor, quis fringilla magna lacinia eu. Donec at sagittis metus. Ut et lectus justo. Vestibulum sollicitudin commodo iaculis. In in elit nunc. Ut eget laoreet lorem. + +Your devoted friend, \ No newline at end of file diff --git a/learning-markdown/example/nice_article.md b/learning-markdown/example/nice_article.md new file mode 100644 index 0000000000000000000000000000000000000000..7123647669c9024ae075205b403fc56e54c9907d --- /dev/null +++ b/learning-markdown/example/nice_article.md @@ -0,0 +1,36 @@ +--- +title: Lorem Ipsum +author: Jens Erat +subtitle: Opera sine nomine scripta +date: 2015-02-03 +abstract: | + Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. [@wiki:lorem] +--- + +# Duis autem + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. + +# Ut wisi + +Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. + +## Nam liber + +Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. + +### Duis autem + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. + +![Kitten time! [@wiki:kitten]](assets/kitten.jpg) + +# At vero + +At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat. + +# Consetetur sadipscing + +Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +# References \ No newline at end of file diff --git a/learning-markdown/example/nice_article.yaml b/learning-markdown/example/nice_article.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ecd10f0a5a6c10cdcff67902bc7faa3a7dabb7d8 --- /dev/null +++ b/learning-markdown/example/nice_article.yaml @@ -0,0 +1,24 @@ +--- +# Names of Input and Output Files +input-file: nice_article.md +output-file: nice_article.pdf # Change to .docx to make a Word file + +# Addition to LaTeX Template +include-in-header: tex_templates/report-header.tex +include-after-body: tex_templates/report-footer.tex + +# LaTeX Specifications +pdf-engine: xelatex +variables: + documentclass: article + classoption: + - twocolumn + - 11pt # 10pt, 12pt + +listings: true +number-sections: true + +# References and Reference Style +csl: assets/citation.csl +bibliography: assets/bibliography.bib +citeproc: true # required in pandoc 2.14 \ No newline at end of file diff --git a/learning-markdown/example/report.md b/learning-markdown/example/report.md new file mode 100644 index 0000000000000000000000000000000000000000..dddb6f8eef1acb0633589b7f03e1ae336bdcf45f --- /dev/null +++ b/learning-markdown/example/report.md @@ -0,0 +1,64 @@ +--- +title: My Great Report +subtitle: First finding of something extraordinary +author: Pierre-Yves Barriat +#date: "15 avril 2022" +lang: "en" +fontsize: 11pt +bibliography: "assets/MyLib.bib" +--- + +### Abstract + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nost commodo consequat. + +## 1. Introduction + + Ullamco laboris nisi ut aliquip ex ea commodo consequat [@hoffmann_platon_1951]. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + +## 2. Tables + +Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas [@temple_beginnings_1993]. + +: Table 1.1: Demonstration of simple table syntax. + +Default | Center | Right +----------- |:------:|-----: +Tires | Pc | 12.50 +Petrol | Br | 456.10 + + +## 3. Figures + +Sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit. + + {width=60%} + + +## 4. Equations + +The 0-dimension Energy Balance Model (EBM) or global EBM: + +$$(1 - \alpha)\frac{S_0}{4} = \sigma T^4 \qquad (1)$$ + +The one-dimension EBM or zonal EBM: + +$$T_{i} = \frac{{\ S}_{i}\left( 1 - \alpha(T_{i}) \right) + K\overline{T} - A}{B + K} \qquad (2)$$ + +- $T_i =$ the surface temperature at latitude band $i$ +- $S_i =$ the mean annual solar radiation at latitude $i$ +- $K =$ the transport coefficient (here set to 3.81 $Wm^{-2 \ \circ}C^{-1}$) +- $A$ and $B$ are constants governing the longwave radiation loss (here taking values $A = 204.0 \ Wm^{-2}$ and $B = 2.17 Wm^{-2 \ \circ} C^{-1}$) +- $\overline{T} =$ the global mean surface temperature +- $\alpha(T_{i}) =$ the albedo at latitude i, and it can be formulated by: + +$$ +\alpha (T_i)= +\begin{cases} +0.5 & \quad \text{if \ $T{i} \leq 270K$}\\ +0.5 - 0.25 * \frac{T-270}{20} & \quad \text{if \ $270K \leq T{i} \leq 290K$}\\ +0.25 & \quad \text{if \ $T{i} \geq 290K$}\\ +\end{cases} +$$ + +## References \ No newline at end of file diff --git a/learning-markdown/example/sandbox/article.R b/learning-markdown/example/sandbox/article.R new file mode 100644 index 0000000000000000000000000000000000000000..7a3aa130fd51d49247a3e1f68d0485ac544c81bd --- /dev/null +++ b/learning-markdown/example/sandbox/article.R @@ -0,0 +1,17 @@ +#! /usr/bin/Rscript --vanilla --default-packages=base,stats,utils + +packages = c('knitr','tidyverse','rmarkdown','stevetemplates','stevemisc') + +## Now load or install&load all +package.check <- lapply( + packages, + FUN = function(x) { + if (!require(x, character.only = TRUE)) { + install.packages(x, repos='https://www.freestatistics.org/cran/', lib='~/R/lib') + library(x, character.only = TRUE) + } + } +) + +file <- list.files(pattern='article.Rmd') +rmarkdown::render(file) diff --git a/learning-markdown/example/sandbox/article.Rmd b/learning-markdown/example/sandbox/article.Rmd new file mode 100644 index 0000000000000000000000000000000000000000..18ff41f74f818f9a2a6c93384c44b1f19b952c0d --- /dev/null +++ b/learning-markdown/example/sandbox/article.Rmd @@ -0,0 +1,116 @@ +--- +output: + pdf_document: + citation_package: natbib + latex_engine: xelatex + keep_tex: true + dev: cairo_pdf + template: tex_templates/svm-latex-article2.tex +biblio-style: apsr +title: "Another Pandoc Markdown Article Starter and Template" +thanks: "Replication files are available on the author's Github account (http://github.com/svmiller/svm-r-markdown-templates). **Current version**: `r format(Sys.time(), '%B %d, %Y')`; **Corresponding author**: steven.v.miller@gmail.com." +author: +- name: Steven V. Miller + affiliation: Clemson University +- name: A Second Author Who Did Less Work + affiliation: The Ohio State University +- name: A Graduate Student + affiliation: University of Alabama +abstract: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sit amet libero justo. Pellentesque eget nibh ex. Aliquam tincidunt egestas lectus id ullamcorper. Proin tellus orci, posuere sed cursus at, bibendum ac odio. Nam consequat non ante eget aliquam. Nulla facilisis tincidunt elit. Nunc hendrerit pellentesque quam, eu imperdiet ipsum porttitor ut. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse potenti. Duis vitae nibh mauris. Duis nec sem sit amet ante dictum mattis. Suspendisse diam velit, maximus eget commodo at, faucibus et nisi. Ut a pellentesque eros, sit amet suscipit eros. Nunc tincidunt quis risus suscipit vestibulum. Quisque eu fringilla massa." +keywords: "pandoc, r markdown, knitr" +date: "`r format(Sys.time(), '%B %d, %Y')`" +geometry: margin=1in +#fontfamily: libertineotf +mainfont: cochineal +sansfont: Linux Biolinum O +fontsize: 11pt +# spacing: double +endnote: no +# pandocparas: TRUE +sansitup: TRUE +bibliography: assets/master.bib +header-includes: + - \usepackage{longtable} + - \LTcapwidth=.95\textwidth + - \linespread{1.05} + - \usepackage{hyperref} +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +library(tidyverse) +library(stevemisc) +``` + + + +# Introduction + +\kant[1] + +## A Subsection in the Introduction + +\kant[2-5] + +This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. Here's an obligatory citation to @xie2013ddrk. + +# Literature Review + +\kant[6-14] + +# Research Design + +\kant[15] + +## Another Subsection From Kant, Who Writes as If He Does Not Want to Be Read + +\kant[16-18] + +## Another Subsection + +\kant[19-23] + +```{r, echo=F, fig.cap = "A Simple ggplot with the mtcars Data in R", message=F, fig.width=8} + +mtcars %>% + ggplot(.,aes(wt, mpg)) + geom_point() + + theme_steve_web() + + geom_smooth(method="lm") + + labs(caption = "Data: 1974 Motor Trend US magazine", + x = "Weight (1,000 Pounds)", + y = "(U.S.) Miles per Gallon") + +``` + +When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this: + +```{r cars} +summary(cars) +``` + +# Results + +\kant[24] + +## Including Plots + +You can also embed plots, for example: + +```{r pressure, echo=FALSE} +plot(pressure) +``` + +Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot. + + +\kant[25-35] + +```{r} +plot(mtcars) +``` + +# Conclusion + +\kant[36-40] + +\newpage \ No newline at end of file diff --git a/learning-markdown/example/slides.md b/learning-markdown/example/slides.md new file mode 100644 index 0000000000000000000000000000000000000000..6897b7a93d9a2890d9d43295ba9c369529568596 --- /dev/null +++ b/learning-markdown/example/slides.md @@ -0,0 +1,344 @@ +--- +title: Marp slide deck +description: An example slide deck created by Marp CLI +author: Yuki Hattori +keywords: marp,marp-cli,slide +footer: 25/04/2022 +_footer: "" + +#url: https://marp.app/ +#image: https://marp.app/og-image.jpg +# default, gaia, uncover +theme: default +paginate: true +_paginate: false + +# Light theme all slides +# First slide, Dark theme for title slide, Title slide style +#class: invert +#_class: +# - invert +# - lead + +# Nice preview for the VS Code extension +marp: true +--- + +Marp +=== + + + +##### Markdown presentation ecosystem + +###### by Marp Team ([@marp-team][marp-team]) + +[marp-team]: https://github.com/marp-team +[marpit]: https://github.com/marp-team/marpit +[marp-core]: https://github.com/marp-team/marp-core +[marp-cli]: https://github.com/marp-team/marp-cli +[marp-vscode]: https://github.com/marp-team/marp-vscode + +--- + +# Features + +- :memo: **Write slide deck with plain Markdown** (CommonMark) +- :factory: Built on [Marpit framework][marpit]: A brand-new skinny framework for creating slide deck +- :gear: [Marp Core][marp-core]: Easy to start using the core engine and built-in themes via npm +- :tv: [Marp CLI][marp-cli]: Convert Markdown into HTML, PDF, PPTX, and images +* :vs: [Marp for VS Code][marp-vscode]: Live-preview your deck while editting +* and more... + +--- + +# How to write slides? + +Split pages by horizontal ruler (e.g. `---`). It's very simple. + +```markdown +# Slide 1 + +foobar + +--- + +# Slide 2 + +foobar +``` + +--- + +# Directives + +Marp has extended syntax called **"Directives"** to support creating beautiful slides. + +Insert front-matter to the top of Markdown: + +``` +--- +theme: default +--- +``` + +or HTML comment to anywhere: + +```html +<!-- theme: default --> +``` + +https://marpit.marp.app/directives + +--- + +## [Global directives](https://marpit.marp.app/directives?id=global-directives) + +- `theme`: Choose theme +- `size`: Choose slide size from `16:9` and `4:3` *(except Marpit framework)* +- [`headingDivider`](https://marpit.marp.app/directives?id=heading-divider): Instruct to divide slide pages at before of specified heading levels + +``` +--- +theme: gaia +size: 4:3 +--- + +# Content +``` + +> Marp can use [built-in themes in Marp Core](https://github.com/marp-team/marp-core/tree/master/themes#readme): `default`, `gaia`, and `uncover`. + +--- + +## [Local directives](https://marpit.marp.app/directives?id=local-directives) + +These are the setting value per slide pages. + +- `paginate`: Show pagination by set `true` +- `header`: Specify the contents for header +- `footer`: Specify the contents for footer +- `class`: Set HTML class for current slide +- `color`: Set text color +- `backgroundColor`: Set background color + +--- + +### Spot directives + +Local directives would apply to **defined page and following pages**. + +They can apply to single page by using underscore prefix such as `_class`. + + + +--- + +### Example + +This page is using invert color scheme [defined in Marp built-in theme](https://github.com/marp-team/marp-core/tree/master/themes#readme). + +<!-- _class: invert --> + +```html +<!-- _class: invert --> +``` + +--- + +# [Image syntax](https://marpit.marp.app/image-syntax) + +You can resize image size and apply filters through keywords: `width` (`w`), `height` (`h`), and filter CSS keywords. + +```markdown + +``` + +```markdown + +``` + +Please refer [resizing image syntax](https://marpit.marp.app/image-syntax?id=resizing-image) and [a list of CSS filters](https://marpit.marp.app/image-syntax?id=image-filters). + +  + +--- + +# [Background image](https://marpit.marp.app/image-syntax?id=slide-backgrounds) + +You can set background image for a slide by using `bg` keyword. + +```markdown + +``` + + + +--- + +## Multiple backgrounds ([Marpit's advanced backgrounds](https://marpit.marp.app/image-syntax?id=advanced-backgrounds)) + +Marp can use multiple background images. + +```markdown + + + +``` + +Also can change alignment direction by including `vertical` keyword. + + + + + +--- + +## [Split background](https://marpit.marp.app/image-syntax?id=split-backgrounds) + +Marp can use [Deckset](https://docs.deckset.com/English.lproj/Media/01-background-images.html#split-slides) style split background(s). + +Make a space for background by `bg` + `left` / `right` keywords. + +```markdown + +``` + + + +<!-- _footer: "*Photo by [Mohamed Nohassi](https://unsplash.com/@coopery?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)*" --> + +--- + +## [Fragmented list](https://marpit.marp.app/fragmented-list) + +Marp will parse a list with asterisk marker as the fragmented list for appearing contents one by one. (_**Only for exported HTML** by [Marp CLI][marp-cli] / [Marp for VS Code][marp-vscode]_) + +```markdown +# Bullet list + +- One +- Two +- Three + +--- + +# Fragmented list + +* One +* Two +* Three +``` + +--- + +## Math typesetting (only for [Marp Core][marp-core]) + +[KaTeX](https://katex.org/) math typesetting such as $ax^2+bc+c$ can use with [Pandoc's math syntax](https://pandoc.org/MANUAL.html#math). + +$$I_{xx}=\int\int_Ry^2f(x,y)\cdot{}dydx$$ + +```tex +$ax^2+bc+c$ +``` +```tex +$$I_{xx}=\int\int_Ry^2f(x,y)\cdot{}dydx$$ +``` + +--- + +## Auto-scaling (only for [Marp Core][marp-core]) + +*Several built-in themes* are supported auto-scaling for code blocks and math typesettings. + +```text +Too long code block will be scaled-down automatically. ------------> +``` +```text +Too long code block will be scaled-down automatically. ------------------------> +``` +```text +Too long code block will be scaled-down automatically. ------------------------------------------------> +``` + +--- + +##### <!--fit--> Auto-fitting header (only for [Marp Core][marp-core]) +##### <!--fit--> is available by annotating `<!--fit-->` in headings. + +<br /> + +```html +## <!--fit--> Auto-fitting header (only for Marp Core) +``` + +--- + +## [Theme CSS](https://marpit.marp.app/theme-css) + +Marp uses `<section>` as the container of each slide. And others are same as styling for plain Markdown. The customized theme can use in [Marp CLI][marp-cli] and [Marp for VS Code][marp-vscode]. + +```css +/* @theme your-theme */ +@import 'default'; +section { + /* Specify slide size */ + width: 960px; + height: 720px; +} +h1 { + font-size: 30px; + color: #c33; +} +``` + +--- + +## [Tweak style in Markdown](https://marpit.marp.app/theme-css?id=tweak-style-through-markdown) + +`<style>` tag in Markdown will work in the context of theme CSS. + +```markdown +--- +theme: default +--- + +<style> +section { + background: yellow; +} +</style> + +Re-painted yellow background, ha-ha. +``` + +> You can also add custom styling by class like `section.custom-class { ... }`. +> Apply style through `<!-- _class: custom-class -->`. + +--- + +## [Scoped style](https://marpit.marp.app/theme-css?id=scoped-style) + +If you want one-shot styling for current page, you can use `<style scoped>`. + +```markdown +<style scoped> +a { + color: green; +} +</style> + + +``` + +<style scoped> +a { color: green; } +</style> + +--- + +# Enjoy writing slides! :v: <!--fit--> + +#####  Marp: Markdown presentation ecosystem — https://marp.app/ + +###### by Marp Team ([@marp-team][marp-team]) diff --git a/learning-markdown/example/tex_templates/after_body.tex b/learning-markdown/example/tex_templates/after_body.tex new file mode 100644 index 0000000000000000000000000000000000000000..49d072acfd9c4860320545ea3b59f7b27655a5fb --- /dev/null +++ b/learning-markdown/example/tex_templates/after_body.tex @@ -0,0 +1 @@ +\end{linenumbers} diff --git a/learning-markdown/example/tex_templates/before_body.tex b/learning-markdown/example/tex_templates/before_body.tex new file mode 100644 index 0000000000000000000000000000000000000000..760f0fa746aa1979b6d6ff911af0aed8d874593b --- /dev/null +++ b/learning-markdown/example/tex_templates/before_body.tex @@ -0,0 +1,3 @@ +\thispagestyle{empty} +\vspace*{2 cm} +\begin{linenumbers} diff --git a/learning-markdown/example/tex_templates/eisvogel.latex b/learning-markdown/example/tex_templates/eisvogel.latex new file mode 100644 index 0000000000000000000000000000000000000000..109cb83cd156f752cf185e3cd1983739f842b8e5 --- /dev/null +++ b/learning-markdown/example/tex_templates/eisvogel.latex @@ -0,0 +1,1098 @@ +%% +% Copyright (c) 2017 - 2023, Pascal Wagler; +% Copyright (c) 2014 - 2023, John MacFarlane +% +% All rights reserved. +% +% Redistribution and use in source and binary forms, with or without +% modification, are permitted provided that the following conditions +% are met: +% +% - Redistributions of source code must retain the above copyright +% notice, this list of conditions and the following disclaimer. +% +% - Redistributions in binary form must reproduce the above copyright +% notice, this list of conditions and the following disclaimer in the +% documentation and/or other materials provided with the distribution. +% +% - Neither the name of John MacFarlane nor the names of other +% contributors may be used to endorse or promote products derived +% from this software without specific prior written permission. +% +% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +% COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +% ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +% POSSIBILITY OF SUCH DAMAGE. +%% + +%% +% This is the Eisvogel pandoc LaTeX template. +% +% For usage information and examples visit the official GitHub page: +% https://github.com/Wandmalfarbe/pandoc-latex-template +%% + +% Options for packages loaded elsewhere +\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref} +\PassOptionsToPackage{hyphens}{url} +\PassOptionsToPackage{dvipsnames,svgnames,x11names,table}{xcolor} +$if(CJKmainfont)$ +\PassOptionsToPackage{space}{xeCJK} +$endif$ +% +\documentclass[ +$if(fontsize)$ + $fontsize$, +$endif$ +$if(papersize)$ + $papersize$paper, +$else$ + paper=a4, +$endif$ +$if(beamer)$ + ignorenonframetext, +$if(handout)$ + handout, +$endif$ +$if(aspectratio)$ + aspectratio=$aspectratio$, +$endif$ +$endif$ +$for(classoption)$ + $classoption$$sep$, +$endfor$ + ,captions=tableheading +]{$if(beamer)$$documentclass$$else$$if(book)$scrbook$else$scrartcl$endif$$endif$} +$if(beamer)$ +$if(background-image)$ +\usebackgroundtemplate{% + \includegraphics[width=\paperwidth]{$background-image$}% +} +% In beamer background-image does not work well when other images are used, so this is the workaround +\pgfdeclareimage[width=\paperwidth,height=\paperheight]{background}{$background-image$} +\usebackgroundtemplate{\pgfuseimage{background}} +$endif$ +\usepackage{pgfpages} +\setbeamertemplate{caption}[numbered] +\setbeamertemplate{caption label separator}{: } +\setbeamercolor{caption name}{fg=normal text.fg} +\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$ +$for(beameroption)$ +\setbeameroption{$beameroption$} +$endfor$ +% Prevent slide breaks in the middle of a paragraph +\widowpenalties 1 10000 +\raggedbottom +$if(section-titles)$ +\setbeamertemplate{part page}{ + \centering + \begin{beamercolorbox}[sep=16pt,center]{part title} + \usebeamerfont{part title}\insertpart\par + \end{beamercolorbox} +} +\setbeamertemplate{section page}{ + \centering + \begin{beamercolorbox}[sep=12pt,center]{part title} + \usebeamerfont{section title}\insertsection\par + \end{beamercolorbox} +} +\setbeamertemplate{subsection page}{ + \centering + \begin{beamercolorbox}[sep=8pt,center]{part title} + \usebeamerfont{subsection title}\insertsubsection\par + \end{beamercolorbox} +} +\AtBeginPart{ + \frame{\partpage} +} +\AtBeginSection{ + \ifbibliography + \else + \frame{\sectionpage} + \fi +} +\AtBeginSubsection{ + \frame{\subsectionpage} +} +$endif$ +$endif$ +$if(beamerarticle)$ +\usepackage{beamerarticle} % needs to be loaded first +$endif$ +\usepackage{amsmath,amssymb} +$if(linestretch)$ +\usepackage{setspace} +$else$ +% Use setspace anyway because we change the default line spacing. +% The spacing is changed early to affect the titlepage and the TOC. +\usepackage{setspace} +\setstretch{1.2} +$endif$ +\usepackage{iftex} +\ifPDFTeX + \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} + \usepackage[utf8]{inputenc} + \usepackage{textcomp} % provide euro and other symbols +\else % if luatex or xetex +$if(mathspec)$ + \ifXeTeX + \usepackage{mathspec} % this also loads fontspec + \else + \usepackage{unicode-math} % this also loads fontspec + \fi +$else$ + \usepackage{unicode-math} % this also loads fontspec +$endif$ + \defaultfontfeatures{Scale=MatchLowercase}$-- must come before Beamer theme + \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} +\fi +$if(fontfamily)$ +$else$ +$-- Set default font before Beamer theme so the theme can override it +\usepackage{lmodern} +$endif$ +$-- Set Beamer theme before user font settings so they can override theme +$if(beamer)$ +$if(theme)$ +\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$} +$endif$ +$if(colortheme)$ +\usecolortheme{$colortheme$} +$endif$ +$if(fonttheme)$ +\usefonttheme{$fonttheme$} +$endif$ +$if(mainfont)$ +\usefonttheme{serif} % use mainfont rather than sansfont for slide text +$endif$ +$if(innertheme)$ +\useinnertheme{$innertheme$} +$endif$ +$if(outertheme)$ +\useoutertheme{$outertheme$} +$endif$ +$endif$ +$-- User font settings (must come after default font and Beamer theme) +$if(fontfamily)$ +\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} +$endif$ +\ifPDFTeX\else + % xetex/luatex font selection +$if(mainfont)$ + \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} +$endif$ +$if(sansfont)$ + \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$} +$endif$ +$if(monofont)$ + \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$} +$endif$ +$for(fontfamilies)$ + \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$} +$endfor$ +$if(mathfont)$ +$if(mathspec)$ + \ifXeTeX + \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \else + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \fi +$else$ + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} +$endif$ +$endif$ +$if(CJKmainfont)$ + \ifXeTeX + \usepackage{xeCJK} + \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + $if(CJKsansfont)$ + \setCJKsansfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKsansfont$} + $endif$ + $if(CJKmonofont)$ + \setCJKmonofont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmonofont$} + $endif$ + \fi +$endif$ +$if(luatexjapresetoptions)$ + \ifLuaTeX + \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset} + \fi +$endif$ +$if(CJKmainfont)$ + \ifLuaTeX + \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec} + \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + \fi +$endif$ +\fi +$if(zero-width-non-joiner)$ +%% Support for zero-width non-joiner characters. +\makeatletter +\def\zerowidthnonjoiner{% + % Prevent ligatures and adjust kerning, but still support hyphenating. + \texorpdfstring{% + \TextOrMath{\nobreak\discretionary{-}{}{\kern.03em}% + \ifvmode\else\nobreak\hskip\z@skip\fi}{}% + }{}% +} +\makeatother +\ifPDFTeX + \DeclareUnicodeCharacter{200C}{\zerowidthnonjoiner} +\else + \catcode`^^^^200c=\active + \protected\def ^^^^200c{\zerowidthnonjoiner} +\fi +%% End of ZWNJ support +$endif$ +% Use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +\IfFileExists{microtype.sty}{% use microtype if available + \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype} + \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts +}{} +$if(indent)$ +$else$ +\makeatletter +\@ifundefined{KOMAClassName}{% if non-KOMA class + \IfFileExists{parskip.sty}{% + \usepackage{parskip} + }{% else + \setlength{\parindent}{0pt} + \setlength{\parskip}{6pt plus 2pt minus 1pt}} +}{% if KOMA class + \KOMAoptions{parskip=half}} +\makeatother +$endif$ +$if(verbatim-in-note)$ +\usepackage{fancyvrb} +$endif$ +\usepackage{xcolor} +\definecolor{default-linkcolor}{HTML}{A50000} +\definecolor{default-filecolor}{HTML}{A50000} +\definecolor{default-citecolor}{HTML}{4077C0} +\definecolor{default-urlcolor}{HTML}{4077C0} +$if(footnotes-pretty)$ +% load footmisc in order to customize footnotes (footmisc has to be loaded before hyperref, cf. https://tex.stackexchange.com/a/169124/144087) +\usepackage[hang,flushmargin,bottom,multiple]{footmisc} +\setlength{\footnotemargin}{0.8em} % set space between footnote nr and text +\setlength{\footnotesep}{\baselineskip} % set space between multiple footnotes +\setlength{\skip\footins}{0.3cm} % set space between page content and footnote +\setlength{\footskip}{0.9cm} % set space between footnote and page bottom +$endif$ +$if(geometry)$ +$if(beamer)$ +\geometry{$for(geometry)$$geometry$$sep$,$endfor$} +$else$ +\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +$else$ +$if(beamer)$ +$else$ +\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering,$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +$endif$ +$if(titlepage-logo)$ +\usepackage[export]{adjustbox} +\usepackage{graphicx} +$endif$ +$if(beamer)$ +\newif\ifbibliography +$endif$ +$if(listings)$ +\usepackage{listings} +\newcommand{\passthrough}[1]{#1} +\lstset{defaultdialect=[5.3]Lua} +\lstset{defaultdialect=[x86masm]Assembler} +$endif$ +$if(listings-no-page-break)$ +\usepackage{etoolbox} +\BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}} +\AfterEndEnvironment{lstlisting}{\end{minipage}\par\addvspace{\topskip}} +$endif$ +$if(lhs)$ +\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} +$endif$ +$if(highlighting-macros)$ +$highlighting-macros$ + +% Workaround/bugfix from jannick0. +% See https://github.com/jgm/pandoc/issues/4302#issuecomment-360669013) +% or https://github.com/Wandmalfarbe/pandoc-latex-template/issues/2 +% +% Redefine the verbatim environment 'Highlighting' to break long lines (with +% the help of fvextra). Redefinition is necessary because it is unlikely that +% pandoc includes fvextra in the default template. +\usepackage{fvextra} +\DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,fontsize=$if(code-block-font-size)$$code-block-font-size$$else$\small$endif$,commandchars=\\\{\}} + +$endif$ +$if(tables)$ +\usepackage{longtable,booktabs,array} +$if(multirow)$ +\usepackage{multirow} +$endif$ +\usepackage{calc} % for calculating minipage widths +$if(beamer)$ +\usepackage{caption} +% Make caption package work with longtable +\makeatletter +\def\fnum@table{\tablename~\thetable} +\makeatother +$else$ +% Correct order of tables after \paragraph or \subparagraph +\usepackage{etoolbox} +\makeatletter +\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{} +\makeatother +% Allow footnotes in longtable head/foot +\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}} +\makesavenoteenv{longtable} +$endif$ +$endif$ +% add backlinks to footnote references, cf. https://tex.stackexchange.com/questions/302266/make-footnote-clickable-both-ways +$if(footnotes-disable-backlinks)$ +$else$ +\usepackage{footnotebackref} +$endif$ +$if(graphics)$ +\usepackage{graphicx} +\makeatletter +\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} +\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} +\makeatother +% Scale images if necessary, so that they will not overflow the page +% margins by default, and it is still possible to overwrite the defaults +% using explicit options in \includegraphics[width, height, ...]{} +\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +% Set default figure placement to htbp +\makeatletter +% Make use of float-package and set default placement for figures to H. +% The option H means 'PUT IT HERE' (as opposed to the standard h option which means 'You may put it here if you like'). +\usepackage{float} +\floatplacement{figure}{$if(float-placement-figure)$$float-placement-figure$$else$H$endif$} +\makeatother +$endif$ +$if(svg)$ +\usepackage{svg} +$endif$ +$if(strikeout)$ +$-- also used for underline +\ifLuaTeX + \usepackage{luacolor} + \usepackage[soul]{lua-ul} +\else +\usepackage{soul} +$if(CJKmainfont)$ + \ifXeTeX + % soul's \st doesn't work for CJK: + \usepackage{xeCJKfntef} + \renewcommand{\st}[1]{\sout{#1}} + \fi +$endif$ +\fi +$endif$ +\setlength{\emergencystretch}{3em} % prevent overfull lines +\providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} +$if(numbersections)$ +\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} +$else$ +\setcounter{secnumdepth}{-\maxdimen} % remove section numbering +$endif$ +$if(subfigure)$ +\usepackage{subcaption} +$endif$ +$if(beamer)$ +$else$ +$if(block-headings)$ +% Make \paragraph and \subparagraph free-standing +\ifx\paragraph\undefined\else + \let\oldparagraph\paragraph + \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} +\fi +\ifx\subparagraph\undefined\else + \let\oldsubparagraph\subparagraph + \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} +\fi +$endif$ +$endif$ +$if(pagestyle)$ +\pagestyle{$pagestyle$} +$endif$ +$if(csl-refs)$ +% definitions for citeproc citations +\NewDocumentCommand\citeproctext{}{} +\NewDocumentCommand\citeproc{mm}{% + \begingroup\def\citeproctext{#2}\cite{#1}\endgroup} +\makeatletter + % allow citations to break across lines + \let\@cite@ofmt\@firstofone + % avoid brackets around text for \cite: + \def\@biblabel#1{} + \def\@cite#1#2{{#1\if@tempswa , #2\fi}} +\makeatother +\newlength{\cslhangindent} +\setlength{\cslhangindent}{1.5em} +\newlength{\csllabelwidth} +\setlength{\csllabelwidth}{3em} +\newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing + {\begin{list}{}{% + \setlength{\itemindent}{0pt} + \setlength{\leftmargin}{0pt} + \setlength{\parsep}{0pt} + % turn on hanging indent if param 1 is 1 + \ifodd #1 + \setlength{\leftmargin}{\cslhangindent} + \setlength{\itemindent}{-1\cslhangindent} + \fi + % set entry spacing + \setlength{\itemsep}{#2\baselineskip}}} + {\end{list}} +\usepackage{calc} +\newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}} +\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}} +\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}} +\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} +$endif$ +$if(lang)$ +\ifLuaTeX +\usepackage[bidi=basic]{babel} +\else +\usepackage[bidi=default]{babel} +\fi +$if(babel-lang)$ +\babelprovide[main,import]{$babel-lang$} +$if(mainfont)$ +\ifPDFTeX +\else +\babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} +\fi +$endif$ +$endif$ +$for(babel-otherlangs)$ +\babelprovide[import]{$babel-otherlangs$} +$endfor$ +$for(babelfonts/pairs)$ +\babelfont[$babelfonts.key$]{rm}{$babelfonts.value$} +$endfor$ +% get rid of language-specific shorthands (see #6817): +\let\LanguageShortHands\languageshorthands +\def\languageshorthands#1{} +$endif$ +$for(header-includes)$ +$header-includes$ +$endfor$ +\ifLuaTeX + \usepackage{selnolig} % disable illegal ligatures +\fi +$if(dir)$ +\ifPDFTeX + \TeXXeTstate=1 + \newcommand{\RL}[1]{\beginR #1\endR} + \newcommand{\LR}[1]{\beginL #1\endL} + \newenvironment{RTL}{\beginR}{\endR} + \newenvironment{LTR}{\beginL}{\endL} +\fi +$endif$ +$if(natbib)$ +\usepackage[$natbiboptions$]{natbib} +\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} +$endif$ +$if(biblatex)$ +\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} +$for(bibliography)$ +\addbibresource{$bibliography$} +$endfor$ +$endif$ +$if(nocite-ids)$ +\nocite{$for(nocite-ids)$$it$$sep$, $endfor$} +$endif$ +$if(csquotes)$ +\usepackage{csquotes} +$endif$ +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available +\urlstyle{$if(urlstyle)$$urlstyle$$else$same$endif$} +$if(links-as-notes)$ +% Make links footnotes instead of hotlinks: +\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}} +$endif$ +$if(verbatim-in-note)$ +\VerbatimFootnotes % allow verbatim text in footnotes +$endif$ +\hypersetup{ +$if(title-meta)$ + pdftitle={$title-meta$}, +$endif$ +$if(author-meta)$ + pdfauthor={$author-meta$}, +$endif$ +$if(lang)$ + pdflang={$lang$}, +$endif$ +$if(subject)$ + pdfsubject={$subject$}, +$endif$ +$if(keywords)$ + pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, +$endif$ +$if(colorlinks)$ + colorlinks=true, + linkcolor={$if(linkcolor)$$linkcolor$$else$default-linkcolor$endif$}, + filecolor={$if(filecolor)$$filecolor$$else$default-filecolor$endif$}, + citecolor={$if(citecolor)$$citecolor$$else$default-citecolor$endif$}, + urlcolor={$if(urlcolor)$$urlcolor$$else$default-urlcolor$endif$}, +$else$ + hidelinks, +$endif$ + breaklinks=true, + pdfcreator={LaTeX via pandoc with the Eisvogel template}} +$if(title)$ +\title{$title$$if(thanks)$\thanks{$thanks$}$endif$} +$endif$ +$if(subtitle)$ +$if(beamer)$ +$else$ +\usepackage{etoolbox} +\makeatletter +\providecommand{\subtitle}[1]{% add subtitle to \maketitle + \apptocmd{\@title}{\par {\large #1 \par}}{}{} +} +\makeatother +$endif$ +\subtitle{$subtitle$} +$endif$ +\author{$for(author)$$author$$sep$ \and $endfor$} +\date{$date$} +$if(beamer)$ +$if(institute)$ +\institute{$for(institute)$$institute$$sep$ \and $endfor$} +$endif$ +$if(titlegraphic)$ +\titlegraphic{\includegraphics{$titlegraphic$}} +$endif$ +$if(logo)$ +\logo{\includegraphics{$logo$}} +$endif$ +$endif$ + + + +%% +%% added +%% + +$if(page-background)$ +\usepackage[pages=all]{background} +$endif$ + +% +% for the background color of the title page +% +$if(titlepage)$ +\usepackage{pagecolor} +\usepackage{afterpage} +$if(titlepage-background)$ +\usepackage{tikz} +$endif$ +$if(geometry)$ +$else$ +\usepackage[margin=2.5cm,includehead=true,includefoot=true,centering]{geometry} +$endif$ +$endif$ + +% +% break urls +% +\PassOptionsToPackage{hyphens}{url} + +% +% When using babel or polyglossia with biblatex, loading csquotes is recommended +% to ensure that quoted texts are typeset according to the rules of your main language. +% +\usepackage{csquotes} + +% +% captions +% +\definecolor{caption-color}{HTML}{777777} +$if(beamer)$ +$else$ +\usepackage[font={stretch=1.2}, textfont={color=caption-color}, position=top, skip=4mm, labelfont=bf, singlelinecheck=false, justification=$if(caption-justification)$$caption-justification$$else$raggedright$endif$]{caption} +\setcapindent{0em} +$endif$ + +% +% blockquote +% +\definecolor{blockquote-border}{RGB}{221,221,221} +\definecolor{blockquote-text}{RGB}{119,119,119} +\usepackage{mdframed} +\newmdenv[rightline=false,bottomline=false,topline=false,linewidth=3pt,linecolor=blockquote-border,skipabove=\parskip]{customblockquote} +\renewenvironment{quote}{\begin{customblockquote}\list{}{\rightmargin=0em\leftmargin=0em}% +\item\relax\color{blockquote-text}\ignorespaces}{\unskip\unskip\endlist\end{customblockquote}} + +% +% Source Sans Pro as the default font family +% Source Code Pro for monospace text +% +% 'default' option sets the default +% font family to Source Sans Pro, not \sfdefault. +% +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + $if(fontfamily)$ + $else$ + \usepackage[default]{sourcesanspro} + \usepackage{sourcecodepro} + $endif$ +\else % if not pdftex + $if(mainfont)$ + $else$ + \usepackage[default]{sourcesanspro} + \usepackage{sourcecodepro} + + % XeLaTeX specific adjustments for straight quotes: https://tex.stackexchange.com/a/354887 + % This issue is already fixed (see https://github.com/silkeh/latex-sourcecodepro/pull/5) but the + % fix is still unreleased. + % TODO: Remove this workaround when the new version of sourcecodepro is released on CTAN. + \ifxetex + \makeatletter + \defaultfontfeatures[\ttfamily] + { Numbers = \sourcecodepro@figurestyle, + Scale = \SourceCodePro@scale, + Extension = .otf } + \setmonofont + [ UprightFont = *-\sourcecodepro@regstyle, + ItalicFont = *-\sourcecodepro@regstyle It, + BoldFont = *-\sourcecodepro@boldstyle, + BoldItalicFont = *-\sourcecodepro@boldstyle It ] + {SourceCodePro} + \makeatother + \fi + $endif$ +\fi + +% +% heading color +% +\definecolor{heading-color}{RGB}{40,40,40} +$if(beamer)$ +$else$ +\addtokomafont{section}{\color{heading-color}} +$endif$ +% When using the classes report, scrreprt, book, +% scrbook or memoir, uncomment the following line. +%\addtokomafont{chapter}{\color{heading-color}} + +% +% variables for title, author and date +% +$if(beamer)$ +$else$ +\usepackage{titling} +\title{$title$} +\author{$for(author)$$author$$sep$, $endfor$} +\date{$date$} +$endif$ + +% +% tables +% +$if(tables)$ + +\definecolor{table-row-color}{HTML}{F5F5F5} +\definecolor{table-rule-color}{HTML}{999999} + +%\arrayrulecolor{black!40} +\arrayrulecolor{table-rule-color} % color of \toprule, \midrule, \bottomrule +\setlength\heavyrulewidth{0.3ex} % thickness of \toprule, \bottomrule +\renewcommand{\arraystretch}{1.3} % spacing (padding) + +$if(table-use-row-colors)$ +% Unfortunately the colored cells extend beyond the edge of the +% table because pandoc uses @-expressions (@{}) like so: +% +% \begin{longtable}[]{@{}ll@{}} +% \end{longtable} +% +% https://en.wikibooks.org/wiki/LaTeX/Tables#.40-expressions +\usepackage{etoolbox} +\AtBeginEnvironment{longtable}{\rowcolors{2}{}{table-row-color!100}} +\preto{\toprule}{\hiderowcolors}{}{} +\appto{\endhead}{\showrowcolors}{}{} +\appto{\endfirsthead}{\showrowcolors}{}{} +$endif$ +$endif$ + +% +% remove paragraph indentation +% +\setlength{\parindent}{0pt} +\setlength{\parskip}{6pt plus 2pt minus 1pt} +\setlength{\emergencystretch}{3em} % prevent overfull lines + +% +% +% Listings +% +% + +$if(listings)$ + +% +% general listing colors +% +\definecolor{listing-background}{HTML}{F7F7F7} +\definecolor{listing-rule}{HTML}{B3B2B3} +\definecolor{listing-numbers}{HTML}{B3B2B3} +\definecolor{listing-text-color}{HTML}{000000} +\definecolor{listing-keyword}{HTML}{435489} +\definecolor{listing-keyword-2}{HTML}{1284CA} % additional keywords +\definecolor{listing-keyword-3}{HTML}{9137CB} % additional keywords +\definecolor{listing-identifier}{HTML}{435489} +\definecolor{listing-string}{HTML}{00999A} +\definecolor{listing-comment}{HTML}{8E8E8E} + +\lstdefinestyle{eisvogel_listing_style}{ + language = java, +$if(listings-disable-line-numbers)$ + xleftmargin = 0.6em, + framexleftmargin = 0.4em, +$else$ + numbers = left, + xleftmargin = 2.7em, + framexleftmargin = 2.5em, +$endif$ + backgroundcolor = \color{listing-background}, + basicstyle = \color{listing-text-color}\linespread{1.0}% + \lst@ifdisplaystyle% + $if(code-block-font-size)$$code-block-font-size$$else$\small$endif$% + \fi\ttfamily{}, + breaklines = true, + frame = single, + framesep = 0.19em, + rulecolor = \color{listing-rule}, + frameround = ffff, + tabsize = 4, + numberstyle = \color{listing-numbers}, + aboveskip = 1.0em, + belowskip = 0.1em, + abovecaptionskip = 0em, + belowcaptionskip = 1.0em, + keywordstyle = {\color{listing-keyword}\bfseries}, + keywordstyle = {[2]\color{listing-keyword-2}\bfseries}, + keywordstyle = {[3]\color{listing-keyword-3}\bfseries\itshape}, + sensitive = true, + identifierstyle = \color{listing-identifier}, + commentstyle = \color{listing-comment}, + stringstyle = \color{listing-string}, + showstringspaces = false, + escapeinside = {/*@}{@*/}, % Allow LaTeX inside these special comments + literate = + {á}{{\'a}}1 {é}{{\'e}}1 {Ã}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 + {Ã}{{\'A}}1 {É}{{\'E}}1 {Ã}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 + {à }{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 + {À}{{\`A}}1 {È}{{\`E}}1 {ÃŒ}{{\`I}}1 {Ã’}{{\`O}}1 {Ù}{{\`U}}1 + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ã}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 + {Â}{{\^A}}1 {Ê}{{\^E}}1 {ÃŽ}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 + {Å“}{{\oe}}1 {Å’}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 + {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {Ã¥}{{\r a}}1 {Ã…}{{\r A}}1 + {€}{{\EUR}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1 + {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1 + {…}{{\ldots}}1 {≥}{{>=}}1 {≤}{{<=}}1 {„}{{\glqq}}1 {“}{{\grqq}}1 + {â€}{{''}}1 +} +\lstset{style=eisvogel_listing_style} + +% +% Java (Java SE 12, 2019-06-22) +% +\lstdefinelanguage{Java}{ + morekeywords={ + % normal keywords (without data types) + abstract,assert,break,case,catch,class,continue,default, + do,else,enum,exports,extends,final,finally,for,if,implements, + import,instanceof,interface,module,native,new,package,private, + protected,public,requires,return,static,strictfp,super,switch, + synchronized,this,throw,throws,transient,try,volatile,while, + % var is an identifier + var + }, + morekeywords={[2] % data types + % primitive data types + boolean,byte,char,double,float,int,long,short, + % String + String, + % primitive wrapper types + Boolean,Byte,Character,Double,Float,Integer,Long,Short + % number types + Number,AtomicInteger,AtomicLong,BigDecimal,BigInteger,DoubleAccumulator,DoubleAdder,LongAccumulator,LongAdder,Short, + % other + Object,Void,void + }, + morekeywords={[3] % literals + % reserved words for literal values + null,true,false, + }, + sensitive, + morecomment = [l]//, + morecomment = [s]{/*}{*/}, + morecomment = [s]{/**}{*/}, + morestring = [b]", + morestring = [b]', +} + +\lstdefinelanguage{XML}{ + morestring = [b]", + moredelim = [s][\bfseries\color{listing-keyword}]{<}{\ }, + moredelim = [s][\bfseries\color{listing-keyword}]{</}{>}, + moredelim = [l][\bfseries\color{listing-keyword}]{/>}, + moredelim = [l][\bfseries\color{listing-keyword}]{>}, + morecomment = [s]{<?}{?>}, + morecomment = [s]{<!--}{-->}, + commentstyle = \color{listing-comment}, + stringstyle = \color{listing-string}, + identifierstyle = \color{listing-identifier} +} +$endif$ + +% +% header and footer +% +$if(beamer)$ +$else$ +$if(disable-header-and-footer)$ +$else$ +\usepackage[headsepline,footsepline]{scrlayer-scrpage} + +\newpairofpagestyles{eisvogel-header-footer}{ + \clearpairofpagestyles + \ihead*{$if(header-left)$$header-left$$else$$title$$endif$} + \chead*{$if(header-center)$$header-center$$else$$endif$} + \ohead*{$if(header-right)$$header-right$$else$$date$$endif$} + \ifoot*{$if(footer-left)$$footer-left$$else$$for(author)$$author$$sep$, $endfor$$endif$} + \cfoot*{$if(footer-center)$$footer-center$$else$$endif$} + \ofoot*{$if(footer-right)$$footer-right$$else$\thepage$endif$} + \addtokomafont{pageheadfoot}{\upshape} +} +\pagestyle{eisvogel-header-footer} + +$if(book)$ +\deftripstyle{ChapterStyle}{}{}{}{}{\pagemark}{} +\renewcommand*{\chapterpagestyle}{ChapterStyle} +$endif$ + +$if(page-background)$ +\backgroundsetup{ +scale=1, +color=black, +opacity=$if(page-background-opacity)$$page-background-opacity$$else$0.2$endif$, +angle=0, +contents={% + \includegraphics[width=\paperwidth,height=\paperheight]{$page-background$} + }% +} +$endif$ +$endif$ +$endif$ + +%% +%% end added +%% + +\begin{document} + +%% +%% begin titlepage +%% +$if(beamer)$ +$else$ +$if(titlepage)$ +\begin{titlepage} +$if(titlepage-background)$ +\newgeometry{top=2cm, right=4cm, bottom=3cm, left=4cm} +$else$ +\newgeometry{left=6cm} +$endif$ +$if(titlepage-color)$ +\definecolor{titlepage-color}{HTML}{$titlepage-color$} +\newpagecolor{titlepage-color}\afterpage{\restorepagecolor} +$endif$ +$if(titlepage-background)$ +\tikz[remember picture,overlay] \node[inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{$titlepage-background$}}; +$endif$ +\newcommand{\colorRule}[3][black]{\textcolor[HTML]{#1}{\rule{#2}{#3}}} +\begin{flushleft} +\noindent +\\[-1em] +\color[HTML]{$if(titlepage-text-color)$$titlepage-text-color$$else$5F5F5F$endif$} +\makebox[0pt][l]{\colorRule[$if(titlepage-rule-color)$$titlepage-rule-color$$else$435488$endif$]{1.3\textwidth}{$if(titlepage-rule-height)$$titlepage-rule-height$$else$4$endif$pt}} +\par +\noindent + +$if(titlepage-background)$ +% The titlepage with a background image has other text spacing and text size +{ + \setstretch{2} + \vfill + \vskip -8em + \noindent {\huge \textbf{\textsf{$title$}}} + $if(subtitle)$ + \vskip 1em + {\Large \textsf{$subtitle$}} + $endif$ + \vskip 2em + \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$} \vskip 0.6em \textsf{$date$}} + \vfill +} +$else$ +{ + \setstretch{1.4} + \vfill + \noindent {\huge \textbf{\textsf{$title$}}} + $if(subtitle)$ + \vskip 1em + {\Large \textsf{$subtitle$}} + $endif$ + \vskip 2em + \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}} + \vfill +} +$endif$ + +$if(titlepage-logo)$ +\noindent +\includegraphics[width=$if(logo-width)$$logo-width$$else$35mm$endif$, left]{$titlepage-logo$} +$endif$ + +$if(titlepage-background)$ +$else$ +\textsf{$date$} +$endif$ +\end{flushleft} +\end{titlepage} +\restoregeometry +\pagenumbering{arabic} +$endif$ +$endif$ + +%% +%% end titlepage +%% + +$if(has-frontmatter)$ +\frontmatter +$endif$ +$if(title)$ +$if(beamer)$ +\frame{\titlepage} +% don't generate the default title +% $else$ +% \maketitle +$endif$ +$if(abstract)$ +\begin{abstract} +$abstract$ +\end{abstract} +$endif$ +$endif$ + +$if(first-chapter)$ +\setcounter{chapter}{$first-chapter$} +\addtocounter{chapter}{-1} +$endif$ + +$for(include-before)$ +$include-before$ + +$endfor$ +$if(toc)$ +$if(toc-title)$ +\renewcommand*\contentsname{$toc-title$} +$endif$ +$if(beamer)$ +\begin{frame}[allowframebreaks] +$if(toc-title)$ + \frametitle{$toc-title$} +$endif$ + \tableofcontents[hideallsubsections] +\end{frame} +$if(toc-own-page)$ +\newpage +$endif$ +$else$ +{ +$if(colorlinks)$ +\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$} +$endif$ +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +$if(toc-own-page)$ +\newpage +$endif$ +} +$endif$ +$endif$ +$if(lof)$ +\listoffigures +$endif$ +$if(lot)$ +\listoftables +$endif$ +$if(linestretch)$ +\setstretch{$linestretch$} +$endif$ +$if(has-frontmatter)$ +\mainmatter +$endif$ +$body$ + +$if(has-frontmatter)$ +\backmatter +$endif$ +$if(natbib)$ +$if(bibliography)$ +$if(biblio-title)$ +$if(has-chapters)$ +\renewcommand\bibname{$biblio-title$} +$else$ +\renewcommand\refname{$biblio-title$} +$endif$ +$endif$ +$if(beamer)$ +\begin{frame}[allowframebreaks]{$biblio-title$} + \bibliographytrue +$endif$ + \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} +$if(beamer)$ +\end{frame} +$endif$ + +$endif$ +$endif$ +$if(biblatex)$ +$if(beamer)$ +\begin{frame}[allowframebreaks]{$biblio-title$} + \bibliographytrue + \printbibliography[heading=none] +\end{frame} +$else$ +\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ +$endif$ + +$endif$ +$for(include-after)$ +$include-after$ + +$endfor$ +\end{document} diff --git a/learning-markdown/example/tex_templates/header.tex b/learning-markdown/example/tex_templates/header.tex new file mode 100644 index 0000000000000000000000000000000000000000..1621fb2651db49b0a548bbf787f355acfc4fc8ee --- /dev/null +++ b/learning-markdown/example/tex_templates/header.tex @@ -0,0 +1,6 @@ +\usepackage[margin=3cm]{geometry} +\usepackage{lineno} +\usepackage{setspace} +\doublespacing +%\singlespacing +%\onehalfspacing diff --git a/learning-markdown/example/tex_templates/ieee.csl b/learning-markdown/example/tex_templates/ieee.csl new file mode 100644 index 0000000000000000000000000000000000000000..ce6e1806f78bdcbc4bd9ddcaa0b09571de8f4d1b --- /dev/null +++ b/learning-markdown/example/tex_templates/ieee.csl @@ -0,0 +1,386 @@ +<?xml version="1.0" encoding="utf-8"?> +<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only"> + <info> + <title>IEEE</title> + <id>http://www.zotero.org/styles/ieee</id> + <link href="http://www.zotero.org/styles/ieee" rel="self"/> + <link href="https://ieeeauthorcenter.ieee.org/wp-content/uploads/IEEE-Reference-Guide.pdf" rel="documentation"/> + <link href="https://journals.ieeeauthorcenter.ieee.org/your-role-in-article-production/ieee-editorial-style-manual/" rel="documentation"/> + <author> + <name>Michael Berkowitz</name> + <email>mberkowi@gmu.edu</email> + </author> + <contributor> + <name>Julian Onions</name> + <email>julian.onions@gmail.com</email> + </contributor> + <contributor> + <name>Rintze Zelle</name> + <uri>http://twitter.com/rintzezelle</uri> + </contributor> + <contributor> + <name>Stephen Frank</name> + <uri>http://www.zotero.org/sfrank</uri> + </contributor> + <contributor> + <name>Sebastian Karcher</name> + </contributor> + <contributor> + <name>Giuseppe Silano</name> + <email>g.silano89@gmail.com</email> + <uri>http://giuseppesilano.net</uri> + </contributor> + <contributor> + <name>Patrick O'Brien</name> + </contributor> + <category citation-format="numeric"/> + <category field="engineering"/> + <category field="generic-base"/> + <summary>IEEE style as per the 2018 guidelines, V 11.12.2018.</summary> + <updated>2020-03-28T21:02:10+00:00</updated> + <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights> + </info> + <locale xml:lang="en"> + <terms> + <term name="chapter" form="short">ch.</term> + <term name="presented at">presented at the</term> + <term name="available at">available</term> + </terms> + </locale> + <!-- Macros --> + <macro name="status"> + <choose> + <if variable="page issue volume" match="none"> + <text variable="status" text-case="capitalize-first" suffix="" font-weight="bold"/> + </if> + </choose> + </macro> + <macro name="edition"> + <choose> + <if type="bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="any"> + <choose> + <if is-numeric="edition"> + <group delimiter=" "> + <number variable="edition" form="ordinal"/> + <text term="edition" form="short"/> + </group> + </if> + <else> + <text variable="edition" text-case="capitalize-first" suffix="."/> + </else> + </choose> + </if> + </choose> + </macro> + <macro name="issued"> + <choose> + <if type="article-journal report" match="any"> + <date variable="issued"> + <date-part name="month" form="short" suffix=" "/> + <date-part name="year" form="long"/> + </date> + </if> + <else-if type="bill book chapter graphic legal_case legislation motion_picture song thesis" match="any"> + <date variable="issued"> + <date-part name="year" form="long"/> + </date> + </else-if> + <else-if type="paper-conference" match="any"> + <date variable="issued"> + <date-part name="month" form="short"/> + <date-part name="year" prefix=" "/> + </date> + </else-if> + <else> + <date variable="issued"> + <date-part name="month" form="short" suffix=" "/> + <date-part name="day" form="numeric-leading-zeros" suffix=", "/> + <date-part name="year"/> + </date> + </else> + </choose> + </macro> + <macro name="author"> + <names variable="author"> + <name and="text" et-al-min="7" et-al-use-first="1" initialize-with=". "/> + <label form="short" prefix=", " text-case="capitalize-first"/> + <et-al font-style="italic"/> + <substitute> + <names variable="editor"/> + <names variable="translator"/> + </substitute> + </names> + </macro> + <macro name="editor"> + <names variable="editor"> + <name initialize-with=". " delimiter=", " and="text"/> + <label form="short" prefix=", " text-case="capitalize-first"/> + </names> + </macro> + <macro name="locators"> + <group delimiter=", "> + <text macro="edition"/> + <group delimiter=" "> + <text term="volume" form="short"/> + <number variable="volume" form="numeric"/> + </group> + <group delimiter=" "> + <number variable="number-of-volumes" form="numeric"/> + <text term="volume" form="short" plural="true"/> + </group> + <group delimiter=" "> + <text term="issue" form="short"/> + <number variable="issue" form="numeric"/> + </group> + </group> + </macro> + <macro name="title"> + <choose> + <if type="bill book graphic legal_case legislation motion_picture song" match="any"> + <text variable="title" font-style="italic"/> + </if> + <else> + <text variable="title" quotes="true"/> + </else> + </choose> + </macro> + <macro name="publisher"> + <choose> + <if type="bill book chapter graphic legal_case legislation motion_picture paper-conference song" match="any"> + <group delimiter=": "> + <text variable="publisher-place"/> + <text variable="publisher"/> + </group> + </if> + <else> + <group delimiter=", "> + <text variable="publisher"/> + <text variable="publisher-place"/> + </group> + </else> + </choose> + </macro> + <macro name="event"> + <choose> + <if type="paper-conference speech" match="any"> + <choose> + <!-- Published Conference Paper --> + <if variable="container-title"> + <group delimiter=", "> + <group delimiter=" "> + <text term="in"/> + <text variable="container-title" font-style="italic"/> + </group> + <text variable="event-place"/> + </group> + </if> + <!-- Unpublished Conference Paper --> + <else> + <group delimiter=", "> + <group delimiter=" "> + <text term="presented at"/> + <text variable="event"/> + </group> + <text variable="event-place"/> + </group> + </else> + </choose> + </if> + </choose> + </macro> + <macro name="access"> + <choose> + <if type="webpage post post-weblog" match="any"> + <choose> + <if variable="URL"> + <group delimiter=" "> + <text variable="URL"/> + <group delimiter=" " prefix="(" suffix=")"> + <text term="accessed"/> + <date variable="accessed"> + <date-part name="month" form="short" strip-periods="false"/> + <date-part name="day" form="numeric-leading-zeros" prefix=" " suffix=", "/> + <date-part name="year" form="long"/> + </date> + </group> + </group> + </if> + </choose> + </if> + <else-if match="any" variable="DOI"> + <text variable="DOI" prefix="doi: "/> + </else-if> + <else> + <group delimiter=". "> + <group delimiter=": "> + <text term="accessed" text-case="capitalize-first"/> + <date variable="accessed"> + <date-part name="month" form="short" suffix=" "/> + <date-part name="day" form="numeric-leading-zeros" suffix=", "/> + <date-part name="year"/> + </date> + </group> + <text term="online" prefix="[" suffix="]" text-case="capitalize-first"/> + <group delimiter=": "> + <text term="available at" text-case="capitalize-first"/> + <text variable="URL"/> + </group> + </group> + </else> + </choose> + </macro> + <macro name="page"> + <group> + <label variable="page" form="short" suffix=" "/> + <text variable="page"/> + </group> + </macro> + <macro name="citation-locator"> + <group delimiter=" "> + <choose> + <if locator="page"> + <label variable="locator" form="short"/> + </if> + <else> + <label variable="locator" form="short" text-case="capitalize-first"/> + </else> + </choose> + <text variable="locator"/> + </group> + </macro> + <!-- Citation --> + <citation collapse="citation-number"> + <sort> + <key variable="citation-number"/> + </sort> + <layout delimiter=", "> + <group prefix="[" suffix="]" delimiter=", "> + <text variable="citation-number"/> + <text macro="citation-locator"/> + </group> + </layout> + </citation> + <!-- Bibliography --> + <bibliography entry-spacing="0" second-field-align="flush"> + <layout suffix="."> + <!-- Citation Number --> + <text variable="citation-number" prefix="[" suffix="]"/> + <!-- Author(s) --> + <text macro="author" suffix=", "/> + <!-- Rest of Citation --> + <choose> + <!-- Specific Formats --> + <if type="article-journal"> + <group delimiter=", "> + <text macro="title"/> + <text variable="container-title" font-style="italic" form="short"/> + <text macro="locators"/> + <text macro="page"/> + <text macro="issued"/> + <text macro="status"/> + <text macro="access"/> + </group> + </if> + <else-if type="paper-conference speech" match="any"> + <group delimiter=", "> + <text macro="title"/> + <text macro="event"/> + <text macro="issued"/> + <text macro="locators"/> + <text macro="page"/> + <text macro="status"/> + <text macro="access"/> + </group> + </else-if> + <else-if type="report"> + <group delimiter=". "> + <group delimiter=", "> + <text macro="title"/> + <text macro="publisher"/> + <group delimiter=" "> + <text variable="genre"/> + <text variable="number"/> + </group> + <text macro="issued"/> + </group> + <text macro="access"/> + </group> + </else-if> + <else-if type="thesis"> + <group delimiter=", "> + <text macro="title"/> + <text variable="genre"/> + <text macro="publisher"/> + <text macro="issued"/> + </group> + </else-if> + <else-if type="webpage post-weblog post" match="any"> + <group delimiter=", " suffix=". "> + <text macro="title"/> + <text variable="container-title" font-style="italic"/> + <text macro="issued"/> + </group> + <text macro="access"/> + </else-if> + <else-if type="patent"> + <group delimiter=", "> + <text macro="title"/> + <text variable="number"/> + <text macro="issued"/> + </group> + </else-if> + <!-- Generic/Fallback Formats --> + <else-if type="bill book graphic legal_case legislation motion_picture report song" match="any"> + <group delimiter=", " suffix=". "> + <text macro="title"/> + <text macro="locators"/> + </group> + <group delimiter=", "> + <text macro="publisher"/> + <text macro="issued"/> + <text macro="page"/> + </group> + </else-if> + <else-if type="article-magazine article-newspaper broadcast interview manuscript map patent personal_communication song speech thesis webpage" match="any"> + <group delimiter=", "> + <text macro="title"/> + <text variable="container-title" font-style="italic"/> + <text macro="locators"/> + <text macro="publisher"/> + <text macro="page"/> + <text macro="issued"/> + </group> + </else-if> + <else-if type="chapter paper-conference" match="any"> + <group delimiter=", " suffix=", "> + <text macro="title"/> + <group delimiter=" "> + <text term="in"/> + <text variable="container-title" font-style="italic"/> + </group> + <text macro="locators"/> + </group> + <text macro="editor" suffix=" "/> + <group delimiter=", "> + <text macro="publisher"/> + <text macro="issued"/> + <text macro="page"/> + </group> + </else-if> + <else> + <group delimiter=", " suffix=". "> + <text macro="title"/> + <text variable="container-title" font-style="italic"/> + <text macro="locators"/> + </group> + <group delimiter=", "> + <text macro="publisher"/> + <text macro="page"/> + <text macro="issued"/> + <text macro="access"/> + </group> + </else> + </choose> + </layout> + </bibliography> +</style> diff --git a/learning-markdown/example/tex_templates/letter.latex b/learning-markdown/example/tex_templates/letter.latex new file mode 100644 index 0000000000000000000000000000000000000000..dcfbdc59f0389f9611d9f430e4cc4fca1ad3b050 --- /dev/null +++ b/learning-markdown/example/tex_templates/letter.latex @@ -0,0 +1,162 @@ +%!TEX TS-program = xelatex +%!TEX encoding = UTF-8 Unicode + +\documentclass[$fontsize$, a4paper]{article} +\usepackage{fontspec} + +% LAYOUT +%-------------------------------- +\usepackage{geometry} +\geometry{$geometry$} + +% No page numbers +\pagenumbering{gobble} + +% Left align +\usepackage[document]{ragged2e} + +% Trim excessive whitespace before lists +\usepackage{enumitem} +\setlist{nolistsep} + +$if(page-background)$ +\usepackage[pages=all]{background} +$endif$ + +$if(letterhead)$ +\usepackage{wallpaper} +\addtolength{\wpXoffset}{-5cm} +\addtolength{\wpYoffset}{11cm} +% \ThisULCornerWallPaper{1}{letterhead-front.pdf} % Uncomment to include a different letterhead on the first page +\CenterWallPaper{0.2}{$letterhead$} +$endif$ + +\usepackage{fontawesome5} + +% LANGUAGE +%-------------------------------- +$if(lang)$ +\usepackage{polyglossia} +\setmainlanguage{$lang$} +$endif$ + +% TYPOGRAPHY +%-------------------------------- +\usepackage{xunicode} +\usepackage{xltxtra} +\usepackage[protrusion=true,final]{microtype} + +% converts LaTeX specials (quotes, dashes etc.) to Unicode +\defaultfontfeatures{Mapping=tex-text} +\setromanfont [Ligatures={Common}, Numbers={OldStyle}]{$mainfont$} +\setsansfont[Scale=0.9]{$altfont$} +\setmonofont[Scale=0.8]{$monofont$} + +% Set paragraph break +\setlength{\parskip}{1em} + +% Custom ampersand +\newcommand{\amper}{{\fontspec[Scale=.95]{$mainfont$}\selectfont\itshape\&}} + +$if(mainfont)$ + \setmainfont{$mainfont$} +$endif$ +$if(altfont)$ + \setsansfont{$altfont$} +$endif$ + +% Command required by how Pandoc handles the list conversion +\providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} + +% PDF SETUP +%-------------------------------- +\usepackage[xetex, bookmarks, colorlinks, breaklinks]{hyperref} +\hypersetup +{ + pdfauthor={$author$}, + pdfsubject={$subject$}, + pdftitle={$subject$}, + colorlinks,breaklinks, + filecolor=black, + urlcolor=[rgb]{0.117,0.682,0.858}, + linkcolor=[rgb]{0.117,0.682,0.858}, + linkcolor=[rgb]{0.117,0.682,0.858}, + citecolor=[rgb]{0.117,0.682,0.858} +} + +% To display custom date in the example +$if(customdate)$ +\usepackage[$lang$]{datetime2} +\DTMsavedate{customdate}{$customdate$} +$endif$ + +$if(page-background)$ +\backgroundsetup{ +scale=1, +color=black, +opacity=$if(page-background-opacity)$$page-background-opacity$$else$0.2$endif$, +angle=0, +contents={% + \includegraphics[width=\paperwidth,height=\paperheight]{$page-background$} + }% +} +$endif$ + +% remove section numbering +\setcounter{secnumdepth}{-\maxdimen} + +% DOCUMENT +%-------------------------------- +\begin{document} +\small + +\textsc{\textbf{$author$}\\$affiliation1$}\\ \textsc{$affiliation2$}\\ +$for(from)$ +\textsc{$from$} +$endfor$ + +%$for(contact)$ +%\textsc{$contact$} +%$endfor$ + +\vspace{2em} + +\normalsize \sffamily +$for(to)$ +$to$\\ +$endfor$ + +%\vspace{3em} + +\rmfamily +\begin{flushright} + $city$ \textbullet{} $if(customdate)$\DTMusedate{customdate}$else$\today$endif$ +\end{flushright} + +%\vspace{1em} + +%$if(subject)$ +%\textbf{$subject$} +%$endif$ + +%\vspace{1em} + +%$salutation$ $toname$: + +$body$ + +$if(signature)$ + \begin{FlushRight} + \IfFileExists{$signature$} + { + \includegraphics[height=5.5\baselineskip]{$signature$} \par + } + { + \vspace{5.5\baselineskip} + } + $author$ + \end{FlushRight} +$endif$ + +\end{document} diff --git a/learning-markdown/example/tex_templates/manuscript-SI.tex b/learning-markdown/example/tex_templates/manuscript-SI.tex new file mode 100644 index 0000000000000000000000000000000000000000..2982a3b3872fbf07983cd65065ef87e2147709fe --- /dev/null +++ b/learning-markdown/example/tex_templates/manuscript-SI.tex @@ -0,0 +1,33 @@ +% Master SI file + +% Documentclass +\documentclass[11pt, SI]{templates/pi/pi-article} + +% Graphics +\graphicspath{ {figs/} } + +% Metadata +\input{templates/metadata} + +% Preamble +\input{templates/pi/pi-preamble} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +% Doc input +\input{templates/pi/pi-doc} + +\pagebreak +\tableofcontents + +\pagebreak +\input{docs/SI/.si-content} + +\pagebreak +\bibliography{refs/biblio} + +% End doc +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/learning-markdown/example/tex_templates/manuscript-pd.tex b/learning-markdown/example/tex_templates/manuscript-pd.tex new file mode 100644 index 0000000000000000000000000000000000000000..9db07eec7d91da89db99d63c692294a8b99f41a5 --- /dev/null +++ b/learning-markdown/example/tex_templates/manuscript-pd.tex @@ -0,0 +1,60 @@ +% Alt master file to be processed with Pandoc +% Requires pandoc version 2.11+ + +% Documentclass +\documentclass[9pt, twocolumn, lineno]{templates/pi/pi-article} + +% Graphics +\graphicspath{ {figs/} } +\DeclareGraphicsExtensions{.png} + +% Metadata +\input{templates/metadata} + +% Preamble +\input{templates/pi/pi-preamble} + +% Fixes for Pandoc conversion +% +% Chemical equations are surrounded by math +\renewcommand{\ce}[1]{\(\\ce{#1}\)} +% +% copyright added +\renewcommand{\textcopyright}[0]{©} +% +% Remaking the figure* environment to a regular figure environment +\newenvironment{widefigure}{\begin{figure}}{\end{figure}} +% +% Remaking the table* environment to a regular table environment +\newenvironment{widetable}{\begin{table}}{\end{table}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +% Doc input +\input{templates/pi/pi-doc} + +% Abstract +\section{Abstract} +\input{docs/0-abstract.tex} + +% Content +\input{docs/.content.tex} + +% Doc end input +\section*{Acknowledgements} +\input{docs/x-acknowledgements} + +\section*{Author contributions} +\input{docs/y-contributions} + +% SI at the end +\input{docs/SI/.si-content.tex} + +\section{References} +\bibliography{refs/biblio} + +% End doc +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/learning-markdown/example/tex_templates/manuscript.tex b/learning-markdown/example/tex_templates/manuscript.tex new file mode 100644 index 0000000000000000000000000000000000000000..bc1e9099fb4cedf49af16b39b518e1b1d1a26e98 --- /dev/null +++ b/learning-markdown/example/tex_templates/manuscript.tex @@ -0,0 +1,73 @@ +% Master file + +% Documentclass +\def\style{0} + +\if\style0 % My own publication template + \documentclass[9pt, twocolumn, toc, lineno]{templates/pi/pi-article} +\fi\if\style1 % Elsevier publications + \documentclass[12pt, preprint]{elsarticle} +\fi\if\style2 % RSC publications + \documentclass[9pt, twoside, twocolumn]{article} +\fi\if\style3 % ACS publications + \documentclass[journal=cmatex,manuscript=article]{achemso} +\fi + +% Graphics +\graphicspath{ {figs/} } + +% SI +\externaldocument{manuscript-SI} + +% Metadata +\input{templates/metadata} + +% Preamble +\if\style0 + \input{templates/pi/pi-preamble} +\fi\if\style1 + \input{templates/els/els-preamble} +\fi\if\style2 + \input{templates/rsc/rsc-preamble} +\fi\if\style3 + \input{templates/acs/acs-preamble} +\fi + +% Defining a 2 col figure (due to pandoc incompat) +\newenvironment{widefigure}{\begin{figure*}}{\end{figure*}} + +% Defining a 2 col table (due to pandoc incompat) +\newenvironment{widetable}{\begin{table*}}{\end{table*}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +% Doc input +\if\style0 + \input{templates/pi/pi-doc} +\fi\if\style1 + \input{templates/els/els-doc} +\fi\if\style2 + \input{templates/rsc/rsc-doc} +\fi\if\style3 + \input{templates/acs/acs-doc} +\fi + +\input{docs/.content} + +% Doc end input +\if\style3 + \input{templates/acs/acs-doc-end} +\else +\section*{Acknowledgements} + \input{docs/x-acknowledgements} +\section*{Author contributions} + \input{docs/y-contributions} +\fi + +\bibliography{refs/biblio} + +% End doc +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/learning-markdown/example/tex_templates/metadata-pd.yaml b/learning-markdown/example/tex_templates/metadata-pd.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6c08a2555604ae3dbd8a9731e74f1b46ba6c7fe3 --- /dev/null +++ b/learning-markdown/example/tex_templates/metadata-pd.yaml @@ -0,0 +1,37 @@ +--- +title: "This is the paper title" +author: + - Paul Iacomi: + institute: + - a + - b + orcid: 0000-0001-5477-1503 + email: mail@pauliacomi.com + correspondence: "yes" + equal_contributor: "yes" + - Someone Else: + institute: + - a + orcid: 0000-0001-5124-7052 + equal_contributor: "yes" +institute: + - a: + name: My current affiliation, with address and everything. + - b: + name: Long address from someone else or other affiliation + +project: + title: project +link-citations: true +number-sections: true + +# XNOS settings / deprecated +xnos-capitalise: true +xnos-number-by-section: false + +# CROSSREF settings +linkReferences: true # Make references hyperlinks to the referenced element +autoEqnLabels: true # Automatically number all display equations (i.e. ones defined using $$...$$/\[...\]). +cref: false + +--- diff --git a/learning-markdown/example/tex_templates/metadata.tex b/learning-markdown/example/tex_templates/metadata.tex new file mode 100644 index 0000000000000000000000000000000000000000..997df433f0b22231ce6dcdb431f8d3bd5c251882 --- /dev/null +++ b/learning-markdown/example/tex_templates/metadata.tex @@ -0,0 +1,62 @@ +% !TEX root = ../manuscript.tex + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Title +%% ----- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\pubtitle}{This is the paper title} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Metadata +%% -------- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\pubauthA}{Paul Iacomi} +\newcommand{\pubaffilA}{a, b} +\newcommand{\orcidA}{0000-0001-5477-1503} +\newcommand{\authemailA}{mail@pauliacomi.com} +\newcommand{\eqcontribA}{} + +\newcommand{\pubauthB}{Someone Else} +\newcommand{\pubaffilB}{a} +\newcommand{\orcidB}{0000-0001-5124-7052} +\newcommand{\eqcontribB}{} + +% \newcommand{\pubauthC}{} +% \newcommand{\pubauthD}{} +% \newcommand{\pubauthE}{} +% \newcommand{\pubauthF}{} +% \newcommand{\pubauthG}{} +% \newcommand{\pubauthH}{} +% \newcommand{\pubauthI}{} + +\newcommand{\pubaddrA}{% + My current affiliation, with address and everything. +} +\newcommand{\pubaddrB}{% + Long address from someone else or other affiliation +} +% \newcommand{\pubaddrC}{% +% } +% \newcommand{\pubaddrD}{% +% } + + +\newcommand{\pubemail}{\authemailA} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% SI content +%% ---------- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\pubSI}{% +Electronic Supplementary Information (ESI) available: one PDF file with all +referenced supporting information. +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Keywords +%% -------- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\pubkeywords}{Keyword 1 \sep Keyword 2 \sep Keyword 3} \ No newline at end of file diff --git a/learning-markdown/example/tex_templates/pi-article.cls b/learning-markdown/example/tex_templates/pi-article.cls new file mode 100644 index 0000000000000000000000000000000000000000..3780f325022c038a9a292f1407578e067a0dd996 --- /dev/null +++ b/learning-markdown/example/tex_templates/pi-article.cls @@ -0,0 +1,645 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% pi-article.cls, v4.0 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{pi-article}[08/09/2021, v5.0] +\RequirePackage{etoolbox} % a necessity + +%%%%%%%%%%%%%%%%%%%%%% Class options and conditionals + +%% Toggles for various conditions and options +\newtoggle{SI} % switching to SI format +\newtoggle{shortintro} % will not include abstract in the title page +\newtoggle{tocfig} % small figure next to the abstract +\newtoggle{twocolumn} % text will be laid out in two column +\newtoggle{toprule} % large line at the top +\toggletrue{toprule} % on by default +\newtoggle{linenumbers} % including line numbers +\newtoggle{affiltop} % author affiliation at the top +\newtoggle{footdate} % add current date in footer +\toggletrue{footdate} % on by default +\newtoggle{footpreprint} % add a "Preprint" text in footer +\toggletrue{footpreprint} % on by default +\newtoggle{debug} % debugging activated + +% Option for type of article +\newcommand{\arttype}{ARTICLE} +\DeclareOption{commun}{\renewcommand{\arttype}{COMMUNICATION}} +\DeclareOption{review}{\renewcommand{\arttype}{REVIEW}} +\DeclareOption{persp}{\renewcommand{\arttype}{PERSPECTIVE}} + +% Option for switching to SI format +\DeclareOption{SI}{\toggletrue{SI}} + +% Option for two column format +\DeclareOption{twocolumn}{ + \toggletrue{twocolumn} + \PassOptionsToClass{twocolumn}{extarticle} +} + +% Option for line numbers +\DeclareOption{lineno}{\toggletrue{linenumbers}} + +% Option for footer +\DeclareOption{nofootdate}{\togglefalse{footdate}} +\DeclareOption{nofootprint}{\togglefalse{footpreprint}} + +% Option for affiliation location +\DeclareOption{affiltop}{\toggletrue{affiltop}} + +% Option for toc image +\DeclareOption{tocfig}{\toggletrue{tocfig}} + +% Option for debugging format +\DeclareOption{debug}{\toggletrue{debug}} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}} % pass other options to base class +\ProcessOptions*\relax % finish options +\LoadClass{extarticle} + +%%%%%%%%%%%%%%%%%%%%%% Global settings for SI format + +\iftoggle{SI}{ + \togglefalse{toprule} % no top rule + \toggletrue{shortintro} % no abstract + \toggletrue{twocolumn} % single column + \def\thepage{S\arabic{page}} % pages as S1-SX + \renewcommand*\thefigure{S\arabic{figure}} % Figures as Fig. S1 + \renewcommand*\thetable{S\arabic{table}} % Tables as Table S1 + \renewcommand*\theequation{S\arabic{equation}} % Equations as Eq. S1 + \AtBeginDocument{% % Bibliographies as Ref. S1 + \renewcommand*\citenumfont[1]{S#1}% + \renewcommand*\bibnumfmt[1]{(S#1)}% + } +}{} + +%%%%%%%%%%%%%%%%%%%%%% Fonts and language + +% Fonts +\RequirePackage{lmodern} +\renewcommand*\familydefault{\sfdefault} + +% Microtype +\AtEndOfClass{\RequirePackage{microtype}} + +%% Set up main page fonts +\newcommand{\headerfont}{\fontfamily{lmss}\color{gray}\bfseries\sffamily\fontsize{16pt}{20pt}\selectfont} +\newcommand{\footerfont}{\normalfont\sffamily\fontsize{7pt}{9pt}\selectfont} +\newcommand{\titlefont}{\fontfamily{lmss}\bfseries\fontsize{22pt}{24pt}\selectfont} +\newcommand{\subtitlefont}{\fontfamily{lmss}\bfseries\fontsize{15pt}{20pt}\selectfont} +\newcommand{\contactfont}{\itshape\sffamily\fontsize{7pt}{9pt}\selectfont} +\newcommand{\absfont}{\normalfont\sffamily\bfseries\fontsize{8pt}{11pt}\selectfont} +\newcommand{\keywordsfont}{\normalfont\sffamily\fontsize{8pt}{11pt}\selectfont} +\newcommand{\footnotefont}{\normalfont\sffamily\fontsize{7}{9}\selectfont} + +% AMS maths packages +\RequirePackage{ + amsmath, + amsfonts, + amsthm, + amssymb +} + +%% Add bolding to math where needed +\g@addto@macro\bfseries{\boldmath} + +% Encodings +\RequirePackage{ifxetex,ifluatex} +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \RequirePackage{cmap} + \RequirePackage[TS1,T1]{fontenc} + \RequirePackage[utf8]{inputenc} +\else % if luatex or xelatex + \ifxetex + \usepackage{mathspec} + % undo the wrong changes made by mathspec + \let\RequirePackage\original@RequirePackage + \let\usepackage\RequirePackage + \else + \usepackage{fontspec} + \fi + \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} +\fi + +% Language +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \RequirePackage[english]{babel} +\else + \usepackage{polyglossia} + \setmainlanguage[]{english} +\fi + +%%%%%%%%%%%%%%%%%%%%%% General pagination setup and tools + +\RequirePackage[ + a4paper,includeheadfoot, % paper size, head/foot included in geometry + top=35pt,bottom=50pt, % top/bottom + left=75pt,right=75pt, % left/right + marginparwidth=2cm, % margins (used for line numbers) + marginparsep=5pt, % margin separation + headheight=20pt, % header height + headsep=20pt, % text distance from header + footskip=25pt +]{geometry} + +\iftoggle{twocolumn}{ % smaller margins if two-column +\geometry{ + top=25pt,bottom=35pt, % top/bottom + left=55pt,right=55pt, % left/right + headsep=10pt +} +}{} + +\iftoggle{debug}{ +\geometry{ + showframe,showcrop, % for debugging +} +}{} + +\setlength{\columnsep}{13.5pt} % Distance between the two columns of text +\setlength{\parindent}{12pt} % Paragraph indent + +\RequirePackage{changepage} % change odd/even page at any point +\RequirePackage{lastpage} % Refer to last page of the document +\RequirePackage{afterpage} % execute a command on next page (useful for \clearpage flush) +\RequirePackage{enumitem} % For reducing bullet list item separation + +%%%%%%%%%%%%%%%%%%%%%% Figures, tables, equations and listings + +% Figures +\RequirePackage{graphicx} % include pictures +\RequirePackage{tikz} % drawing pictures +\usetikzlibrary{svg.path} % TIKZ svg paths +\usetikzlibrary{calc} % TIKZ calculations +\RequirePackage[framemethod=tikz]{mdframed} % breakable framed and coloured boxes + +%% Set document color scheme +\RequirePackage{xcolor} % driver indepentent color extensions +\definecolor{black50}{gray}{0.5} % 50% black for hrules +\definecolor{color0}{RGB}{0,0,0} % Base +\definecolor{color1}{RGB}{59,90,198} % author email, doi + +% Tables +\RequirePackage{ + booktabs, % overall nice table quality + array, % better column and row definitions + longtable, % for tables spanning multiple pages + makecell, % multilined table cells + tabularx, % width-expanding column (with 'x') + multirow, % for multirow cells (with \\) + colortbl % to add colours to table cells +} +% booktabs provide nice spacing, but rule widths and distances need modifying +\setlength{\heavyrulewidth}{0.5pt} % wide rule +\setlength{\lightrulewidth}{0.5pt} % light rule +\setlength{\aboverulesep}{1.5pt} % blank space above rules +\setlength{\belowrulesep}{1.5pt} % blank space below rules +\setlength{\belowbottomsep}{5pt} % blank space below whole table +\AtBeginEnvironment{tabular}{% % font inside tables will be small + \sffamily\fontsize{7.5}{10}\selectfont +} +%% command we can use to add some text e.g. below the table +\newcommand{\addtabletext}[1]{{\setlength{\leftskip}{9pt}\fontsize{7}{9}\selectfont#1}} + +% Code snippets/listings +\RequirePackage{listings} + +% Equations +% placed in square brackets +\renewcommand\tagform@[1]{\maketag@@@ {[\ignorespaces #1\unskip \@@italiccorr ]}} +% For numbering just one line of an equation +\newcommand\numberthis{\addtocounter{equation}{1}\tag{\theequation}} + +%%%%%%%%%%%%%%%%%%%%%% Floats, subfloats and their captions + +\RequirePackage{float} % improved interface for floating objects +\RequirePackage{dblfloatfix} % fixes for twocolumn floats +\RequirePackage{placeins} % for the floatbarrier macro + +% distance between floats and text +\setlength{\textfloatsep}{6pt \@plus 2.0pt \@minus 2.0pt} +% distance between two floats +\setlength{\floatsep}{8pt \@plus 2.0pt \@minus 2.0pt} + +% Better captions +\RequirePackage[ + skip=3pt, % vertical space between caption and figure + labelfont={bf,sf}, % we bold the caption label + labelsep=colon, % periods after label (Fig. 1:) + figurename=Fig., % figure will be abbreviated + % tablename=Tbl., % table will be abbreviated +]{caption} +% overall font types (excluding label) +\DeclareCaptionFormat{fmt}{\normalfont\sffamily\fontsize{7}{9}\selectfont#1#2#3} +\captionsetup*{format=fmt} % for figures +\captionsetup*[table]{format=fmt,position=above} % for tables + +% Subfigures +\RequirePackage{subcaption} + +% Sidecaptions +\RequirePackage[rightcaption]{sidecap} + +%%%%%%%%%%%%%%%%%%%%%% Utilities + +% Filler text +\RequirePackage{lipsum} + +% Todo notes +\RequirePackage{todonotes} + +%%%%%%%%%%%%%%%%%%%%%% Science-related packages + +% In-line fractions +\RequirePackage{xfrac} + +% The SIunitx package enables the \SI{}{} command. +\RequirePackage{siunitx} +\sisetup{ + detect-weight=true, + detect-family=true, + per-mode=reciprocal, + range-units=single, % brief SIrange + range-phrase=-- % and using lines +} + +% The mchem package for formula subscripts using \ce{} +\RequirePackage[version=4]{mhchem} + +%%%%%%%%%%%%%%%%%%%%%% Bibliography, footnotes and their settings + +% Natbib package for text references +\RequirePackage[ + numbers, % numbers as references + merge, % merge multiple references in one + super, % superscript + sort&compress +]{natbib} + +% Moves references after punctuation +\RequirePackage{natmove} +\renewcommand*{\natmovechars}{.} % only after full stop + +% Bibliography style +%% No separation between references +\setlength{\bibsep}{0.0pt} +%% Use pi-bib.bst as a style (if available) else fall back to unsrtnat +\IfFileExists{templates/pi/pi-bib.bst}{ + \bibliographystyle{templates/pi/pi-bib} +}{ + \IfFileExists{pi-bib.bst}{ + \bibliographystyle{pi-bib} + }{ + \PackageWarning{pi-bib}{templates/pi/pi-bib.bst not found; must specify manually} + \bibliographystyle{unsrt} +}} +%% set Bibliography font +\renewcommand\bibfont{\normalfont\sffamily\fontsize{6}{8}\selectfont} +%% Use "References" as bibliography title +\renewcommand{\bibname}{References} +\renewcommand{\refname}{References} +\AtEndOfClass{ + \renewcommand{\tocbibname}{References} +} +%% Remove brackets from label +\renewcommand\@biblabel[1]{ #1.} + +% Footnotes +\RequirePackage[flushmargin,ragged,symbol*]{footmisc} +\renewcommand*{\footnotelayout}{\footnotefont} +\renewcommand{\footnoterule}{% Set the footnote hrule style + \kern -3pt + {\color{black50} \hrule width 72pt height 0.25pt} + \kern 2.5pt +} + +%%%%%%%%%%%%%%%%%%%%%% References and bookmarks + +% Xr: +% To reference another document, in this case the SI +\RequirePackage{xr, xr-hyper} + +% Hyperlinking +\RequirePackage[ + colorlinks=true, + allcolors=blue, + pagebackref=false +]{hyperref} +%% Set URL link color & font +\renewcommand\UrlFont{\color{black}\sffamily} + +% References +\RequirePackage[ + capitalise, + nameinlink, +]{cleveref} + +% Equation reference label has no brackets +\creflabelformat{equation}{#2\textup{#1}#3} + +\RequirePackage{doi} % DOIs +\RequirePackage[nottoc]{tocbibind} % References section in TOC (for SI) + +%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% Other Setup + +%%%%%%%%%%%%%%%%%%%%%% Author and affiliation + +% Keeps footnotes where they should be +\RequirePackage{titling} +\setlength\thanksmarkwidth{0em} +\setlength\thanksmargin{-\thanksmarkwidth} + +% Typesetting for authors/affiliations +\RequirePackage{authblk} +\setlength{\affilsep}{8.5pt} % 16.5pts between base of author line and base of affil line +\renewcommand\Authfont{\color{color0}\normalfont\sffamily\bfseries\fontsize{9}{11}\selectfont} +\renewcommand\Affilfont{\color{color0}\footnotefont} +\renewcommand\AB@affilsepx{\newline\protect\Affilfont} +\renewcommand\Authands{, and } + +%%%%%%%%%%%%%%%%%%%%%% Author and paper metadata + +%% ORCID logo +\definecolor{orcidlogocol}{HTML}{A6CE39} +\tikzset{ + orcidlogo/.pic={ + \fill[orcidlogocol] svg{M256,128c0,70.7-57.3,128-128,128C57.3,256,0,198.7,0,128C0,57.3,57.3,0,128,0C198.7,0,256,57.3,256,128z}; + \fill[white] svg{M86.3,186.2H70.9V79.1h15.4v48.4V186.2z} + svg{M108.9,79.1h41.6c39.6,0,57,28.3,57,53.6c0,27.5-21.5,53.6-56.8,53.6h-41.8V79.1z M124.3,172.4h24.5c34.9,0,42.9-26.5,42.9-39.7c0-21.5-13.7-39.7-43.7-39.7h-23.7V172.4z} + svg{M88.7,56.8c0,5.5-4.5,10.1-10.1,10.1c-5.6,0-10.1-4.6-10.1-10.1c0-5.6,4.5-10.1,10.1-10.1C84.2,46.7,88.7,51.3,88.7,56.8z}; + } +x} + +%% Article meta data additional fields +\newcommand{\pubdoi}[1]{\def\@pubdoi{#1}} % publication DOI +\newcommand{\keywords}[1]{\def\@keywords{#1}} % keywords +\newcommand{\sep}[0]{; } % keyword separator +\newcommand{\contact}[1]{\def\@contact{#1}} % contact author +\newcommand{\leadauthor}[1]{\def\@leadauthor{#1}} % lead (first) author +\newcommand{\equalcontrib}[1]{\def\@equalcontrib{#1}} % equal contribution switch +\newcommand{\orcid}[1]{ % ORCID + \href{https://orcid.org/#1}{\mbox{ + \begin{tikzpicture}[overlay,remember picture] + \coordinate (A); + \coordinate (B) at ($(A)-(6pt,-8pt)$); + \end{tikzpicture} + \begin{tikzpicture}[overlay,remember picture,yscale=-0.04,xscale=0.04,transform shape] + \pic at (B) {orcidlogo}; + \end{tikzpicture} + }{}}} + +%%%%%%%%%%%%%%%%%%%%%% Headers and footers + +%% Fancyhdr styling +\RequirePackage{fancyhdr} % custom headers/footers +\pagestyle{fancy} % Set all pagestyle to fancy + +% Clear everything +\fancyhf{} + +% Headers +\renewcommand{\headrulewidth}{0pt} % No header rule normally + +% Footers +\renewcommand{\footrulewidth}{0pt} % No footer rule normally +\fancyfoot[R]{% % footer right side + \iftoggle{SI}{ + \footerfont\textit{Supplementary Information}\hspace{7pt}|% % we add SI as text + }{ + \iftoggle{footpreprint}{ + \footerfont\textit{Preprint}\hspace{7pt}|% % we add preprint text + }{} + } + \iftoggle{footdate}{ + \hspace{7pt}\textbf{\today}\hspace{7pt}|% % add date + }{} + \hspace{7pt}\textbf{\thepage}} % add page number +\fancyfoot[L]{% % footer left side + \footerfont\@ifundefined{@pubdoi}{}{% + \href{https://dx.doi.org/\@pubdoi}{DOI: \@pubdoi}} % add DOI + hyperlink +% \footerfont\@ifundefined{@leadauthor}{}{\@leadauthor}% % lead author name +% \ifnum \value{authors} > 1\textit{ et al.}\fi% % and et.al. +} + +% Modifying the plain style (applied automatically with title page) +\fancypagestyle{plain}{% + \fancyhf{} % clear everything + \iftoggle{toprule}{% % if SI, we add a top rule + \fancyhead[L]{% % Add article type and rule + \colorbox{black}{\parbox{18em}{\centering\color{white}\subtitlefont{\arttype}}}} + \renewcommand{\headrulewidth}{3pt}% + }{} + \fancyfoot[R]{ % footer right side + \iftoggle{SI}{ + \footerfont\textit{Supplementary Information}\hspace{7pt}|% % we add SI as text + }{ + \iftoggle{footpreprint}{ + \footerfont\textit{Preprint}\hspace{7pt}|% % we add preprint text + }{} + } + \iftoggle{footdate}{ + \hspace{7pt}\textbf{\today}\hspace{7pt}|% % add date + }{} + \hspace{7pt}\textbf{\thepage\textendash\pageref{LastPage}}} % add page number + \fancyfoot[L]{\footerfont\@ifundefined{@pubdoi}{}{% % footer left side + \href{https://dx.doi.org/\@pubdoi}{DOI: \@pubdoi}}} % add DOI + hyperlink +} + +%%%%%%%%%%%%%%%%%%%%%% Line numbers + +% Check switch for line numbers +\iftoggle{linenumbers}{ + % use lineno in switch mode if doublecolumn + \iftoggle{twocolumn}{ + \RequirePackage[switch]{lineno} + }{ + \RequirePackage{lineno} + } + \renewcommand\linenumberfont{\normalfont\tiny\sffamily} + \linenumbers +}{} + +%%%%%%%%%%%%%%%%%%%%%% Typesetting + +%% Section/subsection/paragraph set-up +\RequirePackage[explicit]{titlesec} +\setcounter{secnumdepth}{5} + +\titleformat{\section} + {\large\sffamily\bfseries} + {\thesection.} + {0.5em} + {#1} + [] +\titleformat{name=\section,numberless} + {\large\sffamily\bfseries} + {} + {0em} + {#1} + [] +\titleformat{\subsection}[runin] + {\sffamily\bfseries} + {\thesubsection.} + {0.5em} + {#1. } + [] +\titleformat{\subsubsection}[runin] + {\sffamily\bfseries} + {\thesubsubsection.} + {0.5em} + {#1. } + [] +\titleformat{\paragraph}[runin] + {\sffamily\small\bfseries} + {} + {0em} + {#1} +\titlespacing*{\section}{0pc}{3ex \@plus4pt \@minus3pt}{5pt} +\titlespacing*{\subsection}{0pc}{2.5ex \@plus3pt \@minus2pt}{2pt} +\titlespacing*{\subsubsection}{0pc}{2ex \@plus2.5pt \@minus1.5pt}{2pt} +\titlespacing*{\paragraph}{0pc}{1.5ex \@plus2pt \@minus1pt}{12pt} + +%% Abstract formatting +\def\xabstract{abstract} +\long\def\abstract#1\end#2{ + \def\two{#2} + \ifx\two\xabstract + \long\gdef\theabstract{\ignorespaces#1} + \def\go{\end{abstract}} + \else + \typeout{^^J^^J PLEASE DO NOT USE ANY \string\begin\space \string\end^^J COMMANDS WITHIN ABSTRACT^^J^^J}#1\end{#2} + \gdef\theabstract{% + \vskip12pt BADLY FORMED ABSTRACT: PLEASE DO NOT USE {\tt\string\begin...\string\end} COMMANDS WITHIN THE ABSTRACT\vskip12pt% + }\let\go\relax + \fi +\go} + +% Define an environment with abstract content and styling +\newcommand{\abscontent}{ + \noindent + {% + \vskip3pt% + \iftoggle{tocfig}{ + \begin{minipage}{0.56\linewidth} + \absfont \theabstract + \end{minipage} + \begin{minipage}{0.4\linewidth} + \raggedleft + \IfFileExists{figs/tocfig.png}{% no good way of checking for extension + \includegraphics[width=0.9\linewidth]{figs/tocfig}} + {\IfFileExists{figs/tocfig.bmp}{ + \includegraphics[width=0.9\linewidth]{figs/tocfig}} + {\IfFileExists{figs/tocfig.pdf}{ + \includegraphics[width=0.9\linewidth]{figs/tocfig}} + }{\includegraphics[width=0.9\linewidth]{example-image}}} + \end{minipage}% + }{ + \begin{minipage}{\linewidth} + \absfont \theabstract + \end{minipage} + } + }% + \vskip10pt% + \noindent + \@ifundefined{@abstractadd}{}{% + {% + \parbox{\linewidth}{% + \abstractaddfont \@abstractadd}% + }% + \vskip10pt% + }% + \noindent + \@ifundefined{@keywords}{}{% + {% + \parbox{\linewidth}{% + \keywordsfont % + \textbf{Keywords:} \@keywords}% + }% + \vskip10pt% + }% +} + +%% Manual adjustment of vertical distance, useful for overall formatting +\newlength\vert@adjust +\newcommand\verticaladjustment[1]{\setlength{\vert@adjust}{#1}} + +%% Command to define an affiliation list in a footnote +\def\authaffil{% + \iftoggle{affiltop}{ + \@author\par% + % \vskip2pt + }{ + \AB@authlist\par + \protected@xdef\@thanks{\@thanks\protect\footnotetext[\the\c@footnote]{\AB@affillist\newline}}% + } +} + +%% Command to define a contact email switch +\def\contactswitch{% + \contactfont\@ifundefined{@contact}{}{\textbf{\normalfont*}~E-Mail:~\@contact}\par% + % + \vskip3pt +} + +%% Command to define an "equal contribution" switch +\def\equalcontribswitch{ + \footerfont\@ifundefined{@equalcontrib}{}{\textsuperscript{\textbf{\dag}}~These authors contributed equally}\par% + % + \vskip3pt +} + +%%%% Custom title page +\renewcommand{\@maketitle}{% +\iftoggle{shortintro} +{% if short intro i.e. SI + % patch author command to center section + \patchcmd{\@author}{\raggedright}{\centering}{}{} + % + \topskip0pt + \vspace*{\fill}% + % + {\centering\baselineskip=24pt\subtitlefont Supplementary Information for\par}% + {\centering\baselineskip=24pt\titlefont \@title\par}% + % + \vskip10pt + % + % author names / addresses + {\centering\authaffil{}} + % + \vskip8pt + % + % equal contribution + {\centering\equalcontribswitch{}} + % corresponding email + {\centering\contactswitch{}} + % + \vspace*{\fill}% +} +{% else if complete paper + % + \vskip10pt% + % + {\raggedright\baselineskip=24pt\titlefont \@title\par}% + % + \vskip10pt + % + % author names / addresses + \raggedright\authaffil{} + % + \vskip3pt + % + % equal contribution + \raggedright\equalcontribswitch{} + % corresponding email + \raggedright\contactswitch{} + % abstract / TOC section + \raggedright{\abscontent{}} + % + \noindent\makebox[\linewidth]{\rule{\linewidth}{0.4pt}}% + % + \vskip15pt% +}% +\@ifundefined{vert@adjust}{}{\vskip\vert@adjust}% +}% diff --git a/learning-markdown/example/tex_templates/report-footer.tex b/learning-markdown/example/tex_templates/report-footer.tex new file mode 100644 index 0000000000000000000000000000000000000000..74745761845d3271458dbd8385addb1addd66869 --- /dev/null +++ b/learning-markdown/example/tex_templates/report-footer.tex @@ -0,0 +1,9 @@ +\begin{center} + \includegraphics[width=2cm]{assets/by-sa.pdf} + + \scriptsize This work is licensed under the Creative Commons + Attribution-ShareAlike 3.0 Unported License.\\ To view a copy + of this license, visit + \url{http://creativecommons.org/licenses/by-sa/3.0/}. +\end{center} + diff --git a/learning-markdown/example/tex_templates/report-header.tex b/learning-markdown/example/tex_templates/report-header.tex new file mode 100644 index 0000000000000000000000000000000000000000..7371b6d7e50c116df0611cf510c6381471944d12 --- /dev/null +++ b/learning-markdown/example/tex_templates/report-header.tex @@ -0,0 +1,8 @@ +%%% Special LaTeX headers +% +% Remove and edit as desired. Simply serves as an example. +% Here, reduce excessive use of whitespace a little bit. + +\usepackage{titling} +\setlength{\droptitle}{-1.5in} +\parskip.5ex plus.5ex minus0.25ex diff --git a/learning-markdown/example/tex_templates/svm-latex-article2.tex b/learning-markdown/example/tex_templates/svm-latex-article2.tex new file mode 100644 index 0000000000000000000000000000000000000000..47b750174a17a4ab196c307765dd5e09d3db348b --- /dev/null +++ b/learning-markdown/example/tex_templates/svm-latex-article2.tex @@ -0,0 +1,666 @@ +% Options for packages loaded elsewhere +\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref} +\PassOptionsToPackage{hyphens}{url} +$if(colorlinks)$ +\PassOptionsToPackage{dvipsnames,svgnames*,x11names*}{xcolor} +$endif$ +$if(dir)$ +$if(latex-dir-rtl)$ +\PassOptionsToPackage{RTLdocument}{bidi} +$endif$ +$endif$ +$if(CJKmainfont)$ +\PassOptionsToPackage{space}{xeCJK} +$endif$ +% +\documentclass[ +$if(fontsize)$ + $fontsize$, +$endif$ +$if(lang)$ + $babel-lang$, +$endif$ +$if(papersize)$ + $papersize$paper, +$endif$ +$if(beamer)$ + ignorenonframetext, +$if(handout)$ + handout, +$endif$ +$if(aspectratio)$ + aspectratio=$aspectratio$, +$endif$ +$endif$ +$for(classoption)$ + $classoption$$sep$, +$endfor$ +]{$documentclass$} +$if(beamer)$ +$if(background-image)$ +\usebackgroundtemplate{% + \includegraphics[width=\paperwidth]{$background-image$}% +} +$endif$ +\usepackage{pgfpages} +\setbeamertemplate{caption}[numbered] +\setbeamertemplate{caption label separator}{: } +\setbeamercolor{caption name}{fg=normal text.fg} +\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$ +$for(beameroption)$ +\setbeameroption{$beameroption$} +$endfor$ +% Prevent slide breaks in the middle of a paragraph +\widowpenalties 1 10000 +\raggedbottom +$if(section-titles)$ +\setbeamertemplate{part page}{ + \centering + \begin{beamercolorbox}[sep=16pt,center]{part title} + \usebeamerfont{part title}\insertpart\par + \end{beamercolorbox} +} +\setbeamertemplate{section page}{ + \centering + \begin{beamercolorbox}[sep=12pt,center]{part title} + \usebeamerfont{section title}\insertsection\par + \end{beamercolorbox} +} +\setbeamertemplate{subsection page}{ + \centering + \begin{beamercolorbox}[sep=8pt,center]{part title} + \usebeamerfont{subsection title}\insertsubsection\par + \end{beamercolorbox} +} +\AtBeginPart{ + \frame{\partpage} +} +\AtBeginSection{ + \ifbibliography + \else + \frame{\sectionpage} + \fi +} +\AtBeginSubsection{ + \frame{\subsectionpage} +} +$endif$ +$endif$ +$if(beamerarticle)$ +\usepackage{beamerarticle} % needs to be loaded first +$endif$ +$if(fontfamily)$ +\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} +$else$ +\usepackage{lmodern} +$endif$ +$if(linestretch)$ +\usepackage{setspace} +$endif$ +\usepackage{amssymb,amsmath} +\usepackage{ifxetex,ifluatex} +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} + \usepackage[utf8]{inputenc} + \usepackage{textcomp} % provide euro and other symbols +\else % if luatex or xetex +$if(mathspec)$ + \ifxetex + \usepackage{mathspec} + \else + \usepackage{unicode-math} + \fi +$else$ + \usepackage{unicode-math} +$endif$ + \defaultfontfeatures{Scale=MatchLowercase} + \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} +$if(mainfont)$ + \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} +$endif$ +$if(sansfont)$ + \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$} +$endif$ +$if(monofont)$ + \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$} +$endif$ +$for(fontfamilies)$ + \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$} +$endfor$ +$if(mathfont)$ +$if(mathspec)$ + \ifxetex + \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \else + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} + \fi +$else$ + \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} +$endif$ +$endif$ +$if(CJKmainfont)$ + \ifxetex + \usepackage{xeCJK} + \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + \fi +$endif$ +$if(luatexjapresetoptions)$ + \ifluatex + \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset} + \fi +$endif$ +$if(CJKmainfont)$ + \ifluatex + \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec} + \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} + \fi +$endif$ +\fi +$if(beamer)$ +$if(theme)$ +\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$} +$endif$ +$if(colortheme)$ +\usecolortheme{$colortheme$} +$endif$ +$if(fonttheme)$ +\usefonttheme{$fonttheme$} +$endif$ +$if(mainfont)$ +\usefonttheme{serif} % use mainfont rather than sansfont for slide text +$endif$ +$if(innertheme)$ +\useinnertheme{$innertheme$} +$endif$ +$if(outertheme)$ +\useoutertheme{$outertheme$} +$endif$ +$endif$ +% Use upquote if available, for straight quotes in verbatim environments +\IfFileExists{upquote.sty}{\usepackage{upquote}}{} +\IfFileExists{microtype.sty}{% use microtype if available + \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype} + \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts +}{} +$if(indent)$ +$else$ +\makeatletter +\@ifundefined{KOMAClassName}{% if non-KOMA class + \IfFileExists{parskip.sty}{% + \usepackage{parskip} + }{% else + \setlength{\parindent}{0pt} + \setlength{\parskip}{6pt plus 2pt minus 1pt} + } +}{% if KOMA class + \KOMAoptions{parskip=half}} +\makeatother +$endif$ +$if(verbatim-in-note)$ +\usepackage{fancyvrb} +$endif$ +\usepackage{xcolor} +\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available +\urlstyle{same} % disable monospaced font for URLs +$if(verbatim-in-note)$ +\VerbatimFootnotes % allow verbatim text in footnotes +$endif$ +$if(geometry)$ +$if(beamer)$ +\geometry{$for(geometry)$$geometry$$sep$,$endfor$} +$else$ +\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +$endif$ +$if(beamer)$ +\newif\ifbibliography +$endif$ +$if(listings)$ +\usepackage{listings} +\newcommand{\passthrough}[1]{#1} +\lstset{defaultdialect=[5.3]Lua} +\lstset{defaultdialect=[x86masm]Assembler} +$endif$ +$if(lhs)$ +\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} +$endif$ +$if(highlighting-macros)$ +$highlighting-macros$ +$endif$ +$if(tables)$ +\usepackage{longtable,booktabs} +$if(beamer)$ +\usepackage{caption} +% Make caption package work with longtable +\makeatletter +\def\fnum@table{\tablename~\thetable} +\makeatother +$else$ +% Correct order of tables after \paragraph or \subparagraph +\usepackage{etoolbox} +\makeatletter +\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{} +\makeatother +% Allow footnotes in longtable head/foot +\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}} +\makesavenoteenv{longtable} +$endif$ +$endif$ +$if(graphics)$ +\usepackage{graphicx} +\makeatletter +\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} +\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} +\makeatother +% Scale images if necessary, so that they will not overflow the page +% margins by default, and it is still possible to overwrite the defaults +% using explicit options in \includegraphics[width, height, ...]{} +\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} +% Set default figure placement to htbp +\makeatletter +\def\fps@figure{htbp} +\makeatother +$endif$ +$if(links-as-notes)$ +% Make links footnotes instead of hotlinks: +\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}} +$endif$ +$if(strikeout)$ +\usepackage[normalem]{ulem} +% Avoid problems with \sout in headers with hyperref +\pdfstringdefDisableCommands{\renewcommand{\sout}{}} +$endif$ +\setlength{\emergencystretch}{3em} % prevent overfull lines +\providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} +$if(numbersections)$ +\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} +$else$ +\setcounter{secnumdepth}{-\maxdimen} % remove section numbering +$endif$ +$if(beamer)$ +$else$ +$if(block-headings)$ +% Make \paragraph and \subparagraph free-standing +\ifx\paragraph\undefined\else + \let\oldparagraph\paragraph + \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} +\fi +\ifx\subparagraph\undefined\else + \let\oldsubparagraph\subparagraph + \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} +\fi +$endif$ +$endif$ +$if(pagestyle)$ +\pagestyle{$pagestyle$} +$endif$ + +$if(lang)$ +\ifxetex + % Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic) + \usepackage{polyglossia} + \setmainlanguage[$for(polyglossia-lang.options)$$polyglossia-lang.options$$sep$,$endfor$]{$polyglossia-lang.name$} +$for(polyglossia-otherlangs)$ + \setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$} +$endfor$ +\else + \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel} +$if(babel-newcommands)$ + $babel-newcommands$ +$endif$ +\fi +$endif$ +\ifluatex + \usepackage{selnolig} % disable illegal ligatures +\fi +$if(dir)$ +\ifxetex + % Load bidi as late as possible as it modifies e.g. graphicx + \usepackage{bidi} +\fi +\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex + \TeXXeTstate=1 + \newcommand{\RL}[1]{\beginR #1\endR} + \newcommand{\LR}[1]{\beginL #1\endL} + \newenvironment{RTL}{\beginR}{\endR} + \newenvironment{LTR}{\beginL}{\endL} +\fi +$endif$ +$if(natbib)$ +\usepackage[$natbiboptions$]{natbib} +\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} +$endif$ +$if(biblatex)$ +\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} +$for(bibliography)$ +\addbibresource{$bibliography$} +$endfor$ +$endif$ + + +$if(title)$ +\title{$title$$if(thanks)$\thanks{$thanks$}$endif$} +$endif$ +$if(subtitle)$ +$if(beamer)$ +$else$ +\usepackage{etoolbox} +\makeatletter +\providecommand{\subtitle}[1]{% add subtitle to \maketitle + \apptocmd{\@title}{\par {\large #1 \par}}{}{} +} +\makeatother +$endif$ +\subtitle{$subtitle$} +$endif$ +\author{$for(author)$$author$$sep$ \and $endfor$} +\date{$date$} +$if(beamer)$ +$if(institute)$ +\institute{$for(institute)$$institute$$sep$ \and $endfor$} +$endif$ +$if(titlegraphic)$ +\titlegraphic{\includegraphics{$titlegraphic$}} +$endif$ +$if(logo)$ +\logo{\includegraphics{$logo$}} +$endif$ +$endif$ + +% Jesus, okay, everything above this comment is default Pandoc LaTeX template. ----- +% ---------------------------------------------------------------------------------- +% I think I had assumed beamer and LaTex were somehow different templates. + + +\usepackage{kantlipsum} + +\usepackage{abstract} +\renewcommand{\abstractname}{} % clear the title +\renewcommand{\absnamepos}{empty} % originally center + +\renewenvironment{abstract} + {{% + \setlength{\leftmargin}{0mm} + \setlength{\rightmargin}{\leftmargin}% + }% + \relax} + {\endlist} + +\makeatletter +\def\@maketitle{% + \newpage +% \null +% \vskip 2em% +% \begin{center}% + \let \footnote \thanks + $if(sansitup)$ + {\fontsize{14.5}{20}\selectfont\bfseries\sffamily\raggedright \setlength{\parindent}{0pt} \@title \par}% + $else$ + {\fontsize{18}{20}\selectfont\raggedright \setlength{\parindent}{0pt} \@title \par} + $endif$ +} +%\fi +\makeatother + + +$if(title)$ +\title{$title$$if(subtitle)$: $subtitle$$endif$$if(anonymous)$$else$$if(thanks)$\thanks{$thanks$} $endif$$endif$ } +$endif$ + + + +%$if(anonymous)$$else$\author{$for(author)$\Large $author.name$\vspace{0.05in} \newline\normalsize\emph{$author.affiliation$} $sep$ \and $endfor$}$endif$ + + +\date{} + +\usepackage{titlesec} + +% $if(sansitup)$\sffamily\uppercase$else$$endif$ +\titleformat*{\section}{\large\bfseries$if(sansitup)$\sffamily\uppercase$else$$endif$} +\titleformat*{\subsection}{$if(sansitup)$\bfseries\sffamily$else$\normalsize\itshape$endif$} % \small\uppercase +\titleformat*{\subsubsection}{\normalsize\itshape} +\titleformat*{\paragraph}{\normalsize\itshape} +\titleformat*{\subparagraph}{\normalsize\itshape} + +% add some other packages ---------- + +% \usepackage{multicol} +% This should regulate where figures float +% See: https://tex.stackexchange.com/questions/2275/keeping-tables-figures-close-to-where-they-are-mentioned +\usepackage[section]{placeins} + + + +\makeatletter +\@ifpackageloaded{hyperref}{}{% +\ifxetex + \PassOptionsToPackage{hyphens}{url}\usepackage[setpagesize=false, % page size defined by xetex + unicode=false, % unicode breaks when used with xetex + xetex]{hyperref} +\else + \PassOptionsToPackage{hyphens}{url}\usepackage[draft,unicode=true]{hyperref} +\fi +} + +\@ifpackageloaded{color}{ + \PassOptionsToPackage{usenames,dvipsnames}{color} +}{% + \usepackage[usenames,dvipsnames]{color} +} +\makeatother +\hypersetup{breaklinks=true, + bookmarks=true, + pdfauthor={$if(anonymous)$$else$$for(author)$$author.name$ ($author.affiliation$)$sep$ and $endfor$$endif$}, + pdfkeywords = {$if(keywords)$$keywords$$endif$}, + pdftitle={$title$$if(subtitle)$: $subtitle$$endif$}, + colorlinks=true, + citecolor=$if(citecolor)$$citecolor$$else$blue$endif$, + urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, + linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, + pdfborder={0 0 0}} +\urlstyle{same} % don't use monospace font for urls + +% Add an option for endnotes. ----- + +$if(endnotes)$ +\usepackage{endnotes} +\renewcommand{\enotesize}{\normalsize} +\let\footnote=\endnote +$endif$ + +$if(appendix)$ +\renewcommand*\thetable{$appendixletter$.\arabic{table}} +\renewcommand*\thefigure{$appendixletter$.\arabic{figure}} +$endif$ + +% This will better treat References as a section when using natbib +% https://tex.stackexchange.com/questions/49962/bibliography-title-fontsize-problem-with-bibtex-and-the-natbib-package +$if(natbib)$ +\renewcommand\bibsection{% + \section*{References}% + \markboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}% + }% +$else$ +$endif$ + +% set default figure placement to htbp +\makeatletter +\def\fps@figure{htbp} +\makeatother + + + +$for(header-includes)$ +$header-includes$ +$endfor$ + +\newtheorem{hypothesis}{Hypothesis} + +\begin{document} + +% \textsf{\textbf{This is sans-serif bold text.}} +% \textbf{\textsf{This is bold sans-serif text.}} + + +$if(removetitleabstract)$ +$else$ +$if(title)$ +% \maketitle + +{% \usefont{T1}{pnc}{m}{n} +\setlength{\parindent}{0pt} +\thispagestyle{plain} +{%\fontsize{18}{20}\selectfont\raggedright +\maketitle % title \par + +} + + + + +{ + \vskip 13.5pt\relax \normalsize\fontsize{11}{12} + $if(sansitup)$ +$if(anonymous)$\hfill $else$$for(author)$\MakeUppercase{\textsf{\large $author.name$}}, \small{$author.affiliation$} $sep$ \par $endfor$ $endif$ +$else$ +$if(anonymous)$\hfill $else$$for(author)$\MakeUppercase{$author.name$}, \small{$author.affiliation$} $sep$ \par \vskip -3.5pt $endfor$ $endif$ +$endif$ + +} + +} + + +$endif$ + + + +$if(abstract)$ + + + +\begin{abstract} + +% \hbox{\vrule height .2pt width 39.14pc} + + \vskip 8.5pt % \small + +\noindent \small{$abstract$} + +$if(keywords)$ + +\vskip 8.5pt \noindent \emph{Keywords}: $keywords$ \par + +% \hbox{\vrule height .2pt width 39.14pc} + + +$else$ + +% \hbox{\vrule height .2pt width 39.14pc} + +$endif$ + +\end{abstract} + +$endif$ + +\vskip -8.5pt + +$if(toc)$ +{ +\hypersetup{linkcolor=black} +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +} +$endif$ + +$endif$ % removetitleabstract + +$for(include-before)$ +$include-before$ + +$endfor$ +$if(toc)$ +$if(toc-title)$ +\renewcommand*\contentsname{$toc-title$} +$endif$ +$if(beamer)$ +\begin{frame}[allowframebreaks] +$if(toc-title)$ + \frametitle{$toc-title$} +$endif$ + \tableofcontents[hideallsubsections] +\end{frame} +$else$ +{ +$if(colorlinks)$ +\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$} +$endif$ +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +} +$endif$ +$endif$ +$if(lot)$ +\listoftables +$endif$ +$if(lof)$ +\listoffigures +$endif$ +$if(linestretch)$ +\setstretch{$linestretch$} +$endif$ +$if(has-frontmatter)$ +\mainmatter +$endif$ + +$if(pandocparas)$ +$else$ +\setlength{\parindent}{16pt} +\setlength{\parskip}{0pt} +$endif$ + +$body$ + +$if(has-frontmatter)$ +\backmatter +$endif$ +$if(natbib)$ +$if(bibliography)$ +$if(biblio-title)$ +$if(has-chapters)$ +\renewcommand\bibname{$biblio-title$} +$else$ +\renewcommand\refname{$biblio-title$} +$endif$ +$endif$ +$if(beamer)$ +\begin{frame}[allowframebreaks]{$biblio-title$} + \bibliographytrue +$endif$ + \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} +$if(beamer)$ +\end{frame} +$endif$ + +$endif$ +$endif$ +$if(biblatex)$ +$if(beamer)$ +\begin{frame}[allowframebreaks]{$biblio-title$} + \bibliographytrue + \printbibliography[heading=none] +\end{frame} +$else$ +\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ +$endif$ + +$endif$ +$for(include-after)$ +$include-after$ + +$endfor$ +\end{document} + diff --git a/learning-vscode/README.md b/learning-vscode/README.md new file mode 100644 index 0000000000000000000000000000000000000000..38c444ff6215c580c8ba7a1e40b20e2b038d3eee --- /dev/null +++ b/learning-vscode/README.md @@ -0,0 +1,15 @@ +# learning-vscode + +This is the repository for the training Visual Studio Code + +## Visual Studio Code for Windows (WSL) + +You can find the slides [here](./VSCode_WSL.pdf). + +Presentation is [here](https://www.elic.ucl.ac.be/users/pbarriat/slides/VSCode_WSL.html) + +## Visual Studio Code for Linux (Ubuntu) + +You can find the slides [here](./VSCode_Ubuntu.pdf). + +Presentation is [here](https://www.elic.ucl.ac.be/users/pbarriat/slides/VSCode_Ubuntu.html) diff --git a/learning-vscode/VSCode_Ubuntu.md b/learning-vscode/VSCode_Ubuntu.md new file mode 100644 index 0000000000000000000000000000000000000000..f185fba53c5c98a0a01c33cedf510691fd5cc5ff --- /dev/null +++ b/learning-vscode/VSCode_Ubuntu.md @@ -0,0 +1,141 @@ +--- +marp: true +title: Visual Studio Code for Ubuntu +author: P.Y. Barriat +description: How to use VSCode with Ubuntu +backgroundImage: url('assets/back.png') +_backgroundImage: url('assets/garde.png') +footer: 26/03/2024 | Visual Studio Code for Ubuntu | PY Barriat +_footer: "" +paginate: true +_paginate: false +math: true +--- + +Visual Studio Code for Ubuntu<!--fit--> +=== + +https://gogs.elic.ucl.ac.be/pbarriat/learning-vscode + + + +**Pierre-Yves Barriat** +ACELI Training Sessions `March 26th, 2024` + +--- + +# What is Visual Studio Code :question: + +**Visual Studio Code** (VS Code) is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. + +It has a rich ecosystem of extensions for languages (such as C++, Fortran, Java, Python, etc) and runtimes (Git, Jupyter, etc) + +VSC is one of the most popular and powerful text editors used by software engineers today +> free, open-source and [available](https://code.visualstudio.com/download) for macOS, Windows and Linux :+1: + +--- + +# VS Code + +You can install Visual Studio Code from the web link [here](https://code.visualstudio.com/download) + +`wget` the **deb** package then `dpkg -i code*.deb` + +That's it ! :smiley: + +--- + +## Install extensions + +- Python +- Jupyter + + + +--- + +# Jupyter Notebook in VS Code + +Create a new Juyter Notebook + + + +Fill the first cell + +```python +import numpy as np +``` + +--- + +Try to run the cell + +> you must choose a Python environment first (Python 3.6) +> +>  + +If :boom: ... maybe you must install a missing extension ! + +So open a **terminal** in VS Code an do + +```bash +sudo apt install python3-pip +``` + +--- + +Now, install the missing Python extension ... + +```bash +pip instal numpy +``` + + + +... and run the cell again: great, it's OK now :smiley: + +--- + +## Let's try a full notebook example + +Install Git : `sudo apt install git -y` + +Now clone this **Git repository** + +```bash +git clone https://forge.uclouvain.be/barriat/learning-vscode.git +``` + +> You don't already know what's Git :question: +> Shame on you ! :confounded: +> +> **It's not to late**: take a look here +> https://gogs.elic.ucl.ac.be/TECLIM/Git_Training + +Now open the file `example.ipynb` + +--- + +The first cell implies you must install some requirements + +To run this example, install the extensions below + +```bash +pip install netCDF4 +sudo apt install libgeos-dev libgdal-dev +pip install cartopy +``` + +Now, try to run all the cells of this notebook :exclamation: + +--- + +# VS Code nice extensions + +- `Tabnine` : code faster with AI code completions +- `Regex Previewer` : shows the current regular expression's matches +- `Modern Fortran` : Fortran syntax is missing in built-in version + +--- + +# Visual Studio Code for Ubuntu :speech_balloon: \ No newline at end of file diff --git a/learning-vscode/VSCode_Ubuntu.pdf b/learning-vscode/VSCode_Ubuntu.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0c8f292bd91d5d08166c52d33a234e2f029771cc Binary files /dev/null and b/learning-vscode/VSCode_Ubuntu.pdf differ diff --git a/learning-vscode/VSCode_WSL.md b/learning-vscode/VSCode_WSL.md new file mode 100644 index 0000000000000000000000000000000000000000..05dc0aec19a2c36cbc6971780cbefd1345a6db8f --- /dev/null +++ b/learning-vscode/VSCode_WSL.md @@ -0,0 +1,305 @@ +--- +marp: true +title: Visual Studio Code for WSL +author: P.Y. Barriat +description: How to use VSCode with WSL +backgroundImage: url('assets/back.png') +_backgroundImage: url('assets/garde.png') +footer: 26/03/2024 | Visual Studio Code for WSL | PY Barriat +_footer: "" +paginate: true +_paginate: false +math: true +--- + +Visual Studio Code for WSL<!--fit--> +=== + +https://gogs.elic.ucl.ac.be/pbarriat/learning-vscode + + + +**Pierre-Yves Barriat** +ACELI Training Sessions `March 26th, 2024` + +--- + +# What is WSL :question: + +**Windows Subsystem for Linux** (WSL) allows you to leverage the benefits of Linux package management and command line tools to streamline your development workflow. This is particularly useful for web developers and **data scientists** + + + +The easiest way to access your Ubuntu development environment in WSL is using **Visual Studio Code** via the built in *Remote extension* + +--- + +# What is Visual Studio Code :question: + +**Visual Studio Code** (VS Code) is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. + +It has a rich ecosystem of extensions for languages (such as C++, Fortran, Java, Python, etc) and runtimes (Git, Jupyter, etc) + +VSC is one of the most popular and powerful text editors used by software engineers today +> free, open-source and [available](https://code.visualstudio.com/download) for macOS, Windows and Linux :+1: + +--- + +# WSL on a Windows UCLouvain PC + +Linux from CII interface is **overkill** +> based on Virtualbox: heavy workload :fearful: + +No auto process (yet) to install WSL from UCLouvain IT support + +You must install WSL by your own with the **Administrator access** from CII interface + +**Don't worry**: just follow the guideline below... :muscle: + +--- + + + +--- + +## Windows required features + +1. From CII interface, ask for an **Admin access** + +2. Open a **Powershell terminal** in **Administrator mode** + +3. Copy paste this line and press *Enter* + +```sh +dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart +``` + +4. Copy paste this line and press *Enter* + +```sh +dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart +``` +5. Restart your computer + +--- + +## Install WSL2 + +1. From CII interface, ask for an **Admin access** + +2. Download the **WSL2 update** and install it (double click on the file) + + https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi + +3. Open a **Powershell terminal** in **Administrator mode** + +4. Copy paste this line and press *Enter* + +```sh +wsl --set-default-version 2 +``` + +--- + +## Install Ubuntu 22.04 from Microsft Store + + + +--- + +## First configuration of Ubuntu + +(Open Ubuntu) and choose a login/password + + + +In the Ubuntu terminal do + +```bash +sudo apt update + +sudo apt upgrade +``` + +--- + +## Graphical User Interface + +Open a **Powershell terminal** in **User mode** and do + +```sh +wsl --update +``` + +> maybe an Admin login/password is required (so ask for with CII interface) + +Open a new **Ubuntu terminal** and do + +```bash +sudo apt update +sudo apt upgrade +sudo apt install x11-apps -y +``` + +--- + +# VS Code + +You can install Visual Studio Code from the web link [here](https://code.visualstudio.com/download) + +> during installation, under the **Additional Tasks step**, ensure the **Add to PATH** option is checked + + + +--- + +Open VS Code and install **WSL for VS Code** + + + +--- + +Connect to WSL using a **distro** (Ubuntu 22.04) + + + +--- + +Install extensions for **"WSL: Ubuntu 22.04"** + +- Python +- Jupyter + + + +--- + +# Jupyter Notebook in VS Code + +Create a new Juyter Notebook + + + +Fill the first cell + +```python +import numpy as np +``` + +--- + +Try to run the cell + +> you must choose a Python environment first : Python 3.6 and **Install** +> +>  +>  + +But... :boom: + + + +--- + +So open your first **WSL terminal** in VS Code + + + +In this **Linux** terminal, do + +```bash +sudo apt install python3-pip +``` + +--- + +Try again to run the cell ! + +But now... :boom: + + + +--- + +In your **Linux** terminal, install the missing Python extension ... + +```bash +pip instal numpy +``` + + + +... and run the cell again: great, it's OK now :smiley: + +--- + +## Let's try a full notebook example + +Install Git : `sudo apt install git -y` + +Now clone this **Git repository** + +```bash +git clone https://forge.uclouvain.be/barriat/learning-vscode.git +``` + +> You don't already know what's Git :question: +> Shame on you ! :confounded: +> +> **It's not to late**: take a look here +> https://gogs.elic.ucl.ac.be/TECLIM/Git_Training + +Now open the file `example.ipynb` + +--- + +The first cell implies you must install some requirements + +To run this example, install the extensions below + +```bash +pip install netCDF4 +sudo apt install libgeos-dev libgdal-dev +pip install cartopy +``` + +Now, try to run all the cells of this notebook :exclamation: + +--- + +# VS Code nice extensions + +- `Remote - SSH` : lets you use any remote machine with a SSH server +- `Tabnine` : code faster with AI code completions +- `Regex Previewer` : shows the current regular expression's matches +- `Modern Fortran` : Fortran syntax is missing in built-in version + +--- + +## VSCode - Remote SSH : example + +Select `Remote-SSH: Open Configuration File` + +```bash +Host cyclone + HostName cyclone.elic.ucl.ac.be + User pbarriat +``` + +Visual Studio Code is now configured and ready to connect to your server : + +click on the green `Open a remote window` button in the bottom left-hand corner and select `Remote-SSH: Connect to Host` + +> On ELIC workstation, choose a Python environment from `ELIC_Python` module : `/opt/easybuild/...` + +--- + +# Ubuntu with WSL (and without VS Code) + +I strongly recommand to install `Windows Terminal Preview` from **Microsft Store** + + + +--- + +# Visual Studio Code for WSL :speech_balloon: \ No newline at end of file diff --git a/learning-vscode/VSCode_WSL.pdf b/learning-vscode/VSCode_WSL.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3aa0f154ed495b2c644f32b84e26c85555c76f3e Binary files /dev/null and b/learning-vscode/VSCode_WSL.pdf differ diff --git a/learning-vscode/assets/CII.png b/learning-vscode/assets/CII.png new file mode 100755 index 0000000000000000000000000000000000000000..eeab4f2c601a479bf8f7c65e02d8cdc28454a677 Binary files /dev/null and b/learning-vscode/assets/CII.png differ diff --git a/learning-vscode/assets/WSL1.png b/learning-vscode/assets/WSL1.png new file mode 100644 index 0000000000000000000000000000000000000000..e500835d8573df3c8b4e968d63b52e218ff8bdc3 Binary files /dev/null and b/learning-vscode/assets/WSL1.png differ diff --git a/learning-vscode/assets/WSL2.png b/learning-vscode/assets/WSL2.png new file mode 100644 index 0000000000000000000000000000000000000000..8f09d0ee0e0cd2c3a2774b1f0c25072eeb848146 Binary files /dev/null and b/learning-vscode/assets/WSL2.png differ diff --git a/learning-vscode/assets/back.png b/learning-vscode/assets/back.png new file mode 100644 index 0000000000000000000000000000000000000000..0674657248db1242420acd99ec7d510b8f3236cd Binary files /dev/null and b/learning-vscode/assets/back.png differ diff --git a/learning-vscode/assets/garde.png b/learning-vscode/assets/garde.png new file mode 100644 index 0000000000000000000000000000000000000000..7c82359c3ac6126ffeed79a081ab2c75c00e19dc Binary files /dev/null and b/learning-vscode/assets/garde.png differ diff --git a/learning-vscode/assets/logo_vscode.png b/learning-vscode/assets/logo_vscode.png new file mode 100644 index 0000000000000000000000000000000000000000..6e83e78f03c28af92ded68dc14117ed300d0f301 Binary files /dev/null and b/learning-vscode/assets/logo_vscode.png differ diff --git a/learning-vscode/assets/marp.config.js b/learning-vscode/assets/marp.config.js new file mode 100644 index 0000000000000000000000000000000000000000..c5a35bca5b0623dc640ce779365a6d00bf5dab64 --- /dev/null +++ b/learning-vscode/assets/marp.config.js @@ -0,0 +1,5 @@ +const marpKrokiPlugin = require('./kroki-plugin') + +module.exports = { + engine: ({ marp }) => marp.use(marpKrokiPlugin) +} diff --git a/learning-vscode/assets/new_ipynb.png b/learning-vscode/assets/new_ipynb.png new file mode 100755 index 0000000000000000000000000000000000000000..7d2402160eb7bcc6379a2d9a9bbf5b486eaeda23 Binary files /dev/null and b/learning-vscode/assets/new_ipynb.png differ diff --git a/learning-vscode/assets/term_preview.png b/learning-vscode/assets/term_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..3baf9b17f24fca6dce02e2fb35ac62cd68cd8790 Binary files /dev/null and b/learning-vscode/assets/term_preview.png differ diff --git a/learning-vscode/assets/tum.css b/learning-vscode/assets/tum.css new file mode 100644 index 0000000000000000000000000000000000000000..08d289362d7399b163db43fbc0e37f9b4a6c9397 --- /dev/null +++ b/learning-vscode/assets/tum.css @@ -0,0 +1,55 @@ +/* @theme tum */ + +@import 'default'; + +section { + /*background-color: #fff; + color: #000; + background-image: url('images/TUM_Logo_blau_rgb_s.svg'); + background-repeat: no-repeat; + background-position: right 40px top 40px; + background-size: 8%;*/ +} + +section.lead { + /*background-image: url('images/TUM_Uhrenturm.png'); + background-position: right; + background-size: 45%;*/ +} + +section h1, +section h2 { + color: #1f315c; +} +section a { + color: #5fb2e6; +} +section footer, +section::after { + color: #9cb7d4; +} + +section.invert { + background-color: #003359; + color: #fff; + /*background-image: url('images/TUM_Logo_weiss_rgb_s.svg');*/ +} + +section.lead.invert { + /*background-image: url('images/TUM_Uhrenturm_w.png');*/ +} + +section.invert h1, +section.invert footer, +section.invert::after { + color: #fff; +} + +section.invert a { + color: #e37222; +} + +/* Add "Page" prefix and total page number */ +section::after { + content: attr(data-marpit-pagination) ' / ' attr(data-marpit-pagination-total); +} diff --git a/learning-vscode/assets/ubuntu_logo.png b/learning-vscode/assets/ubuntu_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bcef29331940ca545ee124d7a508c4bf4eeb4771 Binary files /dev/null and b/learning-vscode/assets/ubuntu_logo.png differ diff --git a/learning-vscode/assets/ubuntu_terminal.png b/learning-vscode/assets/ubuntu_terminal.png new file mode 100755 index 0000000000000000000000000000000000000000..567a0239dd3da98adccbc041cfdce890fc678959 Binary files /dev/null and b/learning-vscode/assets/ubuntu_terminal.png differ diff --git a/learning-vscode/assets/ubuntu_wsl.png b/learning-vscode/assets/ubuntu_wsl.png new file mode 100755 index 0000000000000000000000000000000000000000..032e61fd66cfe350b195602a12587d247538298d Binary files /dev/null and b/learning-vscode/assets/ubuntu_wsl.png differ diff --git a/learning-vscode/assets/vscode_add_ext.png b/learning-vscode/assets/vscode_add_ext.png new file mode 100755 index 0000000000000000000000000000000000000000..d53186c681a4f3236165958d96bff45089414c93 Binary files /dev/null and b/learning-vscode/assets/vscode_add_ext.png differ diff --git a/learning-vscode/assets/vscode_distro.png b/learning-vscode/assets/vscode_distro.png new file mode 100755 index 0000000000000000000000000000000000000000..2a006e593e091c75d92387957a965d906c3cd5f5 Binary files /dev/null and b/learning-vscode/assets/vscode_distro.png differ diff --git a/learning-vscode/assets/vscode_extensions.png b/learning-vscode/assets/vscode_extensions.png new file mode 100755 index 0000000000000000000000000000000000000000..649c92cee32a7e913c96a51384911d8d601edbea Binary files /dev/null and b/learning-vscode/assets/vscode_extensions.png differ diff --git a/learning-vscode/assets/vscode_install.png b/learning-vscode/assets/vscode_install.png new file mode 100644 index 0000000000000000000000000000000000000000..e8176ccbe56a6560835a608bf501cb3f468dd845 Binary files /dev/null and b/learning-vscode/assets/vscode_install.png differ diff --git a/learning-vscode/assets/vscode_kernel.png b/learning-vscode/assets/vscode_kernel.png new file mode 100755 index 0000000000000000000000000000000000000000..f81f50854c21b1084462f41ae32aebc01af24b34 Binary files /dev/null and b/learning-vscode/assets/vscode_kernel.png differ diff --git a/learning-vscode/assets/vscode_missing.png b/learning-vscode/assets/vscode_missing.png new file mode 100755 index 0000000000000000000000000000000000000000..81d09e2849216d024b60eb0b375a55ed50e87f21 Binary files /dev/null and b/learning-vscode/assets/vscode_missing.png differ diff --git a/learning-vscode/assets/vscode_nopip.png b/learning-vscode/assets/vscode_nopip.png new file mode 100755 index 0000000000000000000000000000000000000000..05090016c4aa095b03416b797fde925648f73027 Binary files /dev/null and b/learning-vscode/assets/vscode_nopip.png differ diff --git a/learning-vscode/assets/vscode_pyenv.png b/learning-vscode/assets/vscode_pyenv.png new file mode 100755 index 0000000000000000000000000000000000000000..2925a7d02a8c99475f63a70268de76ade0f41199 Binary files /dev/null and b/learning-vscode/assets/vscode_pyenv.png differ diff --git a/learning-vscode/assets/vscode_terminal.png b/learning-vscode/assets/vscode_terminal.png new file mode 100755 index 0000000000000000000000000000000000000000..c4402cba862733d801e5174065e2628ce9f6f1c6 Binary files /dev/null and b/learning-vscode/assets/vscode_terminal.png differ diff --git a/learning-vscode/assets/vscode_wsl.png b/learning-vscode/assets/vscode_wsl.png new file mode 100755 index 0000000000000000000000000000000000000000..b87dc76e9e64d3724bf006b88488ea35bf64d6d8 Binary files /dev/null and b/learning-vscode/assets/vscode_wsl.png differ diff --git a/learning-vscode/compile.sh b/learning-vscode/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..cd30007cb718e965ae1da9b8cacf435ed268bf91 --- /dev/null +++ b/learning-vscode/compile.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# +# PY Barriat, June 2023 +# +# Download and install marp (MarkDown slides extension) from here: +# https://github.com/marp-team/marp-cli/releases +# + +marp --allow-local-files --theme ./assets/tum.css VSCode_WSL.md -o VSCode_WSL.pdf +marp --template bespoke --bespoke.progress --allow-local-files --theme ./assets/tum.css VSCode_WSL.md -o VSCode_WSL.html + +marp --allow-local-files --theme ./assets/tum.css VSCode_Ubuntu.md -o VSCode_Ubuntu.pdf +marp --template bespoke --bespoke.progress --allow-local-files --theme ./assets/tum.css VSCode_Ubuntu.md -o VSCode_Ubuntu.html diff --git a/learning-vscode/example/example.ipynb b/learning-vscode/example/example.ipynb new file mode 100755 index 0000000000000000000000000000000000000000..7c4812f4611b5e1574e2ace1d3c14463c44b3b35 --- /dev/null +++ b/learning-vscode/example/example.ipynb @@ -0,0 +1,133 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from netCDF4 import Dataset\n", + "import numpy as np\n", + "import cartopy.crs as ccrs\n", + "import cartopy.feature as cfeature\n", + "from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER\n", + "from cartopy.util import add_cyclic_point\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.ticker as mticker" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "my_example_nc_file = './prmsl.2000.nc'\n", + "fh = Dataset(my_example_nc_file, mode='r')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(366, 91, 180)\n" + ] + } + ], + "source": [ + "lons = fh.variables['lon'][:]\n", + "lats = fh.variables['lat'][:]\n", + "times = fh.variables['time'][:]\n", + "times_unit = fh.variables['time'].units\n", + "var = fh.variables['prmsl']\n", + "var_units = fh.variables['prmsl'].units\n", + "\n", + "print(np.shape(var))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Daily Pressure at Mean Sea Level')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAAH9CAYAAADVpICtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA+wAAAPsAHpfpy9AAEAAElEQVR4nOydd3gVZfbHP3N7T3LTC6mQhBJ6RwUBCyh2l2LBXtbVXdefuuoWXXVdXV3dXXVdV1exobj2CkhRpPceanrvub3MzO+PSy6EJJCEQMCdz/PkgTvzzjtn5s6d+c55z3uOIMuyjIKCgoKCgoKCgoJCt1H1tgEKCgoKCgoKCgoKZzqKqFZQUFBQUFBQUFA4QRRRraCgoKCgoKCgoHCCKKJaQUFBQUFBQUFB4QRRRLWCgoKCgoKCgoLCCaKIagUFBQUFBQUFBYUTRBHVCgoKCgoKCgoKCieIIqoVFBQUFBQUFBQUThBFVCsoKCgoKCgoKCicIIqoVlD4CSMIAo8++mj48/LlyxEEgeXLl/eaTQoKCicP5TeuoNB7KKJaQaEXefPNNxEEIfxnMBhITExkypQpPPPMM9TX1/e2iceksLCwlf0qlYrIyEimTJnCt99+29vm/ST49NNP+eMf/9jp9jfccEP4WmpsbGyzPhgMEh8fjyAITJ06tQctPTnU19fz4IMPMnDgQMxmM3a7nby8PO644w7y8/NPuT0t1/wTTzxxyvetoKBweqPpbQMUFBTgd7/7HdnZ2QSDQWpqavjxxx95+OGHee655/jvf//L2Wef3a1+PR4PGs3J/5lfddVVXHrppUiSxMGDB3n55ZeZPn06X3/9NRdeeOFJ3/9PmU8//ZR33nmH3//+953eRhAEZFlmwYIF3Hbbba3WLVy4kOrqavR6fU+b2uM0NjYycuRIampqmDt3Lnl5ebhcLnbv3s0XX3zB2LFjyc3N7W0zFRQUFABFVCsonBacf/75nHXWWeHP999/P5s2beKCCy7gsssuY9euXcTHx3e5X4PB0JNmdsiQIUO49tprw58vv/xyhg4dyvPPP9+hqA4EAsiyjE6nOyU29hQulwuz2dzbZhwTlUrF9OnTeeedd9qI6rfffptRo0ZRXV3dS9Z1ntdee42CggIWLlzI+eef32pdMBikqamplyxTUFBQaIsS/qGgcJoyfPhwnn/+eerr63nxxRfDy4uKivjFL35B//79MZvN2Gw2pk6dyqpVq9r0cXRM9dG88sorCILAunXr2qz74IMPEASB7777rsu2DxkyhJiYGAoKCoDDcZ5vvfUWTz75JOnp6RgMBnbt2gXAgQMHmDNnDrGxsej1egYNGsS///3vNv3+61//YsiQIVgsFmw2GwMGDOCxxx7rUptjxZwefb4effRRBEFg+/bt3HTTTcTExJCSkhJev2TJEiZPnozVasVsNjNx4kRWrFjRqXP03HPPcfbZZ4ePOTc3l2effRZZlsNtJk2axLx58xBFsVWYTWe49tpr+fHHHykqKgova25u5vPPP2/1AnQksizzz3/+kyFDhmAwGIiOjmbWrFmt+gBYsWIFs2bNIj09Hb1eT1xcHNdeey2lpaWt2rWENy1btoyHHnqIhIQEjEYj5513XvjaOBb79+8H4JxzzmmzTqPREB0d3WqZw+HggQceICMjA51OR2pqKvfffz8ej6eNXeeddx6JiYnodDoyMzN56KGH8Pl8x7Wps3TmXN59993odDoaGhrabP/EE08gCAIHDhwIL9u0aROXXHIJUVFRGI1GRo4cyaefftpjNisoKJwYiqdaQeE0ZubMmdx6660sXLiQxx9/HID169ezbNkyrrjiCtLS0qitreX1119n8uTJbNiwgUGDBnW6/1mzZnHvvffy9ttvM3r06Fbr3n77bVJSUpg8eXKX7a6vr6e+vp5+/fq1Wv7MM88gSRJ33XUXGo0Gu93O3r17GTduHHa7nXvvvZeoqCi++eYbbrvtNurq6vjNb34DwBtvvMEdd9zB5Zdfzp133oksy+zZs6eViO1Mm+4we/ZsUlJSeOyxx3A6nQAsWLCA2bNnM3HiRB5//HFkWebNN99kypQpfPfdd+0KwSP561//ykUXXcRVV12FRqNh8eLF3H///TQ0NPDkk08C8MgjjyBJEitXrmTevHldsvniiy8mIiKCd955h0ceeQSAjz76iEAgwKxZs/jrX//aZpu7776bV155hWuuuYY777yT6upq/vGPfzBhwgS2bNlCTEwMAB9++CF1dXXccsstxMfHs2/fPv71r3+xdu1atm3bhtFobNXv/fffj8Fg4OGHH6a2tpZnn32Wa665pt0XwSNJT08HQt/rnXfeecy2Xq+XyZMns2/fPm677Tb69u3Ltm3beOGFF9ixYwdff/11+IXk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uuuu41//+hfz589n/fr1XHDBBZx33nmsXbsWgAceeIDf/e53PPTQQ2zZsoUnn3ySF198kVtvvTW6j1/84heMHz+exYsXYzabeeSRR4COlvtgMMjKlSuj265fv55wOIzH44mZlXLFihVEIpGE1cmyZcv47ne/y4oVK1ixYgV5eXmcccYZVFVVRbepqqpi+vTpFBUVsWTJEjZt2sRvf/tb0tLSotscD3XRlYqKCm655RZOOeWUmOVtbW3MnDmTUCjEG2+8wZYtW3jiiSdifiw88sgjWK1WlixZwrhx47jzzjtj9lFWVnbYlaQvXvFJhKNd+fJ6vUyfPp3f/va3Xe7j29/+NuvWreMf//gHGzdu5KabbuKGG27gH//4R3Sbq6++mttuu41XX32VBQsWxJwjAHfcccdhdXNo+BZCDC7mRBdAiL70/PPPEwqFooEYiHbxyMnJidk2NzeXdevWRf991llnUVtbS3Nz82Hbzp49myeeeAKAxsZGNm7cyKxZs9A0jfvvvx/oCFMNDQ0JD02BQICXX36Zl156idNOOw3oaDX817/+xYMPPsjf/vY33n//fc4991wuuugiAIqLi5kzZw7vvvtudD/Nzc2cfvrplJeXM2LEiGjL/fDhwykqKmLZsmXR17p8+XJOPfVUdF1n2bJljBgxIrq8rKyMoqKi/quAL1i8eHHMv59++mleffVVFi9eHP3hdfvtt3PmmWfy0EMPRbcbOnRozOOOh7roTDgcZs6cOdx3330sX748pjvU/fffT3Z2Ns8991x02aH3FjQ3NzNy5EjKy8sZN24cr7/+esx6k8lEbm7uMX0NPXXuuedy7rnnAnR65evb3/42QExdHOr999/n4Ycfjnbzuu6663jiiSf48MMPueSSS4COVvxJkyZRVFREfn5+9Jw5yO12D7i6EULER1qqxXHlySef5KKLLiIrK6tXj7darYcFaugI1dXV1WzevJm3336b8vJy0tPTmTVrFp999hmtra0sX76c5ORkpkyZEu/LiEs4HEbTNOx2e8xyh8MR7aoyc+ZM3nnnHTZu3AjAzp07efPNNznvvPOi299xxx389Kc/xWKx8Pzzz/PjH/84uu70008/asv9weWJ/pHxRT6fj3A4jMvlAkDXdf71r38xZswYzj33XLKyspg8eTJPPfVUzOOOx7qAjtdVUlIS8yP0oNdee42TTz6ZOXPmkJ2dTXl5Ob/5zW/QNC26zY033sj8+fOxWCzcfvvt/O///m9/Fj9hZs6cySuvvEJ9fT1KKZYtW8bWrVtjus/cc889nHDCCbhcLhwOB2effXYCSyyE6BdKiEHEZrOpZ555ptN1a9asUYBavHhxzPKdO3cqQK1cuTJm+be//W119tlnd+t5Q6GQcjqd6g9/+IO6/vrr1Y9//OPourFjx6rXXntNXXjhher888/v2Qs6RqZNm6amTZum9uzZoyKRiHr22WeV0WhUVqtVKaWUruvqF7/4hTIajcpsNitAXX/99YftJxKJqOrqaqXreszy+fPnK7PZrNrb25WmaSo1NVWtWbNGrVq1SmVlZSld11Vzc7MyGo3qxRdf7JfX3B3XXXedGjZsmPL5fEoppaqrqxWgHA6HeuCBB9SaNWvUH//4R2Wz2dTTTz8d89jjrS4WLVqkiouLVXNzs1JKqSuvvDLm/WCz2ZTNZlO33HKL+vTTT9Vzzz2n0tLS1P/+7//G7EfXdbV//36laVrM8nnz5imDwaBcLlfM3znnnHPMX1t3Henz5OC5sXz58sPWtba2qvPPP18Bymw2K5vNpp599tnDtvP5fKq+vv6w5cXFxcpqtR5WN88991y8L0kIkUDS/UMcN/785z8zdOhQzjjjjJjlQ4cOJS8vjyVLlkQv1+q6ztKlS/n+97/frX1bLBZmzpzJsmXL2Lx5c7TLB8Bpp53G0qVLeffddwdMS92zzz7L3LlzKSoqwmQyMWnSJObMmRPt8/nSSy/x9NNP89xzzzFu3Dg+++wzbrzxRsaOHcv1118f3U9Xl+9nz55NJBJhxYoVZGdnYzQaOeGEE1BKEQqF2LBhAxUVFSilOP300/vtdR/J3XffzYIFC6IjtEBHP3iA888/n1tuuQWACRMmsGnTJh599FGuvvrq6OOPp7qor6/nqquu4oUXXiA1NbXTbZRSjB8/ngceeACAiRMnUl1dza9+9Svuvvvu6HYGg4G8vLxO9zF06FAWLVoUs+xg3Q9md955J9XV1SxZsoSsrCxef/11vvvd7zJq1KiYK1UOh6PL13vjjTfy3e9+N2ZZZ1fJhBCDh4RqMeB5PB527NgBdHzR7969m88++4z09HSGDBkCdFzW//vf/86tt956WD9Jg8HAzTffzF133cXo0aMZO3YsDz74IH6/P+aGxqOZPXs29957L36/n1NPPTW6/LTTTmPu3Lm0t7cPmMv7paWlvPPOO3i9Xtra2sjLy+Ob3/wmpaWlANxyyy38+Mc/Zs6cOQCUl5dTVVXF/fffHxOqu1JUVERZWRnLli0jOzubWbNmYTR29CY7+OOjoqKCsWPHkp2dfexeaDfdcccdPP744yxdupQTTjghujwzMxOz2cyYMWNith87diwvvPBCt/Y92OoCYOPGjVRXV/OVr3wluuzguOxms5nVq1eTl5fXab00NzfT3t5OUlLSUZ/HYrFQVlbWt4VPsJ07d/Loo4/yySefMHnyZADGjx/Pu+++y6OPPtrt0V0yMjKOu7oR4stOQrUY8D755JOYFr558+Yxb948rrzyyuhwWC+99BJerzemZfGLDg4X96Mf/YjGxkYmTpzI4sWLe3Sj0OzZs/nZz37G5MmTSUlJiS6fNWsWHo+HzMzMmMA2ELhcLlwuF83NzSxatIgf/vCHQMePEJPJFLOtyWSKttx2x+zZs1m2bBk5OTl89atfjS4/2Je4srJyQPzIuPnmm/nrX//Kf//7XyZMmBCzzmKxcOKJJ7J169aY5Vu3bj3sprwjGSx1cdDUqVNZv359zLI777yThoYGHn/8ccrKypgxY0an9ZKent6tQH28OjicYrzvHyHEcShhHU+EEMfM4sWL1ZtvvqkqKirU4sWL1fjx49WIESNUW1ubUqqj/2xeXp564403VGVlpfrnP/+pMjMz1Y033tjt53jxxReV0WhUTqdTrV+/Prp81apVyu12K4PBoF577bU+f2098YMf/EC53W61aNEiVV1dHf1rb2+PbvPGG28os9ms/vSnP6kdO3aov/71r8rhcHTZ17Yzg6EujubQPtWrV69WFotF3X333Wr79u3q9ddfV5mZmWrevHnd2t+8efNUWVlZTL0f/Du0X3p/am9vV2vWrFFr1qxRVqtV3X333WrNmjWqqqpKKaVUY2OjWrNmjVq6dKkC1JNPPqnWrFmjqqurlVId91eUlZWpGTNmqA8++EDt2LFD/fa3v1UGg0H985//7FYZiouL1R133HFYvRzs3y6EGJwkVAtxHFqwYIEqLS1VVqtVZWVlqblz56ra2tro+ra2NnXTTTepIUOGKLvdroYOHapuu+226A183VFbW6sMBkP0ZryDIpGISklJUSaTKeEhAej079Bg+Oyzz6qR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", + "text/plain": [ + "<Figure size 816x612 with 3 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.subplots(figsize=(8, 6), dpi=102)\n", + "plt.axis('off')\n", + "\n", + "ax = plt.axes(projection=ccrs.Robinson(central_longitude=10.0))\n", + "ax.coastlines()\n", + "\n", + "# Plot Data\n", + "data = np.squeeze(var[1,:,:])\n", + "#cs = ax.pcolormesh(lons, lats, data, transform=ccrs.PlateCarree(), shading='auto')\n", + "lon = np.arange(0, 360, 2)\n", + "data, lon = add_cyclic_point(data, coord=lon)\n", + "cs = ax.contourf(lon, lats, data, transform=ccrs.PlateCarree(), transform_first=False)\n", + "\n", + "# Add Grid Lines\n", + "gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, linewidth=0.5, color=\"grey\")\n", + "gl.xlocator = mticker.FixedLocator(np.arange(-170,191,36))\n", + "gl.ylocator = mticker.FixedLocator(np.arange(-90,90,15))\n", + "gl.rotate_labels = False\n", + "gl.top_labels = False\n", + "gl.xformatter = LONGITUDE_FORMATTER\n", + "gl.yformatter = LATITUDE_FORMATTER\n", + "\n", + "# Add Colorbar\n", + "cbar = plt.colorbar(cs,orientation=\"horizontal\")\n", + "cbar.set_label(var_units)\n", + "\n", + "# Add Title\n", + "plt.title('Daily Pressure at Mean Sea Level')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/learning-vscode/example/prmsl.2000.nc b/learning-vscode/example/prmsl.2000.nc new file mode 100755 index 0000000000000000000000000000000000000000..eb3f88879fc1167dd80a2700c00221c74a61ddbc Binary files /dev/null and b/learning-vscode/example/prmsl.2000.nc differ