Compare commits

...

2 Commits

Author SHA1 Message Date
6ce8fb5cba Re-worked section 2 2020-12-02 19:01:04 +01:00
0d13665c50 Re-worked first section 2020-12-02 17:01:03 +01:00
6 changed files with 1343 additions and 705 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="265.963pt" height="174.209pt" viewBox="0 0 265.963 174.209" version="1.2"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="266.518pt" height="174.209pt" viewBox="0 0 266.518 174.209" version="1.2">
<defs> <defs>
<g> <g>
<symbol overflow="visible" id="glyph0-0"> <symbol overflow="visible" id="glyph0-0">
@ -38,72 +38,6 @@
<symbol overflow="visible" id="glyph2-4"> <symbol overflow="visible" id="glyph2-4">
<path style="stroke:none;" d="M 4.15625 0 L 4.15625 -0.3125 L 3.84375 -0.3125 C 2.953125 -0.3125 2.921875 -0.421875 2.921875 -0.78125 L 2.921875 -6.34375 C 2.921875 -6.59375 2.921875 -6.609375 2.6875 -6.609375 C 2.078125 -5.96875 1.203125 -5.96875 0.890625 -5.96875 L 0.890625 -5.671875 C 1.078125 -5.671875 1.671875 -5.671875 2.1875 -5.921875 L 2.1875 -0.78125 C 2.1875 -0.421875 2.15625 -0.3125 1.265625 -0.3125 L 0.9375 -0.3125 L 0.9375 0 C 1.296875 -0.03125 2.15625 -0.03125 2.546875 -0.03125 C 2.953125 -0.03125 3.8125 -0.03125 4.15625 0 Z M 4.15625 0 "/> <path style="stroke:none;" d="M 4.15625 0 L 4.15625 -0.3125 L 3.84375 -0.3125 C 2.953125 -0.3125 2.921875 -0.421875 2.921875 -0.78125 L 2.921875 -6.34375 C 2.921875 -6.59375 2.921875 -6.609375 2.6875 -6.609375 C 2.078125 -5.96875 1.203125 -5.96875 0.890625 -5.96875 L 0.890625 -5.671875 C 1.078125 -5.671875 1.671875 -5.671875 2.1875 -5.921875 L 2.1875 -0.78125 C 2.1875 -0.421875 2.15625 -0.3125 1.265625 -0.3125 L 0.9375 -0.3125 L 0.9375 0 C 1.296875 -0.03125 2.15625 -0.03125 2.546875 -0.03125 C 2.953125 -0.03125 3.8125 -0.03125 4.15625 0 Z M 4.15625 0 "/>
</symbol> </symbol>
<symbol overflow="visible" id="glyph2-5">
<path style="stroke:none;" d="M 7.265625 -0.875 C 7.265625 -0.9375 7.265625 -1.046875 7.140625 -1.046875 C 7.03125 -1.046875 7.03125 -0.953125 7.015625 -0.890625 C 6.953125 -0.171875 6.609375 0 6.359375 0 C 5.875 0 5.796875 -0.5 5.65625 -1.421875 L 5.53125 -2.21875 C 5.34375 -2.859375 4.859375 -3.1875 4.3125 -3.375 C 5.28125 -3.609375 6.046875 -4.21875 6.046875 -4.984375 C 6.046875 -5.9375 4.921875 -6.78125 3.46875 -6.78125 L 0.34375 -6.78125 L 0.34375 -6.46875 L 0.578125 -6.46875 C 1.34375 -6.46875 1.375 -6.359375 1.375 -6 L 1.375 -0.78125 C 1.375 -0.421875 1.34375 -0.3125 0.578125 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.703125 -0.03125 1.40625 -0.03125 1.796875 -0.03125 C 2.1875 -0.03125 2.890625 -0.03125 3.25 0 L 3.25 -0.3125 L 3 -0.3125 C 2.25 -0.3125 2.21875 -0.421875 2.21875 -0.78125 L 2.21875 -3.28125 L 3.359375 -3.28125 C 3.515625 -3.28125 3.9375 -3.28125 4.28125 -2.953125 C 4.65625 -2.59375 4.65625 -2.28125 4.65625 -1.625 C 4.65625 -0.96875 4.65625 -0.578125 5.0625 -0.203125 C 5.484375 0.15625 6.015625 0.21875 6.3125 0.21875 C 7.09375 0.21875 7.265625 -0.59375 7.265625 -0.875 Z M 5.03125 -4.984375 C 5.03125 -4.3125 4.796875 -3.5 3.328125 -3.5 L 2.21875 -3.5 L 2.21875 -6.078125 C 2.21875 -6.296875 2.21875 -6.421875 2.4375 -6.453125 C 2.546875 -6.46875 2.828125 -6.46875 3.03125 -6.46875 C 3.921875 -6.46875 5.03125 -6.421875 5.03125 -4.984375 Z M 5.03125 -4.984375 "/>
</symbol>
<symbol overflow="visible" id="glyph2-6">
<path style="stroke:none;" d="M 4.125 -1.1875 C 4.125 -1.28125 4.03125 -1.296875 3.984375 -1.296875 C 3.90625 -1.296875 3.875 -1.234375 3.859375 -1.15625 C 3.515625 -0.140625 2.625 -0.140625 2.515625 -0.140625 C 2.03125 -0.140625 1.625 -0.4375 1.40625 -0.796875 C 1.09375 -1.28125 1.09375 -1.9375 1.09375 -2.296875 L 3.875 -2.296875 C 4.09375 -2.296875 4.125 -2.296875 4.125 -2.5 C 4.125 -3.484375 3.578125 -4.4375 2.34375 -4.4375 C 1.1875 -4.4375 0.28125 -3.421875 0.28125 -2.1875 C 0.28125 -0.859375 1.3125 0.109375 2.453125 0.109375 C 3.671875 0.109375 4.125 -0.984375 4.125 -1.1875 Z M 3.46875 -2.5 L 1.109375 -2.5 C 1.171875 -3.984375 2 -4.234375 2.34375 -4.234375 C 3.359375 -4.234375 3.46875 -2.890625 3.46875 -2.5 Z M 3.46875 -2.5 "/>
</symbol>
<symbol overflow="visible" id="glyph2-7">
<path style="stroke:none;" d="M 3.546875 -6.296875 C 3.546875 -6.671875 3.171875 -7 2.65625 -7 C 1.953125 -7 1.109375 -6.46875 1.109375 -5.421875 L 1.109375 -4.28125 L 0.328125 -4.28125 L 0.328125 -3.96875 L 1.109375 -3.96875 L 1.109375 -0.75 C 1.109375 -0.3125 1 -0.3125 0.34375 -0.3125 L 0.34375 0 L 1.46875 -0.03125 C 1.859375 -0.03125 2.328125 -0.03125 2.734375 0 L 2.734375 -0.3125 L 2.515625 -0.3125 C 1.78125 -0.3125 1.765625 -0.421875 1.765625 -0.78125 L 1.765625 -3.96875 L 2.890625 -3.96875 L 2.890625 -4.28125 L 1.734375 -4.28125 L 1.734375 -5.421875 C 1.734375 -6.296875 2.21875 -6.78125 2.65625 -6.78125 C 2.671875 -6.78125 2.828125 -6.78125 2.96875 -6.703125 C 2.859375 -6.671875 2.671875 -6.53125 2.671875 -6.296875 C 2.671875 -6.0625 2.84375 -5.859375 3.109375 -5.859375 C 3.390625 -5.859375 3.546875 -6.0625 3.546875 -6.296875 Z M 3.546875 -6.296875 "/>
</symbol>
<symbol overflow="visible" id="glyph2-8">
<path style="stroke:none;" d="M 3.609375 -3.78125 C 3.609375 -4.09375 3.296875 -4.390625 2.875 -4.390625 C 2.15625 -4.390625 1.796875 -3.71875 1.65625 -3.296875 L 1.65625 -4.390625 L 0.28125 -4.28125 L 0.28125 -3.96875 C 0.96875 -3.96875 1.046875 -3.90625 1.046875 -3.40625 L 1.046875 -0.75 C 1.046875 -0.3125 0.9375 -0.3125 0.28125 -0.3125 L 0.28125 0 L 1.40625 -0.03125 C 1.8125 -0.03125 2.265625 -0.03125 2.671875 0 L 2.671875 -0.3125 L 2.453125 -0.3125 C 1.71875 -0.3125 1.703125 -0.421875 1.703125 -0.78125 L 1.703125 -2.296875 C 1.703125 -3.28125 2.125 -4.171875 2.875 -4.171875 C 2.953125 -4.171875 2.96875 -4.171875 2.984375 -4.15625 C 2.953125 -4.140625 2.765625 -4.03125 2.765625 -3.765625 C 2.765625 -3.5 2.96875 -3.34375 3.1875 -3.34375 C 3.359375 -3.34375 3.609375 -3.46875 3.609375 -3.78125 Z M 3.609375 -3.78125 "/>
</symbol>
<symbol overflow="visible" id="glyph2-9">
<path style="stroke:none;" d="M 5.3125 0 L 5.3125 -0.3125 C 4.796875 -0.3125 4.546875 -0.3125 4.53125 -0.609375 L 4.53125 -2.5 C 4.53125 -3.359375 4.53125 -3.65625 4.234375 -4.015625 C 4.09375 -4.1875 3.765625 -4.390625 3.1875 -4.390625 C 2.453125 -4.390625 2 -3.953125 1.71875 -3.34375 L 1.71875 -4.390625 L 0.3125 -4.28125 L 0.3125 -3.96875 C 1.015625 -3.96875 1.09375 -3.90625 1.09375 -3.40625 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.4375 -0.03125 L 2.546875 0 L 2.546875 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.578125 C 1.78125 -3.609375 2.484375 -4.171875 3.109375 -4.171875 C 3.734375 -4.171875 3.84375 -3.625 3.84375 -3.0625 L 3.84375 -0.75 C 3.84375 -0.3125 3.734375 -0.3125 3.078125 -0.3125 L 3.078125 0 L 4.203125 -0.03125 Z M 5.3125 0 "/>
</symbol>
<symbol overflow="visible" id="glyph2-10">
<path style="stroke:none;" d="M 4.125 -1.1875 C 4.125 -1.28125 4.015625 -1.28125 3.984375 -1.28125 C 3.90625 -1.28125 3.875 -1.234375 3.859375 -1.1875 C 3.578125 -0.265625 2.921875 -0.140625 2.5625 -0.140625 C 2.03125 -0.140625 1.15625 -0.5625 1.15625 -2.15625 C 1.15625 -3.78125 1.96875 -4.203125 2.5 -4.203125 C 2.59375 -4.203125 3.21875 -4.1875 3.5625 -3.828125 C 3.15625 -3.796875 3.09375 -3.5 3.09375 -3.375 C 3.09375 -3.109375 3.28125 -2.921875 3.546875 -2.921875 C 3.8125 -2.921875 4.015625 -3.078125 4.015625 -3.390625 C 4.015625 -4.0625 3.25 -4.4375 2.484375 -4.4375 C 1.25 -4.4375 0.34375 -3.375 0.34375 -2.140625 C 0.34375 -0.875 1.3125 0.109375 2.46875 0.109375 C 3.796875 0.109375 4.125 -1.078125 4.125 -1.1875 Z M 4.125 -1.1875 "/>
</symbol>
<symbol overflow="visible" id="glyph2-11">
<path style="stroke:none;" d="M 6.796875 -4.484375 L 6.609375 -6.71875 L 0.546875 -6.71875 L 0.359375 -4.484375 L 0.609375 -4.484375 C 0.75 -6.078125 0.890625 -6.40625 2.390625 -6.40625 C 2.5625 -6.40625 2.828125 -6.40625 2.921875 -6.390625 C 3.140625 -6.34375 3.140625 -6.234375 3.140625 -6.015625 L 3.140625 -0.78125 C 3.140625 -0.453125 3.140625 -0.3125 2.09375 -0.3125 L 1.703125 -0.3125 L 1.703125 0 C 2.109375 -0.03125 3.109375 -0.03125 3.578125 -0.03125 C 4.03125 -0.03125 5.046875 -0.03125 5.453125 0 L 5.453125 -0.3125 L 5.0625 -0.3125 C 4.015625 -0.3125 4.015625 -0.453125 4.015625 -0.78125 L 4.015625 -6.015625 C 4.015625 -6.21875 4.015625 -6.34375 4.203125 -6.390625 C 4.3125 -6.40625 4.578125 -6.40625 4.765625 -6.40625 C 6.265625 -6.40625 6.40625 -6.078125 6.546875 -4.484375 Z M 6.796875 -4.484375 "/>
</symbol>
<symbol overflow="visible" id="glyph2-12">
<path style="stroke:none;" d="M 4.796875 -0.890625 L 4.796875 -1.4375 L 4.546875 -1.4375 L 4.546875 -0.890625 C 4.546875 -0.3125 4.296875 -0.25 4.1875 -0.25 C 3.859375 -0.25 3.8125 -0.6875 3.8125 -0.75 L 3.8125 -2.734375 C 3.8125 -3.140625 3.8125 -3.53125 3.46875 -3.90625 C 3.078125 -4.28125 2.578125 -4.4375 2.109375 -4.4375 C 1.296875 -4.4375 0.609375 -3.984375 0.609375 -3.328125 C 0.609375 -3.03125 0.796875 -2.859375 1.0625 -2.859375 C 1.34375 -2.859375 1.515625 -3.0625 1.515625 -3.3125 C 1.515625 -3.4375 1.46875 -3.765625 1.015625 -3.765625 C 1.28125 -4.125 1.765625 -4.234375 2.078125 -4.234375 C 2.5625 -4.234375 3.140625 -3.84375 3.140625 -2.953125 L 3.140625 -2.59375 C 2.625 -2.5625 1.9375 -2.53125 1.3125 -2.234375 C 0.5625 -1.890625 0.3125 -1.375 0.3125 -0.9375 C 0.3125 -0.140625 1.28125 0.109375 1.90625 0.109375 C 2.5625 0.109375 3.015625 -0.28125 3.203125 -0.75 C 3.25 -0.359375 3.515625 0.0625 3.984375 0.0625 C 4.1875 0.0625 4.796875 -0.078125 4.796875 -0.890625 Z M 3.140625 -1.390625 C 3.140625 -0.453125 2.421875 -0.109375 1.96875 -0.109375 C 1.484375 -0.109375 1.078125 -0.453125 1.078125 -0.953125 C 1.078125 -1.5 1.5 -2.328125 3.140625 -2.375 Z M 3.140625 -1.390625 "/>
</symbol>
<symbol overflow="visible" id="glyph2-13">
<path style="stroke:none;" d="M 5.0625 0 L 5.0625 -0.3125 C 4.703125 -0.3125 4.484375 -0.3125 4.109375 -0.828125 L 2.84375 -2.609375 C 2.84375 -2.625 2.78125 -2.6875 2.78125 -2.71875 C 2.78125 -2.765625 3.5 -3.359375 3.59375 -3.4375 C 4.21875 -3.9375 4.640625 -3.953125 4.84375 -3.96875 L 4.84375 -4.28125 C 4.546875 -4.25 4.421875 -4.25 4.140625 -4.25 C 3.796875 -4.25 3.171875 -4.265625 3.03125 -4.28125 L 3.03125 -3.96875 C 3.21875 -3.953125 3.328125 -3.84375 3.328125 -3.71875 C 3.328125 -3.515625 3.1875 -3.40625 3.109375 -3.328125 L 1.703125 -2.125 L 1.703125 -6.890625 L 0.28125 -6.78125 L 0.28125 -6.46875 C 0.96875 -6.46875 1.046875 -6.40625 1.046875 -5.90625 L 1.046875 -0.75 C 1.046875 -0.3125 0.9375 -0.3125 0.28125 -0.3125 L 0.28125 0 L 1.359375 -0.03125 L 2.453125 0 L 2.453125 -0.3125 C 1.78125 -0.3125 1.671875 -0.3125 1.671875 -0.75 L 1.671875 -1.78125 L 2.3125 -2.328125 C 3.078125 -1.265625 3.5 -0.71875 3.5 -0.53125 C 3.5 -0.34375 3.328125 -0.3125 3.140625 -0.3125 L 3.140625 0 L 4.203125 -0.03125 C 4.5 -0.03125 4.78125 -0.015625 5.0625 0 Z M 5.0625 0 "/>
</symbol>
<symbol overflow="visible" id="glyph2-14">
<path style="stroke:none;" d="M 2.453125 0 L 2.453125 -0.3125 C 1.796875 -0.3125 1.75 -0.359375 1.75 -0.75 L 1.75 -4.390625 L 0.359375 -4.28125 L 0.359375 -3.96875 C 1.015625 -3.96875 1.09375 -3.90625 1.09375 -3.421875 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.328125 -0.3125 L 0.328125 0 L 1.421875 -0.03125 C 1.765625 -0.03125 2.109375 -0.015625 2.453125 0 Z M 1.90625 -6 C 1.90625 -6.265625 1.671875 -6.515625 1.375 -6.515625 C 1.046875 -6.515625 0.84375 -6.234375 0.84375 -6 C 0.84375 -5.71875 1.078125 -5.46875 1.375 -5.46875 C 1.703125 -5.46875 1.90625 -5.75 1.90625 -6 Z M 1.90625 -6 "/>
</symbol>
<symbol overflow="visible" id="glyph2-15">
<path style="stroke:none;" d="M 4.8125 -4.015625 C 4.8125 -4.171875 4.6875 -4.5 4.3125 -4.5 C 4.109375 -4.5 3.671875 -4.4375 3.25 -4.03125 C 2.84375 -4.359375 2.421875 -4.390625 2.203125 -4.390625 C 1.28125 -4.390625 0.59375 -3.703125 0.59375 -2.9375 C 0.59375 -2.5 0.8125 -2.125 1.0625 -1.921875 C 0.9375 -1.765625 0.75 -1.4375 0.75 -1.09375 C 0.75 -0.78125 0.890625 -0.40625 1.1875 -0.203125 C 0.59375 -0.046875 0.28125 0.390625 0.28125 0.78125 C 0.28125 1.5 1.265625 2.046875 2.46875 2.046875 C 3.640625 2.046875 4.671875 1.53125 4.671875 0.765625 C 4.671875 0.421875 4.53125 -0.09375 4.03125 -0.359375 C 3.5 -0.640625 2.921875 -0.640625 2.328125 -0.640625 C 2.078125 -0.640625 1.640625 -0.640625 1.578125 -0.65625 C 1.265625 -0.6875 1.046875 -1 1.046875 -1.3125 C 1.046875 -1.359375 1.046875 -1.59375 1.21875 -1.78125 C 1.609375 -1.515625 2.015625 -1.484375 2.203125 -1.484375 C 3.125 -1.484375 3.8125 -2.15625 3.8125 -2.921875 C 3.8125 -3.296875 3.65625 -3.65625 3.40625 -3.890625 C 3.765625 -4.234375 4.125 -4.28125 4.296875 -4.28125 C 4.296875 -4.28125 4.359375 -4.28125 4.390625 -4.265625 C 4.28125 -4.234375 4.234375 -4.125 4.234375 -4 C 4.234375 -3.828125 4.359375 -3.703125 4.53125 -3.703125 C 4.625 -3.703125 4.8125 -3.78125 4.8125 -4.015625 Z M 3.0625 -2.9375 C 3.0625 -2.671875 3.0625 -2.34375 2.90625 -2.109375 C 2.828125 -1.984375 2.59375 -1.703125 2.203125 -1.703125 C 1.34375 -1.703125 1.34375 -2.703125 1.34375 -2.921875 C 1.34375 -3.1875 1.34375 -3.515625 1.5 -3.765625 C 1.578125 -3.875 1.8125 -4.15625 2.203125 -4.15625 C 3.0625 -4.15625 3.0625 -3.171875 3.0625 -2.9375 Z M 4.15625 0.78125 C 4.15625 1.3125 3.453125 1.8125 2.484375 1.8125 C 1.484375 1.8125 0.796875 1.3125 0.796875 0.78125 C 0.796875 0.328125 1.171875 -0.046875 1.609375 -0.0625 L 2.1875 -0.0625 C 3.046875 -0.0625 4.15625 -0.0625 4.15625 0.78125 Z M 4.15625 0.78125 "/>
</symbol>
<symbol overflow="visible" id="glyph2-16">
<path style="stroke:none;" d="M 7.109375 -6.46875 L 7.109375 -6.78125 L 5.9375 -6.75 L 4.78125 -6.78125 L 4.78125 -6.46875 C 5.796875 -6.46875 5.796875 -6 5.796875 -5.734375 L 5.796875 -1.5 L 2.296875 -6.640625 C 2.21875 -6.765625 2.203125 -6.78125 2.015625 -6.78125 L 0.328125 -6.78125 L 0.328125 -6.46875 L 0.609375 -6.46875 C 0.765625 -6.46875 0.96875 -6.453125 1.109375 -6.453125 C 1.34375 -6.421875 1.34375 -6.40625 1.34375 -6.21875 L 1.34375 -1.046875 C 1.34375 -0.78125 1.34375 -0.3125 0.328125 -0.3125 L 0.328125 0 L 1.484375 -0.03125 L 2.65625 0 L 2.65625 -0.3125 C 1.625 -0.3125 1.625 -0.78125 1.625 -1.046875 L 1.625 -6.203125 C 1.671875 -6.15625 1.6875 -6.140625 1.71875 -6.078125 L 5.78125 -0.125 C 5.859375 -0.015625 5.875 0 5.9375 0 C 6.078125 0 6.078125 -0.0625 6.078125 -0.265625 L 6.078125 -5.734375 C 6.078125 -6 6.078125 -6.46875 7.109375 -6.46875 Z M 7.109375 -6.46875 "/>
</symbol>
<symbol overflow="visible" id="glyph2-17">
<path style="stroke:none;" d="M 4.671875 -2.125 C 4.671875 -3.390625 3.6875 -4.4375 2.484375 -4.4375 C 1.234375 -4.4375 0.28125 -3.359375 0.28125 -2.125 C 0.28125 -0.84375 1.3125 0.109375 2.46875 0.109375 C 3.671875 0.109375 4.671875 -0.859375 4.671875 -2.125 Z M 3.84375 -2.203125 C 3.84375 -1.84375 3.84375 -1.3125 3.625 -0.875 C 3.40625 -0.421875 2.96875 -0.140625 2.484375 -0.140625 C 2.046875 -0.140625 1.625 -0.34375 1.34375 -0.796875 C 1.09375 -1.234375 1.09375 -1.84375 1.09375 -2.203125 C 1.09375 -2.59375 1.09375 -3.125 1.34375 -3.5625 C 1.609375 -4.015625 2.078125 -4.234375 2.46875 -4.234375 C 2.90625 -4.234375 3.328125 -4.015625 3.59375 -3.578125 C 3.84375 -3.15625 3.84375 -2.578125 3.84375 -2.203125 Z M 3.84375 -2.203125 "/>
</symbol>
<symbol overflow="visible" id="glyph2-18">
<path style="stroke:none;" d="M 3.578125 -1.265625 C 3.578125 -1.796875 3.28125 -2.09375 3.15625 -2.21875 C 2.828125 -2.53125 2.4375 -2.609375 2.03125 -2.6875 C 1.46875 -2.796875 0.796875 -2.921875 0.796875 -3.5 C 0.796875 -3.84375 1.0625 -4.25 1.921875 -4.25 C 3 -4.25 3.0625 -3.359375 3.078125 -3.0625 C 3.078125 -2.96875 3.1875 -2.96875 3.1875 -2.96875 C 3.328125 -2.96875 3.328125 -3.015625 3.328125 -3.203125 L 3.328125 -4.203125 C 3.328125 -4.375 3.328125 -4.4375 3.21875 -4.4375 C 3.171875 -4.4375 3.140625 -4.4375 3.015625 -4.328125 C 2.984375 -4.28125 2.890625 -4.203125 2.84375 -4.171875 C 2.46875 -4.4375 2.0625 -4.4375 1.921875 -4.4375 C 0.703125 -4.4375 0.328125 -3.78125 0.328125 -3.21875 C 0.328125 -2.875 0.484375 -2.59375 0.75 -2.375 C 1.078125 -2.125 1.34375 -2.0625 2.0625 -1.921875 C 2.28125 -1.890625 3.09375 -1.71875 3.09375 -1.015625 C 3.09375 -0.5 2.75 -0.109375 1.96875 -0.109375 C 1.140625 -0.109375 0.78125 -0.671875 0.59375 -1.515625 C 0.5625 -1.640625 0.5625 -1.6875 0.453125 -1.6875 C 0.328125 -1.6875 0.328125 -1.625 0.328125 -1.4375 L 0.328125 -0.125 C 0.328125 0.046875 0.328125 0.109375 0.4375 0.109375 C 0.484375 0.109375 0.5 0.09375 0.6875 -0.09375 C 0.703125 -0.109375 0.703125 -0.125 0.890625 -0.3125 C 1.3125 0.09375 1.765625 0.109375 1.96875 0.109375 C 3.109375 0.109375 3.578125 -0.5625 3.578125 -1.265625 Z M 3.578125 -1.265625 "/>
</symbol>
<symbol overflow="visible" id="glyph2-19">
<path style="stroke:none;" d="M 2.078125 0.5 L 2.078125 -4.390625 L 0.578125 -4.28125 L 0.578125 -3.96875 C 1.34375 -3.96875 1.421875 -3.90625 1.421875 -3.40625 L 1.421875 0.515625 C 1.421875 0.96875 1.34375 1.8125 0.703125 1.8125 C 0.65625 1.8125 0.421875 1.8125 0.171875 1.6875 C 0.3125 1.640625 0.515625 1.515625 0.515625 1.234375 C 0.515625 0.984375 0.34375 0.78125 0.0625 0.78125 C -0.21875 0.78125 -0.390625 0.984375 -0.390625 1.234375 C -0.390625 1.75 0.15625 2.03125 0.71875 2.03125 C 1.46875 2.03125 2.078125 1.40625 2.078125 0.5 Z M 2.078125 -6 C 2.078125 -6.265625 1.859375 -6.515625 1.5625 -6.515625 C 1.21875 -6.515625 1.015625 -6.234375 1.015625 -6 C 1.015625 -5.71875 1.25 -5.46875 1.546875 -5.46875 C 1.890625 -5.46875 2.078125 -5.75 2.078125 -6 Z M 2.078125 -6 "/>
</symbol>
<symbol overflow="visible" id="glyph2-20">
<path style="stroke:none;" d="M 3.296875 -1.234375 L 3.296875 -1.796875 L 3.046875 -1.796875 L 3.046875 -1.25 C 3.046875 -0.515625 2.75 -0.140625 2.375 -0.140625 C 1.71875 -0.140625 1.71875 -1.046875 1.71875 -1.203125 L 1.71875 -3.96875 L 3.140625 -3.96875 L 3.140625 -4.28125 L 1.71875 -4.28125 L 1.71875 -6.109375 L 1.46875 -6.109375 C 1.453125 -5.28125 1.15625 -4.234375 0.1875 -4.1875 L 0.1875 -3.96875 L 1.03125 -3.96875 L 1.03125 -1.234375 C 1.03125 -0.015625 1.953125 0.109375 2.3125 0.109375 C 3.015625 0.109375 3.296875 -0.59375 3.296875 -1.234375 Z M 3.296875 -1.234375 "/>
</symbol>
<symbol overflow="visible" id="glyph2-21">
<path style="stroke:none;" d="M 6.453125 -1.8125 C 6.453125 -2.671875 5.640625 -3.421875 4.546875 -3.546875 C 5.5 -3.734375 6.1875 -4.359375 6.1875 -5.09375 C 6.1875 -5.96875 5.28125 -6.78125 3.984375 -6.78125 L 0.359375 -6.78125 L 0.359375 -6.46875 L 0.59375 -6.46875 C 1.359375 -6.46875 1.375 -6.359375 1.375 -6 L 1.375 -0.78125 C 1.375 -0.421875 1.359375 -0.3125 0.59375 -0.3125 L 0.359375 -0.3125 L 0.359375 0 L 4.25 0 C 5.5625 0 6.453125 -0.890625 6.453125 -1.8125 Z M 5.234375 -5.09375 C 5.234375 -4.46875 4.75 -3.625 3.640625 -3.625 L 2.203125 -3.625 L 2.203125 -6.078125 C 2.203125 -6.40625 2.21875 -6.46875 2.6875 -6.46875 L 3.921875 -6.46875 C 4.875 -6.46875 5.234375 -5.625 5.234375 -5.09375 Z M 5.46875 -1.828125 C 5.46875 -1.125 4.953125 -0.3125 3.921875 -0.3125 L 2.6875 -0.3125 C 2.21875 -0.3125 2.203125 -0.375 2.203125 -0.703125 L 2.203125 -3.40625 L 4.0625 -3.40625 C 5.046875 -3.40625 5.46875 -2.484375 5.46875 -1.828125 Z M 5.46875 -1.828125 "/>
</symbol>
<symbol overflow="visible" id="glyph2-22">
<path style="stroke:none;" d="M 5.234375 0 L 5.234375 -0.3125 C 4.53125 -0.3125 4.453125 -0.375 4.453125 -0.859375 L 4.453125 -6.890625 L 3.03125 -6.78125 L 3.03125 -6.46875 C 3.71875 -6.46875 3.796875 -6.40625 3.796875 -5.90625 L 3.796875 -3.765625 C 3.515625 -4.125 3.078125 -4.390625 2.546875 -4.390625 C 1.375 -4.390625 0.34375 -3.40625 0.34375 -2.140625 C 0.34375 -0.875 1.3125 0.109375 2.4375 0.109375 C 3.078125 0.109375 3.515625 -0.234375 3.765625 -0.546875 L 3.765625 0.109375 Z M 3.765625 -1.171875 C 3.765625 -0.984375 3.765625 -0.96875 3.65625 -0.796875 C 3.359375 -0.328125 2.921875 -0.109375 2.484375 -0.109375 C 2.046875 -0.109375 1.6875 -0.359375 1.453125 -0.75 C 1.1875 -1.15625 1.15625 -1.71875 1.15625 -2.125 C 1.15625 -2.484375 1.1875 -3.078125 1.46875 -3.53125 C 1.671875 -3.84375 2.046875 -4.171875 2.59375 -4.171875 C 2.9375 -4.171875 3.359375 -4.015625 3.65625 -3.578125 C 3.765625 -3.40625 3.765625 -3.390625 3.765625 -3.203125 Z M 3.765625 -1.171875 "/>
</symbol>
<symbol overflow="visible" id="glyph2-23">
<path style="stroke:none;" d="M 6.96875 -3.96875 L 6.96875 -4.28125 C 6.75 -4.25 6.46875 -4.25 6.25 -4.25 L 5.328125 -4.28125 L 5.328125 -3.96875 C 5.6875 -3.953125 5.90625 -3.78125 5.90625 -3.5 C 5.90625 -3.4375 5.90625 -3.40625 5.859375 -3.28125 L 4.953125 -0.75 L 3.96875 -3.515625 C 3.921875 -3.625 3.921875 -3.65625 3.921875 -3.703125 C 3.921875 -3.96875 4.3125 -3.96875 4.5 -3.96875 L 4.5 -4.28125 L 3.46875 -4.25 C 3.171875 -4.25 2.890625 -4.25 2.59375 -4.28125 L 2.59375 -3.96875 C 2.953125 -3.96875 3.109375 -3.953125 3.21875 -3.8125 C 3.265625 -3.765625 3.375 -3.46875 3.4375 -3.28125 L 2.59375 -0.875 L 1.640625 -3.515625 C 1.59375 -3.640625 1.59375 -3.65625 1.59375 -3.703125 C 1.59375 -3.96875 1.984375 -3.96875 2.1875 -3.96875 L 2.1875 -4.28125 L 1.09375 -4.25 L 0.171875 -4.28125 L 0.171875 -3.96875 C 0.671875 -3.96875 0.796875 -3.9375 0.90625 -3.625 L 2.15625 -0.109375 C 2.21875 0.03125 2.25 0.109375 2.375 0.109375 C 2.5 0.109375 2.515625 0.046875 2.5625 -0.09375 L 3.578125 -2.890625 L 4.578125 -0.078125 C 4.625 0.03125 4.65625 0.109375 4.78125 0.109375 C 4.90625 0.109375 4.9375 0.015625 4.984375 -0.078125 L 6.140625 -3.328125 C 6.3125 -3.828125 6.625 -3.953125 6.96875 -3.96875 Z M 6.96875 -3.96875 "/>
</symbol>
<symbol overflow="visible" id="glyph2-24">
<path style="stroke:none;" d="M 5.3125 0 L 5.3125 -0.3125 C 4.796875 -0.3125 4.546875 -0.3125 4.53125 -0.609375 L 4.53125 -2.5 C 4.53125 -3.359375 4.53125 -3.65625 4.234375 -4.015625 C 4.09375 -4.1875 3.765625 -4.390625 3.1875 -4.390625 C 2.34375 -4.390625 1.921875 -3.796875 1.75 -3.4375 L 1.75 -6.890625 L 0.3125 -6.78125 L 0.3125 -6.46875 C 1.015625 -6.46875 1.09375 -6.40625 1.09375 -5.90625 L 1.09375 -0.75 C 1.09375 -0.3125 0.984375 -0.3125 0.3125 -0.3125 L 0.3125 0 L 1.4375 -0.03125 L 2.546875 0 L 2.546875 -0.3125 C 1.890625 -0.3125 1.78125 -0.3125 1.78125 -0.75 L 1.78125 -2.578125 C 1.78125 -3.609375 2.484375 -4.171875 3.109375 -4.171875 C 3.734375 -4.171875 3.84375 -3.625 3.84375 -3.0625 L 3.84375 -0.75 C 3.84375 -0.3125 3.734375 -0.3125 3.078125 -0.3125 L 3.078125 0 L 4.203125 -0.03125 Z M 5.3125 0 "/>
</symbol>
<symbol overflow="visible" id="glyph2-25">
<path style="stroke:none;" d="M 6.1875 -4.9375 C 6.1875 -5.90625 5.203125 -6.78125 3.84375 -6.78125 L 0.34375 -6.78125 L 0.34375 -6.46875 L 0.578125 -6.46875 C 1.34375 -6.46875 1.375 -6.359375 1.375 -6 L 1.375 -0.78125 C 1.375 -0.421875 1.34375 -0.3125 0.578125 -0.3125 L 0.34375 -0.3125 L 0.34375 0 C 0.6875 -0.03125 1.421875 -0.03125 1.8125 -0.03125 C 2.1875 -0.03125 2.921875 -0.03125 3.28125 0 L 3.28125 -0.3125 L 3.03125 -0.3125 C 2.265625 -0.3125 2.25 -0.421875 2.25 -0.78125 L 2.25 -3.140625 L 3.921875 -3.140625 C 5.125 -3.140625 6.1875 -3.9375 6.1875 -4.9375 Z M 5.171875 -4.9375 C 5.171875 -4.46875 5.171875 -3.390625 3.59375 -3.390625 L 2.21875 -3.390625 L 2.21875 -6.078125 C 2.21875 -6.40625 2.25 -6.46875 2.703125 -6.46875 L 3.59375 -6.46875 C 5.171875 -6.46875 5.171875 -5.421875 5.171875 -4.9375 Z M 5.171875 -4.9375 "/>
</symbol>
<symbol overflow="visible" id="glyph2-26">
<path style="stroke:none;" d="M 8.71875 0 L 8.71875 -0.3125 L 8.484375 -0.3125 C 7.71875 -0.3125 7.703125 -0.421875 7.703125 -0.78125 L 7.703125 -6 C 7.703125 -6.359375 7.71875 -6.46875 8.484375 -6.46875 L 8.71875 -6.46875 L 8.71875 -6.78125 L 7.046875 -6.78125 C 6.78125 -6.78125 6.78125 -6.765625 6.71875 -6.59375 L 4.546875 -1 L 2.390625 -6.5625 C 2.296875 -6.78125 2.265625 -6.78125 2.046875 -6.78125 L 0.359375 -6.78125 L 0.359375 -6.46875 L 0.609375 -6.46875 C 1.375 -6.46875 1.390625 -6.359375 1.390625 -6 L 1.390625 -1.046875 C 1.390625 -0.78125 1.390625 -0.3125 0.359375 -0.3125 L 0.359375 0 L 1.53125 -0.03125 L 2.6875 0 L 2.6875 -0.3125 C 1.671875 -0.3125 1.671875 -0.78125 1.671875 -1.046875 L 1.671875 -6.390625 L 4.0625 -0.21875 C 4.125 -0.09375 4.171875 0 4.265625 0 C 4.375 0 4.40625 -0.078125 4.4375 -0.1875 L 6.890625 -6.46875 L 6.890625 -0.78125 C 6.890625 -0.421875 6.875 -0.3125 6.109375 -0.3125 L 5.875 -0.3125 L 5.875 0 C 6.234375 -0.03125 6.921875 -0.03125 7.296875 -0.03125 C 7.6875 -0.03125 8.359375 -0.03125 8.71875 0 Z M 8.71875 0 "/>
</symbol>
<symbol overflow="visible" id="glyph3-0"> <symbol overflow="visible" id="glyph3-0">
<path style="stroke:none;" d=""/> <path style="stroke:none;" d=""/>
</symbol> </symbol>
@ -117,198 +51,288 @@
<path style="stroke:none;" d=""/> <path style="stroke:none;" d=""/>
</symbol> </symbol>
<symbol overflow="visible" id="glyph4-1"> <symbol overflow="visible" id="glyph4-1">
<path style="stroke:none;" d="M 5.671875 -0.625 C 5.671875 -0.6875 5.671875 -0.765625 5.546875 -0.765625 C 5.453125 -0.765625 5.4375 -0.703125 5.4375 -0.625 C 5.390625 -0.234375 5.171875 -0.0625 4.953125 -0.0625 C 4.5625 -0.0625 4.5 -0.46875 4.421875 -1.09375 C 4.34375 -1.65625 4.328125 -1.765625 4.125 -1.984375 C 4.046875 -2.0625 3.859375 -2.25 3.484375 -2.359375 C 4.109375 -2.515625 4.734375 -2.921875 4.734375 -3.484375 C 4.734375 -4.171875 3.8125 -4.734375 2.734375 -4.734375 L 0.40625 -4.734375 L 0.40625 -4.484375 L 0.5625 -4.484375 C 1.109375 -4.484375 1.109375 -4.421875 1.109375 -4.171875 L 1.109375 -0.5625 C 1.109375 -0.328125 1.109375 -0.25 0.5625 -0.25 L 0.40625 -0.25 L 0.40625 0 L 1.421875 -0.03125 L 2.46875 0 L 2.46875 -0.25 L 2.296875 -0.25 C 1.765625 -0.25 1.75 -0.3125 1.75 -0.5625 L 1.75 -2.28125 L 2.671875 -2.28125 C 2.796875 -2.28125 3.15625 -2.28125 3.46875 -1.984375 C 3.703125 -1.78125 3.703125 -1.609375 3.703125 -1.140625 C 3.703125 -0.6875 3.703125 -0.40625 4.03125 -0.140625 C 4.328125 0.109375 4.734375 0.140625 4.921875 0.140625 C 5.515625 0.140625 5.671875 -0.421875 5.671875 -0.625 Z M 3.984375 -3.484375 C 3.984375 -2.703125 3.390625 -2.46875 2.65625 -2.46875 L 1.75 -2.46875 L 1.75 -4.21875 C 1.75 -4.40625 1.75 -4.453125 1.9375 -4.484375 C 1.984375 -4.484375 2.234375 -4.484375 2.375 -4.484375 C 3.03125 -4.484375 3.984375 -4.484375 3.984375 -3.484375 Z M 3.984375 -3.484375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-2">
<path style="stroke:none;" d="M 3.25 -0.828125 C 3.25 -0.859375 3.234375 -0.921875 3.125 -0.921875 C 3.03125 -0.921875 3.03125 -0.890625 3 -0.8125 C 2.78125 -0.25 2.265625 -0.15625 2.015625 -0.15625 C 1.6875 -0.15625 1.375 -0.296875 1.171875 -0.5625 C 0.90625 -0.890625 0.90625 -1.3125 0.90625 -1.578125 L 3.046875 -1.578125 C 3.203125 -1.578125 3.25 -1.578125 3.25 -1.734375 C 3.25 -2.34375 2.90625 -3.09375 1.875 -3.09375 C 0.96875 -3.09375 0.265625 -2.375 0.265625 -1.515625 C 0.265625 -0.640625 1.046875 0.0625 1.96875 0.0625 C 2.90625 0.0625 3.25 -0.6875 3.25 -0.828125 Z M 2.765625 -1.765625 L 0.90625 -1.765625 C 0.984375 -2.734375 1.609375 -2.90625 1.875 -2.90625 C 2.71875 -2.90625 2.75 -1.9375 2.765625 -1.765625 Z M 2.765625 -1.765625 "/>
</symbol>
<symbol overflow="visible" id="glyph4-3">
<path style="stroke:none;" d="M 2.765625 -4.375 C 2.765625 -4.671875 2.46875 -4.890625 2.078125 -4.890625 C 1.53125 -4.890625 0.90625 -4.5 0.90625 -3.765625 L 0.90625 -2.984375 L 0.3125 -2.984375 L 0.3125 -2.734375 L 0.90625 -2.734375 L 0.90625 -0.546875 C 0.90625 -0.25 0.84375 -0.25 0.390625 -0.25 L 0.390625 0 C 0.421875 0 0.890625 -0.03125 1.171875 -0.03125 L 2.078125 0 L 2.078125 -0.25 L 1.9375 -0.25 C 1.421875 -0.25 1.421875 -0.328125 1.421875 -0.5625 L 1.421875 -2.734375 L 2.296875 -2.734375 L 2.296875 -2.984375 L 1.40625 -2.984375 L 1.40625 -3.765625 C 1.40625 -4.390625 1.78125 -4.6875 2.078125 -4.6875 C 2.140625 -4.6875 2.203125 -4.671875 2.28125 -4.65625 C 2.171875 -4.59375 2.125 -4.484375 2.125 -4.375 C 2.125 -4.1875 2.25 -4.0625 2.4375 -4.0625 C 2.625 -4.0625 2.765625 -4.1875 2.765625 -4.375 Z M 2.765625 -4.375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-4">
<path style="stroke:none;" d="M 1.515625 -0.390625 C 1.515625 -0.640625 1.328125 -0.796875 1.125 -0.796875 C 0.875 -0.796875 0.71875 -0.609375 0.71875 -0.40625 C 0.71875 -0.15625 0.921875 0 1.109375 0 C 1.359375 0 1.515625 -0.1875 1.515625 -0.390625 Z M 1.515625 -0.390625 "/>
</symbol>
<symbol overflow="visible" id="glyph4-5">
<path style="stroke:none;" d="M 2.609375 -0.875 L 2.609375 -1.25 L 2.359375 -1.25 L 2.359375 -0.875 C 2.359375 -0.40625 2.140625 -0.15625 1.875 -0.15625 C 1.390625 -0.15625 1.390625 -0.734375 1.390625 -0.859375 L 1.390625 -2.734375 L 2.484375 -2.734375 L 2.484375 -2.984375 L 1.390625 -2.984375 L 1.390625 -4.265625 L 1.15625 -4.265625 C 1.15625 -3.640625 0.875 -2.953125 0.203125 -2.9375 L 0.203125 -2.734375 L 0.84375 -2.734375 L 0.84375 -0.875 C 0.84375 -0.09375 1.421875 0.0625 1.8125 0.0625 C 2.28125 0.0625 2.609375 -0.328125 2.609375 -0.875 Z M 2.609375 -0.875 "/>
</symbol>
<symbol overflow="visible" id="glyph4-6">
<path style="stroke:none;" d="M 2.828125 -2.609375 C 2.828125 -2.84375 2.609375 -3.0625 2.28125 -3.0625 C 1.921875 -3.0625 1.546875 -2.84375 1.34375 -2.3125 L 1.328125 -2.3125 L 1.328125 -3.0625 L 0.34375 -2.984375 L 0.34375 -2.734375 C 0.8125 -2.734375 0.859375 -2.6875 0.859375 -2.34375 L 0.859375 -0.546875 C 0.859375 -0.25 0.796875 -0.25 0.34375 -0.25 L 0.34375 0 C 0.375 0 0.84375 -0.03125 1.125 -0.03125 L 2.03125 0 L 2.03125 -0.25 L 1.890625 -0.25 C 1.375 -0.25 1.375 -0.328125 1.375 -0.5625 L 1.375 -1.578125 C 1.375 -2.171875 1.65625 -2.859375 2.3125 -2.859375 C 2.25 -2.8125 2.1875 -2.71875 2.1875 -2.609375 C 2.1875 -2.390625 2.375 -2.296875 2.5 -2.296875 C 2.671875 -2.296875 2.828125 -2.40625 2.828125 -2.609375 Z M 2.828125 -2.609375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-7">
<path style="stroke:none;" d="M 3.78125 -0.625 L 3.78125 -1 L 3.53125 -1 L 3.53125 -0.625 C 3.53125 -0.5625 3.53125 -0.234375 3.28125 -0.234375 C 3.03125 -0.234375 3.03125 -0.5625 3.03125 -0.640625 L 3.03125 -1.859375 C 3.03125 -2.234375 3.03125 -2.484375 2.703125 -2.75 C 2.421875 -2.984375 2.09375 -3.09375 1.671875 -3.09375 C 1.015625 -3.09375 0.5625 -2.84375 0.5625 -2.421875 C 0.5625 -2.203125 0.703125 -2.078125 0.890625 -2.078125 C 1.078125 -2.078125 1.21875 -2.21875 1.21875 -2.40625 C 1.21875 -2.53125 1.15625 -2.671875 0.96875 -2.71875 C 1.21875 -2.90625 1.625 -2.90625 1.671875 -2.90625 C 2.046875 -2.90625 2.484375 -2.640625 2.484375 -2.0625 L 2.484375 -1.84375 C 2.09375 -1.828125 1.640625 -1.8125 1.125 -1.625 C 0.5 -1.390625 0.3125 -1.015625 0.3125 -0.703125 C 0.3125 -0.109375 1.03125 0.0625 1.53125 0.0625 C 2.078125 0.0625 2.40625 -0.25 2.546875 -0.515625 C 2.578125 -0.234375 2.765625 0.03125 3.09375 0.03125 C 3.09375 0.03125 3.78125 0.03125 3.78125 -0.625 Z M 2.484375 -0.984375 C 2.484375 -0.3125 1.890625 -0.125 1.578125 -0.125 C 1.234375 -0.125 0.890625 -0.359375 0.890625 -0.703125 C 0.890625 -1.078125 1.234375 -1.609375 2.484375 -1.671875 Z M 2.484375 -0.984375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-8">
<path style="stroke:none;" d="M 3.25 -0.828125 C 3.25 -0.921875 3.15625 -0.921875 3.125 -0.921875 C 3.03125 -0.921875 3.03125 -0.890625 3 -0.796875 C 2.84375 -0.375 2.484375 -0.15625 2.046875 -0.15625 C 1.578125 -0.15625 0.953125 -0.5 0.953125 -1.5 C 0.953125 -2.390625 1.375 -2.875 2.03125 -2.875 C 2.109375 -2.875 2.453125 -2.875 2.703125 -2.765625 C 2.578125 -2.71875 2.5 -2.609375 2.5 -2.46875 C 2.5 -2.28125 2.640625 -2.140625 2.828125 -2.140625 C 3.015625 -2.140625 3.15625 -2.25 3.15625 -2.484375 C 3.15625 -3.09375 2.203125 -3.09375 2 -3.09375 C 0.96875 -3.09375 0.3125 -2.296875 0.3125 -1.5 C 0.3125 -0.625 1.0625 0.0625 1.96875 0.0625 C 3 0.0625 3.25 -0.75 3.25 -0.828125 Z M 3.25 -0.828125 "/>
</symbol>
<symbol overflow="visible" id="glyph4-9">
<path style="stroke:none;" d="M 3.96875 0 L 3.96875 -0.25 C 3.71875 -0.25 3.5625 -0.265625 3.359375 -0.515625 L 2.234375 -1.875 C 3.09375 -2.546875 3.328125 -2.71875 3.796875 -2.734375 L 3.796875 -2.984375 C 3.65625 -2.96875 3.46875 -2.96875 3.328125 -2.96875 C 3.046875 -2.96875 2.78125 -2.96875 2.5 -2.984375 L 2.5 -2.734375 C 2.59375 -2.71875 2.625 -2.671875 2.625 -2.609375 C 2.625 -2.5 2.484375 -2.375 2.40625 -2.3125 L 1.375 -1.515625 L 1.375 -4.8125 L 0.34375 -4.734375 L 0.34375 -4.484375 C 0.8125 -4.484375 0.859375 -4.4375 0.859375 -4.09375 L 0.859375 -0.546875 C 0.859375 -0.25 0.796875 -0.25 0.34375 -0.25 L 0.34375 0 C 0.59375 -0.015625 0.859375 -0.03125 1.109375 -0.03125 C 1.359375 -0.03125 1.625 -0.015625 1.875 0 L 1.875 -0.25 C 1.421875 -0.25 1.359375 -0.25 1.359375 -0.546875 L 1.359375 -1.203125 L 1.859375 -1.59375 L 2.609375 -0.65625 C 2.6875 -0.5625 2.78125 -0.46875 2.78125 -0.375 C 2.78125 -0.265625 2.65625 -0.25 2.578125 -0.25 L 2.578125 0 C 2.671875 0 3.15625 -0.03125 3.359375 -0.03125 C 3.5625 -0.03125 3.765625 -0.015625 3.96875 0 Z M 3.96875 0 "/>
</symbol>
<symbol overflow="visible" id="glyph4-10">
<path style="stroke:none;" d="M 1.90625 0 L 1.90625 -0.25 C 1.5 -0.25 1.421875 -0.25 1.421875 -0.546875 L 1.421875 -3.0625 L 0.40625 -2.984375 L 0.40625 -2.734375 C 0.84375 -2.734375 0.90625 -2.6875 0.90625 -2.359375 L 0.90625 -0.546875 C 0.90625 -0.25 0.84375 -0.25 0.390625 -0.25 L 0.390625 0 C 0.390625 0 0.890625 -0.03125 1.171875 -0.03125 C 1.40625 -0.03125 1.65625 -0.015625 1.90625 0 Z M 1.515625 -4.171875 C 1.515625 -4.390625 1.34375 -4.578125 1.125 -4.578125 C 0.890625 -4.578125 0.734375 -4.390625 0.734375 -4.1875 C 0.734375 -3.96875 0.90625 -3.78125 1.125 -3.78125 C 1.359375 -3.78125 1.515625 -3.96875 1.515625 -4.171875 Z M 1.515625 -4.171875 "/>
</symbol>
<symbol overflow="visible" id="glyph4-11">
<path style="stroke:none;" d="M 4.09375 0 L 4.09375 -0.25 C 3.640625 -0.25 3.578125 -0.25 3.578125 -0.546875 L 3.578125 -2.109375 C 3.578125 -2.703125 3.28125 -3.0625 2.53125 -3.0625 C 1.96875 -3.0625 1.59375 -2.75 1.40625 -2.390625 L 1.390625 -2.390625 L 1.390625 -3.0625 L 0.375 -2.984375 L 0.375 -2.734375 C 0.84375 -2.734375 0.890625 -2.6875 0.890625 -2.34375 L 0.890625 -0.546875 C 0.890625 -0.25 0.828125 -0.25 0.375 -0.25 L 0.375 0 C 0.375 0 0.875 -0.03125 1.171875 -0.03125 C 1.421875 -0.03125 1.90625 0 1.96875 0 L 1.96875 -0.25 C 1.515625 -0.25 1.4375 -0.25 1.4375 -0.546875 L 1.4375 -1.796875 C 1.4375 -2.53125 2.015625 -2.859375 2.484375 -2.859375 C 2.96875 -2.859375 3.03125 -2.484375 3.03125 -2.125 L 3.03125 -0.546875 C 3.03125 -0.25 2.953125 -0.25 2.5 -0.25 L 2.5 0 C 2.5 0 3 -0.03125 3.296875 -0.03125 C 3.546875 -0.03125 4.03125 0 4.09375 0 Z M 4.09375 0 "/>
</symbol>
<symbol overflow="visible" id="glyph4-12">
<path style="stroke:none;" d="M 3.78125 -2.78125 C 3.78125 -2.9375 3.65625 -3.125 3.375 -3.125 C 3.265625 -3.125 2.890625 -3.109375 2.5625 -2.8125 C 2.359375 -2.96875 2.0625 -3.0625 1.765625 -3.0625 C 1.046875 -3.0625 0.53125 -2.578125 0.53125 -2.046875 C 0.53125 -1.765625 0.671875 -1.515625 0.859375 -1.34375 C 0.8125 -1.28125 0.65625 -1.046875 0.65625 -0.78125 C 0.65625 -0.6875 0.671875 -0.359375 0.9375 -0.15625 C 0.625 -0.0625 0.265625 0.171875 0.265625 0.53125 C 0.265625 1.046875 1.03125 1.421875 1.96875 1.421875 C 2.84375 1.421875 3.671875 1.078125 3.671875 0.515625 C 3.671875 0.3125 3.59375 -0.0625 3.203125 -0.265625 C 2.796875 -0.484375 2.390625 -0.484375 1.71875 -0.484375 C 1.5625 -0.484375 1.3125 -0.484375 1.25 -0.5 C 1.03125 -0.546875 0.90625 -0.75 0.90625 -0.953125 C 0.90625 -1.125 0.953125 -1.171875 1 -1.234375 C 1.109375 -1.171875 1.359375 -1.015625 1.75 -1.015625 C 2.46875 -1.015625 2.984375 -1.5 2.984375 -2.046875 C 2.984375 -2.3125 2.859375 -2.53125 2.703125 -2.703125 C 3.015625 -2.921875 3.28125 -2.9375 3.40625 -2.9375 C 3.375 -2.90625 3.34375 -2.875 3.34375 -2.765625 C 3.34375 -2.625 3.4375 -2.546875 3.5625 -2.546875 C 3.65625 -2.546875 3.78125 -2.609375 3.78125 -2.78125 Z M 2.4375 -2.046875 C 2.4375 -1.921875 2.4375 -1.65625 2.296875 -1.46875 C 2.203125 -1.359375 2.015625 -1.234375 1.765625 -1.234375 C 1.078125 -1.234375 1.078125 -1.890625 1.078125 -2.046875 C 1.078125 -2.15625 1.078125 -2.421875 1.21875 -2.609375 C 1.3125 -2.71875 1.5 -2.84375 1.75 -2.84375 C 2.4375 -2.84375 2.4375 -2.1875 2.4375 -2.046875 Z M 3.25 0.53125 C 3.25 0.890625 2.703125 1.21875 1.96875 1.21875 C 1.234375 1.21875 0.6875 0.890625 0.6875 0.53125 C 0.6875 0.28125 0.921875 -0.015625 1.359375 -0.015625 L 1.765625 -0.015625 C 2.375 -0.015625 3.25 -0.015625 3.25 0.53125 Z M 3.25 0.53125 "/>
</symbol>
<symbol overflow="visible" id="glyph4-13">
<path style="stroke:none;" d="M 5.46875 -2.328125 C 5.46875 -3.65625 4.421875 -4.734375 3.140625 -4.734375 L 0.40625 -4.734375 L 0.40625 -4.484375 L 0.5625 -4.484375 C 1.109375 -4.484375 1.109375 -4.421875 1.109375 -4.171875 L 1.109375 -0.5625 C 1.109375 -0.328125 1.109375 -0.25 0.5625 -0.25 L 0.40625 -0.25 L 0.40625 0 L 3.140625 0 C 4.40625 0 5.46875 -1.03125 5.46875 -2.328125 Z M 4.765625 -2.328125 C 4.765625 -1.53125 4.5625 -1.109375 4.3125 -0.8125 C 4 -0.46875 3.5 -0.25 2.953125 -0.25 L 2.078125 -0.25 C 1.75 -0.25 1.75 -0.3125 1.75 -0.515625 L 1.75 -4.21875 C 1.75 -4.4375 1.75 -4.484375 2.078125 -4.484375 L 2.9375 -4.484375 C 3.53125 -4.484375 4.046875 -4.25 4.359375 -3.84375 C 4.640625 -3.46875 4.765625 -2.9375 4.765625 -2.328125 Z M 4.765625 -2.328125 "/>
</symbol>
<symbol overflow="visible" id="glyph4-14">
<path style="stroke:none;" d="M 2.828125 -0.90625 C 2.828125 -1.171875 2.703125 -1.375 2.53125 -1.546875 C 2.265625 -1.796875 1.9375 -1.84375 1.703125 -1.890625 C 1.140625 -1.984375 0.6875 -2.0625 0.6875 -2.4375 C 0.6875 -2.65625 0.875 -2.921875 1.546875 -2.921875 C 2.34375 -2.921875 2.375 -2.359375 2.390625 -2.171875 C 2.40625 -2.09375 2.484375 -2.09375 2.515625 -2.09375 C 2.625 -2.09375 2.625 -2.140625 2.625 -2.265625 L 2.625 -2.90625 C 2.625 -3.03125 2.625 -3.09375 2.53125 -3.09375 C 2.5 -3.09375 2.484375 -3.09375 2.390625 -3.015625 C 2.375 -3 2.3125 -2.9375 2.265625 -2.90625 C 2.0625 -3.046875 1.796875 -3.09375 1.546875 -3.09375 C 0.546875 -3.09375 0.3125 -2.578125 0.3125 -2.234375 C 0.3125 -2 0.40625 -1.828125 0.578125 -1.6875 C 0.84375 -1.453125 1.109375 -1.40625 1.53125 -1.34375 C 1.875 -1.28125 2.4375 -1.171875 2.4375 -0.71875 C 2.4375 -0.4375 2.25 -0.125 1.59375 -0.125 C 0.921875 -0.125 0.6875 -0.5625 0.5625 -1.03125 C 0.53125 -1.125 0.53125 -1.15625 0.4375 -1.15625 C 0.3125 -1.15625 0.3125 -1.109375 0.3125 -0.96875 L 0.3125 -0.109375 C 0.3125 0 0.3125 0.0625 0.40625 0.0625 C 0.46875 0.0625 0.609375 -0.078125 0.75 -0.234375 C 1.046875 0.0625 1.421875 0.0625 1.59375 0.0625 C 2.484375 0.0625 2.828125 -0.421875 2.828125 -0.90625 Z M 2.828125 -0.90625 "/>
</symbol>
<symbol overflow="visible" id="glyph4-15">
<path style="stroke:none;" d="M 1.6875 0.3125 L 1.6875 -3.0625 L 0.59375 -2.984375 L 0.59375 -2.734375 C 1.109375 -2.734375 1.171875 -2.6875 1.171875 -2.34375 L 1.171875 0.328125 C 1.171875 0.59375 1.109375 1.21875 0.640625 1.21875 C 0.625 1.21875 0.453125 1.21875 0.296875 1.15625 C 0.3125 1.140625 0.46875 1.0625 0.46875 0.859375 C 0.46875 0.671875 0.328125 0.53125 0.140625 0.53125 C -0.0625 0.53125 -0.1875 0.671875 -0.1875 0.859375 C -0.1875 1.234375 0.234375 1.421875 0.65625 1.421875 C 1.21875 1.421875 1.6875 0.984375 1.6875 0.3125 Z M 1.6875 -4.171875 C 1.6875 -4.390625 1.515625 -4.578125 1.296875 -4.578125 C 1.046875 -4.578125 0.890625 -4.390625 0.890625 -4.1875 C 0.890625 -3.96875 1.0625 -3.78125 1.296875 -3.78125 C 1.53125 -3.78125 1.6875 -3.96875 1.6875 -4.171875 Z M 1.6875 -4.171875 "/>
</symbol>
<symbol overflow="visible" id="glyph4-16">
<path style="stroke:none;" d="M 3.671875 -1.484375 C 3.671875 -2.34375 2.921875 -3.09375 1.96875 -3.09375 C 1.015625 -3.09375 0.265625 -2.34375 0.265625 -1.484375 C 0.265625 -0.625 1.03125 0.0625 1.96875 0.0625 C 2.90625 0.0625 3.671875 -0.625 3.671875 -1.484375 Z M 3.03125 -1.546875 C 3.03125 -1.203125 3.015625 -0.84375 2.8125 -0.5625 C 2.625 -0.296875 2.3125 -0.15625 1.96875 -0.15625 C 1.71875 -0.15625 1.34375 -0.234375 1.109375 -0.578125 C 0.921875 -0.859375 0.90625 -1.21875 0.90625 -1.546875 C 0.90625 -1.84375 0.90625 -2.25 1.15625 -2.546875 C 1.328125 -2.75 1.609375 -2.90625 1.96875 -2.90625 C 2.375 -2.90625 2.671875 -2.703125 2.828125 -2.484375 C 3.015625 -2.21875 3.03125 -1.875 3.03125 -1.546875 Z M 3.03125 -1.546875 "/>
</symbol>
<symbol overflow="visible" id="glyph4-17">
<path style="stroke:none;" d="M 5.453125 -4.484375 L 5.453125 -4.734375 C 5.171875 -4.71875 4.890625 -4.703125 4.609375 -4.703125 C 4.328125 -4.703125 4.046875 -4.71875 3.765625 -4.734375 L 3.765625 -4.484375 C 4.46875 -4.484375 4.46875 -4.171875 4.46875 -3.984375 L 4.46875 -1.046875 L 1.8125 -4.640625 C 1.734375 -4.734375 1.734375 -4.734375 1.59375 -4.734375 L 0.390625 -4.734375 L 0.390625 -4.484375 L 0.59375 -4.484375 C 0.890625 -4.484375 1.0625 -4.453125 1.109375 -4.453125 L 1.109375 -0.75 C 1.109375 -0.5625 1.109375 -0.25 0.390625 -0.25 L 0.390625 0 C 0.671875 -0.015625 0.953125 -0.03125 1.234375 -0.03125 C 1.515625 -0.03125 1.796875 -0.015625 2.078125 0 L 2.078125 -0.25 C 1.359375 -0.25 1.359375 -0.5625 1.359375 -0.75 L 1.359375 -4.25 L 4.453125 -0.109375 C 4.515625 0 4.515625 0 4.609375 0 C 4.734375 0 4.734375 -0.0625 4.734375 -0.1875 L 4.734375 -3.984375 C 4.734375 -4.171875 4.734375 -4.484375 5.453125 -4.484375 Z M 5.453125 -4.484375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-18">
<path style="stroke:none;" d="M 4.09375 0 L 4.09375 -0.25 C 3.625 -0.25 3.578125 -0.296875 3.578125 -0.640625 L 3.578125 -3.0625 L 2.5 -2.984375 L 2.5 -2.734375 C 2.96875 -2.734375 3.03125 -2.6875 3.03125 -2.34375 L 3.03125 -1.15625 C 3.03125 -0.546875 2.625 -0.125 2.109375 -0.125 C 1.46875 -0.125 1.4375 -0.421875 1.4375 -0.78125 L 1.4375 -3.0625 L 0.375 -2.984375 L 0.375 -2.734375 C 0.890625 -2.734375 0.890625 -2.71875 0.890625 -2.09375 L 0.890625 -1.046875 C 0.890625 -0.578125 0.890625 0.0625 2.046875 0.0625 C 2.203125 0.0625 2.71875 0.0625 3.046875 -0.515625 L 3.046875 0.0625 Z M 4.09375 0 "/>
</symbol>
<symbol overflow="visible" id="glyph4-19">
<path style="stroke:none;" d="M 5.046875 -1.265625 C 5.046875 -1.875 4.4375 -2.390625 3.59375 -2.484375 C 4.28125 -2.609375 4.84375 -3.03125 4.84375 -3.5625 C 4.84375 -4.1875 4.109375 -4.734375 3.15625 -4.734375 L 0.421875 -4.734375 L 0.421875 -4.484375 L 0.578125 -4.484375 C 1.109375 -4.484375 1.125 -4.421875 1.125 -4.171875 L 1.125 -0.5625 C 1.125 -0.328125 1.109375 -0.25 0.578125 -0.25 L 0.421875 -0.25 L 0.421875 0 L 3.359375 0 C 4.34375 0 5.046875 -0.609375 5.046875 -1.265625 Z M 4.15625 -3.5625 C 4.15625 -3.0625 3.6875 -2.5625 2.890625 -2.5625 L 1.734375 -2.5625 L 1.734375 -4.21875 C 1.734375 -4.4375 1.75 -4.484375 2.078125 -4.484375 L 3.09375 -4.484375 C 3.78125 -4.484375 4.15625 -4 4.15625 -3.5625 Z M 4.34375 -1.28125 C 4.34375 -0.765625 3.875 -0.25 3.109375 -0.25 L 2.078125 -0.25 C 1.75 -0.25 1.734375 -0.3125 1.734375 -0.515625 L 1.734375 -2.359375 L 3.21875 -2.359375 C 3.953125 -2.359375 4.34375 -1.765625 4.34375 -1.28125 Z M 4.34375 -1.28125 "/>
</symbol>
<symbol overflow="visible" id="glyph4-20">
<path style="stroke:none;" d="M 4.03125 0 L 4.03125 -0.25 C 3.5625 -0.25 3.515625 -0.296875 3.515625 -0.640625 L 3.515625 -4.8125 L 2.46875 -4.734375 L 2.46875 -4.484375 C 2.9375 -4.484375 2.984375 -4.4375 2.984375 -4.09375 L 2.984375 -2.65625 C 2.734375 -2.90625 2.40625 -3.0625 2.015625 -3.0625 C 1.09375 -3.0625 0.3125 -2.359375 0.3125 -1.484375 C 0.3125 -0.625 1.046875 0.0625 1.9375 0.0625 C 2.5 0.0625 2.84375 -0.234375 2.96875 -0.359375 L 2.96875 0.0625 Z M 2.96875 -0.734375 C 2.78125 -0.40625 2.421875 -0.125 1.984375 -0.125 C 1.59375 -0.125 1.3125 -0.359375 1.171875 -0.5625 C 1.03125 -0.765625 0.953125 -1.046875 0.953125 -1.484375 C 0.953125 -1.640625 0.953125 -2.171875 1.234375 -2.484375 C 1.515625 -2.796875 1.859375 -2.859375 2.046875 -2.859375 C 2.390625 -2.859375 2.6875 -2.71875 2.875 -2.46875 C 2.96875 -2.359375 2.96875 -2.34375 2.96875 -2.21875 Z M 2.96875 -0.734375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-21">
<path style="stroke:none;" d="M 5.4375 -2.734375 L 5.4375 -2.984375 C 5.25 -2.96875 5.140625 -2.96875 4.9375 -2.96875 C 4.734375 -2.96875 4.46875 -2.96875 4.265625 -2.984375 L 4.265625 -2.734375 C 4.5 -2.734375 4.625 -2.609375 4.625 -2.4375 C 4.625 -2.375 4.625 -2.359375 4.578125 -2.265625 L 3.90625 -0.546875 L 3.15625 -2.4375 C 3.140625 -2.46875 3.125 -2.53125 3.125 -2.5625 C 3.125 -2.71875 3.296875 -2.734375 3.5 -2.734375 L 3.5 -2.984375 C 3.25 -2.96875 3 -2.96875 2.75 -2.96875 C 2.546875 -2.96875 2.34375 -2.96875 2.140625 -2.984375 L 2.140625 -2.734375 C 2.296875 -2.734375 2.4375 -2.734375 2.53125 -2.6875 C 2.625 -2.609375 2.6875 -2.375 2.6875 -2.375 C 2.6875 -2.375 2.671875 -2.328125 2.65625 -2.296875 L 2.015625 -0.640625 L 1.3125 -2.4375 C 1.265625 -2.53125 1.265625 -2.546875 1.265625 -2.5625 C 1.265625 -2.734375 1.515625 -2.734375 1.640625 -2.734375 L 1.640625 -2.984375 C 1.640625 -2.984375 1.140625 -2.96875 0.859375 -2.96875 C 0.640625 -2.96875 0.421875 -2.96875 0.203125 -2.984375 L 0.203125 -2.734375 C 0.484375 -2.734375 0.625 -2.734375 0.703125 -2.546875 L 1.671875 -0.09375 C 1.71875 0.015625 1.734375 0.0625 1.859375 0.0625 C 1.984375 0.0625 2 0.015625 2.046875 -0.078125 L 2.828125 -2.0625 L 3.59375 -0.09375 C 3.640625 0 3.65625 0.0625 3.78125 0.0625 C 3.90625 0.0625 3.9375 0.015625 3.96875 -0.09375 L 4.859375 -2.3125 C 5 -2.65625 5.21875 -2.734375 5.4375 -2.734375 Z M 5.4375 -2.734375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-22">
<path style="stroke:none;" d="M 4.09375 0 L 4.09375 -0.25 C 3.640625 -0.25 3.578125 -0.25 3.578125 -0.546875 L 3.578125 -2.109375 C 3.578125 -2.703125 3.28125 -3.0625 2.53125 -3.0625 C 1.921875 -3.0625 1.578125 -2.6875 1.421875 -2.421875 L 1.421875 -4.8125 L 0.375 -4.734375 L 0.375 -4.484375 C 0.84375 -4.484375 0.890625 -4.4375 0.890625 -4.09375 L 0.890625 -0.546875 C 0.890625 -0.25 0.828125 -0.25 0.375 -0.25 L 0.375 0 C 0.375 0 0.875 -0.03125 1.171875 -0.03125 C 1.421875 -0.03125 1.90625 0 1.96875 0 L 1.96875 -0.25 C 1.515625 -0.25 1.4375 -0.25 1.4375 -0.546875 L 1.4375 -1.796875 C 1.4375 -2.53125 2.015625 -2.859375 2.484375 -2.859375 C 2.96875 -2.859375 3.03125 -2.484375 3.03125 -2.125 L 3.03125 -0.546875 C 3.03125 -0.25 2.953125 -0.25 2.5 -0.25 L 2.5 0 C 2.5 0 3 -0.03125 3.296875 -0.03125 C 3.546875 -0.03125 4.03125 0 4.09375 0 Z M 4.09375 0 "/>
</symbol>
<symbol overflow="visible" id="glyph4-23">
<path style="stroke:none;" d="M 4.828125 -3.4375 C 4.828125 -4.125 4.0625 -4.734375 3.03125 -4.734375 L 0.40625 -4.734375 L 0.40625 -4.484375 L 0.5625 -4.484375 C 1.109375 -4.484375 1.109375 -4.421875 1.109375 -4.171875 L 1.109375 -0.5625 C 1.109375 -0.328125 1.109375 -0.25 0.5625 -0.25 L 0.40625 -0.25 L 0.40625 0 L 1.4375 -0.03125 L 2.484375 0 L 2.484375 -0.25 L 2.328125 -0.25 C 1.796875 -0.25 1.78125 -0.3125 1.78125 -0.5625 L 1.78125 -2.15625 L 3.03125 -2.15625 C 4.046875 -2.15625 4.828125 -2.734375 4.828125 -3.4375 Z M 4.09375 -3.4375 C 4.09375 -3.125 4.09375 -2.375 2.859375 -2.375 L 1.75 -2.375 L 1.75 -4.21875 C 1.75 -4.4375 1.75 -4.484375 2.078125 -4.484375 L 2.859375 -4.484375 C 4.03125 -4.484375 4.09375 -3.84375 4.09375 -3.4375 Z M 4.09375 -3.4375 "/>
</symbol>
<symbol overflow="visible" id="glyph4-24">
<path style="stroke:none;" d="M 6.6875 0 L 6.6875 -0.25 L 6.53125 -0.25 C 6 -0.25 5.984375 -0.3125 5.984375 -0.5625 L 5.984375 -4.171875 C 5.984375 -4.40625 6 -4.484375 6.53125 -4.484375 L 6.6875 -4.484375 L 6.6875 -4.734375 L 5.484375 -4.734375 C 5.34375 -4.734375 5.28125 -4.734375 5.234375 -4.59375 L 3.5625 -0.671875 L 1.90625 -4.578125 C 1.84375 -4.734375 1.796875 -4.734375 1.640625 -4.734375 L 0.4375 -4.734375 L 0.4375 -4.484375 L 0.59375 -4.484375 C 1.125 -4.484375 1.140625 -4.421875 1.140625 -4.171875 L 1.140625 -0.75 C 1.140625 -0.5625 1.140625 -0.25 0.4375 -0.25 L 0.4375 0 C 0.71875 -0.015625 0.984375 -0.03125 1.28125 -0.03125 C 1.5625 -0.03125 1.84375 -0.015625 2.125 0 L 2.125 -0.25 C 1.40625 -0.25 1.40625 -0.5625 1.40625 -0.75 L 1.40625 -4.40625 L 1.421875 -4.40625 L 3.21875 -0.15625 C 3.25 -0.078125 3.28125 0 3.390625 0 C 3.4375 0 3.5 -0.015625 3.5625 -0.140625 L 5.390625 -4.484375 L 5.390625 -0.5625 C 5.390625 -0.328125 5.390625 -0.25 4.84375 -0.25 L 4.6875 -0.25 L 4.6875 0 L 5.6875 -0.03125 Z M 6.6875 0 "/>
</symbol>
<symbol overflow="visible" id="glyph5-0">
<path style="stroke:none;" d=""/>
</symbol>
<symbol overflow="visible" id="glyph5-1">
<path style="stroke:none;" d="M 3.4375 -0.71875 C 3.4375 -0.75 3.375 -0.828125 3.3125 -0.828125 C 3.28125 -0.828125 3.265625 -0.8125 3.203125 -0.765625 C 2.65625 -0.125 1.859375 -0.125 1.734375 -0.125 C 1.234375 -0.125 1 -0.46875 1 -0.890625 C 1 -1.09375 1.109375 -1.859375 1.46875 -2.328125 C 1.734375 -2.671875 2.09375 -2.859375 2.4375 -2.859375 C 2.53125 -2.859375 2.859375 -2.84375 3.03125 -2.65625 C 2.78125 -2.609375 2.6875 -2.421875 2.6875 -2.265625 C 2.6875 -2.078125 2.828125 -2.015625 2.953125 -2.015625 C 3.109375 -2.015625 3.34375 -2.125 3.34375 -2.453125 C 3.34375 -2.921875 2.8125 -3.0625 2.4375 -3.0625 C 1.390625 -3.0625 0.4375 -2.109375 0.4375 -1.140625 C 0.4375 -0.546875 0.84375 0.0625 1.71875 0.0625 C 2.890625 0.0625 3.4375 -0.625 3.4375 -0.71875 Z M 3.4375 -0.71875 "/> <path style="stroke:none;" d="M 3.4375 -0.71875 C 3.4375 -0.75 3.375 -0.828125 3.3125 -0.828125 C 3.28125 -0.828125 3.265625 -0.8125 3.203125 -0.765625 C 2.65625 -0.125 1.859375 -0.125 1.734375 -0.125 C 1.234375 -0.125 1 -0.46875 1 -0.890625 C 1 -1.09375 1.109375 -1.859375 1.46875 -2.328125 C 1.734375 -2.671875 2.09375 -2.859375 2.4375 -2.859375 C 2.53125 -2.859375 2.859375 -2.84375 3.03125 -2.65625 C 2.78125 -2.609375 2.6875 -2.421875 2.6875 -2.265625 C 2.6875 -2.078125 2.828125 -2.015625 2.953125 -2.015625 C 3.109375 -2.015625 3.34375 -2.125 3.34375 -2.453125 C 3.34375 -2.921875 2.8125 -3.0625 2.4375 -3.0625 C 1.390625 -3.0625 0.4375 -2.109375 0.4375 -1.140625 C 0.4375 -0.546875 0.84375 0.0625 1.71875 0.0625 C 2.890625 0.0625 3.4375 -0.625 3.4375 -0.71875 Z M 3.4375 -0.71875 "/>
</symbol> </symbol>
</g> </g>
<clipPath id="clip1"> <clipPath id="clip1">
<path d="M 238 105 L 265.34375 105 L 265.34375 138 L 238 138 Z M 238 105 "/> <path d="M 238 105 L 265.675781 105 L 265.675781 138 L 238 138 Z M 238 105 "/>
</clipPath> </clipPath>
<clipPath id="clip2"> <clipPath id="clip2">
<path d="M 238 35 L 265.34375 35 L 265.34375 67 L 238 67 Z M 238 35 "/> <path d="M 238 35 L 265.675781 35 L 265.675781 67 L 238 67 Z M 238 35 "/>
</clipPath> </clipPath>
<clipPath id="clip3"> <clipPath id="clip3">
<path d="M 41 1 L 265.34375 1 L 265.34375 101 L 41 101 Z M 41 1 "/> <path d="M 40 1 L 265.675781 1 L 265.675781 101 L 40 101 Z M 40 1 "/>
</clipPath> </clipPath>
<clipPath id="clip4"> <clipPath id="clip4">
<path d="M 41 128 L 265.34375 128 L 265.34375 173.421875 L 41 173.421875 Z M 41 128 "/> <path d="M 40 128 L 265.675781 128 L 265.675781 173.421875 L 40 173.421875 Z M 40 128 "/>
</clipPath> </clipPath>
</defs> </defs>
<g id="surface1"> <g id="surface1">
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -8.505271 -14.175013 L 213.635524 -14.175013 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -8.503774 -14.175013 L 213.637021 -14.175013 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 256.867188 121.636719 L 252.441406 119.960938 L 253.914062 121.636719 L 252.441406 123.308594 Z M 256.867188 121.636719 "/> <path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 256.644531 121.636719 L 252.222656 119.960938 L 253.691406 121.636719 L 252.222656 123.308594 Z M 256.644531 121.636719 "/>
<g clip-path="url(#clip1)" clip-rule="nonzero"> <g clip-path="url(#clip1)" clip-rule="nonzero">
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.054913 -0.00162309 L 1.609037 1.681767 L 3.08838 -0.00162309 L 1.609037 -1.681089 Z M 6.054913 -0.00162309 " transform="matrix(0.99548,0,0,-0.99548,250.839642,121.635103)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.052486 -0.00162309 L 1.610533 1.681767 L 3.085952 -0.00162309 L 1.610533 -1.681089 Z M 6.052486 -0.00162309 " transform="matrix(0.99548,0,0,-0.99548,250.619402,121.635103)"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="255.010425" y="117.833972"/> <use xlink:href="#glyph0-1" x="254.790185" y="117.833972"/>
</g> </g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00193188 -4.631878 L 0.00193188 -65.198608 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.000495339 -4.631878 L -0.000495339 -65.198608 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.053947 -0.00193188 L 1.60807 1.681458 L 3.087413 -0.00193188 L 1.60807 -1.681398 Z M 6.053947 -0.00193188 " transform="matrix(0,-0.99548,-0.99548,0,40.994171,114.964083)"/> <path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.053947 0.000495339 L 1.60807 1.683886 L 3.087413 0.000495339 L 1.60807 -1.682895 Z M 6.053947 0.000495339 " transform="matrix(0,-0.99548,-0.99548,0,40.773931,114.964083)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph1-1" x="4.386389" y="110.005517"/> <use xlink:href="#glyph1-1" x="4.166149" y="110.005517"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-2" x="11.548868" y="110.005517"/> <use xlink:href="#glyph0-2" x="11.328628" y="110.005517"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-1" x="18.298222" y="110.005517"/> <use xlink:href="#glyph2-1" x="18.077982" y="110.005517"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-3" x="22.154712" y="110.005517"/> <use xlink:href="#glyph0-3" x="21.934472" y="110.005517"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="26.804068" y="110.005517"/> <use xlink:href="#glyph0-1" x="26.583828" y="110.005517"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-2" x="33.335943" y="110.005517"/> <use xlink:href="#glyph2-2" x="33.115703" y="110.005517"/>
</g> </g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -8.505271 56.692182 L 213.635524 56.692182 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -8.503774 56.692182 L 213.637021 56.692182 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 256.867188 51.089844 L 252.441406 49.414062 L 253.914062 51.089844 L 252.441406 52.765625 Z M 256.867188 51.089844 "/> <path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 256.644531 51.089844 L 252.222656 49.414062 L 253.691406 51.089844 L 252.222656 52.765625 Z M 256.644531 51.089844 "/>
<g clip-path="url(#clip2)" clip-rule="nonzero"> <g clip-path="url(#clip2)" clip-rule="nonzero">
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.054913 -0.00143837 L 1.609037 1.681952 L 3.08838 -0.00143837 L 1.609037 -1.684829 Z M 6.054913 -0.00143837 " transform="matrix(0.99548,0,0,-0.99548,250.839642,51.088412)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.052486 -0.00143837 L 1.610533 1.681952 L 3.085952 -0.00143837 L 1.610533 -1.684829 Z M 6.052486 -0.00143837 " transform="matrix(0.99548,0,0,-0.99548,250.619402,51.088412)"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="255.010425" y="47.287291"/> <use xlink:href="#glyph0-1" x="254.790185" y="47.287291"/>
</g> </g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00193188 14.171865 L 0.00193188 94.578271 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.000495339 14.171865 L -0.000495339 94.578271 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.054199 -0.00193188 L 1.608323 1.681458 L 3.087666 -0.00193188 L 1.608323 -1.681398 Z M 6.054199 -0.00193188 " transform="matrix(0,-0.99548,-0.99548,0,40.994171,16.198709)"/> <path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.054199 0.000495339 L 1.608323 1.683886 L 3.087666 0.000495339 L 1.608323 -1.682895 Z M 6.054199 0.000495339 " transform="matrix(0,-0.99548,-0.99548,0,40.773931,16.198709)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-1" x="6.038886" y="11.24096"/> <use xlink:href="#glyph3-1" x="5.818646" y="11.24096"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-2" x="8.793379" y="11.24096"/> <use xlink:href="#glyph0-2" x="8.573139" y="11.24096"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-1" x="15.542733" y="11.24096"/> <use xlink:href="#glyph2-1" x="15.322493" y="11.24096"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-3" x="19.400218" y="11.24096"/> <use xlink:href="#glyph0-3" x="19.179978" y="11.24096"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="24.049575" y="11.24096"/> <use xlink:href="#glyph0-1" x="23.829335" y="11.24096"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-2" x="30.58145" y="11.24096"/> <use xlink:href="#glyph2-2" x="30.36121" y="11.24096"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-1" x="34.437939" y="11.24096"/> <use xlink:href="#glyph3-1" x="34.217699" y="11.24096"/>
</g> </g>
<g clip-path="url(#clip3)" clip-rule="nonzero"> <g clip-path="url(#clip3)" clip-rule="nonzero">
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.171447 92.125779 L 56.691764 70.865621 L 170.079275 42.518743 L 212.599592 21.258584 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.172944 92.125779 L 56.69326 70.865621 L 170.080772 42.518743 L 212.601089 21.258584 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-2" x="69.930783" y="21.770152"/> <use xlink:href="#glyph3-2" x="69.710543" y="21.770152"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-3" x="77.644758" y="21.770152"/> <use xlink:href="#glyph2-3" x="77.424518" y="21.770152"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-2" x="147.531436" y="46.461043"/> <use xlink:href="#glyph3-2" x="147.311196" y="46.461043"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-4" x="155.24541" y="46.461043"/> <use xlink:href="#glyph2-4" x="155.02517" y="46.461043"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-2" x="214.99412" y="85.827299"/> <use xlink:href="#glyph3-2" x="214.77388" y="85.827299"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-3" x="222.708094" y="85.827299"/> <use xlink:href="#glyph2-3" x="222.487854" y="85.827299"/>
</g> </g>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,50%,50%);fill-opacity:1;" d="M 55.101562 21.457031 L 97.429688 42.621094 L 55.101562 42.621094 Z M 55.101562 21.457031 "/> <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,50%,50%);fill-opacity:1;" d="M 54.882812 21.457031 L 97.210938 42.621094 L 54.882812 42.621094 Z M 54.882812 21.457031 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,50%,50%);fill-opacity:1;" d="M 210.304688 59.554688 L 252.632812 80.71875 L 252.632812 59.554688 Z M 210.304688 59.554688 "/> <path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,50%,50%);fill-opacity:1;" d="M 210.085938 59.554688 L 252.414062 80.71875 L 252.414062 59.554688 Z M 210.085938 59.554688 "/>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 35.431605 60.565156 L 35.431605 42.518743 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 35.433102 60.565156 L 35.433102 42.518743 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.053251 0.00189474 L 1.607374 1.681361 L 3.086717 0.00189474 L 1.607374 -1.681495 Z M 6.053251 0.00189474 " transform="matrix(0,-0.99548,-0.99548,0,76.267511,50.061047)"/> <path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.053251 0.000397979 L 1.607374 1.683788 L 3.086717 0.000397979 L 1.607374 -1.682992 Z M 6.053251 0.000397979 " transform="matrix(0,-0.99548,-0.99548,0,76.047271,50.061047)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-5" x="55.384829" y="75.831684"/> <use xlink:href="#glyph4-1" x="53.18458" y="73.781991"/>
<use xlink:href="#glyph2-6" x="62.685152" y="75.831684"/> <use xlink:href="#glyph4-2" x="58.942505" y="73.781991"/>
<use xlink:href="#glyph2-7" x="67.093511" y="75.831684"/> <use xlink:href="#glyph4-3" x="62.468489" y="73.781991"/>
<use xlink:href="#glyph2-6" x="70.124321" y="75.831684"/> <use xlink:href="#glyph4-4" x="64.927444" y="73.781991"/>
<use xlink:href="#glyph2-8" x="74.53268" y="75.831684"/>
<use xlink:href="#glyph2-6" x="78.417392" y="75.831684"/>
<use xlink:href="#glyph2-9" x="82.825751" y="75.831684"/>
<use xlink:href="#glyph2-10" x="88.335953" y="75.831684"/>
<use xlink:href="#glyph2-6" x="92.744312" y="75.831684"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-11" x="57.382758" y="87.732648"/> <use xlink:href="#glyph4-5" x="70.699254" y="73.781991"/>
<use xlink:href="#glyph4-6" x="73.798287" y="73.781991"/>
<use xlink:href="#glyph4-7" x="76.89732" y="73.781991"/>
<use xlink:href="#glyph4-8" x="80.850254" y="73.781991"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-8" x="63.722068" y="87.732648"/> <use xlink:href="#glyph4-9" x="84.161026" y="73.781991"/>
<use xlink:href="#glyph2-12" x="67.60678" y="87.732648"/> <use xlink:href="#glyph4-10" x="88.327782" y="73.781991"/>
<use xlink:href="#glyph2-10" x="72.565564" y="87.732648"/> <use xlink:href="#glyph4-11" x="90.572914" y="73.781991"/>
<use xlink:href="#glyph4-12" x="94.953492" y="73.781991"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-13" x="76.696232" y="87.732648"/> <use xlink:href="#glyph4-13" x="51.025384" y="85.682955"/>
<use xlink:href="#glyph2-14" x="81.930725" y="87.732648"/> <use xlink:href="#glyph4-10" x="56.996437" y="85.682955"/>
<use xlink:href="#glyph2-9" x="84.685825" y="87.732648"/> <use xlink:href="#glyph4-14" x="59.24157" y="85.682955"/>
<use xlink:href="#glyph2-15" x="90.196027" y="87.732648"/> <use xlink:href="#glyph4-5" x="62.383645" y="85.682955"/>
</g> <use xlink:href="#glyph4-4" x="65.482678" y="85.682955"/>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 191.339434 52.823131 L 191.339434 70.865621 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.052174 -0.00152636 L 1.610221 1.681864 L 3.08564 -0.00152636 L 1.610221 -1.684917 Z M 6.052174 -0.00152636 " transform="matrix(0,0.99548,0.99548,0,231.470269,52.115807)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-16" x="219.732605" y="19.349145"/>
<use xlink:href="#glyph2-17" x="227.170781" y="19.349145"/>
<use xlink:href="#glyph2-14" x="232.129566" y="19.349145"/>
<use xlink:href="#glyph2-18" x="234.884667" y="19.349145"/>
<use xlink:href="#glyph2-6" x="238.797148" y="19.349145"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-5" x="211.150572" y="31.250108"/> <use xlink:href="#glyph4-6" x="71.254489" y="85.682955"/>
<use xlink:href="#glyph2-6" x="218.450894" y="31.250108"/> <use xlink:href="#glyph4-2" x="74.353522" y="85.682955"/>
<use xlink:href="#glyph2-19" x="222.859254" y="31.250108"/> <use xlink:href="#glyph4-15" x="77.879505" y="85.682955"/>
<use xlink:href="#glyph2-6" x="225.890063" y="31.250108"/> <use xlink:href="#glyph4-2" x="80.33846" y="85.682955"/>
<use xlink:href="#glyph2-10" x="230.298422" y="31.250108"/> <use xlink:href="#glyph4-8" x="83.864443" y="85.682955"/>
<use xlink:href="#glyph2-20" x="234.706782" y="31.250108"/> <use xlink:href="#glyph4-5" x="87.390426" y="85.682955"/>
<use xlink:href="#glyph2-14" x="238.563724" y="31.250108"/> <use xlink:href="#glyph4-10" x="90.48946" y="85.682955"/>
<use xlink:href="#glyph2-17" x="241.318825" y="31.250108"/> <use xlink:href="#glyph4-16" x="92.734592" y="85.682955"/>
<use xlink:href="#glyph2-9" x="246.277609" y="31.250108"/> <use xlink:href="#glyph4-11" x="96.687526" y="85.682955"/>
</g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 191.34093 52.823131 L 191.34093 70.865621 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.052174 -0.0000295946 L 1.610221 1.683361 L 3.08564 -0.0000295946 L 1.610221 -1.68342 Z M 6.052174 -0.0000295946 " transform="matrix(0,0.99548,0.99548,0,231.250029,52.115807)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph4-17" x="200.623132" y="33.178353"/>
<use xlink:href="#glyph4-16" x="206.477555" y="33.178353"/>
<use xlink:href="#glyph4-10" x="210.430488" y="33.178353"/>
<use xlink:href="#glyph4-14" x="212.675621" y="33.178353"/>
<use xlink:href="#glyph4-2" x="215.817696" y="33.178353"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-1" x="148.760853" y="59.160381"/> <use xlink:href="#glyph4-7" x="222.016457" y="33.178353"/>
<use xlink:href="#glyph4-5" x="225.96939" y="33.178353"/>
<use xlink:href="#glyph4-5" x="229.068423" y="33.178353"/>
<use xlink:href="#glyph4-2" x="232.167456" y="33.178353"/>
<use xlink:href="#glyph4-11" x="235.69344" y="33.178353"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph4-1" x="154.933825" y="60.648624"/> <use xlink:href="#glyph4-18" x="239.858807" y="33.178353"/>
<use xlink:href="#glyph4-7" x="244.239384" y="33.178353"/>
<use xlink:href="#glyph4-5" x="248.192318" y="33.178353"/>
<use xlink:href="#glyph4-10" x="251.291351" y="33.178353"/>
<use xlink:href="#glyph4-16" x="253.536484" y="33.178353"/>
<use xlink:href="#glyph4-11" x="257.489417" y="33.178353"/>
</g> </g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.385519 38.63792 L 113.385519 31.931827 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.051435 0.00172055 L 1.609482 1.681187 L 3.088825 0.00172055 L 1.609482 -1.68167 Z M 6.051435 0.00172055 " transform="matrix(0,-0.99548,-0.99548,0,153.8689,71.887364)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-21" x="129.969178" y="86.369836"/> <use xlink:href="#glyph0-1" x="148.540613" y="59.160381"/>
<use xlink:href="#glyph2-12" x="136.993792" y="86.369836"/> </g>
<use xlink:href="#glyph2-9" x="141.952576" y="86.369836"/> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-22" x="147.462778" y="86.369836"/> <use xlink:href="#glyph5-1" x="154.713585" y="60.648624"/>
<use xlink:href="#glyph2-23" x="152.972979" y="86.369836"/> </g>
<use xlink:href="#glyph2-14" x="160.135447" y="86.369836"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 113.387016 38.63792 L 113.387016 31.931827 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<use xlink:href="#glyph2-22" x="162.890548" y="86.369836"/> <path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.051435 0.000223787 L 1.609482 1.683614 L 3.088825 0.000223787 L 1.609482 -1.683166 Z M 6.051435 0.000223787 " transform="matrix(0,-0.99548,-0.99548,0,153.64866,71.887364)"/>
<use xlink:href="#glyph2-20" x="168.400749" y="86.369836"/> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-24" x="172.257692" y="86.369836"/> <use xlink:href="#glyph4-19" x="134.635749" y="84.320142"/>
<use xlink:href="#glyph4-7" x="140.179852" y="84.320142"/>
<use xlink:href="#glyph4-11" x="144.132786" y="84.320142"/>
<use xlink:href="#glyph4-20" x="148.513363" y="84.320142"/>
<use xlink:href="#glyph4-21" x="152.893941" y="84.320142"/>
<use xlink:href="#glyph4-10" x="158.555369" y="84.320142"/>
<use xlink:href="#glyph4-20" x="160.800502" y="84.320142"/>
<use xlink:href="#glyph4-5" x="165.18108" y="84.320142"/>
<use xlink:href="#glyph4-22" x="168.280113" y="84.320142"/>
</g> </g>
<g clip-path="url(#clip4)" clip-rule="nonzero"> <g clip-path="url(#clip4)" clip-rule="nonzero">
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.171447 -56.69533 L 56.691764 -56.69533 C 80.369098 -56.69533 89.712109 -35.435172 113.385519 -35.435172 C 137.062853 -35.435172 146.405865 -56.69533 170.079275 -56.69533 L 212.599592 -56.69533 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.172944 -56.69533 L 56.69326 -56.69533 C 80.366671 -56.69533 89.713606 -35.435172 113.387016 -35.435172 C 137.060426 -35.435172 146.407362 -56.69533 170.080772 -56.69533 L 212.601089 -56.69533 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.171447 -56.69533 L 56.691764 -56.69533 C 80.369098 -56.69533 89.712109 -35.435172 113.385519 -35.435172 C 137.062853 -35.435172 146.405865 -56.69533 170.079275 -56.69533 L 212.599592 -56.69533 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.172944 -56.69533 L 56.69326 -56.69533 C 80.366671 -56.69533 89.713606 -35.435172 113.387016 -35.435172 C 137.060426 -35.435172 146.407362 -56.69533 170.080772 -56.69533 L 212.601089 -56.69533 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
</g> </g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,2.98883;stroke-miterlimit:10;" d="M 113.385519 -56.69533 L 113.385519 -40.065475 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,2.98883;stroke-miterlimit:10;" d="M 113.387016 -56.69533 L 113.387016 -40.065475 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.053829 0.00172055 L 1.607953 1.681187 L 3.087296 0.00172055 L 1.607953 -1.68167 Z M 6.053829 0.00172055 " transform="matrix(0,-0.99548,-0.99548,0,153.8689,150.237404)"/> <path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 6.053829 0.000223787 L 1.607953 1.683614 L 3.087296 0.000223787 L 1.607953 -1.683166 Z M 6.053829 0.000223787 " transform="matrix(0,-0.99548,-0.99548,0,153.64866,150.237404)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-25" x="123.866885" y="137.068637"/> <use xlink:href="#glyph4-23" x="129.761879" y="137.647011"/>
<use xlink:href="#glyph2-24" x="130.616783" y="137.068637"/> <use xlink:href="#glyph4-22" x="135.092854" y="137.647011"/>
<use xlink:href="#glyph2-12" x="136.126984" y="137.068637"/> <use xlink:href="#glyph4-7" x="139.473432" y="137.647011"/>
<use xlink:href="#glyph2-18" x="141.085769" y="137.068637"/> <use xlink:href="#glyph4-14" x="143.426365" y="137.647011"/>
<use xlink:href="#glyph2-6" x="144.998249" y="137.068637"/> <use xlink:href="#glyph4-2" x="146.568441" y="137.647011"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph2-26" x="152.709159" y="137.068637"/> <use xlink:href="#glyph4-24" x="152.767201" y="137.647011"/>
<use xlink:href="#glyph2-12" x="161.800595" y="137.068637"/> <use xlink:href="#glyph4-7" x="159.902475" y="137.647011"/>
<use xlink:href="#glyph2-8" x="166.759379" y="137.068637"/> <use xlink:href="#glyph4-6" x="163.855408" y="137.647011"/>
<use xlink:href="#glyph2-15" x="170.644091" y="137.068637"/> <use xlink:href="#glyph4-12" x="166.954441" y="137.647011"/>
<use xlink:href="#glyph2-14" x="175.602876" y="137.068637"/> <use xlink:href="#glyph4-10" x="170.907375" y="137.647011"/>
<use xlink:href="#glyph2-9" x="178.357976" y="137.068637"/> <use xlink:href="#glyph4-11" x="173.152507" y="137.647011"/>
</g> </g>
<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,2.98883;stroke-miterlimit:10;" d="M 0.00193188 -56.69533 L 212.599592 -56.69533 " transform="matrix(0.99548,0,0,-0.99548,40.994171,107.525777)"/> <path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,2.98883;stroke-miterlimit:10;" d="M -0.000495339 -56.69533 L 212.601089 -56.69533 " transform="matrix(0.99548,0,0,-0.99548,40.773931,107.525777)"/>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph3-2" x="23.469741" y="166.442265"/> <use xlink:href="#glyph3-2" x="23.249501" y="166.442265"/>
</g> </g>
<g style="fill:rgb(0%,0%,0%);fill-opacity:1;"> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
<use xlink:href="#glyph0-4" x="31.183715" y="166.442265"/> <use xlink:href="#glyph0-4" x="30.963475" y="166.442265"/>
</g> </g>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 48 KiB

400
ieee.csl Normal file
View File

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only">
<info>
<title>IEEE</title>
<id>http://www.zotero.org/styles/ieee</id>
<link href="http://www.zotero.org/styles/ieee" rel="self"/>
<link href="https://ieeeauthorcenter.ieee.org/wp-content/uploads/IEEE-Reference-Guide.pdf" rel="documentation"/>
<link href="https://journals.ieeeauthorcenter.ieee.org/your-role-in-article-production/ieee-editorial-style-manual/" rel="documentation"/>
<author>
<name>Michael Berkowitz</name>
<email>mberkowi@gmu.edu</email>
</author>
<contributor>
<name>Julian Onions</name>
<email>julian.onions@gmail.com</email>
</contributor>
<contributor>
<name>Rintze Zelle</name>
<uri>http://twitter.com/rintzezelle</uri>
</contributor>
<contributor>
<name>Stephen Frank</name>
<uri>http://www.zotero.org/sfrank</uri>
</contributor>
<contributor>
<name>Sebastian Karcher</name>
</contributor>
<contributor>
<name>Giuseppe Silano</name>
<email>g.silano89@gmail.com</email>
<uri>http://giuseppesilano.net</uri>
</contributor>
<contributor>
<name>Patrick O'Brien</name>
</contributor>
<contributor>
<name>Brenton M. Wiernik</name>
</contributor>
<category citation-format="numeric"/>
<category field="engineering"/>
<category field="generic-base"/>
<summary>IEEE style as per the 2018 guidelines, V 11.12.2018.</summary>
<updated>2020-06-15T03:21:46+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="en">
<terms>
<term name="chapter" form="short">ch.</term>
<term name="presented at">presented at the</term>
<term name="available at">available</term>
</terms>
</locale>
<!-- Macros -->
<macro name="status">
<choose>
<if variable="page issue volume" match="none">
<text variable="status" text-case="capitalize-first" suffix="" font-weight="bold"/>
</if>
</choose>
</macro>
<macro name="edition">
<choose>
<if type="bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="any">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short"/>
</group>
</if>
<else>
<text variable="edition" text-case="capitalize-first" suffix="."/>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="issued">
<choose>
<if type="article-journal report" match="any">
<date variable="issued">
<date-part name="month" form="short" suffix=" "/>
<date-part name="year" form="long"/>
</date>
</if>
<else-if type="bill book chapter graphic legal_case legislation motion_picture song thesis" match="any">
<date variable="issued">
<date-part name="year" form="long"/>
</date>
</else-if>
<else-if type="paper-conference" match="any">
<date variable="issued">
<date-part name="month" form="short"/>
<date-part name="year" prefix=" "/>
</date>
</else-if>
<else>
<date variable="issued">
<date-part name="month" form="short" suffix=" "/>
<date-part name="day" form="numeric-leading-zeros" suffix=", "/>
<date-part name="year"/>
</date>
</else>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name and="text" et-al-min="7" et-al-use-first="1" initialize-with=". "/>
<label form="short" prefix=", " text-case="capitalize-first"/>
<et-al font-style="italic"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
</substitute>
</names>
</macro>
<macro name="editor">
<names variable="editor">
<name initialize-with=". " delimiter=", " and="text"/>
<label form="short" prefix=", " text-case="capitalize-first"/>
</names>
</macro>
<macro name="locators">
<group delimiter=", ">
<text macro="edition"/>
<group delimiter=" ">
<text term="volume" form="short"/>
<number variable="volume" form="numeric"/>
</group>
<group delimiter=" ">
<number variable="number-of-volumes" form="numeric"/>
<text term="volume" form="short" plural="true"/>
</group>
<group delimiter=" ">
<text term="issue" form="short"/>
<number variable="issue" form="numeric"/>
</group>
</group>
</macro>
<macro name="title">
<choose>
<if type="bill book graphic legal_case legislation motion_picture song" match="any">
<text variable="title" font-style="italic"/>
</if>
<else>
<text variable="title" quotes="true"/>
</else>
</choose>
</macro>
<macro name="publisher">
<choose>
<if type="bill book chapter graphic legal_case legislation motion_picture paper-conference song" match="any">
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</if>
<else>
<group delimiter=", ">
<text variable="publisher"/>
<text variable="publisher-place"/>
</group>
</else>
</choose>
</macro>
<macro name="event">
<choose>
<if type="paper-conference speech" match="any">
<choose>
<!-- Published Conference Paper -->
<if variable="collection-editor editor editorial-director issue page volume" match="any">
<group delimiter=", ">
<group delimiter=" ">
<text term="in"/>
<text variable="container-title" font-style="italic"/>
</group>
<text variable="event-place"/>
</group>
</if>
<!-- Unpublished Conference Paper -->
<else>
<group delimiter=", ">
<group delimiter=" ">
<text term="presented at"/>
<text variable="event"/>
</group>
<text variable="event-place"/>
</group>
</else>
</choose>
</if>
</choose>
</macro>
<macro name="access">
<choose>
<if type="webpage post post-weblog" match="any">
<choose>
<if variable="URL">
<group delimiter=" ">
<text variable="URL"/>
<group delimiter=" " prefix="(" suffix=")">
<text term="accessed"/>
<date variable="accessed">
<date-part name="month" form="short" strip-periods="false"/>
<date-part name="day" form="numeric-leading-zeros" prefix=" " suffix=", "/>
<date-part name="year" form="long"/>
</date>
</group>
</group>
</if>
</choose>
</if>
<else-if match="any" variable="DOI">
<text variable="DOI" prefix="doi: "/>
</else-if>
<else>
<group delimiter=". ">
<group delimiter=": ">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed">
<date-part name="month" form="short" suffix=" "/>
<date-part name="day" form="numeric-leading-zeros" suffix=", "/>
<date-part name="year"/>
</date>
</group>
<text term="online" prefix="[" suffix="]" text-case="capitalize-first"/>
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="URL"/>
</group>
</group>
</else>
</choose>
</macro>
<macro name="page">
<choose>
<if type="article-journal" variable="number" match="all">
<group delimiter=" ">
<text value="Art."/>
<text term="issue" form="short"/>
<text variable="number"/>
</group>
</if>
<else>
<group delimiter=" ">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</else>
</choose>
</macro>
<macro name="citation-locator">
<group delimiter=" ">
<choose>
<if locator="page">
<label variable="locator" form="short"/>
</if>
<else>
<label variable="locator" form="short" text-case="capitalize-first"/>
</else>
</choose>
<text variable="locator"/>
</group>
</macro>
<!-- Citation -->
<citation collapse="citation-number">
<sort>
<key variable="citation-number"/>
</sort>
<layout delimiter=", ">
<group prefix="[" suffix="]" delimiter=", ">
<text variable="citation-number"/>
<text macro="citation-locator"/>
</group>
</layout>
</citation>
<!-- Bibliography -->
<bibliography entry-spacing="0" second-field-align="flush">
<layout suffix=".">
<!-- Citation Number -->
<text variable="citation-number" prefix="[" suffix="]"/>
<!-- Author(s) -->
<text macro="author" suffix=", "/>
<!-- Rest of Citation -->
<choose>
<!-- Specific Formats -->
<if type="article-journal">
<group delimiter=", ">
<text macro="title"/>
<text variable="container-title" font-style="italic" form="short"/>
<text macro="locators"/>
<text macro="page"/>
<text macro="issued"/>
<text macro="status"/>
<text macro="access"/>
</group>
</if>
<else-if type="paper-conference speech" match="any">
<group delimiter=", ">
<text macro="title"/>
<text macro="event"/>
<text macro="issued"/>
<text macro="locators"/>
<text macro="page"/>
<text macro="status"/>
<text macro="access"/>
</group>
</else-if>
<else-if type="report">
<group delimiter=". ">
<group delimiter=", ">
<text macro="title"/>
<text macro="publisher"/>
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
<text macro="issued"/>
</group>
<text macro="access"/>
</group>
</else-if>
<else-if type="thesis">
<group delimiter=", ">
<text macro="title"/>
<text variable="genre"/>
<text macro="publisher"/>
<text macro="issued"/>
</group>
</else-if>
<else-if type="webpage post-weblog post" match="any">
<group delimiter=", " suffix=". ">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
<text macro="issued"/>
</group>
<text macro="access"/>
</else-if>
<else-if type="patent">
<group delimiter=", ">
<text macro="title"/>
<text variable="number"/>
<text macro="issued"/>
</group>
</else-if>
<!-- Generic/Fallback Formats -->
<else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
<group delimiter=", " suffix=". ">
<text macro="title"/>
<text macro="locators"/>
</group>
<group delimiter=", ">
<text macro="publisher"/>
<text macro="issued"/>
<text macro="page"/>
</group>
</else-if>
<else-if type="article-magazine article-newspaper broadcast interview manuscript map patent personal_communication song speech thesis webpage" match="any">
<group delimiter=", ">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
<text macro="locators"/>
<text macro="publisher"/>
<text macro="page"/>
<text macro="issued"/>
</group>
</else-if>
<else-if type="chapter paper-conference" match="any">
<group delimiter=", " suffix=", ">
<text macro="title"/>
<group delimiter=" ">
<text term="in"/>
<text variable="container-title" font-style="italic"/>
</group>
<text macro="locators"/>
</group>
<text macro="editor" suffix=" "/>
<group delimiter=", ">
<text macro="publisher"/>
<text macro="issued"/>
<text macro="page"/>
</group>
</else-if>
<else>
<group delimiter=", " suffix=". ">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
<text macro="locators"/>
</group>
<group delimiter=", ">
<text macro="publisher"/>
<text macro="page"/>
<text macro="issued"/>
<text macro="access"/>
</group>
</else>
</choose>
</layout>
</bibliography>
</style>

File diff suppressed because it is too large Load Diff

321
index.org
View File

@ -14,6 +14,8 @@
#+HTML_MATHJAX: align: center tagside: right font: TeX #+HTML_MATHJAX: align: center tagside: right font: TeX
#+CSL_STYLE: ieee.csl
#+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :results none #+PROPERTY: header-args:matlab+ :results none
@ -78,22 +80,21 @@ The general structure of this document is as follows:
** Introduction :ignore: ** Introduction :ignore:
- Section [[sec:model_based_control_methodology]] # - Section [[sec:model_based_control_methodology]]
- Section [[sec:comp_classical_modern_robust_control]] # - Section [[sec:comp_classical_modern_robust_control]]
- Section [[sec:example_system]] # - Section [[sec:example_system]]
** Model Based Control - Methodology ** Model Based Control - Methodology
<<sec:model_based_control_methodology>> <<sec:model_based_control_methodology>>
The typical methodology when applying Model Based Control to a plant is schematically shown in Figure [[fig:control-procedure]]. The typical methodology for *Model Based Control* techniques is schematically shown in Figure [[fig:control-procedure]].
It consists of three steps: It consists of three steps:
1. *Identification or modeling*: $\Longrightarrow$ mathematical model 1. *Identification or modeling*: a mathematical model $G(s)$ representing the plant dynamics is obtained
2. *Translate the specifications into mathematical criteria*: 2. *Translate the specifications into mathematical criteria*:
- _Specifications_: Response Time, Noise Rejection, Maximum input amplitude, Robustness, ... - _Specifications_: Response Time, Noise Rejection, Maximum input amplitude, Robustness, ...
- _Mathematical Criteria_: Cost Function, Shape of TF - _Mathematical Criteria_: Cost Function, Shape of transfer function, Phase/Gain margin, Roll-Off, ...
# - Cost Function, Needed Bandwidth, Roll-off, ... 3. *Synthesis*: research of a controller $K(s)$ that satisfies the specifications for the model of the system
# - $\Longrightarrow$ We will use the $\mathcal{H}_\infty$ Norm
3. *Synthesis*: research of $K$ that satisfies the specifications for the model of the system
#+begin_src latex :file control-procedure.pdf #+begin_src latex :file control-procedure.pdf
\begin{tikzpicture} \begin{tikzpicture}
@ -125,20 +126,44 @@ It consists of three steps:
#+RESULTS: #+RESULTS:
[[file:figs/control-procedure.png]] [[file:figs/control-procedure.png]]
In this document, we will mainly focus on steps 2 and 3. In this document, we will suppose a model of the plant is available (step 1 already performed), and we will focus on steps 2 and 3.
Step 2 will be discussed in Section [[sec:modern_interpretation_specification]].
There are two main methods for the controller synthesis (step 3): In Section [[sec:open_loop_shaping]], steps 2 and 3 will be described for a control techniques called *classical (open-)loop shaping*.
- /open/ loop shaping discussed in Section [[sec:open_loop_shaping]]
- /closed/ loop shaping discussed in Sections [[sec:modern_interpretation_specification]] and [[sec:h_infinity_mixed_sensitivity]] Then, steps 2 and 3 for the *$\mathcal{H}_\infty$ Loop Shaping* of closed-loop transfer functions will be discussed in Sections [[sec:modern_interpretation_specification]], [[sec:closed-loop-shaping]] and [[sec:h_infinity_mixed_sensitivity]].
** From Classical Control to Robust Control ** From Classical Control to Robust Control
<<sec:comp_classical_modern_robust_control>> <<sec:comp_classical_modern_robust_control>>
Many different model based control techniques have been developed since the birth of /classical control theory/ in the '30s.
*Classical control* methods were developed starting from 1930 based on tools such as the Laplace and Fourier transforms.
It was then natural to study systems in the frequency domain using tools such as the Bode and Nyquist plots.
Controllers were manually tuned to optimize criteria such as control bandwidth, gain and phase margins.
The '60s saw the development of control techniques based on a state-space.
Linear algebra and matrices were used instead of the frequency domain tool of the class control theory.
This allows multi-inputs multi-outputs systems to be easily treated.
Kalman introduced the well known /Kalman estimator/ as well the notion of optimality by minimizing quadratic cost functions.
This set of developments is loosely termed *Modern Control* theory.
By the 1980's, modern control theory was shown to have some robustness issues and to lack the intuitive tools that the classical control methods were offering.
This led to a new control theory called *Robust control* that blends the best features of classical and modern techniques.
This robust control theory is the subject of this document.
The three presented control methods are compared in Table [[tab:comparison_control_methods]].
Note that in parallel, there have been numerous other developments, including non-linear control, adaptive control, machine-learning control just to name a few.
#+name: tab:comparison_control_methods #+name: tab:comparison_control_methods
#+caption: Table summurazing the main differences between classical, modern and robust control #+caption: Table summurazing the main differences between classical, modern and robust control
| | *Classical Control* | *Modern Control* | *Robust Control* |
| <l> | <c> | <c> | <c> | | <l> | <c> | <c> | <c> |
| | *Classical Control* | *Modern Control* | *Robust Control* |
|-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------| |-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------|
| *Date* | 1930- | 1960- | 1980- | | *Date* | 1930- | 1960- | 1980- |
|-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------| |-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------|
@ -147,6 +172,7 @@ There are two main methods for the controller synthesis (step 3):
| | Bode Plots | | Open/Closed Loop Shaping | | | Bode Plots | | Open/Closed Loop Shaping |
| | Phase and Gain margins | | Weighting Functions | | | Phase and Gain margins | | Weighting Functions |
| | | | Disk margin | | | | | Disk margin |
| | | | Singular Value Decomposition |
|-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------| |-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------|
| *Control Architectures* | Proportional, Integral, Derivative | Full State Feedback, LQR | General Control Configuration | | *Control Architectures* | Proportional, Integral, Derivative | Full State Feedback, LQR | General Control Configuration |
| | Leads, Lags | Kalman Filters, LQG | Generalized Plant | | | Leads, Lags | Kalman Filters, LQG | Generalized Plant |
@ -159,6 +185,7 @@ There are two main methods for the controller synthesis (step 3):
|-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------| |-------------------------+------------------------------------+--------------------------------------+-------------------------------------------------------------------------|
| *Disadvantages* | Manual Method | No Guaranteed Robustness | Required knowledge of specific tools | | *Disadvantages* | Manual Method | No Guaranteed Robustness | Required knowledge of specific tools |
| | Only SISO | Difficult Rejection of Perturbations | Need a reasonably good model of the system | | | Only SISO | Difficult Rejection of Perturbations | Need a reasonably good model of the system |
| | No clear way to limit input usage | | |
#+begin_src latex :file robustness_performance.pdf #+begin_src latex :file robustness_performance.pdf
\begin{tikzpicture} \begin{tikzpicture}
@ -229,17 +256,23 @@ There are two main methods for the controller synthesis (step 3):
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
#+name: fig:robustness_performance # #+name: fig:robustness_performance
#+caption: Comparison of the performance and robustness of classical control methods, modern control methods and robust control methods. The required information on the plant to succesfuly apply each of the control methods are indicated by the colors. # #+caption: Comparison of the performance and robustness of classical control methods, modern control methods and robust control methods. The required information on the plant to succesfuly apply each of the control methods are indicated by the colors.
#+RESULTS: # #+RESULTS:
[[file:figs/robustness_performance.png]] # [[file:figs/robustness_performance.png]]
** Example System ** Example System
<<sec:example_system>> <<sec:example_system>>
Let's consider the model shown in Figure [[fig:mech_sys_1dof_inertial_contr]]. Throughout this document, multiple examples and practical application of presented control strategies will be provided.
It could represent a suspension system with a payload to position or isolate using an force actuator and an inertial sensor. Most of them will be applied on a physical system presented in this section.
The notations used are listed in Table [[tab:example_notations]].
This system is shown in Figure [[fig:mech_sys_1dof_inertial_contr]].
It could represent an active suspension stage supporting a payload.
The /inertial/ motion of the payload is measured using an inertial sensor and this is feedback to a force actuator.
Such system could be used to actively isolate the payload (disturbance rejection problem) or to make it follow a trajectory (tracking problem).
The notations used on Figure [[fig:mech_sys_1dof_inertial_contr]] are listed and described in Table [[tab:example_notations]].
#+begin_src latex :file mech_sys_1dof_inertial_contr.pdf #+begin_src latex :file mech_sys_1dof_inertial_contr.pdf
\begin{tikzpicture} \begin{tikzpicture}
@ -319,7 +352,7 @@ You can follow this generic procedure:
#+HTML: </details> #+HTML: </details>
#+end_exercice #+end_exercice
Having obtained $G(s)$ and $G_d(s)$, we can transform the system shown in Figure [[fig:mech_sys_1dof_inertial_contr]] into a classical feedback form as shown in Figure [[fig:open_loop_shaping]]. Having obtained $G(s)$ and $G_d(s)$, we can transform the system shown in Figure [[fig:mech_sys_1dof_inertial_contr]] into a classical feedback architecture as shown in Figure [[fig:open_loop_shaping]].
#+begin_src latex :file classical_feedback_test_system.pdf #+begin_src latex :file classical_feedback_test_system.pdf
\begin{tikzpicture} \begin{tikzpicture}
@ -341,7 +374,7 @@ Having obtained $G(s)$ and $G_d(s)$, we can transform the system shown in Figure
#+end_src #+end_src
#+name: fig:classical_feedback_test_system #+name: fig:classical_feedback_test_system
#+caption: Block diagram corresponding to the example system #+caption: Block diagram corresponding to the example system of Figure [[fig:mech_sys_1dof_inertial_contr]]
#+RESULTS: #+RESULTS:
[[file:figs/classical_feedback_test_system.png]] [[file:figs/classical_feedback_test_system.png]]
@ -353,12 +386,14 @@ Let's define the system parameters on Matlab.
m = 10; % Mass [kg] m = 10; % Mass [kg]
#+end_src #+end_src
And now the system dynamics $G(s)$ and $G_d(s)$ (their bode plots are shown in Figures [[fig:bode_plot_example_afm]] and [[fig:bode_plot_example_Gd]]). And now the system dynamics $G(s)$ and $G_d(s)$.
#+begin_src matlab +n -r #+begin_src matlab +n -r
G = 1/(m*s^2 + c*s + k); % Plant G = 1/(m*s^2 + c*s + k); % Plant
Gd = (c*s + k)/(m*s^2 + c*s + k); % Disturbance Gd = (c*s + k)/(m*s^2 + c*s + k); % Disturbance
#+end_src #+end_src
The Bode plots of $G(s)$ and $G_d(s)$ are shown in Figures [[fig:bode_plot_example_afm]] and [[fig:bode_plot_example_Gd]].
#+begin_src matlab :exports none #+begin_src matlab :exports none
freqs = logspace(0, 3, 1000); freqs = logspace(0, 3, 1000);
@ -422,24 +457,27 @@ And now the system dynamics $G(s)$ and $G_d(s)$ (their bode plots are shown in F
** Introduction :ignore: ** Introduction :ignore:
- Section [[sec:open_loop_shaping_introduction]] After an introduction to classical Loop Shaping in Section [[sec:open_loop_shaping_introduction]], a practical example is given in Section [[sec:loop_shaping_example]].
- Section [[sec:loop_shaping_example]] Such Loop Shaping is usually performed manually with tools coming from the classical control theory.
- Section [[sec:h_infinity_open_loop_shaping]]
- Section [[sec:h_infinity_open_loop_shaping_example]] However, the $\mathcal{H}_\infty$ synthesis can be used to automate the Loop Shaping process.
This is presented in Section [[sec:h_infinity_open_loop_shaping]] and applied on the same example in Section [[sec:h_infinity_open_loop_shaping_example]].
** Introduction to Loop Shaping ** Introduction to Loop Shaping
<<sec:open_loop_shaping_introduction>> <<sec:open_loop_shaping_introduction>>
#+begin_definition #+begin_definition
*Loop Shaping* refers to a design procedure that involves explicitly shaping the magnitude of the *Loop Transfer Function* $L(s)$. *Loop Shaping* refers to a control design procedure that involves explicitly shaping the magnitude of the *Loop Transfer Function* $L(s)$.
#+end_definition #+end_definition
#+begin_definition #+begin_definition
The *Loop Gain* $L(s)$ usually refers to as the product of the controller and the plant ("Gain around the loop", see Figure [[fig:open_loop_shaping]]): The *Loop Gain* (or Loop transfer function) $L(s)$ usually refers to as the product of the controller and the plant (see Figure [[fig:open_loop_shaping]]):
\begin{equation} \begin{equation}
L(s) = G(s) \cdot K(s) \label{eq:loop_gain} L(s) = G(s) \cdot K(s) \label{eq:loop_gain}
\end{equation} \end{equation}
Its name comes from the fact that this is actually the "gain around the loop".
#+begin_src latex :file open_loop_shaping.pdf #+begin_src latex :file open_loop_shaping.pdf
\begin{tikzpicture} \begin{tikzpicture}
\node[addb={+}{}{}{}{-}] (addsub) at (0, 0){}; \node[addb={+}{}{}{}{-}] (addsub) at (0, 0){};
@ -466,17 +504,19 @@ The *Loop Gain* $L(s)$ usually refers to as the product of the controller and th
[[file:figs/open_loop_shaping.png]] [[file:figs/open_loop_shaping.png]]
#+end_definition #+end_definition
This synthesis method is widely used as many characteristics of the closed-loop system depend on the shape of the open loop gain $L(s)$ such as: This synthesis method is one of main way controllers are design in the classical control theory.
- *Performance*: $L$ large It is widely used and generally successful as many characteristics of the closed-loop system depend on the shape of the open loop gain $L(s)$ such as:
- *Good Tracking*: $L$ large
- *Good disturbance rejection*: $L$ large - *Good disturbance rejection*: $L$ large
- *Limitation of measurement noise on plant output*: $L$ small - *Attenuation of measurement noise on plant output*: $L$ small
- *Small magnitude of input signal*: $K$ and $L$ small - *Small magnitude of input signal*: $L$ small
- *Nominal stability*: $L$ small (RHP zeros and time delays) - *Nominal stability*: $L$ small (RHP zeros and time delays)
- *Robust stability*: $L$ small (neglected dynamics) - *Robust stability*: $L$ small (neglected dynamics)
The Open Loop shape is usually done manually has the loop gain $L(s)$ depends linearly on $K(s)$ eqref:eq:loop_gain. The shaping of the Loop Gain is done manually by combining several leads, lags, notches...
This process is very much simplified by the fact that the loop gain $L(s)$ depends *linearly* on $K(s)$ eqref:eq:loop_gain.
$K(s)$ then consists of a combination of leads, lags, notches, etc. such that $L(s)$ has the wanted shape (an example is shown in Figure [[fig:open_loop_shaping_shape]]). A typical wanted Loop Shape is shown in Figure [[fig:open_loop_shaping_shape]].
Another interesting Loop shape called "Bode Step" is described in cite:lurie02_system_archit_trades_using_bode.
#+begin_src latex :file open_loop_shaping_shape.pdf #+begin_src latex :file open_loop_shaping_shape.pdf
\begin{tikzpicture} \begin{tikzpicture}
@ -497,12 +537,12 @@ $K(s)$ then consists of a combination of leads, lags, notches, etc. such that $L
\path[shift={(0,1.8)}, fill=red!50!white] (0.5, 1.25) -- (2, 0.5) -| coordinate[near start](lfshaping) cycle; \path[shift={(0,1.8)}, fill=red!50!white] (0.5, 1.25) -- (2, 0.5) -| coordinate[near start](lfshaping) cycle;
\path[shift={(0,2.2)}, fill=red!50!white] (6, -0.5) -- (7.5, -1.25) |- coordinate[near end](hfshaping) cycle; \path[shift={(0,2.2)}, fill=red!50!white] (6, -0.5) -- (7.5, -1.25) |- coordinate[near end](hfshaping) cycle;
\draw[<-] (lfshaping) -- ++(0, -0.8) node[below, align=center]{Reference\\Tracking}; \draw[<-] (lfshaping) -- ++(0, -0.8) node[below, align=center]{{\scriptsize Ref. tracking}\\{\scriptsize Dist. rejection}};
\draw[<-] (hfshaping) -- ++(0, 0.8) node[above, align=center]{Noise\\Rejection}; \draw[<-] (hfshaping) -- ++(0, 0.8) node[above, align=center]{{\scriptsize Noise attenuation}};
% Crossover frequency % Crossover frequency
\node[below] (wc) at (4,2){$\omega_c$}; \node[below] (wc) at (4,2){$\omega_c$};
\draw[<-] (wc.south) -- ++(0, -0.4) node[below, align=center]{Bandwidth}; \draw[<-] (wc.south) -- ++(0, -0.4) node[below, align=center]{{\scriptsize Bandwidth}};
% Phase % Phase
\draw[] (0.5, -2) -- (2, -2)[out=0, in=-180] to (4, -1.25)[out=0, in=-180] to \draw[] (0.5, -2) -- (2, -2)[out=0, in=-180] to (4, -1.25)[out=0, in=-180] to
@ -510,7 +550,7 @@ $K(s)$ then consists of a combination of leads, lags, notches, etc. such that $L
-1.25)[out=0, in=-180] to (6, -2) -- (7.5, -2); -1.25)[out=0, in=-180] to (6, -2) -- (7.5, -2);
% Phase Margin % Phase Margin
\draw[->, dashed] (4, -2) -- (4, -1.25) node[above]{Phase Margin}; \draw[->, dashed] (4, -2) -- (4, -1.25) node[above]{{\scriptsize Phase Margin}};
\draw[dashed] (0, -2) node[left]{$-\pi$} -- (7.5, -2); \draw[dashed] (0, -2) node[left]{$-\pi$} -- (7.5, -2);
\end{tikzpicture} \end{tikzpicture}
#+end_src #+end_src
@ -520,34 +560,65 @@ $K(s)$ then consists of a combination of leads, lags, notches, etc. such that $L
#+RESULTS: #+RESULTS:
[[file:figs/open_loop_shaping_shape.png]] [[file:figs/open_loop_shaping_shape.png]]
** Example of Open Loop Shaping The shaping of *closed-loop* transfer functions is obviously not as simple as they don't depend linearly on $K(s)$.
But this is were the $\mathcal{H}_\infty$ Synthesis will be useful!
More details on that in Sections [[sec:modern_interpretation_specification]] and [[sec:closed-loop-shaping]].
** Example of Manual Open Loop Shaping
<<sec:loop_shaping_example>> <<sec:loop_shaping_example>>
#+begin_exampl #+begin_exampl
Let's take our example system and try to apply the Open-Loop shaping strategy to design a controller that fulfils the following specifications: Let's take our example system described in Section [[sec:example_system]] and design a controller using the Open-Loop shaping synthesis approach.
- *Performance*: Bandwidth of approximately 10Hz The specifications are:
- *Noise Attenuation*: Roll-off of -40dB/decade past 30Hz 1. *Disturbance rejection*: Highest possible rejection below 1Hz
- *Robustness*: Gain margin > 3dB and Phase margin > 30 deg 2. *Positioning speed*: Bandwidth of approximately 10Hz
3. *Noise attenuation*: Roll-off of -40dB/decade past 30Hz
4. *Robustness*: Gain margin > 3dB and Phase margin > 30 deg
#+end_exampl #+end_exampl
#+begin_exercice #+begin_exercice
Using =SISOTOOL=, design a controller that fulfill the specifications. Using =SISOTOOL=, design a controller that fulfills the specifications.
#+begin_src matlab :eval no :tangle no #+begin_src matlab :eval no :tangle no
sisotool(G) sisotool(G)
#+end_src #+end_src
#+HTML: <details><summary>Hint</summary>
You can follow this procedure:
1. In order to have good disturbance rejection at low frequency, add a simple or double *integrator*
2. In terms of the loop gain, the *bandwidth* can be defined at the frequency $\omega_c$ where $|l(j\omega_c)|$ first crosses 1 from above.
Therefore, adjust the *gain* such that $L(j\omega)$ crosses 1 at around 10Hz
3. The roll-off at high frequency for noise attenuation should already be good enough.
If not, add a *low pass filter*
4. Add a *Lead* centered around the crossover frequency (10 Hz) and tune it such that sufficient phase margin is added.
Verify that the gain margin is good enough.
#+HTML: </details>
#+end_exercice #+end_exercice
In order to have the wanted Roll-off, two integrators are used, a lead is also added to have sufficient phase margin. Let's say we came up with the following controller.
The obtained controller is shown below, and the bode plot of the Loop Gain is shown in Figure [[fig:loop_gain_manual_afm]].
#+begin_src matlab #+begin_src matlab
K = 14e8 * ... % Gain K = 14e8 * ... % Gain
1/(s^2) * ... % Double Integrator 1/(s^2) * ... % Double Integrator
1/(1 + s/2/pi/40) * ... % Low Pass Filter 1/(1 + s/2/pi/40) * ... % Low Pass Filter
(1 + s/(2*pi*10/sqrt(8)))/(1 + s/(2*pi*10*sqrt(8))); % Lead (1 + s/(2*pi*10/sqrt(8)))/(1 + s/(2*pi*10*sqrt(8))); % Lead
#+end_src #+end_src
The bode plot of the Loop Gain is shown in Figure [[fig:loop_gain_manual_afm]] and we can verify that we have the wanted stability margins using the =margin= command:
#+begin_src matlab
[Gm, Pm, ~, Wc] = margin(G*K)
#+end_src
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
data2orgtable([Gm; Pm; Wc/2/pi], {'Gain Margin $> 3$ [dB]', 'Phase Margin $> 30$ [deg]', 'Crossover $\approx 10$ [Hz]'}, {'Requirements', 'Manual Method'}, ' %.1f ');
#+end_src
#+RESULTS:
| Requirements | Manual Method |
|-----------------------------+---------------|
| Gain Margin $> 3$ [dB] | 3.1 |
| Phase Margin $> 30$ [deg] | 35.4 |
| Crossover $\approx 10$ [Hz] | 10.1 |
#+begin_src matlab :exports none #+begin_src matlab :exports none
freqs = logspace(0, 3, 1000); freqs = logspace(0, 3, 1000);
@ -584,106 +655,62 @@ The obtained controller is shown below, and the bode plot of the Loop Gain is sh
#+RESULTS: #+RESULTS:
[[file:figs/loop_gain_manual_afm.png]] [[file:figs/loop_gain_manual_afm.png]]
And we can verify that we have the wanted stability margins:
#+begin_src matlab
[Gm, Pm, ~, Wc] = margin(G*K)
#+end_src
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
data2orgtable([Gm; Pm; Wc/2/pi], {'Gain Margin $> 3$ [dB]', 'Phase Margin $> 30$ [deg]', 'Crossover $\approx 10$ [Hz]'}, {'Requirements', 'Manual Method'}, ' %.1f ');
#+end_src
#+RESULTS:
| Requirements | Manual Method |
|-----------------------------+---------------|
| Gain Margin $> 3$ [dB] | 3.1 |
| Phase Margin $> 30$ [deg] | 35.4 |
| Crossover $\approx 10$ [Hz] | 10.1 |
** $\mathcal{H}_\infty$ Loop Shaping Synthesis ** $\mathcal{H}_\infty$ Loop Shaping Synthesis
<<sec:h_infinity_open_loop_shaping>> <<sec:h_infinity_open_loop_shaping>>
The Open Loop Shaping synthesis can be performed using the $\mathcal{H}_\infty$ Synthesis. The synthesis of controllers based on the Loop Shaping method can be automated using the $\mathcal{H}_\infty$ Synthesis.
Even though we will not go into details, we will provide one example. Using Matlab, it can be easily performed using the =loopsyn= command:
Using Matlab, the $\mathcal{H}_\infty$ Loop Shaping Synthesis can be performed using the =loopsyn= command:
#+begin_src matlab :eval no :tangle no #+begin_src matlab :eval no :tangle no
K = loopsyn(G, Gd); K = loopsyn(G, Lw);
#+end_src #+end_src
where: where:
- =G= is the (LTI) plant - =G= is the (LTI) plant
- =Gd= is the wanted loop shape - =Lw= is the wanted loop shape
- =K= is the synthesize controller - =K= is the synthesize controller
#+begin_seealso #+begin_seealso
Matlab documentation of =loopsyn= ([[https://www.mathworks.com/help/robust/ref/loopsyn.html][link]]). Matlab documentation of =loopsyn= ([[https://www.mathworks.com/help/robust/ref/loopsyn.html][link]]).
#+end_seealso #+end_seealso
Therefore, by just providing the wanted loop shape and the plant model, the $\mathcal{H}_\infty$ Loop Shaping synthesis generates a /stabilizing/ controller such that the obtained loop gain $L(s)$ matches the specified one with an accuracy $\gamma$.
Even though we will not go into details and explain how such synthesis is working, an example is provided in the next section.
** Example of the $\mathcal{H}_\infty$ Loop Shaping Synthesis ** Example of the $\mathcal{H}_\infty$ Loop Shaping Synthesis
<<sec:h_infinity_open_loop_shaping_example>> <<sec:h_infinity_open_loop_shaping_example>>
Let's reuse the previous plant. To apply the $\mathcal{H}_\infty$ Loop Shaping Synthesis, the wanted shape of the loop gain should be determined from the specifications.
This is summarized in Table [[tab:open_loop_shaping_specifications]].
Translate the specification into the wanted shape of the open loop gain. Such shape corresponds to the typical wanted Loop gain Shape shown in Figure [[fig:open_loop_shaping_shape]].
- *Performance*: Bandwidth of approximately 10Hz: $|L_w(j2 \pi 10)| = 1$
- *Noise Attenuation*: Roll-off of -40dB/decade past 30Hz
- *Robustness*: Gain margin > 3dB and Phase margin > 30 deg
#+name: tab:open_loop_shaping_specifications
#+caption: Wanted Loop Shape corresponding to each specification
| | Specification | Corresponding Loop Shape |
|-------------------------+---------------------------------------------+-----------------------------------------------------------------|
| *Disturbance Rejection* | Highest possible rejection below 1Hz | Slope of -40dB/decade at low frequency to have a high loop gain |
| *Positioning Speed* | Bandwidth of approximately 10Hz | $L$ crosses 1 at 10Hz: $\vert L_w(j2 \pi 10)\vert = 1$ |
| *Noise Attenuation* | Roll-off of -40dB/decade past 30Hz | Roll-off of -40dB/decade past 30Hz |
| *Robustness* | Gain margin > 3dB and Phase margin > 30 deg | Slope of -20dB/decade near the crossover |
Then, a (stable, minimum phase) transfer function $L_w(s)$ should be created that has the same gain as the wanted shape of the Loop gain.
For this example, a double integrator and a lead centered on 10Hz are used.
Then the gain is adjusted such that the $|L_w(j2 \pi 10)| = 1$.
Using Matlab, we have:
#+begin_src matlab #+begin_src matlab
Lw = 2.3e3 * ... Lw = 2.3e3 * ...
1/(s^2) * ... % Double Integrator 1/(s^2) * ... % Double Integrator
(1 + s/(2*pi*10/sqrt(3)))/(1 + s/(2*pi*10*sqrt(3))); % Lead (1 + s/(2*pi*10/sqrt(3)))/(1 + s/(2*pi*10*sqrt(3))); % Lead
#+end_src #+end_src
The $\mathcal{H}_\infty$ optimal open loop shaping synthesis is performed using the =loopsyn= command: The $\mathcal{H}_\infty$ open loop shaping synthesis is then performed using the =loopsyn= command:
#+begin_src matlab #+begin_src matlab
[K, ~, GAM] = loopsyn(G, Lw); [K, ~, GAM] = loopsyn(G, Lw);
#+end_src #+end_src
#+begin_important The obtained Loop Gain is shown in Figure [[fig:open_loop_shaping_hinf_L]] and matches the specified one by a factor $\gamma \approx 2$.
It is always important to analyze the controller after the synthesis is performed.
In the end, a synthesize controller is just a combination of low pass filters, high pass filters, notches, leads, etc.
#+end_important
Let's briefly analyze the obtained controller which bode plot is shown in Figure [[fig:open_loop_shaping_hinf_K]]:
- two integrators are used at low frequency to have the wanted low frequency high gain
- a lead is added centered with the crossover frequency to increase the phase margin
- a notch is added at the resonance of the plant to increase the gain margin (this is very typical of $\mathcal{H}_\infty$ controllers, and can be an issue, more info on that latter)
#+begin_src matlab :exports none
freqs = logspace(0, 3, 1000);
figure;
tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None');
ax1 = nexttile([2,1]);
plot(freqs, abs(squeeze(freqresp(K, freqs, 'Hz'))));
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Magnitude'); set(gca, 'XTickLabel',[]);
hold off;
ax2 = nexttile;
plot(freqs, 180/pi*angle(squeeze(freqresp(K, freqs, 'Hz'))));
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
yticks(-360:90:360); ylim([-180, 90]);
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/open_loop_shaping_hinf_K.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:open_loop_shaping_hinf_K
#+caption: Obtained controller $K$ using the open-loop $\mathcal{H}_\infty$ shaping
#+RESULTS:
[[file:figs/open_loop_shaping_hinf_K.png]]
The obtained Loop Gain is shown in Figure [[fig:open_loop_shaping_hinf_L]] and matches the specified one by a factor $\gamma$.
#+begin_src matlab :exports none #+begin_src matlab :exports none
freqs = logspace(0, 3, 1000); freqs = logspace(0, 3, 1000);
@ -725,7 +752,51 @@ The obtained Loop Gain is shown in Figure [[fig:open_loop_shaping_hinf_L]] and m
#+RESULTS: #+RESULTS:
[[file:figs/open_loop_shaping_hinf_L.png]] [[file:figs/open_loop_shaping_hinf_L.png]]
Let's now compare the obtained stability margins of the $\mathcal{H}_\infty$ controller and of the manually developed controller in Table [[tab:open_loop_shaping_compare]].
#+begin_important
When using the $\mathcal{H}_\infty$ Synthesis, it is usually recommended to analyze the obtained controller.
This is usually done by breaking down the controller into simple elements such as low pass filters, high pass filters, notches, leads, etc.
#+end_important
Let's briefly analyze the obtained controller which bode plot is shown in Figure [[fig:open_loop_shaping_hinf_K]]:
- two integrators are used at low frequency to have the wanted low frequency high gain
- a lead is added centered with the crossover frequency to increase the phase margin
- a notch is added at the resonance of the plant to increase the gain margin (this is very typical of $\mathcal{H}_\infty$ controllers, and can be an issue, more info on that latter)
#+begin_src matlab :exports none
freqs = logspace(0, 3, 1000);
figure;
tiledlayout(3, 1, 'TileSpacing', 'None', 'Padding', 'None');
ax1 = nexttile([2,1]);
plot(freqs, abs(squeeze(freqresp(K, freqs, 'Hz'))));
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Magnitude'); set(gca, 'XTickLabel',[]);
hold off;
ax2 = nexttile;
plot(freqs, 180/pi*angle(squeeze(freqresp(K, freqs, 'Hz'))));
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
yticks(-360:90:360); ylim([-180, 90]);
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
#+end_src
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/open_loop_shaping_hinf_K.pdf', 'width', 'wide', 'height', 'normal');
#+end_src
#+name: fig:open_loop_shaping_hinf_K
#+caption: Obtained controller $K$ using the open-loop $\mathcal{H}_\infty$ shaping
#+RESULTS:
[[file:figs/open_loop_shaping_hinf_K.png]]
Let's finally compare the obtained stability margins of the $\mathcal{H}_\infty$ controller and of the manually developed controller in Table [[tab:open_loop_shaping_compare]].
#+begin_src matlab :exports none #+begin_src matlab :exports none
[Gm_2, Pm_2, ~, Wc_2] = margin(G*K) [Gm_2, Pm_2, ~, Wc_2] = margin(G*K)