Compare commits
	
		
			6 Commits 
		
	
	
		
			55b037a8a9
			...
			f114c742b0
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  BodgeMaster | f114c742b0 | |
|  BodgeMaster | f99fab5b7e | |
|  BodgeMaster | 5ab9700810 | |
|  BodgeMaster | 1b93b6813f | |
|  BodgeMaster | 09b841611e | |
|  BodgeMaster | f354b8d112 | 
|  | @ -4,7 +4,7 @@ These are the files for a ... book? story? I'm writing. | ||||||
| Not really sure what to call it. It's a website. | Not really sure what to call it. It's a website. | ||||||
| 
 | 
 | ||||||
| You can read it here: https://book.lostcave.ddnss.de/ | You can read it here: https://book.lostcave.ddnss.de/ | ||||||
| If that doesn't work for you, there will be a mirror on GitHub (tbd). | If that doesn't work for you, there is a mirror on GitHub: https://bodgemaster.github.io/new_dawn_mirror/ | ||||||
| 
 | 
 | ||||||
| If you want to read it offline, you can `git clone` this (or just download | If you want to read it offline, you can `git clone` this (or just download | ||||||
| the files). | the files). | ||||||
|  |  | ||||||
							
								
								
									
										166
									
								
								ea-RTFM.html
								
								
								
								
							
							
						
						
									
										166
									
								
								ea-RTFM.html
								
								
								
								
							|  | @ -4,11 +4,12 @@ | ||||||
| <!-- perspective: Annie --> | <!-- perspective: Annie --> | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   Annie rings the doorbell and waits. Nobody answers. She checks that |   Annie arrives at a house with multiple ground-level entrances. | ||||||
|   she's at the right door – yes, this is grandpa Karl's |   She rings one of the doorbells and waits. Nobody answers. She checks | ||||||
|  |   that it is the right door – yes, this is grandpa Karl's | ||||||
|   apartment. She rings again. A window on <span class="comment">in?</span> |   apartment. She rings again. A window on <span class="comment">in?</span> | ||||||
|   one of the adjacent houses opens and she hears Isabelle quietly |   one of the adjacent houses opens and she hears Isabelle quietly calling | ||||||
|   calling her.<br /> |   her:<br /> | ||||||
|   <span class="quote speech">Annie, we're over here.</span><br /> |   <span class="quote speech">Annie, we're over here.</span><br /> | ||||||
|   She walks over.<br /> |   She walks over.<br /> | ||||||
|   <span class="quote speech">Which door?</span><br /> |   <span class="quote speech">Which door?</span><br /> | ||||||
|  | @ -21,30 +22,149 @@ | ||||||
|   This place has been <span class="comment">vacant</span> forever, might |   This place has been <span class="comment">vacant</span> forever, might | ||||||
|   as well use it.</span><br /> |   as well use it.</span><br /> | ||||||
|   Annie slides her shoes off and leans her bag against the wall. Then, |   Annie slides her shoes off and leans her bag against the wall. Then, | ||||||
|   they go to the living room where cables and computer parts are all over |   they go into the living room where cables and computer parts are all over | ||||||
|   the floor. Lucas sits in front of the rack between two opened boxes. |   the floor. Lucas sits in front of the rack between two opened boxes. | ||||||
|   The rack's side panels had been removed, revealing the rails holding |   The rack's side panels had been removed, revealing the devices | ||||||
|   the various devices inside and their power cables. Lucas is pushing |   mounted inside and the cables connecting them. Lucas is pushing a circuit | ||||||
|   a circuit board into a half-assembled device that hangs out the front. |   board into a half-assembled metal box that hangs out the front. Karl goes | ||||||
|   Karl goes over to a stool next to the rack, carefully avoiding stepping |   over to a stool next to the rack, carefully avoiding stepping on things, | ||||||
|   on things, and sits down. |   and sits down. | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Annie sits down next to Lucas and watches as he carefully inserts one |   Annie sits down next to Lucas and watches as he carefully | ||||||
|   board after the other. Karl is looking at the manual and tells him |   <span class="comment">synonym for careful?</span> inserts another | ||||||
|   to set some tiny switches on the front of some of them.<br /> |   board. Karl is reading from a binder of documentation and tells him to | ||||||
|   Karl says: <span class="quote speech">Annie, can you hand me these four |   set some tiny switches on its front edge.<br /> | ||||||
|   gray ribbon cables?</span><br /> |   While grabbing the next board, Lucas says: | ||||||
|   She looks around, lots of different cables everywhere.<br /> |   <span class="quote speech">Annie, can you take these and prepare the DIP | ||||||
|   <span class="quote speech">The wide, flat ones to your left.</span><br /> |   switches?</span><br /> | ||||||
|   He takes them and plugs them somewhere into the back of the rack. |   He pushes the box over to her. It contains four circuit boards, all | ||||||
|  |   identical.<br /> | ||||||
|  |   <span class="quote speech">Uhm, okay.</span> | ||||||
|  |   She takes one of the boards out and looks at it. It's full of | ||||||
|  |   electronic components on both sides and one of the edges holds a tiny red | ||||||
|  |   box with an even tinier row of switches on it.<br /> | ||||||
|  |   <span class="comment">Above is a bad description. Need naive description | ||||||
|  |   of DIP switches from someone who doesn't know.</span><br /> | ||||||
|  |   <span class="quote speech">So what do I set them to?</span><br /> | ||||||
|  |   Karl tells her a combination and she tries to push the switches up or | ||||||
|  |   down as needed with her finger nails.<br /> | ||||||
|  |   Lucas says <span class="quote speech">Here, use this.</span> and hands | ||||||
|  |   her a pen.<br /> | ||||||
|  |   Using it to flip the switches, she sets the combination Karl says, then | ||||||
|  |   hands the board over to Lucas and grabs the next one. | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Isabelle grabs the terminal from a corner of the room and lifts it onto |   Karl takes the racks's power cable and plugs it in. Isabelle gets | ||||||
|   the rack. Meanwhile, Annie and Lucas start collecting the cables and |   the terminal from a corner of the room and lifts it onto the rack. | ||||||
|   loose parts from the floor. Karl plugs rack and terminal into power and |   Meanwhile, Annie and Lucas start collecting the cables and loose parts | ||||||
|   connects a cable between the terminal and one of the devices in the front |   from the floor. Isabelle plugs the terminal into power and Karl connects | ||||||
|   of the rack. |   a cable between it and one of the devices in the front of the rack. | ||||||
|  |   They all gather around and Karl powers it on. He follows the same | ||||||
|  |   procedure that Annie and Isabelle performed in the library: Key switch | ||||||
|  |   at the top of the rack to <span class="quote non-speech">RST</span>, | ||||||
|  |   power up the hard drive, hold <span class="quote non-speech">LOAD</span> | ||||||
|  |   and key switch to <span class="quote non-speech">RUN</span>. Then, he | ||||||
|  |   pulls a floppy disk out of the documentation binder and inserts it into | ||||||
|  |   the computer. He enters some commands, the drive clicks a few times, and | ||||||
|  |   the terminal displays a menu. | ||||||
| </p> | </p> | ||||||
|  | <!-- | ||||||
|  |   Hardware in this machine: | ||||||
|  |   - 1x HDD (platters: 1 removable, 3 fixed) | ||||||
|  |   - 2x FDD | ||||||
|  |   - 2x backplane (8 slots each) | ||||||
|  |     - CPU (1 board) | ||||||
|  |     - FPU (1 board) (removed, replaced with NC 2000) | ||||||
|  |     - Number Cruncher 2000 (4 boards) | ||||||
|  |     - HDDC (1 board) | ||||||
|  |     - FDDC (1 board) | ||||||
|  |     - MTDC (1 board) | ||||||
|  |     - memory (8 boards) | ||||||
|  |   - 1x PDU | ||||||
|  |   - 1x MTD | ||||||
|  | 
 | ||||||
|  |    16M =  16777216 => 0x00000000 to 0x00FFFFFF | ||||||
|  |    64M =  67108864 => 0x00000000 to 0x03FFFFFF | ||||||
|  |   128M = 134217728 => 0x00000000 to 0x07FFFFFF | ||||||
|  | 
 | ||||||
|  |   -> 32-bit address bus | ||||||
|  | 
 | ||||||
|  |   1 PC SIMM = ~1MiB | ||||||
|  |   16 SIMMS = 1 memory board => 8 boards installed, 128M | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |   //TODO: realistic EPROM sizes? | ||||||
|  |   ROMs: | ||||||
|  |     32k platform code (bootrom) | ||||||
|  |     8k  FDDC | ||||||
|  |     8k  HDDC | ||||||
|  |     8k  MTDC | ||||||
|  | 
 | ||||||
|  |   Registers: | ||||||
|  |   - CPU: 32x 8 bit? - are these mapped into RAM? | ||||||
|  |     - A (32-bit) / Split registers 2x16-bit, 4x8-bit | ||||||
|  |     - B (32-bit) / Split registers 2x16-bit, 4x8-bit | ||||||
|  |     - C (32-bit) / Split registers 2x16-bit, 4x8-bit | ||||||
|  |     - D (32-bit) / Split registers 2x16-bit, 4x8-bit | ||||||
|  |     - Address pointer (32-bit) | ||||||
|  |     - Flags (32-bit) | ||||||
|  |     - Interrupt Return Pointer (32-bit) | ||||||
|  |     - software interrupt capabilities? | ||||||
|  |     - context switching capabilities? | ||||||
|  |     - timers? | ||||||
|  |     - ? | ||||||
|  |   - Number Cruncher 2000: | ||||||
|  |     - Instruction Register (32-bit) | ||||||
|  |     - Flags (32-bit) | ||||||
|  |     - 32x 32-bit / 16x 64-bit general-purpose register | ||||||
|  |     - DMA load pointer (32-bit) | ||||||
|  | 
 | ||||||
|  | --> | ||||||
|  | <pre class="terminal"> | ||||||
|  | [ SYSTEM DIAGNOSTICS v3.15 ] | ||||||
|  | ---------------------------- | ||||||
|  | 
 | ||||||
|  | 1. Quick Test | ||||||
|  | 2. Run All Tests | ||||||
|  | 3. CPU Test | ||||||
|  | 4. Memory Test | ||||||
|  | 5. FPU Test | ||||||
|  | 6. DMA Test | ||||||
|  | 7. Serial Test | ||||||
|  | 8. FDD Test | ||||||
|  | 9. HDD Test | ||||||
|  | 10. MTD Test | ||||||
|  | 11. Load Module... | ||||||
|  | 
 | ||||||
|  | Choice: █ | ||||||
|  | </pre> | ||||||
|  | <p> | ||||||
|  |   Lucas asks: | ||||||
|  |   <span class="quote speech">Odds of this working first try?</span><br /> | ||||||
|  |   Karl says: <span class="quote speech">We will see...</span><br /> | ||||||
|  |   He types a number and presses enter. | ||||||
|  | </p> | ||||||
|  | <pre class="terminal"> | ||||||
|  | Choice: 2 | ||||||
|  | 
 | ||||||
|  | Initializing... | ||||||
|  | Loading CPU Test... | ||||||
|  |   Registers:  Pass  Branching:  Pass | ||||||
|  |   ALU:        Pass  Long Words: Pass | ||||||
|  |   All Instrct:Pass  Stress Test:Pass | ||||||
|  | Result: PASSED | ||||||
|  | Loading Memory Test... | ||||||
|  |   Memory map: | ||||||
|  |     00000000- | ||||||
|  | Result: FAIL | ||||||
|  | Loading FPU Test... | ||||||
|  |   NC2K OpROM init | ||||||
|  |   FP Arithmetic Test | ||||||
|  |   SIMD Test | ||||||
|  |   <!-- TODO: what kinda tests does this thing do? --> | ||||||
|  | Result: FAIL <!-- because memory error --> | ||||||
|  | </pre> | ||||||
| 
 | 
 | ||||||
| <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||||
|  |  | ||||||
|  | @ -8,10 +8,10 @@ | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   Jack puts the soldering iron back into its holder and admires his |   Jack puts the soldering iron back into its holder and admires his | ||||||
|   creation. This hack job of bodge wires and not quite the right |   creation. This hack job of bodge wires and not quite right replacement | ||||||
|   replacement components, held together by what remains of the corroded |   components, held together by what remains of the corroded motor driver | ||||||
|   motor driver board is truly beautiful in the ugliest way possible – |   board is truly beautiful in the ugliest way possible – in his eyes | ||||||
|   in his eyes at least. He picks it up and ispects the other side. |   at least. He picks it up and ispects the other side.<br /> | ||||||
|   <span class="quote non-speech">Probably good enough.</span><br /> |   <span class="quote non-speech">Probably good enough.</span><br /> | ||||||
|   <span class="comment">A note on the spelling of "bodge": |   <span class="comment">A note on the spelling of "bodge": | ||||||
|   You may or may not have noticed that I tend to stick to American English. |   You may or may not have noticed that I tend to stick to American English. | ||||||
|  | @ -22,8 +22,44 @@ | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Jack gets up and walks over to the bunker door. He mounts the board to |   Jack gets up and walks over to the bunker door. He mounts the board to | ||||||
|   the motor – using only two of the screws – and attaches the |   the motor – using only two of the screws – and begins | ||||||
|   wires. |   connecting the wires. The moment the power cable comes into contact with | ||||||
|  |   the board, the motor starts making a harsh buzzing sound. He drops the | ||||||
|  |   cable and it stops.<br /> | ||||||
|  |   <span class="quote speech">So that's why this was burnt out.</span> | ||||||
|  |   <br /> | ||||||
|  |   He fetches a multimeter and pokes around the board and the mess of wires. | ||||||
|  |   One of the control wires is stuck on. | ||||||
|  | </p> | ||||||
|  | <p> | ||||||
|  |   After a bit of fiddling with the electronics under the door controls, | ||||||
|  |   he gives up and removes all the control wires. Then, he bolts the cables | ||||||
|  |   for power and ground to their lugs and connects another wire to the power | ||||||
|  |   cable. He touches it to one of the contacts. There's that buzzing | ||||||
|  |   again. He touches it to the next one, The motor starts spinning and the | ||||||
|  |   bunker door begins to move. It squeaks and scratches as it slowly | ||||||
|  |   retracts into the ceiling. | ||||||
|  | </p> | ||||||
|  | <p class="comment"> | ||||||
|  |   Lay of the land from a neutral perspective:<br /> | ||||||
|  |   The bunker sits about a third up the side of a small valley with | ||||||
|  |   a small river flowing in the middle. The bunker door faces north, down | ||||||
|  |   into the valley. The valley opens up and gets larger to the west and | ||||||
|  |   gets narrower/smaller and ends to the south-east. | ||||||
|  |   In front of the bunker is a small flat area that is overgrown with | ||||||
|  |   bushes. The flat area connects to a road coming from around the | ||||||
|  |   mountain to the south-west and going a bit past the bunker to the east, | ||||||
|  |   where it then takes a turn and crosses over a bridge to the other side. | ||||||
|  |   From there, it follows the valley back to the west and disappears | ||||||
|  |   around a mountain to the north-west. | ||||||
|  |   In the next valley over to the north is the city of Ivydale. | ||||||
|  |   The land gets flatter from there to the north-west, the location of | ||||||
|  |   Ivydale's larger sister city Sentinel Shores. | ||||||
|  | </p> | ||||||
|  | <p> | ||||||
|  |   Jack takes the wire off the contact and leaves it dangling. He steps | ||||||
|  |   forward and looks outside. The area in front of the bunker is completely | ||||||
|  |   overgrown with large bushes. He pushes the leaves aside and  | ||||||
| </p> | </p> | ||||||
| 
 | 
 | ||||||
| <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||||
|  |  | ||||||
|  | @ -86,6 +86,7 @@ | ||||||
|   the place, some even out of the buildings' walls. Dora runs up |   the place, some even out of the buildings' walls. Dora runs up | ||||||
|   to one of the bushes and barks at it. A young fox jumps out and runs |   to one of the bushes and barks at it. A young fox jumps out and runs | ||||||
|   away.<br /> |   away.<br /> | ||||||
|  |   James calls her back: | ||||||
|   <span class="quote speech">Dora, c'mere!</span> |   <span class="quote speech">Dora, c'mere!</span> | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|  |  | ||||||
|  | @ -133,13 +133,13 @@ | ||||||
|   and Jack. <span class="quote speech">Follow me.</span> |   and Jack. <span class="quote speech">Follow me.</span> | ||||||
| </p> | </p> | ||||||
| <p> | <p> | ||||||
|   Mary says: <span class="quote speech">The closest access point is right |   Mary says: <span class="quote speech">The closest access hole is right | ||||||
|   there, behind the store.</span><br /> |   there, behind the store.</span><br /> | ||||||
|   They walk around it and onto a field of <span class="comment">withering? |   They walk around it and onto a field of <span class="comment">withering? | ||||||
|   </span> plants. A large, partially buried pipe with just the top exposed |   </span> plants. A large, partially buried pipe with just the top exposed | ||||||
|   goes through it with an access hatch roughly in the center of the field. |   goes through it with an access hatch roughly in the center of the field. | ||||||
|   Right next to the hatch is a <span class="comment">Gestell?</span> with |   Right next to the hatch is a <span class="comment">Gestell?</span> with | ||||||
|   a boom to lower a large bucket into the access hatch.<br /> |   a boom to lower a large bucket down into it.<br /> | ||||||
|   Jack asks: <span class="quote speech">Is it all like this, buried pipes |   Jack asks: <span class="quote speech">Is it all like this, buried pipes | ||||||
|   going to fields?</span><br /> |   going to fields?</span><br /> | ||||||
|   <span class="quote speech">Mostly. In the greenhouses, it's just |   <span class="quote speech">Mostly. In the greenhouses, it's just | ||||||
|  | @ -150,28 +150,12 @@ | ||||||
|   connects to the inlet. It's a bit of a walk but I can show |   connects to the inlet. It's a bit of a walk but I can show | ||||||
|   you.</span><br /> |   you.</span><br /> | ||||||
|   She gestures for them to follow but Jack stops her:<br /> |   She gestures for them to follow but Jack stops her:<br /> | ||||||
|   <span class="quote speech">Wait, we can take the truck.</span><br /> |   <span class="quote speech">Wait, we can drive there.</span><br /> | ||||||
|   <span class="quote speech">That's <i>your</i> car?</span><br /> |   <span class="quote speech">That's <i>your</i> car? Heck yeah!</span> | ||||||
|   Her sudden excitement seems to take Jack by surprise.<br /> |  | ||||||
|   <span class="quote speech">Uhh... yeah.</span><br /> |  | ||||||
|   <span class="quote speech">That's so cool! I've only ever seen |  | ||||||
|   the broken ones by the side of the road. We gonna drive there?</span> |  | ||||||
|   <br /> |   <br /> | ||||||
|   <span class="quote speech">If you show the way.</span><br /> |   <span class="quote speech">Uhh... yes.</span><br /> | ||||||
|   <span class="quote speech">Heck yeah!</span> |   He seems to be taken aback by her sudden excitement.<br /> | ||||||
| </p> |   <span class="comment">Missing: explanation, they go to car, Mary sits in | ||||||
| <p class="comment"> |   the front with Jack</span> | ||||||
|   Not sure of this should be the end of a chapter or if I should continue |  | ||||||
|   here.<br /> |  | ||||||
|   One thing that has happened is that this chapter, while written from |  | ||||||
|   Annie's perspective, has her be a passive bystander without even |  | ||||||
|   having any introspection for most of it. This needs to be adressed |  | ||||||
|   somehow. |  | ||||||
| </p> |  | ||||||
| <p class="comment"> |  | ||||||
|   Description of the inlet: Two <translate: Stauwehre>, a large one |  | ||||||
|   and a small one. The small one can be adjusted with large screws. |  | ||||||
|   Behind the small one is a pit with a grate covering the tunnel entrance. |  | ||||||
|   They see a railway bridge not too far upstream. |  | ||||||
| </p> | </p> | ||||||
| <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | <p class="copyright">Copyright © 2023-2025 Jan Danielzick (aka. BodgeMaster) – All rights reserved.</p><script>let spans = ["<span class=\"paper green\">", "<span>"]; let pre_texts = document.getElementsByTagName("pre"); for (let i = 0; i < pre_texts.length; i++) {if (pre_texts[i].className != "paper") continue; let lines = pre_texts[i].innerHTML.split("\n"); let result = ""; for (let j = 0; j < lines.length; j++) {if (lines[j].length >= 80) result = result + spans[j%2] + lines[j] + "</span>\n"; else result = result + spans[j%2] + lines[j] + " ".repeat(80-lines[j].length) + "</span>\n";} pre_texts[i].innerHTML = result;}</script></body></html> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue