1408b8394:	48 89 6c 24 70       	mov    %rbp,0x70(%rsp)
1408b8399:	48 8b 2f             	mov    (%rdi),%rbp
1408b839c:	4c 89 64 24 78       	mov    %r12,0x78(%rsp)
1408b83a1:	44 0f b6 67 08       	movzbl 0x8(%rdi),%r12d
1408b83a6:	4c 89 6c 24 40       	mov    %r13,0x40(%rsp)
1408b83ab:	4c 8b af d0 00 00 00 	mov    0xd0(%rdi),%r13
1408b83b2:	4c 89 74 24 38       	mov    %r14,0x38(%rsp)
1408b83b7:	4c 8b 77 48          	mov    0x48(%rdi),%r14
1408b83bb:	4c 89 7c 24 30       	mov    %r15,0x30(%rsp)
1408b83c0:	4c 8b bf 30 01 00 00 	mov    0x130(%rdi),%r15
1408b83c7:	48 c7 87 28 01 00 00 	movq   $0x0,0x128(%rdi)
1408b83ce:	00 00 00 00
1408b83d2:	48 63 75 04          	movslq 0x4(%rbp),%rsi
1408b83d6:	48 8d 8e 90 00 00 00 	lea    0x90(%rsi),%rcx
1408b83dd:	e8 7e 53 03 00       	call   0x1408ed760
1408b83e2:	48 8b d8             	mov    %rax,%rbx
1408b83e5:	48 85 c0             	test   %rax,%rax
1408b83e8:	0f 84 e7 00 00 00    	je     0x1408b84d5
1408b83ee:	4c 8d 86 90 00 00 00 	lea    0x90(%rsi),%r8
1408b83f5:	33 d2                	xor    %edx,%edx
1408b83f7:	48 8b c8             	mov    %rax,%rcx
1408b83fa:	e8 b1 72 62 00       	call   0x140edf6b0
1408b83ff:	48 89 2b             	mov    %rbp,(%rbx)
1408b8402:	48 8d 8b 90 00 00 00 	lea    0x90(%rbx),%rcx
1408b8409:	48 89 4b 10          	mov    %rcx,0x10(%rbx)
1408b840d:	41 f6 dc             	neg    %r12b
1408b8410:	4c 89 73 08          	mov    %r14,0x8(%rbx)
1408b8414:	41 b9 06 00 08 00    	mov    $0x80006,%r9d
1408b841a:	1a c0                	sbb    %al,%al
1408b841c:	66 c7 43 3c ff ff    	movw   $0xffff,0x3c(%rbx)
1408b8422:	24 02                	and    $0x2,%al
1408b8424:	4c 89 6b 20          	mov    %r13,0x20(%rbx)
1408b8428:	88 43 3f             	mov    %al,0x3f(%rbx)
1408b842b:	49 8b d7             	mov    %r15,%rdx
1408b842e:	4c 89 bb 80 00 00 00 	mov    %r15,0x80(%rbx)
1408b8435:	48 8d 44 24 60       	lea    0x60(%rsp),%rax
1408b843a:	66 c7 43 44 01 01    	movw   $0x101,0x44(%rbx)
1408b8440:	48 8b cd             	mov    %rbp,%rcx
1408b8443:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1408b8448:	48 8b 45 28          	mov    0x28(%rbp),%rax
1408b844c:	c7 44 24 60 06 00 08 	movl   $0x80006,0x60(%rsp)
1408b8453:	00
1408b8454:	4c 8b 43 10          	mov    0x10(%rbx),%r8
1408b8458:	ff 15 c2 b5 6c 00    	call   *0x6cb5c2(%rip)        # 0x140f83a20
1408b845e:	8b f0                	mov    %eax,%esi
1408b8460:	85 c0                	test   %eax,%eax
1408b8462:	75 3d                	jne    0x1408b84a1
1408b8464:	f6 44 24 60 01       	testb  $0x1,0x60(%rsp)
1408b8469:	74 04                	je     0x1408b846f
1408b846b:	c6 43 42 01          	movb   $0x1,0x42(%rbx)
1408b846f:	49 8b 06             	mov    (%r14),%rax
1408b8472:	48 85 c0             	test   %rax,%rax
1408b8475:	74 21                	je     0x1408b8498
1408b8477:	48 8b 40 60          	mov    0x60(%rax),%rax
1408b847b:	49 8b ce             	mov    %r14,%rcx
1408b847e:	ff 15 9c b5 6c 00    	call   *0x6cb59c(%rip)        # 0x140f83a20
1408b8484:	0f ba e0 0a          	bt     $0xa,%eax
1408b8488:	73 04                	jae    0x1408b848e
1408b848a:	c6 43 44 00          	movb   $0x0,0x44(%rbx)
1408b848e:	0f ba e0 0c          	bt     $0xc,%eax
1408b8492:	73 04                	jae    0x1408b8498
1408b8494:	c6 43 45 00          	movb   $0x0,0x45(%rbx)
1408b8498:	48 89 9f 28 01 00 00 	mov    %rbx,0x128(%rdi)
1408b849f:	eb 39                	jmp    0x1408b84da
1408b84a1:	33 d2                	xor    %edx,%edx
1408b84a3:	48 8b cb             	mov    %rbx,%rcx
1408b84a6:	e8 25 51 07 00       	call   0x14092d5d0
1408b84ab:	4c 8b 73 10          	mov    0x10(%rbx),%r14
1408b84af:	49 8b 06             	mov    (%r14),%rax
1408b84b2:	48 85 c0             	test   %rax,%rax
1408b84b5:	74 14                	je     0x1408b84cb
1408b84b7:	48 8b 40 08          	mov    0x8(%rax),%rax
1408b84bb:	49 8b ce             	mov    %r14,%rcx
1408b84be:	ff 15 5c b5 6c 00    	call   *0x6cb55c(%rip)        # 0x140f83a20
1408b84c4:	49 c7 06 00 00 00 00 	movq   $0x0,(%r14)
1408b84cb:	48 8b cb             	mov    %rbx,%rcx
1408b84ce:	e8 7d 36 fd ff       	call   0x14088bb50
1408b84d3:	eb 05                	jmp    0x1408b84da
1408b84d5:	be 07 00 00 00       	mov    $0x7,%esi
1408b84da:	4c 8b 74 24 38       	mov    0x38(%rsp),%r14
1408b84df:	4c 8b 6c 24 40       	mov    0x40(%rsp),%r13
1408b84e4:	4c 8b 64 24 78       	mov    0x78(%rsp),%r12
1408b84e9:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
1408b84ee:	48 8b 5c 24 68       	mov    0x68(%rsp),%rbx
1408b84f3:	4c 8b 7c 24 30       	mov    0x30(%rsp),%r15
1408b84f8:	48 8b cf             	mov    %rdi,%rcx
1408b84fb:	e8 a0 fb ff ff       	call   0x1408b80a0
1408b8500:	8b c6                	mov    %esi,%eax
1408b8502:	48 83 c4 48          	add    $0x48,%rsp
1408b8506:	5f                   	pop    %rdi
1408b8507:	5e                   	pop    %rsi
1408b8508:	c3                   	ret
1408b8509:	cc                   	int3
1408b850a:	cc                   	int3
1408b850b:	cc                   	int3
1408b850c:	cc                   	int3
1408b850d:	cc                   	int3
1408b850e:	cc                   	int3
1408b850f:	cc                   	int3
1408b8510:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1408b8515:	57                   	push   %rdi
1408b8516:	48 83 ec 20          	sub    $0x20,%rsp
1408b851a:	48 8b 81 28 01 00 00 	mov    0x128(%rcx),%rax
1408b8521:	48 8b fa             	mov    %rdx,%rdi
1408b8524:	48 8b d9             	mov    %rcx,%rbx
1408b8527:	48 85 c0             	test   %rax,%rax
1408b852a:	74 10                	je     0x1408b853c
1408b852c:	66 83 78 3c 00       	cmpw   $0x0,0x3c(%rax)
1408b8531:	7c 09                	jl     0x1408b853c
1408b8533:	8b 40 5c             	mov    0x5c(%rax),%eax
1408b8536:	85 c0                	test   %eax,%eax
1408b8538:	75 43                	jne    0x1408b857d
1408b853a:	eb 02                	jmp    0x1408b853e
1408b853c:	33 c0                	xor    %eax,%eax
1408b853e:	48 8b 49 48          	mov    0x48(%rcx),%rcx
1408b8542:	4c 8b 01             	mov    (%rcx),%r8
1408b8545:	4d 85 c0             	test   %r8,%r8
1408b8548:	74 33                	je     0x1408b857d
1408b854a:	48 c7 44 24 30 00 00 	movq   $0x0,0x30(%rsp)
1408b8551:	00 00
1408b8553:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
1408b8558:	49 8b 40 30          	mov    0x30(%r8),%rax
1408b855c:	ff 15 be b4 6c 00    	call   *0x6cb4be(%rip)        # 0x140f83a20
1408b8562:	85 c0                	test   %eax,%eax
1408b8564:	75 29                	jne    0x1408b858f
1408b8566:	48 8b 8b c8 00 00 00 	mov    0xc8(%rbx),%rcx
1408b856d:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
1408b8572:	48 ff c8             	dec    %rax
1408b8575:	48 03 c1             	add    %rcx,%rax
1408b8578:	48 99                	cqto
1408b857a:	48 f7 f9             	idiv   %rcx
1408b857d:	3b 83 bc 00 00 00    	cmp    0xbc(%rbx),%eax
1408b8583:	76 06                	jbe    0x1408b858b
1408b8585:	89 83 bc 00 00 00    	mov    %eax,0xbc(%rbx)
1408b858b:	89 07                	mov    %eax,(%rdi)
1408b858d:	33 c0                	xor    %eax,%eax
1408b858f:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1408b8594:	48 83 c4 20          	add    $0x20,%rsp
1408b8598:	5f                   	pop    %rdi
1408b8599:	c3                   	ret
1408b859a:	cc                   	int3
1408b859b:	cc                   	int3
1408b859c:	cc                   	int3
1408b859d:	cc                   	int3
1408b859e:	cc                   	int3
1408b859f:	cc                   	int3
1408b85a0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1408b85a5:	48 89 54 24 10       	mov    %rdx,0x10(%rsp)
1408b85aa:	55                   	push   %rbp
1408b85ab:	56                   	push   %rsi
1408b85ac:	57                   	push   %rdi
1408b85ad:	41 54                	push   %r12
1408b85af:	41 55                	push   %r13
1408b85b1:	41 56                	push   %r14
1408b85b3:	41 57                	push   %r15
1408b85b5:	48 83 ec 50          	sub    $0x50,%rsp
1408b85b9:	45 33 ff             	xor    %r15d,%r15d
1408b85bc:	4c 8b ea             	mov    %rdx,%r13
1408b85bf:	48 8b d9             	mov    %rcx,%rbx
1408b85c2:	41 8b ff             	mov    %r15d,%edi
1408b85c5:	48 85 d2             	test   %rdx,%rdx
1408b85c8:	0f 84 b9 00 00 00    	je     0x1408b8687
1408b85ce:	8b 72 18             	mov    0x18(%rdx),%esi
1408b85d1:	b9 00 02 00 00       	mov    $0x200,%ecx
1408b85d6:	e8 85 51 03 00       	call   0x1408ed760
1408b85db:	4c 8b f0             	mov    %rax,%r14
1408b85de:	48 85 c0             	test   %rax,%rax
1408b85e1:	0f 84 96 00 00 00    	je     0x1408b867d
1408b85e7:	48 8d 48 04          	lea    0x4(%rax),%rcx
1408b85eb:	33 d2                	xor    %edx,%edx
1408b85ed:	41 b8 fc 01 00 00    	mov    $0x1fc,%r8d
1408b85f3:	e8 b8 70 62 00       	call   0x140edf6b0
1408b85f8:	41 89 36             	mov    %esi,(%r14)
1408b85fb:	48 8d 73 60          	lea    0x60(%rbx),%rsi
1408b85ff:	41 8b 45 18          	mov    0x18(%r13),%eax
1408b8603:	48 8b 0e             	mov    (%rsi),%rcx
1408b8606:	4c 8b e1             	mov    %rcx,%r12
1408b8609:	89 43 20             	mov    %eax,0x20(%rbx)
1408b860c:	0f b6 43 10          	movzbl 0x10(%rbx),%eax
1408b8610:	88 43 17             	mov    %al,0x17(%rbx)
1408b8613:	48 89 8c 24 a0 00 00 	mov    %rcx,0xa0(%rsp)
1408b861a:	00
1408b861b:	48 39 bb 28 01 00 00 	cmp    %rdi,0x128(%rbx)
1408b8622:	0f 85 ca 01 00 00    	jne    0x1408b87f2
1408b8628:	49 8b 45 08          	mov    0x8(%r13),%rax
1408b862c:	48 8b e9             	mov    %rcx,%rbp
1408b862f:	48 85 c0             	test   %rax,%rax
1408b8632:	48 0f 45 e8          	cmovne %rax,%rbp
1408b8636:	49 8b 45 00          	mov    0x0(%r13),%rax
1408b863a:	48 89 06             	mov    %rax,(%rsi)
1408b863d:	0f 1f 00             	nopl   (%rax)
1408b8640:	48 39 2e             	cmp    %rbp,(%rsi)
1408b8643:	7d 27                	jge    0x1408b866c
1408b8645:	41 b9 01 00 00 00    	mov    $0x1,%r9d
1408b864b:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%rsp)
1408b8652:	00
1408b8653:	4d 8b c6             	mov    %r14,%r8
1408b8656:	48 8b d6             	mov    %rsi,%rdx
1408b8659:	48 8b cb             	mov    %rbx,%rcx
1408b865c:	e8 6f 15 00 00       	call   0x1408b9bd0
1408b8661:	8b f8                	mov    %eax,%edi
1408b8663:	85 c0                	test   %eax,%eax
1408b8665:	74 d9                	je     0x1408b8640
1408b8667:	e9 5e 02 00 00       	jmp    0x1408b88ca
1408b866c:	4c 8b ac 24 a0 00 00 	mov    0xa0(%rsp),%r13
1408b8673:	00
1408b8674:	48 8d 73 60          	lea    0x60(%rbx),%rsi
1408b8678:	e9 86 01 00 00       	jmp    0x1408b8803
1408b867d:	b8 07 00 00 00       	mov    $0x7,%eax
1408b8682:	e9 d6 03 00 00       	jmp    0x1408b8a5d
1408b8687:	8b 41 24             	mov    0x24(%rcx),%eax
1408b868a:	4d 8b f7             	mov    %r15,%r14
1408b868d:	48 8b a9 28 01 00 00 	mov    0x128(%rcx),%rbp
1408b8694:	89 41 20             	mov    %eax,0x20(%rcx)
1408b8697:	0f b6 41 10          	movzbl 0x10(%rcx),%eax
1408b869b:	88 41 17             	mov    %al,0x17(%rcx)
1408b869e:	48 85 ed             	test   %rbp,%rbp
1408b86a1:	0f 84 38 01 00 00    	je     0x1408b87df
1408b86a7:	8b 41 24             	mov    0x24(%rcx),%eax
1408b86aa:	41 8b f7             	mov    %r15d,%esi
1408b86ad:	89 41 20             	mov    %eax,0x20(%rcx)
1408b86b0:	40 38 75 40          	cmp    %sil,0x40(%rbp)
1408b86b4:	0f 84 8e 00 00 00    	je     0x1408b8748
1408b86ba:	44 8b 7d 58          	mov    0x58(%rbp),%r15d
1408b86be:	48 8b 45 30          	mov    0x30(%rbp),%rax
1408b86c2:	48 8b 08             	mov    (%rax),%rcx
1408b86c5:	0f 10 01             	movups (%rcx),%xmm0
1408b86c8:	0f 11 45 48          	movups %xmm0,0x48(%rbp)
1408b86cc:	0f 10 49 10          	movups 0x10(%rcx),%xmm1
1408b86d0:	0f 11 4d 58          	movups %xmm1,0x58(%rbp)
1408b86d4:	0f 10 41 20          	movups 0x20(%rcx),%xmm0
1408b86d8:	0f 11 45 68          	movups %xmm0,0x68(%rbp)
1408b86dc:	8b 7d 58             	mov    0x58(%rbp),%edi
1408b86df:	ff c7                	inc    %edi
1408b86e1:	44 8d b7 00 10 00 00 	lea    0x1000(%rdi),%r14d
1408b86e8:	41 3b ff             	cmp    %r15d,%edi
1408b86eb:	77 4a                	ja     0x1408b8737
1408b86ed:	4c 8b 45 30          	mov    0x30(%rbp),%r8
1408b86f1:	41 8b c6             	mov    %r14d,%eax
1408b86f4:	48 2d df 0f 00 00    	sub    $0xfdf,%rax
1408b86fa:	48 c1 e8 0c          	shr    $0xc,%rax
1408b86fe:	85 c0                	test   %eax,%eax
1408b8700:	75 0c                	jne    0x1408b870e
1408b8702:	49 8b 00             	mov    (%r8),%rax
1408b8705:	8b 94 b8 84 00 00 00 	mov    0x84(%rax,%rdi,4),%edx
1408b870c:	eb 16                	jmp    0x1408b8724
1408b870e:	48 98                	cltq
1408b8710:	8d 57 ff             	lea    -0x1(%rdi),%edx
1408b8713:	48 83 c2 22          	add    $0x22,%rdx
1408b8717:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
1408b871d:	49 8b 0c c0          	mov    (%r8,%rax,8),%rcx
1408b8721:	8b 14 91             	mov    (%rcx,%rdx,4),%edx
1408b8724:	48 8b cb             	mov    %rbx,%rcx
1408b8727:	e8 c4 04 00 00       	call   0x1408b8bf0
1408b872c:	ff c7                	inc    %edi
1408b872e:	41 ff c6             	inc    %r14d
1408b8731:	8b f0                	mov    %eax,%esi
1408b8733:	85 c0                	test   %eax,%eax
1408b8735:	74 b1                	je     0x1408b86e8
1408b8737:	44 3b 7d 58          	cmp    0x58(%rbp),%r15d
1408b873b:	74 08                	je     0x1408b8745
1408b873d:	48 8b cd             	mov    %rbp,%rcx
1408b8740:	e8 2b 49 07 00       	call   0x14092d070
1408b8745:	45 33 ff             	xor    %r15d,%r15d
1408b8748:	48 8b 8b 20 01 00 00 	mov    0x120(%rbx),%rcx
1408b874f:	e8 1c 8f 03 00       	call   0x1408f1670
1408b8754:	48 85 c0             	test   %rax,%rax
1408b8757:	74 7f                	je     0x1408b87d8
1408b8759:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1408b8760:	85 f6                	test   %esi,%esi
1408b8762:	75 74                	jne    0x1408b87d8
1408b8764:	8b 50 30             	mov    0x30(%rax),%edx
1408b8767:	48 8b cb             	mov    %rbx,%rcx
1408b876a:	48 8b 68 20          	mov    0x20(%rax),%rbp
1408b876e:	41 8b f7             	mov    %r15d,%esi
1408b8771:	e8 7a 6c 03 00       	call   0x1408ef3f0
1408b8776:	48 8b f8             	mov    %rax,%rdi
1408b8779:	48 85 c0             	test   %rax,%rax
1408b877c:	74 34                	je     0x1408b87b2
1408b877e:	66 83 78 36 01       	cmpw   $0x1,0x36(%rax)
1408b8783:	48 8b c8             	mov    %rax,%rcx
1408b8786:	75 07                	jne    0x1408b878f
1408b8788:	e8 b3 90 03 00       	call   0x1408f1840
1408b878d:	eb 23                	jmp    0x1408b87b2
1408b878f:	e8 9c 58 00 00       	call   0x1408be030
1408b8794:	8b f0                	mov    %eax,%esi
1408b8796:	85 c0                	test   %eax,%eax
1408b8798:	75 10                	jne    0x1408b87aa
1408b879a:	48 8b 83 08 01 00 00 	mov    0x108(%rbx),%rax
1408b87a1:	48 8b cf             	mov    %rdi,%rcx
1408b87a4:	ff 15 76 b2 6c 00    	call   *0x6cb276(%rip)        # 0x140f83a20
1408b87aa:	48 8b cf             	mov    %rdi,%rcx
1408b87ad:	e8 ce 81 03 00       	call   0x1408f0980
1408b87b2:	48 8b 4b 70          	mov    0x70(%rbx),%rcx
1408b87b6:	48 85 c9             	test   %rcx,%rcx
1408b87b9:	74 15                	je     0x1408b87d0
1408b87bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
1408b87c0:	c7 41 18 01 00 00 00 	movl   $0x1,0x18(%rcx)
1408b87c7:	48 8b 49 40          	mov    0x40(%rcx),%rcx
1408b87cb:	48 85 c9             	test   %rcx,%rcx
1408b87ce:	75 f0                	jne    0x1408b87c0
1408b87d0:	48 8b c5             	mov    %rbp,%rax
1408b87d3:	48 85 ed             	test   %rbp,%rbp
1408b87d6:	75 88                	jne    0x1408b8760
1408b87d8:	8b c6                	mov    %esi,%eax
1408b87da:	e9 7e 02 00 00       	jmp    0x1408b8a5d
1408b87df:	48 8b 41 60          	mov    0x60(%rcx),%rax
1408b87e3:	48 8d 71 60          	lea    0x60(%rcx),%rsi
1408b87e7:	48 89 84 24 a0 00 00 	mov    %rax,0xa0(%rsp)
1408b87ee:	00
1408b87ef:	4c 8b e0             	mov    %rax,%r12
1408b87f2:	4c 8b ac 24 a0 00 00 	mov    0xa0(%rsp),%r13
1408b87f9:	00
1408b87fa:	4c 89 3e             	mov    %r15,(%rsi)
1408b87fd:	eb 04                	jmp    0x1408b8803
1408b87ff:	90                   	nop
1408b8800:	45 33 ff             	xor    %r15d,%r15d
1408b8803:	4c 39 26             	cmp    %r12,(%rsi)
1408b8806:	0f 8d aa 00 00 00    	jge    0x1408b88b6
1408b880c:	48 8d 84 24 a8 00 00 	lea    0xa8(%rsp),%rax
1408b8813:	00
1408b8814:	44 89 bc 24 a0 00 00 	mov    %r15d,0xa0(%rsp)
1408b881b:	00
1408b881c:	4c 8d 8c 24 a0 00 00 	lea    0xa0(%rsp),%r9
1408b8823:	00
1408b8824:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1408b8829:	4d 8b c4             	mov    %r12,%r8
1408b882c:	33 d2                	xor    %edx,%edx
1408b882e:	48 8b cb             	mov    %rbx,%rcx
1408b8831:	e8 0a 59 00 00       	call   0x1408be140
1408b8836:	44 8b bc 24 a0 00 00 	mov    0xa0(%rsp),%r15d
1408b883d:	00
1408b883e:	8b f8                	mov    %eax,%edi
1408b8840:	45 85 ff             	test   %r15d,%r15d
1408b8843:	75 32                	jne    0x1408b8877
1408b8845:	8b 83 b8 00 00 00    	mov    0xb8(%rbx),%eax
1408b884b:	48 03 43 68          	add    0x68(%rbx),%rax
1408b884f:	48 8b 0e             	mov    (%rsi),%rcx
1408b8852:	48 3b c1             	cmp    %rcx,%rax
1408b8855:	75 20                	jne    0x1408b8877
1408b8857:	49 8b c5             	mov    %r13,%rax
1408b885a:	48 2b c1             	sub    %rcx,%rax
1408b885d:	48 8b 8b c8 00 00 00 	mov    0xc8(%rbx),%rcx
1408b8864:	48 83 c1 08          	add    $0x8,%rcx
1408b8868:	48 99                	cqto
1408b886a:	48 f7 f9             	idiv   %rcx
1408b886d:	4c 8b f8             	mov    %rax,%r15
1408b8870:	89 84 24 a0 00 00 00 	mov    %eax,0xa0(%rsp)
1408b8877:	33 ed                	xor    %ebp,%ebp
1408b8879:	85 ff                	test   %edi,%edi