aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2017-10-12 15:13:13 +0200
committerKatharina Fey <kookie@spacekookie.de>2017-10-12 15:13:13 +0200
commit964d22f599ab7f300663e4ef3dac0f8749b1076d (patch)
tree5ab4ded280c12e230fdb34bef1839ec683e854c0
parentb004cfd65b993a92a24767a9b022fb4e04554e7d (diff)
Moving all of the website into the public repo. This is a mess
-rwxr-xr-xMakefile124
-rwxr-xr-xREADME.md117
-rwxr-xr-xblog_update.sh11
-rw-r--r--content/blog/00_introduction.md14
-rwxr-xr-xcontent/blog/hardware/001-omnitool-introduction.md57
-rwxr-xr-xcontent/blog/hardware/002-christmas-bauble.md33
-rwxr-xr-xcontent/blog/hardware/003-christmas-bauble-update.md38
-rwxr-xr-xcontent/blog/hardware/004-ws2812b-breakouts.md21
-rwxr-xr-xcontent/blog/hardware/005-open-plantb0t.md51
-rwxr-xr-xcontent/blog/miscellanious/000-newdawn.md89
-rwxr-xr-xcontent/blog/miscellanious/001-lonelyrobot.md45
-rwxr-xr-xcontent/blog/miscellanious/002-reedb-c-port.md53
-rwxr-xr-xcontent/blog/miscellanious/003-recovering-a-luks-container.md59
-rwxr-xr-xcontent/blog/miscellanious/004-getting-started-with-xmmpp.md91
-rwxr-xr-xcontent/blog/miscellanious/005-getting-started-with-reedb.md127
-rw-r--r--content/blog/miscellanious/006-another-blog-update.md27
-rw-r--r--content/blog/miscellanious/007-post-congress-2017.md67
-rw-r--r--content/blog/miscellanious/008-libgdx-super-ui.md116
-rw-r--r--content/blog/miscellanious/009-moonscript-adventures.md60
-rwxr-xr-xcontent/blog/summerofcode/gsoc-000-i-got-accepted.md25
-rwxr-xr-xcontent/blog/summerofcode/gsoc-001-prepping-the-patient.md37
-rw-r--r--content/blog/summerofcode/gsoc-002-final-evaluation.md69
-rw-r--r--content/downloads/cuckoo_hashing.pdfbin0 -> 648083 bytes
-rw-r--r--content/downloads/gameofcodes/artpack1.zipbin0 -> 14162 bytes
-rw-r--r--content/images/banner_bg2x.pngbin0 -> 105942 bytes
-rwxr-xr-xcontent/images/banners/plantb0t_revA.pngbin0 -> 854086 bytes
-rwxr-xr-xcontent/images/cf_disk.pngbin0 -> 736249 bytes
-rwxr-xr-xcontent/images/cf_disk1.pngbin0 -> 737168 bytes
-rwxr-xr-xcontent/images/christmas_bauble_pcb.jpgbin0 -> 58657 bytes
-rwxr-xr-xcontent/images/christmas_bauble_pcb.pngbin0 -> 25852 bytes
-rwxr-xr-xcontent/images/christmas_bauble_render.pngbin0 -> 140008 bytes
-rwxr-xr-xcontent/images/example.pngbin0 -> 60265 bytes
-rwxr-xr-xcontent/images/favicon.icobin0 -> 9383 bytes
-rwxr-xr-xcontent/images/flora_pinout.pngbin0 -> 205698 bytes
-rwxr-xr-xcontent/images/flora_withleds.jpgbin0 -> 352221 bytes
-rwxr-xr-xcontent/images/front_matrix_background.pngbin0 -> 606577 bytes
-rw-r--r--content/images/gameofcodes/series01/01_setup_ui.pngbin0 -> 4995 bytes
-rw-r--r--content/images/gameofcodes/series01/02_setup_ui.pngbin0 -> 56589 bytes
-rw-r--r--content/images/gameofcodes/series01/04_eclipse.pngbin0 -> 40376 bytes
-rw-r--r--content/images/gameofcodes/series01/05_eclipse.pngbin0 -> 58744 bytes
-rw-r--r--content/images/gameofcodes/series01/06_eclipse.pngbin0 -> 81130 bytes
-rw-r--r--content/images/gameofcodes/series01/07_gamechange.pngbin0 -> 5807 bytes
-rw-r--r--content/images/gameofcodes/series02/01_framelife.pngbin0 -> 34106 bytes
-rw-r--r--content/images/gameofcodes/series02/02_createclass.pngbin0 -> 103679 bytes
-rw-r--r--content/images/gameofcodes/series03/01_badrotation.gifbin0 -> 1433614 bytes
-rw-r--r--content/images/gameofcodes/series03/02_rotating.gifbin0 -> 1988406 bytes
-rw-r--r--content/images/gameofcodes/series04/01_800x600.pngbin0 -> 1980623 bytes
-rw-r--r--content/images/gameofcodes/series04/02_720p.pngbin0 -> 1941435 bytes
-rw-r--r--content/images/gameofcodes/series04/03_1080p.pngbin0 -> 1559428 bytes
-rw-r--r--content/images/gameofcodes/series04/04_1440p.pngbin0 -> 1363850 bytes
-rwxr-xr-xcontent/images/gsoc/00_acceptance.pngbin0 -> 31496 bytes
-rwxr-xr-xcontent/images/gsoc/01_debugger.pngbin0 -> 15747 bytes
-rw-r--r--content/images/gsoc/02_cryptoui.pngbin0 -> 121585 bytes
-rwxr-xr-xcontent/images/jabber/pidgin1.pngbin0 -> 19964 bytes
-rwxr-xr-xcontent/images/jabber/pidgin2.pngbin0 -> 35710 bytes
-rwxr-xr-xcontent/images/jabber/pidgin3.pngbin0 -> 47108 bytes
-rwxr-xr-xcontent/images/jabber/pidgin4.pngbin0 -> 67670 bytes
-rwxr-xr-xcontent/images/jabber/pidgin5.pngbin0 -> 32047 bytes
-rwxr-xr-xcontent/images/jabber/pidgin6.pngbin0 -> 28329 bytes
-rw-r--r--content/images/libgdx_ui/01_base_problem.pngbin0 -> 46502 bytes
-rw-r--r--content/images/libgdx_ui/02_ui_structure.pngbin0 -> 91085 bytes
-rwxr-xr-xcontent/images/logo3.pngbin0 -> 19845 bytes
-rw-r--r--content/images/lua_moon_banner.jpgbin0 -> 59668 bytes
-rw-r--r--content/images/lua_moon_banner.pngbin0 -> 259009 bytes
-rwxr-xr-xcontent/images/omnitool_background.jpgbin0 -> 139599 bytes
-rwxr-xr-xcontent/images/omnitool_background2.jpgbin0 -> 146510 bytes
-rwxr-xr-xcontent/images/plantb0t_RevA_front.pngbin0 -> 216957 bytes
-rwxr-xr-xcontent/images/plantb0t_RevA_naked.pngbin0 -> 80064 bytes
-rwxr-xr-xcontent/images/rad1o_badge.pngbin0 -> 3006098 bytes
-rwxr-xr-xcontent/images/rdb_article_banner.pngbin0 -> 253384 bytes
-rwxr-xr-xcontent/images/reedb_banner.pngbin0 -> 27927 bytes
-rwxr-xr-xcontent/images/silly_no_visitors_blog.png0
-rwxr-xr-xcontent/images/ws_2812b_single.pngbin0 -> 32746 bytes
-rw-r--r--content/kookie.txt112
-rwxr-xr-xcontent/pages/aboutme.md21
-rwxr-xr-xcontent/pages/home.md9
-rw-r--r--content/pages/showcase.md6
-rwxr-xr-xcontent/pages/teaching.md6
-rw-r--r--content/pgp/kookie.txt114
-rwxr-xr-xcontent/pgp/msg16
-rwxr-xr-xcontent/teaching/gameofcodes/01-goc-setup-basics.md296
-rw-r--r--content/teaching/gameofcodes/02-goc-input-movement.md270
-rw-r--r--content/teaching/gameofcodes/03-goc-input-rotation.md159
-rw-r--r--content/teaching/jni/01-jni-intro.md110
-rwxr-xr-xdevelop_server.sh103
-rwxr-xr-xfabfile.py94
-rwxr-xr-xpelicanconf.py85
-rwxr-xr-xplugins/summary/Readme.rst53
-rwxr-xr-xplugins/summary/__init__.py1
-rw-r--r--plugins/summary/__pycache__/__init__.cpython-36.pycbin0 -> 165 bytes
-rw-r--r--plugins/summary/__pycache__/summary.cpython-36.pycbin0 -> 1968 bytes
-rwxr-xr-xplugins/summary/summary.py90
-rwxr-xr-xplugins/summary/test_summary.py75
-rwxr-xr-xpublishconf.py24
-rwxr-xr-xstatic/fonts/opensans-02a7f5c491cda3d79832291d9f0903a1086ad308.woff2bin16052 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-0780068aad6429b678dbfc89a831016b16efa340.woff2bin21288 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-082d935809ff8624c407f5ebfa9f707031f6871d.woff2bin22216 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-0843ae9e7843eae6a72c5b8f28d4dd6e5106f516.woff2bin19652 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-101147f1175d6b5ffc2f79f8a3f64a0d7f94e418.woff2bin15028 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-14a380d9ddfdee7aecf38c241c450bfe813d94e5.woff2bin16212 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-1771169127bd9e07adbb7c767f2804f20ab73745.woff2bin22288 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-231fcd661359bf887f4f24566723a0d640c015ad.woff2bin15172 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-256fc89d0e1b746440955b22d1792532cd9c8b28.woff2bin23676 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-257209387d9006aad15c25e62a999102d74e2d34.ttfbin25460 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-30e035a07a13db060570f5382a749e6150963c7d.woff2bin19556 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-3601b8c8df77687232aa48455f95585cd02a1c20.woff2bin16228 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-3823779db9f51a34658809ce66bdd6ed1145ed8e.ttfbin24476 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-38448be4db4d82e2ccf22e2527f6e7831b053b30.woff2bin15060 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-3a9baf0916be2f57d8dc0edb6ac1d62584613628.woff2bin18652 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-3cd7287c1f241c0bd6df553af45ef1459dea2a29.woff2bin20552 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-3d488e790bbea9ba0975ddd77ad8378510caee01.woff2bin23592 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-42286008c766c2fa87d1b3dfa90d8d9f273e580a.woff2bin23040 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-4b163b622b3cfc64eacdb3a24f485d58be1bdbae.woff2bin21800 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-510e65d731654fda529690b06e382db085b612e3.woff2bin34356 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-5147015c86d27c3dce7724fc177e7543eda86c0d.woff2bin34256 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-57690d9bdac0b609a7a309afa66d228213b7967a.woff2bin18028 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-58f09077c668b82398e90f3104c01a9bdf3b3b40.woff2bin14956 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-5d011e60828f77f264c3305324cd6179e74d59ab.woff2bin20464 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-5d71d1757bb745b55a9eb47f628062753cb5b58c.woff2bin17984 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-6058911ac41968c2164c6a3ba59cc884939c2511.woff2bin19672 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-618b78a8f6ffe7e1998eab67268859e2ab54be8e.ttfbin24292 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-6430a52dab446fc805d3f5b1221bf9a38e154d3b.woff2bin20768 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-6aa866c008a8bb532458b049ab255945e286940a.woff2bin22416 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-6c118f4639d3ee03a0c1cce2a6047ccb5e4b6dac.woff2bin16224 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-6cd331cfa6a58dd852a22e42276a2dd2e1445ae6.woff2bin21728 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-797e92ab741300e5bd43f45ae934f2b2a7b137e6.woff2bin33148 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-808769b38614943b5116b559ac7528386b7cb020.woff2bin16080 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-829b0eefbb7ba0be775b7d741d0c41978a20a481.eotbin18218 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-85e3ce3d35d4e067d1f533d1aab7a8e0ee51a963.woff2bin21316 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-8ed28b622974c995298647854f054668863021d1.woff2bin18280 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-92d2e645589fad0f22b789b050928dea5db6bc3b.woff2bin19380 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-95486a9c61867ecd4b703703ff4343306c16e03b.woff2bin34396 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-95618ec1cef0a5becd89ad80bff3d140a358b6ad.woff2bin21220 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-9ead99d8fbb79a1f78c2ed07bc1f1aee1e4866ba.woff2bin20560 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-9ee51d47218830874fc05f4a0c1970392608ede0.woff2bin19836 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-a590b0edc76d8942dd06ba85279414d91af85f43.woff2bin21556 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-a824a9f6a32d64bcd79534ad310703b5ff94d24e.woff2bin21452 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-aeac2c6d52f83f11761dad079a4b4ce67b1985ed.woff2bin19760 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-af9bb31cbe924f6f4742cda969cfa46ee92bdb8a.ttfbin24400 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-b3601a97e762646a1e17e821ac947646a686f38d.woff2bin19160 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-b606fc8cefcb8c9b9e11cd25c3d04864893a5651.woff2bin15112 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-bae60a4ef6c2573e304d448d4478294c0ba7778f.woff2bin31436 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-c2a6cdc1dc4d57eef444571f285fd73ad164fdb1.woff2bin19856 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-cb44fe2b2923f938486e2c5f7f0fa7a00bbd24d2.ttfbin25536 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-cc5e3ec30d0402200e3c1905a44ea5d37d543368.woff2bin32376 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-cc9bc768c595f045f6a31340c763c5e494e0ee0e.woff2bin31844 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-ccbe7ac33491ce00e73dd57ddfee63f24121bf4b.woff2bin15560 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-ce6f0578fc94b8e05a1eaf537c2587e938f2a158.woff2bin21820 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-d0eeac030704f91d16e2201d107d7ee8a2c1dd2a.woff2bin23836 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-d2f58eb442c4d4f47f2bf2950560a1e56ef02b76.woff2bin19956 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg1637
-rwxr-xr-xstatic/fonts/opensans-e3fd16403f24a08113a25694375f81f33c5a258c.woff2bin15040 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-e78854b43389426899362d164d53fbf48274b93a.woff2bin21108 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-e839476c7410d2f694c65d3944604ad28914ca2f.woff2bin20676 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-e9d0949ee599c94d4f310e35793abe016cb7e86b.ttfbin24268 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-ebd05b36b3d9ee7ed2cbcee6cdf5796ce05d839c.woff2bin16148 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-ec2590bc030c185025fbc09afe2f268af6e38985.woff2bin15556 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-ee96f92c030d0e35d631a16c507a7a269e9594b5.ttfbin25312 -> 0 bytes
-rwxr-xr-xstatic/fonts/opensans-f06dff19fbba12718cd431381a1dd1202bd13763.woff2bin21332 -> 0 bytes
-rwxr-xr-xteaching/encryption/01-encryption-101-basics.md70
-rwxr-xr-xteaching/encryption/02-encryption-101-pgp-on-mac.md366
-rwxr-xr-xteaching/encryption/03-encryption-101-pgp-on-ios.md161
-rwxr-xr-xteaching/encryption/04-encryption-101-pgp-on-windows.md227
-rwxr-xr-xteaching/encryption/05-encryption-101-pgp-on-linux.md142
-rwxr-xr-xteaching/gameofcode/01-libgdx-game-of-codes-the-setup-basics.md365
-rwxr-xr-xteaching/gameofcode/02-libgdx-game-of-codes-input-movement.md345
-rwxr-xr-xteaching/gameofcode/03-libgdx-game-of-codes-input-movement-2-0.md476
-rwxr-xr-xteaching/gameofcode/04-libgdx-game-of-codes-textures-and-asset-management.md216
-rwxr-xr-xteaching/gameofcode/05-libgdx-game-of-codes-cameras-their-controllers-and-more-input.md455
-rwxr-xr-xteaching/gameofcode/06-libgdx-game-of-codes-creating-a-world-more-refactoring.md333
-rwxr-xr-xteaching/gameofcode/07-game-of-codes-user-interfaces-and-the-power-of-scene2d.md359
-rwxr-xr-xteaching/gameofcode/08-libgdx-game-of-codes-screens-subscreens.md381
-rwxr-xr-xteaching/gameofcode/09-libgdx-game-of-codes-modifying-libgdx-part-i.md326
-rwxr-xr-xteaching/gameofcode/09.5-libgdx-game-of-codes-continuation.md28
-rwxr-xr-xteaching/gameofcode/10-libgdx-game-of-codes-shaders.md7
-rwxr-xr-xtheme/LICENSE (renamed from LICENSE)0
-rwxr-xr-xtheme/README.md114
-rwxr-xr-xtheme/article-background.png (renamed from article-background.png)bin1098710 -> 1098710 bytes
-rwxr-xr-xtheme/article.png (renamed from article.png)bin139081 -> 139081 bytes
-rwxr-xr-xtheme/homepage-background.png (renamed from homepage-background.png)bin1411809 -> 1411809 bytes
-rwxr-xr-xtheme/homepage.png (renamed from homepage.png)bin140571 -> 140571 bytes
-rwxr-xr-xtheme/static/css/all.min.css (renamed from static/css/all.min.css)0
-rwxr-xr-xtheme/static/css/bootstrap.css (renamed from static/css/bootstrap.css)0
-rwxr-xr-xtheme/static/css/bootstrap.css.map (renamed from static/css/bootstrap.css.map)0
-rwxr-xr-xtheme/static/css/bootstrap.min.css (renamed from static/css/bootstrap.min.css)0
-rwxr-xr-xtheme/static/css/fonts.css (renamed from static/css/fonts.css)0
-rw-r--r--theme/static/css/home.css (renamed from static/css/home.css)0
-rwxr-xr-xtheme/static/css/nest.css (renamed from static/css/nest.css)0
-rwxr-xr-xtheme/static/css/pygment.css (renamed from static/css/pygment.css)0
-rwxr-xr-xtheme/static/fonts/glyphicons-halflings-regular.eot (renamed from static/fonts/glyphicons-halflings-regular.eot)bin20127 -> 20127 bytes
-rwxr-xr-xtheme/static/fonts/glyphicons-halflings-regular.svg (renamed from static/fonts/glyphicons-halflings-regular.svg)0
-rwxr-xr-xtheme/static/fonts/glyphicons-halflings-regular.ttf (renamed from static/fonts/glyphicons-halflings-regular.ttf)bin45404 -> 45404 bytes
-rwxr-xr-xtheme/static/fonts/glyphicons-halflings-regular.woff (renamed from static/fonts/glyphicons-halflings-regular.woff)bin23424 -> 23424 bytes
-rwxr-xr-xtheme/static/fonts/glyphicons-halflings-regular.woff2 (renamed from static/fonts/glyphicons-halflings-regular.woff2)bin18028 -> 18028 bytes
-rw-r--r--theme/static/img/banner_bg2x.png (renamed from static/img/banner_bg2x.png)bin111150 -> 111150 bytes
-rw-r--r--theme/static/img/cat.png (renamed from static/img/cat.png)bin8033 -> 8033 bytes
-rw-r--r--theme/static/img/grey_2x.png (renamed from static/img/grey_2x.png)bin89089 -> 89089 bytes
-rw-r--r--theme/static/js/random_colour.js (renamed from static/js/random_colour.js)0
-rwxr-xr-xtheme/templates/archives.html (renamed from templates/archives.html)0
-rwxr-xr-xtheme/templates/article.html (renamed from templates/article.html)0
-rwxr-xr-xtheme/templates/author.html (renamed from templates/author.html)0
-rwxr-xr-xtheme/templates/authors.html (renamed from templates/authors.html)0
-rwxr-xr-xtheme/templates/base.html (renamed from templates/base.html)0
-rwxr-xr-xtheme/templates/categories.html (renamed from templates/categories.html)0
-rwxr-xr-xtheme/templates/category.html (renamed from templates/category.html)0
-rwxr-xr-xtheme/templates/home.html (renamed from templates/home.html)0
-rwxr-xr-xtheme/templates/index.html (renamed from templates/index.html)0
-rwxr-xr-xtheme/templates/master.html (renamed from templates/master.html)0
-rw-r--r--theme/templates/newbase.html (renamed from templates/newbase.html)0
-rwxr-xr-xtheme/templates/page.html (renamed from templates/page.html)0
-rwxr-xr-xtheme/templates/pagination.html (renamed from templates/pagination.html)0
-rwxr-xr-xtheme/templates/period_archives.html (renamed from templates/period_archives.html)0
-rwxr-xr-xtheme/templates/tag.html (renamed from templates/tag.html)0
-rwxr-xr-xtheme/templates/tags.html (renamed from templates/tags.html)0
-rwxr-xr-xtheme/templates/translations.html (renamed from templates/translations.html)0
-rw-r--r--tutorials/series2/framelife.odgbin0 -> 10906 bytes
216 files changed, 7235 insertions, 1748 deletions
diff --git a/Makefile b/Makefile
new file mode 100755
index 0000000..d1ddf80
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,124 @@
+PY?=python3
+PELICAN?=pelican
+PELICANOPTS=
+
+BASEDIR=$(CURDIR)
+INPUTDIR=$(BASEDIR)/content
+OUTPUTDIR=$(BASEDIR)/output
+CONFFILE=$(BASEDIR)/pelicanconf.py
+PUBLISHCONF=$(BASEDIR)/publishconf.py
+
+FTP_HOST=localhost
+FTP_USER=anonymous
+FTP_TARGET_DIR=/
+
+SSH_HOST=localhost
+SSH_PORT=22
+SSH_USER=root
+SSH_TARGET_DIR=/var/www
+
+S3_BUCKET=my_s3_bucket
+
+CLOUDFILES_USERNAME=my_rackspace_username
+CLOUDFILES_API_KEY=my_rackspace_api_key
+CLOUDFILES_CONTAINER=my_cloudfiles_container
+
+DROPBOX_DIR=~/Dropbox/Public/
+
+GITHUB_PAGES_BRANCH=gh-pages
+
+DEBUG ?= 0
+ifeq ($(DEBUG), 1)
+ PELICANOPTS += -D
+endif
+
+RELATIVE ?= 0
+ifeq ($(RELATIVE), 1)
+ PELICANOPTS += --relative-urls
+endif
+
+help:
+ @echo 'Makefile for a pelican Web site '
+ @echo ' '
+ @echo 'Usage: '
+ @echo ' make html (re)generate the web site '
+ @echo ' make clean remove the generated files '
+ @echo ' make regenerate regenerate files upon modification '
+ @echo ' make publish generate using production settings '
+ @echo ' make serve [PORT=8000] serve site at http://localhost:8000'
+ @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
+ @echo ' make devserver [PORT=8000] start/restart develop_server.sh '
+ @echo ' make stopserver stop local server '
+ @echo ' make ssh_upload upload the web site via SSH '
+ @echo ' make rsync_upload upload the web site via rsync+ssh '
+ @echo ' make dropbox_upload upload the web site via Dropbox '
+ @echo ' make ftp_upload upload the web site via FTP '
+ @echo ' make s3_upload upload the web site via S3 '
+ @echo ' make cf_upload upload the web site via Cloud Files'
+ @echo ' make github upload the web site via gh-pages '
+ @echo ' '
+ @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
+ @echo 'Set the RELATIVE variable to 1 to enable relative urls '
+ @echo ' '
+
+html:
+ $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+
+clean:
+ [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
+
+regenerate:
+ $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+
+serve:
+ifdef PORT
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
+else
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server
+endif
+
+serve-global:
+ifdef SERVER
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)
+else
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
+endif
+
+
+devserver:
+ifdef PORT
+ $(BASEDIR)/develop_server.sh restart $(PORT)
+else
+ $(BASEDIR)/develop_server.sh restart
+endif
+
+stopserver:
+ $(BASEDIR)/develop_server.sh stop
+ @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
+
+publish:
+ $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
+
+ssh_upload: publish
+ scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
+
+rsync_upload: publish
+ rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
+
+dropbox_upload: publish
+ cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR)
+
+ftp_upload: publish
+ lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
+
+s3_upload: publish
+ s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type
+
+cf_upload: publish
+ cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) .
+
+github: publish
+ ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
+ git push origin $(GITHUB_PAGES_BRANCH)
+
+.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
diff --git a/README.md b/README.md
index 5e6a857..3f1fbf8 100755
--- a/README.md
+++ b/README.md
@@ -1,114 +1,9 @@
-# Nest
+www.spacekookie.de
+===
-This is my very heavily customised website theme for [spacekookie.de](https://spacekookie.de). Not sure why I keep this public as it will probably never be any good for anyone. But oh well ¯\\\_(ツ)_/¯
+Dependencies are `pelican markdown webassets`
-This is a fork that I created as it's own repository. The original is from [https://github.com/molivier/nest](https://github.com/molivier/nest)
+The pelican build.
-## Features
-
-* Featured site header image
-* Featured article header image
-* **Pygments** syntax highlighting
-* **Disqus** support for comments
-* **Google Analytics** support
-* RSS and Atom feeds
-
-## Settings
-
-Nest template can be customized by adding parameters to your `pelicanconf.py` file. Template specifics parameters are prefixed with template name.
-
-### Pelican.conf example
-
-```python
-# NEST Template
-THEME = 'nest'
-SITESUBTITLE = u'My Awesome Blog'
-# Minified CSS
-NEST_CSS_MINIFY = True
-# Add items to top menu before pages
-MENUITEMS = [('Homepage', '/'),('Categories','/categories.html')]
-# Add header background image from content/images : 'background.jpg'
-NEST_HEADER_IMAGES = ''
-NEST_HEADER_LOGO = '/image/logo.png'
-# Footer
-NEST_SITEMAP_COLUMN_TITLE = u'Sitemap'
-NEST_SITEMAP_MENU = [('Archives', '/archives.html'),('Tags','/tags.html'), ('Authors','/authors.html')]
-NEST_SITEMAP_ATOM_LINK = u'Atom Feed'
-NEST_SITEMAP_RSS_LINK = u'RSS Feed'
-NEST_SOCIAL_COLUMN_TITLE = u'Social'
-NEST_LINKS_COLUMN_TITLE = u'Links'
-NEST_COPYRIGHT = u'&copy; blogname 2015'
-# Footer optional
-NEST_FOOTER_HTML = ''
-# index.html
-NEST_INDEX_HEAD_TITLE = u'Homepage'
-NEST_INDEX_HEADER_TITLE = u'My Awesome Blog'
-NEST_INDEX_HEADER_SUBTITLE = u'Smashing The Stack For Fun And Profit'
-NEST_INDEX_CONTENT_TITLE = u'Last Posts'
-# archives.html
-NEST_ARCHIVES_HEAD_TITLE = u'Archives'
-NEST_ARCHIVES_HEAD_DESCRIPTION = u'Posts Archives'
-NEST_ARCHIVES_HEADER_TITLE = u'Archives'
-NEST_ARCHIVES_HEADER_SUBTITLE = u'Archives for all posts'
-NEST_ARCHIVES_CONTENT_TITLE = u'Archives'
-# article.html
-NEST_ARTICLE_HEADER_BY = u'By'
-NEST_ARTICLE_HEADER_MODIFIED = u'modified'
-NEST_ARTICLE_HEADER_IN = u'in category'
-# author.html
-NEST_AUTHOR_HEAD_TITLE = u'Posts by'
-NEST_AUTHOR_HEAD_DESCRIPTION = u'Posts by'
-NEST_AUTHOR_HEADER_SUBTITLE = u'Posts archives'
-NEST_AUTHOR_CONTENT_TITLE = u'Posts'
-# authors.html
-NEST_AUTHORS_HEAD_TITLE = u'Author list'
-NEST_AUTHORS_HEAD_DESCRIPTION = u'Author list'
-NEST_AUTHORS_HEADER_TITLE = u'Author list'
-NEST_AUTHORS_HEADER_SUBTITLE = u'Archives listed by author'
-# categories.html
-NEST_CATEGORIES_HEAD_TITLE = u'Categories'
-NEST_CATEGORIES_HEAD_DESCRIPTION = u'Archives listed by category'
-NEST_CATEGORIES_HEADER_TITLE = u'Categories'
-NEST_CATEGORIES_HEADER_SUBTITLE = u'Archives listed by category'
-# category.html
-NEST_CATEGORY_HEAD_TITLE = u'Category Archive'
-NEST_CATEGORY_HEAD_DESCRIPTION = u'Category Archive'
-NEST_CATEGORY_HEADER_TITLE = u'Category'
-NEST_CATEGORY_HEADER_SUBTITLE = u'Category Archive'
-# pagination.html
-NEST_PAGINATION_PREVIOUS = u'Previous'
-NEST_PAGINATION_NEXT = u'Next'
-# period_archives.html
-NEST_PERIOD_ARCHIVES_HEAD_TITLE = u'Archives for'
-NEST_PERIOD_ARCHIVES_HEAD_DESCRIPTION = u'Archives for'
-NEST_PERIOD_ARCHIVES_HEADER_TITLE = u'Archives'
-NEST_PERIOD_ARCHIVES_HEADER_SUBTITLE = u'Archives for'
-NEST_PERIOD_ARCHIVES_CONTENT_TITLE = u'Archives for'
-# tag.html
-NEST_TAG_HEAD_TITLE = u'Tag archives'
-NEST_TAG_HEAD_DESCRIPTION = u'Tag archives'
-NEST_TAG_HEADER_TITLE = u'Tag'
-NEST_TAG_HEADER_SUBTITLE = u'Tag archives'
-# tags.html
-NEST_TAGS_HEAD_TITLE = u'Tags'
-NEST_TAGS_HEAD_DESCRIPTION = u'Tags List'
-NEST_TAGS_HEADER_TITLE = u'Tags'
-NEST_TAGS_HEADER_SUBTITLE = u'Tags List'
-NEST_TAGS_CONTENT_TITLE = u'Tags List'
-NEST_TAGS_CONTENT_LIST = u'tagged'
-# Static files
-STATIC_PATHS = ['images', 'extra/robots.txt', 'extra/favicon.ico', 'extra/logo.svg']
-EXTRA_PATH_METADATA = {
- 'extra/robots.txt': {'path': 'robots.txt'},
- 'extra/favicon.ico': {'path': 'favicon.ico'},
- 'extra/logo.svg': {'path': 'logo.svg'}
-}
-```
-
-
-## Third-party assets
-
-The theme uses external softwares, scripts, libraries and artworks:
-
-* [Bootstrap](http://getbootstrap.com/) 3.x.x
-* [Open Sans Font](http://www.google.com/fonts/specimen/Open+Sans)
+Host with `pelican content` and `make devserver`
+Default port is 8000. \ No newline at end of file
diff --git a/blog_update.sh b/blog_update.sh
new file mode 100755
index 0000000..017b215
--- /dev/null
+++ b/blog_update.sh
@@ -0,0 +1,11 @@
+# Get to the right location
+sudo lxc-attach -n spacekookie
+cd /var/www/website
+
+# Update the data
+git pull
+
+# Re-generate
+rm -rf output/
+. env/bin/activate
+pelican content/ \ No newline at end of file
diff --git a/content/blog/00_introduction.md b/content/blog/00_introduction.md
new file mode 100644
index 0000000..dabfe55
--- /dev/null
+++ b/content/blog/00_introduction.md
@@ -0,0 +1,14 @@
+Title: An open source GPU
+Category: Blog
+Tags: OpenMPU, matrices, opengl, hardware
+
+
+For as long as I can remember I've wanted to build my own computer. Sorta from scratch.
+
+And there is something I want to do even more: build a GPU. Something that can process vectors and matrecies in an efficient manner, build a graphics rendering pipeline in hardware. Sorta from scratch.
+
+And that's what this project is about. OpenMCU stands for "Open Matrix Computation Unit" and will be a part of the OpenGPU (working title).
+
+## The basic architecture
+
+`<insert picture>` \ No newline at end of file
diff --git a/content/blog/hardware/001-omnitool-introduction.md b/content/blog/hardware/001-omnitool-introduction.md
new file mode 100755
index 0000000..dd7b5e2
--- /dev/null
+++ b/content/blog/hardware/001-omnitool-introduction.md
@@ -0,0 +1,57 @@
+Title: 01. Omnitool - Introduction
+Slug: 01-omnitool-introduction
+Category: Blog
+Tags: Dev Diary, Hardware
+Date: 17-09-2015 15:45
+Status: published
+Illustration: omnitool_background2.jpg
+
+Any good fan of the game, book, comic, stuff series will now jump up and down in excitement. The omnitool is a constant companion, helper and friend for Commander Shepard and a life saver in several situations. Whether it be hacking doors, turning into a plasma blade and cutting peoples faces open or just plain transferring a bribe credit to the slimy Vorcha in front of you.
+
+But please, settle down, I haven't invented holographic technology. Nor have I invented plasma tubings or even solved the financial crisis by coming up with a perfect currency (of couse generically called 'credits') that everybody wants to use.
+
+### Then why waste your time
+That's a good question :) I would hope that this series doesn't turn into a waste of time for anyone. Because...well, while I haven't done any of those things. I am planning on building an omnitool. Just a bit more low-tech.
+
+I was actually inspired by something on Adafruit, called the Flora. It's a round gimmick with a ring of RGB LED's, GPS (I think) and an arduino to program it.
+
+![Adafruit Flora](/images/flora_pinout.png "Adafruit Flora")
+
+I was only really inspired to do this project when a friend of mine showed off his Flora on the CCCamp2015.
+
+He did some minor modifications to it, including a wristband (IDE cable) and a battery on the underside and programmed a few modes for displaying time (as an analogue clock) and a flashlight by just dialing the LED's up to full power.
+
+![Adafruit Flora 2](/images/flora_withleds.jpg "Adafruit Flora2")
+
+And that's kinda what gave me the idea for an omnitool. The idea of circular rings of LED's as display elements are pretty cool.
+
+### Basic concept
+
+So the basic conceptis a simple. Create a wrist accessory with one or two LED rings (using shift register RGP LED's to display patterns, colours and different brightness settings), include a generic SOC to program, probably something single core ARM. Give it a bunch of RAM to run applications and a embedded systems linux.
+
+Include GPS, blutooth, a sensor package such as temperature, preasure, accelerometer, etc.
+
+Include extention slots where, with a simple click, the tool can be expanded to include speakers, a microphone, a bigger screen, a bigger battery, etc.
+
+And all this in the form factor of the so beloved omnitool from Mass Effect.
+
+I know this is a bit of a crazy project. And it will take months, if not years to complete.
+
+Because this is the thing: I want to do it all as custom cut PCB and maybe some custom cut plastic for casings.
+
+I've been getting into KiCad recently, with my first project the Christmas Bauble ([Click here for details](/dev-diary/jolly-christmas-decoration/)) and have fallen in love with the tool – Don't worry Ashley, not *that* much :)
+
+But it is pretty awesome and I urge everybody who wants to get into that sort of electronics stuff to checkout it out! [KiCad](http://www.kicad-pcb.com)
+
+### What to expect
+
+So what will this series be? (Hopefully) regular status reports about what I've been doing, writing about my experimences with the project, letting you guys know what I'm learning and generally just let people follow the project.
+
+All stuff about the project will be in a Github repo. From the KiCad files to the C firmware I'll have to write. Everything you would potentially need to make your own, study it and learn from it is in there.
+
+**[Omnitool Repository](https://github.com/spacekookie/omnitool)**
+
+
+I hope that you follow along. And I'm looking forwards to comments from all of you. Have a lovely day and read you soon.
+
+~Kate
diff --git a/content/blog/hardware/002-christmas-bauble.md b/content/blog/hardware/002-christmas-bauble.md
new file mode 100755
index 0000000..b0cc62c
--- /dev/null
+++ b/content/blog/hardware/002-christmas-bauble.md
@@ -0,0 +1,33 @@
+Title: Jolly Christmas Decoration
+Category: Blog
+Date: 2015-09-17 15:30
+Tags: Dev Diary, Hardware
+
+Christmas is getting closer (not really but let's just roll with it) and I wanted to learn [KiCad](www.kicad-pcb.com) a software that let's you create circuits and design PCB for manufacture.
+
+I found a tutorial series online by a guy named [Ashley Mills](https://www.youtube.com/channel/UCaBNA-lmg35Wfx2eh2oDkWg) (with quite a legendary beard) who showed off a simple circuit using a 555-timer, a shift register and an XOR gate made from NPN transistors and resistors to display and repeat a pattern on several LED's.
+
+The series focused on getting to know KiCad and all it's features. And while I did that in the first revision of my board, I've diverged from it since. I can however recommend his videos on KiCad to anyone who wants to dive into PCB design, has no clue about the software and could use a little chuckle while also learning some really awesome software (youtube channel link above).
+
+### My Christmas Bauble
+
+So this is what I've got.
+
+![Kookies Christmas Bauble](/images/christmas_bauble_pcb.png "Kookies Christmas Bauble")
+
+As you can see it's a round PCB with simple 5mm LED's around the edges. It no longer uses NPN transistors but rather a single SMD XOR gate. Much easier to wire up, cheaper and less prone to errors as well.
+
+In general I've switched the entire design over to primarily use SMD components as they're smaller and more elegant. And it theoretically allowed me to get the footprint of the board down to something that isn't too excruciatingly expensive to produce.
+
+It took me two more revisions to get the board to a state where it's not too complex and actually fit on a single layer (!) with no vias except for the holes for the LED's obviously.
+
+It uses a round cell battery on the back of the board to hide it away and has a hole at the top to actually hang off a christmas tree. Theoretically the battery should lasta few days, so maybe have a few spare ones around in the christmas season.
+
+### What now?
+
+I haven't manufactured this yet. I am still thinking about refining the design slightly. I have the **entire** back to work with and add things. I was thinking about adding a simple bluetooth chip so that patterns could be pushed to the device via an android app. But that's the future. For now it should actually be functional and maybe I'll order some `Revision 3` boards just to see that everything worked.
+
+Here is a dynamic render from KiCad as well.
+![Kookies Christmas Bauble Rendered](/images/christmas_bauble_render.png "Kookies Christmas Bauble Rendered")
+
+And be sure to checkout my Github repo for the project if you want the KiCad files. Either to play around with them or to manufacture some baubles yourself. If you do, I'd be interested in pictures of the decorations on your christmas trees so I can add them to this article as a slideshow :)
diff --git a/content/blog/hardware/003-christmas-bauble-update.md b/content/blog/hardware/003-christmas-bauble-update.md
new file mode 100755
index 0000000..ee4800d
--- /dev/null
+++ b/content/blog/hardware/003-christmas-bauble-update.md
@@ -0,0 +1,38 @@
+Title: [Update] Jolly Christmas Decoration
+Category: Blog
+Date: 2015-11-27 15:30
+Tags: Dev Diary, Hardware
+
+You might remember I played around with Kicad a few months ago and made this [tacky little thing](/hardware/jolly-christmas-decoration/). Just about 2 1/2 weeks ago I went onto [DirtyPCB](http://dirtypcbs.com/) to get them actually made. I wanted to have gone through the production process and get something built before I started doing more complicated projects.
+
+Unfortunately I discovered a little mistake with the design in the layout that ended up at the manufacturer (Rev 3.1). I tried to fix them but Rev 3.2 didn't make it in time, which means my boards will be a bit more complicated to power. However not too complicated as the power-in are just throughholes so I can actually strap anything behind it to power it.
+
+But without further a due, here is the result from DirtyPCB (which I am actually quite impressed with).
+
+![PCB with Banana for Scale](/images/christmas_bauble_pcb.jpg)
+
+Now, I'm new to all of this so I started doing beep-tests on the pads to make sure things were properly connected and all the boards passed them. The production quality is pretty good. Unfortunately I can't start assembling them yet just because none of the parts I ordered for them have arrived yet. The manufacture and shipping of the boards actually beat the shipping of off-the-shelf parts!
+
+Anyways, I'm kinda excited. First time making an electronics project. I might post another update on when the parts arive and post a few gifs of the finished products. If I don't I'll probably tweet about it though.
+
+Now, I have another smaller electronics project in the making where I am, again, waiting for parts to arrive to do some testing. And already designing a modular PCB board. (Limited a bit with the 10x10cm limitations on DirtyPCB I need to design my project in a way that I can take a bunch of smaller panels and stick them together into a large one, which would take hundreds of dollars to make elsewhere).
+
+[But realistically for the production quality I saw with these, I'd be happy to give them my money again for future projects. Especially at that price, just unbeatable.](https://www.youtube.com/watch?v=d36wUmJGzvA)
+
+:)
+
+Anyways, enough ramblings. Read you later.
+
+### Update...update
+
+Right...so after tinkering with the bauble a bit I found out a few things. The most important one being that I made some mistakes. Some big ones :)
+
+ - Pin 9 of the shift register was connected to both input A and input B of the XOR gate. Which meant that both inputs were always the same...which also meant that the output was always 0.
+ - The 555-timer clock ran at several hundred kilohertz. I had to change the capacitor down to ~12µF and the resistors to ~4.7 ohms.
+ - The coin-cell battery didn't have enough juice to run it. Two had to be put in parallel. Even then, two batteries would not be able to run for very long.
+
+ To make the bauble work I bridget the xor gate completely, so just feeding back the shift register end to the beginning.
+
+ In addition to those things some of the LED's sometimes didn't work. I'm not sure if that is due to broken shift registers, traces or LEDs. All in all I do consider it to have tought me quite a lot about electronics, going through the process of producing a PCB and debugging electronics once it arrived and inevidably goes wrong :)
+
+I am currently in the process of redesigning the entire circuite from scratch. And making it easier to solder. I want to make it into a beginner soldering kit that people can both learn how to solder with and also have something to hang off their christmas tree in the jolly season.
diff --git a/content/blog/hardware/004-ws2812b-breakouts.md b/content/blog/hardware/004-ws2812b-breakouts.md
new file mode 100755
index 0000000..190d100
--- /dev/null
+++ b/content/blog/hardware/004-ws2812b-breakouts.md
@@ -0,0 +1,21 @@
+Title: WS2812b LED breakouts
+Category: Blog
+Date: 2016-03-16 12:08
+Tags: Dev Diary, Hardware
+
+You all know I have a fetish for [ws2812b RGB-LEDs](http://rgb-123.com/wp-content/uploads/2013/08/PinLayout.jpg). I admit that. They're just awesome. And recently I've found myself wanting to do some projects with them (*cough* programmable alarm clock *cough*). But I dislike the strips, although they're pretty cheap they are usually just very messy and horrible. And making a PCB for every project can be weird. Especially if gigantic PCBs would be required.
+
+So I designed this little doodad.
+
+![ws2812b Single Mount](/images/ws_2812b_single.png ws2812b Single Mount)
+
+The idea is the following: Sometimes you just need a few ws2812b (I'm saying that word too often in this post) somewhere. But you don't want to lay a strip. Or make a big PCB for it.
+So here is an alternative. Easily make ~800 of these for 25$, screw them to a surface, connect **PRETTY** wires between them, such as [Ribbon cables](http://cdn.usdigital.com/assets/images/galleries/ca-c10-f-c10_0.jpg) and boom. You're done.
+
+### One to rule many
+
+Now...I mentioned that programmable alarm clock earlier. And while I'm not quite done designing what will go into it all, I do know that I want to have a ~ 21x9 Pixel display, each individually addressable. And instead of building a way too big PCB that will be insanely expensive to manufacture...why not split them up? Then I have these "tiles" of LEDs that I screw to a backplate, wire everything together and from the outside you can't tell the difference.
+
+With 21:9 (Aspect ratio and pixels) in mind, this is my prototype:
+
+<TO BE CONTINUED> \ No newline at end of file
diff --git a/content/blog/hardware/005-open-plantb0t.md b/content/blog/hardware/005-open-plantb0t.md
new file mode 100755
index 0000000..647ddf3
--- /dev/null
+++ b/content/blog/hardware/005-open-plantb0t.md
@@ -0,0 +1,51 @@
+Title: Open Plantb0t - Rev A
+Category: Blog
+Date: 2016-03-16 12:08
+Tags: Dev Diary, Hardware
+Illustration: banners/plantb0t_revA.png
+
+Howdy everybody,
+
+Spring is coming in Berlin and thus my thoughts - as every year - are with plants. And growing shit. I live in an appartment with a tiny tiny balcony so I don't have much space but that has never stopped me from wanting to cram as many plants into the space as possible to the point of starting nuclear fusion.
+
+In addition to that I have a few house-plants and very water-sensitive trees in my appartment. My current approach is to go around with a jug of water every couple of days and water them individually - making sure the soil has a certain moisture and doesn't exceed a certain limit - but I've always had the dream of being able to automate away as much as possible. That's where the idea of `Plantb0t` started. And I want to tell you a little bit about it.
+
+The basic idea is to have a little controller in each plant-pot that measure the moisture of the soil and reports that back to me via an ESP-12 SOM (System on a Module). The ESP has WiFi capabilities and would log to an MQTT server on my home media server. This way (when I'm at home - none of that IoT shit) I can see how my plans are doing.
+
+### Current state
+
+So that's what Revision A of Plantb0t is. I also added a second sensor slot which is meant to be populated by a temperature sensor but could theoretically house a second moisture sensor. In the end the probes are only sticks in the ground that have a resistance between them.
+
+Here is a dynamic render of the board (that went into prototype production on the 29th of march, 2016).
+
+![Plantb0t Rev A](/images/plantb0t_RevA_front.png Plantb0t Revision A)
+
+As you can see it's powered by an ESP-12 and comes with it's own programmer (The lovely CP2102) and micro-USB header. The USB-Port is currently the only way to power the board.
+
+In the future it is planned to bypass the USB power and only use it for the programmer and otherwise drive everything off an externla powerboard which provides 3.3V for the Plantb0t.
+
+In the bottom you see two constant current sources that can power two analogue sensors that get multiplexed into the ADC of the ESP-12.
+
+GPIO pin headers are included for external gismoz such as a pump to act on the moisture data as well as screwholes to mount the whole thing in a 3D printed case.
+
+In total the board is only 5x5cm big!
+
+### Future plans
+
+A few things I want to realise with this project in the next coming weeks:
+
+ - Primarily the Rev A board needs to be tested to make sure that the programmer works
+ - Figure out a good way to calibrate the sensors. Maybe drive a button via GPIO?
+ - Design a power board that generates 3.3V for the board (but not the programmer!) from a solar panel and a battery to decouple the entire sensor-board from all power-sockets.
+
+For the next revision of the board (Rev B) I want to include more sensor slots. Maybe work on the part spacing a bit and increase footprint sizes. It should be easier to solder and someof the parts are ridiculously small. I mean...I have the whole back to work with?
+
+I also have some crazy ideas for a "Plantb0t+" Version with even MOAR SENSORS (Including a pH-value sensor!). But that's all faaaaar in the future.
+
+Either way...I'm excited for my boards to get here (hopefully in the next 7-8 days) as well as all the parts I need for the prototypes.
+
+I leave you with a screenshot from KiCad where you get to see under the hood of the board. Cheers o/
+
+![Plantb0t Rev A](/images/plantb0t_RevA_naked.png Plantb0t)
+
+(The project has a [Github](https://github.com/spacekookie/open_plantb0t) repo where I will try to populate the wiki with as much info as possible) \ No newline at end of file
diff --git a/content/blog/miscellanious/000-newdawn.md b/content/blog/miscellanious/000-newdawn.md
new file mode 100755
index 0000000..4acadb7
--- /dev/null
+++ b/content/blog/miscellanious/000-newdawn.md
@@ -0,0 +1,89 @@
+Title: Static sites vs Wordpress
+Category: Blog
+Date: 2015-08-14 20:59
+Tags: Dev Diary, Meta
+
+Regular readers will notice slight differences in my blog from the last time they were here. A lot has changed in the last two years since I started this website. Back then I decided to use Wordpress to host the stuff I wanted to write about because it offered lots of plugins and an easy to use CMS + editor to write articles. But over time I noticed that wordpress, while nice, can be more trouble than it's worth.
+
+So for the last couple of months I've had a look at different web frameworks. Django, Ruby on Rails and some static site generators like Nikola and now Pelican. The last one is now powering this website.
+
+The advantages of a static site generator is significantly less server load, simpler design and less overhead with updates and security issues. With no database to hold any kind of data and only static `html` documents being generated at "compile time" and dealt via a very simple html server using exploits or manipulating the website to gain access to my server is almost impossible.
+
+So...while you can read a lot about why static site generators are cool and what their limitations are, I wanted to use this article to write a little bit about the challenges that I had to deal with porting my old website to a new framework. Because I didn't want to start from scratch. I wanted to keep all my stuff.
+
+### Creating basic site layout.
+
+Most of my website are blog posts of different categories and streams. For example, I had one page that displayed all blog posts while I then had other pages that displayed only certain categories. Most static site generators don't really support that. On Pelican I am now using one category for Blogs (Blog) and then have other categories displayed on pages that I statically link in my config:
+
+```python
+MENUITEMS = (
+ ('Home', '/'),
+ ('About Me', '/about-me/'),
+ ('Blog', '/blog/'),
+ ('Projects', '/projects/'),
+ ('LibGDX', '/libgdx-game-of-codes/'),
+ ('Linux', '/linux/'),
+ ('Teaching', '/teaching/')
+)
+```
+
+So essentially the menu items link to the category pages that then display articles. By default these pages only displayed a list of posts so I had to modify the category template in my theme. But more about that later.
+
+Right now I still don't have a work-around for having different categories on the "Blog" page. But my current idea is to not link to a category page but rather a "tag" page. Then give every article that should show up on that page the "blog" tag (or use some voodoo setting that automatically adds tags to articles).
+
+To get pretty links you can set some options to save pages and posts under different URLs in the config:
+
+```pytho
+nARTICLE_URL = '{category}/{slug}'
+ARTICLE_SAVE_AS = '{category}/{slug}/index.html'
+
+PAGE_URL = '{slug}'
+PAGE_SAVE_AS = '{slug}/index.html'
+
+CATEGORY_URL = '{slug}'
+CATEGORY_SAVE_AS = '{slug}/index.html'
+```
+
+### Theming with [Pelican Themes](http://www.pelicanthemes.com)
+
+Obviously a website should be something personal. And on my old wordpress site I spent several weeks tweaking the Wordpress Theme to my liking. Static site generators like Nikola or Pelican do offer theming where people much better at writing CSS and html put together something nice. I would recommend cloning a template that you want to use (most of them are on Github) and then modifying it however you like. For example, my template and the modifications I'm making on it can be found here: [github.com/spacekookie/nest](https://github.com/SpaceKookie/nest).
+
+The first thing I did was tweak the dynamic content filling a bit. I mentioned earlier that I had to modify some stuff to make sure that I didn't just get a list of entries in my blog page but rather either the content or a summary of the page. With a little plugin called "summary" that becomes even nicer but I'm getting ahead of myself.
+
+```html
+{% for article in articles %}
+ <dt>{{ article.locale_date}}</dt>
+ <dd>
+ <a href="{{ SITEURL }}/{{ article.url }}"><h2>{{ article.title }}</h2></a>
+ <p>{{ article.summary }}</p>
+ </dd>
+{% endfor %}
+```
+
+As you can see you can embed data from your pelican site into HTML via curly braces, aka Jinja. So the above snippet is obviously a loop that takes an article from articles (which is provided by Pelican in my case) and then renders a "h2" link to the article with the title (`article.title`) and then adds the `article.summary`.
+
+If you wanted to display the entire content of the post it's as trivial as changing the summary to article.content. That's the beauty of Jinja: it's ridiculously easy :)
+
+### Next up
+
+Another thing you might wanna have a look at is the static/css folder of your theme. In the one I use there is a `nest.css` file that contains a lot of modifications to the underlying bootstrap theme. Including changing paddings, colours as well as overriding headers to not have these weird dashes (that look pretty cool for some parts. But not so cool for others).
+
+But that's all details then. Other things you might want to consider if you move your Wordpress blog to a static site generator is that Wordpress sets up a lot of metadata that then ends up in your Markdown files (if you choose Markdown). Which means that you might want to go through all your articles cleaning out unwanted metadata that might just screw things up.
+
+I'm using Sublime Text for the multi-cursor/ multi-file edits and regex searching which made editing my article metadata less of a pain in the bum.
+
+As for this site: I still have a lot of things to work out. For example I still don't have a projects page. Markdown is nice for writing articles but I'm thinking about adding Restructured Text (`.rst`) files for static pages. It's a lot more powerful but also more annoying to write.
+
+**-EDIT-**
+
+A quick insertion a few weeks after having created but not yet published this site.
+
+Alternatively, something I've now started using for my front page is a dedicated template for certain pages. You can set a template via `Template: <template_name>` into a files metadata. Then create a corresponsing `<template_name>.html` in your themes template folder.
+
+That way I can have special settings for certain pages without having to work with embedded if statements in a sinle html template.
+
+**-EDIT-**
+
+But for today that shall be it. I hope you like my new website. Enjoy the new comment system as well (which I just moved to Disqus because that's pretty cool). Until another day.
+
+~ Kate
diff --git a/content/blog/miscellanious/001-lonelyrobot.md b/content/blog/miscellanious/001-lonelyrobot.md
new file mode 100755
index 0000000..0da001a
--- /dev/null
+++ b/content/blog/miscellanious/001-lonelyrobot.md
@@ -0,0 +1,45 @@
+Title: Lonely Robot and the future
+Category: Blog
+Date: 2015-08-25 15:30
+Tags: Dev Diary, Lonely Robot
+
+Hey everybody, long time no read.
+
+As I returned from vacation on the Chaos Communication Camp 2015 (Not sure if I'll post more about that) and probably starting a new job next week (*pssst* not sure if I should talk about it ;) ) the rest of my summer is still ahead of me and I'm booming with ideas and inspiration to do stuff.
+
+I've started more intensively coding on the `newdawn` branch of Reedb, the C port of the database and planning some features for the old codebase via the `backports` branch. Because the new codebase will use a different crypto backend (from OpenSSL to gnu_crypt) a migration agent will be neccesary to migrate between 0.11.x to 0.12+ vaults. But as very few people currently use Reedb and most setups are for testing purposes only that isn't a very big priority right now. Depends on how the current version of reedb develops :)
+
+But that's talk for another day. What else has been going on? After the Chaos Communication Camp 2015 I've been playing around a bit with my rad1o badge.
+
+![Rad1o Badge](/images/rad1o_badge.png "Rad1o Badge")
+
+But not much has resulted from that yet. The distribution I'm using (Fedora 22) at this time unfortunately has a broken arm-gcc package which means that a linker for embedded systems isn't working properly. So hacking on that will have to wait a little bit. But I will very likely post more stuff about that in the future.
+
+Now, what was this post supposed to be about? Not Reedb. Or my new job. Or the Rad1o Badge or even the cccamp. It's supposed to be about a new software studio I created.
+
+### Lonely Robot
+
+So far we have a website at [lonelyrobot.io](https://www.lonelyrobot.io), an issue tracker at [bugs.lonelyrobot.io](https://bugs.lonelyrobot.io) and are expanding our web prescence but mostly working on projects.
+
+Two things that we currently have going on are an Android game called **Graviton** (which started out as a tech demo that got out of hand) and, more exciting, LRGE, the `Lonely Robot Game Engine`.
+
+The whole thing got started between my boyfriend and me who wanted to make video games together. And after a few months of day-dreaming, talking about ideas late at night and bitching about the current state of the gaming industry. But only after a few months of talking we actually started doing something.
+
+Over the last couple of months we've been working with the LibGDX framework, making some minior and other major modifications to it and writing the specification for an engine.
+
+We decided to use C++ for it and build it on top of SDL (the Simple DirectMedia Layer) with a very modular design which will allow for modules to be swapped in and out.
+While we are still early in the planning phase of the engine it is what we want to focus our efforts on for the next couple of months, possibly the next year.
+
+While we do make (free) software most of our ideas are for games. Our vision is that with this game engine we will be in a position where we can create them.
+
+We decided to go for a self-written engine over something like Unreal or Unity because of a multitude of reasons. One of which is that neither of us are very great at blackbox development (that is the development of systems with another system that the developer doesn't fully understand). It is a problem I've always had with game modding but have also run into when playing around with the Unreal Development Kit.
+
+Even with LibGDX I've always wanted to understand the inner workings of the framework which in the end lead me to modifying large chunks of it.
+
+So that's that. I wanted to write about it here but will probably move other thoughts about the studio to my Lonely Robot dev blog on [lonelyrobot.io](https://www.lonelyrobot.io/blog).
+
+That'll be it for now. I have an idea for a different project brewing in my head but I don't want to talk about it for now. All you should know now is: `hardware` :D
+
+Until another day,
+
+Kate \ No newline at end of file
diff --git a/content/blog/miscellanious/002-reedb-c-port.md b/content/blog/miscellanious/002-reedb-c-port.md
new file mode 100755
index 0000000..5fe627e
--- /dev/null
+++ b/content/blog/miscellanious/002-reedb-c-port.md
@@ -0,0 +1,53 @@
+Title: All aboard, it's a C port
+Category: Blog
+Date: 2015-10-21 18:02
+Tags: Dev Diary, Reedb
+
+It's been a long time coming. This blog post, not what I am writing about. Though...what I am writing about has also been a long time coming. So in a way, yes, I guess I was right.
+
+### Anyways.
+
+Over a year ago I switched to Linux. I was a Mac fangirl before. I loved the ecosystem, the OS, loved the convenience and the idea of having a system that just *worked* and the power of a root terminal.
+But something changed. The garden of bliss grew smaller and smaller and as I realised that I didn't own or understand my computer, that Apple was in charge of what icons I used on my Desktop, I was drawn towards Linux.
+
+I had used the OS on servers before and even my gaming computer ran Ubuntu to play the 64bit variant of *Kerbal Space Program*. But that last step...that took a bit longer.
+
+One of the issues I was faced with was compatibility of software. And while most of the things I used (Eclipse, Sublime Text, Spotify, etc.) were also available on Linux, one thing wasn't: my password manager.
+
+I shall not name it by name because I don't want to advertise a product I no longer want to use. But my password manager was a problem.
+
+So just over a year ago I set out to write my own password manager. > How hard could it be < I remember myself saying. Oh could I have been more wrong? Probably. But it wasn't easy.
+
+### The Origin
+
+Back in the day (and I know it's silly because it's only been a year. But still - a lot of things have changed since then) I knew Java, some Python and wanted to learn Ruby. My brother told me about a mobile framework with which I could easily make a mobile version of the password manager and I was convinced:
+
+I wanted to write it in Ruby.
+
+7 months of development, feedback, discussions in a variety of hackerspaces with an even larger variety of people later - Reedb 0.10, the first usable version of what was once a password manager and had migrated into something bigger, something much cooler than I ever thought it would be: a database.
+
+And as I added more and more features and this database became more and more intelligent I suffered from the limits of Ruby. Speed was terrible, packaging was practically impossible and it became obvious to me that Ruby was a language for the web (not because of the language. But rather because of the people that used it. The rails hipsters and web devs).
+
+After mucking around with it for at least a month, trying several build systems and desperately trying to get this application to work I had enough. I wanted to port it.
+
+Only around 3000 lines of code it wouldn't be too difficult to port Reedb into a different langauge. After all, most of the work had gone into the design process, not the actual coding. And while I wrestled with myself and tried a variety of languages, in the end I settled for C.
+
+With it came a wave of problems. Conventient datastructures that just existed in Ruby such as the Hash (`{}`) or dynamic types made it easy to prototype something and quickly work with large amounts of data. All of that was different in C. And it took me a few months to really start to understand the C ways.
+
+In the end I made a breakthrough with the design process when I finally discovered unions. And it's been a few weeks since. For now the C port of the project lives on the `newdawn` branch of the [github repo](https://github.com/reepass/reedb/tree/newdawn). The issue tracking has since been migrated to the [Lonely Robot Redmine](https://bugs.lonelyrobot.io/projects/reedb/issues) where you're welcome to fly by and check out the progress.
+
+### The Future
+
+I don't know how long it will take for me to finish this port. I'm making good progress, wind is in my favour. But there are still questions to be answered. Especially when it comes to the encryption of things.
+
+But overall I'm happy with my descision. C is definately different. But it's a good kind of different where you can feel the control you have over your code. The performance is brilliant and a pure C binding makes integrating it into other languages or writing extentions for it as easy as pie.
+
+I'll wrap this article up for now, it's gotten rather long. I hope that I can post updates about Reedb soon. Plus, I also have some other cool stuff lining up in the hardware section of my mad projects. I still want to do the Omnitool project and I'll definately keep that series alive. But it's a rather large undertaking. And I want to get some experience with smaller projects before I try to do something as mad as that. + it isn't exactly cheap to fuck up a prototype ;)
+
+---
+
+Anyways, I have to sail back into the C...
+
+Kate
+
+P.S. Sorry for the bad sailing puns. I promise there won't be any more, for shore.
diff --git a/content/blog/miscellanious/003-recovering-a-luks-container.md b/content/blog/miscellanious/003-recovering-a-luks-container.md
new file mode 100755
index 0000000..5cb6b29
--- /dev/null
+++ b/content/blog/miscellanious/003-recovering-a-luks-container.md
@@ -0,0 +1,59 @@
+Title: Recovering a destroyed LUKs container
+Category: Blog
+Date: 2015-11-19 11:41
+Tags: Dev Diary
+
+So...funny thing happened to me the other day. And by funny I mean not funny. Actually I mean quite the oposite of funny. I booted my computer after a normal night of sleep (after I had actually shut down my laptop after several weeks of activity) and...nothing.
+
+I stared at my plymouth boot screen while nothing prompted me to type in my passphrase to decrypt my harddrive and the first thought through my mind was:
+
+> Fuck...I don't have backup.
+
+### How to debug
+
+Now...not to worry, after some time I was dropped into a recovery console where I could ask very simple questions like what kernel modules were present and what Systemd had been up to. And at first I thought the problem was clear: `Module failed to load: vboxdrv` and other messages populated my screen – all about VirtualBox kernel modules.
+
+So the problem was clear. I had fucked up something when installing a new kernel or VirtualBox or anything else. So I blacklisted the modules and moved on...just...that it didn't. The problem persisted. Thinking that I had fucked something up when dealing with the GRUB config or the GRUB recovery console I got my trusty Fedora 22 live-USB out and booted off that.
+
+### How not to panic
+
+To the realise that my 256GB SSD was only 500MB full (which was rightfully detected as an `ext4` formatted volume. The rest of my drive was marked as `unpartitioned space`. \jawdrop.
+
+Now...here is where things get and got interesting. But first let's have a look at my setup.
+
+```
+sda (the actual drive)
+├── sda1 (ext4, mounted as /boot, contains my kernel)
+└── sda2 (LUKS Encrypted Volume, contains subvolumes)
+ ├── vc-root (RootFS)
+ ├── vc-home (HomeFS)
+ └── vc-swap (guess c:)
+```
+
+So as you can see my boot drive is outside the LUKS container and unencrypted which was why I even got the chance to enter a recovery console. The rest of my system is encrypted. And seeing that only sda1 was being picked up it meant that the partition table on my disk must have had been destroyed to the point that it no longer knew sda2.
+
+Knowing this didn't help very much though and it took me a few hours to fix this.
+
+### Restoring the Partition Table
+
+So the main problem was that my partition table was broken. I don't want to start speculating as to why this happened. Maybe my SSD just lost a few blocks, maybe it was bombarded by solar radiation or maybe (just maybe) I was obducted by aliens in the night, refused to give out my master passphrase in my sleep and because of frustration of not being able to get to my data they deleted some junks from my partition table just to spite me.
+
+Either way, a combination of two applications saved my life and hopefully will save yours.
+
+`testdisk` and `cfdisk`
+
+At first, make sure you have backups ;) And don't blame me if you fuck it up. Also you need to know EXACTLY what your layout is to restore this. Otherwise BAD THINGS WILL HAPPEN *waves hand around warning-ly*
+
+Run `testdisk` on your drive, enter through the screens, let it do a deep search and just say yes to everything it wants to do. This restored the LUKS header for me again at which point my computer at least started seeing the encryption container again. Didn't mean I could log in because keyfiles couldn't be found (they're not in the header apparently).
+
+After that, I ran `cfdisk`. What this program does (or can do) is rebuild your partition table. After letting testdisk have it's go it found my LUKS header and completely destroyed my ext4 bootpartition. So in my case this is what it looked like.
+![cfdisk before it saved us](/images/cf_disk1.png "cfdisk before")
+
+What you will want to do is hit NEW, select the correct size of your partitions. Depending on how running testdisk went for you it might have found different parititions, all of them or none. Please! For the love of god, make sure you get your sectors right. Becase if you don't it will seriously damage your system and might make it completely unusable.
+In my caseit was easy, I filled in my boot partition, marked it as bootable and set it's type correctly, also fixed the type error where before sda2 was being picked up as an LVM and not a LUKS container (this is obviously from my running system). And this is what I ended up with.
+![ ](/images/cf_disk.png "cfdisk after")
+
+Make sure you write your changes, exit and reboot. And if you did everything right, you will have a working system again.
+And that's that. I hope this article will be of use to someone at some point. And remember: make backups!
+
+Cheers o/ \ No newline at end of file
diff --git a/content/blog/miscellanious/004-getting-started-with-xmmpp.md b/content/blog/miscellanious/004-getting-started-with-xmmpp.md
new file mode 100755
index 0000000..edbc829
--- /dev/null
+++ b/content/blog/miscellanious/004-getting-started-with-xmmpp.md
@@ -0,0 +1,91 @@
+Title: Getting started with XMPP/ Jabber
+Category: Blog
+Date: 2015-11-24 12:14
+Tags: Dev Diary
+
+So after having spoken to a friend the other day and trying to get him to start using XMPP (aka as Jabber) instead of facebook messenger I realised that even while I thought it was trivial to set up other people might disagree with me. So here a little guide :)
+
+Now...this isn't just a step-by-step instruction of what to do. In fact this article is more about getting you to understand XMPP than registered with a specific server. XMPP (formerly known as Jabber, just so you know why some people use the terms interchangably) is a chat protocol, not a chat service. It is based on XML and was originally created for near instantanious message delivery (chats). However since then it has been extended to also be able to VoIP and video (more or less good, that all depends on your client).
+So XMPP is a protocol that anyone can just use. However...when I say "get started with XMPP" I don't mean set up your own servers and chat system. I mean Jabber, which is still the name of a chat service.
+
+
+### A network instead of a server
+
+The current open Jabber infrastructure is built around a bunch of servers (actually quite a **lot** of servers) that can communicate with each other. While inside the network it doesn't matter what server someone is registered with. As long as both people are part of the network they can chat with each other. And that's that. (Cryptographically and version wise it becomes a bit more complicated than that. But for the end user, that's what it boils down to).
+
+There is a list of servers in the Jabber network (also called directory) available [here](https://xmpp.net/directory.php). As you can see there are quite a few servers out there that will allow you to register. Now...when picking a server please make note of a few things.
+
+ - Check the software has had updates in at least the last year. You don't want to trust your private chats to outdated software, especially because that will usually mean that the server admin can't be bothered to update to newer versions of plugins and protocols.
+ - Check that the server passes both "Server to Server" and "Client to Client" security tests. (Both in the green).
+ - You like the domain. You don't want to have a domain "@kinkymotherfucker.com" if you don't like it :D
+
+
+### Register with a server
+
+So let's asume you've found a server you like. Scolling through the list I would probably register at [blah.im](https://blah.im). Note that you will have to import an SSL certificate. You will have to if you don't have the CA [Cert Root certificate installed](https://www.google.com/search?q=What+is+CA+Cert&ie=utf-8&oe=utf-8#q=What+is+CACert).
+
+But you will also notice that the server doesn't actually have anything on it's website. To register on servers in a lot of cases you will need a jabber client to do it for you. I am using Pidgin and will thus also demonstrate it with that client. Pidgin is free open source software and runs on almost any platform. But feel free to use a different client if you find one you like more. The features should all just be transferable.
+
+To install Pidgin please go to their website and follow download and installation instructions for your platform. For mine (Fedora) it's as simple as typing `dnf install pidgin`. I will assume you managed to install it and we
+move on :)
+
+In Pidgin navigate to accounts and Manage your accounts.
+
+![Pidgin Manage Accounts](/images/jabber/pidgin1.png "Manage accounts")
+
+In the opening window click on **add** and then select XMPP from the list of possible accounts to add.
+Fill in your desired username, the server you want to register with and a passphrase. You can leave the resource blank. Also make sure you tick the box "Create this new Account on the Server".
+
+Servers provide different ways to register. Some just have a registration webpage, some have an API that pidgin can talk to. Some make pidgin open a browser window and guide you to their registration site. This is something unique to the server you choose to register on.
+
+In the case of the *blah.im* server pidgin opens a new website where I can register my nickname (which I will not do because I already have an account I like to use). Check your input with the example picture below.
+
+![Creating new Account](/images/jabber/pidgin2.png "Create new account")
+
+And that's that. You should be registered and ready to log in and chat with other people who also use Jabber/ XMPP, no matter what server they're on.
+
+
+### Encryption via Jabber (OTR)
+
+Jabber by itself can be secured via SSL and several transport layer security measures but that makes it no more secure than any other service. The server provider can still read all messages and log them without you ever knowing it.
+
+Because of that a lot of people use separate encryption with Jabber called "Off the Record", short "OTR".
+
+What OTR does is encrypt messages on your computer, sends them to your friend and then locally on their computer decrypts them again. This has however two drawbacks.
+
+ 1. Both you and your friend need to be online to chat with each other over OTR. You can't send them an offline message and let the server cache it until they come back online to read it.
+ 2. OTR does not support multiple devices. That means you can't start chatting on your PC, have to leave and pick up the conversation on your phone. You will need to start a new conversation. And a lot of mobile clients don't properly support OTR because they shut down the session when you lock your screen.
+
+To address both these issues there is a new crypto protocol called "Axolotl" which fixes both of these issues. Axolotl is however a generic protocol and can be used with literally anything. To adapt it to XMPP and integrate it into the already existing infrastructure of servers there is a second protocol called "OMEMO" which implements Axolotl for XMPP. It is however still very new and *very* few clients support it at this time. In fact, the only Jabber client I know of is **Conversations** on Android.
+
+But let's assume the downsides of OTR don't bother you (they don't bother most people). How would you go about using it? OTR in Pidgin is a plugin that needs to be enabled. Depending on what platform you install it to you might have to install the plugin yourself which can be more or less work. (On Fedora it's just `dnf install pidgin-otr`)
+
+But [you can figure that out yourself, I hope.](http://lmgtfy.com/?q=Install+Pidgin+OTR+plugin).
+
+*Waits for you to install the plugin*
+
+Good, now what needs to happen. First you need to active the plugin and generate yourself a key. Go to **Tools** and then **Plugins**, search for the OTR plugin and enable it. Then go to it's configuration page.
+
+<img class="dual" src="/images/jabber/pidgin3.png" align="left"><img class="dual" src="/images/jabber/pidgin4.png" align="right">
+
+You will need to generate a key. A key in this case means a private key, if you're already somewhat familiar with cryptographic concepts. It's a key that is unique to you, should be protected, private and *never* shared with anyone. It is thus called your **private key**.
+
+When clicking the button to generate a key Pidgin will make one for you and save it somewhere on your filesystem. It allows you to encrypt and decrypt data (chats, files, etc.) that people send to you.
+Afterwards a key fingerprint will show up and the generate button will be greyed out.
+
+A key fingerprint is sort of a signature. It can identify you as you. So if someone sees your fingerprint they can be sure they're talking to the right person (if they've verified the fingerprint via another medium, e.g. meeting in person). But the fingerprint doesn't expose any secure information about your key.
+
+You can also change some basic information about how OTR should work on your system. I won't go over these for now.
+![OTR Configuration](/images/jabber/pidgin5.png "OTR Config")
+
+And that's it. You're done. You can initiate new private conversations with people via the **OTR** submenu in the chat screen. And know that everything you say to the person in that session is secure. And here is the best thing: OTR provides something known as "forward secrecy". That means that if at some point someone steals your laptop or phone and you loose your private key that doesn't mean that, even if someone logged every single piece of encryted text going over the network between you and a certain person and has all the information needed to theoretically decrypt your messages, they can't!
+
+Because while you chat with OTR the key continously changes. So if you ever loose your key, you don't have to worry about old chats becoming public or visible for others to see.
+
+(As long as you don't log them in cleartext of course).
+
+![Let's go off the record](/images/jabber/pidgin6.png "Let's go OTR")
+
+#### Happy chattin'
+
+~ Kate \ No newline at end of file
diff --git a/content/blog/miscellanious/005-getting-started-with-reedb.md b/content/blog/miscellanious/005-getting-started-with-reedb.md
new file mode 100755
index 0000000..ac7824c
--- /dev/null
+++ b/content/blog/miscellanious/005-getting-started-with-reedb.md
@@ -0,0 +1,127 @@
+Title: Hacking on Reedb
+Category: Blog
+Date: 2016-03-14 10:43
+Tags: Dev Diary, Reedb
+
+So...it's been a while :) Exams are over, code has been written, bugs have been fixed, frustrations have been had. Terrible christmas gifts have been sold off on ebay and found a new owner with a misguided sense of style. I've also gone a bit mad with one of my other projects: The Christmas bauble. As you might recall it started as a harmless joke to learn KiCAD, ended up actually being manufactured (I never saw that bonus from dirtypcb for mentioning them a lot :c) and has now gone into planning phase for Revision B.
+
+![Reedb Banner](/images/reedb_banner.png "Reedb Banner")
+
+But more on that later. I'm back, in the spring with new energy and drive. To talk to you about Reedb (yet again).
+
+With `0.12` coming closer and closer to being a reality I wanted to quickly draft up something how to interact with Reedb. The API is basically stable at this point and while the C-binding isn't quite done the C++ interface is ready to be used (and almost actually hooked up :) ).
+
+
+### Initialising a context
+
+Getting started with reedb requires a context which holds a bunch of information about what vaults exist, what tokens haven been scoped, users active, watchdogs, etc. etc.
+
+In addition to that there are vault interfaces that get attached to a context that can then actually interact with vaults. This way different vaults can get handled by different interfaces that are completely separated from each other.
+
+```C++
+reedb *rdb = new reedb();
+rdb->set_os(LINUX);
+rdb->set_distro(SYSTEM_D);
+rdb->set_verbose(true);
+rdb->finalise();
+```
+
+The OS and sitro flags determine what configuration paths and formats are specified as well as how to launch reedb at system startup (if such a behaviour is wanted/ set up).
+
+After defining all the parameters required or wanted to initialise the Reedb context call finalise to make it official and make the context usable. Before `finalise()` is called, trying to access other functions via the context will result in an error being thrown.
+
+### Vault interfaces
+
+So after having a Reedb context you have to register a vaults interface to it. Multiple interfaces can be registered and separated which means that certain vaults can be accessed that require different settings (for example a minimum passphrase length). Generally it just offers more flexibility to the developers.
+
+```C++
+rdb_vaults *v = new rdb_vaults();
+rdb->register_vinterface(v);
+
+vault_meta meta = v->create("fancy_vault", "~/Documents/", "MyD0gisnot!mypassword!"); // P.S. I don't have a dog :)
+```
+
+The create function will generate a key, encrypt the Master key with the provided passphrase and dump it to disk. In addition a folder structure and configuration is written. The config is mostly future proofing - none of the values are actually currently used. But it will hold information about zones, users and cipher modes in the future.
+
+---
+
+After creating a vault you still need to authenticate on it. The unencrypted key might still be held in RAM (in secure memory that is) but just because you created a vault doesn't automaticaly mean you have access to it. So after calling `create` you need to call:
+
+```C++
+// A token is malloced for you in secmem. Do not free it yourself. Let Reedb do it for you!
+rdb_token *token = v->authenticate(meta.id, "MyD0gisnot!mypassword!");
+```
+
+You need the UUID from the interface we are addressing the vault via - we can find the UUID in the vault_meta we were handed during creation. Alternatively we can ask the vaults interface.
+
+From the docs:
+> A UUID is provided from the management wrapper and isn't stored in the vault itself. A vault doesn't care about its own ID, nor does it even know it has one.
+>
+> Do not try to hard-code UUIDs into your program as they might be non-persistent across runtimes.
+
+Authentication only takes the ID and passphrase at the moment. However a user-auth function will be added in at least the next version. Both return a token that will be required for **every** operation that follows.
+
+And that's it...you can now interact with your shiny new Reedb Vault :)
+
+```C++
+std::string file_id = "Reedb.org";
+map<std::string*, std::string*> content();
+content["Username"] = "Peter Pan";
+content["Passphrase"] = "flower123";
+
+/* Then take all that data and insert it */
+v->insert(meta.id, token, &file_id, &content); // Takes the pointer to a content map to save memory during inserts.
+```
+
+As you can see you need a vault-id and a token to even be allowed to the next step. Then to insert a piece of data you need to give it a name. Reedb is object-oriented which means that every dataset has a name and is an "object" on the FS ( Blockdevice mode is in planning :) ). So from that day on your piece of data will be available if you query for "Reedb.org".
+
+```C++
+map<std::string*, file_meta*> data;
+data = query_file(meta.id, token, "Reedb.org");
+```
+
+That will put a query return into your map. A query return isn't quite data. It's basically a name of a data-set mapped to it's head. A file head contains a bunch of metadata that isn't exactly deemed "important". Like it's name, a category, some tags and whatever else you might want to save in there.
+In fact you can extend header fields at will.
+
+```C++
+map<std::string*, std::string*> meta_delta();
+// ...
+v->migrate_headers(&meta_delta);
+```
+
+From the docs (again):
+
+> A meta_delta is the name of a meta-field that should be inserted mapped to its type in a std::map<?,?>.
+> If a meta should be removed set the type to "-1".
+>
+> When removing meta fields from active vaults data needs to be migrated via rdb_meta_migr(...). Also be aware that removing active meta fields can cause terrible memory corruption. Be warned!
+
+A file_meta is exactly that: a vault header. It can be further searched and filtered with RQL (Reedb Query Language) that we will not go into further in this blog post. Just know that it exists :)
+
+*hint hint* `"$CATEGORY: [Social | Website | Online] $TAGS:[Private & Friends] $NAME: ~[Face]"` :)
+
+Deleting, updating files and updating vaults is analogue to what we already saw. Basically you always keep your vault ID and token on you, then provide the interface with some data.
+
+Some of the steps might seem a bit verbose but that's just so that the user (aka developer) gets maximum control over what she is doing with her code. It also allows for more precice error handling - narrowing down the source of the error further for the end-user.
+
+### A tiny last thing
+
+There are two interfaces for Reedb. A C++ and a C one. And you pick which one you want to use by either doing
+
+```C++
+#include<reedb/core.hpp>
+```
+
+or
+```C
+#include<reedb/core.h>
+```
+
+The C Interface is pretty much analogue to the C++ one (with obvious slight differences).
+
+```C
+vault_meta *meta;
+rdb_vaults *vaults = rdb->create(&meta, ...);
+```
+
+That's it for today. I hope this article gave you a quick introduction to the native interface and makes you at least a little curious or excited to work with it :) \ No newline at end of file
diff --git a/content/blog/miscellanious/006-another-blog-update.md b/content/blog/miscellanious/006-another-blog-update.md
new file mode 100644
index 0000000..d1e75a4
--- /dev/null
+++ b/content/blog/miscellanious/006-another-blog-update.md
@@ -0,0 +1,27 @@
+Title: Winter update
+Category: Blog
+Tags: Dev Diary, Meta
+Date: 2016-12-2 10:43
+
+Howdy everybody!
+
+As the year is winding down and we're all getting ready for the jump to take us out of what has (in my opinion) been a *very* shitty year, I looked at my blog and could only shake my head.
+
+I had moved this over from Wordpress to Pelican and basically replicated all of the layouts to the extent that some of Pelicans own functionality had to be abused to make it work. But as I kept publishing things on here I realised that most of the features I had implemented went unused.
+
+And so, for the last few days I have tweaked the layout (and design - as some might notice) to be a bit more traditional again.
+
+I was also considering to change theme but after not finding anything I liked I decided to hack the fuck out of my current one instead. You can check out all of my horrible changes [here](https://github.com/spacekookie/nest).
+
+I've also finally done some stuff that I've wanted to do for ages - such as pimping up the front page, adding a proper projects page and go through some of my old tutorial series, fix their formatting (yea right "perfect wordpress import...") and update them to newer API's of libraries. Some articles have just been dropped because I would have had to re-work their formatting and they were no longer relevant. Stuff will slowly be introduced again, with proper formatting :)
+
+
+### Everything else
+
+In the terms of literally everything except my blog: I'm looking forward to the **33C3**. I'll be joining with the c-base assembly. My first congress in almost a decade! Expect maybe an update from that. And maybe there might be some christmas hacking. It's always more fun to do silly RGB LED stuff if it ends up annoying people on the tree!
+
+Also, with the blog now in a bit better shape I will try to keep a closer journal of what I'm doing. But hey...no promises, right? ;)
+
+I shall leave you with this piece of relaxing GIF.
+
+<img class="padded" src="http://i.imgur.com/KZquOZM.gif" align="center"> \ No newline at end of file
diff --git a/content/blog/miscellanious/007-post-congress-2017.md b/content/blog/miscellanious/007-post-congress-2017.md
new file mode 100644
index 0000000..fd951ff
--- /dev/null
+++ b/content/blog/miscellanious/007-post-congress-2017.md
@@ -0,0 +1,67 @@
+Title: Post 33C3, what next?
+Category: Blog
+Tags: Dev Diary, Congress, CCC, Hamburg
+Date: 2017-01-03 12:28
+
+Howdy everybody,
+
+I just came back from the annual hacker conference in Hamburg, Germany known as the "Chaos Communication Congress" (or CCC for short). It was the first time I was there for the entire venue and the first time I was able to go at all since *2008*. So yay!
+
+It was a lot of fun and I have a lot of nice memories to hold onto now. I talked to a lot of interesting people, learned new things, got inspired to do new things and continue on old things.
+
+More importantly, I loved the chance to get in touch with some other women in the tech industry (via Haecksen & Queer Feminist Geeks), talk about problems, attempt to come up with solutions and just generally rant about things :)
+
+I also found out that I am in no way, shape or form a dancing person. Although electronic club music is fun!
+
+## Some talks I went to
+
+Following is a non-comprehensive list of the talks I went to. I am filling this from memory, so some talks might have been missed or dropped. And maybe I'll just edit them in later without anyone ever knowing.
+
+<br/>
+
+**[How Do I Crack Satellite and Cable Pay TV?](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8127.html)**
+
+A really quite epic lecture about using glitching to extract keys from a very dated security layout. Not that anyone should do this (it's not worth doing it anyways...never anything good on) but it will teach you a lot of stuff about hardware security
+
+**[Bootstraping a slightly more secure laptop](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8314.html)**
+
+A talk about the flip-side of TAILS which aims to introduce trusted computing into a world where the machine can't be trusted. HEADS on the other hand uses coreboot and cleverness to create a verifiable machine environment to build an OS on top of. Made me want to get an old thinkpad on ebay to play with :)
+
+**[The Nibbletronic](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/7925.html)**
+
+A relatively short talk about the creation of a musical instrument. Learning by doing and failing. Quite interesting for me as a hardware designer (as a hobbyist) but also a musician.
+
+**[Shut Up and Take My Money!](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/7969.html)**
+
+If you have a bank account with N26...stop having a bank account with N26. Their security is absolutely horrible. And while, yes, all of these security issues have been fixed, it shows a rather lacking attitude towards security from their engineering team. Best demonstration of client-side security gone wrong. And why ReST APIs are fucking aweful!
+
+**[Untrusting the CPU](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8014.html)**
+
+This was a great talk given by a close friend of mine about one of his super crazy projects. The idea being to construct an FPGA powered PCI-E device for laptops and/ or desktop computers that intercepts messages to the display, encodes and decodes text into them to provide an interface for encrypted messages without using the CPU. It's really quite interesting and I can't wait to see what he does with it.
+
+**[Making Technology Inclusive Through Papercraft and Sound](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/7975.html)**
+
+One of my favourite talks was about an engineering toy kit that was aiming to be more inclusive. The problem it attempts to tackle are the incredible low numbers of women in computer science and engineering (significantly lower than in other scientific fields). There are a lot of reasons why women aren't well represented in the fields and they are all cultural. This talk was about trying to change the culture around teaching people about electronics and code to be more inclusive towards groups of people (mostly girls/ women) who would otherwise be missed.
+
+I really enjoyed the talk on a lot of different levels. One was the technical aspect of creating a childrens toy on the cheap that is inclusive and universally programmable through audio encoding. Quite worth a watch.
+
+I don't think that just with projects like this the culture around women in tech will change. But it's a start. What we realistically need is a change in culture throughout all layers of society. I think the problems around women in tech are quite complicated. And unfortunately usually result in a bunch of assholes starting to shout either about how feminism is evil or how diversity isn't important. And biases aren't actually thaaaaat bad, right? */s*
+
+I could rant here forever and it's questionable how many people would actually care :) I can recommend this talk. Let's leave it at that :)
+
+**[The Moon and European Space Exploration](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/8406.html) and [Interplanetary Colonization](https://fahrplan.events.ccc.de/congress/2016/Fahrplan/events/7942.html)**
+
+Those were just the first two talks from a series of space talks. The first one was from one of the heads of ESA about their plans to colonise the moon for profit! And science of course... It was quite funny and definately worth watching.
+
+The second one I almost liked more, though mostly the first part of it. Liz George manages to explain incredibly well in a very short amount of time what challenges exist when discovering exo-planets. The second part (by somebody else) is a bit more vague about how to actually get there and is less science, more fiction. But hey :P
+
+
+## Going into 2017
+
+So in short: 33C3 was pretty epic! And I honestly can't wait for next year. It's not clear yet where it will be held but it will be epic non-the-less. And who knows, maybe I have a talk to hold by then :)
+
+Which brings me to this year. Last year was fucking shitty. Politically...On a personal level it actually went quite well. And I got a lot of shit done. I did Google Summer of Code, I made *huge* progress on my game project (yes, I will post about that at some point). And especially in the last months of the year, I redesigned and rerouted the Open Plantb0t board. On january 1st, 2017 the revision A2 design went into production.
+
+I hope to get all my parts together soon and build up a second prototype series which (hopefully) works better than the last ;) I will keep y'all updated on that.
+
+Until then, I hope you've had a happy new years eve and not an all too terrible year...yet ;) \ No newline at end of file
diff --git a/content/blog/miscellanious/008-libgdx-super-ui.md b/content/blog/miscellanious/008-libgdx-super-ui.md
new file mode 100644
index 0000000..c86499d
--- /dev/null
+++ b/content/blog/miscellanious/008-libgdx-super-ui.md
@@ -0,0 +1,116 @@
+Title: LibGDX UI utility: Super UI
+Category: Blog
+Tags: Dev Diary, LibGDX, Game Dev, Lonely Robot
+Date: 2017-01-24 00:14
+
+**Let me tell you a factual statement**
+
+*UI programming is terrible*
+
+**Let me tell you an even more factual statement**
+
+*UI programming in LibGDX is even more terrible*
+
+I am a big fan of LibGDX. It's a really nifty library/ framework to get started with game development if you're more comfortable inside a code editor than a full blown game engine that is more targeted towards designers and artists. And I put my money where my mouth is: I have a series about LibGDX development for beginners on this blog and work almost exclusively with it when it comes to my own projects.
+
+Yet, there is something that bothers me and there didn't seem to be a great solution to fix it. UI code structure. In this post I want to highlight a utility I have written for LibGDX which is very easily embeddable into your existing projects which will you help structure UI code more efficiently.
+
+## The root problem
+
+The reason I dislike UI programming with LibGDX is that it usually results in very long code files or passing dozens of parameters into sub-classes that are needed to update the UI for button presses, etc.
+
+This goes so far that I have written an editor for game assets before just to realise that (once the development was complete) it had become completely unmaintainable and I had to start from scratch with better structure. It is incredibly easy to just throw out a UI design with Scene2D and LibGDX but unfortunately it is equally easy to produce very bad code which will turn into a big spaghetti mess.
+
+Let's look at an example problem that I wanted to solve.
+
+![LibGDX UI design problem](/images/libgdx_ui/01_base_problem.png)
+
+Looking at this structure we have three main components that interact with each other. We have a class that handles UI logic (setting up actors in tables, adding listeners, etc), we have a window state which in the particular case which made me write an alternative was a "Lobby Handle" which coordinated what players were going to enter a match, the map, game mode and if everybody in the multiplayer match was set to "Ready". Lastly we have the actual network signal handlers that listen to TCP/ UDP packets and execute code to write/ read from the window state as well as update UI elements.
+
+Implementing this structure with Scene2D and LibGDX will result in a lot of very ugly code. Because the network signals need to know everything about the UI (how it is structured, etc). And our window state can be written to by two different sources which means that we need to mutex it to avoid race conditions.
+
+So, what was I trying to solve? First a bit of limitation of scope. Because a lot of UI problems have been solved over and over again and usually at the cost of runtime performance or with a *lot* of extra code.
+
+1. UI code doesn't have to be embedded in a screen
+2. All UI code can access the shared context of the screen
+3. UI elements can update each other
+4. Clean API that can be called on from anywhere (with a reference to the handle) that triggers range of functions.
+
+So with that in mind, this is what I did.
+
+```java
+
+class MyUIHandle extands UIHandle {
+ public static enum UI implements UI_BASE {
+ PLAYER_LIST;
+ }
+
+ { /** Initialiser block for new objects */
+
+ registerHandle(new PlayerList(), UI.PLAYER_LIST);
+ // ... more handles
+ }
+
+ @Override
+ public void initialise(Stage s, Object ... var) { ... }
+
+ public class PlayerList extends UIContainer {
+
+ @Override
+ public void initialise(Stage s) { ... }
+
+ // Define more API here ...
+ }
+
+}
+
+```
+
+When we initialise a new `UIHandle` the initialiser block will create our `PlayerLists` and register them with the `UIHandle`. That code is hidden away from you. You can see that we're implementing a different enum type that we overload with values so that we can address submodules via a compile-time checkable value (such as enums). From inside (and outside) this class `UIContainer's` are available via `handle.get(UI.SUB_HANDLE)`. Obviously keeping your enum labels short will make your function calls snappier :)
+
+The following graphic will sort-of explain the layout in more detail.
+
+![Super UI fixing attempt](/images/libgdx_ui/02_ui_structure.png)
+
+What you might also notice is that the `UIHandle` has an initialise function with variadic parameters while the `UIContainer` class only takes a stage. That is because window context is stored once in the `UIHandle` and then accessable from all `UIContainer` classes. This way we only need to do the inversion of control pattern once instead of for every sub-component.
+
+You can keep the `UIContainer` classes outside this code-file. Then you might however want to provide a construct that does another inversion of control so that an external `UIContainer` can access the context provided via initialise!
+
+```java
+
+public class PlayerList extends UIContainer {
+
+ private MyUIHandle parent;
+ public PlayerList(MyUIHandle parent) { this.parent = parent; }
+
+ // ...
+}
+
+```
+
+Now let's talk about that public API. In our original example we wanted to have networking code update some UI elements. And we want UI elements to update other UI elements. So first of all, we keep context in each `UIContainer` about what UI elements are accessable to it. So what we can do in every of our submodules is this:
+
+```java
+ parent.get(UI.PLAYER_LIST).updatePlayers(playerList);
+```
+
+It also means that if we get new data from – say – a network socket or AI simulation, we can very easily update data in some random UI element.
+
+```java
+ handle.get(UI.PLAYER_LIST).populate(playerList);
+```
+
+So all in all, we have solved the following problems:
+
+1. We have access to all game state in the UI code without passing too many parameters into lots of sub-classes
+2. UI code can be moved into lots of files for easier understandability
+3. Context isn't duplicated
+4. UI code can update other UI code without needing a direct reference to it.
+
+The individual `UIContainer` instances are essentially independant of each other via dependency injection.
+
+This library isn't done yet. Most of this is kinda hacked together to fit into **my** game. But I'm interested in making it more generic and putting it on Github. Especially because I can see myself using it again in the future.
+
+Hope this might be useful to somebody out there. If you have questions, comments, hatemail...
+
+[Twitter](https://twitter.com/spacekookie) or [E-Mail](mailto:kookie@spacekookie.de) \ No newline at end of file
diff --git a/content/blog/miscellanious/009-moonscript-adventures.md b/content/blog/miscellanious/009-moonscript-adventures.md
new file mode 100644
index 0000000..d991a89
--- /dev/null
+++ b/content/blog/miscellanious/009-moonscript-adventures.md
@@ -0,0 +1,60 @@
+Title: Dabbling with Moonscript
+Category: Blog
+Tags: Dev Diary, moonscript, programming
+Date: 2017-05-06 11:55
+
+![Lua means moon in portuguese](/images/lua_moon_banner.png)
+
+Recently I've started learning/ using Moonscript. It's a language that compiles to [lua](https://www.lua.org/) and as such can run in the LuaJIT, an alternative lua engine which allows very easy and *fast* ffi calls into native code. This makes lua code capable of writing very performant applications and games that use native rendering, window creation or general libraries.
+
+But in my opinion lua has always felt a bit cumbersome. I use awesomewm so I had to write it occasionally to customise my UI layout. And this is where Moonscript comes in. It's a lot of syntactic sugar on top of lua as well as some other concepts such as object orientation which lua just plain out doesn't have. And while yes, you can write good code without OO (*cough* **C** *cough*) it is a nice tool to have in your pocket, especially when writing GUI applications or games.
+
+
+## The language
+
+```Moonscript
+class Thing
+ name: "unknown"
+
+class Person extends Thing
+ say_name: => print "Hello, I am #{@name}!"
+
+with Person!
+ .name = "MoonScript"
+ \say_name!
+```
+
+As you can see Moonscript is an indentation based language which (in my opinion) combines syntactic elements from lua and ruby together. In the snippet above (which is from the [moonscript website](http://moonscript.org/)) you can see classes, inheritance as well as the `with` keyword which allows you to initialise/ work with objects without typing it's variable name over and over again.
+
+If you want to learn more about the language, I can only recommend you have a look at the [Moonscript in 15 minutes guide](https://github.com/leafo/moonscript/wiki/Learn-MoonScript-in-15-Minutes)
+
+
+## How to use it
+
+You can just write Moonscript files, add `#!/usr/bin/env moon` to them and get going. Obviously that's pretty cool for little scripts that you just want to get going. But not so great for larger applications because a) you don't have access to `ffi` via luaJIT and b) it adds additional startup cost.
+
+So instead for my projects so far (which so far are a [game](https://github.com/spacekookie/dinodino) and a desktop app) I use a `Makefile` to build and run the Moonscript compiler and then execute the `init.lua` with luajit.
+
+```Makefile
+SOURCES := $(wildcard *.moon) $(wildcard **/*.moon)
+LUAOUT := $(SOURCES:.moon=.lua)0
+
+.PHONY: all run build
+
+all: run
+build: $(LUAOUT)
+%.lua: %.moon
+ moonc $<
+run: build
+ luajit init.lua
+```
+
+## Wrapping up
+
+So...I'm kinda excited about this. Most of the code I write is either in C or Java (depending on what exactly I'm doing). And those two strongly typed and compiled languages have served me well and will continue to be my go-to solutions for a lot of problems.
+
+But I've long been looking for a dynamicly typed, interpreted/ just-in-time compiled language that I can use for anything from little scripts to medium-sized desktop applications. I used to use python for this but have recently (over the last 6-9 months) fallen out of love and developed a rather passionate dislike of it and it's ecosystem.
+
+My current project will get it's own little article at some point but I don't mind teasing the progress here. I'm writing a new UI for redshift which works with X11 linux backends and is heavily inspired by f.lux on MacOS. It's written in moonscript, with my own forked version of redshift (which I call [libredshift](https://github.com/spacekookie/libredshift)). It's on [github](https://github.com/spacekookie/redshift_ctrl) and licensed under MIT.
+
+Hope I've made you a little curious about Moonscript. And stay tuned for updates on future projects with it :) \ No newline at end of file
diff --git a/content/blog/summerofcode/gsoc-000-i-got-accepted.md b/content/blog/summerofcode/gsoc-000-i-got-accepted.md
new file mode 100755
index 0000000..894bd85
--- /dev/null
+++ b/content/blog/summerofcode/gsoc-000-i-got-accepted.md
@@ -0,0 +1,25 @@
+Title: I got accepted to GSoC 2016
+Category: Blog
+Date: 2016-04-27 18:47
+Tags: GSoC2016
+
+![Acceptence Mail](/images/gsoc/00_acceptance.png "Acceptence Mail")
+
+The title should be self explanatory about that one :)
+
+But let me go back a little bit. A couple of weeks ago I sat in the basement of my local hackerspace talking to a friend about crypto when somebody joined the conversation, asking if I was a student and if I might be interested in Google Summer of Code.
+
+After I looked up the project and familiarised myself with what had to be done, I thought it would be interesting to try to apply. And so I did. I wrote a long-ish proposal of what I wanted to do, how I would do it and when exactly I would acomplish my goals. (You can read my original proposal [here](https://storage.googleapis.com/summerofcode-prod.appspot.com/gsoc/core_project/doc/1458924075_GSOCProposal-KatharinaSabel.pdf?Expires=1461863360&GoogleAccessId=summerofcode-prod%40appspot.gserviceaccount.com&Signature=h0y5Nzi7llFNWKzt9%2BLGLvxcAPZ%2FaO7ni1ZyRDA3uFi6PD%2BDBmtIB6RJAr4Ulhv6fe64IFyB%2FI9iuVIYWIInYTmN7pZ9aUxw6TgxgFYguIywfcE2yUZ4o5UKb0PUbwI0Pu7o6mq%2BzSDXqlegpVOgujQ9k2QuTg1T1CqGzSi%2FnC4u6H0mB%2BxzWGGpoBC6rFwkKM1S70gE7hJ0EZpgYWr9H9zKPcwrfPtx99zqb488sH6STGYJf4tFrDRnnr57k2zbSN%2BO17chZtVBjGUYrKoyU6B%2FGB8MexFE6rmYaTCr5AjgqGWm97VCCwZkpHbRiTtFH5yT825G9%2FkRPYHkxsPnCw%3D%3D))
+
+In the meantime I actually had a sit-down with my mentor (the person joining the conversation in that basement) and made further plans how to implement things.
+
+And so this is it. The next month or so I will have time to get to know the code base of the project (although I partially already have), meet more people from the community and generally get into the rythm of what GSoC is.
+
+I will be posting three blog posts on the official [Freifunk Blog](http://blog.freifunk.net/), one in a couple of days/ weeks, one in the height of the project and one that will go into the aftermath of the project.
+
+But in the meantime I will be keeping my blog up to date about what I am doing, how things are going, my challenges and things I learn.
+In the hopes that people might find it useful and lean things from it. Or just to save my insane ramblings in some narcissistic pleasure...to think that I am relevant in the world :P
+
+Read you soon,
+
+Kate \ No newline at end of file
diff --git a/content/blog/summerofcode/gsoc-001-prepping-the-patient.md b/content/blog/summerofcode/gsoc-001-prepping-the-patient.md
new file mode 100755
index 0000000..46fd034
--- /dev/null
+++ b/content/blog/summerofcode/gsoc-001-prepping-the-patient.md
@@ -0,0 +1,37 @@
+Title: First steps...baby steps
+Category: Blog
+Date: 2016-06-02 19:56
+Tags: GSoC2016
+
+So it's been almost two months, the community bonding period has passed, blog posts were written, talks held and slowly but surely I'm working myself into the qaul.net codebase.
+
+It's always weird joining a larger project and seeing established build setups, code conventions or generally things where your first thought is "I would have done that differently...". But it's really fun.
+
+I'm currently working myself into [mbed.tls](https://tls.mbed.org/) which is the crypto library which was chosen to power the cryptographic backend for libqaul (which powers qaul.net).
+
+That includes some code that will probably not make it into a later version of my branch: the debugger.
+
+### The De-bugger?!
+
+![Debugger Pro 2016](/images/gsoc/01_debugger.png "Debugger")
+
+Well...debuger might be a bit of a strong word, it's basically a way to develop core functions of qaul.net without having to start a GUI, going through NetworkManager dialup or oslr bootup.
+
+There I am currently busy writing a wrapper around a new namespace added to libqaul: `qcry` (short for qaul crypto) and properly integrate all the mbed.tls sources into the library so they can be accessed by libqaul. The idea being that I don't have to leave vim and the terminal to develop on the core cryptographic components such as:
+
+ - Key generation
+ - Identify generation (with private key fingerprints)
+ - Identity verification
+ - ???
+
+Only in the last step of the last bulletin do I actually have to involve the GUI of qaul.net. And until that point I wish to not come in contact with it (if avoidable).
+
+So most of next week will be getting to know mbed-tls as I have never worked with it before. But hey...can't be worse than the gcrypt documentation¹ :')
+
+Hope to read you soon with more updates (probably rants).
+
+Kate o/
+
+---
+
+¹I am sure I will eat my words in 4 weeks
diff --git a/content/blog/summerofcode/gsoc-002-final-evaluation.md b/content/blog/summerofcode/gsoc-002-final-evaluation.md
new file mode 100644
index 0000000..6c8a4e4
--- /dev/null
+++ b/content/blog/summerofcode/gsoc-002-final-evaluation.md
@@ -0,0 +1,69 @@
+Title: What I have done in GSoC 2016
+Category: Blog
+Date: 2016-08-19 18:13
+Tags: GSoC2016
+
+Google Summer of Code is coming to an end. And as the final bugs are getting squashed and more code is being prepared for the big merge, I am sitting here, trying to think of how to represent my work.
+
+I thought I would write up a little blog post, explaining what I've done and what still remains to be done.
+
+### The TLDR
+
+My main contributions are all available [here](https://github.com/spacekookie/qaul.net/commits/qaul_crypto?author=spacekookie) (spacekookie/qaul.net on the `qaul_crypto` branch). I did a lot of small commits. Most of my code can be found in this [sub-directory](https://github.com/spacekookie/qaul.net/tree/qaul_crypto/src/libqaul/crypto).
+
+In addition to that I ported an existing project (from python) to C to be relevant for future front-end endevours of the client. It's called [librobohash](https://github.com/spacekookie/librobohash). I didn't end up finishing the port because there were more pressing issues in qaul.net and the UI was delayed.
+
+While most of my work has been in hidden backend systems there is a demo you can run. The source compiles and has been tested under Linux (Ubuntu 16.04 and Fedora 24) and is located under the `src/client/dbg/` directory. The demo creates two new users (to simulate communication between two nodes), adds the public keys to the keystore and then continues to sign and verify messages. If the demo returns lots of "0" and "OK" it went okay :)
+
+Feel free to play with the demo; for example, switch out `message` for `fakemessage` during verification :) The source for the demo can be found under `src/libqaul/qcry_wrapper.c`
+
+### The good (aka what I have done)
+
+<img class="dual" src="/images/gsoc/02_cryptoui.png" align="left">
+
+The two main components that I've written during GSoC2016 are internally referenced as `qcry_arbit` and `qcry_context`. They are two modules that make up the new crypto module in qaul.net.
+
+As I explained in my first blog post on the [Freifunk blog](http://blog.freifunk.net/2016/gsoc2016-wrapping-crypto-module-qaulnet) the Arbiter provides a static API for the rest of the library (libqaul) to interact with the crypto module.
+
+The context holds the actual magic of holding user keys, signing and verifying messages and (theoretically) encrypting messages as well.
+
+Possible with this API at this time is to create users, to sign messages with a users private key and to verify messages that are sent to you from other users. Originally it was planned to split the arbiter into the actual API and a dispatcher which would allow for concurrent access to the inner functions. However it was established through tests that the design was overkill and was thus scrapped.
+
+A keystore was added in addition to the user store already existing in qaul.net to provide an easy way to store public keys (mapped against fingerprints) that are received from flood events on the network.
+
+In total the crypto submodule adds another ~2.2k lines of code to the project.
+
+
+### The bad (aka what I haven't yet done)
+
+So far completely un-implemented is encryption. Unfortunately working with the crypto library selected for the task turned out to be more challenging than expected. With almost no documentation and a few very niche examples I basically went through the library line-by-line to understand how it worked.
+
+As such, my focus was set on signature exchanges at first because the verifiability of messages and the change to address users by their fingerprints was deemed more important.
+
+My contributions to qaul.net won't end with the end of Summer of Code. The function stubs are already provided and I plan on implementing the encryption features in the coming weeks.
+
+
+### The ugly (aka what I can't do yet)
+
+Signatures (and also encryption) of private messages (so messages that aren't flooded to everybody) is currently impossible. This is due to the way that the communication system in qaul.net works.
+
+I have talked to my mentor and he said that they were currently in the process of re-writing the communication sub-system in libqaul. This means two things:
+
+ 1. I need to wait for those changes to be done until I can finish what I set out to do
+ 2. Some of the code I wrote (hooking into the current communication system) is being made obsolete :(
+
+
+### In conclusion
+
+What I can say is this: qaul.net has gotten a very big step closer to becoming a more secure network of communication. The crypto submodule is tested and easy to use. What might happen is that parts of the code get merged (the crypto submodule itself) without merging any of the code that hooks into the communication stack.
+
+I had a lot of fun working on this project and I am looking forward to more contributions. I have a few cool ideas that I want to discuss with the rest of the team and I am glad that I participated in the Google Summer of Code.
+
+I was interested in open source before and I contributed to my own projects on github. But the experience I gained this summer will be helpful for me, not just for my own work, but to be less reluctant to join other developer communities.
+
+And I look forward to seeing my code get merged into qaul.net :)
+
+Read you soon,
+
+
+~Kate \ No newline at end of file
diff --git a/content/downloads/cuckoo_hashing.pdf b/content/downloads/cuckoo_hashing.pdf
new file mode 100644
index 0000000..df63737
--- /dev/null
+++ b/content/downloads/cuckoo_hashing.pdf
Binary files differ
diff --git a/content/downloads/gameofcodes/artpack1.zip b/content/downloads/gameofcodes/artpack1.zip
new file mode 100644
index 0000000..29c24a1
--- /dev/null
+++ b/content/downloads/gameofcodes/artpack1.zip
Binary files differ
diff --git a/content/images/banner_bg2x.png b/content/images/banner_bg2x.png
new file mode 100644
index 0000000..c536792
--- /dev/null
+++ b/content/images/banner_bg2x.png
Binary files differ
diff --git a/content/images/banners/plantb0t_revA.png b/content/images/banners/plantb0t_revA.png
new file mode 100755
index 0000000..ec17f03
--- /dev/null
+++ b/content/images/banners/plantb0t_revA.png
Binary files differ
diff --git a/content/images/cf_disk.png b/content/images/cf_disk.png
new file mode 100755
index 0000000..7c01b05
--- /dev/null
+++ b/content/images/cf_disk.png
Binary files differ
diff --git a/content/images/cf_disk1.png b/content/images/cf_disk1.png
new file mode 100755
index 0000000..da69860
--- /dev/null
+++ b/content/images/cf_disk1.png
Binary files differ
diff --git a/content/images/christmas_bauble_pcb.jpg b/content/images/christmas_bauble_pcb.jpg
new file mode 100755
index 0000000..4602f08
--- /dev/null
+++ b/content/images/christmas_bauble_pcb.jpg
Binary files differ
diff --git a/content/images/christmas_bauble_pcb.png b/content/images/christmas_bauble_pcb.png
new file mode 100755
index 0000000..8e67eca
--- /dev/null
+++ b/content/images/christmas_bauble_pcb.png
Binary files differ
diff --git a/content/images/christmas_bauble_render.png b/content/images/christmas_bauble_render.png
new file mode 100755
index 0000000..3096dce
--- /dev/null
+++ b/content/images/christmas_bauble_render.png
Binary files differ
diff --git a/content/images/example.png b/content/images/example.png
new file mode 100755
index 0000000..40307f1
--- /dev/null
+++ b/content/images/example.png
Binary files differ
diff --git a/content/images/favicon.ico b/content/images/favicon.ico
new file mode 100755
index 0000000..2e10718
--- /dev/null
+++ b/content/images/favicon.ico
Binary files differ
diff --git a/content/images/flora_pinout.png b/content/images/flora_pinout.png
new file mode 100755
index 0000000..e7a038b
--- /dev/null
+++ b/content/images/flora_pinout.png
Binary files differ
diff --git a/content/images/flora_withleds.jpg b/content/images/flora_withleds.jpg
new file mode 100755
index 0000000..da708b3
--- /dev/null
+++ b/content/images/flora_withleds.jpg
Binary files differ
diff --git a/content/images/front_matrix_background.png b/content/images/front_matrix_background.png
new file mode 100755
index 0000000..5059491
--- /dev/null
+++ b/content/images/front_matrix_background.png
Binary files differ
diff --git a/content/images/gameofcodes/series01/01_setup_ui.png b/content/images/gameofcodes/series01/01_setup_ui.png
new file mode 100644
index 0000000..5449046
--- /dev/null
+++ b/content/images/gameofcodes/series01/01_setup_ui.png
Binary files differ
diff --git a/content/images/gameofcodes/series01/02_setup_ui.png b/content/images/gameofcodes/series01/02_setup_ui.png
new file mode 100644
index 0000000..39be1e0
--- /dev/null
+++ b/content/images/gameofcodes/series01/02_setup_ui.png
Binary files differ
diff --git a/content/images/gameofcodes/series01/04_eclipse.png b/content/images/gameofcodes/series01/04_eclipse.png
new file mode 100644
index 0000000..620cf1b
--- /dev/null
+++ b/content/images/gameofcodes/series01/04_eclipse.png
Binary files differ
diff --git a/content/images/gameofcodes/series01/05_eclipse.png b/content/images/gameofcodes/series01/05_eclipse.png
new file mode 100644
index 0000000..9c13065
--- /dev/null
+++ b/content/images/gameofcodes/series01/05_eclipse.png
Binary files differ
diff --git a/content/images/gameofcodes/series01/06_eclipse.png b/content/images/gameofcodes/series01/06_eclipse.png
new file mode 100644
index 0000000..50ad0ce
--- /dev/null
+++ b/content/images/gameofcodes/series01/06_eclipse.png
Binary files differ
diff --git a/content/images/gameofcodes/series01/07_gamechange.png b/content/images/gameofcodes/series01/07_gamechange.png
new file mode 100644
index 0000000..c35e21e
--- /dev/null
+++ b/content/images/gameofcodes/series01/07_gamechange.png
Binary files differ
diff --git a/content/images/gameofcodes/series02/01_framelife.png b/content/images/gameofcodes/series02/01_framelife.png
new file mode 100644
index 0000000..da9b9a9
--- /dev/null
+++ b/content/images/gameofcodes/series02/01_framelife.png
Binary files differ
diff --git a/content/images/gameofcodes/series02/02_createclass.png b/content/images/gameofcodes/series02/02_createclass.png
new file mode 100644
index 0000000..58f5725
--- /dev/null
+++ b/content/images/gameofcodes/series02/02_createclass.png
Binary files differ
diff --git a/content/images/gameofcodes/series03/01_badrotation.gif b/content/images/gameofcodes/series03/01_badrotation.gif
new file mode 100644
index 0000000..7a5b609
--- /dev/null
+++ b/content/images/gameofcodes/series03/01_badrotation.gif
Binary files differ
diff --git a/content/images/gameofcodes/series03/02_rotating.gif b/content/images/gameofcodes/series03/02_rotating.gif
new file mode 100644
index 0000000..8fff569
--- /dev/null
+++ b/content/images/gameofcodes/series03/02_rotating.gif
Binary files differ
diff --git a/content/images/gameofcodes/series04/01_800x600.png b/content/images/gameofcodes/series04/01_800x600.png
new file mode 100644
index 0000000..db76878
--- /dev/null
+++ b/content/images/gameofcodes/series04/01_800x600.png
Binary files differ
diff --git a/content/images/gameofcodes/series04/02_720p.png b/content/images/gameofcodes/series04/02_720p.png
new file mode 100644
index 0000000..c4567d6
--- /dev/null
+++ b/content/images/gameofcodes/series04/02_720p.png
Binary files differ
diff --git a/content/images/gameofcodes/series04/03_1080p.png b/content/images/gameofcodes/series04/03_1080p.png
new file mode 100644
index 0000000..41d68aa
--- /dev/null
+++ b/content/images/gameofcodes/series04/03_1080p.png
Binary files differ
diff --git a/content/images/gameofcodes/series04/04_1440p.png b/content/images/gameofcodes/series04/04_1440p.png
new file mode 100644
index 0000000..2fba5dc
--- /dev/null
+++ b/content/images/gameofcodes/series04/04_1440p.png
Binary files differ
diff --git a/content/images/gsoc/00_acceptance.png b/content/images/gsoc/00_acceptance.png
new file mode 100755
index 0000000..a201efa
--- /dev/null
+++ b/content/images/gsoc/00_acceptance.png
Binary files differ
diff --git a/content/images/gsoc/01_debugger.png b/content/images/gsoc/01_debugger.png
new file mode 100755
index 0000000..13af522
--- /dev/null
+++ b/content/images/gsoc/01_debugger.png
Binary files differ
diff --git a/content/images/gsoc/02_cryptoui.png b/content/images/gsoc/02_cryptoui.png
new file mode 100644
index 0000000..c75580b
--- /dev/null
+++ b/content/images/gsoc/02_cryptoui.png
Binary files differ
diff --git a/content/images/jabber/pidgin1.png b/content/images/jabber/pidgin1.png
new file mode 100755
index 0000000..65b9086
--- /dev/null
+++ b/content/images/jabber/pidgin1.png
Binary files differ
diff --git a/content/images/jabber/pidgin2.png b/content/images/jabber/pidgin2.png
new file mode 100755
index 0000000..458a911
--- /dev/null
+++ b/content/images/jabber/pidgin2.png
Binary files differ
diff --git a/content/images/jabber/pidgin3.png b/content/images/jabber/pidgin3.png
new file mode 100755
index 0000000..a56384a
--- /dev/null
+++ b/content/images/jabber/pidgin3.png
Binary files differ
diff --git a/content/images/jabber/pidgin4.png b/content/images/jabber/pidgin4.png
new file mode 100755
index 0000000..896b76d
--- /dev/null
+++ b/content/images/jabber/pidgin4.png
Binary files differ
diff --git a/content/images/jabber/pidgin5.png b/content/images/jabber/pidgin5.png
new file mode 100755
index 0000000..9b4e04e
--- /dev/null
+++ b/content/images/jabber/pidgin5.png
Binary files differ
diff --git a/content/images/jabber/pidgin6.png b/content/images/jabber/pidgin6.png
new file mode 100755
index 0000000..355ee25
--- /dev/null
+++ b/content/images/jabber/pidgin6.png
Binary files differ
diff --git a/content/images/libgdx_ui/01_base_problem.png b/content/images/libgdx_ui/01_base_problem.png
new file mode 100644
index 0000000..19b7152
--- /dev/null
+++ b/content/images/libgdx_ui/01_base_problem.png
Binary files differ
diff --git a/content/images/libgdx_ui/02_ui_structure.png b/content/images/libgdx_ui/02_ui_structure.png
new file mode 100644
index 0000000..128d318
--- /dev/null
+++ b/content/images/libgdx_ui/02_ui_structure.png
Binary files differ
diff --git a/content/images/logo3.png b/content/images/logo3.png
new file mode 100755
index 0000000..f7d5659
--- /dev/null
+++ b/content/images/logo3.png
Binary files differ
diff --git a/content/images/lua_moon_banner.jpg b/content/images/lua_moon_banner.jpg
new file mode 100644
index 0000000..2b0bcf5
--- /dev/null
+++ b/content/images/lua_moon_banner.jpg
Binary files differ
diff --git a/content/images/lua_moon_banner.png b/content/images/lua_moon_banner.png
new file mode 100644
index 0000000..6764e73
--- /dev/null
+++ b/content/images/lua_moon_banner.png
Binary files differ
diff --git a/content/images/omnitool_background.jpg b/content/images/omnitool_background.jpg
new file mode 100755
index 0000000..6a0c91d
--- /dev/null
+++ b/content/images/omnitool_background.jpg
Binary files differ
diff --git a/content/images/omnitool_background2.jpg b/content/images/omnitool_background2.jpg
new file mode 100755
index 0000000..7b14433
--- /dev/null
+++ b/content/images/omnitool_background2.jpg
Binary files differ
diff --git a/content/images/plantb0t_RevA_front.png b/content/images/plantb0t_RevA_front.png
new file mode 100755
index 0000000..6344d38
--- /dev/null
+++ b/content/images/plantb0t_RevA_front.png
Binary files differ
diff --git a/content/images/plantb0t_RevA_naked.png b/content/images/plantb0t_RevA_naked.png
new file mode 100755
index 0000000..0178c41
--- /dev/null
+++ b/content/images/plantb0t_RevA_naked.png
Binary files differ
diff --git a/content/images/rad1o_badge.png b/content/images/rad1o_badge.png
new file mode 100755
index 0000000..44b3bc6
--- /dev/null
+++ b/content/images/rad1o_badge.png
Binary files differ
diff --git a/content/images/rdb_article_banner.png b/content/images/rdb_article_banner.png
new file mode 100755
index 0000000..2d2f85b
--- /dev/null
+++ b/content/images/rdb_article_banner.png
Binary files differ
diff --git a/content/images/reedb_banner.png b/content/images/reedb_banner.png
new file mode 100755
index 0000000..87bfe32
--- /dev/null
+++ b/content/images/reedb_banner.png
Binary files differ
diff --git a/content/images/silly_no_visitors_blog.png b/content/images/silly_no_visitors_blog.png
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/content/images/silly_no_visitors_blog.png
diff --git a/content/images/ws_2812b_single.png b/content/images/ws_2812b_single.png
new file mode 100755
index 0000000..9fb6bb7
--- /dev/null
+++ b/content/images/ws_2812b_single.png
Binary files differ
diff --git a/content/kookie.txt b/content/kookie.txt
new file mode 100644
index 0000000..bfc5db0
--- /dev/null
+++ b/content/kookie.txt
@@ -0,0 +1,112 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+ ❤ (rayya) ~> cat msg
+Following are my public gpg key as well as Threema Fingerprint and others.
+
+Threema
+=======
+ID: 77WYDHA2
+Fingerprint: AB2A 4F8A 8FF9 6335 75C2 4E0C 175B C0D6
+
+Public Key Cryptograpy (GnuPG)
+==============================
+
+Plain copy of my key can be found here
+https://spacekookie.de/pgp/6FE1BBF3.asc
+
+It is also available on the MIT keyserver.
+
+This document was last changed/ signed at around
+ ❤ (rayya) ~> date
+Sun 7 May 14:09:59 CEST 2017
+ ❤ (rayya) ~> gpg2 --fingerprint 6FE1BBF3
+pub rsa4096 2017-02-02 [SC] [expires: 2019-02-02]
+ 9F18 A093 CF65 F938 E4C8 EFA4 29E0 5751 6FE1 BBF3
+uid [ultimate] spacekookie c-base <spacekookie@c-base.org>
+uid [ultimate] spacekookie (Using computers to create weird random patterns...) <kookie@spacekookie.de>
+sub rsa4096 2017-02-02 [E] [expires: 2019-02-02]
+
+ ❤ (rayya) ~> gpg2 --armor --export 6FE1BBF3
+- -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=vSgE
+- -----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCAAdFiEEnxigk89l+TjkyO+kKeBXUW/hu/MFAlkPFaQACgkQKeBXUW/h
+u/NbgQ/+LRikzv8yFpVzbNZTg1mEQ+wFDZEnrwSDvdEL/+iqZ8X8V3NWz9svUIF/
+mMjQeYH3XcZqJ19XpyfSd+1MiFoNRCU04aaOwopmWrok0qYoKW7zdwTHmiBnftCs
+vctvO5o0INN2Qfrhwjzot2EfBiuo6LBG3lV6rWdMZFkJFlzoCqlFrMVWBAYBtXlN
+QhPgxfanp3Fg7hKGS5sYjtGlGEY6Qu1nkbU/92sHtCnSb+2TM8fRij4Su/5B+XMH
+e2UbmMcSY2iS2tn46sG0hAVky5+BF2JHKWVOECrszqVwxDRhqPBdVOKD3biXrQsM
+9NistBGaFoYcVxN7wvhVdOd07pqc6HV1Dmv3ngro6kX3j9KsB/70OvKntsVWbnph
+kEwoOVAhPs8f6zNo/lGhs9vYsLgkbSpzflKYlEqHlOFOPSGzHAAeM7eMi6aWVMWB
+LnVxaKtogE1m7lPdgkHt0V6sqHUFf+j7eHrWp0J8w514FcO9dhhNiY0Yvn1xJCBM
+tEkemLyMfk8gx3M1lz8p7RkKR601GcXi6mtpetREPL40zUt8IhRDwUwXM6Pvuspl
+pKUxhkbE8CeJ9vvyqVhoAjTfEGDpXI6sb53le7RXkw8JdQ9ueoJyt4Fk/zXXxvdC
+3XMB6dIEFQ979IHp04Pb8njdWEokzNOMlUPyrTR0UvYXUPeDmhs=
+=ZvDg
+-----END PGP SIGNATURE-----
diff --git a/content/pages/aboutme.md b/content/pages/aboutme.md
new file mode 100755
index 0000000..ec91d79
--- /dev/null
+++ b/content/pages/aboutme.md
@@ -0,0 +1,21 @@
+Title: whoami
+Slug: about
+
+```scala
+ ❤ (idenna) ~> whoami
+spacekookie
+```
+
+I'm a computer science student from Berlin, Germany. In my free time I make games, write free and open-source software and am an allround nerd.
+
+I grew up in a small town in West Germany in the mid 90's. As a girl I loved technology, played around with electronics and copied bad BASIC game code from books. I wanted to become an inventor and designer.
+
+Through my teenage years that changed. While I was still interested in technology, I got deeply into story writing, music and 3D modelling/ animation. All of that I wanted to one day put together and make games.
+
+In my early 20's I started studying engineering, then later computer science. Though interested in chip design, my passion for video games had made me attempt to create one; and become obsessed with programming. I learned to code in Java, later in python, Ruby, C. I fell in love with free software and linux. Since then, I've tried to expand my knowledge on all things technology, trying not to loose touch too much with my artistic side.
+
+I write too much C code, try to contribute to open source projects, try to make games. This blog is to be a journal of how projects are going, showcases of finished projects (yea right..."finished") and off-topic thoughts about whatever comes to mind.
+
+I hope that you find any of this stuff even remotely useful. If so, yay! If you want to get in touch with me, the easiest way is probably my [twitter](https://twitter.com/spacekookie) or e-mail me at [kookie@spacekookie.de](mailto:kookie@spacekookie.de). You can find my GnuPG public key [here](/kookie.txt).
+
+I also implement a 512mg Prime MTU according to the [RFC2549](https://tools.ietf.org/html/rfc2549). \ No newline at end of file
diff --git a/content/pages/home.md b/content/pages/home.md
new file mode 100755
index 0000000..7fbb47a
--- /dev/null
+++ b/content/pages/home.md
@@ -0,0 +1,9 @@
+Title: Fun memory violations
+Subtitle: NULL
+URL: /
+Save_As: index.html
+Template: home
+
+Hi! Welcome to my dusty internet hangout place.
+
+My name is <b>Katharina Fey</b> and I'm a software developer from Berlin. I like taking photos, writing stories and starting way too many personal projects. \ No newline at end of file
diff --git a/content/pages/showcase.md b/content/pages/showcase.md
new file mode 100644
index 0000000..5a371f7
--- /dev/null
+++ b/content/pages/showcase.md
@@ -0,0 +1,6 @@
+Title: Notable errors
+Slug: showcase
+
+My goal has always been to make things. Sometimes by myself, sometimes with others. I start many things that will never be done due to my own perfectionism. But some things might be worth highlighting. Things that could be useful to others. Or are still actively being developed for support. Or are just plain beautiful.
+
+**Consider this my extended CV...**
diff --git a/content/pages/teaching.md b/content/pages/teaching.md
new file mode 100755
index 0000000..8c424ee
--- /dev/null
+++ b/content/pages/teaching.md
@@ -0,0 +1,6 @@
+Title: Tutorials
+Slug: guides
+
+I started writing a few tutorials on my blog. But in order for you to find them easier I created this static page that will link you to the respective blog posts. Check out the dropdown menu above or icons below to view the available tutorials and courses.
+
+TODO: Add links to list pages here \ No newline at end of file
diff --git a/content/pgp/kookie.txt b/content/pgp/kookie.txt
new file mode 100644
index 0000000..0a38055
--- /dev/null
+++ b/content/pgp/kookie.txt
@@ -0,0 +1,114 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+ ❤ (idenna) ~/pgp> cat msg
+Following are my public gpg key as well as Threema Fingerprint and others.
+
+Threema
+=======
+ID: 77WYDHA2
+Fingerprint: AB2A 4F8A 8FF9 6335 75C2 4E0C 175B C0D6
+
+Public Key Cryptograpy (GnuPG)
+==============================
+
+Plain copy of my key can be found here
+https://spacekookie.de/pgp/6FE1BBF3.asc
+
+It is also available on the MIT keyserver.
+
+This document was last changed/ signed at around
+
+ ❤ (idenna) ~/pgp> date
+Thu 2 Feb 11:52:00 CET 2017
+
+ ❤ (idenna) ~/pgp> gpg2 --fingerprint 6FE1BBF3
+pub rsa4096 2017-02-02 [SC] [expires: 2019-02-02]
+ 9F18 A093 CF65 F938 E4C8 EFA4 29E0 5751 6FE1 BBF3
+uid [ultimate] spacekookie c-base <spacekookie@c-base.org>
+uid [ultimate] spacekookie (Using computers to create weird random patterns...) <kookie@spacekookie.de>
+sub rsa4096 2017-02-02 [E] [expires: 2019-02-02]
+
+ ❤ (idenna) ~/pgp> gpg2 --armor --export 6FE1BBF3
+- -----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=vSgE
+- -----END PGP PUBLIC KEY BLOCK-----
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBCAAdFiEEnxigk89l+TjkyO+kKeBXUW/hu/MFAliTEe0ACgkQKeBXUW/h
+u/Pb1w/+IYx8RUaxGQxq8jphBaCwAfUvOOl3DQwPLETsvz1UYQPcNTmXbKK8GziJ
+ki69eizxMcikVwTT0CinRX0NtE1qeGKmPiTT9Zxoi688QeXdDZDksOrLHGS+bqfV
+WxwQG2hGUjLUqCjKsBIz4OwiZ8xqff+Z3HqYhTc1GpdwbIXG43l+tLFkU5eTaERU
+u/uSPjnmbxrZRGLzv0fnrppEKXPTBmm8O3hIM9Cp+rZIQw9rbbkGSGeRXtSDDsC/
+6dkBKvM7YDqw/9/EnFbrw1vMBnVDdmMvMH/KQIxDuF+mEkq9eNOvR8QCJa8SDMOH
+Hdhi8sJqS7oX91kH0TU86Uym+/GKlUfq/VDZCGssOqPlFLc0ZOWKL1VoReVwb+34
+hkowMP5i4XieXuY4JtBTuDjvGbauZDorFqONosAzq67zf2FTY3JrGZay0Q+3/rs9
+q3FbU8esjM/q64XltuWmZfGnbRU3Xdfr+V/YCqLiUXfsLJ38WZBXruL31ar9CjcL
+PMN/YipyvSkSze8IBHBtyonDg5Zug7ntL6Ku58XitQBHRy8KDuJL74RiABmri2DM
+Tpo1kwGokd3Sj24VX4JEg/jAczC93x/F9B2BKCY1tvqSDCdavrToSbSOva7//9sC
+MV2oN8slEE5fPgxT9A8DTORImfstI9AnUBUn+julhMer3FSaNWk=
+=MXQM
+-----END PGP SIGNATURE-----
diff --git a/content/pgp/msg b/content/pgp/msg
new file mode 100755
index 0000000..cd4a21d
--- /dev/null
+++ b/content/pgp/msg
@@ -0,0 +1,16 @@
+Following are my public gpg key as well as Threema Fingerprint and others.
+
+Threema
+=======
+ID: 77WYDHA2
+Fingerprint: AB2A 4F8A 8FF9 6335 75C2 4E0C 175B C0D6
+
+Public Key Cryptograpy (GnuPG)
+==============================
+
+Plain copy of my key can be found here
+https://spacekookie.de/pgp/6FE1BBF3.asc
+
+It is also available on the MIT keyserver.
+
+This document was last changed/ signed at around
diff --git a/content/teaching/gameofcodes/01-goc-setup-basics.md b/content/teaching/gameofcodes/01-goc-setup-basics.md
new file mode 100755
index 0000000..d7c4fc7
--- /dev/null
+++ b/content/teaching/gameofcodes/01-goc-setup-basics.md
@@ -0,0 +1,296 @@
+Title: 01. (LibGDX) Game of Codes: The Setup & Basics
+Category: Game of Codes
+Tags: LibGDX, Tutorial, Game Dev
+Slug: 01-libgdx-game-of-codes-the-setup-basics
+Status: published
+
+**Hey everybody and welcome to a new/ old series on this blog about LibGDX.**
+
+LibGDX is a Java game development framework based on LWJGL and OpenGL which makes it relatively easy to make a game from scratch without requiring a big engine. It supports Desktop, Android, iOS and HTML as export targets which means that your game is automatically cross platform.
+
+Getting to know the framework can be challenging in the beginning, which is why I wanted to make a little series about it. Before I moved my blog to a static site generator I had a rather popular series about LibGDX called "Game of Codes". Unfortunately large parts of the guides are now outdated and no longer relevant. And the Wordpress export destroyed most of the formatting.
+
+Which is why I decided to rewrite them. Here it is: the Game of Codes! *plays theme song*
+
+NOTE: This tutorial requires a basic level of programming/ scripting skills. General Java knowledge is required or at the very least knowledge of how coding works. If you don't know that yet then I
+recommend [Bucky Roberts Java Programming series on Youtube](https://www.youtube.com/watch?v=Hl-zzrqQoSE&list=PLYJQBQw9Wdiid6eT1_DqBP3lnbJCzo3s8).
+It's very good!
+
+
+### Setting up LibGDX
+
+Now that we've got that out-of-the-way let's set up our workspace to make some neat games. I am writing and testing these tutorials on Linux. So if there are some platform specific issues you encounter, please give me feedback at [kookie@spacekookie.de](mailto:kookie@spacekookie.de).
+
+1. First of all you'll need to have Java and an IDE (Integrated Development Environment) installed on your computer. In this series I will be assuming that you're using **Eclipse**. For pointers on how to install that, please use Google!
+ - LibGDX uses Gradle as a build system. The latest version of eclipse has it integrated but older versions might require a plugin!
+3. Go to [libgdx.badlogicgames.com](http://libgdx.badlogicgames.com/) and download the libgdx setup app. It will help you configure your project with Gradle so you can either develop on it in a text editor of your choice or import it into an IDE.
+
+<img class="dual" src="/images/gameofcodes/series01/02_setup_ui.png" align="left">
+
+<img class="dual" src="/images/gameofcodes/series01/01_setup_ui.png" align="right">
+
+Let's step through the setup UI on your left real quick. We have some base settings. You can fill out the name of the game, the name of the main class as well as the package. If you're new to Java, the convention is that every application has a unique package root. And it's usually the reverse of a web-address. So for me it's `de.spacekookie` and then the project name. In homage to the original tutorial series I will call it `de.spacekookie.starchaser`.
+
+Also important to choose are the directory where to setup the project as well as your Android SDK location (if you want to build on Android). I will be ignoring Android for now and focus on the Desktop.
+
+<br/><br/><br/>
+
+<!-- Introduction to the module we need -->
+
+Make sure that you tick the following extentions (and extentions from the "third party" visible below the main window):
+
+ - Ashley (Entity management library)
+ - Box2D (2D physics)
+ - Box2DLights (2D realistic lighting)
+ - VisUI (Good looking skin for UI elements)
+
+Also make sure that if you want to use an IDE (such as Eclipse or IntelliJ) to select the project export from under "Advanced". When you're done with the configuration, hit that lovely "Generate" button and let's get going with development :)
+
+I will skip the importing step because that will be different for different IDE's. All I will say is that in Eclipse you should avoid putting your workspace *inside* your project directory as it will cause issues for you in the future (or during import).
+
+> **Tip**
+
+> While there are many ways to work on LibGDX, in this series I will assume that the project was added to Eclipse via Gradle while the building is done via a normal "Java Application" launch target in Eclipse. This is (in my opinion) the best of both worlds with a quick and easy build but the dependency management of Gradle built int the IDE.
+
+### Working with LibGDX
+
+So assuming that you were able to follow until here, you should now have a Java development IDE in front of you
+
+<!-- Add a picture of Eclipse here? -->
+
+> **Tip**
+
+> LibGDX is very closely entangled with Android. For example, if you create a project to have an Android target, all of the game assets will be stored in the "Android" subfolder because of who the system handles file imports. This means that the Desktop/ iOS and HTML versions only use symlinks to the Android assets directory.
+
+> If you don't have an Android project (only Desktop for example) assets are simply stored in your core project with all your game code!
+
+Now that everything is ready to go, let's investigate a little into what code was already generated for us and what we can do with it. Feel free to just hit that "build" button and get started but we're taking a more scientific approach :)
+
+<img class="dual" src="/images/gameofcodes/series01/04_eclipse.png" align="left">
+
+As you should already have noted there are several projects that were created for you. One project without a suffix and multiples with suffixes. The one project without a suffix is called the "meta" project (it contains relatively uninteresting things), while the other projects have to be divided into "core" and "targets". The idea is simple: you write all your logic, rendering and gameplay into the "core" while platform dependant code is used in the "targets". If this is complicated to understand, don't worry. It'll become clearer when using it.
+
+So as explained above, we will write most of our code in the highlighted "core" module. It is where you should in fact write all of your game code that isn't platform-specific to launch the game (for example getting the screen size or setting a custom icon).
+
+Please go ahead and open up the two files marked by arrows. They are the only code files that were generated for me. The lower one labelled `DesktopLauncher.java` contains the main function which will actually launch our game. The code should be very straight forward and we will look at the configuration settings later.
+
+<!-- Explain the basic structure of the project & function lifetimes -->
+
+The second file, labelled `StarChaser.java` in my case (and whatever you named your main class in the setup tool) contains much more interesting goodies: game code!
+
+Inspecting the code from the StarChaser class you can see a few functions in there that are responsible for describing the lifetime of our game object. These function are `create`, `render` and `dispose`. The create, play and, when we're done, destroy our game object. Everything else we do lives in between those functions.
+
+In fact, there are a few extra steps in between that are hidden from you by default. Check out the following list:
+
+```java
+
+/** Called when the game is created **/
+public void create();
+
+/** Called after create and every time the window is resized (if that is allowed) **/
+public void resize(int width, int heights);
+
+/** Starts calling after create() and resize() and will be
+ * recalled every frame. This is your game loop! **/
+public void render();
+
+/** Called when the game is closed on Android **/
+public void pause();
+
+/** Called when the game is re-opened on Android **/
+public void resume();
+
+/** Called when the game is closed. **/
+public void dispose();
+
+```
+
+This layout allows for very structured game code that walks through stages. You can of course allocate new objects in any of these functions to move functionality away from one class but in the end, you are always bound by the lifecycle of your game object. Note that all of these functions are provided by the `ApplicationAdapter` super-class that our main game class implements.
+
+> **Tip**
+
+> If you're ever curious about something you use/ extend/ implement works under the hood, don't be afraid to right-click on the part in question and click "Open Declaration" (when using Eclipse). This will open the source file for this module and you can see what is happening behind the scenes. In fact, I highly recommend being curious throughout this entire series.
+
+<!-- Explain the awefulness that is Eclipse run configurations -->
+
+If you haven't already launched the game to see what it does, I would recommend you do that now. Click the small black arrow next to the green "play" symbol in the top bar (or F5 in Eclipse), select "Launch Configurations" and create a new "Java Application" config. Check out the picture below for reference on how to fill it out. And if you have issues in this step, there are plenty of tutorials that go into depth online!
+
+![Eclipse Launch](/images/gameofcodes/series01/05_eclipse.png)
+
+
+<div class="alert alert-warning">
+<h1>Fixing an Eclipse error</h1>
+
+<br />
+
+<p>By default LibGDX uses Gradle. This means that paths are considered differently than when you're using Eclipse. For example, the above code will not by default work with Eclipse unless you tweak something. In fact, you might encounter an error like this:</p>
+
+<pre>
+Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: badlogic.jpg
+ at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:148)
+ at com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java:98)
+ at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
+ at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:92)
+ at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:88)
+ at de.spacekookie.starchaser.StarChaser.create(StarChaser.java:17)
+ at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:147)
+ at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124)
+Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: badlogic.jpg (Internal)
+ at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)
+ at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:222)
+ at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:145)
+ ... 7 more
+</pre>
+
+<p>While when you build your project with <code>gradle run</code> it will work. This is because Eclipse handles import scopes differently and we need to respect that. You now have two choices:</p>
+
+<ol>
+ <li>You hard-code import paths from the filesystem root (i.e. "/home/spacekookie/.../artpack1/uss_pixel.png"</li>
+ <li>You add your assets folder to the source path in Eclipse. <strong>This is what I will be doing in this series!</strong></li>
+</ol>
+
+<p>Right-click on your desktop project and navigate to "configure build path" as shown in the picture below.</p>
+
+<img src="/images/gameofcodes/series01/06_eclipse.png">
+
+<p>Select "Add Folder" in the window that should have opened and in that dialog select "assets". Close the dialog and try to run the game again. It should now work!</p>
+
+<p>If you're having issues with this step, feel free to e-mail me at <a href="mailto:kookie@spacekookie.de">kookie@spacekookie.de</a></p>
+</div>
+
+### Understanding the Code
+
+*waits for you to launch the game*
+
+Cute, eh? Not exactly a game but it's a start. The example demonstrates a few basic principles as well as *super* basic 2D rendering. However, before we go, throw it all away and implement our own cool stuff we should try to understand how the current code works.
+
+
+```java
+//...
+
+public class StarChaser extends ApplicationAdapter {
+ SpriteBatch batch;
+ Texture img;
+
+ @Override
+ public void create () {
+ batch = new SpriteBatch();
+ img = new Texture("badlogic.jpg");
+ }
+
+ @Override
+ public void render () {
+ Gdx.gl.glClearColor(1, 0, 0, 1);
+ Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+ batch.begin();
+ batch.draw(img, 0, 0);
+ batch.end();
+ }
+
+ @Override
+ public void dispose () {
+ batch.dispose();
+ img.dispose();
+ }
+}
+```
+
+Let's ignore the package definition and import statements and jump straight into the class declaration. We're creating a class, extending the `ApplicationAdapter` which is responsible for turning the class into an actual game object (as described above).
+
+The first function that would be invoked is the Constructor. Because there is none here, we will skip it. The next function being called is `create()`. It initialises a new SpriteBatch and afterwards a texture for "badlogic.jpg".
+
+You will be able to find the texture in the assets folder. And, if you change it, you will notice the changes in game as well. So far so good. What the hell is a SpriteBatch?
+
+A `SpriteBatch` is an object which is used to keep context during 2D render calls. Basically, you give it a positional and transformational reference frame (in our case DEFAULT) and then tell it to draw 2D images. But I'm getting ahead of myself. Because in this function we only create a new SpriteBatch. So all is good.
+
+Moving swiftly on to the `render()` function. This one is more interesting. The first two lines are two OpenGL calls which prepare a frame to be drawn. The first line sets up a colour while the second line tells the graphics processor to take the prepared colour and paint the entire frame with it. The colour representation is in RGBA (Red, Green, Blue, Alpha) with floating numbers between 0 and 1. So (1, 0, 0, 1) is red. *Try to change the colour and see the result!*
+
+The last three lines in the `render` function tell the SpriteBatch we created early to start, draw our texture and afterwards stop again. This marks the end of the frame at which point the next one will begin shortly.
+
+> **Tip**
+
+> Try to copy the `batch.draw(...)` command and change the coordinates from (0,0) to (200, 0). You will notice how a second instance of our texture is drawn at a different location. Cool, eh?
+
+The last function in the file is `dispose()`. It is only called when we close the game and usually only has other dispose calls in it. In our case, we make sure to properly dispose of the SpriteBatch and the Texture as both of them allocate memory on the graphics processor and we don't want to leak memory!
+
+
+### Adding to the game
+
+Phew! That was quite a lot to take in, I'm sure. And don't worry if you're a bit fuzzy on some of the details. We will go over some of these things again when we use it. Additionally there are a lot of great resources out on the internet for you to help you out.
+
+But before we wrap up this (way too long) article, I want to do something to make the game feel more like...well, a game. So go ahead and open the image processor of your choice (I will be using GIMP) and create a 128x128 pixel texture that one might consider a spaceship.
+
+<!-- ADD PICTURE OF USS PIXEL HERE -->
+
+You don't have to neccessarily make it 128x128 (I will) but the dimentions of the picture need to be a power of two (so 2, 4, 8,
+16, 32, 64, 128, 256, 512, 1024, 2048, 4096, ...). This has to do with how computers load textures (details later).
+
+What is that you say? You're too lazy? You don't have an image processing application? You managed to delete Paint from your computer? Kudos. Fine, you can use my graphics (contains the USS Pixel, a laser burst and a background image from the web).
+
+**Download [my artpack here](/downloads/gameofcodes/artpack1.zip).**
+
+I would suggest you create a new directory inside your games "assets" folder so that we don't get confused about what's what. So this is how your core/assets/ folder should look like now:
+
+<pre>
+❤ (idenna) ~/P/p/c/starchaser/core> tree assets/
+assets/
+├── artpack1
+│   ├── background.png
+│   ├── pixel_blast.png
+│   └── uss_pixel.png
+└── badlogic.jpg
+
+1 directory, 4 files
+</pre>
+
+First, why don't you go and change the line
+
+```java
+ img = new Texture("badlogic.jpg");9
+```
+
+to
+
+```java
+img = new Texture("artpack1/uss_pixel.png");
+```
+
+and marvel at the amazingness that is my art skills :)
+
+When launching the game now you will notice that the face texture has been replaced with a spaceship. However, this doesn't feel very space-y or even game-y yet. So let's not stop here! Reserve a new texture variable in your class and create it with a different resource file during the create function. Your source code should resemble something like the following
+
+```java
+Texture img, background;
+
+@Override
+public void create() {
+ batch = new SpriteBatch();
+ img = new Texture("artpack1/uss_pixel.png");
+ background = new Texture("artpack1/background.png");
+}
+```
+
+Then in the render function, before drawing the ship, draw the background texture first! This will make sure that the background is always behind the ship and not vice versa.
+
+```java
+ batch.begin();
+ batch.draw(background, 0, 0);
+ batch.draw(img, 0, 0);
+ batch.end();
+```
+
+Run the game and feel your jaw drop. It should look a lot nicer now. There is still no game logic or advanced rendering but we're getting there. Try to flip the draw calls around and see what happens to the ship.
+
+Also, you might have played around with the draw calls earlier and realised that `batch.draw(...)` in it's simplest form takes a texture and a coordinate. We will use more advanced draw calls later as this (for example) can't consider rotation.
+
+![StarChaser Mk1](/images/gameofcodes/series01/07_gamechange.png)
+
+<hr/>
+
+Wow! That ended up being longer than I expected :)
+
+In the next tutorial we will look at how to bring movement into the game. This consists of actually updating certain parts of the game as well as handling user input. See you then!
+
+Kate
+
+[[Next post about Input & Movement](/game-of-codes/02-input-and-movement/)] \ No newline at end of file
diff --git a/content/teaching/gameofcodes/02-goc-input-movement.md b/content/teaching/gameofcodes/02-goc-input-movement.md
new file mode 100644
index 0000000..58aaa2c
--- /dev/null
+++ b/content/teaching/gameofcodes/02-goc-input-movement.md
@@ -0,0 +1,270 @@
+Title: 02. (LibGDX) Game of Codes: Input & Movement
+Category: Game of Codes
+Tags: LibGDX, Tutorial, Game Dev
+Slug: 02-input-and-movement
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX framework. In the last edition we learned how to set up LibGDX with a new Java project and draw simple pictures onto the screen. We used textures to import that image and then drew it via a SpriteBatch.
+
+Today we will look at basic input handling and how to make things move on screen. And though we won't be able to cover everything in this article we will explore the basic input stack that LibGDX has to offer and how to make things in your game move.
+
+Exciting! :)
+
+A little note: all the code that gets shown off here is available in a [Github repository](https://github.com/spacekookie/starchaser) for you to tinker with. After each tutorial I tag the commit so that it's obvious what got changed when!
+
+You can also use that repository to report issues or give feedback if you'd like. Otherwise, my email is always available!
+
+### Registering input
+
+Before we talk about inputs, we need to think about what it even means to register an input. When the user presses a button in our game, we want that button press to notify us so we can affect some behaviour. To understand what is going on here, we should consult the following graphic.
+
+![Life of a Frame](/images/gameofcodes/series02/01_framelife.png)
+
+You can see that LibGDX (obviously) considers the main run loop of our game...a loop :) In this series we only really care about the purple boxes. And in this article in particular, we are only considering the first purple box: "Input". What LibGDX does during this step is poll all input hardware for activity. It then writes this activity into a buffer and signals all registered input adapters to handle their input.
+
+So with that in mind, there are two ways of checking for input. The first is essentially polling the hardware again yourself during the "Render" step, while the other hooks into the "Input" step and is called asynchronously.
+
+Both ways of handling input are slightly unique. And we will start with the polling aproach first to demonstrate some basic functions.
+
+First, go into the main game class and add a position variable into the class body:
+
+```java
+
+import com.badlogic.gdx.math.Vector2;
+
+public class StarChaser extends ApplicationAdapter {
+ //...
+
+ Vector2 position;
+
+ // ...
+}
+```
+
+Furthermore, in the `create` block of the game, initialise the position to some value that is greater than `(0,0)` and not too big to be off window :)
+
+```java
+ position = new Vector2(250, 150);
+```
+
+If you're not too familar with Java, what this means is that we declare `position` to be a object variable which means that every function in an instance of this class can access it (Object-Oriented Programming). In the `create` function we then initialise it to have a value other than `null`.
+
+What that means now is that we can use the position variable (which has an `x` and a `y` component) in our draw calls to tell the picture where to go. The main advantage of this is that when we change the position variable (say...via a button press), the picture gets an updated position!
+
+```java
+ public void render() {
+ Gdx.gl.glClearColor(1, 0, 0, 1);
+ Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
+
+ updateInputs();
+
+ batch.begin();
+ batch.draw(background, 0, 0);
+ batch.draw(img, position.x, position.y);
+ batch.end();
+ }
+```
+
+So far so good...wait. Do you see that `updateInputs()` function call there? That wasn't there last time. In fact, it doesn't yet exist. But it should soon. Why don't you go and create a new function in the class somewhere with the signature `void updateInputs() { ... }`. We will fill it's body with some stuff soon.
+
+So fundamentally, we want to poll inputs and then when we have determined that an input is pressed we want to enact some functionality. The simplest form of polling buttons is with the `Gdx.input.isKeyPressed(key)` function where `key` is an integer variable that corresponds to a key-code. Don't worry, there are bindings that make it easier and you don't have to manually check for numbers ;)
+
+> **Tip**
+
+> Other input polling functions include `isButtonPressed(button)` for mouse buttons as well as `getX()`, `getY()` which give you the cursor position in your game window!
+
+
+So why don't you add the following lines of code to your `updateInputs` function and see where it gets us.
+
+```java
+ if (Gdx.input.isKeyPressed(Keys.W)) {
+ position.y++;
+ } else if (Gdx.input.isKeyPressed(Keys.S)) {
+ position.y--;
+ } else if (Gdx.input.isKeyPressed(Keys.A)) {
+ position.x--;
+ } else if (Gdx.input.isKeyPressed(Keys.D)) {
+ position.x++;
+ }
+```
+
+You can run this now and see what happens. When we press the keys in question the image on screen will move all over the place. Cool! But...it's not particularly pretty, is it?
+
+For one, we can only move in one direction simultaniously. But even if we split the X-Y axis into two different if-blocks, there is still the problem that `W` will always have precedence over `S` and `A` will have precedence over `D`. Which means that if we press all keys, we will *always* move top-left. And that's not particularly great :(
+
+> **Tip**
+
+> Also consider the following: when you move in one direction you apply 1 to the axis you're moving along. But if you move in two directions, you apply 1 in both x and y direction. Which means that (via trigonometry) you actually move **~1.41** in total. This means your game isn't consistent about rules.
+
+> It's clear that more logic is required to move!
+
+So how do we fix this? We can of course add more logic to our `updateInputs()` function but it will result in a lot of dirty hacks. And while game development is often about making dirty hacks that work, starting a project off some will quickly make your code-base unmaintainable.
+
+
+### Using Input Adapters
+
+The second method of getting input from the user I mentioned earlier is via an input adapter. It can be considered faster because we only do input polling once and it allows us to use input signals between different game components (gameplay, game HUD, etc.)
+
+So how do we use this awesome functionality? Well, it's simple. We need an InputAdapter. So first, create a new class via Eclipse. If you don't know how, consult the *suuuuper* helpful screenshot below :')
+
+![Life of a Frame](/images/gameofcodes/series02/02_createclass.png)
+
+Give it a useful name like `InputHandle` or `ShipInputHandle` or something. You can be quite specific in the naming because you very often have multiple input adapters for different aspects and parts of your game. So being specific in the naming just helps you out in the long run.
+
+Once you've done that you should be greeted with a very boring and empty class in your editor. So we need to add some basic code to get going. I took the liberty of doing that and will now show off what I did (and you'll finally get to see what name I chose...).
+
+```java
+
+import com.badlogic.gdx.InputAdapter;
+import com.badlogic.gdx.math.Vector2;
+
+public class ShipInputHandle extends InputAdapter {
+ Vector2 shipPosition;
+
+ public ShipInputHandle(Vector2 shipPosition) {
+ this.shipPosition = shipPosition;
+ }
+}
+
+```
+
+So, as you can see we have a class that extends `InputAdapter` as a subclass. With that comes free functionality we don't have to implement ourselves. Additionally I create a constructor that takes a vector and stores it as an instance variable (like before in the game class). Note that we're not copying the value here but rather storing a reference to the "original" variable in the game.
+
+> **Tip**
+
+> If you're coming from a language like C or C++ this can be quite confusing. What is a copy, what is a reference? In general: java always passes by reference (pointer) unless it is a primitive value. What is a primitive value? `int`, `float`, `double`, `boolean`, `byte`, `long` and all other lower-case types that become purple in the IDE (keywords).
+
+Next up, let's handle some inputs! The principle is similar to the polling: we check what input we are handling (because we only have generic functions - this will become obvious in a second), then invoke some behaviour. But as we have already seen before, we need to store some state. And that's why this is perfect: we have a new class where we can store the input state to check against. But at the same time, it's contained and doesn't clutter our main game class.
+
+Now...to solve the problem of moving in multiple directions at the same time, without letting one direction take precidence over another we can use a tri-state variable. In Java this can easily be done with an enum. Create a enum titled `TS` (or TriState if you feel verbose) in our `ShipInputHandle` class and create two values `x` and `y` that use it. The initial value should be `NEUTRAL`
+
+```java
+ enum TS { POS, NEG, NEUT };
+
+ TS x = TS.NEUT, y = TS.NEUT;
+```
+
+In the `keyDown(int keycode)` and `keyUp(int keycode)` functions we can then use a switch statement to flick the `x` and `y` variables in their favour. We *can* also perform a simple check if the `x`, `y` variables are already set to avoid another direction overwriting our current movement. But then again, maybe you consider this preferred behaviour. I chose to perform the check in the following code!
+
+```java
+public boolean keyDown(int keycode) {
+
+ switch (keycode) {
+ case Keys.W:
+ if (y == TS.NEUT)
+ y = TS.POS;
+ break;
+ case Keys.S:
+ if (y == TS.NEUT)
+ y = TS.NEG;
+ break;
+ case Keys.A:
+ if (x == TS.NEUT)
+ x = TS.NEG;
+ break;
+ case Keys.D:
+ if (x == TS.NEUT)
+ x = TS.POS;
+ break;
+ }
+
+ return true;
+}
+```
+
+Notice that `return true` at the end of that function? That's what you could call "Input Cascade". It is a concept that we will use extensively in later articles of this series. In short, it is the concept of letting an input signal cascade through different input adapters until it is ended. Returning true in this function signals the core input controller that we are ending the signal: it will not cascade to lower ranking controllers. This means that if you replace it with a `return false`, controllers down the stack will be able to pick up on the signal and use it.
+
+But again, this will become important in later tutorials. For now, let's just end the signal and get it over with. Next up, we can implement the `keyUp` function very simply by checking what axis our key-presses affect and then resetting that direction back to `NEUT` if it is applicable. Not a perfect solution but something that will definately work is implemented below.
+
+```java
+public boolean keyUp(int keycode) {
+ switch (keycode) {
+ case Keys.W:
+ if (y == TS.POS)
+ y = TS.NEUT;
+ break;
+
+ case Keys.S:
+ if (y == TS.NEG)
+ y = TS.NEUT;
+ break;
+
+ case Keys.A:
+ if (x == TS.NEG)
+ x = TS.NEUT;
+ break;
+
+ case Keys.D:
+ if (x == TS.POS)
+ x = TS.NEUT;
+ break;
+ }
+
+ return true;
+}
+```
+
+Now we're almost done. One thing is missing however! We keep a state depending on the inputs of our user. But we don't apply anything to the vector we stored based on that state. This is where we will need to build something slightly custom because the InputAdapter doesn't force you into any workflow.
+
+I recommend you create a new function `void update() { ... }` in the input class and make it public. We consider this function to be called every frame and apply values to the x and y components of the position vector, depending on the state of our inputs.
+
+The following code very quickly checks if we need to apply movement at all (is not NEUT) and then does a conditional application of 1 or -1 to each component.
+
+```java
+public void update() {
+ if(x != TS.NEUT) shipPosition.x += (x == TS.POS) ? 1 : -1;
+ if(y != TS.NEUT) shipPosition.y += (y == TS.POS) ? 1 : -1;
+}
+```
+
+Now we're done modifying the ShipInputHandle...for now :) Go back to the main game class. There are two more things to do before we can enjoy our new input handles. First, remove the old `handleInputs()` function. We don't need or want it anymore. Also make sure to remove it's function call from the `render()` function.
+
+Secondly, create a ShipInputHandle object and initialise it with our vector. Take the following code segment as reference.
+
+The last line in the `create()` function is key and not to be forgotten! It registers our custom input handler with the LibGDX input system and makes sure that our functions are *actually* being called :)
+
+```java
+
+public class StarChaser extends ApplicationAdapter {
+
+ // ...
+
+ ShipInputHandle input;
+
+ @Override
+ public void create() {
+ // ...
+
+ position = new Vector2(250, 150);
+ input = new ShipInputHandle(position);
+
+ Gdx.input.setInputProcessor(input);
+ }
+
+ @Override
+ public void render() {
+
+ // ...
+
+ input.update();
+
+ // ...
+ }
+
+ // ...
+}
+```
+
+And that's it! Run that code and you'll be able to move the image around in a much nicer fashion! Again, this is far from perfect. And you will notice that switching quickly from going-left to going-right can make the whole thing just stop on "Neutral". You can remove the additional check which I added. Realistically, you need a lot more state to mirror what the user is putting into your system if you want real-feedback and logical behaviour from your units. But this will do for now!
+
+And more importantly...it should have given you a glimpse at how to use the InputAdapters.
+
+<hr />
+
+And that's it for this article! Originally I wanted to talk a little bit about rotation. But I realised that I would have had to make a lot of assumptions about systems and not be able to go into too much depth without making the article *waaaayy* too long.
+
+So that'll be handled in the [next issue](https://media.giphy.com/media/z85AlA6CBKxEI/giphy.gif).
+
+Have a good day/ night,
+
+Kate
diff --git a/content/teaching/gameofcodes/03-goc-input-rotation.md b/content/teaching/gameofcodes/03-goc-input-rotation.md
new file mode 100644
index 0000000..fb93d33
--- /dev/null
+++ b/content/teaching/gameofcodes/03-goc-input-rotation.md
@@ -0,0 +1,159 @@
+Title: 03. (LibGDX) Game of Codes: Rotation & Advanced Movement
+Category: Game of Codes
+Tags: LibGDX, Tutorial, Game Dev
+Slug: 03-rotation-and-advmovements
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX framework. In the öast edition we learned how to listen for user input, keep it's state for consistency and apply it to the world we are building. We did this by simply using a vector as a position for an image to align to.
+
+Today we will have a look at some more input but more importantly: rotation! And with that, also look at some more advanced movement concepts like momentum and some advice how to implement certain movement patterns.
+
+A little note: all the code that gets shown off here is available in a [Github repository](https://github.com/spacekookie/starchaser) for you to tinker with. After each tutorial I tag the commit so that it's obvious what got changed when!
+
+You can also use that repository to report issues or give feedback if you'd like. Otherwise, my email is always available!
+
+
+### Naïve approach
+
+So let's just take a naïve approach here. We have a vector that is essentially the position of our "ship". And it can have a rotation. So what we do is listen for two new key presses (in my case for `Q` and `E` - left and right rotation) and then create another tri-state variable `rotation` that we can use to determine whether we should rotate left or right.
+
+```java
+ switch (keycode) {
+ case Keys.W:
+ // ...
+
+ /** Handling rotation */
+ case Keys.Q:
+ rotation = TS.NEG;
+ break;
+ case Keys.E:
+ rotation = TS.POS;
+ break;
+ }
+```
+
+The inverse applies for the `keyUp(...)` function.
+
+```java
+ switch (keycode) {
+ // ...
+
+ case Keys.Q:
+ if (rotation == TS.NEG)
+ rotation = TS.NEUT;
+ break;
+
+ case Keys.E:
+ if (rotation == TS.POS)
+ rotation = TS.NEUT;
+ break;
+ }
+```
+
+Our update code needs to be appended slightly. This isn't the most pretty way to do this but for now it'll be alright.
+
+```java
+public void update() {
+ // ...
+
+ if (rotation == TS.POS)
+ shipPosition.rotate(1);
+ else if (rotation == TS.NEG)
+ shipPosition.rotate(-1);
+}
+```
+
+Now. What does this actually mean. We rotate the *positional* vector for the ship. You might have an inkling of what is about to happen but if you don't start the game and look at it. Not quite what we had in mind, is it?
+
+![Bad rotation GIF](/images/gameofcodes/series03/01_badrotation.gif)
+
+So what's happening here? Well, our positional vector points to where the ship is. From the origin. Which is in the bottom left of the screen. At coordinates `(0, 0)`... So when we rotate the positional vector, we rotate the ship around the origin. Furthermore, we never told the `SpriteBatch` to rotate the image we're drawing. That's why the ship orientation stays exactly the same: pointed upwards.
+
+
+### Using TextureRegions
+
+So let's fix this one problem at a time. Let's actually make the ship texture rotate depending on some value (in our case, the phony vector angle). For this we need to look at how we draw things. Right now, that's a texture.
+
+A texture is essentially a raw memory map of an image, loaded onto the GPU. That's why the texture needs to be a power of two because that's how GPU's handle textures in their memory. But what this also means is that if we have multiple textures this will cause a lot of overhead because loading textures in and out of memory from the GPU is expensive.
+
+Also, all transformations to the texture we need to apply manually. Transformations include scaling, moving and rotation. And especially the last one can be challenging.
+
+**Enter: TextureRegion!**
+
+Now, a `TextureRegion` is a collection of textures, essentially a large texture with bits cut out of it. This way we can bundle all our textures together into one large one (or several large ones) while marking different parts of the texture as regions so that we can handle them in the future.
+
+What this also means is that simple transformations can be done on the CPU which is slower but much easier than performing them on the GPU. This means the textures are still stored on the GPU but we get more control over how to transform them. Let's use this in our game!
+
+```java
+
+public class StarChaser extends ApplicationAdapter {
+
+ // ...
+
+ TextureRegion img;
+
+ // ...
+
+ @Override
+ public void create() {
+ batch = new SpriteBatch();
+ img = new TextureRegion(new Texture("artpack1/uss_pixel.png"));
+
+ // ...
+ }
+```
+
+The code above creates a TextureRegion instead of a Texture. In this case, we aren't using any of the memory saving benefits of using TextureRegions but that doesn't matter. We can still take advantage of it.
+
+Specifically, we will change the `batch.draw(...)` function to take more parameters. But first, create a second vector, call it "direction" and initialise it with `(0, 1)`.
+
+```java
+
+final float sizeX = img.getRegionWidth();
+final float sizeY = img.getRegionHeight();
+
+batch.draw(img, // The TextureRegion we draw
+ position.x, // Root X position
+ position.y, // Root Y position
+ sizeX / 2, // Rotation origin X (center point)
+ sizeY / 2, // Rotation origin X (center point)
+ sizeX, // Draw width
+ sizeY, // Draw height
+ 1, 1, // Scaling factor (1 is fine)
+ direction.angle()); // Region angle (around origin)
+
+```
+
+Additionally, we need to adjust our ShipInputHandle class because we need to make it use our direction vector. The code snippet below will outline what you need to change. Essentially: we rotate our direction vector and noramlise it after every step because rotating vectors actually changes their length.
+
+```java
+public class ShipInputHandle extends InputAdapter {
+ Vector2 pos, dir;
+
+ // ...
+
+ public ShipInputHandle(Vector2 shipPosition, Vector2 direction) {
+ this.pos = shipPosition;
+ this.dir = direction;
+ }
+
+ // ...
+
+ public void update() {
+ if (rotation == TS.POS)
+ dir.rotate(1);
+ else if (rotation == TS.NEG)
+ dir.rotate(-1);
+
+ dir.nor();
+
+ // ...
+ }
+}
+```
+
+If you launch this configuration you will notice that the ship rotates around it's centre point correctly! YAY! You will notice that you can still move your ship independant of it's rotation. You might consider this a feature because it allows you to fly one way and shoot backwards (think Battlestar Galactica Vipers!). But in our case, we want the ship to always fly in the direction that it's pointing towards.
+
+![Proper rotation](/images/gameofcodes/series03/02_rotating.gif)
+
+This is relatively simple. We only need to change the position update code to make this happen. In fact, we only need to consider the direction vector when applying a new position. \ No newline at end of file
diff --git a/content/teaching/jni/01-jni-intro.md b/content/teaching/jni/01-jni-intro.md
new file mode 100644
index 0000000..59b752d
--- /dev/null
+++ b/content/teaching/jni/01-jni-intro.md
@@ -0,0 +1,110 @@
+Title: 01. (Java Native Access) The basics
+Category: JNI
+Tags: Java, Tutorial, Programming
+Slug: 01-jni-the-idea-foreign-function-interfaces
+Status: draft
+
+Regular readers of my blog (or listeners of my afk ramblings) will know that I like Java. I'm sometimes not quite sure why but there it goes, let's just assume that as an axiome for a second.
+
+Java is pretty damn good at a lot of stuff. It compiles to a high performant byte-code and it's JIT compiler is smart, fault-tolerant and self optimising. It has a plethora of libraries and toolkits to choose from and making nearly anything is pretty damn if you don't mind writing a verbose language or [cheating](https://projectlombok.org/) a bit.
+
+Then so far so good. What is this about then? Well...many things that Java doesn't do in it's standard lib you can still do. And it's something too many people to know about. For good reasons. Fault tolerance and optimisation on the side of the JIT compiler goes out the window and existing documentation is lackluster at best, in most cases outdated by decades at this point. Java is (among other things) an enterprise language and the tech hipsters have *looong* moved on from it. And so have people writing guides about it.
+
+That is about to change (to some small extent)
+
+
+### What is JNI?
+
+The **J**ava **N**ative **I**nterface is a foreign-function-interface to the JVM, the virtual machine and JIT compiler environment that all Java code runs in. It allows you to write C/C++ code that is called by your existing Java project and even make calls *back* into your java code for callbacks (for example for logging).
+
+It features a very low overhead, practically non-existant safety checking and allows for pretty performant Java-native interop. In fact, switching from the Java context to a native function context only takes [a few nanoseconds](http://stackoverflow.com/a/13977914/2443595). After that you get the raw performance of native code and all the beautiful header bindings that come with that.
+
+Unfortunately setting this up isn't trivial and outdated documentation/ tutorials, that ignore modern build systems, don't make it easier. And while I will get into the nitty-gritty of what you should do/ avoid in the next article (or two), first I want to outline how java-native interop generally works.
+
+
+### Writing a "native" class
+
+Everything in Java is a class and this is no exception. Thus we first need to provide one that has a few `native` functions that we can then later implement. Other than native functions this class can contain normal java code although I would recommend you don't do that for the sake of readability.
+
+```java
+
+class JniSomething {
+
+ static {
+ // TODO: Load library
+ }
+
+ private long something;
+
+ public native void initSomething(String name, int count);
+
+ public native void doSomething();
+
+ public static native void status(int mode);
+}
+
+```
+
+Two things that you should notice
+
+1. We have a static initialiser block which we will later use to load a native library
+2. We have a `long` type field in our class which will become important later. For now it shows that "native" classes can have fields just like any other class.
+
+You can also see that we can have static and non-static native functions. Parameters can be primitives and classes although I only demonstrated `String` as a class here (which is a bit of a special case in JNI land)
+
+### Native code generation
+
+We are about a third of the way there. Unfortunately this is where it becomes a little less clean and easy to manage. From our class definition that includes native functions we will now generate a header that we can build native function implementations for.
+
+The tool we will use is called `javah` so make sure it's included in what your operating system packages as java. On most Linux distributions it should come installed with the JDK, on Windows and Mac...I have no idea. Figure it out and e-mail me so I can add it to the article.
+
+Assuming that your "project" structure looks something like this and your current directory is `src`
+
+```
+ 🚀 (normandy) ~> tree project/
+project/
+└── src
+ └── de
+ └── spacekookie
+ └── JniSomething.java
+```
+
+then you can generate the jni header file in the project root directory as follows
+
+```console
+javah -verbose -jni -o ../JniSomething.h de.spacekookie.JniSomething
+```
+
+So far so good. You can look at the file now if you want. It's actually pretty ugly code. The function names are designed to *never* clash with anything else because of how Java and C++ have *very* different approaches when it comes to scoping things. The last part of this intro will be writing code that uses these headers to do something in native code.
+
+
+### Writing & linking native functions
+
+Aaaaand this is where things get really complicated real fast. There are a few things we need to do at this point and none of them are trivial
+
+1. We need to setup our build environment so that we can find the `<jni.h>` utility header
+ - Platform specific problems I might add
+ - Also very dependant on the build system we might be using later
+2. Write and compile the native code that does *something* and make a library (for us that is an `.so` because Linux)
+3. Load the library correctly as to not crash the JVM
+
+Easy as pie :)
+
+First things first, we need to find the Java home directory. Again, I can only speak from a Linux perspective. But the `$JAVA_HOME` environment variable was depreciated years ago by most distributions. This might not be the best way to find out but it works.
+
+```bash
+# Bash
+echo $(dirname $(readlink -f $(which javac)))
+```
+```fish
+# fish
+echo (dirname (dirname (readlink -f (which javac))))
+```
+
+From the directory we get with these queuries we need to go up one directory and then into a other directory. In the end the path we want to build should look something like this. The second one will obviously be different depending on your platform.
+
+```
+/usr/lib/jvm/java-8-openjdk-amd64/bin/../include
+/usr/lib/jvm/java-8-openjdk-amd64/bin/../include/linux
+```
+
diff --git a/develop_server.sh b/develop_server.sh
new file mode 100755
index 0000000..ae8f29e
--- /dev/null
+++ b/develop_server.sh
@@ -0,0 +1,103 @@
+#!/usr/bin/env bash
+##
+# This section should match your Makefile
+##
+PY=${PY:-python3}
+PELICAN=${PELICAN:-pelican}
+PELICANOPTS=
+
+BASEDIR=$(pwd)
+INPUTDIR=$BASEDIR/content
+OUTPUTDIR=$BASEDIR/output
+CONFFILE=$BASEDIR/pelicanconf.py
+
+###
+# Don't change stuff below here unless you are sure
+###
+
+SRV_PID=$BASEDIR/srv.pid
+PELICAN_PID=$BASEDIR/pelican.pid
+
+function usage(){
+ echo "usage: $0 (stop) (start) (restart) [port]"
+ echo "This starts Pelican in debug and reload mode and then launches"
+ echo "an HTTP server to help site development. It doesn't read"
+ echo "your Pelican settings, so if you edit any paths in your Makefile"
+ echo "you will need to edit your settings as well."
+ exit 3
+}
+
+function alive() {
+ kill -0 $1 >/dev/null 2>&1
+}
+
+function shut_down(){
+ PID=$(cat $SRV_PID)
+ if [[ $? -eq 0 ]]; then
+ if alive $PID; then
+ echo "Stopping HTTP server"
+ kill $PID
+ else
+ echo "Stale PID, deleting"
+ fi
+ rm $SRV_PID
+ else
+ echo "HTTP server PIDFile not found"
+ fi
+
+ PID=$(cat $PELICAN_PID)
+ if [[ $? -eq 0 ]]; then
+ if alive $PID; then
+ echo "Killing Pelican"
+ kill $PID
+ else
+ echo "Stale PID, deleting"
+ fi
+ rm $PELICAN_PID
+ else
+ echo "Pelican PIDFile not found"
+ fi
+}
+
+function start_up(){
+ local port=$1
+ echo "Starting up Pelican and HTTP server"
+ shift
+ $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
+ pelican_pid=$!
+ echo $pelican_pid > $PELICAN_PID
+ cd $OUTPUTDIR
+ $PY -m pelican.server $port &
+ srv_pid=$!
+ echo $srv_pid > $SRV_PID
+ cd $BASEDIR
+ sleep 1
+ if ! alive $pelican_pid ; then
+ echo "Pelican didn't start. Is the Pelican package installed?"
+ return 1
+ elif ! alive $srv_pid ; then
+ echo "The HTTP server didn't start. Is there another service using port" $port "?"
+ return 1
+ fi
+ echo 'Pelican and HTTP server processes now running in background.'
+}
+
+###
+# MAIN
+###
+[[ ($# -eq 0) || ($# -gt 2) ]] && usage
+port=''
+[[ $# -eq 2 ]] && port=$2
+
+if [[ $1 == "stop" ]]; then
+ shut_down
+elif [[ $1 == "restart" ]]; then
+ shut_down
+ start_up $port
+elif [[ $1 == "start" ]]; then
+ if ! start_up $port; then
+ shut_down
+ fi
+else
+ usage
+fi
diff --git a/fabfile.py b/fabfile.py
new file mode 100755
index 0000000..d46a16e
--- /dev/null
+++ b/fabfile.py
@@ -0,0 +1,94 @@
+from fabric.api import *
+import fabric.contrib.project as project
+import os
+import shutil
+import sys
+import SocketServer
+
+from pelican.server import ComplexHTTPRequestHandler
+
+# Local path configuration (can be absolute or relative to fabfile)
+env.deploy_path = 'output'
+DEPLOY_PATH = env.deploy_path
+
+# Remote server configuration
+production = 'spacekookie@lonelyrobot.io:22'
+dest_path = '/var/www'
+
+# Rackspace Cloud Files configuration settings
+env.cloudfiles_username = 'my_rackspace_username'
+env.cloudfiles_api_key = 'my_rackspace_api_key'
+env.cloudfiles_container = 'my_cloudfiles_container'
+
+# Github Pages configuration
+env.github_pages_branch = "gh-pages"
+
+# Port for `serve`
+PORT = 4000
+
+def clean():
+ """Remove generated files"""
+ if os.path.isdir(DEPLOY_PATH):
+ shutil.rmtree(DEPLOY_PATH)
+ os.makedirs(DEPLOY_PATH)
+
+def build():
+ """Build local version of site"""
+ local('pelican -s pelicanconf.py')
+
+def rebuild():
+ """`clean` then `build`"""
+ clean()
+ build()
+
+def regenerate():
+ """Automatically regenerate site upon file modification"""
+ local('pelican -r -s pelicanconf.py')
+
+def serve():
+ """Serve site at http://localhost:4000/"""
+ os.chdir(env.deploy_path)
+
+ class AddressReuseTCPServer(SocketServer.TCPServer):
+ allow_reuse_address = True
+
+ server = AddressReuseTCPServer(('', PORT), ComplexHTTPRequestHandler)
+
+ sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
+ server.serve_forever()
+
+def reserve():
+ """`build`, then `serve`"""
+ build()
+ serve()
+
+def preview():
+ """Build production version of site"""
+ local('pelican -s publishconf.py')
+
+def cf_upload():
+ """Publish to Rackspace Cloud Files"""
+ rebuild()
+ with lcd(DEPLOY_PATH):
+ local('swift -v -A https://auth.api.rackspacecloud.com/v1.0 '
+ '-U {cloudfiles_username} '
+ '-K {cloudfiles_api_key} '
+ 'upload -c {cloudfiles_container} .'.format(**env))
+
+@hosts(production)
+def publish():
+ """Publish to production via rsync"""
+ local('pelican -s publishconf.py')
+ project.rsync_project(
+ remote_dir=dest_path,
+ exclude=".DS_Store",
+ local_dir=DEPLOY_PATH.rstrip('/') + '/',
+ delete=True,
+ extra_opts='-c',
+ )
+
+def gh_pages():
+ """Publish to GitHub Pages"""
+ rebuild()
+ local("ghp-import -b {github_pages_branch} {deploy_path}".format(**env))
+ local("git push origin {github_pages_branch}".format(**env))
diff --git a/pelicanconf.py b/pelicanconf.py
new file mode 100755
index 0000000..54c96e2
--- /dev/null
+++ b/pelicanconf.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+from __future__ import unicode_literals
+
+AUTHOR = 'Kate'
+SITENAME = 'Fun Memory Violations'
+SITEURL = ''
+# DISQUS_SITENAME = 'katesnullpointers'
+
+THEME = 'nest'
+# NEST_HEADER_IMAGES = 'banner_bg2x.png'
+
+EXTRA_PATH_METADATA = {
+ # 'robots.txt': {'path': 'robots.txt'},
+ 'favicon.ico': {'path': 'favicon.ico'}
+}
+
+PLUGIN_PATHS = ['plugins/',]
+PLUGINS = ['summary', ]
+
+TEMPLATE_DEBUG = True
+DEBUG = True
+
+PATH = 'content'
+STATIC_PATHS = ['images', 'downloads', 'kookie.txt']
+SITE_LOGO = 'favicon.ico'
+SUMMARY_MAX_LENGTH = 140
+
+#############################################
+#############################################
+
+# THEME = 'lazystrap' # Why doesn't this work? :(
+
+DEFAULT_CATEGORY = 'Dev Diary'
+DEFAULT_DATE = 'fs'
+
+DISPLAY_CATEGORIES_ON_MENU = False
+DISPLAY_PAGES_ON_MENU = False
+
+MENUITEMS = (
+ ('Home', '/'),
+ ('Blog', '/blog/'),
+ # ('Guides', '/guides/'),
+ # ('Showcase', '/showcase/'),
+ ('About Me', '/about/'),
+)
+
+ARTICLE_URL = '{category}/{slug}'
+ARTICLE_SAVE_AS = '{category}/{slug}/index.html'
+
+PAGE_URL = '{slug}'
+PAGE_SAVE_AS = '{slug}/index.html'
+
+CATEGORY_URL = '{slug}'
+CATEGORY_SAVE_AS = '{slug}/index.html'
+
+TAG_URL = '{slug}'
+TAG_SAVE_AS = '{slug}/index.html'
+
+#############################################
+#############################################
+
+TIMEZONE = 'Europe/Berlin'
+DEFAULT_LANG = 'en'
+LOCALE = 'C'
+DEFAULT_DATE_FORMAT = '%Y-%m-%d'
+
+# Feed generation is usually not desired when developing
+FEED_ALL_ATOM = None
+CATEGORY_FEED_ATOM = None
+TRANSLATION_FEED_ATOM = None
+AUTHOR_FEED_ATOM = None
+
+FEED_RSS = 'rss.xml'
+CATEGORY_FEED_RSS = '%s/rss.xml'
+
+
+JINJA_EXTENSIONS = ['webassets.ext.jinja2.AssetsExtension', 'jinja2.ext.with_']
+# Blogroll
+# LINKS = (('Lonely Robot', 'http://www.lonelyrobot.io'), )
+
+# Social widget
+SOCIAL = (('Twitter', 'https://www.twitter.com/spacekookie'),('Github','https://www.github.com/spacekookie'),)
+
+DEFAULT_PAGINATION = 20
diff --git a/plugins/summary/Readme.rst b/plugins/summary/Readme.rst
new file mode 100755
index 0000000..3aec268
--- /dev/null
+++ b/plugins/summary/Readme.rst
@@ -0,0 +1,53 @@
+Summary
+-------
+
+This plugin allows easy, variable length summaries directly embedded into the
+body of your articles. It introduces two new settings: ``SUMMARY_BEGIN_MARKER``
+and ``SUMMARY_END_MARKER``: strings which can be placed directly into an article
+to mark the beginning and end of a summary. When found, the standard
+``SUMMARY_MAX_LENGTH`` setting will be ignored. The markers themselves will also
+be removed from your articles before they are published. The default values
+are ``<!-- PELICAN_BEGIN_SUMMARY -->`` and ``<!-- PELICAN_END_SUMMARY -->``.
+For example::
+
+ Title: My super title
+ Date: 2010-12-03 10:20
+ Tags: thats, awesome
+ Category: yeah
+ Slug: my-super-post
+ Author: Alexis Metaireau
+
+ This is the content of my super blog post.
+ <!-- PELICAN_END_SUMMARY -->
+ and this content occurs after the summary.
+
+Here, the summary is taken to be the first line of the post. Because no
+beginning marker was found, it starts at the top of the body. It is possible
+to leave out the end marker instead, in which case the summary will start at the
+beginning marker and continue to the end of the body.
+
+The plugin also sets a ``has_summary`` attribute on every article. It is True
+for articles with an explicitly-defined summary, and False otherwise. (It is
+also False for an article truncated by ``SUMMARY_MAX_LENGTH``.) Your templates
+can use this e.g. to add a link to the full text at the end of the summary.
+
+reST example
+~~~~~~~~~~~~
+
+Inserting the markers into a reStructuredText document makes use of the
+comment directive, because raw HTML is automatically escaped. The reST equivalent of the above Markdown example looks like this::
+
+ My super title
+ ##############
+
+ :date: 2010-12-03 10:20
+ :tags: thats, awesome
+ :category: yeah
+ :slug: my-super-post
+ :author: Alexis Metaireau
+
+ This is the content of my super blog post.
+
+ .. PELICAN_END_SUMMARY
+
+ and this content occurs after the summary.
diff --git a/plugins/summary/__init__.py b/plugins/summary/__init__.py
new file mode 100755
index 0000000..afe9311
--- /dev/null
+++ b/plugins/summary/__init__.py
@@ -0,0 +1 @@
+from .summary import *
diff --git a/plugins/summary/__pycache__/__init__.cpython-36.pyc b/plugins/summary/__pycache__/__init__.cpython-36.pyc
new file mode 100644
index 0000000..a017b5d
--- /dev/null
+++ b/plugins/summary/__pycache__/__init__.cpython-36.pyc
Binary files differ
diff --git a/plugins/summary/__pycache__/summary.cpython-36.pyc b/plugins/summary/__pycache__/summary.cpython-36.pyc
new file mode 100644
index 0000000..690703c
--- /dev/null
+++ b/plugins/summary/__pycache__/summary.cpython-36.pyc
Binary files differ
diff --git a/plugins/summary/summary.py b/plugins/summary/summary.py
new file mode 100755
index 0000000..365f08f
--- /dev/null
+++ b/plugins/summary/summary.py
@@ -0,0 +1,90 @@
+"""
+Summary
+-------
+
+This plugin allows easy, variable length summaries directly embedded into the
+body of your articles.
+"""
+
+from __future__ import unicode_literals
+from pelican import signals
+from pelican.generators import ArticlesGenerator, StaticGenerator, PagesGenerator
+
+def initialized(pelican):
+ from pelican.settings import DEFAULT_CONFIG
+ DEFAULT_CONFIG.setdefault('SUMMARY_BEGIN_MARKER',
+ '<!-- PELICAN_BEGIN_SUMMARY -->')
+ DEFAULT_CONFIG.setdefault('SUMMARY_END_MARKER',
+ '<!-- PELICAN_END_SUMMARY -->')
+ if pelican:
+ pelican.settings.setdefault('SUMMARY_BEGIN_MARKER',
+ '<!-- PELICAN_BEGIN_SUMMARY -->')
+ pelican.settings.setdefault('SUMMARY_END_MARKER',
+ '<!-- PELICAN_END_SUMMARY -->')
+
+def extract_summary(instance):
+ # if summary is already specified, use it
+ # if there is no content, there's nothing to do
+ if hasattr(instance, '_summary'):
+ instance.has_summary = True
+ return
+
+ if not instance._content:
+ instance.has_summary = False
+ return
+
+ begin_marker = instance.settings['SUMMARY_BEGIN_MARKER']
+ end_marker = instance.settings['SUMMARY_END_MARKER']
+
+ content = instance._content
+ begin_summary = -1
+ end_summary = -1
+ if begin_marker:
+ begin_summary = content.find(begin_marker)
+ if end_marker:
+ end_summary = content.find(end_marker)
+
+ if begin_summary == -1 and end_summary == -1:
+ instance.has_summary = False
+ return
+
+ # skip over the begin marker, if present
+ if begin_summary == -1:
+ begin_summary = 0
+ else:
+ begin_summary = begin_summary + len(begin_marker)
+
+ if end_summary == -1:
+ end_summary = None
+
+ summary = content[begin_summary:end_summary]
+
+ # remove the markers from the content
+ if begin_summary:
+ content = content.replace(begin_marker, '', 1)
+ if end_summary:
+ content = content.replace(end_marker, '', 1)
+
+ instance._content = content
+ instance._summary = summary
+ instance.has_summary = True
+
+
+def run_plugin(generators):
+ for generator in generators:
+ if isinstance(generator, ArticlesGenerator):
+ for article in generator.articles:
+ extract_summary(article)
+ elif isinstance(generator, PagesGenerator):
+ for page in generator.pages:
+ extract_summary(page)
+
+
+def register():
+ signals.initialized.connect(initialized)
+ try:
+ signals.all_generators_finalized.connect(run_plugin)
+ except AttributeError:
+ # NOTE: This results in #314 so shouldn't really be relied on
+ # https://github.com/getpelican/pelican-plugins/issues/314
+ signals.content_object_init.connect(extract_summary)
diff --git a/plugins/summary/test_summary.py b/plugins/summary/test_summary.py
new file mode 100755
index 0000000..c995106
--- /dev/null
+++ b/plugins/summary/test_summary.py
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+
+import unittest
+
+from jinja2.utils import generate_lorem_ipsum
+
+# generate one paragraph, enclosed with <p>
+TEST_CONTENT = str(generate_lorem_ipsum(n=1))
+TEST_SUMMARY = generate_lorem_ipsum(n=1, html=False)
+
+
+from pelican.contents import Page
+
+import summary
+
+class TestSummary(unittest.TestCase):
+ def setUp(self):
+ super(TestSummary, self).setUp()
+
+ summary.register()
+ summary.initialized(None)
+ self.page_kwargs = {
+ 'content': TEST_CONTENT,
+ 'context': {
+ 'localsiteurl': '',
+ },
+ 'metadata': {
+ 'summary': TEST_SUMMARY,
+ 'title': 'foo bar',
+ 'author': 'Blogger',
+ },
+ }
+
+ def _copy_page_kwargs(self):
+ # make a deep copy of page_kwargs
+ page_kwargs = dict([(key, self.page_kwargs[key]) for key in
+ self.page_kwargs])
+ for key in page_kwargs:
+ if not isinstance(page_kwargs[key], dict):
+ break
+ page_kwargs[key] = dict([(subkey, page_kwargs[key][subkey])
+ for subkey in page_kwargs[key]])
+
+ return page_kwargs
+
+ def test_end_summary(self):
+ page_kwargs = self._copy_page_kwargs()
+ del page_kwargs['metadata']['summary']
+ page_kwargs['content'] = (
+ TEST_SUMMARY + '<!-- PELICAN_END_SUMMARY -->' + TEST_CONTENT)
+ page = Page(**page_kwargs)
+ # test both the summary and the marker removal
+ self.assertEqual(page.summary, TEST_SUMMARY)
+ self.assertEqual(page.content, TEST_SUMMARY + TEST_CONTENT)
+
+ def test_begin_summary(self):
+ page_kwargs = self._copy_page_kwargs()
+ del page_kwargs['metadata']['summary']
+ page_kwargs['content'] = (
+ 'FOOBAR<!-- PELICAN_BEGIN_SUMMARY -->' + TEST_CONTENT)
+ page = Page(**page_kwargs)
+ # test both the summary and the marker removal
+ self.assertEqual(page.summary, TEST_CONTENT)
+ self.assertEqual(page.content, 'FOOBAR' + TEST_CONTENT)
+
+ def test_begin_end_summary(self):
+ page_kwargs = self._copy_page_kwargs()
+ del page_kwargs['metadata']['summary']
+ page_kwargs['content'] = (
+ 'FOOBAR<!-- PELICAN_BEGIN_SUMMARY -->' + TEST_SUMMARY +
+ '<!-- PELICAN_END_SUMMARY -->' + TEST_CONTENT)
+ page = Page(**page_kwargs)
+ # test both the summary and the marker removal
+ self.assertEqual(page.summary, TEST_SUMMARY)
+ self.assertEqual(page.content, 'FOOBAR' + TEST_SUMMARY + TEST_CONTENT)
diff --git a/publishconf.py b/publishconf.py
new file mode 100755
index 0000000..d3cabcb
--- /dev/null
+++ b/publishconf.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+from __future__ import unicode_literals
+
+# This file is only used if you use `make publish` or
+# explicitly specify it as your config file.
+
+import os
+import sys
+sys.path.append(os.curdir)
+from pelicanconf import *
+
+SITEURL = 'https://spacekookie.de'
+RELATIVE_URLS = False
+
+FEED_ALL_ATOM = 'feeds/all.atom.xml'
+CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
+
+DELETE_OUTPUT_DIRECTORY = True
+
+# Following items are often useful when publishing
+
+# DISQUS_SITENAME = "katesnullpointers"
+# GOOGLE_ANALYTICS = ""
diff --git a/static/fonts/opensans-02a7f5c491cda3d79832291d9f0903a1086ad308.woff2 b/static/fonts/opensans-02a7f5c491cda3d79832291d9f0903a1086ad308.woff2
deleted file mode 100755
index f158de0..0000000
--- a/static/fonts/opensans-02a7f5c491cda3d79832291d9f0903a1086ad308.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-0780068aad6429b678dbfc89a831016b16efa340.woff2 b/static/fonts/opensans-0780068aad6429b678dbfc89a831016b16efa340.woff2
deleted file mode 100755
index e32e0b8..0000000
--- a/static/fonts/opensans-0780068aad6429b678dbfc89a831016b16efa340.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-082d935809ff8624c407f5ebfa9f707031f6871d.woff2 b/static/fonts/opensans-082d935809ff8624c407f5ebfa9f707031f6871d.woff2
deleted file mode 100755
index 68c5c23..0000000
--- a/static/fonts/opensans-082d935809ff8624c407f5ebfa9f707031f6871d.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-0843ae9e7843eae6a72c5b8f28d4dd6e5106f516.woff2 b/static/fonts/opensans-0843ae9e7843eae6a72c5b8f28d4dd6e5106f516.woff2
deleted file mode 100755
index f64b4f5..0000000
--- a/static/fonts/opensans-0843ae9e7843eae6a72c5b8f28d4dd6e5106f516.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-101147f1175d6b5ffc2f79f8a3f64a0d7f94e418.woff2 b/static/fonts/opensans-101147f1175d6b5ffc2f79f8a3f64a0d7f94e418.woff2
deleted file mode 100755
index 3af6f29..0000000
--- a/static/fonts/opensans-101147f1175d6b5ffc2f79f8a3f64a0d7f94e418.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-14a380d9ddfdee7aecf38c241c450bfe813d94e5.woff2 b/static/fonts/opensans-14a380d9ddfdee7aecf38c241c450bfe813d94e5.woff2
deleted file mode 100755
index 90b828f..0000000
--- a/static/fonts/opensans-14a380d9ddfdee7aecf38c241c450bfe813d94e5.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-1771169127bd9e07adbb7c767f2804f20ab73745.woff2 b/static/fonts/opensans-1771169127bd9e07adbb7c767f2804f20ab73745.woff2
deleted file mode 100755
index 0999dff..0000000
--- a/static/fonts/opensans-1771169127bd9e07adbb7c767f2804f20ab73745.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-231fcd661359bf887f4f24566723a0d640c015ad.woff2 b/static/fonts/opensans-231fcd661359bf887f4f24566723a0d640c015ad.woff2
deleted file mode 100755
index b708415..0000000
--- a/static/fonts/opensans-231fcd661359bf887f4f24566723a0d640c015ad.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-256fc89d0e1b746440955b22d1792532cd9c8b28.woff2 b/static/fonts/opensans-256fc89d0e1b746440955b22d1792532cd9c8b28.woff2
deleted file mode 100755
index 2da750a..0000000
--- a/static/fonts/opensans-256fc89d0e1b746440955b22d1792532cd9c8b28.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-257209387d9006aad15c25e62a999102d74e2d34.ttf b/static/fonts/opensans-257209387d9006aad15c25e62a999102d74e2d34.ttf
deleted file mode 100755
index dd8784f..0000000
--- a/static/fonts/opensans-257209387d9006aad15c25e62a999102d74e2d34.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-30e035a07a13db060570f5382a749e6150963c7d.woff2 b/static/fonts/opensans-30e035a07a13db060570f5382a749e6150963c7d.woff2
deleted file mode 100755
index 192dba8..0000000
--- a/static/fonts/opensans-30e035a07a13db060570f5382a749e6150963c7d.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-3601b8c8df77687232aa48455f95585cd02a1c20.woff2 b/static/fonts/opensans-3601b8c8df77687232aa48455f95585cd02a1c20.woff2
deleted file mode 100755
index 94763e4..0000000
--- a/static/fonts/opensans-3601b8c8df77687232aa48455f95585cd02a1c20.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-3823779db9f51a34658809ce66bdd6ed1145ed8e.ttf b/static/fonts/opensans-3823779db9f51a34658809ce66bdd6ed1145ed8e.ttf
deleted file mode 100755
index 716735b..0000000
--- a/static/fonts/opensans-3823779db9f51a34658809ce66bdd6ed1145ed8e.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-38448be4db4d82e2ccf22e2527f6e7831b053b30.woff2 b/static/fonts/opensans-38448be4db4d82e2ccf22e2527f6e7831b053b30.woff2
deleted file mode 100755
index 992a7c2..0000000
--- a/static/fonts/opensans-38448be4db4d82e2ccf22e2527f6e7831b053b30.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-3a9baf0916be2f57d8dc0edb6ac1d62584613628.woff2 b/static/fonts/opensans-3a9baf0916be2f57d8dc0edb6ac1d62584613628.woff2
deleted file mode 100755
index be745bd..0000000
--- a/static/fonts/opensans-3a9baf0916be2f57d8dc0edb6ac1d62584613628.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-3cd7287c1f241c0bd6df553af45ef1459dea2a29.woff2 b/static/fonts/opensans-3cd7287c1f241c0bd6df553af45ef1459dea2a29.woff2
deleted file mode 100755
index 38870b8..0000000
--- a/static/fonts/opensans-3cd7287c1f241c0bd6df553af45ef1459dea2a29.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-3d488e790bbea9ba0975ddd77ad8378510caee01.woff2 b/static/fonts/opensans-3d488e790bbea9ba0975ddd77ad8378510caee01.woff2
deleted file mode 100755
index 7960498..0000000
--- a/static/fonts/opensans-3d488e790bbea9ba0975ddd77ad8378510caee01.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-42286008c766c2fa87d1b3dfa90d8d9f273e580a.woff2 b/static/fonts/opensans-42286008c766c2fa87d1b3dfa90d8d9f273e580a.woff2
deleted file mode 100755
index c9e176d..0000000
--- a/static/fonts/opensans-42286008c766c2fa87d1b3dfa90d8d9f273e580a.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-4b163b622b3cfc64eacdb3a24f485d58be1bdbae.woff2 b/static/fonts/opensans-4b163b622b3cfc64eacdb3a24f485d58be1bdbae.woff2
deleted file mode 100755
index 7b9b4cb..0000000
--- a/static/fonts/opensans-4b163b622b3cfc64eacdb3a24f485d58be1bdbae.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-510e65d731654fda529690b06e382db085b612e3.woff2 b/static/fonts/opensans-510e65d731654fda529690b06e382db085b612e3.woff2
deleted file mode 100755
index 8bd93c8..0000000
--- a/static/fonts/opensans-510e65d731654fda529690b06e382db085b612e3.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-5147015c86d27c3dce7724fc177e7543eda86c0d.woff2 b/static/fonts/opensans-5147015c86d27c3dce7724fc177e7543eda86c0d.woff2
deleted file mode 100755
index 986fc56..0000000
--- a/static/fonts/opensans-5147015c86d27c3dce7724fc177e7543eda86c0d.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-57690d9bdac0b609a7a309afa66d228213b7967a.woff2 b/static/fonts/opensans-57690d9bdac0b609a7a309afa66d228213b7967a.woff2
deleted file mode 100755
index f4b0149..0000000
--- a/static/fonts/opensans-57690d9bdac0b609a7a309afa66d228213b7967a.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-58f09077c668b82398e90f3104c01a9bdf3b3b40.woff2 b/static/fonts/opensans-58f09077c668b82398e90f3104c01a9bdf3b3b40.woff2
deleted file mode 100755
index 6ca3d2f..0000000
--- a/static/fonts/opensans-58f09077c668b82398e90f3104c01a9bdf3b3b40.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-5d011e60828f77f264c3305324cd6179e74d59ab.woff2 b/static/fonts/opensans-5d011e60828f77f264c3305324cd6179e74d59ab.woff2
deleted file mode 100755
index 4bea884..0000000
--- a/static/fonts/opensans-5d011e60828f77f264c3305324cd6179e74d59ab.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-5d71d1757bb745b55a9eb47f628062753cb5b58c.woff2 b/static/fonts/opensans-5d71d1757bb745b55a9eb47f628062753cb5b58c.woff2
deleted file mode 100755
index bff235a..0000000
--- a/static/fonts/opensans-5d71d1757bb745b55a9eb47f628062753cb5b58c.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-6058911ac41968c2164c6a3ba59cc884939c2511.woff2 b/static/fonts/opensans-6058911ac41968c2164c6a3ba59cc884939c2511.woff2
deleted file mode 100755
index e6afd74..0000000
--- a/static/fonts/opensans-6058911ac41968c2164c6a3ba59cc884939c2511.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-618b78a8f6ffe7e1998eab67268859e2ab54be8e.ttf b/static/fonts/opensans-618b78a8f6ffe7e1998eab67268859e2ab54be8e.ttf
deleted file mode 100755
index dd5091f..0000000
--- a/static/fonts/opensans-618b78a8f6ffe7e1998eab67268859e2ab54be8e.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-6430a52dab446fc805d3f5b1221bf9a38e154d3b.woff2 b/static/fonts/opensans-6430a52dab446fc805d3f5b1221bf9a38e154d3b.woff2
deleted file mode 100755
index c6b4eb8..0000000
--- a/static/fonts/opensans-6430a52dab446fc805d3f5b1221bf9a38e154d3b.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-6aa866c008a8bb532458b049ab255945e286940a.woff2 b/static/fonts/opensans-6aa866c008a8bb532458b049ab255945e286940a.woff2
deleted file mode 100755
index 85b1f3a..0000000
--- a/static/fonts/opensans-6aa866c008a8bb532458b049ab255945e286940a.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-6c118f4639d3ee03a0c1cce2a6047ccb5e4b6dac.woff2 b/static/fonts/opensans-6c118f4639d3ee03a0c1cce2a6047ccb5e4b6dac.woff2
deleted file mode 100755
index 9ab88e2..0000000
--- a/static/fonts/opensans-6c118f4639d3ee03a0c1cce2a6047ccb5e4b6dac.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-6cd331cfa6a58dd852a22e42276a2dd2e1445ae6.woff2 b/static/fonts/opensans-6cd331cfa6a58dd852a22e42276a2dd2e1445ae6.woff2
deleted file mode 100755
index e03e125..0000000
--- a/static/fonts/opensans-6cd331cfa6a58dd852a22e42276a2dd2e1445ae6.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-797e92ab741300e5bd43f45ae934f2b2a7b137e6.woff2 b/static/fonts/opensans-797e92ab741300e5bd43f45ae934f2b2a7b137e6.woff2
deleted file mode 100755
index c40e78c..0000000
--- a/static/fonts/opensans-797e92ab741300e5bd43f45ae934f2b2a7b137e6.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-808769b38614943b5116b559ac7528386b7cb020.woff2 b/static/fonts/opensans-808769b38614943b5116b559ac7528386b7cb020.woff2
deleted file mode 100755
index 7e5e42c..0000000
--- a/static/fonts/opensans-808769b38614943b5116b559ac7528386b7cb020.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-829b0eefbb7ba0be775b7d741d0c41978a20a481.eot b/static/fonts/opensans-829b0eefbb7ba0be775b7d741d0c41978a20a481.eot
deleted file mode 100755
index 89f2b56..0000000
--- a/static/fonts/opensans-829b0eefbb7ba0be775b7d741d0c41978a20a481.eot
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-85e3ce3d35d4e067d1f533d1aab7a8e0ee51a963.woff2 b/static/fonts/opensans-85e3ce3d35d4e067d1f533d1aab7a8e0ee51a963.woff2
deleted file mode 100755
index 582bb5a..0000000
--- a/static/fonts/opensans-85e3ce3d35d4e067d1f533d1aab7a8e0ee51a963.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-8ed28b622974c995298647854f054668863021d1.woff2 b/static/fonts/opensans-8ed28b622974c995298647854f054668863021d1.woff2
deleted file mode 100755
index 9062341..0000000
--- a/static/fonts/opensans-8ed28b622974c995298647854f054668863021d1.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-92d2e645589fad0f22b789b050928dea5db6bc3b.woff2 b/static/fonts/opensans-92d2e645589fad0f22b789b050928dea5db6bc3b.woff2
deleted file mode 100755
index af7eeb8..0000000
--- a/static/fonts/opensans-92d2e645589fad0f22b789b050928dea5db6bc3b.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-95486a9c61867ecd4b703703ff4343306c16e03b.woff2 b/static/fonts/opensans-95486a9c61867ecd4b703703ff4343306c16e03b.woff2
deleted file mode 100755
index 2251230..0000000
--- a/static/fonts/opensans-95486a9c61867ecd4b703703ff4343306c16e03b.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-95618ec1cef0a5becd89ad80bff3d140a358b6ad.woff2 b/static/fonts/opensans-95618ec1cef0a5becd89ad80bff3d140a358b6ad.woff2
deleted file mode 100755
index 712a2ec..0000000
--- a/static/fonts/opensans-95618ec1cef0a5becd89ad80bff3d140a358b6ad.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-9ead99d8fbb79a1f78c2ed07bc1f1aee1e4866ba.woff2 b/static/fonts/opensans-9ead99d8fbb79a1f78c2ed07bc1f1aee1e4866ba.woff2
deleted file mode 100755
index 002f30d..0000000
--- a/static/fonts/opensans-9ead99d8fbb79a1f78c2ed07bc1f1aee1e4866ba.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-9ee51d47218830874fc05f4a0c1970392608ede0.woff2 b/static/fonts/opensans-9ee51d47218830874fc05f4a0c1970392608ede0.woff2
deleted file mode 100755
index 70edb3d..0000000
--- a/static/fonts/opensans-9ee51d47218830874fc05f4a0c1970392608ede0.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-a590b0edc76d8942dd06ba85279414d91af85f43.woff2 b/static/fonts/opensans-a590b0edc76d8942dd06ba85279414d91af85f43.woff2
deleted file mode 100755
index db7478a..0000000
--- a/static/fonts/opensans-a590b0edc76d8942dd06ba85279414d91af85f43.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-a824a9f6a32d64bcd79534ad310703b5ff94d24e.woff2 b/static/fonts/opensans-a824a9f6a32d64bcd79534ad310703b5ff94d24e.woff2
deleted file mode 100755
index ee5c461..0000000
--- a/static/fonts/opensans-a824a9f6a32d64bcd79534ad310703b5ff94d24e.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-aeac2c6d52f83f11761dad079a4b4ce67b1985ed.woff2 b/static/fonts/opensans-aeac2c6d52f83f11761dad079a4b4ce67b1985ed.woff2
deleted file mode 100755
index 5a32e3c..0000000
--- a/static/fonts/opensans-aeac2c6d52f83f11761dad079a4b4ce67b1985ed.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-af9bb31cbe924f6f4742cda969cfa46ee92bdb8a.ttf b/static/fonts/opensans-af9bb31cbe924f6f4742cda969cfa46ee92bdb8a.ttf
deleted file mode 100755
index d74266e..0000000
--- a/static/fonts/opensans-af9bb31cbe924f6f4742cda969cfa46ee92bdb8a.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-b3601a97e762646a1e17e821ac947646a686f38d.woff2 b/static/fonts/opensans-b3601a97e762646a1e17e821ac947646a686f38d.woff2
deleted file mode 100755
index 64de695..0000000
--- a/static/fonts/opensans-b3601a97e762646a1e17e821ac947646a686f38d.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-b606fc8cefcb8c9b9e11cd25c3d04864893a5651.woff2 b/static/fonts/opensans-b606fc8cefcb8c9b9e11cd25c3d04864893a5651.woff2
deleted file mode 100755
index 883ece5..0000000
--- a/static/fonts/opensans-b606fc8cefcb8c9b9e11cd25c3d04864893a5651.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-bae60a4ef6c2573e304d448d4478294c0ba7778f.woff2 b/static/fonts/opensans-bae60a4ef6c2573e304d448d4478294c0ba7778f.woff2
deleted file mode 100755
index 4c7d599..0000000
--- a/static/fonts/opensans-bae60a4ef6c2573e304d448d4478294c0ba7778f.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-c2a6cdc1dc4d57eef444571f285fd73ad164fdb1.woff2 b/static/fonts/opensans-c2a6cdc1dc4d57eef444571f285fd73ad164fdb1.woff2
deleted file mode 100755
index 3cf7688..0000000
--- a/static/fonts/opensans-c2a6cdc1dc4d57eef444571f285fd73ad164fdb1.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-cb44fe2b2923f938486e2c5f7f0fa7a00bbd24d2.ttf b/static/fonts/opensans-cb44fe2b2923f938486e2c5f7f0fa7a00bbd24d2.ttf
deleted file mode 100755
index 8c381b1..0000000
--- a/static/fonts/opensans-cb44fe2b2923f938486e2c5f7f0fa7a00bbd24d2.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-cc5e3ec30d0402200e3c1905a44ea5d37d543368.woff2 b/static/fonts/opensans-cc5e3ec30d0402200e3c1905a44ea5d37d543368.woff2
deleted file mode 100755
index e184f64..0000000
--- a/static/fonts/opensans-cc5e3ec30d0402200e3c1905a44ea5d37d543368.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-cc9bc768c595f045f6a31340c763c5e494e0ee0e.woff2 b/static/fonts/opensans-cc9bc768c595f045f6a31340c763c5e494e0ee0e.woff2
deleted file mode 100755
index 71cf98e..0000000
--- a/static/fonts/opensans-cc9bc768c595f045f6a31340c763c5e494e0ee0e.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-ccbe7ac33491ce00e73dd57ddfee63f24121bf4b.woff2 b/static/fonts/opensans-ccbe7ac33491ce00e73dd57ddfee63f24121bf4b.woff2
deleted file mode 100755
index bcb25b0..0000000
--- a/static/fonts/opensans-ccbe7ac33491ce00e73dd57ddfee63f24121bf4b.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-ce6f0578fc94b8e05a1eaf537c2587e938f2a158.woff2 b/static/fonts/opensans-ce6f0578fc94b8e05a1eaf537c2587e938f2a158.woff2
deleted file mode 100755
index 99cac81..0000000
--- a/static/fonts/opensans-ce6f0578fc94b8e05a1eaf537c2587e938f2a158.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-d0eeac030704f91d16e2201d107d7ee8a2c1dd2a.woff2 b/static/fonts/opensans-d0eeac030704f91d16e2201d107d7ee8a2c1dd2a.woff2
deleted file mode 100755
index 9cdebc4..0000000
--- a/static/fonts/opensans-d0eeac030704f91d16e2201d107d7ee8a2c1dd2a.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-d2f58eb442c4d4f47f2bf2950560a1e56ef02b76.woff2 b/static/fonts/opensans-d2f58eb442c4d4f47f2bf2950560a1e56ef02b76.woff2
deleted file mode 100755
index 4144f53..0000000
--- a/static/fonts/opensans-d2f58eb442c4d4f47f2bf2950560a1e56ef02b76.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg b/static/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg
deleted file mode 100755
index 052c59f..0000000
--- a/static/fonts/opensans-d4d19ed3a763ce10e050662542bc0318bb620096.svg
+++ /dev/null
@@ -1,1637 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg">
-<defs >
-<font id="OpenSans" horiz-adv-x="1206" ><font-face
- font-family="Open Sans"
- units-per-em="2048"
- panose-1="2 11 6 6 3 5 4 2 2 4"
- ascent="2189"
- descent="-600"
- alphabetic="0" />
-<glyph unicode=" " glyph-name="space" horiz-adv-x="532" />
-<glyph unicode="!" glyph-name="exclam" horiz-adv-x="547" d="M326 403H221L170 1462H377L326 403ZM152 106Q152 242 272 242Q330 242 361 207T393 106Q393 42 361 7T272 -29Q220 -29 186 2T152 106Z" />
-<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="821" d="M319 1462L279 934H174L133 1462H319ZM688 1462L647 934H543L502 1462H688Z" />
-<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1323" d="M981 899L915 559H1198V430H891L807 0H670L754 430H451L369 0H233L313 430H51V559H338L406 899H129V1026H428L510 1462H649L567 1026H872L956 1462H1090L1006 1026H1270V899H981ZM475 559H778L844
-899H541L475 559Z" />
-<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1171" d="M1036 449Q1036 313 934 225T649 113V-119H520V104Q408 104 303 121T131 170V326Q214 289 322 266T520 242V682Q315 747 233 833T150 1055Q150 1186 251 1270T520 1372V1554H649V1374Q833 1369 1004
-1300L952 1169Q803 1228 649 1239V805Q806 755 884 708T999 599T1036 449ZM866 436Q866 508 822 552T649 641V252Q866 282 866 436ZM319 1057Q319 981 364 935T520 848V1235Q421 1219 370 1173T319 1057Z" />
-<glyph unicode="%" glyph-name="percent" horiz-adv-x="1686" d="M242 1026Q242 856 279 771T399 686Q563 686 563 1026Q563 1364 399 1364Q316 1364 279 1280T242 1026ZM700 1026Q700 798 624 682T399 565Q259 565 182 684T104 1026Q104 1253 178 1368T399 1483Q544
-1483 622 1364T700 1026ZM1122 440Q1122 269 1159 185T1280 100Q1364 100 1404 183T1444 440Q1444 611 1404 693T1280 776Q1196 776 1159 694T1122 440ZM1581 440Q1581 213 1505 97T1280 -20Q1138 -20 1062 99T985 440Q985 667 1059 782T1280 897Q1422 897 1501
-780T1581 440ZM1323 1462L512 0H365L1176 1462H1323Z" />
-<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="1495" d="M414 1171Q414 1102 450 1040T573 889Q702 964 752 1027T803 1174Q803 1251 752 1299T614 1348Q525 1348 470 1300T414 1171ZM569 129Q810 129 969 283L532 707Q421 639 375 595T307 499T285
-383Q285 266 362 198T569 129ZM113 379Q113 509 182 609T432 811Q347 906 317 955T268 1057T250 1167Q250 1317 348 1401T621 1485Q783 1485 876 1402T969 1169Q969 1062 901 972T676 788L1083 397Q1139 459 1172 542T1229 725H1397Q1329 439 1192 291L1491 0H1262L1077
-178Q959 72 837 26T565 -20Q350 -20 232 86T113 379Z" />
-<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="453" d="M319 1462L279 934H174L133 1462H319Z" />
-<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="606" d="M82 561Q82 826 159 1057T383 1462H545Q401 1269 329 1038T256 563Q256 323 330 94T543 -324H383Q236 -154 159 73T82 561Z" />
-<glyph unicode=")" glyph-name="parenright" horiz-adv-x="606" d="M524 561Q524 298 447 71T223 -324H63Q202 -136 276 93T350 563Q350 807 278 1038T61 1462H223Q370 1287 447 1056T524 561Z" />
-<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1130" d="M657 1556L614 1161L1012 1272L1038 1090L657 1059L905 733L733 639L557 1001L397 639L221 733L463 1059L86 1090L115 1272L506 1161L463 1556H657Z" />
-<glyph unicode="+" glyph-name="plus" horiz-adv-x="1171" d="M653 791H1065V653H653V227H514V653H104V791H514V1219H653V791Z" />
-<glyph unicode="," glyph-name="comma" horiz-adv-x="502" d="M350 238L365 215Q339 115 290 -17T188 -264H63Q90 -160 122 -7T168 238H350Z" />
-<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="659" d="M84 473V625H575V473H84Z" />
-<glyph unicode="." glyph-name="period" horiz-adv-x="545" d="M152 106Q152 173 182 207T270 242Q328 242 360 208T393 106Q393 41 360 6T270 -29Q219 -29 186 2T152 106Z" />
-<glyph unicode="/" glyph-name="slash" horiz-adv-x="752" d="M731 1462L186 0H20L565 1462H731Z" />
-<glyph unicode="0" glyph-name="zero" horiz-adv-x="1171" d="M1069 733Q1069 354 950 167T584 -20Q348 -20 225 171T102 733Q102 1115 221 1300T584 1485Q822 1485 945 1292T1069 733ZM270 733Q270 414 345 269T584 123Q750 123 824 270T899 733Q899 1048 825
-1194T584 1341Q420 1341 345 1197T270 733Z" />
-<glyph unicode="1" glyph-name="one" horiz-adv-x="1171" d="M715 0H553V1042Q553 1172 561 1288Q540 1267 514 1244T276 1049L188 1163L575 1462H715V0Z" />
-<glyph unicode="2" glyph-name="two" horiz-adv-x="1171" d="M1061 0H100V143L485 530Q661 708 717 784T801 932T829 1087Q829 1204 758 1272T561 1341Q470 1341 389 1311T207 1202L119 1315Q321 1483 559 1483Q765 1483 882 1378T999 1094Q999 955 921 819T629
-475L309 162V154H1061V0Z" />
-<glyph unicode="3" glyph-name="three" horiz-adv-x="1171" d="M1006 1118Q1006 978 928 889T705 770V762Q881 740 966 650T1051 414Q1051 205 906 93T494 -20Q378 -20 282 -3T94 59V217Q189 170 296 146T500 121Q879 121 879 418Q879 684 461 684H317V827H463Q634
-827 734 902T834 1112Q834 1219 761 1280T561 1341Q465 1341 380 1315T186 1219L102 1331Q192 1402 309 1442T557 1483Q770 1483 888 1386T1006 1118Z" />
-<glyph unicode="4" glyph-name="four" horiz-adv-x="1171" d="M1130 336H913V0H754V336H43V481L737 1470H913V487H1130V336ZM754 487V973Q754 1116 764 1296H756Q708 1200 666 1137L209 487H754Z" />
-<glyph unicode="5" glyph-name="five" horiz-adv-x="1171" d="M557 893Q788 893 920 779T1053 465Q1053 238 909 109T510 -20Q263 -20 133 59V219Q203 174 307 149T512 123Q688 123 785 206T883 446Q883 752 508 752Q413 752 254 723L168 778L223 1462H950V1309H365L328
-870Q443 893 557 893Z" />
-<glyph unicode="6" glyph-name="six" horiz-adv-x="1171" d="M117 625Q117 1056 284 1269T780 1483Q893 1483 958 1464V1321Q881 1346 782 1346Q547 1346 423 1200T287 739H299Q409 911 647 911Q844 911 957 792T1071 469Q1071 241 947 111T610 -20Q383 -20 250
-150T117 625ZM608 121Q750 121 828 210T907 469Q907 614 834 697T616 780Q526 780 451 743T332 641T287 506Q287 403 327 314T440 173T608 121Z" />
-<glyph unicode="7" glyph-name="seven" horiz-adv-x="1171" d="M285 0L891 1309H94V1462H1067V1329L469 0H285Z" />
-<glyph unicode="8" glyph-name="eight" horiz-adv-x="1171" d="M584 1483Q784 1483 901 1390T1018 1133Q1018 1025 951 936T737 774Q915 689 990 596T1065 379Q1065 197 938 89T590 -20Q356 -20 230 82T104 373Q104 624 410 764Q272 842 212 932T152 1135Q152
-1294 269 1388T584 1483ZM268 369Q268 249 351 182T586 115Q735 115 818 185T901 377Q901 474 823 549T551 696Q402 632 335 555T268 369ZM582 1348Q457 1348 386 1288T315 1128Q315 1036 374 970T592 838Q735 898 794 967T854 1128Q854 1229 782 1288T582 1348Z"
-/>
-<glyph unicode="9" glyph-name="nine" horiz-adv-x="1171" d="M1061 838Q1061 -20 397 -20Q281 -20 213 0V143Q293 117 395 117Q635 117 757 265T891 721H879Q824 638 733 595T528 551Q334 551 220 667T106 991Q106 1219 233 1351T569 1483Q718 1483 829 1407T1001
-1184T1061 838ZM569 1341Q426 1341 348 1249T270 993Q270 849 342 767T561 684Q652 684 728 721T849 822T893 956Q893 1061 852 1150T738 1290T569 1341Z" />
-<glyph unicode=":" glyph-name="colon" horiz-adv-x="545" d="M152 106Q152 173 182 207T270 242Q328 242 360 208T393 106Q393 41 360 6T270 -29Q219 -29 186 2T152 106ZM152 989Q152 1124 270 1124Q393 1124 393 989Q393 924 360 889T270 854Q219 854 186 885T152 989Z" />
-<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="545" d="M350 238L365 215Q339 115 290 -17T188 -264H63Q90 -160 122 -7T168 238H350ZM147 989Q147 1124 266 1124Q389 1124 389 989Q389 924 356 889T266 854Q208 854 178 889T147 989Z" />
-<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="1171" d="M1065 242L104 664V762L1065 1241V1092L283 721L1065 393V242Z" />
-<glyph unicode="=" glyph-name="equal" horiz-adv-x="1171" d="M119 858V995H1049V858H119ZM119 449V586H1049V449H119Z" />
-<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="1171" d="M104 393L887 719L104 1092V1241L1065 762V664L104 242V393Z" />
-<glyph unicode="?" glyph-name="question" horiz-adv-x="879" d="M289 403V457Q289 574 325 649T459 809Q595 924 630 982T666 1122Q666 1224 601 1279T412 1335Q333 1335 258 1317T86 1249L27 1384Q216 1483 422 1483Q613 1483 719 1389T825 1124Q825 1051 806
-996T748 891T584 731Q483 645 451 588T418 436V403H289ZM240 106Q240 242 360 242Q418 242 449 207T481 106Q481 42 449 7T360 -29Q308 -29 274 2T240 106Z" />
-<glyph unicode="@" glyph-name="at" horiz-adv-x="1841" d="M1720 729Q1720 587 1676 469T1552 286T1368 221Q1282 221 1223 273T1153 406H1145Q1105 319 1031 270T854 221Q704 221 620 323T535 602Q535 806 653 933T963 1061Q1031 1061 1117 1049T1272 1014L1247
-544V522Q1247 344 1380 344Q1471 344 1528 451T1585 731Q1585 912 1511 1048T1301 1257T987 1331Q764 1331 599 1239T347 975T260 578Q260 273 421 109T885 -55Q1095 -55 1321 31V-102Q1129 -186 885 -186Q522 -186 322 13T121 571Q121 831 228 1034T533 1348T987
-1460Q1202 1460 1369 1370T1628 1113T1720 729ZM686 598Q686 344 881 344Q1088 344 1106 657L1120 918Q1048 938 963 938Q833 938 760 848T686 598Z" />
-<glyph unicode="A" glyph-name="A" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885Z" />
-<glyph unicode="B" glyph-name="B" horiz-adv-x="1327" d="M201 1462H614Q905 1462 1035 1375T1165 1100Q1165 970 1093 886T881 776V766Q1214 709 1214 416Q1214 220 1082 110T711 0H201V1462ZM371 836H651Q831 836 910 892T989 1083Q989 1206 901 1260T621 1315H371V836ZM371
-692V145H676Q853 145 942 213T1032 428Q1032 564 941 628T662 692H371Z" />
-<glyph unicode="C" glyph-name="C" horiz-adv-x="1292" d="M827 1331Q586 1331 447 1171T307 731Q307 444 441 288T825 131Q978 131 1174 186V37Q1022 -20 799 -20Q476 -20 301 176T125 733Q125 959 209 1129T453 1391T829 1483Q1059 1483 1231 1399L1159 1253Q993
-1331 827 1331Z" />
-<glyph unicode="D" glyph-name="D" horiz-adv-x="1493" d="M1368 745Q1368 383 1172 192T606 0H201V1462H649Q990 1462 1179 1273T1368 745ZM1188 739Q1188 1025 1045 1170T618 1315H371V147H578Q882 147 1035 296T1188 739Z" />
-<glyph unicode="E" glyph-name="E" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0Z" />
-<glyph unicode="F" glyph-name="F" horiz-adv-x="1057" d="M371 0H201V1462H1016V1311H371V776H977V625H371V0Z" />
-<glyph unicode="G" glyph-name="G" horiz-adv-x="1491" d="M844 766H1341V55Q1225 18 1105 -1T827 -20Q495 -20 310 177T125 731Q125 959 216 1130T480 1392T883 1483Q1117 1483 1319 1397L1253 1247Q1055 1331 872 1331Q605 1331 455 1172T305 731Q305 435 449
-282T874 129Q1026 129 1171 164V614H844V766Z" />
-<glyph unicode="H" glyph-name="H" horiz-adv-x="1511" d="M1311 0H1141V688H371V0H201V1462H371V840H1141V1462H1311V0Z" />
-<glyph unicode="I" glyph-name="I" horiz-adv-x="571" d="M201 0V1462H371V0H201Z" />
-<glyph unicode="J" glyph-name="J" horiz-adv-x="547" d="M-12 -385Q-106 -385 -160 -358V-213Q-89 -233 -12 -233Q87 -233 138 -173T190 0V1462H360V14Q360 -176 264 -280T-12 -385Z" />
-<glyph unicode="K" glyph-name="K" horiz-adv-x="1257" d="M1257 0H1057L524 709L371 573V0H201V1462H371V737L1034 1462H1235L647 827L1257 0Z" />
-<glyph unicode="L" glyph-name="L" horiz-adv-x="1063" d="M201 0V1462H371V154H1016V0H201Z" />
-<glyph unicode="M" glyph-name="M" horiz-adv-x="1849" d="M848 0L352 1296H344Q358 1142 358 930V0H201V1462H457L920 256H928L1395 1462H1649V0H1479V942Q1479 1104 1493 1294H1485L985 0H848Z" />
-<glyph unicode="N" glyph-name="N" horiz-adv-x="1544" d="M1343 0H1149L350 1227H342Q358 1011 358 831V0H201V1462H393L1190 240H1198Q1196 267 1189 413T1184 623V1462H1343V0Z" />
-<glyph unicode="O" glyph-name="O" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290 1028
-1167 1180T801 1333Q558 1333 432 1180T305 733Z" />
-<glyph unicode="P" glyph-name="P" horiz-adv-x="1233" d="M1128 1036Q1128 814 977 695T543 575H371V0H201V1462H580Q1128 1462 1128 1036ZM371 721H524Q750 721 851 794T952 1028Q952 1173 857 1244T561 1315H371V721Z" />
-<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1595" d="M1470 733Q1470 452 1357 266T1038 14L1386 -348H1139L854 -18L799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042
-129 1166 282T1290 733Q1290 1028 1167 1180T801 1333Q558 1333 432 1180T305 733Z" />
-<glyph unicode="R" glyph-name="R" horiz-adv-x="1266" d="M371 608V0H201V1462H602Q871 1462 999 1359T1128 1049Q1128 759 834 657L1231 0H1030L676 608H371ZM371 754H604Q784 754 868 825T952 1040Q952 1185 867 1249T592 1313H371V754Z" />
-<glyph unicode="S" glyph-name="S" horiz-adv-x="1124" d="M1026 389Q1026 196 886 88T506 -20Q246 -20 106 47V211Q196 173 302 151T512 129Q682 129 768 193T854 373Q854 449 824 497T722 587T504 680Q300 753 213 853T125 1114Q125 1283 252 1383T588 1483Q806
-1483 989 1403L936 1255Q755 1331 584 1331Q449 1331 373 1273T297 1112Q297 1036 325 988T419 899T623 809Q853 727 939 633T1026 389Z" />
-<glyph unicode="T" glyph-name="T" horiz-adv-x="1133" d="M651 0H481V1311H18V1462H1114V1311H651V0Z" />
-<glyph unicode="U" glyph-name="U" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305Z" />
-<glyph unicode="V" glyph-name="V" horiz-adv-x="1219" d="M1036 1462H1219L692 0H524L0 1462H180L516 516Q574 353 608 199Q644 361 702 522L1036 1462Z" />
-<glyph unicode="W" glyph-name="W" horiz-adv-x="1896" d="M1477 0H1309L1014 979Q993 1044 967 1143T940 1262Q918 1130 870 973L584 0H416L27 1462H207L438 559Q486 369 508 215Q535 398 588 573L850 1462H1030L1305 565Q1353 410 1386 215Q1405 357 1458 561L1688
-1462H1868L1477 0Z" />
-<glyph unicode="X" glyph-name="X" horiz-adv-x="1182" d="M1174 0H981L588 643L188 0H8L494 764L41 1462H229L592 883L958 1462H1139L686 770L1174 0Z" />
-<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1147" d="M573 731L963 1462H1147L659 567V0H487V559L0 1462H186L573 731Z" />
-<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1169" d="M1087 0H82V133L858 1309H106V1462H1065V1329L289 154H1087V0Z" />
-<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="674" d="M623 -324H166V1462H623V1321H334V-182H623V-324Z" />
-<glyph unicode="\" glyph-name="backslash" horiz-adv-x="752" d="M186 1462L733 0H567L23 1462H186Z" />
-<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="674" d="M51 -182H340V1321H51V1462H508V-324H51V-182Z" />
-<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1110" d="M49 551L483 1473H582L1059 551H907L535 1296L201 551H49Z" />
-<glyph unicode="_" glyph-name="underscore" horiz-adv-x="918" d="M922 -315H-4V-184H922V-315Z" />
-<glyph unicode="`" glyph-name="grave" horiz-adv-x="1182" d="M786 1241H676Q611 1293 522 1389T393 1548V1569H596Q628 1500 685 1410T786 1266V1241Z" />
-<glyph unicode="a" glyph-name="a" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 878 1027T973
-748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117Z" />
-<glyph unicode="b" glyph-name="b" horiz-adv-x="1255" d="M686 1114Q902 1114 1021 967T1141 549Q1141 279 1021 130T686 -20Q579 -20 491 19T342 141H330L295 0H176V1556H342V1178Q342 1051 334 950H342Q458 1114 686 1114ZM662 975Q492 975 417 878T342 549Q342
-318 419 219T666 119Q819 119 894 230T969 551Q969 765 894 870T662 975Z" />
-<glyph unicode="c" glyph-name="c" horiz-adv-x="975" d="M614 -20Q376 -20 246 126T115 541Q115 816 247 966T625 1116Q704 1116 783 1099T907 1059L856 918Q801 940 736 954T621 969Q287 969 287 543Q287 341 368 233T610 125Q747 125 891 184V37Q781 -20 614 -20Z" />
-<glyph unicode="d" glyph-name="d" horiz-adv-x="1255" d="M922 147H913Q798 -20 569 -20Q354 -20 235 127T115 545Q115 816 235 966T569 1116Q792 1116 911 954H924L917 1033L913 1110V1556H1079V0H944L922 147ZM590 119Q760 119 836 211T913 510V545Q913 778
-836 877T588 977Q442 977 365 864T287 543Q287 333 364 226T590 119Z" />
-<glyph unicode="e" glyph-name="e" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 384 891T291
-653H864Q864 810 794 893T594 977Z" />
-<glyph unicode="f" glyph-name="f" horiz-adv-x="694" d="M670 967H391V0H225V967H29V1042L225 1102V1163Q225 1567 578 1567Q665 1567 782 1532L739 1399Q643 1430 575 1430Q481 1430 436 1368T391 1167V1096H670V967Z" />
-<glyph unicode="g" glyph-name="g" horiz-adv-x="1122" d="M1073 1096V991L870 967Q898 932 920 876T942 748Q942 587 832 491T530 395Q481 395 438 403Q332 347 332 262Q332 217 369 196T496 174H690Q868 174 963 99T1059 -119Q1059 -301 913 -396T487 -492Q272
--492 156 -412T39 -186Q39 -86 103 -13T283 86Q241 105 213 145T184 238Q184 298 216 343T317 430Q232 465 179 549T125 741Q125 921 233 1018T539 1116Q625 1116 694 1096H1073ZM199 -184Q199 -273 274 -319T489 -365Q698 -365 798 -303T899 -133Q899 -44 844
--10T637 25H438Q325 25 262 -29T199 -184ZM289 745Q289 630 354 571T535 512Q778 512 778 748Q778 995 532 995Q415 995 352 932T289 745Z" />
-<glyph unicode="h" glyph-name="h" horiz-adv-x="1257" d="M926 0V709Q926 843 865 909T674 975Q501 975 422 881T342 573V0H176V1556H342V1085Q342 1000 334 944H344Q393 1023 483 1068T690 1114Q891 1114 991 1019T1092 715V0H926Z" />
-<glyph unicode="i" glyph-name="i" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM162 1393Q162 1450 190 1476T260 1503Q300 1503 329 1476T358 1393Q358 1337 329 1310T260 1282Q218 1282 190 1309T162 1393Z" />
-<glyph unicode="j" glyph-name="j" horiz-adv-x="518" d="M43 -492Q-52 -492 -111 -467V-332Q-42 -352 25 -352Q103 -352 139 -310T176 -180V1096H342V-168Q342 -492 43 -492ZM162 1393Q162 1450 190 1476T260 1503Q300 1503 329 1476T358 1393Q358 1337 329 1310T260
-1282Q218 1282 190 1309T162 1393Z" />
-<glyph unicode="k" glyph-name="k" horiz-adv-x="1075" d="M340 561Q383 622 471 721L825 1096H1022L578 629L1053 0H852L465 518L340 410V0H176V1556H340V731Q340 676 332 561H340Z" />
-<glyph unicode="l" glyph-name="l" horiz-adv-x="518" d="M342 0H176V1556H342V0Z" />
-<glyph unicode="m" glyph-name="m" horiz-adv-x="1905" d="M1573 0V713Q1573 844 1517 909T1343 975Q1188 975 1114 886T1040 612V0H874V713Q874 844 818 909T643 975Q487 975 415 882T342 575V0H176V1096H311L338 946H346Q393 1026 478 1071T670 1116Q927 1116
-1006 930H1014Q1063 1016 1156 1066T1368 1116Q1554 1116 1646 1021T1739 715V0H1573Z" />
-<glyph unicode="n" glyph-name="n" horiz-adv-x="1257" d="M926 0V709Q926 843 865 909T674 975Q502 975 422 882T342 575V0H176V1096H311L338 946H346Q397 1027 489 1071T694 1116Q892 1116 992 1021T1092 715V0H926Z" />
-<glyph unicode="o" glyph-name="o" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950 758 866
-866T616 975Q453 975 370 868T287 549Z" />
-<glyph unicode="p" glyph-name="p" horiz-adv-x="1255" d="M686 -20Q579 -20 491 19T342 141H330Q342 45 342 -41V-492H176V1096H311L334 946H342Q406 1036 491 1076T686 1116Q904 1116 1022 967T1141 549Q1141 279 1021 130T686 -20ZM662 975Q494 975 419 882T342
-586V549Q342 318 419 219T666 119Q808 119 888 234T969 551Q969 756 889 865T662 975Z" />
-<glyph unicode="q" glyph-name="q" horiz-adv-x="1255" d="M590 119Q756 119 832 208T913 508V545Q913 775 835 876T588 977Q442 977 365 864T287 543Q287 336 363 228T590 119ZM565 -20Q353 -20 234 129T115 545Q115 814 235 965T569 1116Q794 1116 915 946H924L948
-1096H1079V-492H913V-23Q913 77 924 147H911Q796 -20 565 -20Z" />
-<glyph unicode="r" glyph-name="r" horiz-adv-x="836" d="M676 1116Q749 1116 807 1104L784 950Q716 965 664 965Q531 965 437 857T342 588V0H176V1096H313L332 893H340Q401 1000 487 1058T676 1116Z" />
-<glyph unicode="s" glyph-name="s" horiz-adv-x="977" d="M883 299Q883 146 769 63T449 -20Q231 -20 109 49V203Q188 163 278 140T453 117Q583 117 653 158T723 285Q723 349 668 394T451 502Q298 559 234 601T138 698T106 827Q106 961 215 1038T514 1116Q691 1116
-860 1044L801 909Q636 977 502 977Q384 977 324 940T264 838Q264 794 286 763T359 704T551 623Q746 552 814 480T883 299Z" />
-<glyph unicode="t" glyph-name="t" horiz-adv-x="723" d="M530 117Q574 117 615 123T680 137V10Q653 -3 601 -11T506 -20Q188 -20 188 315V967H31V1047L188 1116L258 1350H354V1096H672V967H354V322Q354 223 401 170T530 117Z" />
-<glyph unicode="u" glyph-name="u" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332Z" />
-<glyph unicode="v" glyph-name="v" horiz-adv-x="1026" d="M416 0L0 1096H178L414 446Q494 218 508 150H516Q527 203 585 369T848 1096H1026L610 0H416Z" />
-<glyph unicode="w" glyph-name="w" horiz-adv-x="1593" d="M1071 0L870 643Q851 702 799 911H791Q751 736 721 641L514 0H322L23 1096H197Q303 683 358 467T422 176H430Q441 233 465 323T508 467L709 1096H889L1085 467Q1141 295 1161 178H1169Q1173 214 1190
-289T1399 1096H1571L1268 0H1071Z" />
-<glyph unicode="x" glyph-name="x" horiz-adv-x="1073" d="M440 561L59 1096H248L537 676L825 1096H1012L631 561L1032 0H844L537 444L227 0H39L440 561Z" />
-<glyph unicode="y" glyph-name="y" horiz-adv-x="1032" d="M2 1096H180L420 471Q499 257 518 162H526Q539 213 580 336T852 1096H1030L559 -152Q489 -337 396 -414T166 -492Q90 -492 16 -475V-342Q71 -354 139 -354Q310 -354 383 -162L444 -6L2 1096Z" />
-<glyph unicode="z" glyph-name="z" horiz-adv-x="958" d="M877 0H82V113L680 967H119V1096H862V967L272 129H877V0Z" />
-<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="776" d="M475 12Q475 -90 533 -136T705 -184V-324Q515 -322 411 -237T307 2V305Q307 409 244 453T61 498V639Q191 641 249 687T307 829V1135Q307 1290 415 1376T705 1462V1323Q475 1317 475 1124V829Q475
-614 252 575V563Q475 524 475 309V12Z" />
-<glyph unicode="|" glyph-name="bar" horiz-adv-x="1128" d="M494 1556H635V-496H494V1556Z" />
-<glyph unicode="}" glyph-name="braceright" horiz-adv-x="776" d="M522 575Q299 614 299 829V1124Q299 1317 72 1323V1462Q256 1462 361 1375T467 1135V829Q467 732 526 687T715 639V498Q593 498 530 454T467 305V2Q467 -151 365 -236T72 -324V-184Q183 -182
-241 -136T299 12V309Q299 423 354 483T522 563V575Z" />
-<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1171" d="M338 713Q285 713 222 680T104 592V743Q204 852 348 852Q416 852 472 838T618 786Q684 758 733 745T829 731Q883 731 947 763T1065 852V702Q963 592 821 592Q749 592 686 608T551 657Q476 689
-431 701T338 713Z" />
-<glyph unicode="&#xa0;" glyph-name="nbspace" horiz-adv-x="532" />
-<glyph unicode="&#xa1;" glyph-name="exclamdown" horiz-adv-x="547" d="M219 684H324L375 -373H168L219 684ZM393 983Q393 848 272 848Q212 848 182 883T152 983Q152 1046 183 1082T272 1118Q323 1118 358 1086T393 983Z" />
-<glyph unicode="&#xa2;" glyph-name="cent" horiz-adv-x="1171" d="M971 240Q866 186 719 180V-20H586V186Q383 218 287 354T190 741Q190 1249 586 1311V1483H721V1319Q796 1316 867 1300T987 1260L938 1120Q805 1171 696 1171Q524 1171 443 1066T362 743Q362
-531 441 430T688 328Q829 328 971 387V240Z" />
-<glyph unicode="&#xa3;" glyph-name="sterling" horiz-adv-x="1171" d="M682 1481Q872 1481 1042 1397L981 1264Q827 1341 684 1341Q561 1341 499 1279T436 1077V782H858V655H436V434Q436 334 404 266T297 154H1092V0H63V141Q268 188 268 432V655H70V782H268V1098Q268
-1276 380 1378T682 1481Z" />
-<glyph unicode="&#xa4;" glyph-name="currency" horiz-adv-x="1171" d="M184 723Q184 845 258 952L123 1092L217 1184L352 1051Q456 1124 586 1124Q713 1124 815 1051L952 1184L1047 1092L913 954Q987 841 987 723Q987 592 913 489L1044 354L952 262L815 395Q713
-324 586 324Q452 324 352 397L217 264L125 356L258 492Q184 599 184 723ZM313 723Q313 611 391 531T586 451Q702 451 781 530T860 723Q860 837 780 918T586 999Q470 999 392 917T313 723Z" />
-<glyph unicode="&#xa5;" glyph-name="yen" horiz-adv-x="1171" d="M584 735L963 1462H1137L721 692H983V565H666V395H983V268H666V0H502V268H186V395H502V565H186V692H442L31 1462H209L584 735Z" />
-<glyph unicode="&#xa6;" glyph-name="brokenbar" horiz-adv-x="1128" d="M494 1556H635V780H494V1556ZM494 281H635V-496H494V281Z" />
-<glyph unicode="&#xa7;" glyph-name="section" horiz-adv-x="1057" d="M139 809Q139 895 182 963T303 1069Q229 1109 187 1164T145 1305Q145 1426 248 1495T549 1565Q643 1565 722 1551T899 1497L846 1366Q748 1405 681 1418T537 1432Q421 1432 363 1403T305 1309Q305
-1249 366 1207T582 1110Q768 1042 843 967T918 784Q918 694 877 624T762 512Q915 431 915 285Q915 145 798 69T469 -8Q251 -8 123 57V205Q201 168 298 146T477 123Q611 123 681 161T752 270Q752 316 728 345T650 403T481 475Q339 527 272 572T172 674T139 809ZM285
-829Q285 752 351 700T584 586L633 567Q770 647 770 758Q770 841 697 897T438 1010Q370 991 328 941T285 829Z" />
-<glyph unicode="&#xa8;" glyph-name="dieresis" horiz-adv-x="1182" d="M309 1393Q309 1445 335 1468T399 1491Q437 1491 464 1468T492 1393Q492 1343 465 1319T399 1294Q362 1294 336 1318T309 1393ZM690 1393Q690 1445 716 1468T780 1491Q817 1491 844 1468T872
-1393Q872 1343 845 1319T780 1294Q743 1294 717 1318T690 1393Z" />
-<glyph unicode="&#xa9;" glyph-name="copyright" horiz-adv-x="1704" d="M893 1059Q768 1059 701 972T633 731Q633 563 696 482T891 401Q977 401 1102 446V322Q1054 302 1004 288T883 274Q689 274 585 394T481 731Q481 940 591 1063T893 1186Q1021 1186 1139 1126L1081
-1008Q973 1059 893 1059ZM100 731Q100 931 200 1106T475 1382T852 1483Q1052 1483 1227 1383T1503 1108T1604 731Q1604 534 1507 361T1235 84T852 -20Q645 -20 470 83T198 360T100 731ZM205 731Q205 558 292 408T529 171T852 84Q1026 84 1175 171T1411 406T1499
-731Q1499 905 1412 1054T1177 1290T852 1378Q678 1378 529 1291T293 1056T205 731Z" />
-<glyph unicode="&#xaa;" glyph-name="ordfeminine" horiz-adv-x="725" d="M532 801L508 885Q416 788 276 788Q181 788 126 837T70 989Q70 1091 147 1143T389 1202L506 1206V1245Q506 1378 358 1378Q258 1378 154 1327L111 1423Q225 1479 358 1479Q488 1479 556
-1427T625 1253V801H532ZM193 989Q193 889 305 889Q506 889 506 1069V1118L408 1114Q296 1110 245 1082T193 989Z" />
-<glyph unicode="&#xab;" glyph-name="guillemotleft" horiz-adv-x="1018" d="M82 551L424 958L543 889L254 539L543 188L424 117L82 524V551ZM477 551L821 958L938 889L651 539L938 188L821 117L477 524V551Z" />
-<glyph unicode="&#xac;" glyph-name="logicalnot" horiz-adv-x="1171" d="M1065 791V264H928V653H104V791H1065Z" />
-<glyph unicode="&#xad;" glyph-name="uni00AD" horiz-adv-x="659" d="M84 473V625H575V473H84Z" />
-<glyph unicode="&#xae;" glyph-name="registered" horiz-adv-x="1704" d="M723 762H831Q911 762 959 803T1008 909Q1008 984 965 1016T829 1049H723V762ZM1157 913Q1157 833 1115 772T995 680L1233 285H1065L858 639H723V285H575V1176H836Q1002 1176 1079 1111T1157
-913ZM100 731Q100 931 200 1106T475 1382T852 1483Q1052 1483 1227 1383T1503 1108T1604 731Q1604 534 1507 361T1235 84T852 -20Q645 -20 470 83T198 360T100 731ZM205 731Q205 558 292 408T529 171T852 84Q1026 84 1175 171T1411 406T1499 731Q1499 905 1412
-1054T1177 1290T852 1378Q678 1378 529 1291T293 1056T205 731Z" />
-<glyph unicode="&#xaf;" glyph-name="overscore" horiz-adv-x="1024" d="M1030 1556H-6V1683H1030V1556Z" />
-<glyph unicode="&#xb0;" glyph-name="degree" horiz-adv-x="877" d="M127 1171Q127 1301 217 1392T438 1483Q568 1483 659 1393T750 1171Q750 1087 709 1016T595 902T438 860Q308 860 218 950T127 1171ZM242 1171Q242 1089 300 1032T440 975Q520 975 577 1031T635
-1171Q635 1255 579 1311T440 1368Q357 1368 300 1311T242 1171Z" />
-<glyph unicode="&#xb1;" glyph-name="plusminus" horiz-adv-x="1171" d="M653 791H1065V653H653V227H514V653H104V791H514V1219H653V791ZM104 1V139H1065V1H104Z" />
-<glyph unicode="&#xb2;" glyph-name="twosuperior" horiz-adv-x="711" d="M653 586H49V690L285 920Q374 1006 415 1054T472 1141T489 1233Q489 1301 449 1335T346 1370Q294 1370 245 1351T127 1282L61 1370Q192 1481 344 1481Q476 1481 549 1416T623 1239Q623
-1159 579 1084T387 870L213 705H653V586Z" />
-<glyph unicode="&#xb3;" glyph-name="threesuperior" horiz-adv-x="711" d="M627 1255Q627 1175 586 1124T477 1049Q653 1002 653 840Q653 712 561 641T301 569Q149 569 33 625V748Q180 680 303 680Q514 680 514 842Q514 987 283 987H166V1094H285Q388 1094 437
-1133T487 1241Q487 1302 447 1336T340 1370Q274 1370 218 1349T106 1292L37 1382Q100 1427 170 1454T334 1481Q470 1481 548 1422T627 1255Z" />
-<glyph unicode="&#xb4;" glyph-name="acute" horiz-adv-x="1182" d="M393 1266Q441 1328 496 1416T584 1569H786V1548Q742 1483 655 1388T504 1241H393V1266Z" />
-<glyph unicode="&#xb5;" glyph-name="mu" horiz-adv-x="1268" d="M342 381Q342 119 596 119Q767 119 846 213T926 520V1096H1092V0H956L930 147H920Q809 -20 580 -20Q430 -20 342 72H332Q342 -12 342 -172V-492H176V1096H342V381Z" />
-<glyph unicode="&#xb6;" glyph-name="paragraph" horiz-adv-x="1341" d="M1120 -260H1006V1452H793V-260H678V559Q616 541 532 541Q316 541 215 666T113 1042Q113 1302 222 1429T563 1556H1120V-260Z" />
-<glyph unicode="&#xb7;" glyph-name="middot" horiz-adv-x="545" d="M152 723Q152 789 183 823T270 858Q328 858 360 824T393 723Q393 658 360 623T270 588Q219 588 186 619T152 723Z" />
-<glyph unicode="&#xb8;" glyph-name="cedilla" horiz-adv-x="465" d="M436 -289Q436 -386 360 -439T133 -492Q82 -492 37 -483V-377Q82 -385 141 -385Q220 -385 260 -365T301 -291Q301 -248 262 -222T113 -178L201 0H311L256 -115Q436 -154 436 -289Z" />
-<glyph unicode="&#xb9;" glyph-name="onesuperior" horiz-adv-x="711" d="M338 1462H481V586H348V1165Q348 1256 354 1346Q332 1324 305 1302T143 1184L76 1280L338 1462Z" />
-<glyph unicode="&#xba;" glyph-name="ordmasculine" horiz-adv-x="768" d="M702 1135Q702 971 617 880T381 788Q235 788 151 881T66 1135Q66 1298 150 1388T385 1479Q537 1479 619 1388T702 1135ZM188 1135Q188 1013 233 952T383 891Q488 891 534 952T580 1135Q580
-1258 534 1317T383 1376Q280 1376 234 1317T188 1135Z" />
-<glyph unicode="&#xbb;" glyph-name="guillemotright" horiz-adv-x="1018" d="M936 524L592 117L475 188L762 539L475 889L592 958L936 551V524ZM541 524L197 117L80 188L367 539L80 889L197 958L541 551V524Z" />
-<glyph unicode="&#xbc;" glyph-name="onequarter" horiz-adv-x="1597" d="M1298 1462L395 0H252L1155 1462H1298ZM593 1462H736V586H603V1165Q603 1256 609 1346Q587 1324 560 1302T398 1184L331 1280L593 1462ZM1489 203H1364V1H1219V203H817V304L1225 883H1364V320H1489V203ZM1219
-320V515Q1219 649 1225 724Q1220 712 1208 693T1181 651T1151 606T1125 566L957 320H1219Z" />
-<glyph unicode="&#xbd;" glyph-name="onehalf" horiz-adv-x="1597" d="M1230 1462L327 0H184L1087 1462H1230ZM564 1462H707V586H574V1165Q574 1256 580 1346Q558 1324 531 1302T369 1184L302 1280L564 1462ZM1499 1H895V105L1131 335Q1220 421 1261 469T1318
-556T1335 648Q1335 716 1295 750T1192 785Q1140 785 1091 766T973 697L907 785Q1038 896 1190 896Q1322 896 1395 831T1469 654Q1469 574 1425 499T1233 285L1059 120H1499V1Z" />
-<glyph unicode="&#xbe;" glyph-name="threequarters" horiz-adv-x="1597" d="M876 1255Q876 1175 835 1124T726 1049Q902 1002 902 840Q902 712 810 641T550 569Q398 569 282 625V748Q429 680 552 680Q763 680 763 842Q763 987 532 987H415V1094H534Q637 1094
-686 1133T736 1241Q736 1302 696 1336T589 1370Q523 1370 467 1349T355 1292L286 1382Q349 1427 419 1454T583 1481Q719 1481 797 1422T876 1255ZM1390 1462L487 0H344L1247 1462H1390ZM1569 203H1444V1H1299V203H897V304L1305 883H1444V320H1569V203ZM1299 320V515Q1299
-649 1305 724Q1300 712 1288 693T1261 651T1231 606T1205 566L1037 320H1299Z" />
-<glyph unicode="&#xbf;" glyph-name="questiondown" horiz-adv-x="879" d="M590 684V633Q590 511 553 437T418 279Q297 173 267 136T224 60T211 -35Q211 -135 277 -191T465 -248Q545 -248 620 -229T793 -162L852 -297Q655 -393 457 -393Q267 -393 159 -300T51
--37Q51 33 68 85T118 182T194 268T293 356Q394 444 426 502T459 653V684H590ZM639 983Q639 848 518 848Q459 848 428 882T397 983Q397 1047 430 1082T518 1118Q569 1118 604 1086T639 983Z" />
-<glyph unicode="&#xc0;" glyph-name="Agrave" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM724 1579H614Q549 1631 460 1727T331 1886V1907H534Q566 1838
-623 1748T724 1604V1579Z" />
-<glyph unicode="&#xc1;" glyph-name="Aacute" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM526 1604Q574 1666 629 1754T717 1907H919V1886Q875 1821 788
-1726T637 1579H526V1604Z" />
-<glyph unicode="&#xc2;" glyph-name="Acircumflex" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM303 1602Q430 1738 481 1802T555 1907H721Q743 1865 797
-1799T977 1602V1579H858Q770 1634 637 1765Q501 1631 418 1579H303V1602Z" />
-<glyph unicode="&#xc3;" glyph-name="Atilde" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM792 1581Q749 1581 708 1599T628 1640T552 1681T481 1700Q431
-1700 406 1670T366 1579H268Q281 1700 338 1768T487 1837Q533 1837 576 1819T658 1778T733 1737T801 1718Q850 1718 874 1747T913 1839H1012Q999 1718 943 1650T792 1581Z" />
-<glyph unicode="&#xc4;" glyph-name="Adieresis" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM364 1731Q364 1783 390 1806T454 1829Q492 1829 519 1806T547
-1731Q547 1681 520 1657T454 1632Q417 1632 391 1656T364 1731ZM745 1731Q745 1783 771 1806T835 1829Q872 1829 899 1806T927 1731Q927 1681 900 1657T835 1632Q798 1632 772 1656T745 1731Z" />
-<glyph unicode="&#xc5;" glyph-name="Aring" horiz-adv-x="1296" d="M1120 0L938 465H352L172 0H0L578 1468H721L1296 0H1120ZM885 618L715 1071Q682 1157 647 1282Q625 1186 584 1071L412 618H885ZM870 1587Q870 1489 809 1430T645 1370Q544 1370 484 1428T424
-1585Q424 1683 484 1740T645 1798Q746 1798 808 1739T870 1587ZM762 1585Q762 1641 729 1671T645 1702Q594 1702 561 1672T528 1585Q528 1529 558 1499T645 1468Q697 1468 729 1498T762 1585Z" />
-<glyph unicode="&#xc6;" glyph-name="AE" horiz-adv-x="1788" d="M1665 0H915V465H401L174 0H-2L696 1462H1665V1311H1085V840H1626V690H1085V152H1665V0ZM469 618H915V1311H797L469 618Z" />
-<glyph unicode="&#xc7;" glyph-name="Ccedilla" horiz-adv-x="1292" d="M827 1331Q586 1331 447 1171T307 731Q307 444 441 288T825 131Q978 131 1174 186V37Q1022 -20 799 -20Q476 -20 301 176T125 733Q125 959 209 1129T453 1391T829 1483Q1059 1483 1231 1399L1159
-1253Q993 1331 827 1331ZM950 -289Q950 -386 874 -439T647 -492Q596 -492 551 -483V-377Q596 -385 655 -385Q734 -385 774 -365T815 -291Q815 -248 776 -222T627 -178L715 0H825L770 -115Q950 -154 950 -289Z" />
-<glyph unicode="&#xc8;" glyph-name="Egrave" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM713 1579H603Q538 1631 449 1727T320 1886V1907H523Q555 1838 612 1748T713 1604V1579Z" />
-<glyph unicode="&#xc9;" glyph-name="Eacute" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM456 1604Q504 1666 559 1754T647 1907H849V1886Q805 1821 718 1726T567 1579H456V1604Z" />
-<glyph unicode="&#xca;" glyph-name="Ecircumflex" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM263 1602Q390 1738 441 1802T515 1907H681Q703 1865 757 1799T937 1602V1579H818Q730 1634 597 1765Q461 1631 378 1579H263V1602Z" />
-<glyph unicode="&#xcb;" glyph-name="Edieresis" horiz-adv-x="1139" d="M1016 0H201V1462H1016V1311H371V840H977V690H371V152H1016V0ZM327 1731Q327 1783 353 1806T417 1829Q455 1829 482 1806T510 1731Q510 1681 483 1657T417 1632Q380 1632 354 1656T327 1731ZM708
-1731Q708 1783 734 1806T798 1829Q835 1829 862 1806T890 1731Q890 1681 863 1657T798 1632Q761 1632 735 1656T708 1731Z" />
-<glyph unicode="&#xcc;" glyph-name="Igrave" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM398 1579H288Q223 1631 134 1727T5 1886V1907H208Q240 1838 297 1748T398 1604V1579Z" />
-<glyph unicode="&#xcd;" glyph-name="Iacute" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM179 1604Q227 1666 282 1754T370 1907H572V1886Q528 1821 441 1726T290 1579H179V1604Z" />
-<glyph unicode="&#xce;" glyph-name="Icircumflex" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM-57 1602Q70 1738 121 1802T195 1907H361Q383 1865 437 1799T617 1602V1579H498Q410 1634 277 1765Q141 1631 58 1579H-57V1602Z" />
-<glyph unicode="&#xcf;" glyph-name="Idieresis" horiz-adv-x="571" d="M201 0V1462H371V0H201ZM5 1731Q5 1783 31 1806T95 1829Q133 1829 160 1806T188 1731Q188 1681 161 1657T95 1632Q58 1632 32 1656T5 1731ZM386 1731Q386 1783 412 1806T476 1829Q513 1829
-540 1806T568 1731Q568 1681 541 1657T476 1632Q439 1632 413 1656T386 1731Z" />
-<glyph unicode="&#xd0;" glyph-name="Eth" horiz-adv-x="1479" d="M1352 745Q1352 383 1156 192T590 0H201V649H47V799H201V1462H635Q972 1462 1162 1275T1352 745ZM1171 739Q1171 1315 602 1315H371V799H750V649H371V147H561Q1171 147 1171 739Z" />
-<glyph unicode="&#xd1;" glyph-name="Ntilde" horiz-adv-x="1544" d="M1343 0H1149L350 1227H342Q358 1011 358 831V0H201V1462H393L1190 240H1198Q1196 267 1189 413T1184 623V1462H1343V0ZM935 1581Q892 1581 851 1599T771 1640T695 1681T624 1700Q574 1700
-549 1670T509 1579H411Q424 1700 481 1768T630 1837Q676 1837 719 1819T801 1778T876 1737T944 1718Q993 1718 1017 1747T1056 1839H1155Q1142 1718 1086 1650T935 1581Z" />
-<glyph unicode="&#xd2;" glyph-name="Ograve" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290
-1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM907 1579H797Q732 1631 643 1727T514 1886V1907H717Q749 1838 806 1748T907 1604V1579Z" />
-<glyph unicode="&#xd3;" glyph-name="Oacute" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290
-1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM659 1604Q707 1666 762 1754T850 1907H1052V1886Q1008 1821 921 1726T770 1579H659V1604Z" />
-<glyph unicode="&#xd4;" glyph-name="Ocircumflex" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290
-733Q1290 1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM448 1602Q575 1738 626 1802T700 1907H866Q888 1865 942 1799T1122 1602V1579H1003Q915 1634 782 1765Q646 1631 563 1579H448V1602Z" />
-<glyph unicode="&#xd5;" glyph-name="Otilde" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290 733Q1290
-1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM942 1581Q899 1581 858 1599T778 1640T702 1681T631 1700Q581 1700 556 1670T516 1579H418Q431 1700 488 1768T637 1837Q683 1837 726 1819T808 1778T883 1737T951 1718Q1000 1718 1024 1747T1063 1839H1162Q1149
-1718 1093 1650T942 1581Z" />
-<glyph unicode="&#xd6;" glyph-name="Odieresis" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q476 -20 301 177T125 735Q125 1092 301 1288T801 1485Q1116 1485 1293 1285T1470 733ZM305 733Q305 436 431 283T799 129Q1042 129 1166 282T1290
-733Q1290 1028 1167 1180T801 1333Q558 1333 432 1180T305 733ZM522 1731Q522 1783 548 1806T612 1829Q650 1829 677 1806T705 1731Q705 1681 678 1657T612 1632Q575 1632 549 1656T522 1731ZM903 1731Q903 1783 929 1806T993 1829Q1030 1829 1057 1806T1085 1731Q1085
-1681 1058 1657T993 1632Q956 1632 930 1656T903 1731Z" />
-<glyph unicode="&#xd7;" glyph-name="multiply" horiz-adv-x="1171" d="M940 1176L1036 1077L684 723L1034 371L938 272L584 623L236 272L135 371L485 723L133 1075L233 1176L586 821L940 1176Z" />
-<glyph unicode="&#xd8;" glyph-name="Oslash" horiz-adv-x="1595" d="M1470 733Q1470 382 1293 181T799 -20Q564 -20 416 80L315 -61L195 18L303 172Q125 370 125 735Q125 1092 301 1288T801 1485Q1010 1485 1167 1391L1264 1526L1384 1446L1278 1298Q1470 1096
-1470 733ZM1290 733Q1290 1005 1180 1159L508 211Q623 129 799 129Q1042 129 1166 282T1290 733ZM305 733Q305 471 406 317L1075 1260Q969 1333 801 1333Q558 1333 432 1180T305 733Z" />
-<glyph unicode="&#xd9;" glyph-name="Ugrave" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM856 1579H746Q681 1631 592 1727T463 1886V1907H666Q698
-1838 755 1748T856 1604V1579Z" />
-<glyph unicode="&#xda;" glyph-name="Uacute" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM600 1604Q648 1666 703 1754T791 1907H993V1886Q949
-1821 862 1726T711 1579H600V1604Z" />
-<glyph unicode="&#xdb;" glyph-name="Ucircumflex" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM393 1602Q520 1738 571 1802T645
-1907H811Q833 1865 887 1799T1067 1602V1579H948Q860 1634 727 1765Q591 1631 508 1579H393V1602Z" />
-<glyph unicode="&#xdc;" glyph-name="Udieresis" horiz-adv-x="1491" d="M1305 1462V516Q1305 266 1154 123T739 -20Q475 -20 331 124T186 520V1462H356V508Q356 325 456 227T750 129Q935 129 1035 227T1135 510V1462H1305ZM461 1731Q461 1783 487 1806T551 1829Q589
-1829 616 1806T644 1731Q644 1681 617 1657T551 1632Q514 1632 488 1656T461 1731ZM842 1731Q842 1783 868 1806T932 1829Q969 1829 996 1806T1024 1731Q1024 1681 997 1657T932 1632Q895 1632 869 1656T842 1731Z" />
-<glyph unicode="&#xdd;" glyph-name="Yacute" horiz-adv-x="1147" d="M573 731L963 1462H1147L659 567V0H487V559L0 1462H186L573 731ZM442 1604Q490 1666 545 1754T633 1907H835V1886Q791 1821 704 1726T553 1579H442V1604Z" />
-<glyph unicode="&#xde;" glyph-name="Thorn" horiz-adv-x="1251" d="M1145 784Q1145 557 994 438T555 319H371V0H201V1462H371V1206H586Q867 1206 1006 1103T1145 784ZM371 465H539Q765 465 866 536T967 772Q967 921 872 990T575 1059H371V465Z" />
-<glyph unicode="&#xdf;" glyph-name="germandbls" horiz-adv-x="1274" d="M1049 1266Q1049 1131 906 1016Q818 946 790 913T762 846Q762 814 775 793T824 744T938 664Q1078 569 1129 491T1180 311Q1180 151 1083 66T807 -20Q619 -20 512 49V203Q575 164 653 141T803
-117Q1018 117 1018 299Q1018 374 977 427T825 551Q698 633 650 694T602 840Q602 903 636 956T742 1062Q817 1119 849 1164T881 1262Q881 1342 813 1384T618 1427Q342 1427 342 1204V0H176V1202Q176 1380 286 1473T618 1567Q824 1567 936 1489T1049 1266Z" />
-<glyph unicode="&#xe0;" glyph-name="agrave" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114
-878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM928 1241H818Q753 1293 664 1389T535 1548V1569H738Q770 1500 827 1410T928 1266V1241Z" />
-<glyph unicode="&#xe1;" glyph-name="aacute" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114
-878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM436 1266Q484 1328 539 1416T627 1569H829V1548Q785 1483 698 1388T547 1241H436V1266Z" />
-<glyph unicode="&#xe2;" glyph-name="acircumflex" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784
-1114 878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM484 1264Q611 1400 662 1464T736 1569H902Q924 1527 978 1461T1158 1264V1241H1039Q951 1296 818 1427Q682 1293 599 1241H484V1264Z"
-/>
-<glyph unicode="&#xe3;" glyph-name="atilde" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114
-878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM977 1243Q934 1243 893 1261T813 1302T737 1343T666 1362Q616 1362 591 1332T551 1241H453Q466 1362 523 1430T672 1499Q718 1499 761
-1481T843 1440T918 1399T986 1380Q1035 1380 1059 1409T1098 1501H1197Q1184 1380 1128 1312T977 1243Z" />
-<glyph unicode="&#xe4;" glyph-name="adieresis" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114
-878 1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM535 1393Q535 1445 561 1468T625 1491Q663 1491 690 1468T718 1393Q718 1343 691 1319T625 1294Q588 1294 562 1318T535 1393ZM916 1393Q916
-1445 942 1468T1006 1491Q1043 1491 1070 1468T1098 1393Q1098 1343 1071 1319T1006 1294Q969 1294 943 1318T916 1393Z" />
-<glyph unicode="&#xe5;" glyph-name="aring" horiz-adv-x="1139" d="M850 0L817 156H809Q727 53 646 17T442 -20Q279 -20 187 64T94 303Q94 635 625 651L811 657V725Q811 854 756 915T578 977Q441 977 268 893L217 1020Q298 1064 394 1089T588 1114Q784 1114 878
-1027T973 748V0H850ZM475 117Q630 117 718 202T807 440V539L641 532Q443 525 356 471T268 301Q268 211 322 164T475 117ZM1060 1458Q1060 1360 999 1301T835 1241Q734 1241 674 1299T614 1456Q614 1554 674 1611T835 1669Q936 1669 998 1610T1060 1458ZM952 1456Q952
-1512 919 1542T835 1573Q784 1573 751 1543T718 1456Q718 1400 748 1370T835 1339Q887 1339 919 1369T952 1456Z" />
-<glyph unicode="&#xe6;" glyph-name="ae" horiz-adv-x="1757" d="M94 303Q94 464 218 553T596 651L780 657V725Q780 854 722 915T545 977Q401 977 238 893L186 1020Q260 1061 359 1087T557 1114Q687 1114 769 1071T893 932Q946 1020 1031 1068T1227 1116Q1419
-1116 1535 983T1651 627V520H950Q958 125 1272 125Q1363 125 1441 142T1604 199V51Q1518 13 1444 -3T1268 -20Q979 -20 854 213Q773 86 675 33T442 -20Q279 -20 187 65T94 303ZM268 301Q268 206 321 162T463 117Q608 117 692 201T776 440V539L618 532Q432 524 350
-470T268 301ZM1225 977Q1104 977 1035 894T954 653H1473Q1473 809 1409 893T1225 977Z" />
-<glyph unicode="&#xe7;" glyph-name="ccedilla" horiz-adv-x="975" d="M614 -20Q376 -20 246 126T115 541Q115 816 247 966T625 1116Q704 1116 783 1099T907 1059L856 918Q801 940 736 954T621 969Q287 969 287 543Q287 341 368 233T610 125Q747 125 891 184V37Q781
--20 614 -20ZM762 -289Q762 -386 686 -439T459 -492Q408 -492 363 -483V-377Q408 -385 467 -385Q546 -385 586 -365T627 -291Q627 -248 588 -222T439 -178L527 0H637L582 -115Q762 -154 762 -289Z" />
-<glyph unicode="&#xe8;" glyph-name="egrave" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 384
-891T291 653H864Q864 810 794 893T594 977ZM967 1241H857Q792 1293 703 1389T574 1548V1569H777Q809 1500 866 1410T967 1266V1241Z" />
-<glyph unicode="&#xe9;" glyph-name="eacute" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977 384
-891T291 653H864Q864 810 794 893T594 977ZM471 1266Q519 1328 574 1416T662 1569H864V1548Q820 1483 733 1388T582 1241H471V1266Z" />
-<glyph unicode="&#xea;" glyph-name="ecircumflex" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462
-977 384 891T291 653H864Q864 810 794 893T594 977ZM515 1264Q642 1400 693 1464T767 1569H933Q955 1527 1009 1461T1189 1264V1241H1070Q982 1296 849 1427Q713 1293 630 1241H515V1264Z" />
-<glyph unicode="&#xeb;" glyph-name="edieresis" horiz-adv-x="1149" d="M639 -20Q396 -20 256 128T115 539Q115 804 245 960T596 1116Q802 1116 922 981T1042 623V518H287Q292 325 384 225T645 125Q822 125 995 199V51Q907 13 829 -3T639 -20ZM594 977Q462 977
-384 891T291 653H864Q864 810 794 893T594 977ZM319 1393Q319 1445 345 1468T409 1491Q447 1491 474 1468T502 1393Q502 1343 475 1319T409 1294Q372 1294 346 1318T319 1393ZM700 1393Q700 1445 726 1468T790 1491Q827 1491 854 1468T882 1393Q882 1343 855 1319T790
-1294Q753 1294 727 1318T700 1393Z" />
-<glyph unicode="&#xec;" glyph-name="igrave" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM355 1241H245Q180 1293 91 1389T-38 1548V1569H165Q197 1500 254 1410T355 1266V1241Z" />
-<glyph unicode="&#xed;" glyph-name="iacute" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM169 1266Q217 1328 272 1416T360 1569H562V1548Q518 1483 431 1388T280 1241H169V1266Z" />
-<glyph unicode="&#xee;" glyph-name="icircumflex" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM-77 1264Q50 1400 101 1464T175 1569H341Q363 1527 417 1461T597 1264V1241H478Q390 1296 257 1427Q121 1293 38 1241H-77V1264Z" />
-<glyph unicode="&#xef;" glyph-name="idieresis" horiz-adv-x="518" d="M342 0H176V1096H342V0ZM-20 1393Q-20 1445 6 1468T70 1491Q108 1491 135 1468T163 1393Q163 1343 136 1319T70 1294Q33 1294 7 1318T-20 1393ZM361 1393Q361 1445 387 1468T451 1491Q488
-1491 515 1468T543 1393Q543 1343 516 1319T451 1294Q414 1294 388 1318T361 1393Z" />
-<glyph unicode="&#xf0;" glyph-name="eth" horiz-adv-x="1221" d="M1122 563Q1122 282 992 131T614 -20Q392 -20 253 114T113 475Q113 705 244 836T596 967Q822 967 922 846L930 850Q873 1064 668 1255L397 1100L324 1208L557 1341Q465 1403 371 1452L440 1569Q596
-1496 698 1421L936 1559L1012 1452L805 1333Q957 1190 1039 991T1122 563ZM954 512Q954 659 864 744T618 829Q281 829 281 469Q281 302 368 211T618 119Q793 119 873 219T954 512Z" />
-<glyph unicode="&#xf1;" glyph-name="ntilde" horiz-adv-x="1257" d="M926 0V709Q926 843 865 909T674 975Q502 975 422 882T342 575V0H176V1096H311L338 946H346Q397 1027 489 1071T694 1116Q892 1116 992 1021T1092 715V0H926ZM802 1243Q759 1243 718 1261T638
-1302T562 1343T491 1362Q441 1362 416 1332T376 1241H278Q291 1362 348 1430T497 1499Q543 1499 586 1481T668 1440T743 1399T811 1380Q860 1380 884 1409T923 1501H1022Q1009 1380 953 1312T802 1243Z" />
-<glyph unicode="&#xf2;" glyph-name="ograve" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950
-758 866 866T616 975Q453 975 370 868T287 549ZM998 1241H888Q823 1293 734 1389T605 1548V1569H808Q840 1500 897 1410T998 1266V1241Z" />
-<glyph unicode="&#xf3;" glyph-name="oacute" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950
-758 866 866T616 975Q453 975 370 868T287 549ZM479 1266Q527 1328 582 1416T670 1569H872V1548Q828 1483 741 1388T590 1241H479V1266Z" />
-<glyph unicode="&#xf4;" glyph-name="ocircumflex" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950
-549Q950 758 866 866T616 975Q453 975 370 868T287 549ZM282 1264Q409 1400 460 1464T534 1569H700Q722 1527 776 1461T956 1264V1241H837Q749 1296 616 1427Q480 1293 397 1241H282V1264Z" />
-<glyph unicode="&#xf5;" glyph-name="otilde" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950
-758 866 866T616 975Q453 975 370 868T287 549ZM1029 1243Q986 1243 945 1261T865 1302T789 1343T718 1362Q668 1362 643 1332T603 1241H505Q518 1362 575 1430T724 1499Q770 1499 813 1481T895 1440T970 1399T1038 1380Q1087 1380 1111 1409T1150 1501H1249Q1236
-1380 1180 1312T1029 1243Z" />
-<glyph unicode="&#xf6;" glyph-name="odieresis" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q467 -20 353 49T177 247T115 549Q115 817 249 966T621 1116Q851 1116 986 963T1122 549ZM287 549Q287 339 371 229T618 119Q781 119 865 228T950 549Q950
-758 866 866T616 975Q453 975 370 868T287 549ZM336 1393Q336 1445 362 1468T426 1491Q464 1491 491 1468T519 1393Q519 1343 492 1319T426 1294Q389 1294 363 1318T336 1393ZM717 1393Q717 1445 743 1468T807 1491Q844 1491 871 1468T899 1393Q899 1343 872 1319T807
-1294Q770 1294 744 1318T717 1393Z" />
-<glyph unicode="&#xf7;" glyph-name="divide" horiz-adv-x="1171" d="M104 653V791H1065V653H104ZM471 373Q471 433 500 463T584 494Q636 494 665 463T694 373Q694 316 665 284T584 252Q532 252 502 283T471 373ZM471 1071Q471 1131 500 1161T584 1192Q636 1192
-665 1161T694 1071Q694 1014 665 982T584 950Q532 950 502 981T471 1071Z" />
-<glyph unicode="&#xf8;" glyph-name="oslash" horiz-adv-x="1237" d="M1122 549Q1122 281 987 131T614 -20Q460 -20 348 49L264 -68L150 10L244 141Q115 293 115 549Q115 817 249 966T621 1116Q775 1116 891 1040L975 1159L1092 1083L995 950Q1122 798 1122 549ZM287
-549Q287 378 340 276L805 922Q730 975 616 975Q453 975 370 868T287 549ZM950 549Q950 713 899 813L434 170Q505 119 618 119Q781 119 865 228T950 549Z" />
-<glyph unicode="&#xf9;" glyph-name="ugrave" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM982 1241H872Q807 1293 718 1389T589
-1548V1569H792Q824 1500 881 1410T982 1266V1241Z" />
-<glyph unicode="&#xfa;" glyph-name="uacute" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM506 1266Q554 1328 609 1416T697
-1569H899V1548Q855 1483 768 1388T617 1241H506V1266Z" />
-<glyph unicode="&#xfb;" glyph-name="ucircumflex" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM286 1264Q413 1400 464 1464T538
-1569H704Q726 1527 780 1461T960 1264V1241H841Q753 1296 620 1427Q484 1293 401 1241H286V1264Z" />
-<glyph unicode="&#xfc;" glyph-name="udieresis" horiz-adv-x="1257" d="M332 1096V385Q332 251 393 185T584 119Q756 119 835 213T915 520V1096H1081V0H944L920 147H911Q860 66 770 23T563 -20Q363 -20 264 75T164 379V1096H332ZM342 1393Q342 1445 368 1468T432
-1491Q470 1491 497 1468T525 1393Q525 1343 498 1319T432 1294Q395 1294 369 1318T342 1393ZM723 1393Q723 1445 749 1468T813 1491Q850 1491 877 1468T905 1393Q905 1343 878 1319T813 1294Q776 1294 750 1318T723 1393Z" />
-<glyph unicode="&#xfd;" glyph-name="yacute" horiz-adv-x="1032" d="M2 1096H180L420 471Q499 257 518 162H526Q539 213 580 336T852 1096H1030L559 -152Q489 -337 396 -414T166 -492Q90 -492 16 -475V-342Q71 -354 139 -354Q310 -354 383 -162L444 -6L2 1096ZM411
-1266Q459 1328 514 1416T602 1569H804V1548Q760 1483 673 1388T522 1241H411V1266Z" />
-<glyph unicode="&#xfe;" glyph-name="thorn" horiz-adv-x="1255" d="M344 948Q410 1037 495 1076T686 1116Q901 1116 1021 966T1141 549Q1141 281 1021 131T686 -20Q464 -20 342 141H330L334 107Q342 30 342 -33V-492H176V1556H342V1090Q342 1038 336 948H344ZM664
-975Q496 975 420 883T342 590V549Q342 318 419 219T666 119Q969 119 969 551Q969 766 895 870T664 975Z" />
-<glyph unicode="&#xff;" glyph-name="ydieresis" horiz-adv-x="1032" d="M2 1096H180L420 471Q499 257 518 162H526Q539 213 580 336T852 1096H1030L559 -152Q489 -337 396 -414T166 -492Q90 -492 16 -475V-342Q71 -354 139 -354Q310 -354 383 -162L444 -6L2 1096ZM490
-1393Q490 1445 516 1468T580 1491Q618 1491 645 1468T673 1393Q673 1343 646 1319T580 1294Q543 1294 517 1318T490 1393ZM871 1393Q871 1445 897 1468T961 1491Q998 1491 1025 1468T1053 1393Q1053 1343 1026 1319T961 1294Q924 1294 898 1318T871 1393Z" />
-<glyph unicode="&#x2013;" glyph-name="endash" horiz-adv-x="1024" d="M82 473V625H942V473H82Z" />
-<glyph unicode="&#x2014;" glyph-name="emdash" horiz-adv-x="2048" d="M82 473V625H1966V473H82Z" />
-<glyph unicode="&#x2018;" glyph-name="quoteleft" horiz-adv-x="348" d="M37 961L25 983Q47 1073 96 1207T201 1462H324Q258 1208 221 961H37Z" />
-<glyph unicode="&#x2019;" glyph-name="quoteright" horiz-adv-x="348" d="M309 1462L324 1440Q298 1340 249 1208T147 961H25Q95 1246 127 1462H309Z" />
-<glyph unicode="&#x201a;" glyph-name="quotesinglbase" horiz-adv-x="502" d="M350 238L365 215Q339 115 290 -17T188 -264H63Q90 -160 122 -7T168 238H350Z" />
-<glyph unicode="&#x201c;" glyph-name="quotedblleft" horiz-adv-x="717" d="M406 961L391 983Q447 1198 569 1462H692Q662 1347 633 1203T590 961H406ZM37 961L25 983Q47 1073 96 1207T201 1462H324Q258 1208 221 961H37Z" />
-<glyph unicode="&#x201d;" glyph-name="quotedblright" horiz-adv-x="717" d="M309 1462L324 1440Q298 1340 249 1208T147 961H25Q95 1246 127 1462H309ZM678 1462L692 1440Q668 1349 620 1216T516 961H391Q417 1061 450 1215T496 1462H678Z" />
-<glyph unicode="&#x201e;" glyph-name="quotedblbase" horiz-adv-x="829" d="M309 238L324 216Q298 116 249 -16T147 -263H25Q95 22 127 238H309ZM678 238L692 216Q668 125 620 -8T516 -263H391Q417 -163 450 -9T496 238H678Z" />
-<glyph unicode="&#x2022;" glyph-name="bullet" horiz-adv-x="770" d="M164 748Q164 869 220 932T385 995Q490 995 548 933T606 748Q606 629 549 565T385 500Q278 500 221 565T164 748Z" />
-<glyph unicode="&#x2039;" glyph-name="guilsinglleft" horiz-adv-x="623" d="M82 551L424 958L543 889L254 539L543 188L424 117L82 524V551Z" />
-<glyph unicode="&#x203a;" glyph-name="guilsinglright" horiz-adv-x="623" d="M541 524L197 117L80 188L367 539L80 889L197 958L541 551V524Z" />
-<hkern g1="quotedbl" g2="A" k="143" />
-<hkern g1="quotedbl" g2="T" k="-41" />
-<hkern g1="quotedbl" g2="V" k="-41" />
-<hkern g1="quotedbl" g2="W" k="-41" />
-<hkern g1="quotedbl" g2="Y" k="-20" />
-<hkern g1="quotedbl" g2="a" k="82" />
-<hkern g1="quotedbl" g2="c" k="123" />
-<hkern g1="quotedbl" g2="d" k="123" />
-<hkern g1="quotedbl" g2="e" k="123" />
-<hkern g1="quotedbl" g2="g" k="61" />
-<hkern g1="quotedbl" g2="m" k="61" />
-<hkern g1="quotedbl" g2="n" k="61" />
-<hkern g1="quotedbl" g2="o" k="123" />
-<hkern g1="quotedbl" g2="p" k="61" />
-<hkern g1="quotedbl" g2="q" k="123" />
-<hkern g1="quotedbl" g2="r" k="61" />
-<hkern g1="quotedbl" g2="s" k="61" />
-<hkern g1="quotedbl" g2="u" k="61" />
-<hkern g1="quotedbl" g2="Agrave" k="143" />
-<hkern g1="quotedbl" g2="Aacute" k="143" />
-<hkern g1="quotedbl" g2="Acircumflex" k="143" />
-<hkern g1="quotedbl" g2="Atilde" k="143" />
-<hkern g1="quotedbl" g2="Adieresis" k="143" />
-<hkern g1="quotedbl" g2="Aring" k="143" />
-<hkern g1="quotedbl" g2="Yacute" k="-20" />
-<hkern g1="quotedbl" g2="agrave" k="123" />
-<hkern g1="quotedbl" g2="aacute" k="82" />
-<hkern g1="quotedbl" g2="acircumflex" k="82" />
-<hkern g1="quotedbl" g2="atilde" k="82" />
-<hkern g1="quotedbl" g2="adieresis" k="82" />
-<hkern g1="quotedbl" g2="aring" k="82" />
-<hkern g1="quotedbl" g2="ae" k="82" />
-<hkern g1="quotedbl" g2="ccedilla" k="123" />
-<hkern g1="quotedbl" g2="egrave" k="123" />
-<hkern g1="quotedbl" g2="eacute" k="123" />
-<hkern g1="quotedbl" g2="ecircumflex" k="123" />
-<hkern g1="quotedbl" g2="edieresis" k="123" />
-<hkern g1="quotedbl" g2="ograve" k="123" />
-<hkern g1="quotedbl" g2="oacute" k="123" />
-<hkern g1="quotedbl" g2="ocircumflex" k="123" />
-<hkern g1="quotedbl" g2="otilde" k="123" />
-<hkern g1="quotedbl" g2="odieresis" k="123" />
-<hkern g1="quotedbl" g2="oslash" k="123" />
-<hkern g1="quotedbl" g2="ugrave" k="61" />
-<hkern g1="quotedbl" g2="uacute" k="61" />
-<hkern g1="quotedbl" g2="ucircumflex" k="61" />
-<hkern g1="quotedbl" g2="udieresis" k="61" />
-<hkern g1="quotedbl" g2="oe" k="123" />
-<hkern g1="quotesingle" g2="A" k="143" />
-<hkern g1="quotesingle" g2="T" k="-41" />
-<hkern g1="quotesingle" g2="V" k="-41" />
-<hkern g1="quotesingle" g2="W" k="-41" />
-<hkern g1="quotesingle" g2="Y" k="-20" />
-<hkern g1="quotesingle" g2="a" k="82" />
-<hkern g1="quotesingle" g2="c" k="123" />
-<hkern g1="quotesingle" g2="d" k="123" />
-<hkern g1="quotesingle" g2="e" k="123" />
-<hkern g1="quotesingle" g2="g" k="61" />
-<hkern g1="quotesingle" g2="m" k="61" />
-<hkern g1="quotesingle" g2="n" k="61" />
-<hkern g1="quotesingle" g2="o" k="123" />
-<hkern g1="quotesingle" g2="p" k="61" />
-<hkern g1="quotesingle" g2="q" k="123" />
-<hkern g1="quotesingle" g2="r" k="61" />
-<hkern g1="quotesingle" g2="s" k="61" />
-<hkern g1="quotesingle" g2="u" k="61" />
-<hkern g1="quotesingle" g2="Agrave" k="143" />
-<hkern g1="quotesingle" g2="Aacute" k="143" />
-<hkern g1="quotesingle" g2="Acircumflex" k="143" />
-<hkern g1="quotesingle" g2="Atilde" k="143" />
-<hkern g1="quotesingle" g2="Adieresis" k="143" />
-<hkern g1="quotesingle" g2="Aring" k="143" />
-<hkern g1="quotesingle" g2="Yacute" k="-20" />
-<hkern g1="quotesingle" g2="agrave" k="123" />
-<hkern g1="quotesingle" g2="aacute" k="82" />
-<hkern g1="quotesingle" g2="acircumflex" k="82" />
-<hkern g1="quotesingle" g2="atilde" k="82" />
-<hkern g1="quotesingle" g2="adieresis" k="82" />
-<hkern g1="quotesingle" g2="aring" k="82" />
-<hkern g1="quotesingle" g2="ae" k="82" />
-<hkern g1="quotesingle" g2="ccedilla" k="123" />
-<hkern g1="quotesingle" g2="egrave" k="123" />
-<hkern g1="quotesingle" g2="eacute" k="123" />
-<hkern g1="quotesingle" g2="ecircumflex" k="123" />
-<hkern g1="quotesingle" g2="edieresis" k="123" />
-<hkern g1="quotesingle" g2="ograve" k="123" />
-<hkern g1="quotesingle" g2="oacute" k="123" />
-<hkern g1="quotesingle" g2="ocircumflex" k="123" />
-<hkern g1="quotesingle" g2="otilde" k="123" />
-<hkern g1="quotesingle" g2="odieresis" k="123" />
-<hkern g1="quotesingle" g2="oslash" k="123" />
-<hkern g1="quotesingle" g2="ugrave" k="61" />
-<hkern g1="quotesingle" g2="uacute" k="61" />
-<hkern g1="quotesingle" g2="ucircumflex" k="61" />
-<hkern g1="quotesingle" g2="udieresis" k="61" />
-<hkern g1="quotesingle" g2="oe" k="123" />
-<hkern g1="parenleft" g2="J" k="-184" />
-<hkern g1="comma" g2="C" k="102" />
-<hkern g1="comma" g2="G" k="102" />
-<hkern g1="comma" g2="O" k="102" />
-<hkern g1="comma" g2="Q" k="102" />
-<hkern g1="comma" g2="T" k="143" />
-<hkern g1="comma" g2="U" k="41" />
-<hkern g1="comma" g2="V" k="123" />
-<hkern g1="comma" g2="W" k="123" />
-<hkern g1="comma" g2="Y" k="123" />
-<hkern g1="comma" g2="Ccedilla" k="102" />
-<hkern g1="comma" g2="Ograve" k="102" />
-<hkern g1="comma" g2="Oacute" k="102" />
-<hkern g1="comma" g2="Ocircumflex" k="102" />
-<hkern g1="comma" g2="Otilde" k="102" />
-<hkern g1="comma" g2="Odieresis" k="102" />
-<hkern g1="comma" g2="Oslash" k="102" />
-<hkern g1="comma" g2="Ugrave" k="41" />
-<hkern g1="comma" g2="Uacute" k="41" />
-<hkern g1="comma" g2="Ucircumflex" k="41" />
-<hkern g1="comma" g2="Udieresis" k="41" />
-<hkern g1="comma" g2="Yacute" k="123" />
-<hkern g1="comma" g2="OE" k="102" />
-<hkern g1="hyphen" g2="T" k="82" />
-<hkern g1="period" g2="C" k="102" />
-<hkern g1="period" g2="G" k="102" />
-<hkern g1="period" g2="O" k="102" />
-<hkern g1="period" g2="Q" k="102" />
-<hkern g1="period" g2="T" k="143" />
-<hkern g1="period" g2="U" k="41" />
-<hkern g1="period" g2="V" k="123" />
-<hkern g1="period" g2="W" k="123" />
-<hkern g1="period" g2="Y" k="123" />
-<hkern g1="period" g2="Ccedilla" k="102" />
-<hkern g1="period" g2="Ograve" k="102" />
-<hkern g1="period" g2="Oacute" k="102" />
-<hkern g1="period" g2="Ocircumflex" k="102" />
-<hkern g1="period" g2="Otilde" k="102" />
-<hkern g1="period" g2="Odieresis" k="102" />
-<hkern g1="period" g2="Oslash" k="102" />
-<hkern g1="period" g2="Ugrave" k="41" />
-<hkern g1="period" g2="Uacute" k="41" />
-<hkern g1="period" g2="Ucircumflex" k="41" />
-<hkern g1="period" g2="Udieresis" k="41" />
-<hkern g1="period" g2="Yacute" k="123" />
-<hkern g1="period" g2="OE" k="102" />
-<hkern g1="A" g2="quotedbl" k="143" />
-<hkern g1="A" g2="quotesingle" k="143" />
-<hkern g1="A" g2="C" k="41" />
-<hkern g1="A" g2="G" k="41" />
-<hkern g1="A" g2="J" k="-266" />
-<hkern g1="A" g2="O" k="41" />
-<hkern g1="A" g2="Q" k="41" />
-<hkern g1="A" g2="T" k="143" />
-<hkern g1="A" g2="V" k="82" />
-<hkern g1="A" g2="W" k="82" />
-<hkern g1="A" g2="Y" k="123" />
-<hkern g1="A" g2="Ccedilla" k="41" />
-<hkern g1="A" g2="Ograve" k="41" />
-<hkern g1="A" g2="Oacute" k="41" />
-<hkern g1="A" g2="Ocircumflex" k="41" />
-<hkern g1="A" g2="Otilde" k="41" />
-<hkern g1="A" g2="Odieresis" k="41" />
-<hkern g1="A" g2="Oslash" k="41" />
-<hkern g1="A" g2="Yacute" k="123" />
-<hkern g1="A" g2="OE" k="41" />
-<hkern g1="A" g2="quoteright" k="143" />
-<hkern g1="A" g2="quotedblright" k="143" />
-<hkern g1="B" g2="comma" k="82" />
-<hkern g1="B" g2="period" k="82" />
-<hkern g1="B" g2="A" k="41" />
-<hkern g1="B" g2="T" k="61" />
-<hkern g1="B" g2="V" k="20" />
-<hkern g1="B" g2="W" k="20" />
-<hkern g1="B" g2="X" k="41" />
-<hkern g1="B" g2="Y" k="20" />
-<hkern g1="B" g2="Z" k="20" />
-<hkern g1="B" g2="Agrave" k="41" />
-<hkern g1="B" g2="Aacute" k="41" />
-<hkern g1="B" g2="Acircumflex" k="41" />
-<hkern g1="B" g2="Atilde" k="41" />
-<hkern g1="B" g2="Adieresis" k="41" />
-<hkern g1="B" g2="Aring" k="41" />
-<hkern g1="B" g2="Yacute" k="20" />
-<hkern g1="B" g2="quotesinglbase" k="82" />
-<hkern g1="B" g2="quotedblbase" k="82" />
-<hkern g1="C" g2="C" k="41" />
-<hkern g1="C" g2="G" k="41" />
-<hkern g1="C" g2="O" k="41" />
-<hkern g1="C" g2="Q" k="41" />
-<hkern g1="C" g2="Ccedilla" k="41" />
-<hkern g1="C" g2="Ograve" k="41" />
-<hkern g1="C" g2="Oacute" k="41" />
-<hkern g1="C" g2="Ocircumflex" k="41" />
-<hkern g1="C" g2="Otilde" k="41" />
-<hkern g1="C" g2="Odieresis" k="41" />
-<hkern g1="C" g2="Oslash" k="41" />
-<hkern g1="C" g2="OE" k="41" />
-<hkern g1="D" g2="comma" k="82" />
-<hkern g1="D" g2="period" k="82" />
-<hkern g1="D" g2="A" k="41" />
-<hkern g1="D" g2="T" k="61" />
-<hkern g1="D" g2="V" k="20" />
-<hkern g1="D" g2="W" k="20" />
-<hkern g1="D" g2="X" k="41" />
-<hkern g1="D" g2="Y" k="20" />
-<hkern g1="D" g2="Z" k="20" />
-<hkern g1="D" g2="Agrave" k="41" />
-<hkern g1="D" g2="Aacute" k="41" />
-<hkern g1="D" g2="Acircumflex" k="41" />
-<hkern g1="D" g2="Atilde" k="41" />
-<hkern g1="D" g2="Adieresis" k="41" />
-<hkern g1="D" g2="Aring" k="41" />
-<hkern g1="D" g2="Yacute" k="20" />
-<hkern g1="D" g2="quotesinglbase" k="82" />
-<hkern g1="D" g2="quotedblbase" k="82" />
-<hkern g1="E" g2="J" k="-123" />
-<hkern g1="F" g2="comma" k="123" />
-<hkern g1="F" g2="period" k="123" />
-<hkern g1="F" g2="question" k="-41" />
-<hkern g1="F" g2="A" k="41" />
-<hkern g1="F" g2="Agrave" k="41" />
-<hkern g1="F" g2="Aacute" k="41" />
-<hkern g1="F" g2="Acircumflex" k="41" />
-<hkern g1="F" g2="Atilde" k="41" />
-<hkern g1="F" g2="Adieresis" k="41" />
-<hkern g1="F" g2="Aring" k="41" />
-<hkern g1="F" g2="quotesinglbase" k="123" />
-<hkern g1="F" g2="quotedblbase" k="123" />
-<hkern g1="K" g2="C" k="41" />
-<hkern g1="K" g2="G" k="41" />
-<hkern g1="K" g2="O" k="41" />
-<hkern g1="K" g2="Q" k="41" />
-<hkern g1="K" g2="Ccedilla" k="41" />
-<hkern g1="K" g2="Ograve" k="41" />
-<hkern g1="K" g2="Oacute" k="41" />
-<hkern g1="K" g2="Ocircumflex" k="41" />
-<hkern g1="K" g2="Otilde" k="41" />
-<hkern g1="K" g2="Odieresis" k="41" />
-<hkern g1="K" g2="Oslash" k="41" />
-<hkern g1="K" g2="OE" k="41" />
-<hkern g1="L" g2="quotedbl" k="164" />
-<hkern g1="L" g2="quotesingle" k="164" />
-<hkern g1="L" g2="C" k="41" />
-<hkern g1="L" g2="G" k="41" />
-<hkern g1="L" g2="O" k="41" />
-<hkern g1="L" g2="Q" k="41" />
-<hkern g1="L" g2="T" k="41" />
-<hkern g1="L" g2="U" k="20" />
-<hkern g1="L" g2="V" k="41" />
-<hkern g1="L" g2="W" k="41" />
-<hkern g1="L" g2="Y" k="61" />
-<hkern g1="L" g2="Ccedilla" k="41" />
-<hkern g1="L" g2="Ograve" k="41" />
-<hkern g1="L" g2="Oacute" k="41" />
-<hkern g1="L" g2="Ocircumflex" k="41" />
-<hkern g1="L" g2="Otilde" k="41" />
-<hkern g1="L" g2="Odieresis" k="41" />
-<hkern g1="L" g2="Oslash" k="41" />
-<hkern g1="L" g2="Ugrave" k="20" />
-<hkern g1="L" g2="Uacute" k="20" />
-<hkern g1="L" g2="Ucircumflex" k="20" />
-<hkern g1="L" g2="Udieresis" k="20" />
-<hkern g1="L" g2="Yacute" k="61" />
-<hkern g1="L" g2="OE" k="41" />
-<hkern g1="L" g2="quoteright" k="164" />
-<hkern g1="L" g2="quotedblright" k="164" />
-<hkern g1="O" g2="comma" k="82" />
-<hkern g1="O" g2="period" k="82" />
-<hkern g1="O" g2="A" k="41" />
-<hkern g1="O" g2="T" k="61" />
-<hkern g1="O" g2="V" k="20" />
-<hkern g1="O" g2="W" k="20" />
-<hkern g1="O" g2="X" k="41" />
-<hkern g1="O" g2="Y" k="20" />
-<hkern g1="O" g2="Z" k="20" />
-<hkern g1="O" g2="Agrave" k="41" />
-<hkern g1="O" g2="Aacute" k="41" />
-<hkern g1="O" g2="Acircumflex" k="41" />
-<hkern g1="O" g2="Atilde" k="41" />
-<hkern g1="O" g2="Adieresis" k="41" />
-<hkern g1="O" g2="Aring" k="41" />
-<hkern g1="O" g2="Yacute" k="20" />
-<hkern g1="O" g2="quotesinglbase" k="82" />
-<hkern g1="O" g2="quotedblbase" k="82" />
-<hkern g1="P" g2="comma" k="266" />
-<hkern g1="P" g2="period" k="266" />
-<hkern g1="P" g2="A" k="102" />
-<hkern g1="P" g2="X" k="41" />
-<hkern g1="P" g2="Z" k="20" />
-<hkern g1="P" g2="Agrave" k="102" />
-<hkern g1="P" g2="Aacute" k="102" />
-<hkern g1="P" g2="Acircumflex" k="102" />
-<hkern g1="P" g2="Atilde" k="102" />
-<hkern g1="P" g2="Adieresis" k="102" />
-<hkern g1="P" g2="Aring" k="102" />
-<hkern g1="P" g2="quotesinglbase" k="266" />
-<hkern g1="P" g2="quotedblbase" k="266" />
-<hkern g1="Q" g2="comma" k="82" />
-<hkern g1="Q" g2="period" k="82" />
-<hkern g1="Q" g2="A" k="41" />
-<hkern g1="Q" g2="T" k="61" />
-<hkern g1="Q" g2="V" k="20" />
-<hkern g1="Q" g2="W" k="20" />
-<hkern g1="Q" g2="X" k="41" />
-<hkern g1="Q" g2="Y" k="20" />
-<hkern g1="Q" g2="Z" k="20" />
-<hkern g1="Q" g2="Agrave" k="41" />
-<hkern g1="Q" g2="Aacute" k="41" />
-<hkern g1="Q" g2="Acircumflex" k="41" />
-<hkern g1="Q" g2="Atilde" k="41" />
-<hkern g1="Q" g2="Adieresis" k="41" />
-<hkern g1="Q" g2="Aring" k="41" />
-<hkern g1="Q" g2="Yacute" k="20" />
-<hkern g1="Q" g2="quotesinglbase" k="82" />
-<hkern g1="Q" g2="quotedblbase" k="82" />
-<hkern g1="T" g2="comma" k="123" />
-<hkern g1="T" g2="hyphen" k="82" />
-<hkern g1="T" g2="period" k="123" />
-<hkern g1="T" g2="question" k="-41" />
-<hkern g1="T" g2="A" k="143" />
-<hkern g1="T" g2="C" k="41" />
-<hkern g1="T" g2="G" k="41" />
-<hkern g1="T" g2="O" k="41" />
-<hkern g1="T" g2="Q" k="41" />
-<hkern g1="T" g2="T" k="-41" />
-<hkern g1="T" g2="a" k="164" />
-<hkern g1="T" g2="c" k="143" />
-<hkern g1="T" g2="d" k="143" />
-<hkern g1="T" g2="e" k="143" />
-<hkern g1="T" g2="g" k="143" />
-<hkern g1="T" g2="m" k="102" />
-<hkern g1="T" g2="n" k="102" />
-<hkern g1="T" g2="o" k="143" />
-<hkern g1="T" g2="p" k="102" />
-<hkern g1="T" g2="q" k="143" />
-<hkern g1="T" g2="r" k="102" />
-<hkern g1="T" g2="s" k="123" />
-<hkern g1="T" g2="u" k="102" />
-<hkern g1="T" g2="v" k="41" />
-<hkern g1="T" g2="w" k="41" />
-<hkern g1="T" g2="x" k="41" />
-<hkern g1="T" g2="y" k="41" />
-<hkern g1="T" g2="z" k="82" />
-<hkern g1="T" g2="Agrave" k="143" />
-<hkern g1="T" g2="Aacute" k="143" />
-<hkern g1="T" g2="Acircumflex" k="143" />
-<hkern g1="T" g2="Atilde" k="143" />
-<hkern g1="T" g2="Adieresis" k="143" />
-<hkern g1="T" g2="Aring" k="143" />
-<hkern g1="T" g2="Ccedilla" k="41" />
-<hkern g1="T" g2="Ograve" k="41" />
-<hkern g1="T" g2="Oacute" k="41" />
-<hkern g1="T" g2="Ocircumflex" k="41" />
-<hkern g1="T" g2="Otilde" k="41" />
-<hkern g1="T" g2="Odieresis" k="41" />
-<hkern g1="T" g2="Oslash" k="41" />
-<hkern g1="T" g2="agrave" k="143" />
-<hkern g1="T" g2="aacute" k="164" />
-<hkern g1="T" g2="acircumflex" k="164" />
-<hkern g1="T" g2="atilde" k="164" />
-<hkern g1="T" g2="adieresis" k="164" />
-<hkern g1="T" g2="aring" k="164" />
-<hkern g1="T" g2="ae" k="164" />
-<hkern g1="T" g2="ccedilla" k="143" />
-<hkern g1="T" g2="egrave" k="143" />
-<hkern g1="T" g2="eacute" k="143" />
-<hkern g1="T" g2="ecircumflex" k="143" />
-<hkern g1="T" g2="edieresis" k="143" />
-<hkern g1="T" g2="ograve" k="143" />
-<hkern g1="T" g2="oacute" k="143" />
-<hkern g1="T" g2="ocircumflex" k="143" />
-<hkern g1="T" g2="otilde" k="143" />
-<hkern g1="T" g2="odieresis" k="143" />
-<hkern g1="T" g2="oslash" k="143" />
-<hkern g1="T" g2="ugrave" k="102" />
-<hkern g1="T" g2="uacute" k="102" />
-<hkern g1="T" g2="ucircumflex" k="102" />
-<hkern g1="T" g2="udieresis" k="102" />
-<hkern g1="T" g2="yacute" k="41" />
-<hkern g1="T" g2="OE" k="41" />
-<hkern g1="T" g2="oe" k="143" />
-<hkern g1="T" g2="endash" k="82" />
-<hkern g1="T" g2="emdash" k="82" />
-<hkern g1="T" g2="quotesinglbase" k="123" />
-<hkern g1="T" g2="quotedblbase" k="123" />
-<hkern g1="U" g2="comma" k="41" />
-<hkern g1="U" g2="period" k="41" />
-<hkern g1="U" g2="A" k="20" />
-<hkern g1="U" g2="Agrave" k="20" />
-<hkern g1="U" g2="Aacute" k="20" />
-<hkern g1="U" g2="Acircumflex" k="20" />
-<hkern g1="U" g2="Atilde" k="20" />
-<hkern g1="U" g2="Adieresis" k="20" />
-<hkern g1="U" g2="Aring" k="20" />
-<hkern g1="U" g2="quotesinglbase" k="41" />
-<hkern g1="U" g2="quotedblbase" k="41" />
-<hkern g1="V" g2="comma" k="102" />
-<hkern g1="V" g2="period" k="102" />
-<hkern g1="V" g2="question" k="-41" />
-<hkern g1="V" g2="A" k="82" />
-<hkern g1="V" g2="C" k="20" />
-<hkern g1="V" g2="G" k="20" />
-<hkern g1="V" g2="O" k="20" />
-<hkern g1="V" g2="Q" k="20" />
-<hkern g1="V" g2="a" k="41" />
-<hkern g1="V" g2="c" k="41" />
-<hkern g1="V" g2="d" k="41" />
-<hkern g1="V" g2="e" k="41" />
-<hkern g1="V" g2="g" k="20" />
-<hkern g1="V" g2="m" k="20" />
-<hkern g1="V" g2="n" k="20" />
-<hkern g1="V" g2="o" k="41" />
-<hkern g1="V" g2="p" k="20" />
-<hkern g1="V" g2="q" k="41" />
-<hkern g1="V" g2="r" k="20" />
-<hkern g1="V" g2="s" k="20" />
-<hkern g1="V" g2="u" k="20" />
-<hkern g1="V" g2="Agrave" k="82" />
-<hkern g1="V" g2="Aacute" k="82" />
-<hkern g1="V" g2="Acircumflex" k="82" />
-<hkern g1="V" g2="Atilde" k="82" />
-<hkern g1="V" g2="Adieresis" k="82" />
-<hkern g1="V" g2="Aring" k="82" />
-<hkern g1="V" g2="Ccedilla" k="20" />
-<hkern g1="V" g2="Ograve" k="20" />
-<hkern g1="V" g2="Oacute" k="20" />
-<hkern g1="V" g2="Ocircumflex" k="20" />
-<hkern g1="V" g2="Otilde" k="20" />
-<hkern g1="V" g2="Odieresis" k="20" />
-<hkern g1="V" g2="Oslash" k="20" />
-<hkern g1="V" g2="agrave" k="41" />
-<hkern g1="V" g2="aacute" k="41" />
-<hkern g1="V" g2="acircumflex" k="41" />
-<hkern g1="V" g2="atilde" k="41" />
-<hkern g1="V" g2="adieresis" k="41" />
-<hkern g1="V" g2="aring" k="41" />
-<hkern g1="V" g2="ae" k="41" />
-<hkern g1="V" g2="ccedilla" k="41" />
-<hkern g1="V" g2="egrave" k="41" />
-<hkern g1="V" g2="eacute" k="41" />
-<hkern g1="V" g2="ecircumflex" k="41" />
-<hkern g1="V" g2="edieresis" k="41" />
-<hkern g1="V" g2="ograve" k="41" />
-<hkern g1="V" g2="oacute" k="41" />
-<hkern g1="V" g2="ocircumflex" k="41" />
-<hkern g1="V" g2="otilde" k="41" />
-<hkern g1="V" g2="odieresis" k="41" />
-<hkern g1="V" g2="oslash" k="41" />
-<hkern g1="V" g2="ugrave" k="20" />
-<hkern g1="V" g2="uacute" k="20" />
-<hkern g1="V" g2="ucircumflex" k="20" />
-<hkern g1="V" g2="udieresis" k="20" />
-<hkern g1="V" g2="OE" k="20" />
-<hkern g1="V" g2="oe" k="41" />
-<hkern g1="V" g2="quotesinglbase" k="102" />
-<hkern g1="V" g2="quotedblbase" k="102" />
-<hkern g1="W" g2="comma" k="102" />
-<hkern g1="W" g2="period" k="102" />
-<hkern g1="W" g2="question" k="-41" />
-<hkern g1="W" g2="A" k="82" />
-<hkern g1="W" g2="C" k="20" />
-<hkern g1="W" g2="G" k="20" />
-<hkern g1="W" g2="O" k="20" />
-<hkern g1="W" g2="Q" k="20" />
-<hkern g1="W" g2="a" k="41" />
-<hkern g1="W" g2="c" k="41" />
-<hkern g1="W" g2="d" k="41" />
-<hkern g1="W" g2="e" k="41" />
-<hkern g1="W" g2="g" k="20" />
-<hkern g1="W" g2="m" k="20" />
-<hkern g1="W" g2="n" k="20" />
-<hkern g1="W" g2="o" k="41" />
-<hkern g1="W" g2="p" k="20" />
-<hkern g1="W" g2="q" k="41" />
-<hkern g1="W" g2="r" k="20" />
-<hkern g1="W" g2="s" k="20" />
-<hkern g1="W" g2="u" k="20" />
-<hkern g1="W" g2="Agrave" k="82" />
-<hkern g1="W" g2="Aacute" k="82" />
-<hkern g1="W" g2="Acircumflex" k="82" />
-<hkern g1="W" g2="Atilde" k="82" />
-<hkern g1="W" g2="Adieresis" k="82" />
-<hkern g1="W" g2="Aring" k="82" />
-<hkern g1="W" g2="Ccedilla" k="20" />
-<hkern g1="W" g2="Ograve" k="20" />
-<hkern g1="W" g2="Oacute" k="20" />
-<hkern g1="W" g2="Ocircumflex" k="20" />
-<hkern g1="W" g2="Otilde" k="20" />
-<hkern g1="W" g2="Odieresis" k="20" />
-<hkern g1="W" g2="Oslash" k="20" />
-<hkern g1="W" g2="agrave" k="41" />
-<hkern g1="W" g2="aacute" k="41" />
-<hkern g1="W" g2="acircumflex" k="41" />
-<hkern g1="W" g2="atilde" k="41" />
-<hkern g1="W" g2="adieresis" k="41" />
-<hkern g1="W" g2="aring" k="41" />
-<hkern g1="W" g2="ae" k="41" />
-<hkern g1="W" g2="ccedilla" k="41" />
-<hkern g1="W" g2="egrave" k="41" />
-<hkern g1="W" g2="eacute" k="41" />
-<hkern g1="W" g2="ecircumflex" k="41" />
-<hkern g1="W" g2="edieresis" k="41" />
-<hkern g1="W" g2="ograve" k="41" />
-<hkern g1="W" g2="oacute" k="41" />
-<hkern g1="W" g2="ocircumflex" k="41" />
-<hkern g1="W" g2="otilde" k="41" />
-<hkern g1="W" g2="odieresis" k="41" />
-<hkern g1="W" g2="oslash" k="41" />
-<hkern g1="W" g2="ugrave" k="20" />
-<hkern g1="W" g2="uacute" k="20" />
-<hkern g1="W" g2="ucircumflex" k="20" />
-<hkern g1="W" g2="udieresis" k="20" />
-<hkern g1="W" g2="OE" k="20" />
-<hkern g1="W" g2="oe" k="41" />
-<hkern g1="W" g2="quotesinglbase" k="102" />
-<hkern g1="W" g2="quotedblbase" k="102" />
-<hkern g1="X" g2="C" k="41" />
-<hkern g1="X" g2="G" k="41" />
-<hkern g1="X" g2="O" k="41" />
-<hkern g1="X" g2="Q" k="41" />
-<hkern g1="X" g2="Ccedilla" k="41" />
-<hkern g1="X" g2="Ograve" k="41" />
-<hkern g1="X" g2="Oacute" k="41" />
-<hkern g1="X" g2="Ocircumflex" k="41" />
-<hkern g1="X" g2="Otilde" k="41" />
-<hkern g1="X" g2="Odieresis" k="41" />
-<hkern g1="X" g2="Oslash" k="41" />
-<hkern g1="X" g2="OE" k="41" />
-<hkern g1="Y" g2="comma" k="123" />
-<hkern g1="Y" g2="period" k="123" />
-<hkern g1="Y" g2="question" k="-41" />
-<hkern g1="Y" g2="A" k="123" />
-<hkern g1="Y" g2="C" k="41" />
-<hkern g1="Y" g2="G" k="41" />
-<hkern g1="Y" g2="O" k="41" />
-<hkern g1="Y" g2="Q" k="41" />
-<hkern g1="Y" g2="a" k="102" />
-<hkern g1="Y" g2="c" k="102" />
-<hkern g1="Y" g2="d" k="102" />
-<hkern g1="Y" g2="e" k="102" />
-<hkern g1="Y" g2="g" k="41" />
-<hkern g1="Y" g2="m" k="61" />
-<hkern g1="Y" g2="n" k="61" />
-<hkern g1="Y" g2="o" k="102" />
-<hkern g1="Y" g2="p" k="61" />
-<hkern g1="Y" g2="q" k="102" />
-<hkern g1="Y" g2="r" k="61" />
-<hkern g1="Y" g2="s" k="82" />
-<hkern g1="Y" g2="u" k="61" />
-<hkern g1="Y" g2="z" k="41" />
-<hkern g1="Y" g2="Agrave" k="123" />
-<hkern g1="Y" g2="Aacute" k="123" />
-<hkern g1="Y" g2="Acircumflex" k="123" />
-<hkern g1="Y" g2="Atilde" k="123" />
-<hkern g1="Y" g2="Adieresis" k="123" />
-<hkern g1="Y" g2="Aring" k="123" />
-<hkern g1="Y" g2="Ccedilla" k="41" />
-<hkern g1="Y" g2="Ograve" k="41" />
-<hkern g1="Y" g2="Oacute" k="41" />
-<hkern g1="Y" g2="Ocircumflex" k="41" />
-<hkern g1="Y" g2="Otilde" k="41" />
-<hkern g1="Y" g2="Odieresis" k="41" />
-<hkern g1="Y" g2="Oslash" k="41" />
-<hkern g1="Y" g2="agrave" k="102" />
-<hkern g1="Y" g2="aacute" k="102" />
-<hkern g1="Y" g2="acircumflex" k="102" />
-<hkern g1="Y" g2="atilde" k="102" />
-<hkern g1="Y" g2="adieresis" k="102" />
-<hkern g1="Y" g2="aring" k="102" />
-<hkern g1="Y" g2="ae" k="102" />
-<hkern g1="Y" g2="ccedilla" k="102" />
-<hkern g1="Y" g2="egrave" k="102" />
-<hkern g1="Y" g2="eacute" k="102" />
-<hkern g1="Y" g2="ecircumflex" k="102" />
-<hkern g1="Y" g2="edieresis" k="102" />
-<hkern g1="Y" g2="ograve" k="102" />
-<hkern g1="Y" g2="oacute" k="102" />
-<hkern g1="Y" g2="ocircumflex" k="102" />
-<hkern g1="Y" g2="otilde" k="102" />
-<hkern g1="Y" g2="odieresis" k="102" />
-<hkern g1="Y" g2="oslash" k="102" />
-<hkern g1="Y" g2="ugrave" k="61" />
-<hkern g1="Y" g2="uacute" k="61" />
-<hkern g1="Y" g2="ucircumflex" k="61" />
-<hkern g1="Y" g2="udieresis" k="61" />
-<hkern g1="Y" g2="OE" k="41" />
-<hkern g1="Y" g2="oe" k="102" />
-<hkern g1="Y" g2="quotesinglbase" k="123" />
-<hkern g1="Y" g2="quotedblbase" k="123" />
-<hkern g1="Z" g2="C" k="20" />
-<hkern g1="Z" g2="G" k="20" />
-<hkern g1="Z" g2="O" k="20" />
-<hkern g1="Z" g2="Q" k="20" />
-<hkern g1="Z" g2="Ccedilla" k="20" />
-<hkern g1="Z" g2="Ograve" k="20" />
-<hkern g1="Z" g2="Oacute" k="20" />
-<hkern g1="Z" g2="Ocircumflex" k="20" />
-<hkern g1="Z" g2="Otilde" k="20" />
-<hkern g1="Z" g2="Odieresis" k="20" />
-<hkern g1="Z" g2="Oslash" k="20" />
-<hkern g1="Z" g2="OE" k="20" />
-<hkern g1="bracketleft" g2="J" k="-184" />
-<hkern g1="a" g2="quotedbl" k="20" />
-<hkern g1="a" g2="quotesingle" k="20" />
-<hkern g1="a" g2="quoteright" k="20" />
-<hkern g1="a" g2="quotedblright" k="20" />
-<hkern g1="b" g2="quotedbl" k="20" />
-<hkern g1="b" g2="quotesingle" k="20" />
-<hkern g1="b" g2="v" k="41" />
-<hkern g1="b" g2="w" k="41" />
-<hkern g1="b" g2="x" k="41" />
-<hkern g1="b" g2="y" k="41" />
-<hkern g1="b" g2="z" k="20" />
-<hkern g1="b" g2="yacute" k="41" />
-<hkern g1="b" g2="quoteright" k="20" />
-<hkern g1="b" g2="quotedblright" k="20" />
-<hkern g1="c" g2="quotedbl" k="-41" />
-<hkern g1="c" g2="quotesingle" k="-41" />
-<hkern g1="c" g2="quoteright" k="-41" />
-<hkern g1="c" g2="quotedblright" k="-41" />
-<hkern g1="e" g2="quotedbl" k="20" />
-<hkern g1="e" g2="quotesingle" k="20" />
-<hkern g1="e" g2="v" k="41" />
-<hkern g1="e" g2="w" k="41" />
-<hkern g1="e" g2="x" k="41" />
-<hkern g1="e" g2="y" k="41" />
-<hkern g1="e" g2="z" k="20" />
-<hkern g1="e" g2="yacute" k="41" />
-<hkern g1="e" g2="quoteright" k="20" />
-<hkern g1="e" g2="quotedblright" k="20" />
-<hkern g1="f" g2="quotedbl" k="-123" />
-<hkern g1="f" g2="quotesingle" k="-123" />
-<hkern g1="f" g2="quoteright" k="-123" />
-<hkern g1="f" g2="quotedblright" k="-123" />
-<hkern g1="h" g2="quotedbl" k="20" />
-<hkern g1="h" g2="quotesingle" k="20" />
-<hkern g1="h" g2="quoteright" k="20" />
-<hkern g1="h" g2="quotedblright" k="20" />
-<hkern g1="k" g2="c" k="41" />
-<hkern g1="k" g2="d" k="41" />
-<hkern g1="k" g2="e" k="41" />
-<hkern g1="k" g2="o" k="41" />
-<hkern g1="k" g2="q" k="41" />
-<hkern g1="k" g2="agrave" k="41" />
-<hkern g1="k" g2="ccedilla" k="41" />
-<hkern g1="k" g2="egrave" k="41" />
-<hkern g1="k" g2="eacute" k="41" />
-<hkern g1="k" g2="ecircumflex" k="41" />
-<hkern g1="k" g2="edieresis" k="41" />
-<hkern g1="k" g2="ograve" k="41" />
-<hkern g1="k" g2="oacute" k="41" />
-<hkern g1="k" g2="ocircumflex" k="41" />
-<hkern g1="k" g2="otilde" k="41" />
-<hkern g1="k" g2="odieresis" k="41" />
-<hkern g1="k" g2="oslash" k="41" />
-<hkern g1="k" g2="oe" k="41" />
-<hkern g1="m" g2="quotedbl" k="20" />
-<hkern g1="m" g2="quotesingle" k="20" />
-<hkern g1="m" g2="quoteright" k="20" />
-<hkern g1="m" g2="quotedblright" k="20" />
-<hkern g1="n" g2="quotedbl" k="20" />
-<hkern g1="n" g2="quotesingle" k="20" />
-<hkern g1="n" g2="quoteright" k="20" />
-<hkern g1="n" g2="quotedblright" k="20" />
-<hkern g1="o" g2="quotedbl" k="20" />
-<hkern g1="o" g2="quotesingle" k="20" />
-<hkern g1="o" g2="v" k="41" />
-<hkern g1="o" g2="w" k="41" />
-<hkern g1="o" g2="x" k="41" />
-<hkern g1="o" g2="y" k="41" />
-<hkern g1="o" g2="z" k="20" />
-<hkern g1="o" g2="yacute" k="41" />
-<hkern g1="o" g2="quoteright" k="20" />
-<hkern g1="o" g2="quotedblright" k="20" />
-<hkern g1="p" g2="quotedbl" k="20" />
-<hkern g1="p" g2="quotesingle" k="20" />
-<hkern g1="p" g2="v" k="41" />
-<hkern g1="p" g2="w" k="41" />
-<hkern g1="p" g2="x" k="41" />
-<hkern g1="p" g2="y" k="41" />
-<hkern g1="p" g2="z" k="20" />
-<hkern g1="p" g2="yacute" k="41" />
-<hkern g1="p" g2="quoteright" k="20" />
-<hkern g1="p" g2="quotedblright" k="20" />
-<hkern g1="r" g2="quotedbl" k="-82" />
-<hkern g1="r" g2="quotesingle" k="-82" />
-<hkern g1="r" g2="a" k="41" />
-<hkern g1="r" g2="c" k="41" />
-<hkern g1="r" g2="d" k="41" />
-<hkern g1="r" g2="e" k="41" />
-<hkern g1="r" g2="g" k="20" />
-<hkern g1="r" g2="o" k="41" />
-<hkern g1="r" g2="q" k="41" />
-<hkern g1="r" g2="agrave" k="41" />
-<hkern g1="r" g2="aacute" k="41" />
-<hkern g1="r" g2="acircumflex" k="41" />
-<hkern g1="r" g2="atilde" k="41" />
-<hkern g1="r" g2="adieresis" k="41" />
-<hkern g1="r" g2="aring" k="41" />
-<hkern g1="r" g2="ae" k="41" />
-<hkern g1="r" g2="ccedilla" k="41" />
-<hkern g1="r" g2="egrave" k="41" />
-<hkern g1="r" g2="eacute" k="41" />
-<hkern g1="r" g2="ecircumflex" k="41" />
-<hkern g1="r" g2="edieresis" k="41" />
-<hkern g1="r" g2="ograve" k="41" />
-<hkern g1="r" g2="oacute" k="41" />
-<hkern g1="r" g2="ocircumflex" k="41" />
-<hkern g1="r" g2="otilde" k="41" />
-<hkern g1="r" g2="odieresis" k="41" />
-<hkern g1="r" g2="oslash" k="41" />
-<hkern g1="r" g2="oe" k="41" />
-<hkern g1="r" g2="quoteright" k="-82" />
-<hkern g1="r" g2="quotedblright" k="-82" />
-<hkern g1="t" g2="quotedbl" k="-41" />
-<hkern g1="t" g2="quotesingle" k="-41" />
-<hkern g1="t" g2="quoteright" k="-41" />
-<hkern g1="t" g2="quotedblright" k="-41" />
-<hkern g1="v" g2="quotedbl" k="-82" />
-<hkern g1="v" g2="quotesingle" k="-82" />
-<hkern g1="v" g2="comma" k="82" />
-<hkern g1="v" g2="period" k="82" />
-<hkern g1="v" g2="question" k="-41" />
-<hkern g1="v" g2="quoteright" k="-82" />
-<hkern g1="v" g2="quotesinglbase" k="82" />
-<hkern g1="v" g2="quotedblright" k="-82" />
-<hkern g1="v" g2="quotedblbase" k="82" />
-<hkern g1="w" g2="quotedbl" k="-82" />
-<hkern g1="w" g2="quotesingle" k="-82" />
-<hkern g1="w" g2="comma" k="82" />
-<hkern g1="w" g2="period" k="82" />
-<hkern g1="w" g2="question" k="-41" />
-<hkern g1="w" g2="quoteright" k="-82" />
-<hkern g1="w" g2="quotesinglbase" k="82" />
-<hkern g1="w" g2="quotedblright" k="-82" />
-<hkern g1="w" g2="quotedblbase" k="82" />
-<hkern g1="x" g2="c" k="41" />
-<hkern g1="x" g2="d" k="41" />
-<hkern g1="x" g2="e" k="41" />
-<hkern g1="x" g2="o" k="41" />
-<hkern g1="x" g2="q" k="41" />
-<hkern g1="x" g2="agrave" k="41" />
-<hkern g1="x" g2="ccedilla" k="41" />
-<hkern g1="x" g2="egrave" k="41" />
-<hkern g1="x" g2="eacute" k="41" />
-<hkern g1="x" g2="ecircumflex" k="41" />
-<hkern g1="x" g2="edieresis" k="41" />
-<hkern g1="x" g2="ograve" k="41" />
-<hkern g1="x" g2="oacute" k="41" />
-<hkern g1="x" g2="ocircumflex" k="41" />
-<hkern g1="x" g2="otilde" k="41" />
-<hkern g1="x" g2="odieresis" k="41" />
-<hkern g1="x" g2="oslash" k="41" />
-<hkern g1="x" g2="oe" k="41" />
-<hkern g1="y" g2="quotedbl" k="-82" />
-<hkern g1="y" g2="quotesingle" k="-82" />
-<hkern g1="y" g2="comma" k="82" />
-<hkern g1="y" g2="period" k="82" />
-<hkern g1="y" g2="question" k="-41" />
-<hkern g1="y" g2="quoteright" k="-82" />
-<hkern g1="y" g2="quotesinglbase" k="82" />
-<hkern g1="y" g2="quotedblright" k="-82" />
-<hkern g1="y" g2="quotedblbase" k="82" />
-<hkern g1="braceleft" g2="J" k="-184" />
-<hkern g1="Agrave" g2="quotedbl" k="143" />
-<hkern g1="Agrave" g2="quotesingle" k="143" />
-<hkern g1="Agrave" g2="C" k="41" />
-<hkern g1="Agrave" g2="G" k="41" />
-<hkern g1="Agrave" g2="J" k="-266" />
-<hkern g1="Agrave" g2="O" k="41" />
-<hkern g1="Agrave" g2="Q" k="41" />
-<hkern g1="Agrave" g2="T" k="143" />
-<hkern g1="Agrave" g2="V" k="82" />
-<hkern g1="Agrave" g2="W" k="82" />
-<hkern g1="Agrave" g2="Y" k="123" />
-<hkern g1="Agrave" g2="Ccedilla" k="41" />
-<hkern g1="Agrave" g2="Ograve" k="41" />
-<hkern g1="Agrave" g2="Oacute" k="41" />
-<hkern g1="Agrave" g2="Ocircumflex" k="41" />
-<hkern g1="Agrave" g2="Otilde" k="41" />
-<hkern g1="Agrave" g2="Odieresis" k="41" />
-<hkern g1="Agrave" g2="Oslash" k="41" />
-<hkern g1="Agrave" g2="Yacute" k="123" />
-<hkern g1="Agrave" g2="OE" k="41" />
-<hkern g1="Agrave" g2="quoteright" k="143" />
-<hkern g1="Agrave" g2="quotedblright" k="143" />
-<hkern g1="Aacute" g2="quotedbl" k="143" />
-<hkern g1="Aacute" g2="quotesingle" k="143" />
-<hkern g1="Aacute" g2="C" k="41" />
-<hkern g1="Aacute" g2="G" k="41" />
-<hkern g1="Aacute" g2="J" k="-266" />
-<hkern g1="Aacute" g2="O" k="41" />
-<hkern g1="Aacute" g2="Q" k="41" />
-<hkern g1="Aacute" g2="T" k="143" />
-<hkern g1="Aacute" g2="V" k="82" />
-<hkern g1="Aacute" g2="W" k="82" />
-<hkern g1="Aacute" g2="Y" k="123" />
-<hkern g1="Aacute" g2="Ccedilla" k="41" />
-<hkern g1="Aacute" g2="Ograve" k="41" />
-<hkern g1="Aacute" g2="Oacute" k="41" />
-<hkern g1="Aacute" g2="Ocircumflex" k="41" />
-<hkern g1="Aacute" g2="Otilde" k="41" />
-<hkern g1="Aacute" g2="Odieresis" k="41" />
-<hkern g1="Aacute" g2="Oslash" k="41" />
-<hkern g1="Aacute" g2="Yacute" k="123" />
-<hkern g1="Aacute" g2="OE" k="41" />
-<hkern g1="Aacute" g2="quoteright" k="143" />
-<hkern g1="Aacute" g2="quotedblright" k="143" />
-<hkern g1="Acircumflex" g2="quotedbl" k="143" />
-<hkern g1="Acircumflex" g2="quotesingle" k="143" />
-<hkern g1="Acircumflex" g2="C" k="41" />
-<hkern g1="Acircumflex" g2="G" k="41" />
-<hkern g1="Acircumflex" g2="J" k="-266" />
-<hkern g1="Acircumflex" g2="O" k="41" />
-<hkern g1="Acircumflex" g2="Q" k="41" />
-<hkern g1="Acircumflex" g2="T" k="143" />
-<hkern g1="Acircumflex" g2="V" k="82" />
-<hkern g1="Acircumflex" g2="W" k="82" />
-<hkern g1="Acircumflex" g2="Y" k="123" />
-<hkern g1="Acircumflex" g2="Ccedilla" k="41" />
-<hkern g1="Acircumflex" g2="Ograve" k="41" />
-<hkern g1="Acircumflex" g2="Oacute" k="41" />
-<hkern g1="Acircumflex" g2="Ocircumflex" k="41" />
-<hkern g1="Acircumflex" g2="Otilde" k="41" />
-<hkern g1="Acircumflex" g2="Odieresis" k="41" />
-<hkern g1="Acircumflex" g2="Oslash" k="41" />
-<hkern g1="Acircumflex" g2="Yacute" k="123" />
-<hkern g1="Acircumflex" g2="OE" k="41" />
-<hkern g1="Acircumflex" g2="quoteright" k="143" />
-<hkern g1="Acircumflex" g2="quotedblright" k="143" />
-<hkern g1="Atilde" g2="quotedbl" k="143" />
-<hkern g1="Atilde" g2="quotesingle" k="143" />
-<hkern g1="Atilde" g2="C" k="41" />
-<hkern g1="Atilde" g2="G" k="41" />
-<hkern g1="Atilde" g2="J" k="-266" />
-<hkern g1="Atilde" g2="O" k="41" />
-<hkern g1="Atilde" g2="Q" k="41" />
-<hkern g1="Atilde" g2="T" k="143" />
-<hkern g1="Atilde" g2="V" k="82" />
-<hkern g1="Atilde" g2="W" k="82" />
-<hkern g1="Atilde" g2="Y" k="123" />
-<hkern g1="Atilde" g2="Ccedilla" k="41" />
-<hkern g1="Atilde" g2="Ograve" k="41" />
-<hkern g1="Atilde" g2="Oacute" k="41" />
-<hkern g1="Atilde" g2="Ocircumflex" k="41" />
-<hkern g1="Atilde" g2="Otilde" k="41" />
-<hkern g1="Atilde" g2="Odieresis" k="41" />
-<hkern g1="Atilde" g2="Oslash" k="41" />
-<hkern g1="Atilde" g2="Yacute" k="123" />
-<hkern g1="Atilde" g2="OE" k="41" />
-<hkern g1="Atilde" g2="quoteright" k="143" />
-<hkern g1="Atilde" g2="quotedblright" k="143" />
-<hkern g1="Adieresis" g2="quotedbl" k="143" />
-<hkern g1="Adieresis" g2="quotesingle" k="143" />
-<hkern g1="Adieresis" g2="C" k="41" />
-<hkern g1="Adieresis" g2="G" k="41" />
-<hkern g1="Adieresis" g2="J" k="-266" />
-<hkern g1="Adieresis" g2="O" k="41" />
-<hkern g1="Adieresis" g2="Q" k="41" />
-<hkern g1="Adieresis" g2="T" k="143" />
-<hkern g1="Adieresis" g2="V" k="82" />
-<hkern g1="Adieresis" g2="W" k="82" />
-<hkern g1="Adieresis" g2="Y" k="123" />
-<hkern g1="Adieresis" g2="Ccedilla" k="41" />
-<hkern g1="Adieresis" g2="Ograve" k="41" />
-<hkern g1="Adieresis" g2="Oacute" k="41" />
-<hkern g1="Adieresis" g2="Ocircumflex" k="41" />
-<hkern g1="Adieresis" g2="Otilde" k="41" />
-<hkern g1="Adieresis" g2="Odieresis" k="41" />
-<hkern g1="Adieresis" g2="Oslash" k="41" />
-<hkern g1="Adieresis" g2="Yacute" k="123" />
-<hkern g1="Adieresis" g2="OE" k="41" />
-<hkern g1="Adieresis" g2="quoteright" k="143" />
-<hkern g1="Adieresis" g2="quotedblright" k="143" />
-<hkern g1="Aring" g2="quotedbl" k="143" />
-<hkern g1="Aring" g2="quotesingle" k="143" />
-<hkern g1="Aring" g2="C" k="41" />
-<hkern g1="Aring" g2="G" k="41" />
-<hkern g1="Aring" g2="J" k="-266" />
-<hkern g1="Aring" g2="O" k="41" />
-<hkern g1="Aring" g2="Q" k="41" />
-<hkern g1="Aring" g2="T" k="143" />
-<hkern g1="Aring" g2="V" k="82" />
-<hkern g1="Aring" g2="W" k="82" />
-<hkern g1="Aring" g2="Y" k="123" />
-<hkern g1="Aring" g2="Ccedilla" k="41" />
-<hkern g1="Aring" g2="Ograve" k="41" />
-<hkern g1="Aring" g2="Oacute" k="41" />
-<hkern g1="Aring" g2="Ocircumflex" k="41" />
-<hkern g1="Aring" g2="Otilde" k="41" />
-<hkern g1="Aring" g2="Odieresis" k="41" />
-<hkern g1="Aring" g2="Oslash" k="41" />
-<hkern g1="Aring" g2="Yacute" k="123" />
-<hkern g1="Aring" g2="OE" k="41" />
-<hkern g1="Aring" g2="quoteright" k="143" />
-<hkern g1="Aring" g2="quotedblright" k="143" />
-<hkern g1="AE" g2="J" k="-123" />
-<hkern g1="Ccedilla" g2="C" k="41" />
-<hkern g1="Ccedilla" g2="G" k="41" />
-<hkern g1="Ccedilla" g2="O" k="41" />
-<hkern g1="Ccedilla" g2="Q" k="41" />
-<hkern g1="Ccedilla" g2="Ccedilla" k="41" />
-<hkern g1="Ccedilla" g2="Ograve" k="41" />
-<hkern g1="Ccedilla" g2="Oacute" k="41" />
-<hkern g1="Ccedilla" g2="Ocircumflex" k="41" />
-<hkern g1="Ccedilla" g2="Otilde" k="41" />
-<hkern g1="Ccedilla" g2="Odieresis" k="41" />
-<hkern g1="Ccedilla" g2="Oslash" k="41" />
-<hkern g1="Ccedilla" g2="OE" k="41" />
-<hkern g1="Egrave" g2="J" k="-123" />
-<hkern g1="Eacute" g2="J" k="-123" />
-<hkern g1="Ecircumflex" g2="J" k="-123" />
-<hkern g1="Edieresis" g2="J" k="-123" />
-<hkern g1="Eth" g2="comma" k="82" />
-<hkern g1="Eth" g2="period" k="82" />
-<hkern g1="Eth" g2="A" k="41" />
-<hkern g1="Eth" g2="T" k="61" />
-<hkern g1="Eth" g2="V" k="20" />
-<hkern g1="Eth" g2="W" k="20" />
-<hkern g1="Eth" g2="X" k="41" />
-<hkern g1="Eth" g2="Y" k="20" />
-<hkern g1="Eth" g2="Z" k="20" />
-<hkern g1="Eth" g2="Agrave" k="41" />
-<hkern g1="Eth" g2="Aacute" k="41" />
-<hkern g1="Eth" g2="Acircumflex" k="41" />
-<hkern g1="Eth" g2="Atilde" k="41" />
-<hkern g1="Eth" g2="Adieresis" k="41" />
-<hkern g1="Eth" g2="Aring" k="41" />
-<hkern g1="Eth" g2="Yacute" k="20" />
-<hkern g1="Eth" g2="quotesinglbase" k="82" />
-<hkern g1="Eth" g2="quotedblbase" k="82" />
-<hkern g1="Ograve" g2="comma" k="82" />
-<hkern g1="Ograve" g2="period" k="82" />
-<hkern g1="Ograve" g2="A" k="41" />
-<hkern g1="Ograve" g2="T" k="61" />
-<hkern g1="Ograve" g2="V" k="20" />
-<hkern g1="Ograve" g2="W" k="20" />
-<hkern g1="Ograve" g2="X" k="41" />
-<hkern g1="Ograve" g2="Y" k="20" />
-<hkern g1="Ograve" g2="Z" k="20" />
-<hkern g1="Ograve" g2="Agrave" k="41" />
-<hkern g1="Ograve" g2="Aacute" k="41" />
-<hkern g1="Ograve" g2="Acircumflex" k="41" />
-<hkern g1="Ograve" g2="Atilde" k="41" />
-<hkern g1="Ograve" g2="Adieresis" k="41" />
-<hkern g1="Ograve" g2="Aring" k="41" />
-<hkern g1="Ograve" g2="Yacute" k="20" />
-<hkern g1="Ograve" g2="quotesinglbase" k="82" />
-<hkern g1="Ograve" g2="quotedblbase" k="82" />
-<hkern g1="Oacute" g2="comma" k="82" />
-<hkern g1="Oacute" g2="period" k="82" />
-<hkern g1="Oacute" g2="A" k="41" />
-<hkern g1="Oacute" g2="T" k="61" />
-<hkern g1="Oacute" g2="V" k="20" />
-<hkern g1="Oacute" g2="W" k="20" />
-<hkern g1="Oacute" g2="X" k="41" />
-<hkern g1="Oacute" g2="Y" k="20" />
-<hkern g1="Oacute" g2="Z" k="20" />
-<hkern g1="Oacute" g2="Agrave" k="41" />
-<hkern g1="Oacute" g2="Aacute" k="41" />
-<hkern g1="Oacute" g2="Acircumflex" k="41" />
-<hkern g1="Oacute" g2="Atilde" k="41" />
-<hkern g1="Oacute" g2="Adieresis" k="41" />
-<hkern g1="Oacute" g2="Aring" k="41" />
-<hkern g1="Oacute" g2="Yacute" k="20" />
-<hkern g1="Oacute" g2="quotesinglbase" k="82" />
-<hkern g1="Oacute" g2="quotedblbase" k="82" />
-<hkern g1="Ocircumflex" g2="comma" k="82" />
-<hkern g1="Ocircumflex" g2="period" k="82" />
-<hkern g1="Ocircumflex" g2="A" k="41" />
-<hkern g1="Ocircumflex" g2="T" k="61" />
-<hkern g1="Ocircumflex" g2="V" k="20" />
-<hkern g1="Ocircumflex" g2="W" k="20" />
-<hkern g1="Ocircumflex" g2="X" k="41" />
-<hkern g1="Ocircumflex" g2="Y" k="20" />
-<hkern g1="Ocircumflex" g2="Z" k="20" />
-<hkern g1="Ocircumflex" g2="Agrave" k="41" />
-<hkern g1="Ocircumflex" g2="Aacute" k="41" />
-<hkern g1="Ocircumflex" g2="Acircumflex" k="41" />
-<hkern g1="Ocircumflex" g2="Atilde" k="41" />
-<hkern g1="Ocircumflex" g2="Adieresis" k="41" />
-<hkern g1="Ocircumflex" g2="Aring" k="41" />
-<hkern g1="Ocircumflex" g2="Yacute" k="20" />
-<hkern g1="Ocircumflex" g2="quotesinglbase" k="82" />
-<hkern g1="Ocircumflex" g2="quotedblbase" k="82" />
-<hkern g1="Otilde" g2="comma" k="82" />
-<hkern g1="Otilde" g2="period" k="82" />
-<hkern g1="Otilde" g2="A" k="41" />
-<hkern g1="Otilde" g2="T" k="61" />
-<hkern g1="Otilde" g2="V" k="20" />
-<hkern g1="Otilde" g2="W" k="20" />
-<hkern g1="Otilde" g2="X" k="41" />
-<hkern g1="Otilde" g2="Y" k="20" />
-<hkern g1="Otilde" g2="Z" k="20" />
-<hkern g1="Otilde" g2="Agrave" k="41" />
-<hkern g1="Otilde" g2="Aacute" k="41" />
-<hkern g1="Otilde" g2="Acircumflex" k="41" />
-<hkern g1="Otilde" g2="Atilde" k="41" />
-<hkern g1="Otilde" g2="Adieresis" k="41" />
-<hkern g1="Otilde" g2="Aring" k="41" />
-<hkern g1="Otilde" g2="Yacute" k="20" />
-<hkern g1="Otilde" g2="quotesinglbase" k="82" />
-<hkern g1="Otilde" g2="quotedblbase" k="82" />
-<hkern g1="Odieresis" g2="comma" k="82" />
-<hkern g1="Odieresis" g2="period" k="82" />
-<hkern g1="Odieresis" g2="A" k="41" />
-<hkern g1="Odieresis" g2="T" k="61" />
-<hkern g1="Odieresis" g2="V" k="20" />
-<hkern g1="Odieresis" g2="W" k="20" />
-<hkern g1="Odieresis" g2="X" k="41" />
-<hkern g1="Odieresis" g2="Y" k="20" />
-<hkern g1="Odieresis" g2="Z" k="20" />
-<hkern g1="Odieresis" g2="Agrave" k="41" />
-<hkern g1="Odieresis" g2="Aacute" k="41" />
-<hkern g1="Odieresis" g2="Acircumflex" k="41" />
-<hkern g1="Odieresis" g2="Atilde" k="41" />
-<hkern g1="Odieresis" g2="Adieresis" k="41" />
-<hkern g1="Odieresis" g2="Aring" k="41" />
-<hkern g1="Odieresis" g2="Yacute" k="20" />
-<hkern g1="Odieresis" g2="quotesinglbase" k="82" />
-<hkern g1="Odieresis" g2="quotedblbase" k="82" />
-<hkern g1="Oslash" g2="comma" k="82" />
-<hkern g1="Oslash" g2="period" k="82" />
-<hkern g1="Oslash" g2="A" k="41" />
-<hkern g1="Oslash" g2="T" k="61" />
-<hkern g1="Oslash" g2="V" k="20" />
-<hkern g1="Oslash" g2="W" k="20" />
-<hkern g1="Oslash" g2="X" k="41" />
-<hkern g1="Oslash" g2="Y" k="20" />
-<hkern g1="Oslash" g2="Z" k="20" />
-<hkern g1="Oslash" g2="Agrave" k="41" />
-<hkern g1="Oslash" g2="Aacute" k="41" />
-<hkern g1="Oslash" g2="Acircumflex" k="41" />
-<hkern g1="Oslash" g2="Atilde" k="41" />
-<hkern g1="Oslash" g2="Adieresis" k="41" />
-<hkern g1="Oslash" g2="Aring" k="41" />
-<hkern g1="Oslash" g2="Yacute" k="20" />
-<hkern g1="Oslash" g2="quotesinglbase" k="82" />
-<hkern g1="Oslash" g2="quotedblbase" k="82" />
-<hkern g1="Ugrave" g2="comma" k="41" />
-<hkern g1="Ugrave" g2="period" k="41" />
-<hkern g1="Ugrave" g2="A" k="20" />
-<hkern g1="Ugrave" g2="Agrave" k="20" />
-<hkern g1="Ugrave" g2="Aacute" k="20" />
-<hkern g1="Ugrave" g2="Acircumflex" k="20" />
-<hkern g1="Ugrave" g2="Atilde" k="20" />
-<hkern g1="Ugrave" g2="Adieresis" k="20" />
-<hkern g1="Ugrave" g2="Aring" k="20" />
-<hkern g1="Ugrave" g2="quotesinglbase" k="41" />
-<hkern g1="Ugrave" g2="quotedblbase" k="41" />
-<hkern g1="Uacute" g2="comma" k="41" />
-<hkern g1="Uacute" g2="period" k="41" />
-<hkern g1="Uacute" g2="A" k="20" />
-<hkern g1="Uacute" g2="Agrave" k="20" />
-<hkern g1="Uacute" g2="Aacute" k="20" />
-<hkern g1="Uacute" g2="Acircumflex" k="20" />
-<hkern g1="Uacute" g2="Atilde" k="20" />
-<hkern g1="Uacute" g2="Adieresis" k="20" />
-<hkern g1="Uacute" g2="Aring" k="20" />
-<hkern g1="Uacute" g2="quotesinglbase" k="41" />
-<hkern g1="Uacute" g2="quotedblbase" k="41" />
-<hkern g1="Ucircumflex" g2="comma" k="41" />
-<hkern g1="Ucircumflex" g2="period" k="41" />
-<hkern g1="Ucircumflex" g2="A" k="20" />
-<hkern g1="Ucircumflex" g2="Agrave" k="20" />
-<hkern g1="Ucircumflex" g2="Aacute" k="20" />
-<hkern g1="Ucircumflex" g2="Acircumflex" k="20" />
-<hkern g1="Ucircumflex" g2="Atilde" k="20" />
-<hkern g1="Ucircumflex" g2="Adieresis" k="20" />
-<hkern g1="Ucircumflex" g2="Aring" k="20" />
-<hkern g1="Ucircumflex" g2="quotesinglbase" k="41" />
-<hkern g1="Ucircumflex" g2="quotedblbase" k="41" />
-<hkern g1="Udieresis" g2="comma" k="41" />
-<hkern g1="Udieresis" g2="period" k="41" />
-<hkern g1="Udieresis" g2="A" k="20" />
-<hkern g1="Udieresis" g2="Agrave" k="20" />
-<hkern g1="Udieresis" g2="Aacute" k="20" />
-<hkern g1="Udieresis" g2="Acircumflex" k="20" />
-<hkern g1="Udieresis" g2="Atilde" k="20" />
-<hkern g1="Udieresis" g2="Adieresis" k="20" />
-<hkern g1="Udieresis" g2="Aring" k="20" />
-<hkern g1="Udieresis" g2="quotesinglbase" k="41" />
-<hkern g1="Udieresis" g2="quotedblbase" k="41" />
-<hkern g1="Yacute" g2="comma" k="123" />
-<hkern g1="Yacute" g2="period" k="123" />
-<hkern g1="Yacute" g2="question" k="-41" />
-<hkern g1="Yacute" g2="A" k="123" />
-<hkern g1="Yacute" g2="C" k="41" />
-<hkern g1="Yacute" g2="G" k="41" />
-<hkern g1="Yacute" g2="O" k="41" />
-<hkern g1="Yacute" g2="Q" k="41" />
-<hkern g1="Yacute" g2="a" k="102" />
-<hkern g1="Yacute" g2="c" k="102" />
-<hkern g1="Yacute" g2="d" k="102" />
-<hkern g1="Yacute" g2="e" k="102" />
-<hkern g1="Yacute" g2="g" k="41" />
-<hkern g1="Yacute" g2="m" k="61" />
-<hkern g1="Yacute" g2="n" k="61" />
-<hkern g1="Yacute" g2="o" k="102" />
-<hkern g1="Yacute" g2="p" k="61" />
-<hkern g1="Yacute" g2="q" k="102" />
-<hkern g1="Yacute" g2="r" k="61" />
-<hkern g1="Yacute" g2="s" k="82" />
-<hkern g1="Yacute" g2="u" k="61" />
-<hkern g1="Yacute" g2="z" k="41" />
-<hkern g1="Yacute" g2="Agrave" k="123" />
-<hkern g1="Yacute" g2="Aacute" k="123" />
-<hkern g1="Yacute" g2="Acircumflex" k="123" />
-<hkern g1="Yacute" g2="Atilde" k="123" />
-<hkern g1="Yacute" g2="Adieresis" k="123" />
-<hkern g1="Yacute" g2="Aring" k="123" />
-<hkern g1="Yacute" g2="Ccedilla" k="41" />
-<hkern g1="Yacute" g2="Ograve" k="41" />
-<hkern g1="Yacute" g2="Oacute" k="41" />
-<hkern g1="Yacute" g2="Ocircumflex" k="41" />
-<hkern g1="Yacute" g2="Otilde" k="41" />
-<hkern g1="Yacute" g2="Odieresis" k="41" />
-<hkern g1="Yacute" g2="Oslash" k="41" />
-<hkern g1="Yacute" g2="agrave" k="102" />
-<hkern g1="Yacute" g2="aacute" k="102" />
-<hkern g1="Yacute" g2="acircumflex" k="102" />
-<hkern g1="Yacute" g2="atilde" k="102" />
-<hkern g1="Yacute" g2="adieresis" k="102" />
-<hkern g1="Yacute" g2="aring" k="102" />
-<hkern g1="Yacute" g2="ae" k="102" />
-<hkern g1="Yacute" g2="ccedilla" k="102" />
-<hkern g1="Yacute" g2="egrave" k="102" />
-<hkern g1="Yacute" g2="eacute" k="102" />
-<hkern g1="Yacute" g2="ecircumflex" k="102" />
-<hkern g1="Yacute" g2="edieresis" k="102" />
-<hkern g1="Yacute" g2="ograve" k="102" />
-<hkern g1="Yacute" g2="oacute" k="102" />
-<hkern g1="Yacute" g2="ocircumflex" k="102" />
-<hkern g1="Yacute" g2="otilde" k="102" />
-<hkern g1="Yacute" g2="odieresis" k="102" />
-<hkern g1="Yacute" g2="oslash" k="102" />
-<hkern g1="Yacute" g2="ugrave" k="61" />
-<hkern g1="Yacute" g2="uacute" k="61" />
-<hkern g1="Yacute" g2="ucircumflex" k="61" />
-<hkern g1="Yacute" g2="udieresis" k="61" />
-<hkern g1="Yacute" g2="OE" k="41" />
-<hkern g1="Yacute" g2="oe" k="102" />
-<hkern g1="Yacute" g2="quotesinglbase" k="123" />
-<hkern g1="Yacute" g2="quotedblbase" k="123" />
-<hkern g1="Thorn" g2="comma" k="266" />
-<hkern g1="Thorn" g2="period" k="266" />
-<hkern g1="Thorn" g2="A" k="102" />
-<hkern g1="Thorn" g2="X" k="41" />
-<hkern g1="Thorn" g2="Z" k="20" />
-<hkern g1="Thorn" g2="Agrave" k="102" />
-<hkern g1="Thorn" g2="Aacute" k="102" />
-<hkern g1="Thorn" g2="Acircumflex" k="102" />
-<hkern g1="Thorn" g2="Atilde" k="102" />
-<hkern g1="Thorn" g2="Adieresis" k="102" />
-<hkern g1="Thorn" g2="Aring" k="102" />
-<hkern g1="Thorn" g2="quotesinglbase" k="266" />
-<hkern g1="Thorn" g2="quotedblbase" k="266" />
-<hkern g1="agrave" g2="quotedbl" k="20" />
-<hkern g1="agrave" g2="quotesingle" k="20" />
-<hkern g1="agrave" g2="quoteright" k="20" />
-<hkern g1="agrave" g2="quotedblright" k="20" />
-<hkern g1="aacute" g2="quotedbl" k="20" />
-<hkern g1="aacute" g2="quotesingle" k="20" />
-<hkern g1="aacute" g2="quoteright" k="20" />
-<hkern g1="aacute" g2="quotedblright" k="20" />
-<hkern g1="acircumflex" g2="quotedbl" k="20" />
-<hkern g1="acircumflex" g2="quotesingle" k="20" />
-<hkern g1="acircumflex" g2="quoteright" k="20" />
-<hkern g1="acircumflex" g2="quotedblright" k="20" />
-<hkern g1="atilde" g2="quotedbl" k="20" />
-<hkern g1="atilde" g2="quotesingle" k="20" />
-<hkern g1="atilde" g2="quoteright" k="20" />
-<hkern g1="atilde" g2="quotedblright" k="20" />
-<hkern g1="adieresis" g2="quotedbl" k="20" />
-<hkern g1="adieresis" g2="quotesingle" k="20" />
-<hkern g1="adieresis" g2="quoteright" k="20" />
-<hkern g1="adieresis" g2="quotedblright" k="20" />
-<hkern g1="aring" g2="quotedbl" k="20" />
-<hkern g1="aring" g2="quotesingle" k="20" />
-<hkern g1="aring" g2="quoteright" k="20" />
-<hkern g1="aring" g2="quotedblright" k="20" />
-<hkern g1="egrave" g2="quotedbl" k="20" />
-<hkern g1="egrave" g2="quotesingle" k="20" />
-<hkern g1="egrave" g2="v" k="41" />
-<hkern g1="egrave" g2="w" k="41" />
-<hkern g1="egrave" g2="x" k="41" />
-<hkern g1="egrave" g2="y" k="41" />
-<hkern g1="egrave" g2="z" k="20" />
-<hkern g1="egrave" g2="yacute" k="41" />
-<hkern g1="egrave" g2="quoteright" k="20" />
-<hkern g1="egrave" g2="quotedblright" k="20" />
-<hkern g1="eacute" g2="quotedbl" k="20" />
-<hkern g1="eacute" g2="quotesingle" k="20" />
-<hkern g1="eacute" g2="v" k="41" />
-<hkern g1="eacute" g2="w" k="41" />
-<hkern g1="eacute" g2="x" k="41" />
-<hkern g1="eacute" g2="y" k="41" />
-<hkern g1="eacute" g2="z" k="20" />
-<hkern g1="eacute" g2="yacute" k="41" />
-<hkern g1="eacute" g2="quoteright" k="20" />
-<hkern g1="eacute" g2="quotedblright" k="20" />
-<hkern g1="ecircumflex" g2="quotedbl" k="20" />
-<hkern g1="ecircumflex" g2="quotesingle" k="20" />
-<hkern g1="ecircumflex" g2="v" k="41" />
-<hkern g1="ecircumflex" g2="w" k="41" />
-<hkern g1="ecircumflex" g2="x" k="41" />
-<hkern g1="ecircumflex" g2="y" k="41" />
-<hkern g1="ecircumflex" g2="z" k="20" />
-<hkern g1="ecircumflex" g2="yacute" k="41" />
-<hkern g1="ecircumflex" g2="quoteright" k="20" />
-<hkern g1="ecircumflex" g2="quotedblright" k="20" />
-<hkern g1="edieresis" g2="quotedbl" k="20" />
-<hkern g1="edieresis" g2="quotesingle" k="20" />
-<hkern g1="edieresis" g2="v" k="41" />
-<hkern g1="edieresis" g2="w" k="41" />
-<hkern g1="edieresis" g2="x" k="41" />
-<hkern g1="edieresis" g2="y" k="41" />
-<hkern g1="edieresis" g2="z" k="20" />
-<hkern g1="edieresis" g2="yacute" k="41" />
-<hkern g1="edieresis" g2="quoteright" k="20" />
-<hkern g1="edieresis" g2="quotedblright" k="20" />
-<hkern g1="eth" g2="quotedbl" k="20" />
-<hkern g1="eth" g2="quotesingle" k="20" />
-<hkern g1="eth" g2="v" k="41" />
-<hkern g1="eth" g2="w" k="41" />
-<hkern g1="eth" g2="x" k="41" />
-<hkern g1="eth" g2="y" k="41" />
-<hkern g1="eth" g2="z" k="20" />
-<hkern g1="eth" g2="yacute" k="41" />
-<hkern g1="eth" g2="quoteright" k="20" />
-<hkern g1="eth" g2="quotedblright" k="20" />
-<hkern g1="ograve" g2="quotedbl" k="20" />
-<hkern g1="ograve" g2="quotesingle" k="20" />
-<hkern g1="ograve" g2="v" k="41" />
-<hkern g1="ograve" g2="w" k="41" />
-<hkern g1="ograve" g2="x" k="41" />
-<hkern g1="ograve" g2="y" k="41" />
-<hkern g1="ograve" g2="z" k="20" />
-<hkern g1="ograve" g2="yacute" k="41" />
-<hkern g1="ograve" g2="quoteright" k="20" />
-<hkern g1="ograve" g2="quotedblright" k="20" />
-<hkern g1="oacute" g2="quotedbl" k="20" />
-<hkern g1="oacute" g2="quotesingle" k="20" />
-<hkern g1="oacute" g2="v" k="41" />
-<hkern g1="oacute" g2="w" k="41" />
-<hkern g1="oacute" g2="x" k="41" />
-<hkern g1="oacute" g2="y" k="41" />
-<hkern g1="oacute" g2="z" k="20" />
-<hkern g1="oacute" g2="yacute" k="41" />
-<hkern g1="oacute" g2="quoteright" k="20" />
-<hkern g1="oacute" g2="quotedblright" k="20" />
-<hkern g1="ocircumflex" g2="quotedbl" k="20" />
-<hkern g1="ocircumflex" g2="quotesingle" k="20" />
-<hkern g1="ocircumflex" g2="v" k="41" />
-<hkern g1="ocircumflex" g2="w" k="41" />
-<hkern g1="ocircumflex" g2="x" k="41" />
-<hkern g1="ocircumflex" g2="y" k="41" />
-<hkern g1="ocircumflex" g2="z" k="20" />
-<hkern g1="ocircumflex" g2="yacute" k="41" />
-<hkern g1="ocircumflex" g2="quoteright" k="20" />
-<hkern g1="ocircumflex" g2="quotedblright" k="20" />
-<hkern g1="odieresis" g2="quotedbl" k="41" />
-<hkern g1="odieresis" g2="quotesingle" k="41" />
-<hkern g1="odieresis" g2="quoteright" k="41" />
-<hkern g1="odieresis" g2="quotedblright" k="41" />
-<hkern g1="oslash" g2="quotedbl" k="20" />
-<hkern g1="oslash" g2="quotesingle" k="20" />
-<hkern g1="oslash" g2="v" k="41" />
-<hkern g1="oslash" g2="w" k="41" />
-<hkern g1="oslash" g2="x" k="41" />
-<hkern g1="oslash" g2="y" k="41" />
-<hkern g1="oslash" g2="z" k="20" />
-<hkern g1="oslash" g2="yacute" k="41" />
-<hkern g1="oslash" g2="quoteright" k="20" />
-<hkern g1="oslash" g2="quotedblright" k="20" />
-<hkern g1="yacute" g2="quotedbl" k="-82" />
-<hkern g1="yacute" g2="quotesingle" k="-82" />
-<hkern g1="yacute" g2="comma" k="82" />
-<hkern g1="yacute" g2="period" k="82" />
-<hkern g1="yacute" g2="question" k="-41" />
-<hkern g1="yacute" g2="quoteright" k="-82" />
-<hkern g1="yacute" g2="quotesinglbase" k="82" />
-<hkern g1="yacute" g2="quotedblright" k="-82" />
-<hkern g1="yacute" g2="quotedblbase" k="82" />
-<hkern g1="thorn" g2="quotedbl" k="20" />
-<hkern g1="thorn" g2="quotesingle" k="20" />
-<hkern g1="thorn" g2="v" k="41" />
-<hkern g1="thorn" g2="w" k="41" />
-<hkern g1="thorn" g2="x" k="41" />
-<hkern g1="thorn" g2="y" k="41" />
-<hkern g1="thorn" g2="z" k="20" />
-<hkern g1="thorn" g2="yacute" k="41" />
-<hkern g1="thorn" g2="quoteright" k="20" />
-<hkern g1="thorn" g2="quotedblright" k="20" />
-<hkern g1="ydieresis" g2="quotedbl" k="-82" />
-<hkern g1="ydieresis" g2="quotesingle" k="-82" />
-<hkern g1="ydieresis" g2="comma" k="82" />
-<hkern g1="ydieresis" g2="period" k="82" />
-<hkern g1="ydieresis" g2="question" k="-41" />
-<hkern g1="ydieresis" g2="quoteright" k="-82" />
-<hkern g1="ydieresis" g2="quotesinglbase" k="82" />
-<hkern g1="ydieresis" g2="quotedblright" k="-82" />
-<hkern g1="ydieresis" g2="quotedblbase" k="82" />
-<hkern g1="OE" g2="J" k="-123" />
-</font>
-</defs>
-</svg>
diff --git a/static/fonts/opensans-e3fd16403f24a08113a25694375f81f33c5a258c.woff2 b/static/fonts/opensans-e3fd16403f24a08113a25694375f81f33c5a258c.woff2
deleted file mode 100755
index a384113..0000000
--- a/static/fonts/opensans-e3fd16403f24a08113a25694375f81f33c5a258c.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-e78854b43389426899362d164d53fbf48274b93a.woff2 b/static/fonts/opensans-e78854b43389426899362d164d53fbf48274b93a.woff2
deleted file mode 100755
index f6a8ce6..0000000
--- a/static/fonts/opensans-e78854b43389426899362d164d53fbf48274b93a.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-e839476c7410d2f694c65d3944604ad28914ca2f.woff2 b/static/fonts/opensans-e839476c7410d2f694c65d3944604ad28914ca2f.woff2
deleted file mode 100755
index ded7002..0000000
--- a/static/fonts/opensans-e839476c7410d2f694c65d3944604ad28914ca2f.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-e9d0949ee599c94d4f310e35793abe016cb7e86b.ttf b/static/fonts/opensans-e9d0949ee599c94d4f310e35793abe016cb7e86b.ttf
deleted file mode 100755
index 81fd77e..0000000
--- a/static/fonts/opensans-e9d0949ee599c94d4f310e35793abe016cb7e86b.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-ebd05b36b3d9ee7ed2cbcee6cdf5796ce05d839c.woff2 b/static/fonts/opensans-ebd05b36b3d9ee7ed2cbcee6cdf5796ce05d839c.woff2
deleted file mode 100755
index 511512c..0000000
--- a/static/fonts/opensans-ebd05b36b3d9ee7ed2cbcee6cdf5796ce05d839c.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-ec2590bc030c185025fbc09afe2f268af6e38985.woff2 b/static/fonts/opensans-ec2590bc030c185025fbc09afe2f268af6e38985.woff2
deleted file mode 100755
index bf65567..0000000
--- a/static/fonts/opensans-ec2590bc030c185025fbc09afe2f268af6e38985.woff2
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-ee96f92c030d0e35d631a16c507a7a269e9594b5.ttf b/static/fonts/opensans-ee96f92c030d0e35d631a16c507a7a269e9594b5.ttf
deleted file mode 100755
index fd7156a..0000000
--- a/static/fonts/opensans-ee96f92c030d0e35d631a16c507a7a269e9594b5.ttf
+++ /dev/null
Binary files differ
diff --git a/static/fonts/opensans-f06dff19fbba12718cd431381a1dd1202bd13763.woff2 b/static/fonts/opensans-f06dff19fbba12718cd431381a1dd1202bd13763.woff2
deleted file mode 100755
index 0ebb279..0000000
--- a/static/fonts/opensans-f06dff19fbba12718cd431381a1dd1202bd13763.woff2
+++ /dev/null
Binary files differ
diff --git a/teaching/encryption/01-encryption-101-basics.md b/teaching/encryption/01-encryption-101-basics.md
new file mode 100755
index 0000000..082016c
--- /dev/null
+++ b/teaching/encryption/01-encryption-101-basics.md
@@ -0,0 +1,70 @@
+Title: 01. Encryption 101: Basics
+Date: 2013-07-26 20:31
+Category: Data Privacy
+Tags: Guides
+Slug: 01-encryption-101-basics
+Status: published
+
+If you haven't lived under a rock for the past few weeks you'll have
+heard about the NSA and PRISM essentially spying spying on the entire
+world. Now, I will write an article about why this is actually upsetting
+and there are good reasons to protect ones privacy even if you have
+"nothing to hide". In this tutorial I want to show you that encrypting
+your communications and computers is a good way to protect yourself but
+hardly the only thing you can do. And even if you encrypt everything in
+your life you will leave behind a lot of meta data on the internet.
+Enough to reconstruct what you were doing, what you think, who you would
+vote for etc.
+
+In this series I want to show you a little bit how you can protect
+yourself. However, in this first post I want to explain you the basics
+of cryptography. I won't go into detail about mathematical constructs,
+you can read that on Wikipedia. But as an average person you won't need
+that. Let's begin.
+
+There are different ways how to encrypt things. The two big ways I want
+to talk about now is **symmetric** and **asymmetric** encryption.
+
+Let's look at symmetric encryption first:
+
+![tutorial\_encryption\_symmetric](http://www.spacekookie.de/wp-content/uploads/2013/07/Screen-Shot-2013-07-26-at-22.13.29.png)
+
+In symmetric encryption the user creates a key. That key is then being
+used to encrypt but also decrypt a file. This makes the process of
+encryption and decryption very fast, however also creates the problem
+that the key needs to be transferred safely. If somebody got hold of the
+key they could encrypt and decrypt files that they might not be able to.
+Symmetric encryption is great for hard drive and large chunks of data.
+
+However this isn't very practical in communication with others. You want
+others to be able to encrypt messages sending to you but be the only one
+that can decrypt them again. This is the basic idea of asymmetric
+encryption. The following schematic will explain.
+
+![tutorial\_encryption\_assymetric](http://www.spacekookie.de/wp-content/uploads/2013/07/Screen-Shot-2013-07-26-at-22.14.54.png)
+
+There is a pair of keys: one public, one private. The public key is
+being used to encrypt a file. In practise this is the key that you send
+out to other people. They encrypt the messages they send to you and then
+send them to you.
+The private key is the one you keep to yourself (private) and under no
+circumstances send to any computer or device. Only transport it on
+offline drives like USB sticks, SD cards or external hard drives. This
+is the key that will allow you to decrypt messages sent to you.
+
+If you use asymmetric encryption in your communication you can encrypt
+messages for others with their public keys and decrypt messages others
+sent you with your private key.
+
+
+In following tutorials I will quickly show you how to encrypt messages
+using PGP on Mac OS X, Windows and Linux, how to encrypt your hard drive
+on Mac and Windows and also how to use encrypted instant messaging
+services. After that I will show you ways to stay anonymous on the
+internet and leave behind fewer clues about who you are and what you
+were doing. Even if you have nothing to hide that doesn't mean that you
+need to invite everybody into your private life!
+
+P.S. This tutorial series was inspired by my brothers short descriptions
+about security [here](http://www.leandersabel.de/itsecurity/).
diff --git a/teaching/encryption/02-encryption-101-pgp-on-mac.md b/teaching/encryption/02-encryption-101-pgp-on-mac.md
new file mode 100755
index 0000000..a189244
--- /dev/null
+++ b/teaching/encryption/02-encryption-101-pgp-on-mac.md
@@ -0,0 +1,366 @@
+Title: 02. Encryption 101: PGP on Mac
+Date: 2013-10-16 16:26
+Category: Data Privacy
+Tags: Guides
+Slug: 02-encryption-101-pgp-on-mac
+Status: published
+
+Hello Internet,
+
+I started this series about encryption a few weeks ago but then kinda
+ran out of time to actually do something with it so now I want to
+continue it. Essentially this is about PGP and email encryption. This
+tutorial is being inspired by my brothers (much shorter) article about
+the whole thing:
+<http://www.leandersabel.de/itsecurity/e-mail-encryption/>)
+
+What is PGP, you might ask? Well, it's a good question. PGP stands for
+Pretty Good Privacy and uses an asymmetrical encryption concept that you
+should have learned about in the [last blog
+post](http://www.spacekookie.de/01-encryption-101-basics/ "01. Encryption 101: Basics")in
+this series. If you haven't...shame on you!
+
+I want to focus on installing this email encryption on Mac Computers
+first. This is compatible for several versions back.
+
+The asymetric email encryption is based on a zero knowlege principle:
+you send data through the web and except for the recipient of that data
+NOBODY will be able to know what it is. Due to that the encryption needs
+to happen on your device (in this case a Mac computer) and be decrypted
+on an end device again (for example a Windows computer).
+
+It doesn't really matter what e-mail provider you use as you will be
+downloading the mails anyways. The easiest way to do that on a Mac is
+with the pre-installed *Mail* program. If you haven't already get your
+Mail to download mail from your account. If you've done this already you
+can skip ahead to **[Encrypting your Mail](#encryption).**
+
+**Setting up Mail with your account** {style="text-align: justify;"}
+-------------------------------------
+
+Open Mail and click on Mail --\> Preferences
+
+[![mailpgp1](http://www.spacekookie.de/wp-content/uploads/2013/10/mailpgp1.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/mailpgp1.png)
+
+In the upcoming window click on Accounts and then select the "+" sign on
+the bottom
+[![mailpgp2\_1](http://www.spacekookie.de/wp-content/uploads/2013/10/mailpgp2_1.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/mailpgp2_1.png)Another
+window will pop up where you need to enter the apropriate information.
+For large e-mail providers like gmail, yahoo, hotmail, etc. this is
+quite trivial. If you are using a different webhoster you might have to
+**check their FAQs for server information!**
+
+**[![mailpgp3](http://www.spacekookie.de/wp-content/uploads/2013/10/mailpgp3.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/mailpgp3.png)**After
+this is done you should be able to download the e-mails from your
+account to your computer. You may start a celebratory dance now!
+
+Next up:
+
+<a name="encryption"></a>
+
+**Encrypting your Mail
+** {style="text-align: justify;"}
+-----------------------
+
+Now that your emails are being downloaded to your computer we can set
+you up with the encryption software. The one that is the easiest to use
+is called GPG, standing for *GNU Privacy Guard* (with GNU being a linux
+distribution). The software comes in an easy to install package that can
+be found at: [https://gpgtools.org](https://gpgtools.org/) Just scroll
+down to the download button and download the suite to your computer.
+Double click the .dmg file you downloaded and wait for the following
+window to pop up:
+
+[![gpginstall1](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall1.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall1.png)
+
+This should be trivial but double click install :) Another window will
+come up. Be sure to select the right harddrive. It should be installed
+on the harddrive that also contains your operating system. In my case
+the Harddrive is called *TARDIS* (It's bigger on the inside).
+
+[![gpginstall2](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall2.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall2.png)
+
+When the installation is complete eject the installation drive by
+dragging it onto the trash. It's not needed anymore. Open GPG (by either
+searching for it in your Applications folder or using spotlight in the
+top right corner)
+
+[![gpginstall3](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall3.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall3.png)
+
+When you open GPG for the first time it will look somewhat like this for
+you: (Except you won't have any keys in it).
+
+[![gpfinstall4](http://www.spacekookie.de/wp-content/uploads/2013/10/gpfinstall4.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/gpfinstall4.png)
+
+Enter your name, your email adress and check the "Upload public key
+after generation" to make it easier for people to be able to find your
+key. This means that they will be able to send you e-mails encrypted. If
+you don't want that, don't tick it. I recomend it for regular users
+because it makes exchanging keys easier. Press **Generate key**
+to…generate the key (duh). During the generation process move your mouse
+as much as possible and even type random letters on your keyboard.
+
+[![gpginstall5.png](http://www.spacekookie.de/wp-content/uploads/2013/10/Screen-Shot-2013-10-16-at-17.40.57.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/Screen-Shot-2013-10-16-at-17.40.57.png)When
+a window comes up and promts you to enter a password do that so.
+**Choose a strong password as it will be the foundation of your e-mail
+encryption**. The longer and more complicated, the better. The
+application will then take your passphrase and the random input from
+mouse and keyboard to generate a pair of keys: one private, one public.
+
+If you checked it accordingly the public key will be uploaded to the MGU
+servers for other people to find. The public key is used to encrypt
+emails. Other people that have your public key can thus send you a
+message that is encrypted. To decrypt the messages you need your private
+key **that should under no circumstances be sent via the internet or any
+network!**
+
+If you need to move your private key to a second computer for use do so
+on a USB drive or local, external harddrive. **DO NOT STORE YOUR PRIVATE
+KEY IN A CLOUD SERVICE**
+
+[![gpginstall6](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall6.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/gpginstall6.png)
+
+The "sec" indicates that there is a secure (private) key. The "pub"
+stands for a public key. The two combined make a key pair which you
+should only have one of. So far you should be set to communicate so
+let's move onto the next topic:
+
+ {style="text-align: justify;"}
+
+**Sending encrypted Mail** {style="text-align: justify;"}
+--------------------------
+
+Now that this is all set up, what can you do with this? First of all,
+this encryption only works if the other person you're communicating with
+is also using a PGP system (no matter what implimentation or operating
+system).
+
+First of all be sure to restart your Mail application after you
+installed GPG. Otherwise the plugin won't start. Go ahead and compose a
+new email. This is what it should look like now:
+
+[![mailtest1](http://www.spacekookie.de/wp-content/uploads/2013/10/mailtest1.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/mailtest1.png)
+
+The green space on the top right indicates that OpenPGP is active with
+the selected email adress. The little tick in the middle confirmes that
+a signature will be attached to the mail. You can disable to sign your
+emails by clicking on the tick.
+
+If you then enter an email adress of somebody that you own the public
+key from (in my case let me write a mail to my brother Leander) things
+will change a bit:
+
+[![mailtest2](http://www.spacekookie.de/wp-content/uploads/2013/10/mailtest2.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/mailtest2.png)
+
+The lock icon will become active and you will be able to lock it. The
+lock indicates that the email will be encrypted. As the picture also
+indicates the subject of a message is not being encrypted, **only the
+content (including attachments).** Oh and please note that sending
+attachments of multiple gigabytes might take a while to encrypt :)
+
+If I send this message now, let's see what it looks like for the NSA:
+
+``` {.lang:default .decode:true}
+-----BEGIN PGP MESSAGE-----
+Comment: GPGTools - http://gpgtools.org
+
+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
+qJNMy4CS6/L22o/yiUw=
+=hOZe
+-----END PGP MESSAGE-----
+```
+
+Yea...not very much :) The longer your key (and message obviously) the
+more and longer jibberish the message will be. And the best thing? It is
+mathematically impossible to reverse engineer the message by generating
+random keys. Because for each encrypted message there is a key that can
+make the original message into any other message. Literally the message
+I just sent my brother could be translated into Shakespeares Hamlet with
+the right key.
+
+A little note: What you see above is what you will see in your mail
+inbox if you access your mails without the Mail program or GPG
+installed. So be sure to follow the tutorial again for any computer you
+might use this on. In my opinion this is the best part, as copanies like
+Google or Microsoft that store your emails will have no idea what you're
+sending things about.
+
+ {style="text-align: justify;"}
+
+<a name="exporting"></a>
+
+ {style="text-align: justify;"}
+
+**A few last pointers** {style="text-align: justify;"}
+-----------------------
+
+Right clicking onto your key pair in GPG will get you a context menu
+with which you will be able to do a variety of things. Now an
+explanation for the most important ones:
+
+1. Export: saves the key as a text file to a location on your computer.
+ You can either export your public key or the pair (public and
+ private). Use this to move your private key to a new computer.
+2. Send public key to key server: If you have made changes to your key
+ or haven't checked the option before you can upload your key to a
+ public server for people to find you.
+3. Update a public key from the keyserver in case you accidentally
+ deleted it. You can't update your private key. **You loose it, it's
+ gone!**
+4. Show info: displays all kinds of information about the key. You will
+ be able to add a new e-mail adress to the key, in case you want to
+ send encrypted emails from multiple adresses or change the
+ expiration date of the key, etc.
+
+One last important thing: What if you want to import a key to your GPG
+keychain? Take my public key for example:
+
+``` {.lang:default .decode:true}
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG/MacGPG2 v2.0.19 (Darwin)
+
+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
+kM773MWawwH7Z3VRQLYT/oweYc6Pd1A=
+=NBpw
+-----END PGP PUBLIC KEY BLOCK-----
+```
+
+(Downloadable here:
+<http://spacekookie.de/pgp/katharina-sabel-public.asc>)
+
+First open a text editor of your choosing. In my case I will use the
+standard Mac **Text Edit.** Now you need to copy and paste the key
+(From --BEGIN-- to --END--) and paste it into your text
+editor.[![importkeymac1](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac1.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac1.png)
+
+Looks kinda scary, I know. Hang in there. Now save the file with CMD +
+S. In the following popup you need to select to save the file locally
+and not on Apples iCloud servers. They can be great but not for this!
+
+[![importkeymac2](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac2.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac2.png)
+
+Give the file a random name (it's not really important) and save it.
+Next up close the Text Editor and navigate to your saved file. Right
+click on it to bring up the context menu and choose **Get Info**
+
+[![importkeymac3](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac3.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac3.png)In
+the upcoming window then search for the name field and change the
+extention from .rtf to **.asc**
+
+.RTF is a file format for text files and great for stuff. But we want
+the GPG application to recognize all the jibberish as a key and for that
+we need to change the extention to .asc
+
+When your computer prompts you if you're sure you agree and change the
+extention to **.ASC**
+
+[![importkeymac4](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac4.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac4.png)
+
+Now we're almost done. Go to your GPG application, click the IMPORT
+button in the top left and navigate to your key.asc file on your
+computer you just created. Press open and see the magic happen as the
+key is being added to your keychain.
+
+[![importkeymac5](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac5.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/importkeymac5.png)
+
+Now...there is a much easier way to import new keys and that's why I
+kind of insisted on your uploading your public key to a keyserver. If
+you go to your GPG application, select **Key** (in the menu bar on top
+of the screen) and then **Search for key** you will be promted with a
+little window:
+
+[![importkrymac6](http://www.spacekookie.de/wp-content/uploads/2013/10/importkrymac6.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/importkrymac6.png)In
+that window you can search for an email adress or parts of it to find a
+key. To find my public key simply search for katharina.sabel.
+
+I kinda fucked up my keys a few months ago so I have two keys on the
+server. Select the one that was created last (\~August 2013) to add the
+key to your keychain. You won't have to deal with any of the hassle
+including file formats, copy pasting, etc. It's all done.
+
+Feel free to hit me up with a random message to
+sabel.katharina@gmail.com. Be sure to encrypt it, just to test things
+out. And I hope that this tutorial will encourage you to encourage more
+of your family and friends to use encryption. If not for transmitting
+sensible documents like contracts, bills or whatever just to piss off
+the NSA :)
+
+Have a lovely day,
+
+\~Kate
diff --git a/teaching/encryption/03-encryption-101-pgp-on-ios.md b/teaching/encryption/03-encryption-101-pgp-on-ios.md
new file mode 100755
index 0000000..8e841b9
--- /dev/null
+++ b/teaching/encryption/03-encryption-101-pgp-on-ios.md
@@ -0,0 +1,161 @@
+Title: 03. Encryption 101: PGP on iOS
+Date: 2013-10-17 12:46
+Category: Data Privacy
+Tags: Guides
+Slug: 03-encryption-101-pgp-on-ios
+Status: published
+
+Next up in this series: iOS. I discovered this application by accident
+today and wanted to write about it. First up three things you will need:
+
+1\. A keypair of private/ public key already generated on your computer.
+It's easier this way.
+
+2\. This application for money:
+<https://itunes.apple.com/us/app/ipgmail/id430780873>
+
+3\. An iOS device (duh!)
+
+![iospgp1](http://www.spacekookie.de/wp-content/uploads/2013/10/DSC_0170.jpg)First
+of all install the app on your device (in my case an iPhone). In the
+meantime you should search for your connection cable because you'll hook
+up your device to your computer.
+
+While you wait for the installation to be finished you can also export
+your keypair on your computer. If you're using a Mac click
+[here](http://www.spacekookie.de/02-encryption-101-pgp-on-mac/#exporting)
+to find out how. If you're using Windows click here (To be added with
+the future tutorial!)
+
+Unlock your phone, open the IPGMail App and on your computer open
+iTunes. In iTunes, select your iOS Device in the top right
+corner[![iospgp2](http://www.spacekookie.de/wp-content/uploads/2013/10/iospgp2.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/iospgp2.png).
+Select "Apps", scroll down until you reach the area shown in the
+screenshot. There select the iPGMail App and select "Add". Navigate to
+the directory on your computer where you exported your key pair and add
+it. Note that for this to work you need to have the IPGMail App open on
+your device, otherwise you might get an error about writing
+persmissions!
+
+[![iospgp3](http://www.spacekookie.de/wp-content/uploads/2013/10/iospgp3.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/iospgp3.png)With
+that done close iTunes and turn your attention towards your iOS device
+again.
+
+In the application you will see a few tabs. Most of them are self
+explanatory: Keys, Compose, Decode and Settings. The "Files"tab  holds
+the key that you just moved into the app. Tap on the tab, select the key
+pair you imported and select "decode" in the upcoming context menu.
+**THIS WILL TAKE A WHILE!** So be sure to get some coffee or read a book
+in the mean time.
+
+At some point the application will prompt you for a password. Enter the
+passphrase that you chose for your PGP key during generation. For some
+advice on how to handle your keyphrase (if it's longer) click
+[here](#passphrases-storage).
+
+You're almost done. You will see the freshly imported Private key in the
+Keys-tab. You can either import public keys the same way OR you can
+search for them. That's why it's important to upload your key to a
+keyserver ;)
+
+Go to the public Keys tab, press the "+" and for the server select
+"pgp.mit.edu:11371". That's where I store my key on (and that is AFAIK
+the most common). Then you can search for an email adress again, like
+mine: sabel.katharina@gmail.com.
+
+When composing an email you need to select your private key as the
+sender, a public key as the recipient and wether you want to sign and
+encode or just do one of the two. Type your message and hit the
+"export"[![iospgp4](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0056-169x300.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0056.png)
+symbol in the top right corner of the screen.
+
+The application will promt you for a password again. This is your
+keyphrase, so have fun typing it in :) Again, later in this tutorial
+I'll give you a bit of advice on that!
+
+After the encryption the content will be exported into the standard Mail
+App of iOS where you will be able to set a subject that isn't encrypted
+and then send the message. This is what that should look like with an
+example message to my brother again:
+
+[![iospgp5](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0057-576x1024.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0057.png)
+
+<a name="passphrases-storage"></a>
+
+**How to handle your passphrase for Email encryption** {style="text-align: left;"}
+------------------------------------------------------
+
+If you're like me and have a massive passphrase for your PGP key it can
+be a bit of a pain to enter it each time you want to do anything. Having
+a long passphrase is good but entering is annoying. There are multiple
+ways to store your passphrase for copy-paste use. Here in descending
+order of security:
+
+[![1passwordios](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0060-576x1024.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0060.png)**1.
+1Password
+** [http://agilebits.com/**
+**](http://agilebits.com/)
+
+1Password is a password management application for Mac, Windows,
+Android, iOS and webbrowsers. You store your passwords in an encrypted
+keyfile that can be unlocked using a different password, that needs to
+be pretty secure as well. I use the app for all my password managing and
+can thus generate random strings of characters of 30 to 50 bits of
+length for any account I make. my PGP passphrase is 32 bits long.
+
+Just keep your PGP passphrase in there and it's as secure as it can be.
+The keyfile for 1Password can be synced via WiFi, local file transfer or
+stored in Dropbox. Dropbox is pretty unsecure however as the keyfile is
+encrypted with your (hopefully endless) password as well it's manageble.
+
+Unfortunately this is pretty pricy. The iOS App is 16€ in addition to
+the Desktop bundle which is another 50€
+
+
+**[![spideroakis](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0061-576x1024.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0061.png)2.
+SpiderOak
+** <https://spideroak.com/>
+
+SpiderOak is a zero-knowlege encrypted Cloud storage service. Every file
+you upload is locally encrypted on your computer using a passphrase and
+then uploaded and stored on the servers of SpiderOak in encrypted form.
+The basic account offers a 2GB of space for free (for life) with all the
+clients included. Additional space is 10\$/100GB!
+
+Store your passphrase in a text file in your spideroak hive folder
+(which is kinda like a shared instance between all your devices) to copy
+and paste it whenever you need to send an encrypted email. The
+passphrase will be 100% secure in your cloud storage (you could actually
+place your private key in here!) but the problem is that anyone with
+access to your phone will have access to your spideroak files unless you
+want to enter that password on each login again as well.
+
+If you're interested you can use my referral link and get 1GB
+additonally for life:
+<https://spideroak.com/download/referral/7ed9de0ea80f09d88e97f90f23830dde>
+
+
+**[![IMG\_0062](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0062-576x1024.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/IMG_0062.png)3.
+Evernote (Really unsecure!!!)**
+<https://evernote.com>
+
+I'm just including this to make the list complete but don't actually do
+this if you can do anything else. Evernote has a horrible horrible
+horrible [...] horrible encryption and it's just about as saving your
+passwords in plain text. I have to admit, I did this a while ago because
+of the lack of other options but it's really not a good thing. Evernote
+has a lot of amazing tools and for clipping articles found on the web,
+sharing notes with others etc it's a great tool. Just for privacy issues
+I wouldn't recommend storing any sensible information in an Evernote
+file.
+
+
+That's it for today. If you have any questions/ sugestions/ whatever,
+post them in the comments below. And until next time.
+
+
+\~Kate
diff --git a/teaching/encryption/04-encryption-101-pgp-on-windows.md b/teaching/encryption/04-encryption-101-pgp-on-windows.md
new file mode 100755
index 0000000..0c4bdb0
--- /dev/null
+++ b/teaching/encryption/04-encryption-101-pgp-on-windows.md
@@ -0,0 +1,227 @@
+Title: 04. Encryption 101: PGP on Windows
+Date: 2013-10-17 19:32
+Category: Data Privacy
+Tags: Guides
+Slug: 04-encryption-101-pgp-on-windows
+Status: published
+
+After writing about the
+[Mac](http://www.spacekookie.de/02-encryption-101-pgp-on-mac/ "02. Encryption 101: PGP on Mac")
+and
+[iOS](http://www.spacekookie.de/03-encryption-101-pgp-on-ios/ "03. Encryption 101: PGP on iOS")
+versions of PGP Mail encryption I want to explain the whole ordeal for
+Windows computers now. As for the Mac version the tutorial will be split
+in two parts. The first about setting up a Mail client (Thunderbird in
+our case) to download emails from your hoster and the second about
+actually encrypting emails. If you have done this already you can skip
+[AHEAD](#encrypting)! Let's get started.
+
+**Setting up Thunderbird** {style="text-align: justify;"}
+--------------------------
+
+Windows doesn't come installed with a very good mail software and so
+it's recommended to use a third party application. Mozilla is doing a
+really good job with their projects and Thunderbird is one of the better
+mail programs out there. You can download the latest version of
+Thunderbird here:
+[www.mozilla.org/thunderbird](http://www.mozilla.org/thunderbird/).[
+](www.mozilla.org/thunderbird/)Once downloaded, install the application
+onto your main hard drive and open it afterwards.
+
+[![winpgp1](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp1.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp1.png)Confirm
+to use Thunderbird as your standard mail application. Dismiss the setup
+helper thing. Then go to the account settings as displayed in the
+screenshot above. On the upcoming window click the "Account Actions" in
+the bottom left corner and then select "New Mail Account". In the
+upcoming window you should then insert your Mail account settings as
+shown in the picture below.
+
+[![winpgp3](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp3.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp3.png)
+
+Confirm with Continue and in the upcoming screen select "IMAP", not
+"POP". If you're using a mainstream hosting service this should be
+trivial. If you're using a smaller one you might have to read their FAQ
+for server information.
+
+After the setup is done be sure to fetch your email once to check if the
+settings are really working. Now we're ready to set you up with GPG
+which is a software suite to encrypt emails.
+
+<a name="encrypting"></a>
+
+**Encrypting E-Mails
+** {style="text-align: justify;"}
+---------------------
+
+First up you need to go and download the Enigmail software suite. You
+can do so here: <https://www.enigmail.net/download/>.Be sure to select
+the right version of Thunderbird. Also note that the 32bit Version of
+Enigmail works fine on 64bit Windows machines.
+
+Download the file and save it on your Desktop. It's not something you
+can run directly. To install it go back to Thunderbird and navigate to
+your Add-Ons tab.
+
+[![winpgp4](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp4.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp4.png)Then
+select "Extensions" in the tab and drag&drop the downloaded file into
+it. There will be a window popping up prompting you to confirm the
+installation.
+
+[![winpgp5](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp5-300x206.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp5.png)
+
+After the installation is complete you need to restart your Thunderbird.
+When you open it again there will be a friendly Setup Wizard waiting for
+you. Give it a hug and move on by choosing the "easy" (top) option.
+
+[![winpgp6](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp6.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp6.png)It
+will tell you in the first step that you need to install GNU PG which
+stands for "GNU Privacy Guard". If you read my Mac tutorial you will be
+familiar with that application and know that it's pretty cool and won't
+eat your computer. Agree to the installation and follow the instructions
+as followed (Not much to do wrong).
+
+After that is done it should look a bit like this.
+
+[![winpgp7](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp7.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp7.png)Continue
+by clicking Next.
+
+Next up the Wizard will ask you if you already have a key or need to
+creat one. If this is your first device you want to use PGP with you
+need to create a key pair and I will roughly explain what they are for.
+
+PGP works with two set of keys: public ones and private ones. If you
+want to send somebody an encrypted message, all you need for that is
+their public key. That key will be downloadable on a keyserver and can
+be sent around as attachments on emails. The email will be secure and
+only readable by somebody with the corresponding private key (which
+should only be the owner ;) ). So to summarize: Public key to lock,
+private key to unlock. You will collect the public keys of many people
+but only have one private key that you should **NEVER (!!!)** send
+somewhere over the internet. Use encrypted spaces and preferibly USB
+drives to transport it to different computers!
+
+So again: If you already have a pair of keys from one of my previous
+tutorials select the green option to import it. If you need to create a
+new one, select the red option.
+
+[![winpgp8](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp8.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp8.png)I
+will be focusing on creating one now. At the end of the tutorial I will
+add some things about exporting and importing as well. ([Click
+here!](#key-management))
+
+Next up you will have to choose a passphrase for your key. It should be
+at least 10 characters long (the longer the better, really. Mine is 30
+bits long, randomly generated). Also be sure to move the mouse as much
+as possible during the generation. It gatheres so called "Entropy" to
+randomize the key as much as possible (Computer randomizer aren't very
+random).
+
+You should answer the following questions accordingly:
+
+1. Don't sign every email. It will just confuse people that have no
+ idea what's going on
+2. Don't attach your public key to every message you send for the same
+ reason as 1.
+3. Let Enigmail change some of Thunderbirds settings to run more
+ smooth.
+
+And congratulations. You're done! :)
+
+There are of course still a few things to be learned but this is it in
+general. You are now able to send and recieve encrypted emails. But
+let's check out a few more things.
+
+[![winpgp9](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp9.png)](http://www.spacekookie.de/wp-content/uploads/2013/10/winpgp9.png)Under
+"Sender's Key" you could edit your own key and see details about it. But
+more importantly is the "Key Management" as you will be able to see,
+import and export your key from there as well. Why don't you send me an
+email as a test?
+
+First go into the Key Management, then click on "Keyserver" and "Search
+for Key". Type in my email adress (sabel.katharina@gmail.com) and search
+on the server pgp.mit.edu (not sure why it's not initially part of the
+list). Because I kinda fucked up my keys a few months ago there are
+multiple on the server. Select the latest one (From Juli-August 2013,
+not sure what date exactly!)
+
+Now you'll be able to send me a message. Compose a new message in
+Thunderbird, type in my address and write a message. In the bottom right
+you can choose if you want to sign the message (the pen) and/ or if you
+want to encrypt it (the key). Note that the subject of a message won't
+be encrypted, only the body and attachments! And also note that
+encrypting several gigabytes of data in a message WILL take a long time
+;)
+
+![](data:image/png;base64,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vk1+xawHFqHLfr9UV19T1OL0gHsNm1U59xywSfUPZj8gcwQiyox/BHwPYkJ+pSDkuv0g5RhNAiRwZhEoDZHW3zHGHKMxg6i7nOoqZM1gyy9jFdRxiJQdeQStcWfXKyFWY6VhsNrY0EdUX/ExnO0rxgSKouzMrbH1v82yxX1399OKlaPmRV13h2alJBtz6uorZgZ/R3w4xyVIGx125FfYCjq+QeyoaKvFrscLAxclxD+UT0wjARIggRIn4Lm8TutvvvtWPPGTVZX3z/WeGDtu/MZZVgwDJFDeCRw9eshqQnlc3Y07RHyp32oCAyRAAmcYgXGXPPDkU0/mzttrtavKtKSrrrgyxtpngATOYAJVq1a3WtcmuY0VtgJHDh+xwr6A22O6Yyq5jD/luD2mu3JMZZ8pM+TNc/kGV0wsn9dtAuI7CZCAjYDL5caWyiAJkAAJkAAJkECZEWBPuszQs+LSJFCliq+rWuXsswOrPsstMjAbY0iABEighAjICS38dz5DiT3pEqJNsyQQSQKckI4kTdoigSgl4LLwhCIdpceKbpEACZAACZAARZrnAAmQAAmQAAlEDQHn1zgo0lFzYOgICZAACZBARScgR7zVfwMERbqinxFsPwmQAAmQQDQRMBaQaZe4ujuaDg19IQESIAESIAHb70mzJ83TgQRIgARIgASilABFOkoPDN0iARIgARIgAYo0zwESIAESIAESiFICFOkoPTB0iwRIgARIgAQo0jwHSIAESIAESCBKCVCko/TA0C0SIAESIAESoEjzHCABEiABEiCBKCVAkY7SA0O3SIAESIAESIAizXOABEiABEiABKKUAEU6Sg8M3SIBEiABEqhoBJw/riFbT5GuaOcA20sCJEACJBC9BOQPbNi8o0jbYDBIAiRAAiRAAtFEgCIdTUeDvpAACZAACZCAjQBF2gaDQRIgARIgARKIAgLWiDdFOgqOBl0gARIgARIgATcCFGk3KowjARIgARIggSggQJGOgoNAF0iABEiABEjAjQBF2o0K40iABEiABEggCghQpKPgINAFEiABEiABEnAjQJF2o8I4EiABEiABEogCAhTpKDgIdIEESIAESIAE3AhQpN2oMI4ESIAESIAEooAARToKDgJdIAESIAESIAE3AhRpNyqMIwESIAESIIEoIECRjoKDQBdIgARIgARIwI0ARdqNCuNIgARIgARIIAoIUKSj4CDQBRIgARIgARJwI0CRdqPCOBIgARIgARKIAgIU6Sg4CHSBBEiABEiABNwIUKTdqDCOBEiABEiABKKAAEU6Cg4CXSABEiABEiABScDrh4Ei7QeEuyRAAiRAAiRQhgQcOk2RLsMjwapJgARIgARIwCDgEGeTCkXaJMF3EiABEiABEogyAjFR5g/dIQESIAESIIEKTsDXqWZPuoKfCmw+CZAACZBAtBCAOPv0WTlFkY6WY0M/SIAESIAESMCPAEXaDwh3SYAESIAESCBaCHBOOlqOBP0gARIgARIgARCwj3ibPWl7HCGRAAmQAAmQAAlEAQFTpKPAFbpAAiRAAiRAAiRgJ0CRttNgmARIgARIgASiiIBNpAOXfkeRn3SFBEiABEiABCocAZtIV7i2s8EkQAIkQAIkENUEKNJRfXjoHAmQAAmQQIUh4DKgHSDSXOZdYU4HNpQESIAESCDKCQSIdJT7S/dIgARIgARIoMIQoEhXmEPNhpIACZAACUQzAWMk2zGgTZGO5iNG30iABEiABCoQAa9X4M/+zDGKdAU6/GwqCZAACZBA+SJAkS5fx4vekgAJkAAJVAQCxqA3RboiHGy2kQRIgARIoNwQkIPe0ln5QpEuN4eNjpIACZAACVQUAkZHmiJdUQ4420kCJEACJFD+CLAnXf6OGT0mARIgARKoIAQo0hXkQLOZJEACJEAC5Y9AjOmyOf4t9xG275pZ+E4CJEACJEACJFAiBLTs+osve9IlAptGSYAESIAESKD4BIyetL92F98wLZAACZAACZAACYRNAEJs12IdZk86bH7MSAIkQAIkQAKlS8Cckw6U79L1g7WRAAmQAAmQAAn4EbCGu+0q7ehx+xXgLgmQAAmQAAmQQGQJKA02HzVmM83hbhsMBkmABEiABEggmgi4DXfDP0e/Opr8pS8kQAIkQAIkcOYR0LJrF18VNkXa42yx364zkXskQAIkQAIkQAKRJKBl1y6+Kszh7khCpi0SIAESIAESiCABoyftEXb5du5EsDaaIgESIAESIAESCCCgNNjjp8XI5Tbc7dDrAEuMIAESIAESIAESKBUCHO4uFcyshARIgARIgAQKT8Aa7vYVtS8u88UyRAIkQAIkQAIkUGIEMIptH8jWYfakS4w3DZMACZAACZBA2AS8bt9+Nuek/fXbLudh18CMJEACJEACJEACRSGgO9L+4suedFFYsgwJkAAJkAAJlAAB/wlninQJQKZJEiABEiABEig8AUi0GvT2STVFuvAUWYIESIAESIAESoyAkmhDpynSJYaZhkmABEiABEigSARUl1qWpEgXiR8LkQAJkAAJkEDJE6BIlzxj1kACJEACJEACRSJAkS4SNhYiARIgARIggZInQJEuecasgQRIgARIgASKRIAiXSRsLEQCJEACJEACJU+AIl3yjFkDCZAACZAACRSJAEW6SNhYiARIgARIgARKngBFuuQZswYSIAESIAESKBIBinSRsLEQCZAACZAACZQ8AYp0yTNmDSRAAiRAAiRQJAIU6SJhYyESIAESIAESiDQB62mglmGKtIWCARIgARIgARIoewLGb2soRyjSZX886AEJkAAJkAAJ2AlYOk2RtmNhmARIgARIgASiiIAp0pZqR5FvdIUESIAESIAEKjQBU6QBgTpdoc8ENp4ESIAESCDqCNhEOup8o0MkQAIkQAIkUKEJUKQr9OFn40mABEiABKKZQIzDOY54O3BwhwRIgARIgATKkgB70mVJn3WTAAmQAAmQQAgCFOkQcJhEAiRAAiRAAmVJwE2kOehdlkeEdZMACZAACZCAQcBNpAmHBEiABEiABEggCghQpKPgINAFEiABEiABEhDCo/7sJCjSdhoMkwAJkAAJkEAZEYBEB2wU6QAkjCABEiABEiCB6CBAkY6O40AvSIAESIAESCCAAEU6AAkjSIAESIAESCA6CDifOBYdPtELEiABEiABEigFAl61eTxus8H42SmvF0nBUkvBPVRBkS4dzqyFBEiABEggKghAei0/Qmuwlmedv6wEmyJtHSwGSIAESIAEzmQC+fn5DlXOPSH2fSMObhOHMsXRn0TOMXH6mKhUWcTWEFXqiDoXiLqJokFbT/02iERB6LS/hYjSkt15/PfKF2szRRp3FkH6+1ZWBkiABEiABEigPBKAuMLtSpXUMqwTB0XmErFrqdj3rcg/XXBzqtQSTX4nknp5Erp5YuKQv+Sk2iM8XqnTvr6+KdIFu8kcJEACJEACJFDOCKD7i82Q5yP/FeuekQqdn1uIZpw+Kvakyj+odXJ/cdmwSlVqwWbJSbXdN67uttNgmARIgARI4AwhAB3Ny8tDY6RCn/xVfPmE+HcHsfOdwim0HQbUesN08fpVYtNc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)
+
+And that's it! You're not communicating without anyone else knowing what
+you're talking about, except the person you're contacting of course.
+Even if you have nothing to hide (I know I don't), do it just to piss
+off the NSA. Because this is what they'll see:
+
+``` {.lang:default .decode:true}
+-----BEGIN PGP MESSAGE-----
+Charset: ISO-8859-1
+Version: GnuPG v2.0.22 (MingW32)
+Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
+
+hQEMA7SvZRFbvA8gAQf+IQTNnWLmQi2HX5dFJ85QcL0QfznMDVcEKWN+mk04u9W8
+WoQ8SIBVuY6sil6y9k6qLYzVaJ1XuXC9PxOow0O5KkwQ595ZSvolAbi6acITnlv7
+A361a6eN5pvoMjQexDdklqcWs3JeyU7AXSSKnshltfS1Xw2BeMdsyq7D0PpMLbRC
+KZvdRv8zp3loEEyqVFwpMngEqtKFVsvIrQ+5Ipzk7LM4bNh1D790EUBv9FAvufVo
+h/+NAdE/264tRROff1G1p47K52s/HwYUqmpw2BmHPL2WXUG1yT8obCgpZYE3bWS3
+Uly5JiUfnrxs5xGMQVGJ2NcaOwLecAJwRo1rpnnNnNLA1wGB1VQcpk4Vw4UiRCY3
+6YDJXr2EfN0qQpKVdfnzjNopUnYyJOHC9UdfBXRdIGUh4j+aQanZrfKps1LPpWPF
+la4u4n3CS4G83WPhry7xWdCkK5ZQba5pOTKP68SRXvFxc8FtQyh9OeP39hVLo+TW
+1toRKu037Lhg7XlNYgil2YDe9/MjDWTAjWwBVQK6R4ZGnpKdUWbACQ/FHEliYRHa
++vQGMsPuIeBtCeAgQR1rjTAhTZP0r4+x66lpwn4BeasCXyIID6cOfgMRstM+5rKi
+Fu3X2qzp7ZFLIdtFPbgKdTrldua4RKaRYL9TNBXhzChsvsNzKx32DTeRO/FsPxW3
+d9FZBLisnoincmwtjlg5Miz9aIygJuM0k1J1k6VnKGl265HkgRcmz4xmGuNOdZdQ
+qLhgHnGLJ+M6LD8bwOVy7yNqRQLeFy/qmXGtJgW3ZD1K28zLnHPhNhhfvV0yahI+
+APKM0bGMm6MeBsoGkUlgOSOvP+GA4xN/lB3kXcrbfKUyt2a3WVBQcNvHS69+ROrX
+T+flxWu/30ZM
+=crxN
+-----END PGP MESSAGE-----
+```
+
+One last thing about this: Because the encryption is done on your
+computer (Inside Thunderbird) nobody else can see what the original
+content is unless you view it in Thunderbird. But that also means that
+if you log into your email account in your Browser you will see the
+Jibberish as well. Be warned!
+
+<a name="key-management"></a>
+
+**Importing and Exporting Keys** {style="text-align: justify;"}
+--------------------------------
+
+Last but not least I want to show you how to import and export keys. Say
+you want to use PGP on your iPhone? Good, I have an awesome tutorial for
+that here ;)
+
+But you'll need to export your key. The same goes if you are using PGP
+on a different computer already and just want to import your existing
+key to this computer.
+
+Under the "Key Manager" I showed you before click on "File" and "Import
+Keys from File". Then navigate to the directory where your key is stored
+and make sure it's in an ASCII armour file (.ASC)
+
+![](data:image/png;base64,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)
+
+If you want to export a key that is equally simple. Select your key in
+the list (If you don't see it check the option "Display All Keys by
+Default", right click on it and then Choose "Export Keys to File".
+
+![](data:image/png;base64,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)
+
+This will save your Key as an .ASC file to be imported by other PGP
+applications such as GPGMac or iGPMail on iOS.
+
+I hope you learned something today and I also hope that you'll go spread
+the usage of email encryption around your friends. If you have
+questions, sugestions, whatever, leave them in the comments below.
+
+And until next time, have a lovely day.
+
+\~Kate
diff --git a/teaching/encryption/05-encryption-101-pgp-on-linux.md b/teaching/encryption/05-encryption-101-pgp-on-linux.md
new file mode 100755
index 0000000..354d921
--- /dev/null
+++ b/teaching/encryption/05-encryption-101-pgp-on-linux.md
@@ -0,0 +1,142 @@
+Title: 05. Encryption 101: PGP on Linux
+Date: 2015-10-27 09:00
+Category: Data Privacy
+Tags: Guides
+Published: false
+Slug: 05-encryption-101-pgp-on-linux
+Status: published
+
+It's only been around a million years since I last wrote about this stuff :) Back when I started this series I was still using OSX and obviously focused very heavily on Mac, iOS and the likes and could barely get myself to write a little tutorial about e-mail encryption for Windows (only because friends nagged me about it).
+
+But that's all different now. I've been almost exclusively using Linux for the last year (maybe 1 1/2 years) and I thought I'd give the PGP toolchain on Linux also called Gnu Privacy Guard (GPG) some love. So shall we begin?
+
+### Setting up GPG with Thunderbird
+
+So most people will be using a mail client - I use Thunderbird because *reasons* - so let's focus on that for now. And to be honest...that's kinda boring. Please have a look at my guide on how to set up Thunderbird with Enigmail on Windows because on Linux (because of Thunderbird) it works pretty much the same way.
+
+**The jist**
+
+`sudo $package_manager install thunderbird`
+
+With
+
+Fedora 22+ `dnf`
+Fedora 21 and earlier `yum`
+
+Ubuntu `apt-get`
+New Debian stuff `apt`
+
+Arch `pacman` or `yaourt`
+
+You get the idea...
+
+Install the Enigmail plugin like described [here](http://spacekookie.de/data-privacy/04-encryption-101-pgp-on-windows/)!
+
+### Getting to know the CLI
+
+`gpg2` is a command that is installed on basically any modern Linux Distribution. And it comes with a plethora of options. It can do signing, message encryption with RSA, symmetric ciphers, hashing and compression.
+
+Let's start with creating a new key. Like you might have read in the other tutorials GPG/ PGP uses asymetric encryption which means that you need a key-pair to use it. One key is public, for everybody to have and use, the other one is private, only for you to decrypt messages.
+
+`gpg2 --gen-key` drops you into a nice interactive program that helps you generate a keypair and automatically adds it to your personal keychain. For all the other commands in this post to make sense you should have a keypair around to try everything out for yourself.
+
+After you have a keypair you can go and list your keychain.
+
+```
+ ❤ (idenna) ~> gpg2 --list-keys
+/home/spacekookie/.gnupg/pubring.gpg
+------------------------------------
+pub rsa4096/0022A74E 2014-08-16 [expires: 2020-08-16]
+uid [ultimate] spacekookie (Hack the planet!) <spacekookie@c-base.org>
+sub rsa4096/FEAAFEA5 2014-08-16 [expires: 2020-08-16]
+sub rsa4096/3B1D08AC 2014-10-30 [expires: 2016-10-29]
+
+```
+
+You can of course also just get the fingerprint off a certain key. For that you either need your e-mail address or your key ID.
+
+```
+ ❤ (idenna) ~> gpg2 --fingerprint 0022A74E
+pub rsa4096/0022A74E 2014-08-16 [expires: 2020-08-16]
+ Key fingerprint = 6B93 6393 9583 E61C 9AD7 16AE 64EF 9E1B 0022 A74E
+uid [ultimate] Katharina Sabel (Personal) <katharina.sabel@mailbox.org>
+uid [ultimate] spacekookie (Hack the planet!) <spacekookie@c-base.org>
+sub rsa4096/FEAAFEA5 2014-08-16 [expires: 2020-08-16]
+sub rsa4096/3B1D08AC 2014-10-30 [expires: 2016-10-29]
+```
+
+I usually end up using my fingerprint ID just because it's shorter to type. And I actually have quite a nice one to remember C:
+
+### Import & Export
+
+We can also export keys from our keychain.
+
+```
+gpg2 --export 0022A74E
+\(j�ڀ���sO�έ5'�bQ�6
+ �U\�1���~ꢟSSÜu��-���䡘<|�1����Gd{�&K�c<�.
+ ?��r�&,s��
+ :�\����ـo�T'e��kT��g�����g�p.
+U���d)�V��?Sk��0w���o��6� �%�i�N�M��$%ڶr_2q���
+ o~��'��0��p)���5�k]��F�L�ks���ؙ��z��J�Pt}?�*�
+ �'6���q�8�f�]�m8m�s:ӕ�pԾz�?�ϴ|��f�B<ѹ�#�m�Gߞ���q5���Y�sAIV<��.^$ޘ���f}�/�?��(��B�
+������%0068b��dAK>�� {'���n�
+ �c���JT�qz����
+ �NM���U9��UP�諤wĸ��ds�CW_�)�s���Qc����iË�(���!�lv���� ��
+```
+
+But you'll notice that's in binary. To get something more human readable you can pad it in ASCII Armour with `-a` for something more managable.
+
+```
+❤ (idenna) ~> gpg2 -a --export 0022A74E
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v2
+
+mQINBFPvZQMBEADMRx7NgsAUBPHR4V5rNvANXChqs9qA+oqvc0/Izq01J+xiUcEM
+31VcGKoxxv3Bfuqin1OPkFPDnHUOxecti5H15KGYPHylMdbD5M4UR2R7uiZLoGM8
+yi4LP8GjcsAmBSxzA4H0DI83OqJc+YX5tNmAb+VUcggPJw4BZaO8a1SYDt5npRWA
+DqPL72f2cC4Luhj4XngN5xim5if7myiqK9mY6FJhmJKzBxwD+mPgd+GMp2kCmQc5
+JeKkQRmagN+b2Q1VEpL51WQpoFao4T9Ta5eqMHf7vZtvF4S2Nt4dILklu2n1TqtN
+mq0kJdq2cl8yBXEWqp8T1AxvfsYU2CfnnzDh33Ap5BKstRc1imsHXdbFRuZMgmtz
+```
+
+The same way you can import keys either from a server
+```
+gpg2 --keyserver gpg.mit.edu --recv 0022A74E
+```
+
+or if you received an e-mail with someone elses key (or you nicked it off their website *hint hint*) you can import them as well
+
+```
+gpg2 --import 0022A74E.asc
+```
+and it'll show up in your keychain.
+
+### Signatures
+
+You can of course also sign messages with your private key to let people know that it was really you who sent a message. Maybe a public statement or a blackmailing threat. Whatever floats your boat.
+
+```
+gpg2 --clearsign file.txt
+
+```
+
+It will result in a file like you can find [here](https://spacekookie.de/pgp/spacekookie-on-the-tubes.txt).
+You can of course also sign keys or not have clear signed messages but only signatures for specific messages with `--detach-sign` and `sign-key`.
+
+### Encryption
+
+Of course the primary idea of GPG is to provide e-mail/ message encryption. It's fairely straight forward with
+```
+gpg2 -a --encrypt message.txt
+
+```
+
+You can combine that command with a signature and even remove the ASCII Armour if you want the binary output of the file.
+And that's that. You can send that to someone now. Or print it out and hang it on your wall or whatever.
+
+---
+
+I don't think most people will ever care about using GPG as a commandline tool but I think it's important that people understand how to, if they ever end up in a situation where they do. I also hope that this post has been somewhat useful to you. And wish you happy message encrypting :)
+
+~Kate \ No newline at end of file
diff --git a/teaching/gameofcode/01-libgdx-game-of-codes-the-setup-basics.md b/teaching/gameofcode/01-libgdx-game-of-codes-the-setup-basics.md
new file mode 100755
index 0000000..c43613f
--- /dev/null
+++ b/teaching/gameofcode/01-libgdx-game-of-codes-the-setup-basics.md
@@ -0,0 +1,365 @@
+Title: 01. (LibGDX) Game of Codes: The Setup & Basics
+Category: Game of Codes
+Tags: Guides
+Slug: 01-libgdx-game-of-codes-the-setup-basics
+Status: published
+
+Hey everybody and welcome to a new/ old series on this blog about LibGDX.
+
+LibGDX is a Java game development framework based on LWJGL and OpenGL which makes it relatively easy to make a game from scratch without requiring a big engine. It supports Desktop, Android, iOS and HTML as export targets which means that your game is automatically cross platform.
+
+Getting to know the framework can be challenging in the beginning, which is why I wanted to make a little series about it. Before I moved my blog to a static site generator I had a rather popular series about LibGDX called "Game of Codes". Unfortunately large parts of the guides are now outdated and no longer relevant. And the Wordpress export destroyed most of the formatting.
+
+Which is why I decided to rewrite them. Here it is: the Game of Codes!
+
+NOTE: This tutorial requires a basic level of programming/ scripting skills. General Java knowledge is required or at the very least knowledge of how coding works. If you don't know that yet then I
+recommend [Bucky Roberts Java Programming series on Youtube](https://www.youtube.com/watch?v=Hl-zzrqQoSE&list=PLYJQBQw9Wdiid6eT1_DqBP3lnbJCzo3s8).
+It's very good!
+
+
+### Setting up LibGDX
+
+
+Now that we've got that out-of-the-way let's set up our workspace to
+make some neat games.
+
+1. First of all you'll need to have Java and an IDE installed on your computer. I recommend Eclipse. For pointers on how to install those please use Google.
+2. Go to [http://libgdx.badlogicgames.com/](http://libgdx.badlogicgames.com/) Downloads and download the framework. You can either go for a nightly build (that will contain more awesome features but probably bugs) or the stable version. Current stable at the time of writing this is 0.9.9 and the version that I will be using (and am using for all my projects).
+3. Save and extract the libgdx-0.9.9.zip file somewhere on your computer and open up the folder. You'll see a multitude of things. Now…we could set up an Eclipse project, import all the right files and  write some dummy code but there is an easier way to do this and it's called the Setup-UI. The following two screenshots will explain the basics. This should be trivial but I'll still go over it. Feel free to skip to the next part below.
+
+![](http://www.spacekookie.de/wp-content/uploads/2013/12/libgx_install_1.png)
+
+The following steps will be conducted in the .Jar setup UI. On the upcoming window click on CREATE and then fill out the information on the next screen. Everything you need to consider is being marked as red in the next screenshot.
+
+![libgdx\_install\_2](http://www.spacekookie.de/wp-content/uploads/2013/12/libgdx_install_2.png)
+
+Make sure you already have the directory created that you want to put the project in. The java UI can NOT create folders. Be sure to disable the iOS project. It won't break anything if you leave it ticked but we won't be working with it.
+
+During the selection of the libraries you need to select the folder icon  and then point the application at the archived .zip file you downloaded in the beginning for LibGDX and press the other little arrow button for the Universal Tween Engine to download it. The Jar isn't included in the LibGDX package by default but it can come in handy later. When you're ready to continue everything should light up green. Click on OPEN THE GENERATION SCREEN to continue, click LAUNCH and watch the magic happen.
+
+
+### Working with LibGDX
+
+Now that we have an auto generated LibGDX project it's time to import it into Eclipse and look at the actual code. Go into Eclipse, File --\> Import. Select General --\> "Existing Projects into Workspace". Navigate to the path and check that all your LibGDX projects are shown as in the screenshot below. Afterwards you should be set to do some serious coding!
+
+![LibGDX\_install\_3](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-14-at-11.00.37.png)
+
+NOTE: LibGDX works very close with Android and when you import the
+project you will see the Android project having exploded because of
+various issues. Make sure that you have Android set up on your computer.
+If you don't, may I refer you to an older blog post of mine: This will
+explain the setting up of Android.
+
+That's important, as LibGDX uses the Android assets folder as a link to
+the main project. You can change that, if you want. But we'll leave it
+as is for now! If you're having issues with this step, post your problem
+in the comments below and I'll try to help you resolve it.
+
+
+Now that everything should be ready to go, let's check what kind of code
+we have here and understand the basic structure of LibGDX. As you've
+already seen there are several projects that were just created: three
+projects with suffixes (-android, -desktop, -html) and a core project
+without a suffix. All the actual coding will be done in the core project
+while the other projects are called "deployment projects". In them you
+can adjust platform specific code to deploy your software. But for now,
+we will only be working with the Core project and use the desktop
+deployment for debugging.
+
+NOTE: Make sure that you leave your Android project open, as LibGDX uses
+the androids Assets folder for all the other projects.
+
+
+Now, that we have this figured out, go to your core project and open up
+the only class that there should currently be in there. Mine is called
+TutorialsLauncher and it has a certain layout of methods in it that
+LibGDX always uses.
+
+- **public void create()** - Called when the game is created
+- **public void resize()** - Called after create and every time the
+ window is resized (if that is allowed)
+- **public void render()** - Starts calling after create() and
+ resize() and will be recalled every frame. This is your game loop!
+- **public void pause()** - Called when the game is closed on Android
+- **public void resume()** - Called when the game is re-opened on
+ Android
+- **public void dispose()** - Called when the game is closed.
+
+This layout allows for very structured code to be written. An
+interesting thing to note is that this layout comes from the
+implementation of the **ApplicationListener** interface. So when you
+create your own main game class you just implement that interface and
+it'll suggest the code layout for you automatically.
+
+Before we look at the code in more detail and see what it actually does
+we should launch the application though and see what it looks like. For
+that you'll need to create a Run Configuration for a Java Application
+and point it at the Main class in your \*\*-Desktop project. A new
+window will open and TADA! The dummy "game" :)
+
+![LibGDX\_instllation4](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-14-at-12.29.10.png)
+
+Now let's look at the actual code that does stuff:
+
+``` {.width-set:false .lang:java .decode:true title="Create Method"}
+ @Override
+ public void create() {
+ float w = Gdx.graphics.getWidth();
+ float h = Gdx.graphics.getHeight();
+
+ camera = new OrthographicCamera(1, h/w);
+ batch = new SpriteBatch();
+
+ texture = new Texture(Gdx.files.internal("data/libgdx.png"));
+ texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
+
+ TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);
+
+ sprite = new Sprite(region);
+ sprite.setSize(0.9f, 0.9f * sprite.getHeight() / sprite.getWidth());
+ sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
+ sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
+ }
+```
+
+First thing the code does is log the current resolution of the game and
+store them in two float variables.
+
+Next up we create a camera, set up with the ratio of the resolution we
+just stored in the variables. (We'll talk more in-depth about cameras
+later)
+
+The next block loads a texture from the data folder which is stored in
+the Androids assets folder and applies a linear filter (If you want to
+learn more on that click
+[here](http://gaming.stackexchange.com/questions/48912/whats-the-difference-between-bilinear-trilinear-and-anisotropic-texture-filte)).
+Don't worry if the rest of that class looks like alien text. I'll
+explain renderings, drawings, textures etc. in more detail in a later
+article. For now you just need to know: it's setting up a sprite
+(texture).
+
+Next up in the code we have dispose:
+
+``` {.width-set:false .lang:java .decode:true}
+ @Override
+ public void dispose() {
+ batch.dispose();
+ texture.dispose();
+ }
+```
+
+Objects that use anything with OpenGL need to be disposed (should. it's
+good practise). It's not that important if you quit the application but
+rather when changing screens (more on that later too).
+
+Which brings us to the main method doing stuff in this "game". Render():
+
+``` {.width-set:false .lang:java .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ sprite.draw(batch);
+ batch.end();
+ }
+```
+
+The first two calls are OpenGL specific and absolutely need to be in
+there. It clears the screen completely and then draws over with a colour
+(actually ClearColor only sets a colour and the glClear clears the
+screen and draws the colour but more to that later too).
+
+Then comes the tricky part.
+
+"batch" is the SpriteBatch that was created earlier in the create();
+method. It's essentially handling texture mapping to the screen and uses
+the cameras viewport (aka what the camera is looking at and how many
+pixels it contains) to properly map the texture to the screen. It's
+begun, then a sprite is drawn and then it's ended. (That's how you draw
+things low-level with OpenGL). And that's the game loop.
+
+Depending on how the window is scaled this means that the texture will
+always look (more or less) right because it's being adjusted to the
+camera viewport (which is essentially just the entirety of the
+application window.
+
+
+I know that this was a lot to take in for now. But I'll touch these
+topics in later articles (again). And if I don't then there are plenty
+of great resources out there (probably better than these :) to help you
+around.
+
+However, I want to do one more thing here and that is give this Game a
+more Game-y feeling. First of all you should head to the image processor
+of your choice (in my case Photoshop) and sketch up something that might
+look like a spaceship.
+
+![LibGDX\_Tutorial\_PS](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-14-at-22.55.25.png)
+
+Make sure that the size of the image is by the power of 2 (so 2, 4, 8,
+16, 32, 64, 128, 256, 512, 1024, 2048, 4096, etc. because that's how
+LibGDX works.
+
+What you say? You're too lazy? You don't have an image processing
+application? You managed to delete Paint from your computer? Kudos. Use
+[this](http://www.spacekookie.de/downloads/Tutorials/LibGDX1/USS_Pixel.zip "USS Pixel")
+then! Next up we want a picture of space. I'm not gonna make something
+myself here. And neither will you (most likely). How about
+[this](http://www.wallsave.com/wallpapers/1024x1024/galaxies/236804/galaxies-cool-galaxy-and-space-ipad-236804.jpg "Space")?
+
+Save both of these on your computer and import them into your
+Android-projects assets folder (copy, not link!) Next up we want to
+adjust a bit of our code. If you use external resources they always need
+to be as power-of-two pictures. And to overcome that there is a thing
+called a TextureAtlas (SPOILERS). But I'll touch that later.
+
+For now, we just need to change the path in one line:
+
+``` {.width-set:false .lang:java .decode:true}
+texture = new Texture(Gdx.files.internal("space.jpg"));
+```
+
+I made it easy on me and just renamed the picture into "space" and moved
+it into the assets folder which in LibGDX internal files is being
+referenced as root. If you compile this you'll see two white bars on the
+sides. So first, we might want to change that to black to make it
+more…space-y but secondly we might want to change the starting
+resolution of the game. If you were observant before you know where to
+change the OpenGL colour. That's right. Here:
+
+``` {.width-set:false .lang:java .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+```
+
+It uses R-G-B composition colours referenced with floats. The fourth is
+the alpha channel. So to get Black we want to set it to
+
+``` {.width-set:false .lang:java .decode:true}
+Gdx.gl.glClearColor(0, 0, 0, 1);
+```
+
+For the resolution we need to check our platform-specific launcher. In
+our case we have to check the Main method in the \*\*-Desktop project
+and adjust two things. First, we want the starting resolution to be
+800x600 as that's what the TextureRegion cuts from the original texture.
+And we want to disable the ability for the window to be resized (for
+now) as it adds a whole mess to take care of.
+
+``` {.width-set:false .lang:java .decode:true}
+ cfg.resizable = false;
+ cfg.width = 800;
+ cfg.height = 600;
+```
+
+So essentially we need to add one line to the configuration and change
+two.
+
+However, we're not done yet. We gave the texture the new path to import.
+But that's not all. We need to tell the texture region what part of the
+cake to slice from the original texture. And we also need to change some
+of the positioning that happens. Essentially you want your code to look
+like this:
+
+``` {.width-set:false .lang:java .mark:6,12,15 .decode:true}
+ @Override
+ public void create() {
+ float w = Gdx.graphics.getWidth();
+ float h = Gdx.graphics.getHeight();
+
+ camera = new OrthographicCamera(w, h);
+ batch = new SpriteBatch();
+
+ texture = new Texture(Gdx.files.internal("space.jpg"));
+ texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
+
+ TextureRegion region = new TextureRegion(texture, 0, 0, 800, 600);
+
+ sprite = new Sprite(region);
+ sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);
+ }
+```
+
+I changed the camera setup to just simply use the width and height as
+it's viewport, told the texture region to cut a 800x600 part from our
+1024x1024 texture and removed the size and origin manipulation. Now
+compile this and BOOM.
+
+![Screen Shot 2013-12-15 at
+00.19.23](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-15-at-00.19.23.png)
+
+Shiny! \<3 Now we need some slick advertisement and EA will sell this
+for 60\$ (+ DLC of course).
+
+Now…we have that ship. Let's just quickly add the ship in idle state in
+the middle of the screen before this post gets too long. You should know
+how to add the space ship texture by now:
+
+``` {.width-set:false .lang:java .mark:4-5,21-25,32,43 .decode:true}
+public class TutorialLauncher implements ApplicationListener {
+ private OrthographicCamera camera;
+ private SpriteBatch batch;
+ private Texture texture, shipTexture;
+ private Sprite sprite, ship;
+
+ @Override
+ public void create() {
+ float w = Gdx.graphics.getWidth();
+ float h = Gdx.graphics.getHeight();
+
+ camera = new OrthographicCamera(w, h);
+ batch = new SpriteBatch();
+
+ texture = new Texture(Gdx.files.internal("space.jpg"));
+ texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
+ TextureRegion region = new TextureRegion(texture, 0, 0, 800, 600);
+ sprite = new Sprite(region);
+ sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);
+
+ shipTexture = new Texture(Gdx.files.internal("USS_Pixel/ship_idle.png"));
+
+ TextureRegion shipRegion = new TextureRegion(shipTexture, 0, 0, 64, 64);
+
+ ship = new Sprite(shipRegion);
+ }
+
+ @Override
+ public void dispose() {
+ batch.dispose();
+ texture.dispose();
+ shipTexture.dispose();
+ }
+
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ sprite.draw(batch);
+ ship.draw(batch);
+ batch.end();
+ }
+```
+
+And voila :)
+
+![LibGDX\_Tutorial\_Final](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-15-at-00.32.03.png)
+
+But this is it for today. I will start working on the next post
+immediately where we will discuss input and movement on the screen (all
+very basic) as well as TextureAtli (maybe, if you're lucky)
+
+Until then have a good day/night,
+
+Kate
+
diff --git a/teaching/gameofcode/02-libgdx-game-of-codes-input-movement.md b/teaching/gameofcode/02-libgdx-game-of-codes-input-movement.md
new file mode 100755
index 0000000..aa76302
--- /dev/null
+++ b/teaching/gameofcode/02-libgdx-game-of-codes-input-movement.md
@@ -0,0 +1,345 @@
+Title: 02. (LibGDX) Game of Codes: Input & Movement
+Date: 2013-12-18 18:45
+Category: Game of Codes
+Tags: Guides
+Slug: 02-libgdx-game-of-codes-input-movement
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we learned how to set up LibGDX in our
+Java project and draw pictures onto the screen. We used Textures to
+import the image and then drew a Sprite from a specific TextureRegion.
+This would allow for multiple assets to be saved in a single texture and
+thus saving time when loading assets.
+
+In this edition I want to show you LibGDXes abilities to handle input
+and move things on the screen. This will be all very basic but hang in
+there with me. Let's begin.
+
+Two ways of registering input
+-----------------------------
+
+There are two ways to register input events. The first one is to
+directly listen to input events in your main game loop and execute code
+depending on what happens.
+
+[![input\_raw](http://www.spacekookie.de/wp-content/uploads/2013/12/input_raw.png)](http://www.spacekookie.de/wp-content/uploads/2013/12/input_raw.png)
+
+
+The other method is to create an input processor that sorts through all
+the input (not just certain types), allows for more complex features
+(like dragging gestures on Android)
+
+
+![input\_handler](http://www.spacekookie.de/wp-content/uploads/2013/12/input_handler.png)
+
+For now, we'll just use the first method. It'll make the process of
+input handling very clear. In the second part of this tutorial we'll
+have a look at input processor that are mostly needed for mouse and
+gesture tracking.
+
+
+Listening for simple button events
+----------------------------------
+
+The easiest way to listen for a button-pressed event is by calling
+
+``` {.lang:java .decode:true}
+Gdx.input.isKeyPressed(Keys.W)
+```
+
+where Keys is an enum index that contains all keys on a regular
+keyboard, excluding international characters (Like Ö, æ or å). This
+method returns a boolean that can simply be the argument of an
+if-statement:
+
+``` {.lang:java .decode:true}
+ if (Gdx.input.isKeyPressed(Keys.W)) {
+ }
+```
+
+Will run, when the a-key is pressed, if we put this into our games
+"render" method. By polling the state of the boolean for the Key "W"
+every frame we can get its status whenever the game is running. However
+note that this is getting the value indirectly. When a button is pressed
+this triggers an event listener to set the boolean to "true" and to
+"false" again, once the listener detects that the button has been
+released.
+
+But back to our example. In our case we want the spaceship to fly up,
+whenever the "W" key is pressed. Let's take a look at the render method
+of our game.
+
+``` {.lang:java .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ sprite.draw(batch);
+ ship.draw(batch);
+ batch.end();
+ }
+```
+
+We already use the "ship" sprite in the method. All we need to do now is
+update the position before drawing it onto the screen. Unfortunately
+there is no direct way to add values to the position of a sprite, only
+to overwrite it. So we need to fetch the position first, add our desired
+value and then set that new position. The code for that looks something
+like that (using the example above where we want the "W" Key to move the
+ship up):
+
+``` {.lang:java .decode:true}
+if (Gdx.input.isKeyPressed(Keys.W)) {
+ Vector2 updated = new Vector2(ship.getX(), ship.getY() + 5);
+ ship.setPosition(updated.x, updated.y);
+ }
+```
+
+Now compile this and press the "W" key and watch what happens. The ship
+is moving up. Why? Because with each frame it is being checked if the
+"W" key is pressed and if that is the case we add 5 pixels to the
+Y-coordinate of the ship sprite.
+
+We can now continue and do this for all four directions:
+
+``` {.lang:java .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ if (Gdx.input.isKeyPressed(Keys.W)) {
+ Vector2 updated = new Vector2(ship.getX(), ship.getY() + 5);
+ ship.setPosition(updated.x, updated.y);
+ }
+ if (Gdx.input.isKeyPressed(Keys.S)) {
+ Vector2 updated = new Vector2(ship.getX(), ship.getY() - 5);
+ ship.setPosition(updated.x, updated.y);
+ }
+ if (Gdx.input.isKeyPressed(Keys.D)) {
+ Vector2 updated = new Vector2(ship.getX() + 5, ship.getY());
+ ship.setPosition(updated.x, updated.y);
+ }
+ if (Gdx.input.isKeyPressed(Keys.A)) {
+ Vector2 updated = new Vector2(ship.getX() - 5, ship.getY());
+ ship.setPosition(updated.x, updated.y);
+ }
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ sprite.draw(batch);
+ ship.draw(batch);
+ batch.end();
+ }
+```
+
+Note that the "updated" vector is only a local variable inside the
+if-statement and can't be used outside of it. Re-using the name inside
+each if-block won't have any weird side effects or break the code.
+
+If you now compile this you'll see that you can move the ship around on
+both axis and in all directions but this isn't really a great game yet.
+Why? Well...while this might be enough for a retro-side-scroller where
+the player only faces up (down) or right (left) for tall intention
+purposes, we want the ship to fly around more realistically. So it's
+time to introduce rotation to our little game.
+
+As you might have expected we can simply choose two other keys on our
+keyboard (let's take Q and E) and use them to check for other if
+statements. In addition to that there is a sprite-method called
+"rotate". It should be fairly obvious now :)
+
+``` {.lang:java .decode:true title="Add this to your render() method!"}
+ if (Gdx.input.isKeyPressed(Keys.Q)) {
+ ship.rotate(-5f);
+ }
+ if (Gdx.input.isKeyPressed(Keys.E)) {
+ ship.rotate(5f);
+ }
+```
+
+And that's it. Compile and see what happens. Fly around a bit. I'll be
+waiting here.
+
+------------------------------------------------------------------------
+
+Oh. You're back quickly. Do I see a hint of disappointment on your face?
+:) That's okay. See…we might have changed the rotation in the code,
+however the displacement vectors (aka the direction that the ship will
+be moved into) isn't in correlation with the rotation, just x and y
+values. So the rotation doesn't matter, pressing "W" will move the ship
+up, etc.
+
+Now...there is an easy way to do this and a hard one. I want you to be
+familiar with the mathematical basics first before I show you the easy
+way.
+
+[caption id="" align="aligncenter"
+width="256"]![libgdx1\_vectoring](http://www.spacekookie.de/wp-content/uploads/2013/12/vectoring.png)
+x = tan(α) \* y[/caption]
+
+For each movement the angle of the ship needs to be considered before
+moving the ship into the direction of the rotation-vector. Now the easy
+way:
+
+First create a new global vector that holds the speed of the ship and
+the direction that the speed should be applied to. In this case 5 pixels
+on the Y-axis.
+
+``` {.lang:java .decode:true}
+Vector2 move = new Vector2(0f, 5f);
+```
+
+Now you need to add a bit of code to the if-statement that checks if the
+"W" key is pressed.
+
+``` {.lang:java .mark:3 .decode:true}
+ if (Gdx.input.isKeyPressed(Keys.W)) {
+ Vector2 temp = new Vector2(ship.getX(), ship.getY());
+ temp.add(move);
+ ship.setPosition(temp.x, temp.y);
+ }
+```
+
+We're almost done. The last thing we need is to actually rotate the
+movement vector by the amount that the ship has rotated.
+
+``` {.lang:java .mark:2 .decode:true}
+ if (Gdx.input.isKeyPressed(Keys.A)) {
+ move.rotate(5f);
+ ship.rotate(5f);
+ }
+```
+
+You can adjust the if-statement to check if the "S" key is pressed but I
+removed it from my code for now.
+
+So this is the full code
+
+``` {.lang:java .mark:1,9,13-14,17-18 .decode:true}
+Vector2 move = new Vector2(0f, 5f);
+
+@Override
+public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+ if (Gdx.input.isKeyPressed(Keys.W)) {
+ Vector2 temp = new Vector2(ship.getX(), ship.getY());
+ temp.add(move);
+ ship.setPosition(temp.x, temp.y);
+ }
+ if (Gdx.input.isKeyPressed(Keys.A)) {
+ move.rotate(5f);
+ ship.rotate(5f);
+ }
+ if (Gdx.input.isKeyPressed(Keys.D)) {
+ move.rotate(-5f);
+ ship.rotate(-5f);
+ }
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ sprite.draw(batch);
+ ship.draw(batch);
+ batch.end();
+}
+```
+
+Compile the game and enjoy flying around a bit. This is a very elegant
+way to handle rotation of an object because the movement logic (move
+vector) is disconnected from the rendering logic (Sprite).
+
+One last thing I want to add in this post is some eye candy. In the next
+post we'll have a look at the InputAdapter and get some mouse
+interaction into our game.
+
+First you should add three more texture regions: shipIdle, shipFly1 and
+shipFly2 and refactor the code for the textures and the regions a bit to
+be less confusing. My refactored code below as reference but you don't
+have to do it exactly as I do.
+
+``` {.lang:java .mark:4-6,22-27 .decode:true .crayon-selected}
+public class TutorialLauncher implements ApplicationListener {
+ private OrthographicCamera camera;
+ private SpriteBatch batch;
+ private Texture background;
+ private Sprite space, ship;
+ private TextureRegion shipIdle, shipFly1, shipFly2;
+
+ @Override
+ public void create() {
+ float w = Gdx.graphics.getWidth();
+ float h = Gdx.graphics.getHeight();
+
+ camera = new OrthographicCamera(w, h);
+ batch = new SpriteBatch();
+
+ background = new Texture(Gdx.files.internal("space.jpg"));
+ background.setFilter(TextureFilter.Linear, TextureFilter.Linear);
+ TextureRegion region = new TextureRegion(background, 0, 0, 800, 600);
+ space = new Sprite(region);
+ space.setPosition(-space.getWidth() / 2, -space.getHeight() / 2);
+
+ shipIdle = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_idle.png")), 0, 0, 64, 64);
+ shipFly1 = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_fly1.png")), 0, 0, 64, 64);
+ shipFly2 = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_fly2.png")), 0, 0, 64, 64);
+
+ ship = new Sprite(shipIdle);
+ }
+
+ @Override
+ public void dispose() {
+ batch.dispose();
+ background.dispose();
+ }
+```
+
+So we're essentially creating three TextureRegions and mapping the
+different pictures of the USS Pixel to it. Lastly, we want the game to
+randomly pick one of these three textures when the ship is flying around
+to generate an animation effect. For that purpose you should change some
+code in the if-statement that checks whether the "W" key is pressed.
+
+``` {.lang:java .mark:11-20 .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ if (Gdx.input.isKeyPressed(Keys.W)) {
+ Vector2 temp = new Vector2(ship.getX(), ship.getY());
+ temp.add(move);
+ ship.setPosition(temp.x, temp.y);
+
+ int i = new Random().nextInt(2);
+ if (i == 0)
+ ship.setRegion(shipIdle);
+ else if (i == 1)
+ ship.setRegion(shipFly1);
+ else if (i == 2)
+ ship.setRegion(shipFly2);
+
+ } else {
+ ship.setRegion(shipIdle);
+ }
+```
+
+Now compile this and enjoy.
+
+![LibGDX\_stargame\_1](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-18-at-19.59.03.png)
+
+You should now know how to handle basic keyboard input, how to properly
+process it and also to move things on the screen more intelligently than
+just to adjust their pixel coordinates manually. In the next issue I
+want to introduce you to the InputAdapter but I feel that it would drag
+this post out too much. So until next time, keep coding.
diff --git a/teaching/gameofcode/03-libgdx-game-of-codes-input-movement-2-0.md b/teaching/gameofcode/03-libgdx-game-of-codes-input-movement-2-0.md
new file mode 100755
index 0000000..6f5e208
--- /dev/null
+++ b/teaching/gameofcode/03-libgdx-game-of-codes-input-movement-2-0.md
@@ -0,0 +1,476 @@
+Title: 03. (LibGDX) Game of Codes: Input & Movement 2.0
+Date: 2013-12-19 13:12
+Category: Game of Codes
+Tags: Guides
+Slug: 03-libgdx-game-of-codes-input-movement-2-0
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we learned how to listen for keyboard
+input, move things on the screen and do some basic game logic with
+vectors. In this issue I want to re-touch that subject, but in a more
+advanced manner. This time we'll have a look at InputProcessors and
+their ability to listen for any kind of input, including mouse and
+touchscreen gestures. If you haven't already worked through the last
+issue of this tutorial series, you should do that
+[now](http://www.spacekookie.de/02-libgdx-game-of-codes-input-movement/ "02. (LibGDX) Game of Codes: Input & Movement")!
+I'll wait here.
+
+Oh, you stayed. Well then, let's get started.
+
+
+First of all we'll want to create a new class that extends the
+InputAdapter.
+
+``` {.lang:java .decode:true}
+package de.spacekookie.libgdxtutorial;
+
+import com.badlogic.gdx.InputAdapter;
+
+public class InputHandler extends InputAdapter {
+
+}
+```
+
+You can name yours whatever you want, I chose InputHandler, as for any
+managing class that HANDLES things in my software :) Handlers and
+Dealers, the criminal underworld in my source code is real.
+
+We will add things to this class later, first of all we should tell our
+game that it exists. And we can do that by adding the following code
+into the games creation method.
+
+
+``` {.lang:java .decode:true}
+ private InputHandler handler;
+
+ @Override
+ public void create() {
+
+ . . .
+
+ handler = new InputHandler();
+ Gdx.input.setInputProcessor(handler);
+
+ . . .
+ }
+```
+
+Great. Now that we told our game to actually use the InputAdapter we
+created we can start and add some actual code to it. If you look at the
+class that we're extending you can see a few methods that we can
+override. Why don't you add this method to the InputAdapter class.
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean keyDown(int keycode) {
+ return true;
+ }
+```
+
+Remember when I told you in the last post that polling
+Gdx.input.isKeyPressed(. . .); was only an indirect way to get the
+status of a key and would only react to a listener event? Well guess
+what...that's an event listener that will react t ANY key-down event.
+The keycode passed into the listener specifies the key in question.
+
+Go ahead and check if keycode is the same as the integer representing a
+key (Keys.\*) like SPACE.
+
+``` {.lang:java .decode:true}
+if (keycode == Keys.SPACE) {
+ System.out.println("If this game had gravity I would want to JUMP!");
+}
+```
+
+If you compile this you'll see that the game will of course still
+recognize the inputs handled in the Games render() method but in
+addition to that will react to keystrokes being handled in our
+InputAdapter. However...we have a problem. To actually handle the input
+in the Adapter we need to pass on some information into it. We can
+either pass the Sprite along but I would say something much better is to
+create a custom Object to hold all the important information to render,
+move and manipulate the ship (or other entities we might add later). So
+why don't you go ahead and create a new class called "Entity". I went
+ahead and added some code to it to actually make it useful.
+
+``` {.lang:java .decode:true}
+package de.spacekookie.libgdxtutorial;
+
+import java.util.Random;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.Sprite;
+import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.graphics.g2d.TextureRegion;
+import com.badlogic.gdx.math.Vector2;
+
+public class Entity {
+
+ public static enum EntityType {
+ PLAYER, ENEMY;
+ }
+
+ public static enum ShipState {
+ IDLE, MOVING, DEAD;
+ }
+
+ private EntityType type;
+ private Sprite self;
+ private TextureRegion shipIdle, shipFly1, shipFly2;
+
+ private Vector2 moveVector = new Vector2(0f, 1f);
+ private float speed = 5f;
+
+ public Entity(EntityType type) {
+ this.type = type;
+ moveVector.scl(speed);
+ loadResources();
+ }
+
+ public void loadResources() {
+ if (type.equals(EntityType.PLAYER)) {
+ shipIdle = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_idle.png")), 0, 0, 64,
+ 64);
+ shipFly1 = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_fly1.png")), 0, 0, 64,
+ 64);
+ shipFly2 = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_fly2.png")), 0, 0, 64,
+ 64);
+
+ self = new Sprite(shipIdle);
+ }
+ }
+
+ public void idle() {
+ self.setRegion(shipIdle);
+ }
+
+ public void fly() {
+ int i = new Random().nextInt(2);
+ if (i == 0)
+ self.setRegion(shipIdle);
+ else if (i == 1)
+ self.setRegion(shipFly1);
+ else if (i == 2)
+ self.setRegion(shipFly2);
+ }
+
+ /** Used to get access to methods */
+ public Sprite getSelfSprite() {
+ return self;
+ }
+
+ public Vector2 getMovement() {
+ return moveVector;
+ }
+
+ public void setMovement(Vector2 moveVector) {
+ this.moveVector = moveVector;
+ }
+
+ /** Will be called in the @render() method */
+ public void draw(SpriteBatch batch) {
+ self.draw(batch);
+ }
+
+}
+```
+
+If you actually look at the code you won't see anything you haven't seen
+before. What I did was move all the texture loading, sprite setup and
+region swapping when flying and idling into this class as well as
+creating a few getters to access the information from outside the class.
+
+The only two new things are the two enums, ShipState and EntityType
+which will become more useful in the future. But laying the groundwork
+now for a more complex game will become handy later.
+
+Next up we need to take a look at the InputAdapter and change it in a
+way that it uses flags on keyDown and keyUp (as in setting a flat to
+"true" on down and "false" to up). Then move all the movement logic into
+a method called "update()" that will be called in the games render()
+method.
+
+Here is my code as reference.
+
+``` {.lang:java .decode:true}
+package de.spacekookie.libgdxtutorial;
+
+import com.badlogic.gdx.Input.Keys;
+import com.badlogic.gdx.InputAdapter;
+import com.badlogic.gdx.math.Vector2;
+
+public class InputHandler extends InputAdapter {
+
+ private Entity entity;
+ private boolean moving, clock, counterClock;
+
+ public InputHandler(Entity entity) {
+ this.entity = entity;
+ }
+
+ @Override
+ public boolean keyDown(int keycode) {
+ if (keycode == Keys.W) {
+ moving = true;
+ }
+ if (keycode == Keys.A) {
+ counterClock = true;
+ }
+ if (keycode == Keys.D) {
+ clock = true;
+ }
+ return true;
+ }
+
+ @Override
+ public boolean keyUp(int keycode) {
+ if (keycode == Keys.W) {
+ moving = false;
+ }
+ if (keycode == Keys.A) {
+ counterClock = false;
+ }
+ if (keycode == Keys.D) {
+ clock = false;
+ }
+ return true;
+ }
+
+ public void update() {
+ if (moving) {
+ Vector2 temp = new Vector2(entity.getSelfSprite().getX(), entity
+ .getSelfSprite().getY());
+ temp.add(entity.getMovement());
+ entity.getSelfSprite().setPosition(temp.x, temp.y);
+
+ entity.fly();
+ } else {
+ entity.idle();
+ }
+ if (counterClock) {
+ entity.getMovement().rotate(5f);
+ entity.getSelfSprite().rotate(5f);
+ }
+ if (clock) {
+ entity.getMovement().rotate(-5f);
+ entity.getSelfSprite().rotate(-5f);
+ }
+ }
+}
+```
+
+And the games render() method.
+
+``` {.lang:java .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ handler.update();
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ space.draw(batch);
+ player.draw(batch);
+ batch.end();
+ }
+```
+
+Make sure to remove all calls from the main game class that we have
+already moved to our Entity. And that's it. Compile this and see what we
+made (a huge mess, I know).
+
+So? Well done, we just remade what we already had, just in less
+clustered and more shiny. But this isn't very impressive, is it now?
+Sure this code looks much cleaner than before but InputAdapters are a
+lot more powerful than that. Why don't you go ahead and add a new method
+to our InputAdapter.
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean mouseMoved(int screenX, int screenY) {
+ System.out.println(screenX + " : " + screenY);
+ return false;
+ }
+```
+
+When you compile this you'll see the coordinates of your mouse output in
+the console as you move the cursor over the game window. That's because
+the listener is being called every time the mouse is moved and without
+any further filtering it of course. Now it's gonna get rough, so put on
+your thinking hats and try not to go mad. Because we'll have to go and
+mock around with Vectors quite a bit and I will have to introduce you to
+camera vectors already. I will only brush the subject here and retouch
+it in a later version to go more in depth.
+
+First up we need to change a few things in our main game class. First,
+change the OrthographicCamera variable to "static".
+
+``` {.lang:java .decode:true}
+private static OrthographicCamera camera;
+```
+
+And then write a little getter for that camera variable that's also
+static, so that we can access it without having to worry about a
+constructor.
+
+``` {.lang:java .decode:true}
+ public static OrthographicCamera getCameraInstance() {
+ return camera;
+ }
+```
+
+
+Now, go ahead and create three more global variables in the
+InputAdapter.
+
+``` {.lang:java .decode:true}
+ private boolean clicked;
+ private Vector3 vec;
+ private Vector3 target;
+```
+
+The boolean will be used to flag whether the mouse button has been
+clicked and the ship is still en-route. The two 3D vectors will be used
+to pinpoint the target we're trying to approach and the movement vector
+that the ship will be using. They need to be Vector3 objects (3D
+vectors) because they need to interact with our camera, which is a 3D
+object. Don't forget! LibGDX is a 3D game development framework, so we
+need to ignore the third dimension most of the time. Just set it to "0"!
+
+Now we need to handle the mouse actions. Go and delete that line of code
+from the mouseMoved method and create a touchDown() method. It will be
+used to register mouse events but can also be used to register touches
+on Android devices.
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean touchDown(int x, int y, int pointer, int button) {
+ if (pointer == 0) {
+ if (button == 0) {
+
+ }
+ }
+ return false;
+ }
+```
+
+The pointer is "0" in case of the mouse but can be something else, when
+we're dealing with touchscreen input. The button "0" is the left mouse
+button, "1" is the right one. Nest those two if-statements, so that both
+need to be true for our code to be executed. I will go through what we
+do here line by line because it's not exactly trivial.
+
+``` {.lang:java .decode:true}
+vec = new Vector3(x, y, 0);
+```
+
+First we take that Vector3 (vec) we created before and put some
+information into it. X and Y are the mouse coordinates that are passed
+into the listener (where the click occurred) and put 0 for the
+Z-Coordinate.
+
+``` {.lang:java .decode:true}
+TutorialLauncher.getCameraInstance().unproject(vec);
+```
+
+Next up, we need to call that static method we created in our main game
+class to get the camera and call "unproject" onto it. Unprojecting means
+associating a coordinate in the camera space with a pixel coordinate on
+the screen. When the camera is moving around it will change the
+coordinates quite drastically. So a camera coordinate (5000, 10000)
+could still correlate to a pixel coordinate that's more like (255, 128),
+etc. Unprojecting the camera and passing our Vector3 object into it
+aligns the camera space with the pixel space on-screen. We WILL talk
+about cameras and matrix projection in a later issue. For now, I hope
+that this is at least somewhat clear.
+
+Next up, store the unprojected vector in our target Vector3 that we
+created, set the boolean and return from the method.
+
+``` {.lang:java .decode:true}
+target = new Vector3(vec);
+clicked = true;
+return true;
+```
+
+The target Vector3 will not change and serve as a reference where the
+original click was made and when we want our ship to stop flying. We're
+almost done. We already flag our button clicks in the listener, now we
+just need to use that flag in our update() method that gets called every
+frame.
+
+``` {.lang:java .decode:true}
+ if (clicked) {
+ entity.fly();
+ } else {
+ entity.idle();
+ }
+```
+
+You should understand what that does, just registering the clicked flag
+and setting the textures accordingly.
+
+``` {.lang:java .decode:true}
+ Vector2 temp = new Vector2(entity.getSelfSprite().getX(),
+ entity.getSelfSprite().getY());
+```
+
+Log the current position of our sprite and save it in the temp Vector.
+And now it's getting kinda tricky. There is a Vector method called lerp,
+which interpolated two vectors. We will touch Vectors again in a later
+issue. If you want to read the mathematical principles of interpolation
+you can click [here](http://en.wikipedia.org/wiki/Linear_interpolation).
+(If you're masochistic like that).
+
+``` {.lang:java .decode:true}
+ temp.lerp(new Vector2(vec.x, vec.y), 0.1f);
+ entity.getSelfSprite().setPosition(temp.x, temp.y);
+```
+
+Vec starts as the target and gets shorter and shorter as the temp vector
+approaches the target more and more. Afterwards we do the normal jazz
+and adjust the entities Sprite position with the new temp vector (which
+isn't the target position but rather the first step on the way to the
+target.
+
+Lastly we need to deactivate the ships engines when the ship has reached
+the target position (that's why we saved it in the target vector :) )
+
+``` {.lang:java .decode:true}
+ if (target.dst(temp.x, temp.y, 0) < 2)
+ clicked = false;
+```
+
+Add this to the end of the if(clicked)-statement. dst(. . .) returns the
+range between two vectors (target and temp, where we only look at the X
+and Y coordinates) and we can then compare that range to a number, in my
+case 2. So when the temp vector gets into a range of 2 pixels to the
+target vector the if-statement is true and sets the clicked boolean to
+"false" and stops moving the ship (and then the else-statement is called
+and sets the texture to idle again). It also corrects the rotation
+correction that we used before.
+
+
+And that's that. Compile the game and try out the two methods of
+movement we now have. Rotating the ship properly when clicking would be
+too long and difficult for this tutorial so I left it out. (Well
+actually rotating isn't too difficult but making the click-rotation and
+the keyboard rotation compatible is a bit tricky).
+
+What we did in this issue was refactor our input handling and add some
+more code to interact with the game using the mouse. I don't know what
+we'll touch on next but I think we'll end this issue here. I hope you
+learned something and until next time, keep coding!
+
diff --git a/teaching/gameofcode/04-libgdx-game-of-codes-textures-and-asset-management.md b/teaching/gameofcode/04-libgdx-game-of-codes-textures-and-asset-management.md
new file mode 100755
index 0000000..08248ab
--- /dev/null
+++ b/teaching/gameofcode/04-libgdx-game-of-codes-textures-and-asset-management.md
@@ -0,0 +1,216 @@
+Title: 04. (LibGDX) Game of Codes: Textures and asset management
+Date: 2013-12-19 19:18
+Category: Game of Codes
+Tags: Guides
+Slug: 04-libgdx-game-of-codes-textures-and-asset-management
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we learned how to use InputAdapters and
+used the keyboard and mouse to order our little space-ship around on the
+screen. In this issue I want to take a step back from our actual game
+and have a look at our surroundings. Data files, assets and resource
+imports. Where to put them to make the game code as practical and
+readable as possible. LibGDX has a few quirks and also tools to make
+asset management as easy as it can be. So without further ado, let's
+begin.
+
+Collecting all Asset imports in one class {style="text-align: justify;"}
+-----------------------------------------
+
+The first thing we'll want to do is create a new package in our project.
+I named mine "Util" to symbolize that everything in there has to do with
+utility classes and tools that don't have a direct effect on gameplay
+but are substantially important in using the game. If you're not
+familiar with naming conventions for packages here is the rundown.
+
+``` {.lang:java .decode:true}
+SUFFIX.DOMAIN.PROJECT.PACKAGE.SUB-PACKAGE
+
+In my case:
+
+de.spacekookie.libgdxtutorial.util
+```
+
+If you don't have website where you would publish your code just use
+your name with a com or de or whatever your language code is (or you
+want it to be to confuse people).
+
+![Screen Shot 2013-12-19 at
+15.18.59](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-19-at-15.18.59.png)
+
+Be sure to select your source folder to create the package. And then in
+the next dialogue type the entire package tree, not just the name of the
+end package you want to name. Because Eclipse will create folders from
+these sub-trees.
+
+[![Screen Shot 2013-12-19 at
+15.19.16](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-19-at-15.19.16.png)](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-19-at-15.19.16.png)And
+to not confuse us in the long run r-click on that other package that so
+far holds all other classes and add the subpackage-name "core" to it. It
+will symbolize that it holds our darkest secrets (aka the most important
+classes in our game, like the main game class or the InputAdapter).
+
+When you're done with that go ahead and create a new class in the "util"
+package named along the lines of "ResourceLoader" or "TextureLoader" or
+whatever takes your fancy. I'm gonna call it "**ResPack**" short for
+"ResourcePacker", because it will be filled with static variables that
+we will have to call from all over the game...LOTS of times. So I want
+it to be as short as it can be. Once created go and fill it up with our
+texture loading and save them into "public static final" variables. We
+wan them to be accessible from anywhere in the game "public static" but
+we also want them to be fixed and never changed again (by accident or by
+an evil hacker that uses texture hacks) aka "final".
+
+``` {.lang:java .decode:true}
+package de.spacekookie.libgdxtutorial.util;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.graphics.Texture;
+import com.badlogic.gdx.graphics.g2d.TextureRegion;
+
+/** Class to load all assets for the game */
+public class ResPack {
+
+ public static final TextureRegion shipIdle = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_idle.png")), 0, 0, 64, 64);
+
+ public static final TextureRegion shipFly1 = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_fly1.png")), 0, 0, 64, 64);
+
+ public static final TextureRegion shipFly2 = new TextureRegion(new Texture(
+ Gdx.files.internal("USS_Pixel/ship_fly2.png")), 0, 0, 64, 64);
+}
+```
+
+Alright, that's that so far. In addition to that I've made a little
+texture called "blast\_small" that we will be adding later, which is
+essentially just a little laser shot. You can download it
+[here](http://www.spacekookie.de/downloads/Tutorials/LibGDX1/blast_small.png)
+and add it to your USS\_Pixel folder in the assets directory.
+
+But you can already see a problem, the texture isn't in power of two
+measurements and we would have to manually cut out the blast from a, say
+32x32 texture. But we don't really want that, do we? We're gonna have a
+lot more textures later on and if we have to cut out each one
+individually we're gonna have a hard time. And that's why we have such a
+handy thing called the
+[TextureAtlas](http://en.wikipedia.org/wiki/Texture_atlas).
+
+Working with TextureAtli {style="text-align: justify;"}
+------------------------
+
+A TextureAtlas is essentially a file that contains all resources in it
+packed into one image and an .atlas file that keeps tabs on what
+resource can be found at what exact pixel location (and it's size, etc).
+To create a TextureAtlas we need a TexturePacker which isn't included in
+its GUI form in the LibGDX distribution (we can learn how to use the
+command-line class from within our game later). Go
+[here](https://code.google.com/p/libgdx-texturepacker-gui/downloads/list)
+to download the GUI and add it somewhere in your project folder, why not
+inside the asset folder.
+
+The texturepacker is a .jar that can be run as a UI application that
+needs no setting up. Run it and get a look around. First we want to
+create a new pack, so do that on the top-left corner of the window.
+Select a project name, an input, an output directory and of course a
+file-name pattern. Input is the USS\_Pixel folder in our assets folder,
+the output is the assets folder itself (in my case). Leave all the other
+settings as they are. Then select "Pack 'em all" and wait for a
+confirmation to pop up.
+
+![TexturePackerDemo1](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-19-at-16.39.00.png)
+
+Go and check the output folder where you should see a .png and an .atlas
+file. If you have a look at the .png you will see that all the single
+textures we had in our USS\_Pixel directory have been molded into a
+single file that has the power-of-two resolution so that our game won't
+die on us. The .atlas file should just be a bunch of numbers and words
+with parameters. We'll have a look at those in a minute. First I want
+you to update Eclipse so that it sees the new files in our asset folder
+and direct your attention back at the ResPack class that we started in
+the beginning of this tutorial.
+
+We'll want to create a TextureAtlas object, private, static and final
+and give it the .atlas file to read. I will call mine "\_PIXEL"
+
+*(It's my naming convention to give variables that are only used in very
+very (VERY) specific context an underscore as a beginning so that they
+show up first on the list of recommended variables but also to filter
+them out quickly and give them somewhat of a specific look. You don't
+have to do it this way, I think it's even considered bad practise. But
+it's something that I like to do).*
+
+After we have our private static and final TextureAtlas we can find
+textures in it by calling "findRegion(. . .)" on it. Here is some code
+as reference.
+
+``` {.lang:java .decode:true}
+ private static final TextureAtlas _PIXEL = new TextureAtlas(
+ Gdx.files.internal("USS_Pixel.atlas"));
+
+ public static final TextureRegion shipIdle = _PIXEL
+ .findRegion("ship_idle");
+```
+
+As you can see we no longer have to bother around with pixel coordinates
+in our textures because they've all be stored in the .atlas file by the
+TexturePacker. All there is left to do now is remove the TextureRegion
+calls from our Entity class and change it the fly() and idle() methods
+as well.
+
+``` {.lang:java .decode:true}
+ public void loadResources() {
+ if (type.equals(EntityType.PLAYER)) {
+
+ self = new Sprite(ResPack.SHIP_IDLE);
+ }
+ }
+
+ public void idle() {
+ self.setRegion(ResPack.SHIP_IDLE);
+ }
+
+ public void fly() {
+ int i = new Random().nextInt(2);
+ if (i == 0)
+ self.setRegion(ResPack.SHIP_IDLE);
+ else if (i == 1)
+ self.setRegion(ResPack.SHIP_FLY1);
+ else if (i == 2)
+ self.setRegion(ResPack.SHIP_FLY2);
+ }
+```
+
+And that's that. Isn't it neat? We cleaned up our code and even made the
+loading of textures easier and more efficient as well. The only downside
+is that you will have to re-pack your TextureAtlas for every texture
+that you add. In practise I usually have 2-3 atli that hold different
+kinds of textures together to keep some orientation over the textures
+involved.
+
+For that purpose I created three more textures, the Deep\_Pixel\_Nine,
+the Pixel\_Sun and Pixel\_Earth to be part of an "environment" atlas (as
+well as a more low-profile space picture :p ). You can download the
+whole .zip file with everything inside
+[here](http://www.spacekookie.de/downloads/Tutorials/LibGDX1/world.zip)!
+Go and add that to the ResPacker. You should know how ;)
+
+After setting up your ResPacker to properly import all the
+TextureRegions you should go and change the image that we're currently
+using and clean up your code in a way that it won't crash and doesn't
+contain calls that aren't being used anymore. With the ResPacker you
+have all your resources in one place and collected in two Texture Atli.
+
+Lastly, I went ahead and refactored the assets folder a little to be
+less clustered and deleted some of the files that we didn't need any
+more. Also note that I'm always keeping the raw files in case I need to
+update something.
+
+![refactored\_assets\_1](http://www.spacekookie.de/wp-content/uploads/2013/12/refactored_assets_1.png)
+
+And that's that for our rather short issue this time (I would want to
+say this week but I'm writing these so quickly right now). Next time I
+want to have a look at...I'm not sure yet. Probably cameras, controlling
+cameras, moving cameras around, etc. And of course some lovely camera
+theory. But until then have a lovely day and keep coding!
diff --git a/teaching/gameofcode/05-libgdx-game-of-codes-cameras-their-controllers-and-more-input.md b/teaching/gameofcode/05-libgdx-game-of-codes-cameras-their-controllers-and-more-input.md
new file mode 100755
index 0000000..d52c107
--- /dev/null
+++ b/teaching/gameofcode/05-libgdx-game-of-codes-cameras-their-controllers-and-more-input.md
@@ -0,0 +1,455 @@
+Title: 05. (LibGDX) Game of Codes: Cameras, their controllers and more Input
+Date: 2013-12-20 02:21
+Category: Game of Codes
+Tags: Guides
+Slug: 05-libgdx-game-of-codes-cameras-their-controllers-and-more-input
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we learned how to use Texture Atli and
+sort our assets in a way that we don't get lost in them (and also import
+them all in one place, our ResourcePacker). In this issue I promised you
+something about cameras and I realised that this would be the perfect
+opportunity to add some more action into our game. Let's begin!
+
+The first thing we'll want to do is create a new class in our utility
+package and call it something along the lines of CameraController,
+CameraInputAdapter or CameraManager. Let the class extend the
+InputAdapter and already create a few variables in it. An
+OrthgraphicCamera called camera and 4 Vector3 objects called current,
+mouse, last and delta. We'll need these to handle the scrolling logic
+for our camera.
+
+``` {.lang:java .decode:true}
+public class CameraController extends InputAdapter {
+ final OrthographicCamera camera;
+
+ private final Vector3 current = new Vector3();
+ private final Vector3 mouse = new Vector3();
+ private final Vector3 delta = new Vector3();
+ private final Vector3 last = new Vector3(-1, -1, -1);
+
+}
+```
+
+Be sure to give last three "-1" values and the rest you can leave empty.
+That's that, now create a constructor that takes the camera and stores
+it into the camera variable in our controller.
+
+Add the highlighted code into your games create() method to set up the
+CameraController. **Notice how we replaced the InputAdapter as the Input
+Processor and are now using the camController!!!**
+
+``` {.lang:java .mark:3-4 .decode:true}
+ camera = new OrthographicCamera();
+ camera.setToOrtho(false, w, h);
+ camController = new CameraController(camera);
+ Gdx.input.setInputProcessor(camController);
+ camera.update();
+```
+
+And that's where we'll take a step back and look at cameras for a
+moment. I already mentioned "unprojecting" in a previous tutorial and
+the term "Orthographic" has been flying around quite a lot recently. So
+I actually wanted to take the time and explain a few things about
+cameras because they'll make the whole ordeal less complicated (and also
+give you the ability to come up with your own camera code).
+
+![zyGF1](http://www.spacekookie.de/wp-content/uploads/2013/12/zyGF1.gif)
+
+These are the two camera types, left perspective and right orthographic.
+The main difference is that the perspective camera actively uses the
+third dimension to create the effect of depth while orthographic cameras
+will project everything onto the screen in a straight line. The third
+dimension can be used to move things behind one another but there is no
+effect of depth. Two objects could be apart by 500 pixels in the z-axis
+and still have the same size on-screen.
+
+![unprojectcameras](http://www.spacekookie.de/wp-content/uploads/2013/12/unprojectcameras.png)
+
+Camera projection is a bit tricky but it boils down to using two
+different coordinate sets. When you draw something on the screen every
+point in your window has a pixel coordinate from an origin (either top
+left or top right corner). But when you're using a camera that camera
+can scroll around, it can zoom and move. Therefor every point in the
+camera space has a different coordinate than the pixel coordinates on
+the screen. In the example of the picture above it is visible that the
+point on the screen (in pink) has a different coordinate on the map than
+on the screen (because the map and screen origin aren't the same).
+
+When registering clicks, drags or any kind of interaction all those
+coordinates will be in the screen-coordinate system. But we don't want
+the game to just set place in one screen width/ height so we move around
+and by calling "unproject" with a Vector3 we can translate the screen
+coordinates (with help of the camera) into world coordinates. Those two
+can be the same if the origins are the same but they can also be vastly
+different when on the other side of the game world.
+
+Don't forget to remember this! Your camera space will always move around
+while your pixel space will stay the same.
+
+If you have questions about that, post them in the comments below. But I
+hope this should be clear now. Now we should get back to the matter at
+hand.
+
+Controlling the Camera {style="text-align: justify;"}
+----------------------
+
+We're gonna have a look at zooming the camera first and limiting zoom
+range so that the player can't zoom out to see the entire world or zoom
+too far in that one pixel of the ship takes up the entire screen. But
+first up, I want you to do one things: go into the games Main method
+(the one that starts the Desktop client) and change three things.
+
+``` {.lang:java .decode:true}
+ cfg.useGL20 = true;
+ cfg.width = 1280;
+ cfg.height = 720;
+```
+
+Using OpenGL2 isn't important for now but we should do it anyways. It
+will make things look smoother and work faster but not be compatible
+with older (Android) devices. The second thing is just upgrading the
+game to 720p resolution which in 2013 is probably better. Aaaaaand JUST
+like that we have the same resolution as the Xbox One :')
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean mouseMoved(int screenX, int screenY) {
+ mouse.set(screenX, screenY, 0);
+ return false;
+ }
+
+ @Override
+ public boolean scrolled(int amount) {
+ float newZoom = camera.zoom * (1 + (amount < 0 ? 0.1f : -0.1f));
+ changeZoom(newZoom, mouse.x, mouse.y);
+ return true;
+ }
+```
+
+Add these two methods to our camera controller. The mouseMoved method
+should be fairly trivial, we only log the current mouse location into
+our lovely vector, with the z-axis set to "0" and return with false.
+
+The second method is the scrolled(. . .) method that gets passed in an
+amount (-1 or 1, depending on the mouse-wheel direction) and executes
+some code to calculate the zoom.
+
+First up we create a new float called newZoom and take the current
+camera zoom and multiply it by 1 + either 0.1 or -0.1, depending on
+whether amount was 1 or -1. This is a general syntax that can be used, a
+shortened if-statement:
+
+``` {.lang:java .decode:true}
+(a < b ? 1 : 2)
+
+means:
+"Is a smaller than b? If that's the case return 1, if not, return 2"
+```
+
+We could have written a whole nestation of if-statements for it but why
+do that if we can just write one line.
+
+The next line calls "changeZoom" which is a method that we have yet to
+implement and gives it the newZoom value, as well as the latest
+mouse-pointer-coordinates. This means that the picture will zoom towards
+the mouse, like in any decent game. If you wanted it to zoom towards the
+center of the screen you could use this.
+
+``` {.lang:java .decode:true}
+changeZoom(newZoom, Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);
+```
+
+Now let's have a look at what we need to do in the changeZoom(. . .)
+method we have yet to write.
+
+- We need to log the current screen position to translate the screen
+ by amount x and y to fit the new zoom position
+- We need to check if zoom should be applied (aka if inside the zoom
+ boundaries)
+- Apply the zoom, update the camera and check the new camera position
+- Then calculate how to move the camera to its new position
+
+So there will be a tiny tiny delay between zooming and panning to a side
+but in practise it's not noticeable. So let's get to work.
+
+First you should add another vector to the list, this time just a
+Vector2, that will hold our zoom boundaries for us. I just went with two
+hardcoded values that I found worked out quite well in practise. But
+you're free to experiment around.
+
+``` {.lang:java .decode:true}
+ /* x = min, y = max */
+ Vector2 zoomBounds = new Vector2(0.45f, 0.75f);
+```
+
+Next up, we can go create our method and tackle the first two bulletins
+on our list.
+
+``` {.lang:java .decode:true}
+ public void changeZoom(float zoom, float x, float y) {
+
+ Vector3 before = new Vector3(x, y, 0);
+ camera.unproject(before);
+
+ if (zoom <= zoomBounds.x || zoom >= zoomBounds.y) {
+ return;
+ }
+ }
+```
+
+Returning from a void method with no value will just jump out of the
+method. It's an easier why than to nest the entire algorithm into an if
+or the following else-statement. The statement just checks if the zoom
+value that we pass into the method.
+
+Now that we've shown that the zoom is valid we can apply it and update
+the camera. Then we can store the new location vector, unproject it and
+afterwards translate the camera from the old position to the new by
+subtracting the two vectors and thus getting the connection vector.
+
+``` {.lang:java .decode:true}
+ camera.zoom = zoom;
+ camera.update();
+ Vector3 after = new Vector3(x, y, 0);
+ camera.unproject(after);
+
+ camera.translate(before.x - after.x, before.y - after.y, 0);
+```
+
+Go ahead and try that for a bit. You'll see that the camera won't zoom
+past our barriers which means that the player can be focused on their
+ship and the environment at times and still zoom out a bit and get some
+sort of overview. It was important to having implemented this first
+because now we're gonna tackle the much harder subject of scrolling
+around (by clicking and dragging) and also setting boundaries around the
+map that limit the player from scrolling past our beautiful star map and
+into the nothingness that is the white background colour :O
+
+Start by adding two more methods: touchDragged, touchUp and update().
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean touchDragged(int x, int y, int pointer) {
+ camera.unproject(current.set(x, y, 0));
+ return false;
+ }
+
+ @Override
+ public boolean touchUp(int x, int y, int pointer, int button) {
+ return false;
+ }
+
+ public void update() {
+
+ }
+```
+
+And start by setting the current vector to the x and y values passed
+into the method as they'll be updating the current vector. Then
+unproject that bad girl to get the world coordinates of the actions.
+
+Next we want to check if we've already dragged. And that's why I wanted
+you to give the last vector the value (-1,-1,-1) because this now allows
+us to use this value as a flag. See, because we're only using 0 in the
+z-dimention we can assume that if it's set to -1 it's one of our flags.
+So go ahead and check if last is (-1,-1,-1) and if it is NOT! set the
+delta vector to the last coordinates and unproject that as well.
+
+``` {.lang:java .decode:true}
+if (!(last.x == -1 && last.y == -1 && last.z == -1)) {
+ camera.unproject(delta.set(last.x, last.y, 0));
+ }
+```
+
+Afterwards add two more things: we want delta to be the difference
+between the last point and our current point, so we need to subtract the
+two. And lastly we want to apply that manipulated delta vector to the
+camera so that it actually moves from our last position to the current
+position (on the delta vector). (Full if-statement to prevent confusion,
+I will add the full code again afterwards. This is really non-trivial).
+
+``` {.lang:java .decode:true}
+ if (!(last.x == -1 && last.y == -1 && last.z == -1)) {
+ camera.unproject(delta.set(last.x, last.y, 0));
+ delta.sub(current);
+ camera.position.add(delta.x, delta.y, 0);
+ }
+```
+
+After we're done with this we want the last vector to be set to our
+current coordinates because in the next call those need to be updated
+(as current will have been updated to our next position). Then we return
+with false because we want the event to trickle through every listener
+we have. What is that? I know...I'm getting ahead of myself, I will
+explain that in a bit!
+
+Now we can scroll around the camera but there is one thing we need to do
+and that is set last to (-1,-1,-1) again so that it can't activate the
+if-statement on the first call of touchDragged and gets assigned with
+the current coordinates.
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean touchUp(int x, int y, int pointer, int button) {
+ last.set(-1, -1, -1);
+ return false;
+ }
+```
+
+And here the full touchDragged(. . .) again as reference.
+
+``` {.lang:java .decode:true}
+ @Override
+ public boolean touchDragged(int x, int y, int pointer) {
+ camera.unproject(current.set(x, y, 0));
+
+ if (!(last.x == -1 && last.y == -1 && last.z == -1)) {
+ camera.unproject(delta.set(last.x, last.y, 0));
+ delta.sub(current);
+ camera.position.add(delta.x, delta.y, 0);
+ }
+ last.set(x, y, 0);
+ return false;
+ }
+```
+
+Now...if you try this out you'll see that we can zoom and scroll around
+on our lovely landscape. But the problem is that there are no bounds to
+keep us inside the landscape and the player can easily scroll too far
+and see the white background. Yikes.
+
+To fix this we need to go back to our main game class for a second and
+change the render() method a tiny bit.
+
+``` {.lang:java .mark:6-7 .decode:true}
+ @Override
+ public void render() {
+ Gdx.gl.glClearColor(1, 1, 1, 1);
+ Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ handler.update();
+ camController.update();
+
+ batch.setProjectionMatrix(camera.combined);
+ batch.begin();
+ space.draw(batch);
+ player.draw(batch);
+ batch.end();
+ }
+```
+
+What did I do here? I stopped updating the camera in the render method
+but instead started calling that update() method we created in the
+CameraController. We could of course have this code in the render method
+but it's good practise to not cluster that thing up too much. Go back to
+the camera controller and add that camera.update() call to the update()
+method again so that we don't break everything.
+
+And that's the point where I will once again bore you with mathematical
+theorems. (Actually it's not too bad). The subject at hand is clamping.
+For everybody familiar with this, go ahead and skip this paragraph. For
+everybody that is not, let me quote Wikipedia for you:
+
+*"In computer graphics, clamping is the process of limiting a position
+to an area. Unlike wrapping, clamping merely moves the point to the
+nearest available value."*
+
+So essentially we have a method called clamp(value, min, max); and the
+method tries to keep our value between the minimum and the maximum. In
+LibGDX this is done by calling the MathUtils class and asking for (the
+drunken) clamp.
+
+We will be clamping the cameras x and y position manually but we have
+another problem. See...we have our origin in the bottom left, but the
+camera position is measured at its center. And because we're zooming in
+and out the center doesn't always have the same position. So we need to
+adjust the boundaries for the camera dynamically. And we can do that by
+taking the size of the screen, multiplying it with the camera zoom and
+then dividing it by 2 to get the center.
+
+In code example.
+
+``` {.lang:java .decode:true}
+camera.position.x = MathUtils.clamp(camera.position.x, (Gdx.graphics.getWidth() * camera.zoom) / 2, max);
+```
+
+Now..for the maximum, we want the camera to stop on the other side of
+the texture, so we need to get the size of the texture from the
+ResPacker. But we also need to take the same offset we added to the
+minimum, because the center is still moved to its center. So instead of
+adding to "0" we now subtract from the size of the texture.
+
+``` {.lang:java .decode:true}
+ResPack.WORLD_BACKGROUND.getRegionWidth() - (Gdx.graphics.getWidth() * camera.zoom) / 2
+```
+
+And that's that. Here is the full code if you wanna check that you did
+it right. Of course we want to do this for both the X and the Y axis and
+we of course want to take the HEIGHT for the Y axis, not the width
+(looks at self in shame after not having found a bug with this).
+
+``` {.lang:java .decode:true}
+ public void update() {
+ camera.position.x = MathUtils.clamp(camera.position.x, (Gdx.graphics.getWidth() * camera.zoom) / 2,
+ ResPack.WORLD_BACKGROUND.getRegionWidth() - (Gdx.graphics.getWidth() * camera.zoom) / 2);
+ camera.position.y = MathUtils.clamp(camera.position.y, (Gdx.graphics.getHeight() * camera.zoom) / 2,
+ ResPack.WORLD_BACKGROUND.getRegionHeight() - (Gdx.graphics.getHeight() * camera.zoom) / 2);
+ camera.update();
+ }
+```
+
+is now our update method and it's glorious, isn't it? Try it out and
+marvel at our limitless glory and genius. And then realise that you can
+no longer move the ship. Well....remember? We kinda replaced the
+InputAdapter as our InputProcessor. But don't worry, there is a way
+around it! Remember when I spoiled you a few lines ago with trickle down
+something? Well..turns out that LibGDX offers you a way to add multiple
+InputProcessors with something called a *Multiplexer*.
+
+![Input
+Multiplexer](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2014-01-10-at-23.57.26.png)
+
+Go into our main game class and add a new Object
+
+``` {.lang:java .decode:true}
+private InputMultiplexer plex;
+```
+
+And then in the create() method.
+
+``` {.lang:java .mark:6,12-14 .decode:true}
+ @Override
+ public void create() {
+
+ . . .
+
+ plex = new InputMultiplexer();
+
+ handler = new InputHandler(player);
+ camController = new CameraController(camera);
+
+ /* Input Controllers */
+ plex.addProcessor(camController);
+ plex.addProcessor(handler);
+ Gdx.input.setInputProcessor(plex);
+ }
+```
+
+Adding the CameraController first will give it a higher priority in the
+MultiPlexer. Meaning that it will first trigger the events in the
+CameraController and then trickle down to the other controllers. That's
+why I didn't want to return true in our drag-methods because that would
+stop the event and not pass it onto the next InputProcessor.
+
+And that's that, compile this and you'll see that you can fly the ship
+around and drag the camera over the map at the same time. And this is
+where I'll end this tutorial, I think I've loaded your brain with enough
+new stuff right now.
+
+Next time I want to take a look at actual gameplay. Letting the camera
+pan after the ship, letting the ship also have boundaries (same as the
+camera) and placing those other textures I made around in the world, as
+well as some well needed refactoring if we're gonna expand our feature
+list. But until next time, keep coding!
diff --git a/teaching/gameofcode/06-libgdx-game-of-codes-creating-a-world-more-refactoring.md b/teaching/gameofcode/06-libgdx-game-of-codes-creating-a-world-more-refactoring.md
new file mode 100755
index 0000000..3b44c52
--- /dev/null
+++ b/teaching/gameofcode/06-libgdx-game-of-codes-creating-a-world-more-refactoring.md
@@ -0,0 +1,333 @@
+Title: 06. (LibGDX) Game of Codes: Creating a world & more refactoring
+Date: 2014-01-10 22:30
+Category: Game of Codes
+Tags: Guides
+Slug: 06-libgdx-game-of-codes-creating-a-world-more-refactoring
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we learned how to write a camera input
+processor (which is really just like a normal input processor) and do
+some freaky matrix calculations in order to move around. In this issue I
+want to go back to the roots (so to say) and work on features. Our code
+is already pretty slick but I think it can be improved in order to make
+room for more features. Let’s begin!
+
+First off we should change a few things in our Entity class. Remember
+that EntityType that I added despite you shaking your and saying "what
+the hell is she up to again?" Well...go in there and add some more
+values into the enum. And also create a public getter for the type and a
+private setter. This is only a temporary solution, in the long run we
+want things to be saved in a database. But it'll do for now!
+
+``` {.lang:java .decode:true}
+ public static enum EntityType {
+ PLAYER, ENEMY, STATION, PLANET, STAR;
+ }
+
+ . . .
+
+ public EntityType getType() {
+ return type;
+ }
+
+ private void setType(EntityType type) {
+ this.type = type;
+ }
+```
+
+Right now we only have one station, one planet and one star. So if we
+ever decide to create more bodies we'll have to come up with a new
+system (Plot twists: I already have, I'm just not telling you ;) )
+
+Next up we want to do something else. Go ahead and create a new package
+called objects (Remember to name it with the full package-tree so that
+it's a child of "libgdxtutorial" and not "src") We'll use this package
+to store all our gameplay objects in here. Go ahead and drag the
+"Entity" into it as well before creating a new class called "World".
+
+This is what your project tree should look now. Well...more or less.
+
+![LibGDX\_Tutorial\_tree](http://www.spacekookie.de/wp-content/uploads/2014/01/Screen-Shot-2014-01-10-at-22.39.30.png)
+
+Our world class will have an overview of all entities in existence,
+coordinate collision detection with the player (later maybe between
+non-player entities as well) and generally just know everything
+important. For that to work we need to give it all the entities there
+are. So go ahead and create a new Set and a few methods to actually use
+those. My code, as always, as reference below.
+
+``` {.lang:java .decode:true}
+package de.spacekookie.libgdxtutorial.objects;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.badlogic.gdx.Gdx;
+
+public class World {
+
+ private Set entities;
+
+ public World() {
+ entities = new HashSet();
+ }
+
+ public Set getEntities() {
+ return entities;
+ }
+
+ public Entity getEntitityWithType(Entity.EntityType type) {
+ for (Entity e : entities) {
+ if(e.getType() == type)
+ return e;
+ }
+ return null;
+ }
+
+ public void addEntity(Entity e) {
+ if (!entities.contains(e))
+ entities.add(e);
+ else
+ Gdx.app.log("World", "Entity already in Set!");
+ }
+
+ public void removeEntitity(Entity e) {
+ if (entities.contains(e))
+ entities.remove(e);
+ else
+ Gdx.app.log("World", "Error! No such entity in world!");
+ }
+}
+```
+
+The constructor just initializes the HashSet, we have a few getters and
+setters, a way to individually add a single entity (e.g. if we're
+spawning a pirate ship, maybe?) We'll be expanding on this code heavily
+in the future but it's as complex as it needs to be right now. (Note how
+I'm using Gdx.app.log to log two cases when adding and removing
+entities. That's not required but it's a good way to keep tabs of
+potential errors when playing the game or debugging something.)
+
+Next, we should go into our main game class and start using the World
+object. Make sure to actually use OUR world object, not the Box2D world
+(which is great for physics and lighting and we might use it later but
+not right now!)
+
+``` {.lang:java .decode:true}
+ world = new World();
+ world.addEntity(new Entity(EntityType.PLAYER, new Vector2(200, 150)));
+```
+
+And we of course need to teach our InputProcessor to use the world to
+handle input!
+
+``` {.lang:java .decode:true}
+ handler = new InputHandler(world);
+```
+
+And in the InputHandler we need to change the constructor and some
+methods.
+
+``` {.lang:java .decode:true title="Constructor"}
+ public InputHandler(Object o) {
+
+ if (o instanceof World && o != null)
+ this.world = (World) o;
+
+ if (o instanceof Entity && o != null) {
+ this.e = (Entity) o;
+ return;
+ }
+
+ for (Entity e : world.getEntities()) {
+ if (e.getType() == EntityType.PLAYER) {
+ this.e = e;
+ }
+ else {
+ Gdx.app.log("InputHandler", "NO PLAYER IN WORLD!");
+ }
+ }
+ }
+```
+
+(Be sure to rename the entity in that class to "e")
+
+And that should be all the changes we need to make. If I missed anything
+or something is unclear, just leave me a comment below and I'll get back
+to you. If you compile this it should still be the same game as before,
+with the difference that under the hood it has a lot more horsepower
+(kilowatts) and we'll be able to do some really cool things with this in
+a moment.
+
+Here is an idea. Why don't we go ahead and plan our solar system a
+little. I know, I know, you're lazy again. I get it. You just wanna read
+these, absorb the knowledge via a USB3 port in your skull and eat
+Cheerios all night. Still. I hope you can be bothered to check out the
+picture below :)
+
+![Each grid square is exactly 100x100
+pixels](http://www.spacekookie.de/wp-content/uploads/2013/12/Screen-Shot-2013-12-20-at-13.04.57.png)
+
+You can see the background image that is currently our game world and
+our other objects scattered around the world. The grid lines in
+Photoshop (Adjustable under Preferences --\> Guides, Grids &
+Sliders --\> Grid) will give us a little help when trying to find places
+to place these objects. But for that to happen we need to add a little
+more to our Entity class.
+
+See, right now we just check if the EntityType is the player and if it
+is we draw the space ship. But what we really want to do is also take a
+set of coordinates in the constructor to pass down to the rendering. In
+fact, we kinda want the pixel coordinate to be saved in the object
+itself rather than having to check the sprite for information. Because
+that's what the object is for, to hold all the information needed and
+provide a sort of "interface" to access and store the information. We
+don't want to be digging around in a sub-object or OpenGL logic object
+to get information.
+
+So I added a new vector called position, created a new constructor that
+now also takes a vector (left the old one to not break things) and
+created a method called "updatePosition()" that takes the position
+vector and gives the coordinates to the sprite.
+
+``` {.lang:java .decode:true}
+ private Vector2 position;
+
+ public Entity(EntityType type) {
+ this.type = type;
+ moveVector.scl(speed);
+ position = new Vector2();
+ }
+
+ public Entity(EntityType type, Vector2 position) {
+ this.type = type;
+ this.position = position;
+ moveVector.scl(speed);
+ updatePosition();
+ }
+
+ public void updatePosition() {
+ self.setPosition(position.x, position.y);
+ }
+
+ . . .
+
+ public Vector2 getPosition() {
+ return position;
+ }
+
+ public void setPosition(Vector2 position) {
+ this.position = position;
+ }
+```
+
+Next up we want the loadResources method to be able to not just load the
+ship textures but check all the EntityTypes and load textures
+accordingly. For that I changed the whole thing to a Switch statement.
+If you're not familiar with Switch...get familiar with
+[Switch](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html).
+It's awesome!
+
+``` {.lang:java .decode:true}
+ public void loadResources() {
+ switch (type) {
+ case PLAYER:
+ self = new Sprite(ResPack.SHIP_IDLE);
+ break;
+ case PLANET:
+ self = new Sprite(ResPack.WORLD_EARTH);
+ self.setScale(2f);
+ break;
+ case STATION:
+ self = new Sprite(ResPack.WORLD_STATION1);
+ self.setScale(1.5f);
+ break;
+ case STAR:
+ self = new Sprite(ResPack.WORLD_SUN);
+ self.setScale(2f);
+ break;
+
+ default:
+ Gdx.app.log("Entity", "EntityType not found!");
+ break;
+ }
+ }
+```
+
+I added the "setScale" in order to simulate size. A star should
+be \*slightly\* larger than a space station. This is only a temporary
+measure but I think it'll look better this way. You can of course leave
+it out.
+
+There is one thing we'll have to do to restore the game as it was before
+and that is to actually use the "updatePosition" method that we created.
+So in the input processor, instead of calling "setPosition" on the
+sprite we should use our object methods.
+
+``` {.lang:java .decode:true}
+ if (moving) {
+ Vector2 temp = new Vector2(e.getPosition().x, e.getPosition().y);
+ temp.add(e.getMovement());
+ e.setPosition(temp);
+ e.updatePosition();
+ e.fly();
+ }
+```
+
+So far so good. Our code can now handle different types of objects,
+though we will still need to create the objects at some point. And
+because we want the world to keep tabs on everything going on we'll have
+to update some code in our world method. See, we can add entities by
+calling that 2nd lovely constructor and passing them into our world
+object. We do that by calling.
+
+``` {.lang:java .decode:true}
+world.addEntity(new Entity(ENTITY_TYPE, ENTITY_POSITION));
+```
+
+Where Type and Position are of course one of our lovely EntityTypes that
+we defined and the position is a Vector2 object. And where will we use
+this dark magic you ask? Well simple. Where do we already add the player
+to our world.
+
+``` {.lang:java .mark:8-10 .decode:true}
+ @Override
+ public void create() {
+ float w = Gdx.graphics.getWidth();
+ float h = Gdx.graphics.getHeight();
+
+ world = new World();
+ world.addEntity(new Entity(EntityType.PLAYER, new Vector2(200, 150)));
+ world.addEntity(new Entity(EntityType.STATION, new Vector2(600, 300)));
+ world.addEntity(new Entity(EntityType.PLANET, new Vector2(1200, 600)));
+ world.addEntity(new Entity(EntityType.STAR, new Vector2(650, 750)));
+ }
+```
+
+In our main game create() method. Now render this and marvel at its
+glory. You can of course change the coordinates. Note that those are
+camera-world coordinates, not pixel-coordinates. Compile this, it
+shouldn't throw any errors. (Unless I forget to mention something in the
+post ;)
+
+
+And well...that's it for this time, really. I hope that you learned a
+thing or two and have also seen that the BEST way of implementing a new
+feature is often to take a step back, look at the big picture and then
+think about how it would be easiest to do something. Next issue I want
+to show you how to UI which is an important thing when it comes to
+creating a game. Also note, that all of my source code can be viewed on
+my open repository on
+[BITBUCKET](https://bitbucket.org/LaGemiNi/star-chaser "BITBUCKET") (which
+is the name I've given to this name). There is also a video on my
+[youtube](http://www.youtube.com/watch?v=ocYqXyM9v2Y "youtube") channel
+from a week ago or so. Go check both things out.
+
+Sorry that it took me a bit longer to get this one out. I had a lot on
+my plate the last week. I'll try bring out two posts on here per week. I
+have something slightly special planned for next Tuesday. Hint, it
+involves a lot of hardware, FreeBSD and a RAID :)
+
+But until next time, keep coding!
diff --git a/teaching/gameofcode/07-game-of-codes-user-interfaces-and-the-power-of-scene2d.md b/teaching/gameofcode/07-game-of-codes-user-interfaces-and-the-power-of-scene2d.md
new file mode 100755
index 0000000..c3d76d0
--- /dev/null
+++ b/teaching/gameofcode/07-game-of-codes-user-interfaces-and-the-power-of-scene2d.md
@@ -0,0 +1,359 @@
+Title: 07. (LibGDX) Game of Codes: User Interfaces and the power of Scene2D
+Date: 2014-01-14 21:31
+Category: Game of Codes
+Tags: Guides
+Slug: 07-game-of-codes-user-interfaces-and-the-power-of-scene2d
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we added new features to our game and
+learned that the best step forward is often a step to the side (or back)
+to get a view over what's going on. In this tutorial I want to show you
+something that has absolutely nothing to do with features but will be
+among the most important things in the game: the UI. We'll talk about
+stages (like the acting stages, not rocket stages), UI elements and
+something called Scene2D. Let's begin!
+
+Any game will be composed of several layers. In the background you want
+to draw a map or textures to let the players know where they are
+(relatively). In the actual scene you want to draw all sorts of objects
+including the player themselves to show what's going on. And in the
+foreground you want to draw the UI with which the player can interact to
+manipulate the game. Sure, we already have our input listeners set up in
+a way that we can manoeuvre around our ship. But what about a UI?
+Buttons? An inventory? This is something we'll tackle in this tutorial.
+It's gonna be a long one too so be sure to bring some time and maybe
+re-read it at a later point again.
+
+In LibGDX we can use a UI-package called "Scene2D" which is perfect for
+anything UI. It uses a layer of our game called the "Stage" that will be
+populated by "Actors". In the beginning we'll stick with standard actors
+but we can soon expand and write our own Actors by expanding that
+superclass and doing own things with it. The stage will gladly welcome
+our new Actor object into its ranks and manage everything there is to
+manage about it. Just like our world-class. So you can see that it's
+always a good idea to implement a managing parent class, followed by a
+bunch of child objects.
+
+![Scene2D](http://www.spacekookie.de/wp-content/uploads/2014/01/Screen-Shot-2014-01-13-at-17.08.28.png)
+
+But before we get some stuff done with Scene2D and the stage I need to
+explain you a few things about skins. A skin is a way to tell the game
+how a UI should look. It includes fonts, graphics and textures to
+describe how things have to be drawn. And creating beautiful skins is a
+tutorial of its own (with which I'm honestly not very familiar. I'm a
+programmer, not a designer ;) ). But luckily the creators of LibGDX
+provide us with a standard skin that we can just download and use. It's
+not exactly pretty and I wouldn't recommend using it in your games end
+release. But it'll get the job done until then. And if you at a later
+stage decide that you want to use your own skin, you will only have to
+change the skin files and everything else remains the same. Pretty cool,
+eh?
+
+------------------------------------------------------------------------
+
+So first off we'll need some files that make up the skin:
+
+[A
+FONT](https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/default.fnt)
+
+[AND IT'S
+RESOURCE](https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/default.png)
+
+[A TEXTURE
+FILE](https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/uiskin.png)
+
+[AND IT'S
+ATLAS](https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/uiskin.atlas)
+
+[A JSON
+FILE](https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests-android/assets/data/uiskin.json)
+
+(To actually download the text-files just view their content in "Raw"
+and copy them into a text editor of your choice. However use something
+that let's you set your own file types. TextWrangler or TextMate on macs
+and Notepad++ on Windows)
+
+------------------------------------------------------------------------
+
+Download these from the LibGDX github repository. In general, if you're
+ever stuck or want to look at some samplecode or just get to know what's
+under the hood of the latest nightly build, check the github repository
+for answers. It's a great tool! Put them all into a new folder in your
+assets directory called "Skin" or something and then go into your
+Resource packer class and create a new public final static object there.
+
+``` {.lang:java .decode:true}
+ public static final Skin _SKIN = new Skin(Gdx.files.internal("data/skin/uiskin.json"));
+```
+
+And that's that. LibGDX will do the rest. From now on, every time we
+want to use anything related to the UI we will have to pass in this skin
+to make it work (and look the same as the rest of the game). Now we'll
+be doing some stuff in LibGDX's Scene2D. It's all very basic but
+necessary to understand. Again...I might not cover everything. But if
+you google "Scene2D + anything" you'll find your answers quite quickly.
+90% of coding: googling how to do things :)
+
+Basics of Tables
+----------------
+
+We'll want to go into our main game class and create a new object called
+"Stage". Make it private and initialize it just after the camera. And
+then set the viewport in the resize method. Confused? Look below.
+
+``` {.lang:java .decode:true}
+ /** UI */
+ private Stage stage;
+
+ @Override
+ public void create() {
+
+ . . .
+
+ /** UI */
+ stage = new Stage();
+
+ . . .
+
+ }
+ . . .
+
+ @Override
+ public void resize(int width, int height) {
+ stage.setViewport(width, height);
+ }
+```
+
+This way the stage will be resized every time we resize the viewport of
+the game. Which currently is only at launch because we don't allow for
+user resizes. But that could change. That's a pretty good idea, we
+should actually do the same with our camera. So remove our two variables
+"w" and "h" and move "camera.setToOrtho(...)" to the resize method so it
+looks like this.
+
+``` {.lang:java .decode:true}
+ @Override
+ public void resize(int width, int height) {
+ stage.setViewport(width, height);
+ camera.setToOrtho(false, width, height);
+ }
+```
+
+Now...enough spontanious refactoring, let's actually get into our
+tables. The stage itself is an invisible object, much like our world. It
+won't draw anything unless we actually add some actors and then act out
+the stage in our render method.
+
+Why don't we create a button that says "Menu" in the top-right corner? I
+think that's a nice start to our UI and actually useful. In LibGDX there
+are many button implementations, including some with pictures and an
+abstract type that you can implement your own types on. But the regular
+"TextButton" is sufficient for us at this time. So go create a global
+variable of the type TextButton, give it a name and then, after
+initializing the stage, initialize the button. How? Like this.
+
+``` {.lang:java .mark:1,10 .decode:true}
+ private TextButton menu;
+
+ @Override
+ public void create() {
+
+ . . .
+
+ /** Setting up the UI */
+ stage = new Stage();
+ menu = new TextButton("Menu", ResPack._SKIN);
+
+ . . .
+ }
+```
+
+You can see that the button wants a string to display on itself and of
+course a skin. So far so good. But how do we tell it to go to the
+top-right corner of the screen? Well...that's not so simple and I
+actually want to show you this way first so you NEVER think about doing
+this manually again :) We will need to take the size of the stage and
+then substract the size of the button from it and set that as its new
+position.
+
+``` {.lang:java .decode:true}
+ menu.setPosition(stage.getWidth() - menu.getWidth(), stage.getHeight() - menu.getHeight());
+ stage.addActor(menu);
+```
+
+Pretty complicated, eh? That second line adds the menu-button to the
+stage. It's essentially the same thing that we're doing with our world:
+creating a bunch of objects and passing them into a large-scale manager.
+But, if you remember correctly, our world needs something in the render
+method to work. And the same applies to our stage. First we need to act
+out the stage which means moving things that need to be moved, animating
+things that need to be animated, etc. And then draw the stage. So in our
+render method we add.
+
+``` {.lang:java .decode:true}
+ stage.act();
+ stage.draw();
+```
+
+Be sure to put this at the very bottom of our rendering so that it ends
+up on TOP of our stack. (Laying a stack of papers, the sheet you put
+onto it first will be on the bottom (the background) while the one you
+put on last will be on top (the UI).
+
+![StarChaser\_UI\_Test1](http://www.spacekookie.de/wp-content/uploads/2014/01/Screen_Shot_2014-01-12_at_11_14_13-2.png)
+
+Now compile this and marvel at its glory. Well...kind of. See...when we
+now need to add a second button to that menu maybe titled "Inventory"
+we'll have to do very complicated mathematics in order to line up the
+buttons. Which isn't great and which is why Tables were created.
+
+Just after creating your button, why don't you go and create a "Table"
+object, initialize it after the stage and then add the button to the
+table and the table to the stage.
+
+``` {.lang:java .mark:1,10,12-13,16 .decode:true}
+ private Table buttons;
+
+ @Override
+ public void create() {
+
+ . . .
+
+ /** Setting up the UI */
+ stage = new Stage();
+ buttons = new Table(ResPack._SKIN);
+
+ buttons.setFillParent(true);
+ buttons.top().right();
+
+ menu = new TextButton("Menu", ResPack._SKIN);
+ buttons.add(menu);
+
+ stage.addActor(buttons);
+```
+
+So instead of adding the button to the stage we add it to the table, we
+tell it to fill its parent (which is important for the validation of the
+table during render) and then call "top" and "right"...see, instead of
+working with pixel coordinates here we can just tell the table to go to
+any corner of the window (center, top, bottom, left, right). And the
+coolest thing is that the table will try to stay on-screen, even if we
+add more buttons. Let's do that now honestly, create a new button called
+"Inventory" and add it to the table just as the menu button. Note that
+the table will be populated from left to right meaning that if you want
+the Inventory button to be to the left of the menu button you'll have to
+add it first.
+
+And that's that for tables for now. There are more advanced things
+concerning tables but I won't cover them here (and now). If you're
+curious or this isn't specific enough for what you have planned, why
+don't you go [here](https://github.com/EsotericSoftware/tablelayout) and
+read about it :)
+
+Handling input
+--------------
+
+Something you might have noticed is that our current buttons don't react
+to any kind of input. That has to do with the fact that we never
+register the stage as an input processor. Usually you call
+Gdx.input.setInputProcessor(stage) but as we already have an input
+multiplexer set up we can just add the stage to that.
+
+``` {.lang:java .decode:true}
+ plex.addProcessor(stage);
+```
+
+And voila you'll see that the buttons now react to our clicks, even with
+just a red glow. Because to actually HANDLE the input we need something
+to listen to it. In our input processors we have listeners to certain
+events, like moving the mouse or pressing a certain button. And we use
+these events to manipulate our game. For the UI it's no different.
+Well...it's slightly different. We don't want to create a UI
+InputProcessor. It's not only completely ridiculously complicated but
+actually inadvisable. Instead we'll set up the listeners for each button
+manually in our game class and tuck them away in a method somewhere at
+the bottom of the class to be out of sight and out of mind.
+
+``` {.lang:java .decode:true title="Clicklistener - innertype"}
+ private void setupListeners() {
+ menu.addListener(new ClickListener() {
+
+ public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
+ Gdx.app.log("Stage", "Menu button pressed");
+ }
+ });
+ }
+```
+
+What you see above is known as an inner-type. If you've worked with my
+Android series before you'll know them. it's essentially a way to create
+a class inside another class (in the parameter brackets of a method) to
+define how a passed down to the "addListener" method.
+
+The ClickListener extends the InputListener where we can manually
+override one of the listeners. In my case I decided to override the
+"touchUp" method with all the parameters it takes and log the case. Now
+create a second listener for the second button, just as the one I showed
+you above. Compile it and see what happens. Pretty cool, eh (again)?
+
+Okay, maybe not that cool. Initially I wanted to go on here and make
+options and inventory screens but I think we should do this at a later
+time because it would take hours and not really have anything to do with
+Scene2D anymore. Let's just check out some other elements we have in
+Scene2D before wrapping this up.
+
+So create a new table with a name of your choosing and add a few thing
+to it.
+
+``` {.lang:java .decode:true}
+ temp = new Table(ResPack._SKIN);
+ temp.setFillParent(true);
+ TextureRegionDrawable trd = new TextureRegionDrawable(new TextureRegion(new Texture(
+ Gdx.files.internal("graphics/image_button.png"))));
+ imageButton = new ImageButton(trd);
+ checkbox = new CheckBox("This is a checkbox", ResPack._SKIN);
+ field = new TextField("This is a textfield", ResPack._SKIN);
+
+ temp.add(imageButton);
+ temp.row();
+ temp.add(checkbox);
+ temp.add(field);
+ temp.top().left();
+ stage.addActor(temp);
+```
+
+Oh boy, I know. Let's go trough it line by line. Temp is just a table
+that we set to fillparent = true. The next thing we do isn't really
+important for now, just note that we're doing it. A
+TextureRegionDrawable extends a Drawable that we need for our button.
+Ideally you want to have all your button images in your skin. But the
+default skin doesn't. So because I didn't want to add stuff to the skin
+I went with the "hard" but quick way. Afterwards we initiate a checkbox
+and a textfield.
+
+[![image\_button](http://www.spacekookie.de/wp-content/uploads/2014/01/image_button.png)](http://www.spacekookie.de/wp-content/uploads/2014/01/image_button.png)
+
+Note how we're adding things to the table and using "row()" only once.
+Each time you call row() it will create a new row. So in effect the
+first item will be on it's own row and then the checkbox and textfield
+on another. If you put another row between them that will change of
+course. Above you have the button image that I used. Go import that into
+your project if I want it to work OR of course just create your own
+Button image.
+
+I hope that this tutorial has shown you how powerful Scene2D can be.
+With just a few lines of code we created a whole layout and added
+listeners to it. The process remains that easy and you ca of course
+still add and subtract offsets to tables to fine-tune their position. If
+you have further questions about Scene2D, go ahead and post them below.
+But in general the API is relatively well documented and if you have
+questions you can always check out the LibGDX forums or the IRC.
+
+Thats it for today, I'll continue with this next time but we'll have our
+focus on something called Screens. They're nifty little things that can
+make our life a whole lot easier (and more difficult actually ;) ).
+I actually wanted to do something \*slightly\* different today (that
+involved computer hardware) but I actually ordered a wrong part. So
+that'll be delayed. Not sure when it'll come out.  So until next time,
+keep coding.
diff --git a/teaching/gameofcode/08-libgdx-game-of-codes-screens-subscreens.md b/teaching/gameofcode/08-libgdx-game-of-codes-screens-subscreens.md
new file mode 100755
index 0000000..de696a9
--- /dev/null
+++ b/teaching/gameofcode/08-libgdx-game-of-codes-screens-subscreens.md
@@ -0,0 +1,381 @@
+Title: 08. (LibGDX) Game of Codes: Screens & Subscreens
+Date: 2014-01-19 09:30
+Category: Game of Codes
+Tags: Guides
+Slug: 08-libgdx-game-of-codes-screens-subscreens
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last edition we looked at user interfaces with Stages
+and Scene2D. Today I want to show you how to make your game a LOT better
+and more functional by adding *Screens *(I already spoiled this last
+tuesday ;) ). Let's begin!
+
+First of all we should take a step back and look at our game. We have
+our main-game class that currently extends "ApplicationListener" and
+does a whole lot of stuff. It's the main game loop, it populates and
+updates the world and handles input. So essentially it's a class that is
+tied into everything that LibGDX does to make a game runnable. Well...an
+"Application". That's a very broad term and there is another subclass of
+that main class that we currently extend, that we need to use in the
+future. it's almost the same as the ApplicationListener but \*slightly\*
+different. And we need that. The class is called "Game". So what I want
+you to do now is go into the main "Game" class and change the extend
+from "ApplicationListener" to "Game". In my case it's the line below.
+
+``` {.lang:java .decode:true}
+public class StarChaser extends Game {
+```
+
+Eclipse might give you some trouble with implementing the new methods.
+Usually you just have to clean your project (Project --\> Clean --\>
+All) and it'll calm down. In the worst case scenario just copy all your
+code into a different editor, delete all the code from the class (except
+the class definition and package of course, let Eclipse import
+everything for you again, implement the methods and then paste your code
+into the methods it create (that will be EXACTLY the same as the ones we
+had before. But you know...Eclipse is weird sometimes :) ).
+
+What did this get us? Well...if you added the sources to your Libraries
+you can right-click that "extends Game" and show it's declaration to see
+the Game class that we now extend. It extends the ApplicationListener
+and adds something we want to use now: a *Screen!*
+
+A screen is a layer of our game. It gets shown, rendered, paused and
+destroyed. It acts very much like a fragment on Android (if you're
+familiar with the Android API) and can be an overlay or replacement of
+the entire game. using screens is a much better solution in switching
+between "screens" than creating new games or trying to use a lot of
+booleans and flags to determine what part of which GUI is supposed to be
+visible.
+
+So why don't you go and create a new package called "screens" and add a
+new class to it and let it implement "Screen". I called mine
+"MenuScreen".
+
+``` {.lang:java .decode:true}
+package de.spacekookie.starchaser.screens;
+
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Screen;
+import com.badlogic.gdx.scenes.scene2d.Stage;
+
+public class MenuScreen implements Screen {
+
+ /** UI */
+ private Stage stage;
+
+ @Override
+ public void render(float delta) {
+ stage.act();
+ stage.draw();
+ }
+
+ @Override
+ public void resize(int width, int height) {
+ stage.setViewport(width, height);
+ }
+
+ @Override
+ public void show() {
+ stage = new Stage();
+ }
+
+ @Override
+ public void hide() {
+
+ }
+
+ @Override
+ public void pause() {
+
+ }
+
+ @Override
+ public void resume() {
+
+ }
+
+ @Override
+ public void dispose() {
+
+ }
+
+}
+```
+
+This is what your class should look like (more or less). I took the
+liberty of already adding a stage to it because we want to draw a menu
+screen, something with buttons and text and the easiest way to do that
+is with Scene2D (as we've learned in the last tutorial).
+
+Next up we'll want to populate that stage. I prepared something and am
+just gonna paste it in here. You can arrange your buttons in whatever
+order you want. I went for something very simple and centric.
+
+``` {.lang:java .mark:25 .decode:true}
+ @Override
+ public void show() {
+ stage = new Stage();
+
+ table = new Table(ResPack._SKIN);
+
+ table.setFillParent(true);
+ table.center();
+
+ title = new Label("MAIN MENU", ResPack._SKIN);
+ title.setFontScale(2.5f);
+
+ resume = new TextButton("RESUME GAME", ResPack._SKIN);
+ options = new TextButton("OPTIONS", ResPack._SKIN);
+ exit = new TextButton("RAGE QUIT", ResPack._SKIN);
+
+ table.add(title).center().pad(25f);
+ table.row().height(75);
+ table.add(resume).center().width(500).pad(5f);
+ table.row().height(75);
+ table.add(options).center().width(500).pad(5f);
+ table.row().height(75);
+ table.add(exit).center().width(500).pad(5f);
+ stage.addActor(table);
+ Gdx.input.setInputProcessor(stage);
+ }
+```
+
+You should understand what I'm doing here and it's nothing more advanced
+than what we did in the last tutorial. Except that I set a row height,
+give buttons a specific size and add padding around them to make it look
+more smooth.
+
+<span style="text-decoration: underline;">Note how we overwrite the
+input processor from the main game to the stage. This means that the
+game will be unresponsive, We'll have to change that back later!</span>
+
+So far so good. But what do we now actually do with this? We want to add
+this screen to the main game class in a way that we don't have to create
+new instances of it all the time. So go ahead and create a global
+variable in the main game class and initialize it on create().
+
+``` {.lang:java .decode:true}
+ /** Screens */
+ private MenuScreen menuScreen;
+
+ @Override
+ public void create() {
+
+ . . .
+
+ /** Setting up support screens */
+ menuScreen = new MenuScreen();
+
+ . . .
+ }
+```
+
+And another global variable we'll have to create is "self" which has the
+type of our main game class (which in my case is "StarChaser"). We can
+do that by creating an object with the class name and initializing it
+with the following.
+
+``` {.lang:java .decode:true}
+ private StarChaser self = this;
+```
+
+We will need this global variable in our click-listener, because
+there the scope is different. See, while we can easily call "this" or
+"super" in our main game class to access anything in the class or that
+we inherit from, in the Clicklistener we're technically in a different
+class (the ClickListener class) and thus we can't access things we
+inherited outside of it. To circumvent this we add a global variable
+that we can still see, access and Boya!
+
+In the ClickListener you can throw out the Log call and add this.
+
+``` {.lang:java .decode:true}
+self.setScreen(menuScreen);
+```
+
+When you now compile this you'll see that you don't see anything. :)
+Because we're not actually rendering the screen. For that to happen you
+have to add this line of code to the bottom (the very end) of your
+render() method (in the main game class that is).
+
+``` {.lang:java .decode:true}
+super.render();
+```
+
+This will ensure that if there is a screen visible that their
+appropriate render method is being called at the right time (You can
+look at the super-render() method when you look at the super-class. It's
+sometimes interesting).
+
+Now compile this and see, that we have a neat overlay of our buttons
+over the game. And we can no longer move our ship around and we're also
+kinda stuck in that menu screen because we haven't set up any listeners
+yet. Now...resetting the screen works in a very similar way: we take our
+main game, call setScreen(null) on it and the screen will disappear.
+However...we don't have that inheritance in our Screen object, do we?
+No. So we'll have to pass it in via the constructor.
+
+So first we create a constructor in the MenuScreen class.
+
+``` {.lang:java .decode:true}
+ public MenuScreen(StarChaser self) {
+ this.parent = self;
+ }
+```
+
+And of course a global variable in the class called "parent" or
+"cupcake" or whatever you want to store the information. Also make sure
+to update the constructor call (in the ClickListener) from no parameters
+to "self".
+
+With this new variable in our screen we can go ahead and create a new
+Clicklistener for one of our lovely buttons. I only chose the "Resume"
+one for now but we can add functionality to the other ones as we move
+along with our game.
+
+``` {.lang:java .decode:true}
+ resume.addListener(new ClickListener() {
+
+ public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
+ parent.setupInput();
+ parent.setScreen(null);
+ }
+ });
+```
+
+You'll probably go "Woooah, easy there girl, what's that setInput()??"
+and well...you're right. See, when we get back to our game and the
+screen is hidden somewhere in memory we can't control the game anymore.
+We haven't told our game yet that we want to resume using the input
+Multiplexer so that we can actually control our ship again.
+
+For that to happen I created this public method that sets the input to
+the Multiplexer and sets up the Stage-listeners (for our buttons). In
+the main game simply call this method instead of the actual calls (so
+after adding things to the Multiplexer). Because the InputAdapters still
+exist in memory, we don't want to re-initialize them. That'd be a waste
+of resources and memory.
+
+``` {.lang:java .mark:10,13-17 .decode:true}
+ @Override
+ public void create() {
+
+ . . .
+
+ /** Input Controllers */
+ plex.addProcessor(stage);
+ plex.addProcessor(camController);
+ plex.addProcessor(handler);
+ this.setupInput();
+ }
+
+ public void setupInput() {
+ Gdx.input.setInputProcessor(plex);
+ this.setupListeners();
+ }
+```
+
+And that's it. If you compile this you'll have a functional button that
+takes you to the MenuScreen and back again when you press the
+appropriate button. I hope you understand the logic behind this. We show
+a screen, we use it, we hide it. Think of the screens like overlays that
+you put over your main "game-layer". But just because we can
+conveniently draw over our main layer that doesn't mean that we won't
+have to change a few things, pass parameters along and manually reset
+the input (as an example). LibGDX is a framework that allows for the
+complicated stuff to be easy (the drawing a new screen over the current
+game etc.). The rest is up to you, how you want to handle it, how you
+want your game (or just application) to look. Below is a picture that
+shows the current setup we have.
+
+![rt7obekn-1](http://www.spacekookie.de/wp-content/uploads/2014/01/rt7obekn-1.jpg)
+
+Speaking of looks...I don't actually like how that menu screen is
+looking. I'd much rather have it be semi-transparent in the background
+so the game gets grayed out. Luckily that's easily possible.
+Well...possible :)
+
+First you should create a Camera object in our MenuScreen and get the
+camera from the main game in the constructor. (We already have a static
+method called "getCameraInstance()" that we used a couple of issues back
+for our input processor to do things. After that create a
+"ShapeRenderer" and initialize it in the "show()" method.
+
+``` {.lang:java .mark:1,2,5,13 .decode:true}
+ private Camera camera;
+ private ShapeRenderer render;
+
+ public MenuScreen(StarChaser self) {
+ this.camera = StarChaser.getCameraInstance();
+ this.parent = self;
+ }
+
+ . . .
+
+ @Override
+ public void show() {
+ render = new ShapeRenderer();
+
+ . . .
+
+ }
+```
+
+ShapeRenderers are used to draw very simple polygon shapes onto the
+screen. In our case we want a rectangle, filled with a colour, that
+spans over the entire screen (+10 pixels or so for border) and blends
+the background colours with our colour that we give an alpha channel.
+Confused? Don't worry, check out the code below (the new render method)
+and then I'll go over it bit by bit.
+
+``` {.lang:java .decode:true}
+ @Override
+ public void render(float delta) {
+
+ Gdx.gl20.glEnable(GL20.GL_BLEND);
+ render.setProjectionMatrix(camera.combined);
+ render.begin(ShapeType.Filled);
+ render.setColor(0, 0, 0, 0.5f);
+ render.rect(-10, -10, Gdx.graphics.getWidth() + 20, Gdx.graphics.getHeight() + 20);
+ render.end();
+
+ stage.act();
+ stage.draw();
+ }
+```
+
+First we have to call an OpenGL function called "glEnable" which will
+enable certain features during render. We pass in the "GL\_BLEND"
+parameter (in the GL2.0 package) which will trigger OpenGL to blend
+colours together (so allowing two colours to merge slowly instead of
+being absolute values).
+
+Afterwards we take the projection matrix from our camera and set it for
+the renderer so that the drawn shapes are in the same reference frame as
+the rest of our game. And then we begin the magic.
+
+We set the Type (Filled), we set a colour (black with 50% alpha), we set
+the border (the screen + 10 pixels padding over the screen). And then we
+end the renderer. That's it.
+
+Compile this and look at how it looks. In my opinion a lot better! For
+reference, this is what my menu now looks like. Again...you can have
+your buttons in different orders, sizes, whatever.
+
+![StarChaser\_Menu](http://www.spacekookie.de/wp-content/uploads/2014/01/Screen-Shot-2014-01-19-at-10.57.46.png)
+
+But I hope you understand now how you can create different screens to
+make have different tasks. And in the same way that we've now created
+this Menuscreen we can make an options screen (We just need to pass
+along the Game again and call "setScreen(whatever)" when we're done).
+
+And at some point I want to make an inventory and trade screen like
+this. But that's a long way out. Because next up I actually want to do
+some bug-fixing. Things that I missed a few "episodes" ago and thought
+it'd be a good learning opportunity. And also teaching you about game
+structure a bit more.
+
+I hope you enjoy this series so far, leave me your feedback in the
+comments and I'll see you guys (and gals) next time. Keep coding!
diff --git a/teaching/gameofcode/09-libgdx-game-of-codes-modifying-libgdx-part-i.md b/teaching/gameofcode/09-libgdx-game-of-codes-modifying-libgdx-part-i.md
new file mode 100755
index 0000000..2555d2d
--- /dev/null
+++ b/teaching/gameofcode/09-libgdx-game-of-codes-modifying-libgdx-part-i.md
@@ -0,0 +1,326 @@
+Title: 09. (LibGDX) Game of Codes: Modifying LibGDX — Part I
+Date: 2014-04-04 13:57
+Category: Game of Codes
+Tags: Guides
+Slug: 09-libgdx-game-of-codes-modifying-libgdx-part-i
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. It's been a while since my last post and I want to make up
+for that today. Last time we were talking about Screens and subscreens
+for a game that made showing new information a whole lot faster and more
+intuitive as it didn't require more UI elements to be written into the
+same class.
+
+Well…despite what you might think I HAVE been very busy coding on my own
+project (\*hinthint\*
+[www.spacekookie.de/projects/empires](http://www.spacekookie.de/projects/empires/ "Interstellar Empires") \*hinthint\*
+;) ) and have started modifying the LibGDX core a few months ago to
+better suit my needs. Well…most of my modifications are pretty specific
+to my case. Changing the hexagon renderer to account for my custom data
+types, changing the input handling method, etc... But in the last 2
+weeks I have done something that I think can be quite handy and I want
+you to see it. Additionally I will be using that example to show you how
+modding LibGDX to your own needs can be very productive and even fun. It
+will give you the ability to learn and understand how that framework
+we've only been using so far is structured and works. And it will remove
+some of the magic that you might feel is involved ;) So shall we begin?
+
+
+First of all I want to show you a graphic again from my last post of the
+Game of Codes.
+
+![rt7obekn-1](http://www.spacekookie.de/wp-content/uploads/2014/01/rt7obekn-1-1024x576.jpg)
+
+This is how I thought our menu would be, have a screen in front of our
+game that then showed some stuff. Well…that's all nice and good IF you
+only use one game-screen. But most games aren't that simple. Usually in
+a complex game you want to have your background code for music and input
+handling or whatever jazz you're doing running in your game but then
+have different screens for the Menu, the game, the settings, maybe an
+inventory? Who knows? And well…that's all very 1-dimentional. So what I
+did first was look at how things were structured in LibGDX.
+
+``` {.lang:java .decode:true}
+public abstract class Game implements ApplicationListener {
+ private Screen screen;
+
+ . . .
+
+ public void setScreen (Screen screen) {
+ if (this.screen != null) this.screen.hide();
+ this.screen = screen;
+ if (this.screen != null) {
+ this.screen.show();
+ this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+ }
+ }
+
+ . . .
+}
+```
+
+As you can see the "Game" class that we extend with our MainGame-Class
+where we have our ship and station and input and all those lovely assets
+implements the ApplicationListener, JUST as our MainGame-class did
+before we started working with Screens. Oh and look! There is some of
+that code that we use to set a Screen.
+
+Now…what can we do with this? Well first of all we can create a new
+class in our Core package and call it "CustomGame" or anything you like.
+But it should be clear that it's something very specific. Make it
+abstract and let it implement the ApplicationListener interface, just
+like the example above.
+
+We can also actually just copy most of that code in the stock-Game class
+into our own.
+
+``` {.lang:java .decode:true}
+public abstract class CustomGame implements ApplicationListener {
+ private Screen screen;
+
+ @Override
+ public void create() {
+
+ }
+
+ @Override
+ public void resize(int width, int height) {
+ if (screen != null)
+ screen.resize(width, height);
+
+ }
+
+ @Override
+ public void render() {
+ if (screen != null)
+ screen.render(Gdx.graphics.getDeltaTime());
+
+ }
+
+ @Override
+ public void pause() {
+ if (screen != null)
+ screen.pause();
+
+ }
+
+ @Override
+ public void resume() {
+ if (screen != null)
+ screen.resume();
+
+ }
+
+ @Override
+ public void dispose() {
+ if (screen != null)
+ screen.dispose();
+
+ }
+
+ public void setScreen(Screen screen) {
+ if (this.screen != null)
+ this.screen.hide();
+ this.screen = screen;
+ if (this.screen != null) {
+ this.screen.show();
+ this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+ }
+ }
+
+ public Screen getScreen() {
+ return screen;
+ }
+
+}
+```
+
+All that does is exactly what the other class did before. If you now go
+into our main-game class and let it extend "CustomGame" instead of
+"Game" and compile the game it will run JUST like it did before. Because
+nothing has changed. And that's what we'll change RIGHT NOW.
+
+What do we want? Well…we want to use Screens in our game for the actual
+game screens (menu, in-game, settings, cut scenes, etc.) as well as
+Screens to display information OVER the current one (for example for an
+Inventory screen or dialogue options or WHATEVER!). Now…there are two
+things we could do right now:
+
+The first would be to only add one more screen, call it "overlay" and
+copy the same code as for the other screen into the class. That would
+give us two screens to work with. But I don't like that idea at all.
+Instead I want to do something different. I want to be able to have a
+stack of Overlays over each other. And that's why we'll use a
+Stack\<Screen\>!
+
+``` {.lang:java .decode:true}
+ private Stack<Screen> overlays;
+
+ @Override
+ public void create() {
+ overlays = new Stack<Screen>();
+ }
+```
+
+Put this code under the declaration of the private Screen variable and
+initialize the stack in your create() method that was (so far) not used.
+Now we of course need to make sure we actually call "super.onCreate()"
+in our child-class (So our main game-class).
+
+So far so good. But, we can't actually do anything with that yet. First
+we will want to write two access methods for the stack.
+
+``` {.lang:java .decode:true}
+ public void addOverlay(Screen overlay) {
+ overlays.add(overlay);
+ overlay.show();
+ overlay.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+ }
+
+ public void removeOverlay() {
+ if (!overlays.isEmpty())
+ overlays.pop().dispose();
+ }
+```
+
+What this will do is add a new overlay to the stack when we need one and
+also call the show and resize method on the overlay (which is really
+just a screen) to set up everything correctly!
+The second method will remove the last overlay (if it exists) by
+popping it off the stack and calling dispose() on it to finalize. This
+is important so that we avoid having un-used and non-removed resources
+in our memory.
+
+So far so good. The problem now is that our screen won't actually be
+shown anywhere. Sure, we add it to our stack and show() and resize() it.
+But it's not getting rendered. For that to happen we'll have to add some
+more code. And in addition to that I would recommend more code to then
+dispose of the screens again as well.
+
+For every action that we take on our main-screen we need to add this
+code to it as well.
+
+``` {.lang:java .decode:true}
+ if (!overlays.isEmpty())
+ for (Screen o : overlays)
+ o.ACTION_HERE();
+```
+
+Essentially iterating over the stack to apply it to every overlay. This
+way we can have stacking UI-overlays while the ones in the background
+still get rendered. And this is how the final CustomGame class then
+looks.
+
+``` {.lang:java .decode:true}
+import java.util.Stack;
+
+import com.badlogic.gdx.ApplicationListener;
+import com.badlogic.gdx.Gdx;
+import com.badlogic.gdx.Screen;
+
+public abstract class CustomGame implements ApplicationListener {
+ private Screen screen;
+ private Stack overlays;
+
+ @Override
+ public void create() {
+ overlays = new Stack();
+ }
+
+ @Override
+ public void resize(int width, int height) {
+ if (screen != null)
+ screen.resize(width, height);
+
+ if (!overlays.isEmpty())
+ for (Screen o : overlays)
+ o.resize(width, height);
+
+ }
+
+ @Override
+ public void render() {
+ if (screen != null)
+ screen.render(Gdx.graphics.getDeltaTime());
+
+ if (!overlays.isEmpty())
+ for (Screen o : overlays)
+ o.render(Gdx.graphics.getDeltaTime());
+
+ }
+
+ @Override
+ public void pause() {
+ if (screen != null)
+ screen.pause();
+
+ if (!overlays.isEmpty())
+ for (Screen o : overlays)
+ o.pause();
+
+ }
+
+ @Override
+ public void resume() {
+ if (screen != null)
+ screen.resume();
+
+ if (!overlays.isEmpty())
+ for (Screen o : overlays)
+ o.resume();
+
+ }
+
+ @Override
+ public void dispose() {
+ if (screen != null)
+ screen.dispose();
+
+ if (!overlays.isEmpty())
+ for (Screen o : overlays)
+ o.dispose();
+
+ }
+
+ public void setScreen(Screen screen) {
+ if (this.screen != null)
+ this.screen.hide();
+ this.screen = screen;
+ if (this.screen != null) {
+ this.screen.show();
+ this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+ }
+ }
+
+ public Screen getScreen() {
+ return screen;
+ }
+
+ public void addOverlay(Screen overlay) {
+ overlays.add(overlay);
+ overlay.show();
+ overlay.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
+ }
+
+ public void removeOverlay() {
+ if (!overlays.isEmpty())
+ overlays.pop().dispose();
+ }
+
+}
+```
+
+This is it for part 1. I don't want to let this get too long so in PART
+2 of this post I'll be showing you what exactly we can do with this. If
+you have any questions or suggestions, leave them in the comments below.
+
+Until then, keep Coding!
+
+
+==== EDIT ====
+
+Do you want this series to get picked up again? Go here:
+http://www.spacekookie.de/continue-libgdx-game-of-codes/
diff --git a/teaching/gameofcode/09.5-libgdx-game-of-codes-continuation.md b/teaching/gameofcode/09.5-libgdx-game-of-codes-continuation.md
new file mode 100755
index 0000000..964e05f
--- /dev/null
+++ b/teaching/gameofcode/09.5-libgdx-game-of-codes-continuation.md
@@ -0,0 +1,28 @@
+Title: 09.5 (LibGDX) Game of Codes: Continuation - Post ideas
+Date: 2015-05-02 12:12
+Category: Game of Codes
+Tags: Guides
+Slug: continue-libgdx-game-of-codes
+Status: published
+
+Welcome back to the Game of Codes, an introduction series to the LibGDX
+framework. In the last post we started messing around with the inner
+workings of LibGDX a bit more...
+
+\*static\* \*voice cracking\* \*buzzing from speakers\*
+
+"Hello? Can anyone hear me? I think I'm in space...Hello?"
+
+Right...it's been about a year since I wrote on this series, a lot of
+things have changed and I don't nearly have as much time anymore. BUT
+people keep messaging me all over the place that they liked my LibGDX
+series. SO...if you really do, I will continue it. Though, I'm slightly
+out of ideas what to do. And I really have lost interest in continuing
+that Star Chaser thing I started.
+
+So....if you want to see something from me, post it on the comments
+below, twitter at me, send me emails or smoke signals. If I get enough
+feedback about this I will do it. If not, I'm sure there are better and
+more up to date resources out there :)
+
+So yea, would be cool to hear from you guys \<3
diff --git a/teaching/gameofcode/10-libgdx-game-of-codes-shaders.md b/teaching/gameofcode/10-libgdx-game-of-codes-shaders.md
new file mode 100755
index 0000000..083d0fb
--- /dev/null
+++ b/teaching/gameofcode/10-libgdx-game-of-codes-shaders.md
@@ -0,0 +1,7 @@
+Title: 10 (LibGDX) Game of Codes: 50 Shades of Code
+Category: Game of Codes
+Tags: Guides
+Slug: libgdx-game-of-codes-50-shades-of-code
+Status: draft
+
+SHADERS! \ No newline at end of file
diff --git a/LICENSE b/theme/LICENSE
index 8d41b1d..8d41b1d 100755
--- a/LICENSE
+++ b/theme/LICENSE
diff --git a/theme/README.md b/theme/README.md
new file mode 100755
index 0000000..5e6a857
--- /dev/null
+++ b/theme/README.md
@@ -0,0 +1,114 @@
+# Nest
+
+This is my very heavily customised website theme for [spacekookie.de](https://spacekookie.de). Not sure why I keep this public as it will probably never be any good for anyone. But oh well ¯\\\_(ツ)_/¯
+
+This is a fork that I created as it's own repository. The original is from [https://github.com/molivier/nest](https://github.com/molivier/nest)
+
+## Features
+
+* Featured site header image
+* Featured article header image
+* **Pygments** syntax highlighting
+* **Disqus** support for comments
+* **Google Analytics** support
+* RSS and Atom feeds
+
+## Settings
+
+Nest template can be customized by adding parameters to your `pelicanconf.py` file. Template specifics parameters are prefixed with template name.
+
+### Pelican.conf example
+
+```python
+# NEST Template
+THEME = 'nest'
+SITESUBTITLE = u'My Awesome Blog'
+# Minified CSS
+NEST_CSS_MINIFY = True
+# Add items to top menu before pages
+MENUITEMS = [('Homepage', '/'),('Categories','/categories.html')]
+# Add header background image from content/images : 'background.jpg'
+NEST_HEADER_IMAGES = ''
+NEST_HEADER_LOGO = '/image/logo.png'
+# Footer
+NEST_SITEMAP_COLUMN_TITLE = u'Sitemap'
+NEST_SITEMAP_MENU = [('Archives', '/archives.html'),('Tags','/tags.html'), ('Authors','/authors.html')]
+NEST_SITEMAP_ATOM_LINK = u'Atom Feed'
+NEST_SITEMAP_RSS_LINK = u'RSS Feed'
+NEST_SOCIAL_COLUMN_TITLE = u'Social'
+NEST_LINKS_COLUMN_TITLE = u'Links'
+NEST_COPYRIGHT = u'&copy; blogname 2015'
+# Footer optional
+NEST_FOOTER_HTML = ''
+# index.html
+NEST_INDEX_HEAD_TITLE = u'Homepage'
+NEST_INDEX_HEADER_TITLE = u'My Awesome Blog'
+NEST_INDEX_HEADER_SUBTITLE = u'Smashing The Stack For Fun And Profit'
+NEST_INDEX_CONTENT_TITLE = u'Last Posts'
+# archives.html
+NEST_ARCHIVES_HEAD_TITLE = u'Archives'
+NEST_ARCHIVES_HEAD_DESCRIPTION = u'Posts Archives'
+NEST_ARCHIVES_HEADER_TITLE = u'Archives'
+NEST_ARCHIVES_HEADER_SUBTITLE = u'Archives for all posts'
+NEST_ARCHIVES_CONTENT_TITLE = u'Archives'
+# article.html
+NEST_ARTICLE_HEADER_BY = u'By'
+NEST_ARTICLE_HEADER_MODIFIED = u'modified'
+NEST_ARTICLE_HEADER_IN = u'in category'
+# author.html
+NEST_AUTHOR_HEAD_TITLE = u'Posts by'
+NEST_AUTHOR_HEAD_DESCRIPTION = u'Posts by'
+NEST_AUTHOR_HEADER_SUBTITLE = u'Posts archives'
+NEST_AUTHOR_CONTENT_TITLE = u'Posts'
+# authors.html
+NEST_AUTHORS_HEAD_TITLE = u'Author list'
+NEST_AUTHORS_HEAD_DESCRIPTION = u'Author list'
+NEST_AUTHORS_HEADER_TITLE = u'Author list'
+NEST_AUTHORS_HEADER_SUBTITLE = u'Archives listed by author'
+# categories.html
+NEST_CATEGORIES_HEAD_TITLE = u'Categories'
+NEST_CATEGORIES_HEAD_DESCRIPTION = u'Archives listed by category'
+NEST_CATEGORIES_HEADER_TITLE = u'Categories'
+NEST_CATEGORIES_HEADER_SUBTITLE = u'Archives listed by category'
+# category.html
+NEST_CATEGORY_HEAD_TITLE = u'Category Archive'
+NEST_CATEGORY_HEAD_DESCRIPTION = u'Category Archive'
+NEST_CATEGORY_HEADER_TITLE = u'Category'
+NEST_CATEGORY_HEADER_SUBTITLE = u'Category Archive'
+# pagination.html
+NEST_PAGINATION_PREVIOUS = u'Previous'
+NEST_PAGINATION_NEXT = u'Next'
+# period_archives.html
+NEST_PERIOD_ARCHIVES_HEAD_TITLE = u'Archives for'
+NEST_PERIOD_ARCHIVES_HEAD_DESCRIPTION = u'Archives for'
+NEST_PERIOD_ARCHIVES_HEADER_TITLE = u'Archives'
+NEST_PERIOD_ARCHIVES_HEADER_SUBTITLE = u'Archives for'
+NEST_PERIOD_ARCHIVES_CONTENT_TITLE = u'Archives for'
+# tag.html
+NEST_TAG_HEAD_TITLE = u'Tag archives'
+NEST_TAG_HEAD_DESCRIPTION = u'Tag archives'
+NEST_TAG_HEADER_TITLE = u'Tag'
+NEST_TAG_HEADER_SUBTITLE = u'Tag archives'
+# tags.html
+NEST_TAGS_HEAD_TITLE = u'Tags'
+NEST_TAGS_HEAD_DESCRIPTION = u'Tags List'
+NEST_TAGS_HEADER_TITLE = u'Tags'
+NEST_TAGS_HEADER_SUBTITLE = u'Tags List'
+NEST_TAGS_CONTENT_TITLE = u'Tags List'
+NEST_TAGS_CONTENT_LIST = u'tagged'
+# Static files
+STATIC_PATHS = ['images', 'extra/robots.txt', 'extra/favicon.ico', 'extra/logo.svg']
+EXTRA_PATH_METADATA = {
+ 'extra/robots.txt': {'path': 'robots.txt'},
+ 'extra/favicon.ico': {'path': 'favicon.ico'},
+ 'extra/logo.svg': {'path': 'logo.svg'}
+}
+```
+
+
+## Third-party assets
+
+The theme uses external softwares, scripts, libraries and artworks:
+
+* [Bootstrap](http://getbootstrap.com/) 3.x.x
+* [Open Sans Font](http://www.google.com/fonts/specimen/Open+Sans)
diff --git a/article-background.png b/theme/article-background.png
index b2fb268..b2fb268 100755
--- a/article-background.png
+++ b/theme/article-background.png
Binary files differ
diff --git a/article.png b/theme/article.png
index 24af07f..24af07f 100755
--- a/article.png
+++ b/theme/article.png
Binary files differ
diff --git a/homepage-background.png b/theme/homepage-background.png
index 4ea4e33..4ea4e33 100755
--- a/homepage-background.png
+++ b/theme/homepage-background.png
Binary files differ
diff --git a/homepage.png b/theme/homepage.png
index 51a9741..51a9741 100755
--- a/homepage.png
+++ b/theme/homepage.png
Binary files differ
diff --git a/static/css/all.min.css b/theme/static/css/all.min.css
index ec68e92..ec68e92 100755
--- a/static/css/all.min.css
+++ b/theme/static/css/all.min.css
diff --git a/static/css/bootstrap.css b/theme/static/css/bootstrap.css
index c46af7d..c46af7d 100755
--- a/static/css/bootstrap.css
+++ b/theme/static/css/bootstrap.css
diff --git a/static/css/bootstrap.css.map b/theme/static/css/bootstrap.css.map
index ff579ff..ff579ff 100755
--- a/static/css/bootstrap.css.map
+++ b/theme/static/css/bootstrap.css.map
diff --git a/static/css/bootstrap.min.css b/theme/static/css/bootstrap.min.css
index 28f154d..28f154d 100755
--- a/static/css/bootstrap.min.css
+++ b/theme/static/css/bootstrap.min.css
diff --git a/static/css/fonts.css b/theme/static/css/fonts.css
index 0782a63..0782a63 100755
--- a/static/css/fonts.css
+++ b/theme/static/css/fonts.css
diff --git a/static/css/home.css b/theme/static/css/home.css
index c7e1d67..c7e1d67 100644
--- a/static/css/home.css
+++ b/theme/static/css/home.css
diff --git a/static/css/nest.css b/theme/static/css/nest.css
index f822494..f822494 100755
--- a/static/css/nest.css
+++ b/theme/static/css/nest.css
diff --git a/static/css/pygment.css b/theme/static/css/pygment.css
index 9ba6e1e..9ba6e1e 100755
--- a/static/css/pygment.css
+++ b/theme/static/css/pygment.css
diff --git a/static/fonts/glyphicons-halflings-regular.eot b/theme/static/fonts/glyphicons-halflings-regular.eot
index b93a495..b93a495 100755
--- a/static/fonts/glyphicons-halflings-regular.eot
+++ b/theme/static/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/static/fonts/glyphicons-halflings-regular.svg b/theme/static/fonts/glyphicons-halflings-regular.svg
index 94fb549..94fb549 100755
--- a/static/fonts/glyphicons-halflings-regular.svg
+++ b/theme/static/fonts/glyphicons-halflings-regular.svg
diff --git a/static/fonts/glyphicons-halflings-regular.ttf b/theme/static/fonts/glyphicons-halflings-regular.ttf
index 1413fc6..1413fc6 100755
--- a/static/fonts/glyphicons-halflings-regular.ttf
+++ b/theme/static/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/static/fonts/glyphicons-halflings-regular.woff b/theme/static/fonts/glyphicons-halflings-regular.woff
index 9e61285..9e61285 100755
--- a/static/fonts/glyphicons-halflings-regular.woff
+++ b/theme/static/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/static/fonts/glyphicons-halflings-regular.woff2 b/theme/static/fonts/glyphicons-halflings-regular.woff2
index 64539b5..64539b5 100755
--- a/static/fonts/glyphicons-halflings-regular.woff2
+++ b/theme/static/fonts/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/static/img/banner_bg2x.png b/theme/static/img/banner_bg2x.png
index 5cd4242..5cd4242 100644
--- a/static/img/banner_bg2x.png
+++ b/theme/static/img/banner_bg2x.png
Binary files differ
diff --git a/static/img/cat.png b/theme/static/img/cat.png
index a2fc628..a2fc628 100644
--- a/static/img/cat.png
+++ b/theme/static/img/cat.png
Binary files differ
diff --git a/static/img/grey_2x.png b/theme/static/img/grey_2x.png
index eba36c7..eba36c7 100644
--- a/static/img/grey_2x.png
+++ b/theme/static/img/grey_2x.png
Binary files differ
diff --git a/static/js/random_colour.js b/theme/static/js/random_colour.js
index 2036138..2036138 100644
--- a/static/js/random_colour.js
+++ b/theme/static/js/random_colour.js
diff --git a/templates/archives.html b/theme/templates/archives.html
index fb31236..fb31236 100755
--- a/templates/archives.html
+++ b/theme/templates/archives.html
diff --git a/templates/article.html b/theme/templates/article.html
index 165bd08..165bd08 100755
--- a/templates/article.html
+++ b/theme/templates/article.html
diff --git a/templates/author.html b/theme/templates/author.html
index fdd3f30..fdd3f30 100755
--- a/templates/author.html
+++ b/theme/templates/author.html
diff --git a/templates/authors.html b/theme/templates/authors.html
index b490f5a..b490f5a 100755
--- a/templates/authors.html
+++ b/theme/templates/authors.html
diff --git a/templates/base.html b/theme/templates/base.html
index 17866d2..17866d2 100755
--- a/templates/base.html
+++ b/theme/templates/base.html
diff --git a/templates/categories.html b/theme/templates/categories.html
index fa44f11..fa44f11 100755
--- a/templates/categories.html
+++ b/theme/templates/categories.html
diff --git a/templates/category.html b/theme/templates/category.html
index b1a1c69..b1a1c69 100755
--- a/templates/category.html
+++ b/theme/templates/category.html
diff --git a/templates/home.html b/theme/templates/home.html
index 1dc43e8..1dc43e8 100755
--- a/templates/home.html
+++ b/theme/templates/home.html
diff --git a/templates/index.html b/theme/templates/index.html
index dd9ac22..dd9ac22 100755
--- a/templates/index.html
+++ b/theme/templates/index.html
diff --git a/templates/master.html b/theme/templates/master.html
index e73e2c1..e73e2c1 100755
--- a/templates/master.html
+++ b/theme/templates/master.html
diff --git a/templates/newbase.html b/theme/templates/newbase.html
index 8242dc7..8242dc7 100644
--- a/templates/newbase.html
+++ b/theme/templates/newbase.html
diff --git a/templates/page.html b/theme/templates/page.html
index 45020fe..45020fe 100755
--- a/templates/page.html
+++ b/theme/templates/page.html
diff --git a/templates/pagination.html b/theme/templates/pagination.html
index a914cfb..a914cfb 100755
--- a/templates/pagination.html
+++ b/theme/templates/pagination.html
diff --git a/templates/period_archives.html b/theme/templates/period_archives.html
index 1ae1799..1ae1799 100755
--- a/templates/period_archives.html
+++ b/theme/templates/period_archives.html
diff --git a/templates/tag.html b/theme/templates/tag.html
index 85cdda7..85cdda7 100755
--- a/templates/tag.html
+++ b/theme/templates/tag.html
diff --git a/templates/tags.html b/theme/templates/tags.html
index bc0a450..bc0a450 100755
--- a/templates/tags.html
+++ b/theme/templates/tags.html
diff --git a/templates/translations.html b/theme/templates/translations.html
index f40a187..f40a187 100755
--- a/templates/translations.html
+++ b/theme/templates/translations.html
diff --git a/tutorials/series2/framelife.odg b/tutorials/series2/framelife.odg
new file mode 100644
index 0000000..afe94ba
--- /dev/null
+++ b/tutorials/series2/framelife.odg
Binary files differ