diff options
author | Finn Behrens <me@kloenk.de> | 2020-11-08 21:19:47 +0100 |
---|---|---|
committer | Finn Behrens <me@kloenk.de> | 2020-11-08 21:19:47 +0100 |
commit | 147cdf67eb4b9049f6a7724cbdd86909bba2f4a7 (patch) | |
tree | 783252b6acfb73963bf1ab520e006a911dc16fb1 | |
parent | a262ae5c2dca644831db6f2e1cd50b7f4243273c (diff) | |
download | backend-147cdf67eb4b9049f6a7724cbdd86909bba2f4a7.tar.gz backend-147cdf67eb4b9049f6a7724cbdd86909bba2f4a7.tar.xz backend-147cdf67eb4b9049f6a7724cbdd86909bba2f4a7.zip |
init types
-rw-r--r-- | Cargo.lock | 514 | ||||
-rw-r--r-- | Cargo.toml | 8 | ||||
-rw-r--r-- | src/dsb/dsb.html | 306 | ||||
-rw-r--r-- | src/dsb/html.rs | 0 | ||||
-rw-r--r-- | src/dsb/mod.rs | 79 | ||||
-rw-r--r-- | src/error.rs | 11 | ||||
-rw-r--r-- | src/lib.rs | 6 | ||||
-rw-r--r-- | src/types.rs | 345 |
8 files changed, 1269 insertions, 0 deletions
diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..5a986eb --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,514 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "autocfg" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "backend" +version = "0.1.0" +dependencies = [ + "chrono", + "custom_error", + "html5ever", + "log 0.4.11", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time", + "winapi", +] + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags", +] + +[[package]] +name = "custom_error" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51ac5e99a7fea3ee8a03fa4721a47e2efd3fbb38358fc61192a54d4c6f866c12" + +[[package]] +name = "debug_unreachable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a032eac705ca39214d169f83e3d3da290af06d8d1d344d1baad2fd002dca4b3" +dependencies = [ + "unreachable", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "futf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "html5ever" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bfb46978eb757a603b7dfe2dafb1c62cb4dee3428d8ac1de734d83d6b022d06" +dependencies = [ + "log 0.3.9", + "mac", + "markup5ever", + "quote 0.3.15", + "syn", +] + +[[package]] +name = "lazy_static" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" + +[[package]] +name = "libc" +version = "0.2.80" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614" + +[[package]] +name = "log" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" +dependencies = [ + "log 0.4.11", +] + +[[package]] +name = "log" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "047150a0e03b57e638fc45af33a0b63a0362305d5b9f92ecef81df472a4cceb0" +dependencies = [ + "phf", + "phf_codegen", + "rustc-serialize", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg 1.0.1", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg 1.0.1", +] + +[[package]] +name = "phf" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_shared" +version = "0.7.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" +dependencies = [ + "siphasher", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +dependencies = [ + "unicode-xid 0.2.1", +] + +[[package]] +name = "quote" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" + +[[package]] +name = "quote" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.7", + "libc", + "rand_chacha", + "rand_core 0.4.2", + "rand_hc", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg", + "rand_xorshift", + "winapi", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.7", + "rand_core 0.3.1", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.7", + "rand_core 0.4.2", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rustc-serialize" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" + +[[package]] +name = "serde" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a" + +[[package]] +name = "siphasher" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" + +[[package]] +name = "string_cache" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413fc7852aeeb5472f1986ef755f561ddf0c789d3d796e65f0b6fe293ecd4ef8" +dependencies = [ + "debug_unreachable", + "lazy_static", + "phf_shared", + "precomputed-hash", + "serde", + "string_cache_codegen", + "string_cache_shared", +] + +[[package]] +name = "string_cache_codegen" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote 1.0.7", + "string_cache_shared", +] + +[[package]] +name = "string_cache_shared" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc" + +[[package]] +name = "syn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" +dependencies = [ + "quote 0.3.15", + "synom", + "unicode-xid 0.0.4", +] + +[[package]] +name = "synom" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" +dependencies = [ + "unicode-xid 0.0.4", +] + +[[package]] +name = "tendril" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi", + "winapi", +] + +[[package]] +name = "unicode-xid" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + +[[package]] +name = "unreachable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91" +dependencies = [ + "void", +] + +[[package]] +name = "utf-8" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" @@ -6,4 +6,12 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[features] +scraper = [] +default = [] + [dependencies] +chrono = { version = "0.4" } +custom_error = "1.8" +log = "0.4" +html5ever = "0.20" diff --git a/src/dsb/dsb.html b/src/dsb/dsb.html new file mode 100644 index 0000000..cab5332 --- /dev/null +++ b/src/dsb/dsb.html @@ -0,0 +1,306 @@ +<html><head><meta http-equiv="Content-Type" content="text/html;"><style type="text/css">
+
+body { margin-top: 0px; margin-left: 20px; margin-right: 20px;
+background: #fff; color: #272727; font: 80% Arial, Helvetica, sans-serif; }
+
+h1 { color: #ee7f00; font-size: 150%; font-weight: normal;}
+h1 strong { font-size: 200%; font-weight: normal; }
+h2 { font-size: 125%;}
+
+h1, h2 { margin: 0; padding: 0;}
+
+th { background: #000; color: #fff; }
+table.mon_list th, td { padding: 8px 4px;}
+
+
+.mon_title
+{
+ font-weight: bold;
+ font-size: 120%;
+ clear: both;
+ margin: 0;
+}
+
+.inline_header
+{
+ font-weight: bold;
+}
+
+table.info
+{
+ color: #000000;
+ font-size: 100%;
+ border: 1px;
+ border-style:solid;
+ border-collapse:collapse;
+ padding: 8px 4px;
+}
+
+table.mon_list
+{
+ color: #000000;
+ width: 100%;
+ font-size: 100%;
+ border: 1px;
+ border-style:solid;
+ border-collapse:collapse;
+}
+
+table.mon_head
+{
+ color: #000000;
+ width: 100%;
+ font-size: 100%;
+}
+
+td.info,
+th.list,
+td.list,
+tr.list
+{
+ border: 1px;
+ border-style: solid;
+ border-color: black;
+ margin: 0px;
+ border-collapse:collapse;
+ padding: 3px;
+}
+
+tr.odd { background: #fad3a6; }
+tr.even { background: #fdecd9; }
+
+</style></head><body ><body>
+<table class="mon_head">
+ <tr>
+ <td valign="bottom"><h1><strong>Untis</strong> 2019 <!-- Info-Stundenplan --></h1></td>
+ <td valign="bottom"></td>
+ <td align="right" valign="bottom">
+ <p>LANDRAT-LUCAS-SCH.LEVERKUSEN <span style="width:10px"> </span> D-51379,P.-NEUENHEUSER-STR.7<br />
+ Schuljahr 2018/19<span style="width:10px"> </span>gültig ab 13.05.2019 <span style="width:10px"> </span> Stand: 05.07.2019 07:41</p>
+ </td>
+ </tr>
+</table>
+
+<center>
+<div class="mon_title">5.7.2019 Freitag, Woche B</div>
+<table class="info" >
+<tr class="info"><th class="info" align="center" colspan="2">Nachrichten zum Tag</th></tr>
+<tr class="info"><td class="info" align="left">Abwesende Lehrer </td><td class="info" align="left">ALEP, BERG, BOES, DAN (1-6), FLUE, FOM, FORM (1-7), GFD (1-2), GM, HAL2, HAUB, HEC, KAHN (4-4), KENT, KLCK, KOC, KOP, KOWA, KRD, MON, NET, NOB, PNSK, RCK, RICK (3-3), SNET, TELM, TRI, TSA, WEST, WEY</td></tr>
+<tr class="info"><td class="info" align="left">Blockierte Räume </td><td class="info" align="left">A218, A134 (2-2), A134 (3-4)</td></tr>
+<tr class="info"><td class="info" align="left">Betroffene Klassen </td><td class="info" align="left">5a, 5c, 5e, 6a, 6c, 6e, 7a, 7b, 7c, 7d, 7e, 7f, 8a, 8b, 8c, 8d, 8e, 8f, 9b, 9d, 9e, EF, Q1, BS, SPI, AG</td></tr>
+</table>
+<p>
+<table class="mon_list" >
+<tr class='list'><th class="list" align="center" width='7'>Klasse</th><th class="list" align="center" width='9'><b>Stunde</b></th><th class="list" align="center" width='8'><b>Vertreter</b></th><th class="list" align="center" width='9'>Fach</th><th class="list" align="center" width='6'>(Fach)</th><th class="list" align="center" width='29'>Bemerkung</th><th class="list" align="center" width='12'>Art</th><th class="list" align="center" width='6'><b>Raum</b></th></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >5a</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >5a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>OTT</b></td><td class="list" align="center" style="background-color: #FFFFFF" >BI</td><td class="list" align="center" style="background-color: #FFFFFF" >BI</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A114</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >5a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SNEI</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BAD1</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >5a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>FRA</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BAD</b></td></tr>
+<tr class='list odd'><td class="list" align="center">5a</td><td class="list" align="center"><b>3 - 4</b></td><td class="list" align="center"><b>SNEI</b></td><td class="list" align="center">SN</td><td class="list" align="center">SN</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>BAD</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >5c</td></tr>
+<tr class='list odd'><td class="list" align="center">5c</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>BLE</b></td><td class="list" align="center">SN</td><td class="list" align="center">SN</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>D002</b></td></tr>
+<tr class='list even'><td class="list" align="center">5c</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>BLE</b></td><td class="list" align="center">SN</td><td class="list" align="center">SN</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>D002</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >5c</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BLE</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>D002</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >5e</td></tr>
+<tr class='list odd'><td class="list" align="center">5e</td><td class="list" align="center"><b>5 - 6</b></td><td class="list" align="center"><b>FRA</b></td><td class="list" align="center">SN</td><td class="list" align="center">SN</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>D001</b></td></tr>
+<tr class='list even'><td class="list" align="center">5e</td><td class="list" align="center"><b>5 - 6</b></td><td class="list" align="center"><b>FRA</b></td><td class="list" align="center">SN</td><td class="list" align="center">SN</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>D001</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >5e</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>FRA</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>D001</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >6a</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >6a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>ZUB</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP</td><td class="list" align="center" style="background-color: #FFFFFF" >SP</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B106</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >6c</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >6c</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>MAZ</b></td><td class="list" align="center" style="background-color: #FFFFFF" >BI</td><td class="list" align="center" style="background-color: #FFFFFF" >M</td><td class="list" align="center" style="background-color: #FFFFFF" >Biologie statt Mathe</td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A118</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >6e</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >6e</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HRB</b></td><td class="list" align="center" style="background-color: #FFFFFF" >MU</td><td class="list" align="center" style="background-color: #FFFFFF" >MU</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B013</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >6e</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HRB</b></td><td class="list" align="center" style="background-color: #FFFFFF" >E</td><td class="list" align="center" style="background-color: #FFFFFF" >E</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B013</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >6e</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HRB</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP</td><td class="list" align="center" style="background-color: #FFFFFF" >SP</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B105</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >7a</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BRU</b></td><td class="list" align="center" style="background-color: #FFFFFF" >M</td><td class="list" align="center" style="background-color: #FFFFFF" >M</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B203</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >7a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>KAMP</b></td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" align="center" style="background-color: #FFFFFF" >EVA: Aufgabe bereits</td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B203</b></td></tr>
+<tr class='list odd'><td class="list" style="background-color: #FFFFFF" > </td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >gestellt.</td><td class="list" align="center"> </td><td class="list" align="center"> </td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >7a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>DUB</b></td><td class="list" align="center" style="background-color: #FFFFFF" >F6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >F6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B203</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7ad</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>DEMR</b></td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B005</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >7b</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7b</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BLE</b></td><td class="list" align="center" style="background-color: #FFFFFF" >EK</td><td class="list" align="center" style="background-color: #FFFFFF" >EK</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B204</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >7c</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7ce</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BKY</b></td><td class="list" align="center" style="background-color: #FFFFFF" >L6-3</td><td class="list" align="center" style="background-color: #FFFFFF" >L6-3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B002</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >7d</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7d</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>KAHN</b></td><td class="list" align="center" style="background-color: #FFFFFF" >E</td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B208</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >7d</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BSCH</b></td><td class="list" align="center" style="background-color: #FFFFFF" >E</td><td class="list" align="center" style="background-color: #FFFFFF" >E</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B208</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7ad</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>DEMR</b></td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B005</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >7e</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7ce</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BKY</b></td><td class="list" align="center" style="background-color: #FFFFFF" >L6-3</td><td class="list" align="center" style="background-color: #FFFFFF" >L6-3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B002</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >7f</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >7f</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >FD-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >8a</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8ab</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HAY</b></td><td class="list" align="center" style="background-color: #FFFFFF" >F6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >F6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A102</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >8ab</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BKY</b></td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A006</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8ab</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SCHT</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-2</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-2</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A010</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >8a</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BL</b></td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A102</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >8b</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >8ab</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HAY</b></td><td class="list" align="center" style="background-color: #FFFFFF" >F6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >F6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A102</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8ab</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BKY</b></td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" align="center" style="background-color: #FFFFFF" >L6-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A006</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >8ab</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SCHT</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-2</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-2</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A010</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8be</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BOR</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-4</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-4</td><td class="list" align="center" style="background-color: #FFFFFF" >im Physikraum</td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B122</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >8c</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8cd</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>FRA</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-3</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>D001</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >8cd</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SIL</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-6</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-6</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A003</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8c</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>KOW</b></td><td class="list" align="center" style="background-color: #FFFFFF" >GE</td><td class="list" align="center" style="background-color: #FFFFFF" >GE</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B110</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >8d</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8cd</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>FRA</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-3</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>D001</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >8cd</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SIL</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-6</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-6</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vtr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A003</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8d</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SCHT</b></td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" align="center" style="background-color: #FFFFFF" >D</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B202</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >8e</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8be</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BOR</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SP-4</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-4</td><td class="list" align="center" style="background-color: #FFFFFF" >im Physikraum</td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B122</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >8f</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >8f</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >FF-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >9b</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >9bde</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>VED</b></td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >EVA: spanische Lieder singen</td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B012</b></td></tr>
+<tr class='list even'><td class="list" align="center">9bde</td><td class="list" align="center"><b>5 - 6</b></td><td class="list" align="center"><b>BSCH</b></td><td class="list" align="center">TH-2</td><td class="list" align="center">TH-2</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>AULA</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >9bde</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>VED</b></td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B012</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >9d</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >9d</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>DUB</b></td><td class="list" align="center" style="background-color: #FFFFFF" >BIe</td><td class="list" align="center" style="background-color: #FFFFFF" >BIe</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A117</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >9bde</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>VED</b></td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >EVA: spanische Lieder singen</td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B012</b></td></tr>
+<tr class='list odd'><td class="list" align="center">9bde</td><td class="list" align="center"><b>5 - 6</b></td><td class="list" align="center"><b>BSCH</b></td><td class="list" align="center">TH-2</td><td class="list" align="center">TH-2</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>AULA</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >9bde</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>VED</b></td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B012</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >9e</td></tr>
+<tr class='list even'><td class="list" align="center">9e</td><td class="list" align="center"><b>3 - 4</b></td><td class="list" align="center"><b>BL</b></td><td class="list" align="center">ER-1</td><td class="list" align="center">ER-1</td><td class="list"> </td><td class="list" align="center">Unterricht geändert</td><td class="list" align="center"><b>A006</b></td></tr>
+<tr class='list odd'><td class="list" align="center">9e</td><td class="list" align="center"><b>3 - 4</b></td><td class="list" align="center"><b>ZIM</b></td><td class="list" align="center">KR-1</td><td class="list" align="center">KR-1</td><td class="list"> </td><td class="list" align="center">Unterricht geändert</td><td class="list" align="center"><b>A006</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >9bde</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>VED</b></td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >EVA: spanische Lieder singen</td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B012</b></td></tr>
+<tr class='list odd'><td class="list" align="center">9bde</td><td class="list" align="center"><b>5 - 6</b></td><td class="list" align="center"><b>BSCH</b></td><td class="list" align="center">TH-2</td><td class="list" align="center">TH-2</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>AULA</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >9bde</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>VED</b></td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" align="center" style="background-color: #FFFFFF" >S8-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B012</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >EF</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BRT</b></td><td class="list" align="center" style="background-color: #FFFFFF" >ER-GK1</td><td class="list" align="center" style="background-color: #FFFFFF" >ER-GK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A212</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >PS-GK3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >BI-GK5</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >F6-GK2</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >PH-GK3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >M-GK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >M-GK5</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HAHN</b></td><td class="list" align="center" style="background-color: #FFFFFF" >BI-GK4</td><td class="list" align="center" style="background-color: #FFFFFF" >BI-GK4</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A114</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >Q1</td></tr>
+<tr class='list odd'><td class="list" align="center">Q1</td><td class="list" align="center"><b>1</b></td><td class="list" align="center"><b>KD</b></td><td class="list" align="center">CH-LK1</td><td class="list" align="center">CH-LK1</td><td class="list" align="center">Start um 8.25 Uhr!</td><td class="list" align="center">Unterricht geändert</td><td class="list" align="center"><b>A317</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>HSR</b></td><td class="list" align="center" style="background-color: #FFFFFF" >D-LK3</td><td class="list" align="center" style="background-color: #FFFFFF" >D-LK3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B006</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>1 - 2</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >SP-LK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>SWZ</b></td><td class="list" align="center" style="background-color: #FFFFFF" >GE-GK1</td><td class="list" align="center" style="background-color: #FFFFFF" >GE-GK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A224</b></td></tr>
+<tr class='list odd'><td class="list" align="center">Q1</td><td class="list" align="center"><b>3 - 4</b></td><td class="list" align="center"><b>RF</b></td><td class="list" align="center">KR-GK1</td><td class="list" align="center">KR-GK1</td><td class="list"> </td><td class="list" align="center">Betreuung</td><td class="list" align="center"><b>A229</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >M-GK9</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>RF</b></td><td class="list" align="center" style="background-color: #FFFFFF" >D-LK4</td><td class="list" align="center" style="background-color: #FFFFFF" >D-LK4</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A229</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >E-LK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BRNK</b></td><td class="list" align="center" style="background-color: #FFFFFF" >M-LK1</td><td class="list" align="center" style="background-color: #FFFFFF" >M-LK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Raum</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>A106</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >D-GK6</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >GE-GK2</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >KD-GK1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >Q1</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >PS-GK3</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >BS</td></tr>
+<tr class='list odd'><td class="list" align="center">BS</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center">BS</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center">BS</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center">BS</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center">BS</td><td class="list" align="center"><b>3 - 4</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center">BS</td><td class="list" align="center"><b>3 - 4</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center">BS</td><td class="list" align="center"><b>5 - 6</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list even'><td class="list" align="center">BS</td><td class="list" align="center"><b>7</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >SPI</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >SPI</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>8 - 10</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >Sp_Int</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >SPI</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>8 - 10</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >Sp_Int</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >AG</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >AG</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7 - 8</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >AG-NW4</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+</table>
+<p>
+<font size="3" face="Arial">
+ B 2. HJ 18/19 4. Quartal
+</font></center>
+
+<p><center><font face="Arial" size="2"><a href="http://www.untis.at" target="_blank" >Untis Stundenplan Software</a></font></center>
+
+
+
+
+
+
+<body>
+<table class="mon_head">
+ <tr>
+ <td valign="bottom"><h1><strong>Untis</strong> 2019 <!-- Info-Stundenplan --></h1></td>
+ <td valign="bottom"></td>
+ <td align="right" valign="bottom">
+ <p>LANDRAT-LUCAS-SCH.LEVERKUSEN <span style="width:10px"> </span> D-51379,P.-NEUENHEUSER-STR.7<br />
+ Schuljahr 2018/19<span style="width:10px"> </span>gültig ab 13.05.2019 <span style="width:10px"> </span> Stand: 05.07.2019 07:41</p>
+ </td>
+ </tr>
+</table>
+
+<center>
+<div class="mon_title">8.7.2019 Montag, Woche A</div>
+<table class="info" >
+<tr class="info"><th class="info" align="center" colspan="2">Nachrichten zum Tag</th></tr>
+<tr class="info"><td class="info" align="left">Abwesende Lehrer </td><td class="info" align="left">BOES, HEC, HW, KOC, SNET</td></tr>
+<tr class="info"><td class="info" align="left">Betroffene Klassen </td><td class="info" align="left">EF</td></tr>
+</table>
+<p>
+<table class="mon_list" >
+<tr class='list'><th class="list" align="center" width='7'>Klasse</th><th class="list" align="center" width='9'><b>Stunde</b></th><th class="list" align="center" width='8'><b>Vertreter</b></th><th class="list" align="center" width='9'>Fach</th><th class="list" align="center" width='6'>(Fach)</th><th class="list" align="center" width='29'>Bemerkung</th><th class="list" align="center" width='12'>Art</th><th class="list" align="center" width='6'><b>Raum</b></th></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >EF</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >EF</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td><td class="list" align="center" style="background-color: #FFFFFF" >---</td><td class="list" align="center" style="background-color: #FFFFFF" >PS-GK6</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >entfälllt</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>---</b></td></tr>
+</table>
+<p>
+<font size="3" face="Arial">
+ A 2. HJ 18/19 4. Quartal
+</font></center>
+
+<p><center><font face="Arial" size="2"><a href="http://www.untis.at" target="_blank" >Untis Stundenplan Software</a></font></center>
+</body>
+
+
+
+
+
+
+<table class="mon_head">
+ <tr>
+ <td valign="bottom"><h1><strong>Untis</strong> 2019 <!-- Info-Stundenplan --></h1></td>
+ <td valign="bottom"></td>
+ <td align="right" valign="bottom">
+ <p>LANDRAT-LUCAS-SCH.LEVERKUSEN <span style="width:10px"> </span> D-51379,P.-NEUENHEUSER-STR.7<br />
+ Schuljahr 2018/19<span style="width:10px"> </span>gültig ab 13.05.2019 <span style="width:10px"> </span> Stand: 05.07.2019 07:41</p>
+ </td>
+ </tr>
+</table>
+
+<center>
+<div class="mon_title">9.7.2019 Dienstag, Woche A</div>
+<table class="info" >
+<tr class="info"><th class="info" align="center" colspan="2">Nachrichten zum Tag</th></tr>
+<tr class="info"><td class="info" align="left">Abwesende Lehrer </td><td class="info" align="left">BOES, HEC, KOC, SNET</td></tr>
+<tr class="info"><td class="info" align="left">Betroffene Klassen </td><td class="info" align="left">5f, 6c, 7a, 7e, 7f, BS, VBS, AG</td></tr>
+</table>
+<p>
+<table class="mon_list" >
+<tr class='list'><th class="list" align="center" width='7'>Klasse</th><th class="list" align="center" width='9'><b>Stunde</b></th><th class="list" align="center" width='8'><b>Vertreter</b></th><th class="list" align="center" width='9'>Fach</th><th class="list" align="center" width='6'>(Fach)</th><th class="list" align="center" width='29'>Bemerkung</th><th class="list" align="center" width='12'>Art</th><th class="list" align="center" width='6'><b>Raum</b></th></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >5f</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >5f</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" align="center" style="background-color: #FFFFFF" >SN</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>BAD1</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >6c</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >6c</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>3 - 4</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >F6-2</td><td class="list" align="center" style="background-color: #FFFFFF" >F6-2</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B108</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >7a</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >7aef</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >PP-1</td><td class="list" align="center" style="background-color: #FFFFFF" >PP-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B203</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >7e</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >7aef</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >PP-1</td><td class="list" align="center" style="background-color: #FFFFFF" >PP-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B203</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >7f</td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >7aef</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>5 - 6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >PP-1</td><td class="list" align="center" style="background-color: #FFFFFF" >PP-1</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>B203</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >BS</td></tr>
+<tr class='list even'><td class="list" align="center">BS</td><td class="list" align="center"><b>1 - 2</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">BS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list odd'><td class="list inline_header" colspan="8" >VBS</td></tr>
+<tr class='list even'><td class="list" align="center">VBS</td><td class="list" align="center"><b>1</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">VBS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list odd'><td class="list" align="center">VBS</td><td class="list" align="center"><b>2</b></td><td class="list" align="center"><b>---</b></td><td class="list" align="center">---</td><td class="list" align="center">VBS</td><td class="list"> </td><td class="list" align="center">Bereitschaft entfällt</td><td class="list" align="center"><b>---</b></td></tr>
+<tr class='list even'><td class="list inline_header" colspan="8" >AG</td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >AG</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>6</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >AG-Z</td><td class="list" align="center" style="background-color: #FFFFFF" >AG-Z</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>C001</b></td></tr>
+<tr class='list even'><td class="list" align="center" style="background-color: #FFFFFF" >AG</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>7</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >AG-Z</td><td class="list" align="center" style="background-color: #FFFFFF" >AG-Z</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>C001</b></td></tr>
+<tr class='list odd'><td class="list" align="center" style="background-color: #FFFFFF" >AG</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>8</b></td><td class="list" align="center" style="background-color: #FFFFFF" ><b>???</b></td><td class="list" align="center" style="background-color: #FFFFFF" >AG-Z</td><td class="list" align="center" style="background-color: #FFFFFF" >AG-Z</td><td class="list" style="background-color: #FFFFFF" > </td><td class="list" align="center" style="background-color: #FFFFFF" >Vertr.</td><td class="list" align="center" style="background-color: #FFFFFF" ><b>C001</b></td></tr>
+</table>
+<p>
+<font size="3" face="Arial">
+ A 2. HJ 18/19 4. Quartal
+</font></center>
+
+<p><center><font face="Arial" size="2"><a href="http://www.untis.at" target="_blank" >Untis Stundenplan Software</a></font></center>
+</body></body></html>
\ No newline at end of file diff --git a/src/dsb/html.rs b/src/dsb/html.rs new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/dsb/html.rs diff --git a/src/dsb/mod.rs b/src/dsb/mod.rs new file mode 100644 index 0000000..7a32c1f --- /dev/null +++ b/src/dsb/mod.rs @@ -0,0 +1,79 @@ +use crate::types::*; +use crate::Error; + +use html5ever::parse_document; +use html5ever::rcdom::RcDom; +use html5ever::tendril::TendrilSink; + +mod html; + +#[cfg(feature = "scraper")] +use hyper::Client; + +pub struct DSB { + pub school: String, + pub year: String, + pub valid_from: chrono::NaiveDate, + pub updated_at: chrono::NaiveDateTime, + pub date: chrono::NaiveDate, + pub week: Week, + pub free_lessons: Option<String>, + pub missing_teachers: Vec<Teacher>, + pub blocked_rooms: Vec<Room>, + pub affected_classes: Vec<Class>, + pub entries: Vec<DsbEntry>, +} + +impl DSB { + /// parse dsb content + pub fn parse(html: &str) -> Result<Vec<DSB>, Error> { + let html = html.replace(" ", " "); // FIXME: ??? + let dom = parse_document(RcDom::default(), Default::default()) + .from_utf8() + .read_from(&mut html.as_bytes())?; + + + todo!() + } +} + +/// Default DSB url +#[cfg(feature = "scraper")] +pub const DSB_BASE_URL: &'static str = "https://dsbmobile.de/"; + +/// Config struct for dsb +#[cfg(feature = "scraper")] +pub struct DsbConfig<'a> { + pub user_id: &'a str, + pub password: &'a str, + pub cookie: &'a str, + + pub base_url: &'static str, + + // TODO: "scraper" time behind a feature + #[cfg(feature = "hyper")] //TODO + pub hyper: &'a Client, +} + +#[cfg(feature = "scraper")] +impl<'a> DsbConfig<'a> { + pub fn new(user_id: &'a str, password: &'a str, cookie: &'a str) -> Self { + Self { + user_id, + password, + cookie, + + base_url: DSB_BASE_URL, + } + } +} + +#[cfg(test)] +mod test { + use super::DSB; + #[test] + fn read_dsb() { + let html = std::fs::read_to_string("./src/dsb/mod.rs").unwrap(); + let dsb = DSB::parse(&html).unwrap(); + } +} diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 0000000..45fef70 --- /dev/null +++ b/src/error.rs @@ -0,0 +1,11 @@ +use custom_error::custom_error; + +custom_error! { pub Error + DsbInvalidWeek{ value: String } = "Week {value} is invalid", + DsbInvalidHour{ value: String } = "Hour {value} is invalid", + InvalidRoom{ value: String } = "Room {value} is invalid", + InvalidCourse { value: String} = "Course {value} is invalid", + + Parse{ source: std::num::ParseIntError } = "Parser: {source}", + Io{source: std::io::Error } = "IO: {source}" +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..22a4ac8 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,6 @@ +pub mod dsb; + +pub mod types; + +mod error; +pub use error::Error; diff --git a/src/types.rs b/src/types.rs new file mode 100644 index 0000000..d0f17fa --- /dev/null +++ b/src/types.rs @@ -0,0 +1,345 @@ +use std::convert::TryFrom; +use std::fmt; + +use crate::Error; + +#[repr(u8)] +#[derive(Debug, Clone, PartialEq)] +pub enum Week { + A, + B, +} + +impl TryFrom<char> for Week { + type Error = Error; + + fn try_from(value: char) -> Result<Self, Self::Error> { + let value = value.to_uppercase().to_string(); + match value.as_str() { + "A" => Ok(Week::A), + "B" => Ok(Week::B), + _ => Err(Error::DsbInvalidWeek { value }), + } + } +} + +impl TryFrom<&str> for Week { + type Error = Error; + + fn try_from(value: &str) -> Result<Self, Self::Error> { + let value = value.to_uppercase().to_string(); + match value.as_str() { + "A" => Ok(Week::A), + "B" => Ok(Week::B), + _ => Err(Error::DsbInvalidWeek { value }), + } + } +} + +#[derive(Clone)] +pub struct Class { + pub name: String, +} + +impl fmt::Debug for Class { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Class {{ {} }}", self) + } +} + +impl fmt::Display for Class { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.name) + } +} + +#[derive(Debug, Eq, PartialEq, Clone)] +pub enum Hour { + Part(u8), + Block(u8, u8), +} + +impl TryFrom<&str> for Hour { + type Error = Error; + + fn try_from(value: &str) -> Result<Self, Self::Error> { + if value.contains('-') { + let vec: Vec<&str> = value.split('-').map(|v| v.trim()).collect(); + if vec.len() != 2 { + return Err(Error::DsbInvalidHour { + value: value.to_string(), + }); + } + Ok(Hour::Block(vec[0].parse()?, vec[1].parse()?)) + } else { + Ok(Hour::Part(value.parse()?)) + } + } +} + +#[derive(Debug, PartialEq, Eq, Clone)] +pub enum Kind { + None, + Substitution, + Dropped, + Special, + Changed, + Room, + Unknown(String), +} + +impl From<&str> for Kind { + fn from(value: &str) -> Self { + match value.to_lowercase().as_str() { + "vertr" => Kind::Substitution, + "entfällt" | "entf\\u{fffd}lllt" => Kind::Dropped, + "sondereins" => Kind::Special, + "geändert" | "ge\\u{fffd}ndert" => Kind::Changed, + "betreuung" => Kind::Special, + "raum" => Kind::Room, + v @ _ => { + log::info!("could not parse kind {}", v); + Kind::Unknown(v.to_string()) + } + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Room { + A(u16), + B(u16), + C(u16), + D(u16), + E(u16), + Multi(Vec<Room>), +} + +// used to get room from byte arry +pub(crate) fn get_room_num(value: &[u8]) -> u16 { + let mut ret = 0; + for x in 0..value.len() { + ret += (value[x] as u16 - 48) * (10u16.pow((value.len() - 1 - x) as u32)); + } + + ret +} + +impl TryFrom<&str> for Room { + type Error = Error; + + fn try_from(value: &str) -> Result<Self, Self::Error> { + let value = value.trim(); + if value.contains(',') { + let value = value + .split(',') + .map(|v| Room::try_from(v)) + .collect::<Result<Vec<Self>, Self::Error>>()?; + return Ok(Room::Multi(value)); + } + let cvalue = value.as_bytes(); + if cvalue.len() != 4 { + return Err(Error::InvalidRoom { + value: value.to_string(), + }); + } + match cvalue[0] as char { + 'A' => Ok(Room::A(get_room_num(&cvalue[1..]))), + 'B' => Ok(Room::B(get_room_num(&cvalue[1..]))), + 'C' => Ok(Room::C(get_room_num(&cvalue[1..]))), + 'D' => Ok(Room::D(get_room_num(&cvalue[1..]))), + 'E' => Ok(Room::E(get_room_num(&cvalue[1..]))), + _ => Err(Error::InvalidRoom { + value: value.to_string(), + }), + } + } +} + +impl fmt::Display for Room { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Room::A(v) => write!(f, "A{}", v), + Room::B(v) => write!(f, "B{}", v), + Room::C(v) => write!(f, "C{}", v), + Room::D(v) => write!(f, "D{}", v), + Room::E(v) => write!(f, "E{}", v), + Room::Multi(v) => write!( + f, + "{}", + v.iter() + .map(|v| v.to_string()) + .collect::<Vec<String>>() + .join(",") + ), + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum Course { + Sec1(String), + Sec2 { + name: String, + track: Option<u8>, + kind: CourseKind, + }, + // Sec2Exam?? +} + +impl Course { + pub fn parse_sec2(value: &str) -> Result<Self, Error> { + let vvalue = value.split('-').map(|v| v.trim()).collect::<Vec<&str>>(); + if vvalue.len() != 2 { + return Err(Error::InvalidCourse { + value: value.to_string(), + }); + } + + let name = vvalue[0].to_string(); + let kind = CourseKind::try_from(vvalue[1])?; + + Ok(Self::Sec2 { + name, + kind, + track: None, + }) + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum CourseKind { + GK(u8), + LK(u8), +} + +impl TryFrom<&str> for CourseKind { + type Error = Error; + + fn try_from(value: &str) -> Result<Self, Self::Error> { + let cvalue = value.as_bytes(); + if cvalue.len() != 3 { + return Err(Error::InvalidCourse { + value: value.to_string(), + }); + } + + let v = cvalue[2] as u8 - 48; + if value.starts_with("GK") { + Ok(CourseKind::GK(v)) + } else if value.starts_with("LK") { + Ok(CourseKind::LK(v)) + } else { + Err(Error::InvalidCourse { + value: value.to_string(), + }) + } + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Teacher { + pub name: String, +} + +#[derive(Debug, Clone)] +pub struct DsbEntry { + /// Class this one affects + pub name: String, // TODO: change to enum type + + /// New course if any + pub new_course: Option<Course>, + + /// The course this one alters + pub old_course: Course, + + /// Hour for this entry + pub hour: Hour, + + /// New Teacher for this entry + pub new_teacher: Option<Teacher>, + + /// Message for this enrty + pub message: Option<String>, + + /// Kind of this entry + pub kind: Kind, + + /// New room for this entry + pub room: Option<Room>, +} + +#[cfg(test)] +mod test { + use super::{TryFrom, Week}; + + #[test] + fn week_try_from() { + let week = Week::try_from('B').unwrap(); + assert_eq!(week, Week::B); + + let week = Week::try_from("A").unwrap(); + assert_eq!(week, Week::A); + } + + #[test] + fn hour_try_from() { + use super::Hour; + let hour = Hour::try_from("1").unwrap(); + assert_eq!(hour, Hour::Part(1)); + + let hour = Hour::try_from("3 - 4").unwrap(); + assert_eq!(hour, Hour::Block(3, 4)); + } + + #[test] + fn room_try_from() { + use super::Room; + let room = Room::try_from("A303").unwrap(); + assert_eq!(room, Room::A(303)); + + let room = Room::try_from("B008").unwrap(); + assert_eq!(room, Room::B(8)); + + let room = Room::try_from("A211,A212").unwrap(); + assert_eq!(room, Room::Multi(vec![Room::A(211), Room::A(212)])); + } + + #[test] + fn course_try_from() { + use super::{Course, CourseKind}; + let course = Course::parse_sec2("IF-LK1").unwrap(); + if let Course::Sec2 { name, track, kind } = course { + assert_eq!(&name, "IF"); + assert_eq!(kind, CourseKind::LK(1)); + assert!(track.is_none()); + } else { + panic!("failed"); + } + + let course = Course::parse_sec2("D-GK6").unwrap(); + if let Course::Sec2 { name, track, kind } = course { + assert_eq!(&name, "D"); + assert_eq!(kind, CourseKind::GK(6)); + assert!(track.is_none()); + } else { + panic!("failed"); + } + } + + #[test] + fn kind_from() { + use super::Kind; + let kind = Kind::from("vertr"); + assert_eq!(kind, Kind::Substitution); + } + + #[test] + fn get_from_arry() { + let three = super::get_room_num("3".as_bytes()); + assert_eq!(three, 3); + + let v = super::get_room_num("301".as_bytes()); + assert_eq!(v, 301); + } +} |