rv64ud-v-structural:     file format elf64-littleriscv

Disassembly of section .text.init:

0000000080000000 <_start>:
    80000000:	00c0006f          	j	8000000c <handle_reset>

0000000080000004 <nmi_vector>:
    80000004:	25c0206f          	j	80002260 <wtf>

0000000080000008 <trap_vector>:
    80000008:	2580206f          	j	80002260 <wtf>

000000008000000c <handle_reset>:
    8000000c:	00000297          	auipc	t0,0x0
    80000010:	ffc28293          	addi	t0,t0,-4 # 80000008 <trap_vector>
    80000014:	30529073          	csrw	mtvec,t0
    80000018:	00008117          	auipc	sp,0x8
    8000001c:	6b810113          	addi	sp,sp,1720 # 800086d0 <_end+0xee0>
    80000020:	f14022f3          	csrr	t0,mhartid
    80000024:	00c29293          	slli	t0,t0,0xc
    80000028:	00510133          	add	sp,sp,t0
    8000002c:	34011073          	csrw	mscratch,sp
    80000030:	2b1020ef          	jal	ra,80002ae0 <extra_boot>
    80000034:	00003517          	auipc	a0,0x3
    80000038:	ab050513          	addi	a0,a0,-1360 # 80002ae4 <userstart>
    8000003c:	0a50206f          	j	800028e0 <vm_boot>

0000000080000040 <pop_tf>:
    80000040:	10853283          	ld	t0,264(a0)
    80000044:	14129073          	csrw	sepc,t0
    80000048:	00853083          	ld	ra,8(a0)
    8000004c:	01053103          	ld	sp,16(a0)
    80000050:	01853183          	ld	gp,24(a0)
    80000054:	02053203          	ld	tp,32(a0)
    80000058:	02853283          	ld	t0,40(a0)
    8000005c:	03053303          	ld	t1,48(a0)
    80000060:	03853383          	ld	t2,56(a0)
    80000064:	04053403          	ld	s0,64(a0)
    80000068:	04853483          	ld	s1,72(a0)
    8000006c:	05853583          	ld	a1,88(a0)
    80000070:	06053603          	ld	a2,96(a0)
    80000074:	06853683          	ld	a3,104(a0)
    80000078:	07053703          	ld	a4,112(a0)
    8000007c:	07853783          	ld	a5,120(a0)
    80000080:	08053803          	ld	a6,128(a0)
    80000084:	08853883          	ld	a7,136(a0)
    80000088:	09053903          	ld	s2,144(a0)
    8000008c:	09853983          	ld	s3,152(a0)
    80000090:	0a053a03          	ld	s4,160(a0)
    80000094:	0a853a83          	ld	s5,168(a0)
    80000098:	0b053b03          	ld	s6,176(a0)
    8000009c:	0b853b83          	ld	s7,184(a0)
    800000a0:	0c053c03          	ld	s8,192(a0)
    800000a4:	0c853c83          	ld	s9,200(a0)
    800000a8:	0d053d03          	ld	s10,208(a0)
    800000ac:	0d853d83          	ld	s11,216(a0)
    800000b0:	0e053e03          	ld	t3,224(a0)
    800000b4:	0e853e83          	ld	t4,232(a0)
    800000b8:	0f053f03          	ld	t5,240(a0)
    800000bc:	0f853f83          	ld	t6,248(a0)
    800000c0:	05053503          	ld	a0,80(a0)
    800000c4:	10200073          	sret

00000000800000c8 <trap_entry>:
    800000c8:	14011173          	csrrw	sp,sscratch,sp
    800000cc:	00113423          	sd	ra,8(sp)
    800000d0:	00313c23          	sd	gp,24(sp)
    800000d4:	02413023          	sd	tp,32(sp)
    800000d8:	02513423          	sd	t0,40(sp)
    800000dc:	02613823          	sd	t1,48(sp)
    800000e0:	02713c23          	sd	t2,56(sp)
    800000e4:	04813023          	sd	s0,64(sp)
    800000e8:	04913423          	sd	s1,72(sp)
    800000ec:	04a13823          	sd	a0,80(sp)
    800000f0:	04b13c23          	sd	a1,88(sp)
    800000f4:	06c13023          	sd	a2,96(sp)
    800000f8:	06d13423          	sd	a3,104(sp)
    800000fc:	06e13823          	sd	a4,112(sp)
    80000100:	06f13c23          	sd	a5,120(sp)
    80000104:	09013023          	sd	a6,128(sp)
    80000108:	09113423          	sd	a7,136(sp)
    8000010c:	09213823          	sd	s2,144(sp)
    80000110:	09313c23          	sd	s3,152(sp)
    80000114:	0b413023          	sd	s4,160(sp)
    80000118:	0b513423          	sd	s5,168(sp)
    8000011c:	0b613823          	sd	s6,176(sp)
    80000120:	0b713c23          	sd	s7,184(sp)
    80000124:	0d813023          	sd	s8,192(sp)
    80000128:	0d913423          	sd	s9,200(sp)
    8000012c:	0da13823          	sd	s10,208(sp)
    80000130:	0db13c23          	sd	s11,216(sp)
    80000134:	0fc13023          	sd	t3,224(sp)
    80000138:	0fd13423          	sd	t4,232(sp)
    8000013c:	0fe13823          	sd	t5,240(sp)
    80000140:	0ff13c23          	sd	t6,248(sp)
    80000144:	140112f3          	csrrw	t0,sscratch,sp
    80000148:	00513823          	sd	t0,16(sp)
    8000014c:	100022f3          	csrr	t0,sstatus
    80000150:	10513023          	sd	t0,256(sp)
    80000154:	141022f3          	csrr	t0,sepc
    80000158:	10513423          	sd	t0,264(sp)
    8000015c:	143022f3          	csrr	t0,stval
    80000160:	10513823          	sd	t0,272(sp)
    80000164:	142022f3          	csrr	t0,scause
    80000168:	10513c23          	sd	t0,280(sp)
    8000016c:	00010513          	mv	a0,sp
    80000170:	4380206f          	j	800025a8 <handle_trap>

Disassembly of section .text:

0000000080002000 <memcpy>:
    80002000:	00c5e7b3          	or	a5,a1,a2
    80002004:	00f567b3          	or	a5,a0,a5
    80002008:	0077f793          	andi	a5,a5,7
    8000200c:	00c506b3          	add	a3,a0,a2
    80002010:	02078463          	beqz	a5,80002038 <memcpy+0x38>
    80002014:	00c58633          	add	a2,a1,a2
    80002018:	00050793          	mv	a5,a0
    8000201c:	02d57e63          	bgeu	a0,a3,80002058 <memcpy+0x58>
    80002020:	00158593          	addi	a1,a1,1
    80002024:	fff5c703          	lbu	a4,-1(a1)
    80002028:	00178793          	addi	a5,a5,1
    8000202c:	fee78fa3          	sb	a4,-1(a5)
    80002030:	feb618e3          	bne	a2,a1,80002020 <memcpy+0x20>
    80002034:	00008067          	ret
    80002038:	fed57ee3          	bgeu	a0,a3,80002034 <memcpy+0x34>
    8000203c:	00050793          	mv	a5,a0
    80002040:	00858593          	addi	a1,a1,8
    80002044:	ff85b703          	ld	a4,-8(a1)
    80002048:	00878793          	addi	a5,a5,8
    8000204c:	fee7bc23          	sd	a4,-8(a5)
    80002050:	fed7e8e3          	bltu	a5,a3,80002040 <memcpy+0x40>
    80002054:	00008067          	ret
    80002058:	00008067          	ret

000000008000205c <memset>:
    8000205c:	00c567b3          	or	a5,a0,a2
    80002060:	0077f793          	andi	a5,a5,7
    80002064:	00c50633          	add	a2,a0,a2
    80002068:	0ff5f593          	andi	a1,a1,255
    8000206c:	00078e63          	beqz	a5,80002088 <memset+0x2c>
    80002070:	00050793          	mv	a5,a0
    80002074:	04c57263          	bgeu	a0,a2,800020b8 <memset+0x5c>
    80002078:	00178793          	addi	a5,a5,1
    8000207c:	feb78fa3          	sb	a1,-1(a5)
    80002080:	fef61ce3          	bne	a2,a5,80002078 <memset+0x1c>
    80002084:	00008067          	ret
    80002088:	00859793          	slli	a5,a1,0x8
    8000208c:	00b7e5b3          	or	a1,a5,a1
    80002090:	01059793          	slli	a5,a1,0x10
    80002094:	00b7e7b3          	or	a5,a5,a1
    80002098:	02079593          	slli	a1,a5,0x20
    8000209c:	00f5e5b3          	or	a1,a1,a5
    800020a0:	fec572e3          	bgeu	a0,a2,80002084 <memset+0x28>
    800020a4:	00050793          	mv	a5,a0
    800020a8:	00878793          	addi	a5,a5,8
    800020ac:	feb7bc23          	sd	a1,-8(a5)
    800020b0:	fec7ece3          	bltu	a5,a2,800020a8 <memset+0x4c>
    800020b4:	00008067          	ret
    800020b8:	00008067          	ret

00000000800020bc <strlen>:
    800020bc:	00054783          	lbu	a5,0(a0)
    800020c0:	00078e63          	beqz	a5,800020dc <strlen+0x20>
    800020c4:	00050793          	mv	a5,a0
    800020c8:	00178793          	addi	a5,a5,1
    800020cc:	0007c703          	lbu	a4,0(a5)
    800020d0:	fe071ce3          	bnez	a4,800020c8 <strlen+0xc>
    800020d4:	40a78533          	sub	a0,a5,a0
    800020d8:	00008067          	ret
    800020dc:	00000513          	li	a0,0
    800020e0:	00008067          	ret

00000000800020e4 <strcmp>:
    800020e4:	00150513          	addi	a0,a0,1
    800020e8:	fff54783          	lbu	a5,-1(a0)
    800020ec:	00158593          	addi	a1,a1,1
    800020f0:	fff5c703          	lbu	a4,-1(a1)
    800020f4:	00078a63          	beqz	a5,80002108 <strcmp+0x24>
    800020f8:	fee786e3          	beq	a5,a4,800020e4 <strcmp>
    800020fc:	0007851b          	sext.w	a0,a5
    80002100:	40e5053b          	subw	a0,a0,a4
    80002104:	00008067          	ret
    80002108:	00000513          	li	a0,0
    8000210c:	ff5ff06f          	j	80002100 <strcmp+0x1c>

0000000080002110 <memcmp>:
    80002110:	00b567b3          	or	a5,a0,a1
    80002114:	0077f793          	andi	a5,a5,7
    80002118:	04079463          	bnez	a5,80002160 <memcmp+0x50>
    8000211c:	ff867813          	andi	a6,a2,-8
    80002120:	01050833          	add	a6,a0,a6
    80002124:	03057e63          	bgeu	a0,a6,80002160 <memcmp+0x50>
    80002128:	0005b703          	ld	a4,0(a1)
    8000212c:	00053783          	ld	a5,0(a0)
    80002130:	02f71863          	bne	a4,a5,80002160 <memcmp+0x50>
    80002134:	00050793          	mv	a5,a0
    80002138:	0100006f          	j	80002148 <memcmp+0x38>
    8000213c:	0007b683          	ld	a3,0(a5)
    80002140:	0005b703          	ld	a4,0(a1)
    80002144:	00e69863          	bne	a3,a4,80002154 <memcmp+0x44>
    80002148:	00878793          	addi	a5,a5,8
    8000214c:	00858593          	addi	a1,a1,8
    80002150:	ff07e6e3          	bltu	a5,a6,8000213c <memcmp+0x2c>
    80002154:	40a78533          	sub	a0,a5,a0
    80002158:	40a60633          	sub	a2,a2,a0
    8000215c:	00078513          	mv	a0,a5
    80002160:	00c58633          	add	a2,a1,a2
    80002164:	0140006f          	j	80002178 <memcmp+0x68>
    80002168:	00158593          	addi	a1,a1,1
    8000216c:	fff54783          	lbu	a5,-1(a0)
    80002170:	fff5c703          	lbu	a4,-1(a1)
    80002174:	00e79a63          	bne	a5,a4,80002188 <memcmp+0x78>
    80002178:	00150513          	addi	a0,a0,1
    8000217c:	fec596e3          	bne	a1,a2,80002168 <memcmp+0x58>
    80002180:	00000513          	li	a0,0
    80002184:	00008067          	ret
    80002188:	40e7853b          	subw	a0,a5,a4
    8000218c:	00008067          	ret

0000000080002190 <strcpy>:
    80002190:	00050793          	mv	a5,a0
    80002194:	00158593          	addi	a1,a1,1
    80002198:	fff5c703          	lbu	a4,-1(a1)
    8000219c:	00178793          	addi	a5,a5,1
    800021a0:	fee78fa3          	sb	a4,-1(a5)
    800021a4:	fe0718e3          	bnez	a4,80002194 <strcpy+0x4>
    800021a8:	00008067          	ret

00000000800021ac <atol>:
    800021ac:	00054783          	lbu	a5,0(a0)
    800021b0:	02000713          	li	a4,32
    800021b4:	00e79863          	bne	a5,a4,800021c4 <atol+0x18>
    800021b8:	00150513          	addi	a0,a0,1
    800021bc:	00054783          	lbu	a5,0(a0)
    800021c0:	fee78ce3          	beq	a5,a4,800021b8 <atol+0xc>
    800021c4:	fd57871b          	addiw	a4,a5,-43
    800021c8:	0fd77713          	andi	a4,a4,253
    800021cc:	04070263          	beqz	a4,80002210 <atol+0x64>
    800021d0:	00054683          	lbu	a3,0(a0)
    800021d4:	00050793          	mv	a5,a0
    800021d8:	00000613          	li	a2,0
    800021dc:	04068863          	beqz	a3,8000222c <atol+0x80>
    800021e0:	00000513          	li	a0,0
    800021e4:	00178793          	addi	a5,a5,1
    800021e8:	fd06859b          	addiw	a1,a3,-48
    800021ec:	00251713          	slli	a4,a0,0x2
    800021f0:	0007c683          	lbu	a3,0(a5)
    800021f4:	00a70533          	add	a0,a4,a0
    800021f8:	00151513          	slli	a0,a0,0x1
    800021fc:	00a58533          	add	a0,a1,a0
    80002200:	fe0692e3          	bnez	a3,800021e4 <atol+0x38>
    80002204:	00060463          	beqz	a2,8000220c <atol+0x60>
    80002208:	40a00533          	neg	a0,a0
    8000220c:	00008067          	ret
    80002210:	00154683          	lbu	a3,1(a0)
    80002214:	fd378793          	addi	a5,a5,-45
    80002218:	0017b613          	seqz	a2,a5
    8000221c:	00150793          	addi	a5,a0,1
    80002220:	fc0690e3          	bnez	a3,800021e0 <atol+0x34>
    80002224:	00000513          	li	a0,0
    80002228:	fddff06f          	j	80002204 <atol+0x58>
    8000222c:	00000513          	li	a0,0
    80002230:	00008067          	ret

0000000080002234 <terminate>:
    80002234:	fffff797          	auipc	a5,0xfffff
    80002238:	dcc78793          	addi	a5,a5,-564 # 80001000 <tohost>
    8000223c:	0007b703          	ld	a4,0(a5)
    80002240:	00070a63          	beqz	a4,80002254 <terminate+0x20>
    80002244:	fffff717          	auipc	a4,0xfffff
    80002248:	de073e23          	sd	zero,-516(a4) # 80001040 <fromhost>
    8000224c:	0007b703          	ld	a4,0(a5)
    80002250:	fe071ae3          	bnez	a4,80002244 <terminate+0x10>
    80002254:	fffff797          	auipc	a5,0xfffff
    80002258:	daa7b623          	sd	a0,-596(a5) # 80001000 <tohost>
    8000225c:	0000006f          	j	8000225c <terminate+0x28>

0000000080002260 <wtf>:
    80002260:	ff010113          	addi	sp,sp,-16
    80002264:	34900513          	li	a0,841
    80002268:	00113423          	sd	ra,8(sp)
    8000226c:	fc9ff0ef          	jal	ra,80002234 <terminate>

0000000080002270 <printhex>:
    80002270:	fe010113          	addi	sp,sp,-32
    80002274:	00810613          	addi	a2,sp,8
    80002278:	01710713          	addi	a4,sp,23
    8000227c:	00900813          	li	a6,9
    80002280:	0080006f          	j	80002288 <printhex+0x18>
    80002284:	00078713          	mv	a4,a5
    80002288:	00f57793          	andi	a5,a0,15
    8000228c:	03000593          	li	a1,48
    80002290:	0ff7f693          	andi	a3,a5,255
    80002294:	00f87463          	bgeu	a6,a5,8000229c <printhex+0x2c>
    80002298:	05700593          	li	a1,87
    8000229c:	00b687bb          	addw	a5,a3,a1
    800022a0:	00f70023          	sb	a5,0(a4)
    800022a4:	00455513          	srli	a0,a0,0x4
    800022a8:	fff70793          	addi	a5,a4,-1
    800022ac:	fce61ce3          	bne	a2,a4,80002284 <printhex+0x14>
    800022b0:	00814783          	lbu	a5,8(sp)
    800022b4:	00010c23          	sb	zero,24(sp)
    800022b8:	04078463          	beqz	a5,80002300 <printhex+0x90>
    800022bc:	10100513          	li	a0,257
    800022c0:	00060693          	mv	a3,a2
    800022c4:	fffff717          	auipc	a4,0xfffff
    800022c8:	d3c70713          	addi	a4,a4,-708 # 80001000 <tohost>
    800022cc:	03051513          	slli	a0,a0,0x30
    800022d0:	00073583          	ld	a1,0(a4)
    800022d4:	00168693          	addi	a3,a3,1
    800022d8:	00a7e633          	or	a2,a5,a0
    800022dc:	00058a63          	beqz	a1,800022f0 <printhex+0x80>
    800022e0:	fffff797          	auipc	a5,0xfffff
    800022e4:	d607b023          	sd	zero,-672(a5) # 80001040 <fromhost>
    800022e8:	00073783          	ld	a5,0(a4)
    800022ec:	fe079ae3          	bnez	a5,800022e0 <printhex+0x70>
    800022f0:	0006c783          	lbu	a5,0(a3)
    800022f4:	fffff597          	auipc	a1,0xfffff
    800022f8:	d0c5b623          	sd	a2,-756(a1) # 80001000 <tohost>
    800022fc:	fc079ae3          	bnez	a5,800022d0 <printhex+0x60>
    80002300:	02010113          	addi	sp,sp,32
    80002304:	00008067          	ret

0000000080002308 <handle_fault>:
    80002308:	fffff6b7          	lui	a3,0xfffff
    8000230c:	00d50733          	add	a4,a0,a3
    80002310:	0003e7b7          	lui	a5,0x3e
    80002314:	14f77463          	bgeu	a4,a5,8000245c <handle_fault+0x154>
    80002318:	00c55893          	srli	a7,a0,0xc
    8000231c:	60088613          	addi	a2,a7,1536
    80002320:	00001817          	auipc	a6,0x1
    80002324:	ce080813          	addi	a6,a6,-800 # 80003000 <begin_signature>
    80002328:	00361793          	slli	a5,a2,0x3
    8000232c:	00f807b3          	add	a5,a6,a5
    80002330:	0007b703          	ld	a4,0(a5) # 3e000 <_start-0x7ffc2000>
    80002334:	00d57533          	and	a0,a0,a3
    80002338:	02070663          	beqz	a4,80002364 <handle_fault+0x5c>
    8000233c:	04077693          	andi	a3,a4,64
    80002340:	10068063          	beqz	a3,80002440 <handle_fault+0x138>
    80002344:	08077693          	andi	a3,a4,128
    80002348:	16069863          	bnez	a3,800024b8 <handle_fault+0x1b0>
    8000234c:	00f00693          	li	a3,15
    80002350:	16d59463          	bne	a1,a3,800024b8 <handle_fault+0x1b0>
    80002354:	08076713          	ori	a4,a4,128
    80002358:	00e7b023          	sd	a4,0(a5)
    8000235c:	12050073          	sfence.vma	a0
    80002360:	00008067          	ret
    80002364:	00005797          	auipc	a5,0x5
    80002368:	48478793          	addi	a5,a5,1156 # 800077e8 <freelist_head>
    8000236c:	0007b703          	ld	a4,0(a5)
    80002370:	18070c63          	beqz	a4,80002508 <handle_fault+0x200>
    80002374:	00873783          	ld	a5,8(a4)
    80002378:	00005697          	auipc	a3,0x5
    8000237c:	46868693          	addi	a3,a3,1128 # 800077e0 <freelist_tail>
    80002380:	0006b683          	ld	a3,0(a3)
    80002384:	00005597          	auipc	a1,0x5
    80002388:	46f5b223          	sd	a5,1124(a1) # 800077e8 <freelist_head>
    8000238c:	0cd78263          	beq	a5,a3,80002450 <handle_fault+0x148>
    80002390:	00073783          	ld	a5,0(a4)
    80002394:	00361593          	slli	a1,a2,0x3
    80002398:	00b805b3          	add	a1,a6,a1
    8000239c:	00c7d793          	srli	a5,a5,0xc
    800023a0:	00a79793          	slli	a5,a5,0xa
    800023a4:	0df7e313          	ori	t1,a5,223
    800023a8:	01f7e693          	ori	a3,a5,31
    800023ac:	0065b023          	sd	t1,0(a1)
    800023b0:	12050073          	sfence.vma	a0
    800023b4:	00005797          	auipc	a5,0x5
    800023b8:	03c78793          	addi	a5,a5,60 # 800073f0 <user_mapping>
    800023bc:	00489893          	slli	a7,a7,0x4
    800023c0:	011788b3          	add	a7,a5,a7
    800023c4:	0008b783          	ld	a5,0(a7)
    800023c8:	18079863          	bnez	a5,80002558 <handle_fault+0x250>
    800023cc:	00073783          	ld	a5,0(a4)
    800023d0:	00f8b023          	sd	a5,0(a7)
    800023d4:	00873783          	ld	a5,8(a4)
    800023d8:	00f8b423          	sd	a5,8(a7)
    800023dc:	000408b7          	lui	a7,0x40
    800023e0:	1008a8f3          	csrrs	a7,sstatus,a7
    800023e4:	ffe007b7          	lui	a5,0xffe00
    800023e8:	00f507b3          	add	a5,a0,a5
    800023ec:	000015b7          	lui	a1,0x1
    800023f0:	00050713          	mv	a4,a0
    800023f4:	00b785b3          	add	a1,a5,a1
    800023f8:	0007bf03          	ld	t5,0(a5) # ffffffffffe00000 <_end+0xffffffff7fdf8810>
    800023fc:	0087be83          	ld	t4,8(a5)
    80002400:	0107be03          	ld	t3,16(a5)
    80002404:	0187b303          	ld	t1,24(a5)
    80002408:	01e73023          	sd	t5,0(a4)
    8000240c:	01d73423          	sd	t4,8(a4)
    80002410:	01c73823          	sd	t3,16(a4)
    80002414:	00673c23          	sd	t1,24(a4)
    80002418:	02078793          	addi	a5,a5,32
    8000241c:	02070713          	addi	a4,a4,32
    80002420:	fcb79ce3          	bne	a5,a1,800023f8 <handle_fault+0xf0>
    80002424:	10089073          	csrw	sstatus,a7
    80002428:	00361613          	slli	a2,a2,0x3
    8000242c:	00c807b3          	add	a5,a6,a2
    80002430:	00d7b023          	sd	a3,0(a5)
    80002434:	12050073          	sfence.vma	a0
    80002438:	0000100f          	fence.i
    8000243c:	00008067          	ret
    80002440:	04076713          	ori	a4,a4,64
    80002444:	00e7b023          	sd	a4,0(a5)
    80002448:	12050073          	sfence.vma	a0
    8000244c:	00008067          	ret
    80002450:	00005797          	auipc	a5,0x5
    80002454:	3807b823          	sd	zero,912(a5) # 800077e0 <freelist_tail>
    80002458:	f39ff06f          	j	80002390 <handle_fault+0x88>
    8000245c:	10100613          	li	a2,257
    80002460:	04100713          	li	a4,65
    80002464:	00001697          	auipc	a3,0x1
    80002468:	9bc68693          	addi	a3,a3,-1604 # 80002e20 <userstart+0x33c>
    8000246c:	fffff797          	auipc	a5,0xfffff
    80002470:	b9478793          	addi	a5,a5,-1132 # 80001000 <tohost>
    80002474:	03061613          	slli	a2,a2,0x30
    80002478:	0007b503          	ld	a0,0(a5)
    8000247c:	00168693          	addi	a3,a3,1
    80002480:	00c765b3          	or	a1,a4,a2
    80002484:	00050a63          	beqz	a0,80002498 <handle_fault+0x190>
    80002488:	fffff717          	auipc	a4,0xfffff
    8000248c:	ba073c23          	sd	zero,-1096(a4) # 80001040 <fromhost>
    80002490:	0007b703          	ld	a4,0(a5)
    80002494:	fe071ae3          	bnez	a4,80002488 <handle_fault+0x180>
    80002498:	0006c703          	lbu	a4,0(a3)
    8000249c:	fffff517          	auipc	a0,0xfffff
    800024a0:	b6b53223          	sd	a1,-1180(a0) # 80001000 <tohost>
    800024a4:	fc071ae3          	bnez	a4,80002478 <handle_fault+0x170>
    800024a8:	ff010113          	addi	sp,sp,-16
    800024ac:	00300513          	li	a0,3
    800024b0:	00113423          	sd	ra,8(sp)
    800024b4:	d81ff0ef          	jal	ra,80002234 <terminate>
    800024b8:	10100613          	li	a2,257
    800024bc:	04100713          	li	a4,65
    800024c0:	00001697          	auipc	a3,0x1
    800024c4:	9a868693          	addi	a3,a3,-1624 # 80002e68 <userstart+0x384>
    800024c8:	fffff797          	auipc	a5,0xfffff
    800024cc:	b3878793          	addi	a5,a5,-1224 # 80001000 <tohost>
    800024d0:	03061613          	slli	a2,a2,0x30
    800024d4:	0007b503          	ld	a0,0(a5)
    800024d8:	00168693          	addi	a3,a3,1
    800024dc:	00c765b3          	or	a1,a4,a2
    800024e0:	00050a63          	beqz	a0,800024f4 <handle_fault+0x1ec>
    800024e4:	fffff717          	auipc	a4,0xfffff
    800024e8:	b4073e23          	sd	zero,-1188(a4) # 80001040 <fromhost>
    800024ec:	0007b703          	ld	a4,0(a5)
    800024f0:	fe071ae3          	bnez	a4,800024e4 <handle_fault+0x1dc>
    800024f4:	0006c703          	lbu	a4,0(a3)
    800024f8:	fffff517          	auipc	a0,0xfffff
    800024fc:	b0b53423          	sd	a1,-1272(a0) # 80001000 <tohost>
    80002500:	fc071ae3          	bnez	a4,800024d4 <handle_fault+0x1cc>
    80002504:	fa5ff06f          	j	800024a8 <handle_fault+0x1a0>
    80002508:	10100693          	li	a3,257
    8000250c:	04100713          	li	a4,65
    80002510:	00001617          	auipc	a2,0x1
    80002514:	9a060613          	addi	a2,a2,-1632 # 80002eb0 <userstart+0x3cc>
    80002518:	fffff797          	auipc	a5,0xfffff
    8000251c:	ae878793          	addi	a5,a5,-1304 # 80001000 <tohost>
    80002520:	03069693          	slli	a3,a3,0x30
    80002524:	0007b503          	ld	a0,0(a5)
    80002528:	00160613          	addi	a2,a2,1
    8000252c:	00d765b3          	or	a1,a4,a3
    80002530:	00050a63          	beqz	a0,80002544 <handle_fault+0x23c>
    80002534:	fffff717          	auipc	a4,0xfffff
    80002538:	b0073623          	sd	zero,-1268(a4) # 80001040 <fromhost>
    8000253c:	0007b703          	ld	a4,0(a5)
    80002540:	fe071ae3          	bnez	a4,80002534 <handle_fault+0x22c>
    80002544:	00064703          	lbu	a4,0(a2)
    80002548:	fffff517          	auipc	a0,0xfffff
    8000254c:	aab53c23          	sd	a1,-1352(a0) # 80001000 <tohost>
    80002550:	fc071ae3          	bnez	a4,80002524 <handle_fault+0x21c>
    80002554:	f55ff06f          	j	800024a8 <handle_fault+0x1a0>
    80002558:	10100693          	li	a3,257
    8000255c:	04100713          	li	a4,65
    80002560:	00001617          	auipc	a2,0x1
    80002564:	96860613          	addi	a2,a2,-1688 # 80002ec8 <userstart+0x3e4>
    80002568:	fffff797          	auipc	a5,0xfffff
    8000256c:	a9878793          	addi	a5,a5,-1384 # 80001000 <tohost>
    80002570:	03069693          	slli	a3,a3,0x30
    80002574:	0007b503          	ld	a0,0(a5)
    80002578:	00160613          	addi	a2,a2,1
    8000257c:	00d765b3          	or	a1,a4,a3
    80002580:	00050a63          	beqz	a0,80002594 <handle_fault+0x28c>
    80002584:	fffff717          	auipc	a4,0xfffff
    80002588:	aa073e23          	sd	zero,-1348(a4) # 80001040 <fromhost>
    8000258c:	0007b703          	ld	a4,0(a5)
    80002590:	fe071ae3          	bnez	a4,80002584 <handle_fault+0x27c>
    80002594:	00064703          	lbu	a4,0(a2)
    80002598:	fffff517          	auipc	a0,0xfffff
    8000259c:	a6b53423          	sd	a1,-1432(a0) # 80001000 <tohost>
    800025a0:	fc071ae3          	bnez	a4,80002574 <handle_fault+0x26c>
    800025a4:	f05ff06f          	j	800024a8 <handle_fault+0x1a0>

00000000800025a8 <handle_trap>:
    800025a8:	11853583          	ld	a1,280(a0)
    800025ac:	f9010113          	addi	sp,sp,-112
    800025b0:	06813023          	sd	s0,96(sp)
    800025b4:	06113423          	sd	ra,104(sp)
    800025b8:	04913c23          	sd	s1,88(sp)
    800025bc:	05213823          	sd	s2,80(sp)
    800025c0:	05313423          	sd	s3,72(sp)
    800025c4:	05413023          	sd	s4,64(sp)
    800025c8:	03513c23          	sd	s5,56(sp)
    800025cc:	03613823          	sd	s6,48(sp)
    800025d0:	03713423          	sd	s7,40(sp)
    800025d4:	03813023          	sd	s8,32(sp)
    800025d8:	01913c23          	sd	s9,24(sp)
    800025dc:	01a13823          	sd	s10,16(sp)
    800025e0:	01b13423          	sd	s11,8(sp)
    800025e4:	00800793          	li	a5,8
    800025e8:	00050413          	mv	s0,a0
    800025ec:	12f58a63          	beq	a1,a5,80002720 <handle_trap+0x178>
    800025f0:	00200793          	li	a5,2
    800025f4:	06f58063          	beq	a1,a5,80002654 <handle_trap+0xac>
    800025f8:	ff458793          	addi	a5,a1,-12 # ff4 <_start-0x7ffff00c>
    800025fc:	00100713          	li	a4,1
    80002600:	00f77663          	bgeu	a4,a5,8000260c <handle_trap+0x64>
    80002604:	00f00793          	li	a5,15
    80002608:	1ef59463          	bne	a1,a5,800027f0 <handle_trap+0x248>
    8000260c:	11043503          	ld	a0,272(s0)
    80002610:	cf9ff0ef          	jal	ra,80002308 <handle_fault>
    80002614:	00040513          	mv	a0,s0
    80002618:	06013403          	ld	s0,96(sp)
    8000261c:	06813083          	ld	ra,104(sp)
    80002620:	05813483          	ld	s1,88(sp)
    80002624:	05013903          	ld	s2,80(sp)
    80002628:	04813983          	ld	s3,72(sp)
    8000262c:	04013a03          	ld	s4,64(sp)
    80002630:	03813a83          	ld	s5,56(sp)
    80002634:	03013b03          	ld	s6,48(sp)
    80002638:	02813b83          	ld	s7,40(sp)
    8000263c:	02013c03          	ld	s8,32(sp)
    80002640:	01813c83          	ld	s9,24(sp)
    80002644:	01013d03          	ld	s10,16(sp)
    80002648:	00813d83          	ld	s11,8(sp)
    8000264c:	07010113          	addi	sp,sp,112
    80002650:	9f1fd06f          	j	80000040 <pop_tf>
    80002654:	10853703          	ld	a4,264(a0)
    80002658:	00377793          	andi	a5,a4,3
    8000265c:	06079a63          	bnez	a5,800026d0 <handle_trap+0x128>
    80002660:	008007ef          	jal	a5,80002668 <handle_trap+0xc0>
    80002664:	00301073          	fssr	zero
    80002668:	00072703          	lw	a4,0(a4)
    8000266c:	0007a783          	lw	a5,0(a5)
    80002670:	04f70c63          	beq	a4,a5,800026c8 <handle_trap+0x120>
    80002674:	10100513          	li	a0,257
    80002678:	04100793          	li	a5,65
    8000267c:	00001697          	auipc	a3,0x1
    80002680:	92468693          	addi	a3,a3,-1756 # 80002fa0 <userstart+0x4bc>
    80002684:	fffff717          	auipc	a4,0xfffff
    80002688:	97c70713          	addi	a4,a4,-1668 # 80001000 <tohost>
    8000268c:	03051513          	slli	a0,a0,0x30
    80002690:	00073583          	ld	a1,0(a4)
    80002694:	00168693          	addi	a3,a3,1
    80002698:	00a7e633          	or	a2,a5,a0
    8000269c:	00058a63          	beqz	a1,800026b0 <handle_trap+0x108>
    800026a0:	fffff797          	auipc	a5,0xfffff
    800026a4:	9a07b023          	sd	zero,-1632(a5) # 80001040 <fromhost>
    800026a8:	00073783          	ld	a5,0(a4)
    800026ac:	fe079ae3          	bnez	a5,800026a0 <handle_trap+0xf8>
    800026b0:	0006c783          	lbu	a5,0(a3)
    800026b4:	fffff597          	auipc	a1,0xfffff
    800026b8:	94c5b623          	sd	a2,-1716(a1) # 80001000 <tohost>
    800026bc:	fc079ae3          	bnez	a5,80002690 <handle_trap+0xe8>
    800026c0:	00300513          	li	a0,3
    800026c4:	b71ff0ef          	jal	ra,80002234 <terminate>
    800026c8:	00100513          	li	a0,1
    800026cc:	b69ff0ef          	jal	ra,80002234 <terminate>
    800026d0:	10100793          	li	a5,257
    800026d4:	00001617          	auipc	a2,0x1
    800026d8:	8a460613          	addi	a2,a2,-1884 # 80002f78 <userstart+0x494>
    800026dc:	04100693          	li	a3,65
    800026e0:	fffff717          	auipc	a4,0xfffff
    800026e4:	92070713          	addi	a4,a4,-1760 # 80001000 <tohost>
    800026e8:	03079793          	slli	a5,a5,0x30
    800026ec:	00073503          	ld	a0,0(a4)
    800026f0:	00160613          	addi	a2,a2,1
    800026f4:	00f6e5b3          	or	a1,a3,a5
    800026f8:	00050a63          	beqz	a0,8000270c <handle_trap+0x164>
    800026fc:	fffff697          	auipc	a3,0xfffff
    80002700:	9406b223          	sd	zero,-1724(a3) # 80001040 <fromhost>
    80002704:	00073683          	ld	a3,0(a4)
    80002708:	fe069ae3          	bnez	a3,800026fc <handle_trap+0x154>
    8000270c:	00064683          	lbu	a3,0(a2)
    80002710:	fffff517          	auipc	a0,0xfffff
    80002714:	8eb53823          	sd	a1,-1808(a0) # 80001000 <tohost>
    80002718:	fc069ae3          	bnez	a3,800026ec <handle_trap+0x144>
    8000271c:	fa5ff06f          	j	800026c0 <handle_trap+0x118>
    80002720:	05052903          	lw	s2,80(a0)
    80002724:	00001c37          	lui	s8,0x1
    80002728:	00005497          	auipc	s1,0x5
    8000272c:	cc848493          	addi	s1,s1,-824 # 800073f0 <user_mapping>
    80002730:	00001b97          	auipc	s7,0x1
    80002734:	8d0b8b93          	addi	s7,s7,-1840 # 80003000 <begin_signature>
    80002738:	00040b37          	lui	s6,0x40
    8000273c:	ffe00ab7          	lui	s5,0xffe00
    80002740:	00005a17          	auipc	s4,0x5
    80002744:	0a0a0a13          	addi	s4,s4,160 # 800077e0 <freelist_tail>
    80002748:	0003f9b7          	lui	s3,0x3f
    8000274c:	01c0006f          	j	80002768 <handle_trap+0x1c0>
    80002750:	00f73423          	sd	a5,8(a4)
    80002754:	00005717          	auipc	a4,0x5
    80002758:	08f73623          	sd	a5,140(a4) # 800077e0 <freelist_tail>
    8000275c:	000017b7          	lui	a5,0x1
    80002760:	00fc0c33          	add	s8,s8,a5
    80002764:	173c0a63          	beq	s8,s3,800028d8 <handle_trap+0x330>
    80002768:	00cc5793          	srli	a5,s8,0xc
    8000276c:	00479413          	slli	s0,a5,0x4
    80002770:	00848733          	add	a4,s1,s0
    80002774:	00073703          	ld	a4,0(a4)
    80002778:	fe0702e3          	beqz	a4,8000275c <handle_trap+0x1b4>
    8000277c:	60078793          	addi	a5,a5,1536 # 1600 <_start-0x7fffea00>
    80002780:	00379793          	slli	a5,a5,0x3
    80002784:	00fb87b3          	add	a5,s7,a5
    80002788:	0007bc83          	ld	s9,0(a5)
    8000278c:	040cf793          	andi	a5,s9,64
    80002790:	0e078e63          	beqz	a5,8000288c <handle_trap+0x2e4>
    80002794:	100b2d73          	csrrs	s10,sstatus,s6
    80002798:	015c0db3          	add	s11,s8,s5
    8000279c:	00001637          	lui	a2,0x1
    800027a0:	000d8593          	mv	a1,s11
    800027a4:	000c0513          	mv	a0,s8
    800027a8:	969ff0ef          	jal	ra,80002110 <memcmp>
    800027ac:	00050e63          	beqz	a0,800027c8 <handle_trap+0x220>
    800027b0:	080cfc93          	andi	s9,s9,128
    800027b4:	080c8663          	beqz	s9,80002840 <handle_trap+0x298>
    800027b8:	00001637          	lui	a2,0x1
    800027bc:	000d8593          	mv	a1,s11
    800027c0:	000c0513          	mv	a0,s8
    800027c4:	83dff0ef          	jal	ra,80002000 <memcpy>
    800027c8:	008487b3          	add	a5,s1,s0
    800027cc:	100d1073          	csrw	sstatus,s10
    800027d0:	000a3703          	ld	a4,0(s4)
    800027d4:	0007b023          	sd	zero,0(a5)
    800027d8:	f6071ce3          	bnez	a4,80002750 <handle_trap+0x1a8>
    800027dc:	00005717          	auipc	a4,0x5
    800027e0:	00f73223          	sd	a5,4(a4) # 800077e0 <freelist_tail>
    800027e4:	00005717          	auipc	a4,0x5
    800027e8:	00f73223          	sd	a5,4(a4) # 800077e8 <freelist_head>
    800027ec:	f71ff06f          	j	8000275c <handle_trap+0x1b4>
    800027f0:	10100793          	li	a5,257
    800027f4:	04100613          	li	a2,65
    800027f8:	00000697          	auipc	a3,0x0
    800027fc:	7d868693          	addi	a3,a3,2008 # 80002fd0 <userstart+0x4ec>
    80002800:	fffff717          	auipc	a4,0xfffff
    80002804:	80070713          	addi	a4,a4,-2048 # 80001000 <tohost>
    80002808:	03079793          	slli	a5,a5,0x30
    8000280c:	00073503          	ld	a0,0(a4)
    80002810:	00168693          	addi	a3,a3,1
    80002814:	00f665b3          	or	a1,a2,a5
    80002818:	00050a63          	beqz	a0,8000282c <handle_trap+0x284>
    8000281c:	fffff617          	auipc	a2,0xfffff
    80002820:	82063223          	sd	zero,-2012(a2) # 80001040 <fromhost>
    80002824:	00073603          	ld	a2,0(a4)
    80002828:	fe061ae3          	bnez	a2,8000281c <handle_trap+0x274>
    8000282c:	0006c603          	lbu	a2,0(a3)
    80002830:	ffffe517          	auipc	a0,0xffffe
    80002834:	7cb53823          	sd	a1,2000(a0) # 80001000 <tohost>
    80002838:	fc061ae3          	bnez	a2,8000280c <handle_trap+0x264>
    8000283c:	e85ff06f          	j	800026c0 <handle_trap+0x118>
    80002840:	10100793          	li	a5,257
    80002844:	04100613          	li	a2,65
    80002848:	00000697          	auipc	a3,0x0
    8000284c:	6f868693          	addi	a3,a3,1784 # 80002f40 <userstart+0x45c>
    80002850:	ffffe717          	auipc	a4,0xffffe
    80002854:	7b070713          	addi	a4,a4,1968 # 80001000 <tohost>
    80002858:	03079793          	slli	a5,a5,0x30
    8000285c:	00168693          	addi	a3,a3,1
    80002860:	00f665b3          	or	a1,a2,a5
    80002864:	00c0006f          	j	80002870 <handle_trap+0x2c8>
    80002868:	ffffe617          	auipc	a2,0xffffe
    8000286c:	7c063c23          	sd	zero,2008(a2) # 80001040 <fromhost>
    80002870:	00073603          	ld	a2,0(a4)
    80002874:	fe061ae3          	bnez	a2,80002868 <handle_trap+0x2c0>
    80002878:	0006c603          	lbu	a2,0(a3)
    8000287c:	ffffe517          	auipc	a0,0xffffe
    80002880:	78b53223          	sd	a1,1924(a0) # 80001000 <tohost>
    80002884:	fc061ce3          	bnez	a2,8000285c <handle_trap+0x2b4>
    80002888:	e39ff06f          	j	800026c0 <handle_trap+0x118>
    8000288c:	10100793          	li	a5,257
    80002890:	04100613          	li	a2,65
    80002894:	00000697          	auipc	a3,0x0
    80002898:	67468693          	addi	a3,a3,1652 # 80002f08 <userstart+0x424>
    8000289c:	ffffe717          	auipc	a4,0xffffe
    800028a0:	76470713          	addi	a4,a4,1892 # 80001000 <tohost>
    800028a4:	03079793          	slli	a5,a5,0x30
    800028a8:	00168693          	addi	a3,a3,1
    800028ac:	00f665b3          	or	a1,a2,a5
    800028b0:	00c0006f          	j	800028bc <handle_trap+0x314>
    800028b4:	ffffe617          	auipc	a2,0xffffe
    800028b8:	78063623          	sd	zero,1932(a2) # 80001040 <fromhost>
    800028bc:	00073603          	ld	a2,0(a4)
    800028c0:	fe061ae3          	bnez	a2,800028b4 <handle_trap+0x30c>
    800028c4:	0006c603          	lbu	a2,0(a3)
    800028c8:	ffffe517          	auipc	a0,0xffffe
    800028cc:	72b53c23          	sd	a1,1848(a0) # 80001000 <tohost>
    800028d0:	fc061ce3          	bnez	a2,800028a8 <handle_trap+0x300>
    800028d4:	dedff06f          	j	800026c0 <handle_trap+0x118>
    800028d8:	00090513          	mv	a0,s2
    800028dc:	959ff0ef          	jal	ra,80002234 <terminate>

00000000800028e0 <vm_boot>:
    800028e0:	f14027f3          	csrr	a5,mhartid
    800028e4:	18079c63          	bnez	a5,80002a7c <vm_boot+0x19c>
    800028e8:	00001697          	auipc	a3,0x1
    800028ec:	71868693          	addi	a3,a3,1816 # 80004000 <begin_signature+0x1000>
    800028f0:	00002717          	auipc	a4,0x2
    800028f4:	71070713          	addi	a4,a4,1808 # 80005000 <begin_signature+0x2000>
    800028f8:	00c6d693          	srli	a3,a3,0xc
    800028fc:	00c75713          	srli	a4,a4,0xc
    80002900:	00003797          	auipc	a5,0x3
    80002904:	70078793          	addi	a5,a5,1792 # 80006000 <begin_signature+0x3000>
    80002908:	00a69693          	slli	a3,a3,0xa
    8000290c:	00a71713          	slli	a4,a4,0xa
    80002910:	0016e693          	ori	a3,a3,1
    80002914:	00176713          	ori	a4,a4,1
    80002918:	00c7d793          	srli	a5,a5,0xc
    8000291c:	00000897          	auipc	a7,0x0
    80002920:	6ed8b223          	sd	a3,1764(a7) # 80003000 <begin_signature>
    80002924:	00a79793          	slli	a5,a5,0xa
    80002928:	00001697          	auipc	a3,0x1
    8000292c:	6ce6b823          	sd	a4,1744(a3) # 80003ff8 <begin_signature+0xff8>
    80002930:	20000737          	lui	a4,0x20000
    80002934:	0cf70713          	addi	a4,a4,207 # 200000cf <_start-0x5fffff31>
    80002938:	fff00593          	li	a1,-1
    8000293c:	0017e793          	ori	a5,a5,1
    80002940:	00000617          	auipc	a2,0x0
    80002944:	6c060613          	addi	a2,a2,1728 # 80003000 <begin_signature>
    80002948:	ed010113          	addi	sp,sp,-304
    8000294c:	03f59813          	slli	a6,a1,0x3f
    80002950:	00003697          	auipc	a3,0x3
    80002954:	6ae6b423          	sd	a4,1704(a3) # 80005ff8 <begin_signature+0x2ff8>
    80002958:	00001717          	auipc	a4,0x1
    8000295c:	6af73423          	sd	a5,1704(a4) # 80004000 <begin_signature+0x1000>
    80002960:	00c65793          	srli	a5,a2,0xc
    80002964:	12113423          	sd	ra,296(sp)
    80002968:	12813023          	sd	s0,288(sp)
    8000296c:	0107e7b3          	or	a5,a5,a6
    80002970:	18079073          	csrw	satp,a5
    80002974:	01f00793          	li	a5,31
    80002978:	00b5d593          	srli	a1,a1,0xb
    8000297c:	00000297          	auipc	t0,0x0
    80002980:	01428293          	addi	t0,t0,20 # 80002990 <vm_boot+0xb0>
    80002984:	305292f3          	csrrw	t0,mtvec,t0
    80002988:	3b059073          	csrw	pmpaddr0,a1
    8000298c:	3a079073          	csrw	pmpcfg0,a5
    80002990:	bff00813          	li	a6,-1025
    80002994:	01581813          	slli	a6,a6,0x15
    80002998:	ffffd797          	auipc	a5,0xffffd
    8000299c:	73078793          	addi	a5,a5,1840 # 800000c8 <trap_entry>
    800029a0:	010787b3          	add	a5,a5,a6
    800029a4:	10579073          	csrw	stvec,a5
    800029a8:	340027f3          	csrr	a5,mscratch
    800029ac:	010787b3          	add	a5,a5,a6
    800029b0:	14079073          	csrw	sscratch,a5
    800029b4:	0000b7b7          	lui	a5,0xb
    800029b8:	1007879b          	addiw	a5,a5,256
    800029bc:	30279073          	csrw	medeleg,a5
    800029c0:	0001e7b7          	lui	a5,0x1e
    800029c4:	30079073          	csrw	mstatus,a5
    800029c8:	30405073          	csrwi	mie,0
    800029cc:	00004697          	auipc	a3,0x4
    800029d0:	63468693          	addi	a3,a3,1588 # 80007000 <freelist_nodes>
    800029d4:	010687b3          	add	a5,a3,a6
    800029d8:	3e078713          	addi	a4,a5,992 # 1e3e0 <_start-0x7ffe1c20>
    800029dc:	00005617          	auipc	a2,0x5
    800029e0:	e0f63623          	sd	a5,-500(a2) # 800077e8 <freelist_head>
    800029e4:	00005797          	auipc	a5,0x5
    800029e8:	dee7be23          	sd	a4,-516(a5) # 800077e0 <freelist_tail>
    800029ec:	00005317          	auipc	t1,0x5
    800029f0:	a0430313          	addi	t1,t1,-1532 # 800073f0 <user_mapping>
    800029f4:	01b00793          	li	a5,27
    800029f8:	000808b7          	lui	a7,0x80
    800029fc:	01080813          	addi	a6,a6,16
    80002a00:	03f7871b          	addiw	a4,a5,63
    80002a04:	02071713          	slli	a4,a4,0x20
    80002a08:	0017d61b          	srliw	a2,a5,0x1
    80002a0c:	02075713          	srli	a4,a4,0x20
    80002a10:	00c7c7b3          	xor	a5,a5,a2
    80002a14:	01170733          	add	a4,a4,a7
    80002a18:	010685b3          	add	a1,a3,a6
    80002a1c:	00c71713          	slli	a4,a4,0xc
    80002a20:	0057979b          	slliw	a5,a5,0x5
    80002a24:	00e6b023          	sd	a4,0(a3)
    80002a28:	00b6b423          	sd	a1,8(a3)
    80002a2c:	0207f793          	andi	a5,a5,32
    80002a30:	01068693          	addi	a3,a3,16
    80002a34:	00c7e7b3          	or	a5,a5,a2
    80002a38:	fcd314e3          	bne	t1,a3,80002a00 <vm_boot+0x120>
    80002a3c:	00050413          	mv	s0,a0
    80002a40:	12000613          	li	a2,288
    80002a44:	00000593          	li	a1,0
    80002a48:	00010513          	mv	a0,sp
    80002a4c:	00005797          	auipc	a5,0x5
    80002a50:	9807be23          	sd	zero,-1636(a5) # 800073e8 <freelist_nodes+0x3e8>
    80002a54:	e08ff0ef          	jal	ra,8000205c <memset>
    80002a58:	800007b7          	lui	a5,0x80000
    80002a5c:	00f40433          	add	s0,s0,a5
    80002a60:	00010513          	mv	a0,sp
    80002a64:	10813423          	sd	s0,264(sp)
    80002a68:	dd8fd0ef          	jal	ra,80000040 <pop_tf>
    80002a6c:	12813083          	ld	ra,296(sp)
    80002a70:	12013403          	ld	s0,288(sp)
    80002a74:	13010113          	addi	sp,sp,304
    80002a78:	00008067          	ret
    80002a7c:	081657b7          	lui	a5,0x8165
    80002a80:	000805b7          	lui	a1,0x80
    80002a84:	d7278793          	addi	a5,a5,-654 # 8164d72 <_start-0x77e9b28e>
    80002a88:	ffc58593          	addi	a1,a1,-4 # 7fffc <_start-0x7ff80004>
    80002a8c:	00100613          	li	a2,1
    80002a90:	00b7f733          	and	a4,a5,a1
    80002a94:	01f61613          	slli	a2,a2,0x1f
    80002a98:	0017f693          	andi	a3,a5,1
    80002a9c:	02079793          	slli	a5,a5,0x20
    80002aa0:	0207d793          	srli	a5,a5,0x20
    80002aa4:	00c70733          	add	a4,a4,a2
    80002aa8:	02068263          	beqz	a3,80002acc <vm_boot+0x1ec>
    80002aac:	0007202f          	amoadd.w	zero,zero,(a4)
    80002ab0:	0017d793          	srli	a5,a5,0x1
    80002ab4:	00b7f733          	and	a4,a5,a1
    80002ab8:	0017f693          	andi	a3,a5,1
    80002abc:	02079793          	slli	a5,a5,0x20
    80002ac0:	0207d793          	srli	a5,a5,0x20
    80002ac4:	00c70733          	add	a4,a4,a2
    80002ac8:	fe0692e3          	bnez	a3,80002aac <vm_boot+0x1cc>
    80002acc:	00072003          	lw	zero,0(a4)
    80002ad0:	0017d793          	srli	a5,a5,0x1
    80002ad4:	fe1ff06f          	j	80002ab4 <vm_boot+0x1d4>
    80002ad8:	0000                	unimp
    80002ada:	0000                	unimp
    80002adc:	0000                	unimp
    80002ade:	0000                	unimp

0000000080002ae0 <extra_boot>:
    80002ae0:	00008067          	ret

0000000080002ae4 <userstart>:
    80002ae4:	00301073          	fssr	zero
    80002ae8:	00100c93          	li	s9,1
    80002aec:	3ff0011b          	addiw	sp,zero,1023
    80002af0:	03411113          	slli	sp,sp,0x34
    80002af4:	3f8000b7          	lui	ra,0x3f800
    80002af8:	f2000253          	fmv.d.x	ft4,zero
    80002afc:	f00001d3          	fmv.w.x	ft3,zero
    80002b00:	f2010153          	fmv.d.x	ft2,sp
    80002b04:	f00080d3          	fmv.w.x	ft1,ra
    80002b08:	0180006f          	j	80002b20 <userstart+0x3c>
    80002b0c:	00000013          	nop
    80002b10:	00000013          	nop
    80002b14:	00000013          	nop
    80002b18:	00000013          	nop
    80002b1c:	00000013          	nop
    80002b20:	12217253          	fmul.d	ft4,ft2,ft2
    80002b24:	201081d3          	fmv.s	ft3,ft1
    80002b28:	e2020253          	fmv.x.d	tp,ft4
    80002b2c:	e00182d3          	fmv.x.w	t0,ft3
    80002b30:	00508a63          	beq	ra,t0,80002b44 <userstart+0x60>
    80002b34:	00119513          	slli	a0,gp,0x1
    80002b38:	00050063          	beqz	a0,80002b38 <userstart+0x54>
    80002b3c:	00156513          	ori	a0,a0,1
    80002b40:	00000073          	ecall
    80002b44:	00410a63          	beq	sp,tp,80002b58 <userstart+0x74>
    80002b48:	00119513          	slli	a0,gp,0x1
    80002b4c:	00050063          	beqz	a0,80002b4c <userstart+0x68>
    80002b50:	00156513          	ori	a0,a0,1
    80002b54:	00000073          	ecall
    80002b58:	f2000153          	fmv.d.x	ft2,zero
    80002b5c:	f00000d3          	fmv.w.x	ft1,zero
    80002b60:	f2000253          	fmv.d.x	ft4,zero
    80002b64:	f00001d3          	fmv.w.x	ft3,zero
    80002b68:	f2010153          	fmv.d.x	ft2,sp
    80002b6c:	f00080d3          	fmv.w.x	ft1,ra
    80002b70:	0100006f          	j	80002b80 <userstart+0x9c>
    80002b74:	00000013          	nop
    80002b78:	00000013          	nop
    80002b7c:	00000013          	nop
    80002b80:	12217253          	fmul.d	ft4,ft2,ft2
    80002b84:	00000013          	nop
    80002b88:	201081d3          	fmv.s	ft3,ft1
    80002b8c:	e2020253          	fmv.x.d	tp,ft4
    80002b90:	e00182d3          	fmv.x.w	t0,ft3
    80002b94:	00508a63          	beq	ra,t0,80002ba8 <userstart+0xc4>
    80002b98:	00119513          	slli	a0,gp,0x1
    80002b9c:	00050063          	beqz	a0,80002b9c <userstart+0xb8>
    80002ba0:	00156513          	ori	a0,a0,1
    80002ba4:	00000073          	ecall
    80002ba8:	00410a63          	beq	sp,tp,80002bbc <userstart+0xd8>
    80002bac:	00119513          	slli	a0,gp,0x1
    80002bb0:	00050063          	beqz	a0,80002bb0 <userstart+0xcc>
    80002bb4:	00156513          	ori	a0,a0,1
    80002bb8:	00000073          	ecall
    80002bbc:	f2000153          	fmv.d.x	ft2,zero
    80002bc0:	f00000d3          	fmv.w.x	ft1,zero
    80002bc4:	f2000253          	fmv.d.x	ft4,zero
    80002bc8:	f00001d3          	fmv.w.x	ft3,zero
    80002bcc:	f2010153          	fmv.d.x	ft2,sp
    80002bd0:	f00080d3          	fmv.w.x	ft1,ra
    80002bd4:	00c0006f          	j	80002be0 <userstart+0xfc>
    80002bd8:	00000013          	nop
    80002bdc:	00000013          	nop
    80002be0:	12217253          	fmul.d	ft4,ft2,ft2
    80002be4:	00000013          	nop
    80002be8:	00000013          	nop
    80002bec:	201081d3          	fmv.s	ft3,ft1
    80002bf0:	e2020253          	fmv.x.d	tp,ft4
    80002bf4:	e00182d3          	fmv.x.w	t0,ft3
    80002bf8:	00508a63          	beq	ra,t0,80002c0c <userstart+0x128>
    80002bfc:	00119513          	slli	a0,gp,0x1
    80002c00:	00050063          	beqz	a0,80002c00 <userstart+0x11c>
    80002c04:	00156513          	ori	a0,a0,1
    80002c08:	00000073          	ecall
    80002c0c:	00410a63          	beq	sp,tp,80002c20 <userstart+0x13c>
    80002c10:	00119513          	slli	a0,gp,0x1
    80002c14:	00050063          	beqz	a0,80002c14 <userstart+0x130>
    80002c18:	00156513          	ori	a0,a0,1
    80002c1c:	00000073          	ecall
    80002c20:	f2000153          	fmv.d.x	ft2,zero
    80002c24:	f00000d3          	fmv.w.x	ft1,zero
    80002c28:	f2000253          	fmv.d.x	ft4,zero
    80002c2c:	f00001d3          	fmv.w.x	ft3,zero
    80002c30:	f2010153          	fmv.d.x	ft2,sp
    80002c34:	f00080d3          	fmv.w.x	ft1,ra
    80002c38:	0080006f          	j	80002c40 <userstart+0x15c>
    80002c3c:	00000013          	nop
    80002c40:	12217253          	fmul.d	ft4,ft2,ft2
    80002c44:	00000013          	nop
    80002c48:	00000013          	nop
    80002c4c:	00000013          	nop
    80002c50:	201081d3          	fmv.s	ft3,ft1
    80002c54:	e2020253          	fmv.x.d	tp,ft4
    80002c58:	e00182d3          	fmv.x.w	t0,ft3
    80002c5c:	00508a63          	beq	ra,t0,80002c70 <userstart+0x18c>
    80002c60:	00119513          	slli	a0,gp,0x1
    80002c64:	00050063          	beqz	a0,80002c64 <userstart+0x180>
    80002c68:	00156513          	ori	a0,a0,1
    80002c6c:	00000073          	ecall
    80002c70:	00410a63          	beq	sp,tp,80002c84 <userstart+0x1a0>
    80002c74:	00119513          	slli	a0,gp,0x1
    80002c78:	00050063          	beqz	a0,80002c78 <userstart+0x194>
    80002c7c:	00156513          	ori	a0,a0,1
    80002c80:	00000073          	ecall
    80002c84:	f2000153          	fmv.d.x	ft2,zero
    80002c88:	f00000d3          	fmv.w.x	ft1,zero
    80002c8c:	f2000253          	fmv.d.x	ft4,zero
    80002c90:	f00001d3          	fmv.w.x	ft3,zero
    80002c94:	f2010153          	fmv.d.x	ft2,sp
    80002c98:	f00080d3          	fmv.w.x	ft1,ra
    80002c9c:	0040006f          	j	80002ca0 <userstart+0x1bc>
    80002ca0:	12217253          	fmul.d	ft4,ft2,ft2
    80002ca4:	00000013          	nop
    80002ca8:	00000013          	nop
    80002cac:	00000013          	nop
    80002cb0:	00000013          	nop
    80002cb4:	201081d3          	fmv.s	ft3,ft1
    80002cb8:	e2020253          	fmv.x.d	tp,ft4
    80002cbc:	e00182d3          	fmv.x.w	t0,ft3
    80002cc0:	00508a63          	beq	ra,t0,80002cd4 <userstart+0x1f0>
    80002cc4:	00119513          	slli	a0,gp,0x1
    80002cc8:	00050063          	beqz	a0,80002cc8 <userstart+0x1e4>
    80002ccc:	00156513          	ori	a0,a0,1
    80002cd0:	00000073          	ecall
    80002cd4:	00410a63          	beq	sp,tp,80002ce8 <userstart+0x204>
    80002cd8:	00119513          	slli	a0,gp,0x1
    80002cdc:	00050063          	beqz	a0,80002cdc <userstart+0x1f8>
    80002ce0:	00156513          	ori	a0,a0,1
    80002ce4:	00000073          	ecall
    80002ce8:	f2000153          	fmv.d.x	ft2,zero
    80002cec:	f00000d3          	fmv.w.x	ft1,zero
    80002cf0:	f2000253          	fmv.d.x	ft4,zero
    80002cf4:	f00001d3          	fmv.w.x	ft3,zero
    80002cf8:	f2010153          	fmv.d.x	ft2,sp
    80002cfc:	f00080d3          	fmv.w.x	ft1,ra
    80002d00:	0200006f          	j	80002d20 <userstart+0x23c>
    80002d04:	00000013          	nop
    80002d08:	00000013          	nop
    80002d0c:	00000013          	nop
    80002d10:	00000013          	nop
    80002d14:	00000013          	nop
    80002d18:	00000013          	nop
    80002d1c:	00000013          	nop
    80002d20:	12217253          	fmul.d	ft4,ft2,ft2
    80002d24:	00000013          	nop
    80002d28:	00000013          	nop
    80002d2c:	00000013          	nop
    80002d30:	00000013          	nop
    80002d34:	00000013          	nop
    80002d38:	201081d3          	fmv.s	ft3,ft1
    80002d3c:	e2020253          	fmv.x.d	tp,ft4
    80002d40:	e00182d3          	fmv.x.w	t0,ft3
    80002d44:	00508a63          	beq	ra,t0,80002d58 <userstart+0x274>
    80002d48:	00119513          	slli	a0,gp,0x1
    80002d4c:	00050063          	beqz	a0,80002d4c <userstart+0x268>
    80002d50:	00156513          	ori	a0,a0,1
    80002d54:	00000073          	ecall
    80002d58:	00410a63          	beq	sp,tp,80002d6c <userstart+0x288>
    80002d5c:	00119513          	slli	a0,gp,0x1
    80002d60:	00050063          	beqz	a0,80002d60 <userstart+0x27c>
    80002d64:	00156513          	ori	a0,a0,1
    80002d68:	00000073          	ecall
    80002d6c:	f2000153          	fmv.d.x	ft2,zero
    80002d70:	f00000d3          	fmv.w.x	ft1,zero
    80002d74:	f2000253          	fmv.d.x	ft4,zero
    80002d78:	f00001d3          	fmv.w.x	ft3,zero
    80002d7c:	f2010153          	fmv.d.x	ft2,sp
    80002d80:	f00080d3          	fmv.w.x	ft1,ra
    80002d84:	01c0006f          	j	80002da0 <userstart+0x2bc>
    80002d88:	00000013          	nop
    80002d8c:	00000013          	nop
    80002d90:	00000013          	nop
    80002d94:	00000013          	nop
    80002d98:	00000013          	nop
    80002d9c:	00000013          	nop
    80002da0:	12217253          	fmul.d	ft4,ft2,ft2
    80002da4:	00000013          	nop
    80002da8:	00000013          	nop
    80002dac:	00000013          	nop
    80002db0:	00000013          	nop
    80002db4:	00000013          	nop
    80002db8:	00000013          	nop
    80002dbc:	201081d3          	fmv.s	ft3,ft1
    80002dc0:	e2020253          	fmv.x.d	tp,ft4
    80002dc4:	e00182d3          	fmv.x.w	t0,ft3
    80002dc8:	00508a63          	beq	ra,t0,80002ddc <userstart+0x2f8>
    80002dcc:	00119513          	slli	a0,gp,0x1
    80002dd0:	00050063          	beqz	a0,80002dd0 <userstart+0x2ec>
    80002dd4:	00156513          	ori	a0,a0,1
    80002dd8:	00000073          	ecall
    80002ddc:	00410a63          	beq	sp,tp,80002df0 <userstart+0x30c>
    80002de0:	00119513          	slli	a0,gp,0x1
    80002de4:	00050063          	beqz	a0,80002de4 <userstart+0x300>
    80002de8:	00156513          	ori	a0,a0,1
    80002dec:	00000073          	ecall
    80002df0:	f2000153          	fmv.d.x	ft2,zero
    80002df4:	f00000d3          	fmv.w.x	ft1,zero
    80002df8:	00100513          	li	a0,1
    80002dfc:	00000073          	ecall
    80002e00:	c0001073          	unimp
    80002e04:	0000                	unimp
    80002e06:	0000                	unimp
    80002e08:	0000                	unimp
    80002e0a:	0000                	unimp
    80002e0c:	0000                	unimp
    80002e0e:	0000                	unimp
    80002e10:	0000                	unimp
    80002e12:	0000                	unimp
    80002e14:	0000                	unimp
    80002e16:	0000                	unimp
    80002e18:	0000                	unimp
    80002e1a:	0000                	unimp

{'repo_name': 'bluespec/Flute', 'stars': '173', 'repo_language': 'Verilog', 'file_name': 'ssith_processor_v1_0.tcl', 'mime_type': 'text/plain', 'hash': 6646975839100993488, 'source_dataset': 'data'}


# Copyright 2016 Cloudbase Solutions Srl
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.
#

# pinning this module to an exact version,
# because the options api will be merged with Assert-Equivalent
# before release of 1.0.0
Import-Module Assert -RequiredVersion 0.9.5

$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$moduleHome = Split-Path -Parent $here

$moduleName = "powershell-yaml"
$modulePath = Join-Path $moduleHome "powershell-yaml.psd1"
Import-Module $modulePath

InModuleScope $moduleName {
    $compareStrictly = Get-EquivalencyOption -Comparator Equality

    Describe "Test encode-decode symmetry." {

        Context "Simple-Items" {
            It "Should represent identity to encode and decode." -TestCases @(
                @{ Expected = 1 }
                @{ Expected = "yes" }
                @{ Expected = 56 }
                @{ Expected = $null }
            ) {
                param ($Expected)
                $actual = ConvertFrom-Yaml (ConvertTo-Yaml $Expected)

                Assert-Equivalent -Options $compareStrictly -Expected $Expected -Actual $actual
            }
        }

        Context "Nulls and strings" {
            BeforeAll {
                $nullAndString = [ordered]@{"iAmNull"= $null; "iAmEmptyString"=""}
                $yaml = @"
iAmNull:
iAmEmptyString: ""

"@
            }

            It "should preserve nulls and empty strings from PowerShell" {
                $toYaml = ConvertTo-Yaml $nullAndString
                $backFromYaml = ConvertFrom-Yaml $toYaml

                ($null -eq $backFromYaml.iAmNull) | Should -Be $true
                $backFromYaml.iAmEmptyString | Should -Be ""
                $toYaml | Should -Be $yaml
            }

            It "should preserve nulls and empty strings from Yaml" {
                $fromYaml = ConvertFrom-Yaml -Ordered $yaml
                $backToYaml = ConvertTo-Yaml $fromYaml

                $backToYaml | Should -Be $yaml
                ($null -eq $fromYaml.iAmNull) | Should -Be $true
                $fromYaml.iAmEmptyString | Should -Be ""
            }
        }

        Context "Test array handling under various circumstances." {
            $arr = 1, 2, "yes", @{ key = "value" }, 5, (1, "no", 3)

            It "Should represent identity to encode/decode arrays as arguments." {
                $yaml = ConvertTo-Yaml $arr
                $a = ConvertFrom-Yaml $yaml

                Assert-Equivalent -Options $compareStrictly -Actual $a -Expected $arr
            }

            It "Should represent identity to encode/decode arrays by piping them in." {
                $yaml = $arr | ConvertTo-Yaml
                $a = ConvertFrom-Yaml $yaml

                Assert-Equivalent -Options $compareStrictly -Actual $a -Expected $arr
            }

            It "Should be irrelevant whether we convert an array by piping it, or referencing them as an argument." {
                $arged = ConvertTo-Yaml $arr
                $piped = $arr | ConvertTo-Yaml

                Assert-Equivalent -Options $compareStrictly -Actual $piped -Expected $arged
            }
        }

        Context "Test merging parser" {
            $mergingYaml = @"
---
default: &default
  value1: 1
  value2: 2

hoge:
  <<: *default
  value3: 3
"@

            $mergingYamlOverwriteCase = @"
---
default: &default
  value1: 1
  value2: 2

hoge:
  <<: *default
  value1: 33
  value3: 3
"@

            It "Should expand merging key with appropriate referenced keys" {
                $result = ConvertFrom-Yaml -Yaml $mergingYaml -UseMergingParser
                [array]$values = $result.hoge.keys
                [array]::sort($values)
                Assert-Equivalent -Options $compareStrictly -Actual $values -Expected @("value1", "value2", "value3")
            }

            It "Should retain literal key name in the absence or -UseMergingParser" {
                $result = ConvertFrom-Yaml -Yaml $mergingYaml
                [array]$values = $result.hoge.keys
                [array]::sort($values)
                Assert-Equivalent -Options $compareStrictly -Actual $values -Expected @("<<", "value3")
            }

            It "Shoud Throw duplicate key exception when merging keys" {
                # This case does not seem to be treated by YamlDotNet and currently throws
                # a duplicate key exception
                { ConvertFrom-Yaml -Yaml $mergingYamlOverwriteCase -UseMergingParser } | Should -Throw -PassThru | Select-Object -ExpandProperty Exception |
Should -BeLike "*Duplicate key*"
            }

        }

        Context "Test hash handling under various circumstances." {
            $hash = @{
                # NOTE: intentionally not considered as YAML requires dict keys
                # be strings. As such; decoding the encoding of this would result
                # in a hash with the string key of "1", as below:
                # 1 = 42;
                "1" = 42;
                today = @{
                    month = "January";
                    year = "2016";
                    timestamp = Get-Date
                };
                arr = 1, 2, 3, "yes", @{ yes = "yes" };
                yes = "no"
            }

            It "Should be symmetrical to encode and then decode the hash as an argument." {
                $yaml = ConvertTo-Yaml $hash
                $h = ConvertFrom-Yaml $yaml

                Assert-Equivalent -Options $compareStrictly -Actual $h -Expected $hash
            }

            It "Should be symmetrical to endocode and then decode a hash by piping it." {
                $yaml = $hash | ConvertTo-Yaml
                $h = ConvertFrom-Yaml $yaml

                Assert-Equivalent -Options $compareStrictly -Actual $h -Expected $hash
            }

            It "Shouldn't matter whether we reference or pipe our hashes in to the YAML functions." {
                $arged = ConvertTo-Yaml $hash
                $piped = $hash | ConvertTo-Yaml

                Assert-Equivalent -Options $compareStrictly -Actual $piped -Expected $arged
            }
        }

    }

    Describe "Being able to decode an externally provided string." {

        Context "Decoding an arbitrary YAML string correctly." {
            # testYaml is just a string containing some yaml to be tested below:
            $testYaml = @"
wishlist:
    - [coats, hats, and, scarves]
    - product     : A Cool Book.
      quantity    : 1
      description : I love that Cool Book.
      price       : 55.34
total: 4443.52
int64: $([int64]::MaxValue)
note: >
    I can't wait.
    To get that Cool Book.

dates:
    - 2001-12-15T02:59:43.1Z
    - 2001-12-14t21:59:43.10-05:00
    - 2001-12-14 21:59:43.10 -5
    - 2001-12-15 2:59:43.10
    - 2002-12-14
version:
    - 1.2.3
noniso8601dates:
    - 5/4/2017
    - 1.2.3
bools:
    - true
    - false
    - TRUE
    - FALSE
    - True
    - False
"@

            $expected = @{
                wishlist = @(
                    @("coats", "hats", "and", "scarves"),
                    @{
                        product = "A Cool Book.";
                        quantity = 1;
                        description = "I love that Cool Book.";
                        price = 55.34
                    }
                );
                total = 4443.52;
                int64 = ([int64]::MaxValue);
                note = ("I can't wait. To get that Cool Book.`n");
                dates = @(
                    [DateTime]::Parse('2001-12-15T02:59:43.1Z'),
                    [DateTime]::Parse('2001-12-14t21:59:43.10-05:00'),
                    [DateTime]::Parse('2001-12-14 21:59:43.10 -5'),
                    [DateTime]::Parse('2001-12-15 2:59:43.10'),
                    [DateTime]::Parse('2002-12-14')
                );
                version = "1.2.3";
                noniso8601dates = @( '5/4/2017', '1.2.3' );
                bools = @( $true, $false, $true, $false, $true, $false );
            }

            $res = ConvertFrom-Yaml $testYaml

            It "Should decode the YAML string as expected." {
                $wishlist = $res['wishlist']
                $wishlist | Should -Not -BeNullOrEmpty
                $wishlist.Count | Should -Be 2
                $wishlist[0] | Should -Not -BeNullOrEmpty
                $wishlist[0].Count | Should -Be 4
                $wishlist[0][0] | Should -Be $expected['wishlist'][0][0]
                $wishlist[0][1] | Should -Be $expected['wishlist'][0][1]
                $wishlist[0][2] | Should -Be $expected['wishlist'][0][2]
                $wishlist[0][3] | Should -Be $expected['wishlist'][0][3]
                $product = $res['wishlist'][1]
                $product | Should -Not -BeNullOrEmpty
                $expectedProduct = $expected['wishlist'][1]
                $product['product'] | Should -Be $expectedProduct['product']
                $product['quantity'] | Should -Be $expectedProduct['quantity']
                $product['description'] | Should -Be $expectedProduct['description']
                $product['price'] | Should -Be $expectedProduct['price']
                $res['total'] | Should -Be $expected['total']
                $res['note'] | Should -Be $expected['note']

                $res['dates'] | Should -Not -BeNullOrEmpty
                $res['dates'].Count | Should -Be $expected['dates'].Count
                for( $idx = 0; $idx -lt $expected['dates'].Count; ++$idx )
                {
                    $res['dates'][$idx] | Should -BeOfType ([datetime])
                    $res['dates'][$idx] | Should -Be $expected['dates'][$idx]
                }

                $res['version'] | Should -BeOfType ([string])
                $res['version'] | Should -Be $expected['version']

                $res['noniso8601dates'] | Should -Not -BeNullOrEmpty
                $res['noniso8601dates'].Count | Should -Be $expected['noniso8601dates'].Count
                for( $idx = 0; $idx -lt $expected['noniso8601dates'].Count; ++$idx )
                {
                    $res['noniso8601dates'][$idx] | Should -BeOfType ([string])
                    $res['noniso8601dates'][$idx] | Should -Be $expected['noniso8601dates'][$idx]
                }

                Assert-Equivalent -Options $compareStrictly -Actual $res -Expected $expected
            }
        }

    }

    Describe "Test ConvertTo-Yaml -OutFile parameter behavior" {

        Context "Providing -OutFile with invalid prefix." {
            $testPath = "/some/bogus/path"
            $testObject = 42

            # mock Test-Path to fail so the test for the directory of the -OutFile fails:
            Mock Test-Path { return $false } -Verifiable -ParameterFilter { $OutFile -eq $testPath }

            It "Should refuse to work with an -OutFile with an invalid prefix." {
                { ConvertTo-Yaml $testObject -OutFile $testPath } | Should Throw "Parent folder for specified path does not exist"
            }

            It "Should verify that all the required mocks were called." {
                Assert-VerifiableMock
            }
        }

        Context "Providing existing -OutFile without -Force." {
            $testPath = "/some/bogus/path"
            $testObject = "A random string this time."

            # mock Test-Path to succeed so the -OutFile seems to exist:
            Mock Test-Path { return $true } -Verifiable -ParameterFilter { $OutFile -eq $testPath }

            It "Should refuse to work for an existing -OutFile but no -Force flag." {
                { ConvertTo-Yaml $testObject -OutFile $testPath } | Should Throw "Target file already exists. Use -Force to overwrite."
            }

            It "Should verify that all the required mocks were called." {
                Assert-VerifiableMock
            }
        }

        Context "Providing a valid -OutFile." {
            $testObject = @{ yes = "No"; "arr" = @(1, 2, 3) }
            $testPath = [System.IO.Path]::GetTempFileName()
            Remove-Item -Force $testPath # must be deleted for the test

            It "Should succesfully write the expected content to the specified -OutFile." {
                $yaml = ConvertTo-Yaml $testObject
                ConvertTo-Yaml $testObject -OutFile $testPath

                Compare-Object $yaml (Get-Content -Raw $testPath) | Should -Be $null

            }

            # NOTE: the below assertion relies on the above writing its file.
            It "Should succesfully write the expected content to the specified -OutFile with -Force even if it exists." {
                $newTestObject = @(1, "two", @("arr", "ay"), @{ yes = "no"; answer = 42 })

                $yaml = ConvertTo-Yaml  $newTestObject
                ConvertTo-Yaml $newTestObject -OutFile $testPath -Force

                Compare-Object $yaml (Get-Content -Raw $testPath) | Should -Be $null
            }
        }

    }

    Describe "Generic Casting Behaviour" {
        Context "Node Style is 'Plain'" {
            $value = @'
 T1: 001
'@
            It 'Should be an int' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -BeOfType System.Int32
            }

            It 'Should be value of 1' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -Be 1
            }

            It 'Should not be value of 001' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -Not -Be '001'
            }
        }

        Context "Node Style is 'SingleQuoted'" {
            $value = @'
 T1: '001'
'@
            It 'Should be a string' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -BeOfType System.String
            }

            It 'Should be value of 001' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -Be '001'
            }

            It 'Should not be value of 1' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -Not -Be '1'
            }
        }

        Context "Node Style is 'DoubleQuoted'" {
            $value = @'
 T1: "001"
'@
            It 'Should be a string' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -BeOfType System.String
            }

            It 'Should be value of 001' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -Be '001'
            }

            It 'Should not be value of 1' {
                $result = ConvertFrom-Yaml -Yaml $value
                $result.T1 | Should -Not -Be '1'
            }
        }
    }

    Describe 'Strings containing other primitives' {
        Context 'String contains an int' {
            $value = @{key="1"}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: ""1""$([Environment]::NewLine)"
            }
        }
        Context 'String contains a float' {
            $value = @{key="0.25"}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: ""0.25""$([Environment]::NewLine)"
            }
        }
        Context 'String is "true"' {
            $value = @{key="true"}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: ""true""$([Environment]::NewLine)"
            }
        }
        Context 'String is "false"' {
            $value = @{key="false"}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: ""false""$([Environment]::NewLine)"
            }
        }
        Context 'String is "null"' {
            $value = @{key="null"}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: ""null""$([Environment]::NewLine)"
            }
        }
        Context 'String is "~" (alternative syntax for null)' {
            $value = @{key="~"}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: ""~""$([Environment]::NewLine)"
            }
        }
        Context 'String is empty' {
            $value = @{key=""}
            It 'Should serialise with double quotes' {
                $result = ConvertTo-Yaml $value
                $result | Should -Be "key: """"$([Environment]::NewLine)"
            }
        }
    }
}

{'repo_name': 'cloudbase/powershell-yaml', 'stars': '181', 'repo_language': 'PowerShell', 'file_name': 'powershell-yaml.Tests.ps1', 'mime_type': 'text/plain', 'hash': -6895949809261543871, 'source_dataset': 'data'}


/*************************************************************************
 * GLFW 3.1 - www.glfw.org
 * A library for OpenGL, window and input
 *------------------------------------------------------------------------
 * Copyright (c) 2002-2006 Marcus Geelnard
 * Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
 *
 * This software is provided 'as-is', without any express or implied
 * warranty. In no event will the authors be held liable for any damages
 * arising from the use of this software.
 *
 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely, subject to the following restrictions:
 *
 * 1. The origin of this software must not be misrepresented; you must not
 *    claim that you wrote the original software. If you use this software
 *    in a product, an acknowledgment in the product documentation would
 *    be appreciated but is not required.
 *
 * 2. Altered source versions must be plainly marked as such, and must not
 *    be misrepresented as being the original software.
 *
 * 3. This notice may not be removed or altered from any source
 *    distribution.
 *
 *************************************************************************/

#ifndef _glfw3_native_h_
#define _glfw3_native_h_

#ifdef __cplusplus
extern "C" {
#endif

/*************************************************************************
 * Doxygen documentation
 *************************************************************************/

/*! @defgroup native Native access
 *
 *  **By using the native access functions you assert that you know what you're
 *  doing and how to fix problems caused by using them.  If you don't, you
 *  shouldn't be using them.**
 *
 *  Before the inclusion of @ref glfw3native.h, you must define exactly one
 *  window system API macro and exactly one context creation API macro.  Failure
 *  to do this will cause a compile-time error.
 *
 *  The available window API macros are:
 *  * `GLFW_EXPOSE_NATIVE_WIN32`
 *  * `GLFW_EXPOSE_NATIVE_COCOA`
 *  * `GLFW_EXPOSE_NATIVE_X11`
 *
 *  The available context API macros are:
 *  * `GLFW_EXPOSE_NATIVE_WGL`
 *  * `GLFW_EXPOSE_NATIVE_NSGL`
 *  * `GLFW_EXPOSE_NATIVE_GLX`
 *  * `GLFW_EXPOSE_NATIVE_EGL`
 *
 *  These macros select which of the native access functions that are declared
 *  and which platform-specific headers to include.  It is then up your (by
 *  definition platform-specific) code to handle which of these should be
 *  defined.
 */

/*************************************************************************
 * System headers and types
 *************************************************************************/

#if defined(GLFW_EXPOSE_NATIVE_WIN32)
 // This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
 // example to allow applications to correctly declare a GL_ARB_debug_output
 // callback) but windows.h assumes no one will define APIENTRY before it does
 #undef APIENTRY
 #include <windows.h>
#elif defined(GLFW_EXPOSE_NATIVE_COCOA)
 #include <ApplicationServices/ApplicationServices.h>
 #if defined(__OBJC__)
  #import <Cocoa/Cocoa.h>
 #else
  typedef void* id;
 #endif
#elif defined(GLFW_EXPOSE_NATIVE_X11)
 #include <X11/Xlib.h>
 #include <X11/extensions/Xrandr.h>
#else
 #error "No window API selected"
#endif

#if defined(GLFW_EXPOSE_NATIVE_WGL)
 /* WGL is declared by windows.h */
#elif defined(GLFW_EXPOSE_NATIVE_NSGL)
 /* NSGL is declared by Cocoa.h */
#elif defined(GLFW_EXPOSE_NATIVE_GLX)
 #include <GL/glx.h>
#elif defined(GLFW_EXPOSE_NATIVE_EGL)
 #include <EGL/egl.h>
#else
 #error "No context API selected"
#endif

/*************************************************************************
 * Functions
 *************************************************************************/

#if defined(GLFW_EXPOSE_NATIVE_WIN32)
/*! @brief Returns the adapter device name of the specified monitor.
 *
 *  @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`)
 *  of the specified monitor, or `NULL` if an [error](@ref error_handling)
 *  occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.1.
 *
 *  @ingroup native
 */
GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor);

/*! @brief Returns the display device name of the specified monitor.
 *
 *  @return The UTF-8 encoded display device name (for example
 *  `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.1.
 *
 *  @ingroup native
 */
GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor);

/*! @brief Returns the `HWND` of the specified window.
 *
 *  @return The `HWND` of the specified window, or `NULL` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window);
#endif

#if defined(GLFW_EXPOSE_NATIVE_WGL)
/*! @brief Returns the `HGLRC` of the specified window.
 *
 *  @return The `HGLRC` of the specified window, or `NULL` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window);
#endif

#if defined(GLFW_EXPOSE_NATIVE_COCOA)
/*! @brief Returns the `CGDirectDisplayID` of the specified monitor.
 *
 *  @return The `CGDirectDisplayID` of the specified monitor, or
 *  `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.1.
 *
 *  @ingroup native
 */
GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor);

/*! @brief Returns the `NSWindow` of the specified window.
 *
 *  @return The `NSWindow` of the specified window, or `nil` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window);
#endif

#if defined(GLFW_EXPOSE_NATIVE_NSGL)
/*! @brief Returns the `NSOpenGLContext` of the specified window.
 *
 *  @return The `NSOpenGLContext` of the specified window, or `nil` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI id glfwGetNSGLContext(GLFWwindow* window);
#endif

#if defined(GLFW_EXPOSE_NATIVE_X11)
/*! @brief Returns the `Display` used by GLFW.
 *
 *  @return The `Display` used by GLFW, or `NULL` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI Display* glfwGetX11Display(void);

/*! @brief Returns the `RRCrtc` of the specified monitor.
 *
 *  @return The `RRCrtc` of the specified monitor, or `None` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.1.
 *
 *  @ingroup native
 */
GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor);

/*! @brief Returns the `RROutput` of the specified monitor.
 *
 *  @return The `RROutput` of the specified monitor, or `None` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.1.
 *
 *  @ingroup native
 */
GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor);

/*! @brief Returns the `Window` of the specified window.
 *
 *  @return The `Window` of the specified window, or `None` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI Window glfwGetX11Window(GLFWwindow* window);
#endif

#if defined(GLFW_EXPOSE_NATIVE_GLX)
/*! @brief Returns the `GLXContext` of the specified window.
 *
 *  @return The `GLXContext` of the specified window, or `NULL` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window);
#endif

#if defined(GLFW_EXPOSE_NATIVE_EGL)
/*! @brief Returns the `EGLDisplay` used by GLFW.
 *
 *  @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI EGLDisplay glfwGetEGLDisplay(void);

/*! @brief Returns the `EGLContext` of the specified window.
 *
 *  @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window);

/*! @brief Returns the `EGLSurface` of the specified window.
 *
 *  @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an
 *  [error](@ref error_handling) occurred.
 *
 *  @par Thread Safety
 *  This function may be called from any thread.  Access is not synchronized.
 *
 *  @par History
 *  Added in GLFW 3.0.
 *
 *  @ingroup native
 */
GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window);
#endif

#ifdef __cplusplus
}
#endif

#endif /* _glfw3_native_h_ */

{'repo_name': 'esimov/diagram', 'stars': '590', 'repo_language': 'Go', 'file_name': 'utils.go', 'mime_type': 'text/plain', 'hash': -2991508372043168027, 'source_dataset': 'data'}


<?xml version="1.0" encoding="utf-8"?><topic xmlns="http://wsdev.schemas.microsoft.com/authoring/2008/2">
<whitepaper_page><metadata id="45bc0cab-3517-495e-98a1-79f2806ceacf" build_format="rfc" section_number="1.236"><title>Attribute networkAddress</title>
<tech value="protocol" />
<index /></metadata>

<section_contents>
This attribute specifies the TCP/IP address for a network segment. Also called the subnet address.

<example><snippet type="syntax">cn: Network-Address
ldapDisplayName: networkAddress
attributeId: 1.2.840.113556.1.2.459
attributeSyntax: 2.5.5.4
omSyntax: 20
isSingleValued: FALSE
schemaIdGuid: bf9679d9-0de6-11d0-a285-00aa003049e2
systemOnly: FALSE
searchFlags: 0
rangeLower: 0
rangeUpper: 256</snippet></example>

Version-Specific Behavior: Implemented on <auto_text>adam</auto_text>, <auto_text>windows_server_2008</auto_text>, <auto_text>ad_lds_windows_vista</auto_text>, <auto_text>windows_server_2008_r2</auto_text>, <auto_text>ad_lds_windows_7</auto_text>, <auto_text>windows_server_8</auto_text>, <auto_text>ad_lds_windows_8</auto_text>, <auto_text>winblue_server_1</auto_text>, and <auto_text>ad_lds_winblue</auto_text>.
</section_contents>
</whitepaper_page>
</topic><?PROP fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2" name="Server" value="10.185.184.7"?><?PROP fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="4" name="Project" value="MS-ADLS"?><?PROP fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="6" name="TopicTitle" value="Attribute networkAddress [_rfc_ms-adls1_236]"?><?PROP fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="8" name="Schema" value="Protocol"?><?PROP fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="10" name="CustomField2" value=""?><?PROP fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="12" name="DocumentVersion" value="2.0"?>

{'repo_name': 'ZecOps/CVE-2020-1206-POC', 'stars': '115', 'repo_language': 'C#', 'file_name': 'SharedAssemblyInfo.cs', 'mime_type': 'text/plain', 'hash': 2578038505723361903, 'source_dataset': 'data'}


/*
 *     Generated by class-dump 3.3.4 (64 bit).
 *
 *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2011 by Steve Nygard.
 */

#import "NSObject.h"

@class NSMutableSet, NSSet, NSString;

@interface SBProcess : NSObject
{
    NSMutableSet *_assertions;
    NSMutableSet *_limitlessAssertions;
    struct dispatch_queue_s *_assertionsQueue;
    NSString *_jobLabel;
    BOOL _running;
    unsigned int _terminateOnSuspension:1;
    unsigned int _frontmost:1;
    unsigned int _nowPlayingWithAudio:1;
    unsigned int _recordingAudio:1;
    unsigned int _usesSocketMonitoring:1;
    unsigned int _supportsBackgroundTaskAssertions:1;
    unsigned int _supportsSuspendOnLock:1;
    unsigned int _hasWatchdogAssertionsOut:1;
    unsigned int _receivingPacketsFromAccessory:1;
    int _backgroundJetsamPriority;
    int _currentJetsamPriority;
    int _activationDecounter;
    int _suspendCount;
    struct dispatch_queue_s *_suspendQueue;
    double _timedAssertionReferenceTime;
    double _allowIdleSleepReferenceTime;
    struct dispatch_group_s *_timerLifecycleGroup;
    struct dispatch_source_s *_backgroundPermissionCheckTimer;
    struct dispatch_source_s *_backgroundPermissionExpirationWarningTimer;
    struct dispatch_source_s *_taskCompletionAllowIdleSleepTimer;
    int _throttleUpCPUCount;
    int _throttleUpUICount;
    struct dispatch_queue_s *_throttleUpQueue;
    int _priority;
    NSSet *_allowedLockedFilePaths;
    int _pid;
    unsigned int _eventPort;
    unsigned int _taskNamePort;
    unsigned int _taskPort;
    struct SBProcessTimes _times;
    double _unsuspendLimitStart;
    int _unsuspendLimitCount;
}

+ (void)_logJetsamPriorities;
+ (void)initialize;
+ (id)_allProcesses;
+ (id)processForPid:(int)arg1;
+ (id)launchedProcessWithBundleIdentifier:(id)arg1 path:(id)arg2 arguments:(id)arg3 environment:(id)arg4 standardOutputPath:(id)arg5 standardErrorPath:(id)arg6 machServices:(id)arg7 threadPriority:(long long)arg8 frontmost:(BOOL)arg9 backgroundJetsamPriority:(int)arg10 waitForDebugger:(BOOL)arg11 disableASLR:(BOOL)arg12 allowedLockedFilePaths:(id)arg13 terminateOnSuspension:(BOOL)arg14;
+ (int)defaultBackgroundJetsamPriority;
+ (void)enumerateAllProcessesWithBlock:(id)arg1;
+ (void)shutdownSuspendedProcessSockets;
+ (void)scheduleTaskCompletionAllowIdleSleep;
+ (void)cancelTaskCompletionAllowIdleSleep;
+ (void)hostwideUserElapsedCPUTime:(double *)arg1 systemElapsedCPUTime:(double *)arg2 idleElapsedCPUTime:(double *)arg3;
- (id)initWithPid:(int)arg1 frontmost:(BOOL)arg2 backgroundJetsamPriority:(int)arg3 jobLabel:(id)arg4 eventPortName:(id)arg5 allowedLockedFilePaths:(id)arg6 terminateOnSuspension:(BOOL)arg7 execTime:(double)arg8;
- (void)dealloc;
@property(getter=isRunning) BOOL running;
- (unsigned int)suspendQueue_taskPort;
@property unsigned int taskPort;
- (unsigned int)hash;
- (BOOL)isEqual:(id)arg1;
@property(readonly) NSString *name;
- (id)debugDescription;
- (id)description;
@property BOOL usesSocketMonitoring;
@property BOOL supportsBackgroundTaskAssertions;
@property BOOL supportsSuspendOnLock;
@property(getter=isRecordingAudio) BOOL recordingAudio;
@property BOOL hasWatchdogAssertionsOut;
@property(getter=isFrontmost) BOOL frontmost;
@property(readonly) BOOL hasResumeAssertion;
@property(getter=isNowPlayingWithAudio) BOOL nowPlayingWithAudio;
@property(getter=isReceivingPacketsFromAccessory) BOOL receivingPacketsFromAccessory;
@property(readonly) int backgroundJetsamPriority;
@property(readonly) int currentJetsamPriority;
@property(readonly) BOOL terminateOnSuspension;
@property(readonly) int suspendCount;
- (BOOL)suspend;
- (BOOL)resume;
- (BOOL)throttleUpCPU;
- (BOOL)throttleDownCPU;
- (BOOL)throttleUpUI;
- (BOOL)throttleDownUI;
- (void)assertionsQueue_scheduleTaskCompletionAllowIdleSleep;
- (void)assertionsQueue_cancelTaskCompletionAllowIdleSleep;
- (BOOL)taskCompletionShouldPreventIdleSleep;
- (BOOL)changeCounter:(int *)arg1 change:(int)arg2 queue:(struct dispatch_queue_s *)arg3 ifBlockSucceeds:(id)arg4;
- (BOOL)incrementCounter:(int *)arg1 queue:(struct dispatch_queue_s *)arg2 ifBlockSucceeds:(id)arg3;
- (BOOL)decrementCounter:(int *)arg1 queue:(struct dispatch_queue_s *)arg2 ifBlockSucceeds:(id)arg3;
@property(readonly) NSSet *lockedFilePathsIgnoringAllowed;
- (void)watchdogTerminateWithReason:(int)arg1 format:(id)arg2;
- (void)_notifyOfExpirationWarning;
- (void)dispatchSharedLockCheck;
- (int)suspendQueue_currentJetsamPriority;
- (void)suspendQueue_updateJetsamPriority;
- (BOOL)suspendQueue_taskSuspend;
- (BOOL)suspendQueue_taskResume;
- (BOOL)suspendQueue_taskShutdownSockets:(int)arg1;
@property(readonly) int priority;
- (BOOL)throttleUpQueue_setPriority:(int)arg1;
- (void)killWithSignal:(int)arg1;
- (void)waitToExecOrExit;
- (void)_forceCrashReportWithReason:(int)arg1 description:(id)arg2;
@property(readonly, getter=isBeingDebugged) BOOL beingDebugged;
- (BOOL)assertionsQueue_isBeingDebugged;
@property(readonly, getter=isBeingPtraced) BOOL beingPtraced;
@property(readonly) double elapsedCPUTime;
@property(readonly) double execTime;
- (void)markWatchdogCPUTimes;
- (void)assertionsQueue_markWatchdogCPUTimes;
- (id)_crashReportCPUUsageInfo;
- (void)addAssertion:(id)arg1;
- (void)removeAssertion:(id)arg1;
- (void)removeAllAssertions;
- (id)assertions;
@property(readonly) double remainingAllowedAssertionDuration;
- (double)assertionsQueue_permittedBackgroundDuration;
- (void)_cancelTimers;
- (struct dispatch_source_s *)assertionsQueue_setupOneShotTimer:(double)arg1 withBlock:(id)arg2;
- (void)assertionsQueue_updateBackgroundPermissionCheckTimer;
@property(readonly) unsigned int taskNamePort; // @synthesize taskNamePort=_taskNamePort;
@property(readonly) unsigned int eventPort; // @synthesize eventPort=_eventPort;
@property(readonly) int pid; // @synthesize pid=_pid;
@property(readonly) int throttleUpUICount; // @synthesize throttleUpUICount=_throttleUpUICount;
@property(readonly) int throttleUpCPUCount; // @synthesize throttleUpCPUCount=_throttleUpCPUCount;
@property(copy) NSString *jobLabel; // @synthesize jobLabel=_jobLabel;
@property(copy) NSSet *allowedLockedFilePaths; // @synthesize allowedLockedFilePaths=_allowedLockedFilePaths;

@end

{'repo_name': 'MP0w/iOS-Headers', 'stars': '405', 'repo_language': 'Objective-C', 'file_name': 'IMAVChat-IMAVChatAudioAdditions.h', 'mime_type': 'text/x-objective-c', 'hash': 6120685265120341851, 'source_dataset': 'data'}


// -*- C++ -*-

// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the terms
// of the GNU General Public License as published by the Free Software
// Foundation; either version 2, or (at your option) any later
// version.

// This library is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this library; see the file COPYING.  If not, write to
// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
// MA 02111-1307, USA.

// As a special exception, you may use this file as part of a free
// software library without restriction.  Specifically, if other files
// instantiate templates or use macros or inline functions from this
// file, or you compile this file and link it with other files to
// produce an executable, this file does not by itself cause the
// resulting executable to be covered by the GNU General Public
// License.  This exception does not however invalidate any other
// reasons why the executable file might be covered by the GNU General
// Public License.

// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.

// Permission to use, copy, modify, sell, and distribute this software
// is hereby granted without fee, provided that the above copyright
// notice appears in all copies, and that both that copyright notice
// and this permission notice appear in supporting documentation. None
// of the above authors, nor IBM Haifa Research Laboratories, make any
// representation about the suitability of this software for any
// purpose. It is provided "as is" without express or implied
// warranty.

/**
 * @file splay_fn_imps.hpp
 * Contains an implementation class for splay_tree_.
 */

PB_DS_CLASS_T_DEC
void
PB_DS_CLASS_C_DEC::
splay(node_pointer p_nd)
{
  while (p_nd->m_p_parent != base_type::m_p_head)
    {
#ifdef _GLIBCXX_DEBUG
      {
	node_pointer p_head = base_type::m_p_head;
	assert_special_imp(p_head);
      }
#endif

      _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_nd);)

        if (p_nd->m_p_parent->m_p_parent == base_type::m_p_head)
	  {
            base_type::rotate_parent(p_nd);
            _GLIBCXX_DEBUG_ASSERT(p_nd == this->m_p_head->m_p_parent);
	  }
        else
	  {
            const node_pointer p_parent = p_nd->m_p_parent;
            const node_pointer p_grandparent = p_parent->m_p_parent;

#ifdef _GLIBCXX_DEBUG
            const size_type total =
	      base_type::recursive_count(p_grandparent);
            _GLIBCXX_DEBUG_ASSERT(total >= 3);
#endif

            if (p_parent->m_p_left == p_nd &&
		p_grandparent->m_p_right == p_parent)
	      splay_zig_zag_left(p_nd, p_parent, p_grandparent);
            else if (p_parent->m_p_right == p_nd &&
		     p_grandparent->m_p_left == p_parent)
	      splay_zig_zag_right(p_nd, p_parent, p_grandparent);
            else if (p_parent->m_p_left == p_nd &&
		     p_grandparent->m_p_left == p_parent)
	      splay_zig_zig_left(p_nd, p_parent, p_grandparent);
            else
	      splay_zig_zig_right(p_nd, p_parent, p_grandparent);
            _GLIBCXX_DEBUG_ASSERT(total ==this->recursive_count(p_nd));
	  }

      _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_nd);)
  }
}

PB_DS_CLASS_T_DEC
inline void
PB_DS_CLASS_C_DEC::
splay_zig_zag_left(node_pointer p_nd, node_pointer p_parent,
		   node_pointer p_grandparent)
{
  _GLIBCXX_DEBUG_ASSERT(p_parent == p_nd->m_p_parent);
  _GLIBCXX_DEBUG_ASSERT(p_grandparent == p_parent->m_p_parent);

  _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_grandparent);)

  _GLIBCXX_DEBUG_ASSERT(p_parent->m_p_left == p_nd &&
		        p_grandparent->m_p_right == p_parent);

  splay_zz_start(p_nd, p_parent, p_grandparent);

  node_pointer p_b = p_nd->m_p_right;
  node_pointer p_c = p_nd->m_p_left;

  p_nd->m_p_right = p_parent;
  p_parent->m_p_parent = p_nd;

  p_nd->m_p_left = p_grandparent;
  p_grandparent->m_p_parent = p_nd;

  p_parent->m_p_left = p_b;
  if (p_b != NULL)
    p_b->m_p_parent = p_parent;

  p_grandparent->m_p_right = p_c;
  if (p_c != NULL)
    p_c->m_p_parent = p_grandparent;

  splay_zz_end(p_nd, p_parent, p_grandparent);
}

PB_DS_CLASS_T_DEC
inline void
PB_DS_CLASS_C_DEC::
splay_zig_zag_right(node_pointer p_nd, node_pointer p_parent,
		    node_pointer p_grandparent)
{
  _GLIBCXX_DEBUG_ASSERT(p_parent == p_nd->m_p_parent);
  _GLIBCXX_DEBUG_ASSERT(p_grandparent == p_parent->m_p_parent);

  _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_grandparent);)

  _GLIBCXX_DEBUG_ASSERT(p_parent->m_p_right == p_nd &&
	  	        p_grandparent->m_p_left == p_parent);

  splay_zz_start(p_nd, p_parent, p_grandparent);

  node_pointer p_b = p_nd->m_p_left;
  node_pointer p_c = p_nd->m_p_right;

  p_nd->m_p_left = p_parent;
  p_parent->m_p_parent = p_nd;

  p_nd->m_p_right = p_grandparent;
  p_grandparent->m_p_parent = p_nd;

  p_parent->m_p_right = p_b;
  if (p_b != NULL)
    p_b->m_p_parent = p_parent;

  p_grandparent->m_p_left = p_c;
  if (p_c != NULL)
    p_c->m_p_parent = p_grandparent;

  splay_zz_end(p_nd, p_parent, p_grandparent);
}

PB_DS_CLASS_T_DEC
inline void
PB_DS_CLASS_C_DEC::
splay_zig_zig_left(node_pointer p_nd, node_pointer p_parent,
		   node_pointer p_grandparent)
{
  _GLIBCXX_DEBUG_ASSERT(p_parent == p_nd->m_p_parent);
  _GLIBCXX_DEBUG_ASSERT(p_grandparent == p_parent->m_p_parent);

  _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_grandparent);)

  _GLIBCXX_DEBUG_ASSERT(p_parent->m_p_left == p_nd &&
		     p_nd->m_p_parent->m_p_parent->m_p_left == p_nd->m_p_parent);

  splay_zz_start(p_nd, p_parent, p_grandparent);

  node_pointer p_b = p_nd->m_p_right;
  node_pointer p_c = p_parent->m_p_right;

  p_nd->m_p_right = p_parent;
  p_parent->m_p_parent = p_nd;

  p_parent->m_p_right = p_grandparent;
  p_grandparent->m_p_parent = p_parent;

  p_parent->m_p_left = p_b;
  if (p_b != NULL)
    p_b->m_p_parent = p_parent;

  p_grandparent->m_p_left = p_c;
  if (p_c != NULL)
    p_c->m_p_parent = p_grandparent;

  splay_zz_end(p_nd, p_parent, p_grandparent);
}

PB_DS_CLASS_T_DEC
inline void
PB_DS_CLASS_C_DEC::
splay_zig_zig_right(node_pointer p_nd, node_pointer p_parent,
		    node_pointer p_grandparent)
{
  _GLIBCXX_DEBUG_ASSERT(p_parent == p_nd->m_p_parent);
  _GLIBCXX_DEBUG_ASSERT(p_grandparent == p_parent->m_p_parent);
  _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_grandparent);)
  _GLIBCXX_DEBUG_ASSERT(p_parent->m_p_right == p_nd &&
	          p_nd->m_p_parent->m_p_parent->m_p_right == p_nd->m_p_parent);

  splay_zz_start(p_nd, p_parent, p_grandparent);

  node_pointer p_b = p_nd->m_p_left;
  node_pointer p_c = p_parent->m_p_left;

  p_nd->m_p_left = p_parent;
  p_parent->m_p_parent = p_nd;

  p_parent->m_p_left = p_grandparent;
  p_grandparent->m_p_parent = p_parent;

  p_parent->m_p_right = p_b;
  if (p_b != NULL)
    p_b->m_p_parent = p_parent;

  p_grandparent->m_p_right = p_c;
  if (p_c != NULL)
    p_c->m_p_parent = p_grandparent;

  base_type::update_to_top(p_grandparent, (node_update* )this);
  splay_zz_end(p_nd, p_parent, p_grandparent);
}

PB_DS_CLASS_T_DEC
inline void
PB_DS_CLASS_C_DEC::
splay_zz_start(node_pointer p_nd,
#ifdef _GLIBCXX_DEBUG
	       node_pointer p_parent,
#else
	       node_pointer /*p_parent*/,
#endif
	       node_pointer p_grandparent)
{
  _GLIBCXX_DEBUG_ASSERT(p_nd != NULL);
  _GLIBCXX_DEBUG_ASSERT(p_parent != NULL);
  _GLIBCXX_DEBUG_ASSERT(p_grandparent != NULL);

  const bool grandparent_head = p_grandparent->m_p_parent == base_type::m_p_head;

  if (grandparent_head)
    {
      base_type::m_p_head->m_p_parent = base_type::m_p_head->m_p_parent;
      p_nd->m_p_parent = base_type::m_p_head;
      return;
    }

  node_pointer p_greatgrandparent = p_grandparent->m_p_parent;

  p_nd->m_p_parent = p_greatgrandparent;

  if (p_grandparent == p_greatgrandparent->m_p_left)
    p_greatgrandparent->m_p_left = p_nd;
  else
    p_greatgrandparent->m_p_right = p_nd;
}

PB_DS_CLASS_T_DEC
inline void
PB_DS_CLASS_C_DEC::
splay_zz_end(node_pointer p_nd, node_pointer p_parent,
	     node_pointer p_grandparent)
{
  if (p_nd->m_p_parent == base_type::m_p_head)
    base_type::m_p_head->m_p_parent = p_nd;

  apply_update(p_grandparent, (node_update* )this);
  apply_update(p_parent, (node_update* )this);
  apply_update(p_nd, (node_update* )this);

  _GLIBCXX_DEBUG_ONLY(base_type::assert_node_consistent(p_nd);)
}

{'repo_name': 'OpenOrbis/mira-project-archive', 'stars': '227', 'repo_language': 'C++', 'file_name': 'build_proto.py', 'mime_type': 'text/x-python', 'hash': -6255142117718300719, 'source_dataset': 'data'}