140cd1e92:	4c 8d 6c 24 58       	lea    0x58(%rsp),%r13
140cd1e97:	45 85 c9             	test   %r9d,%r9d
140cd1e9a:	75 07                	jne    0x140cd1ea3
140cd1e9c:	33 c0                	xor    %eax,%eax
140cd1e9e:	e9 d9 03 00 00       	jmp    0x140cd227c
140cd1ea3:	41 83 f9 ff          	cmp    $0xffffffff,%r9d
140cd1ea7:	75 10                	jne    0x140cd1eb9
140cd1ea9:	49 c7 c7 ff ff ff ff 	mov    $0xffffffffffffffff,%r15
140cd1eb0:	49 ff c7             	inc    %r15
140cd1eb3:	43 38 3c 38          	cmp    %dil,(%r8,%r15,1)
140cd1eb7:	75 f7                	jne    0x140cd1eb0
140cd1eb9:	41 0f be 00          	movsbl (%r8),%eax
140cd1ebd:	49 8d 48 01          	lea    0x1(%r8),%rcx
140cd1ec1:	48 89 9c 24 c8 00 00 	mov    %rbx,0xc8(%rsp)
140cd1ec8:	00
140cd1ec9:	83 c0 d0             	add    $0xffffffd0,%eax
140cd1ecc:	48 89 b4 24 90 00 00 	mov    %rsi,0x90(%rsp)
140cd1ed3:	00
140cd1ed4:	41 ff cf             	dec    %r15d
140cd1ed7:	4c 89 a4 24 88 00 00 	mov    %r12,0x88(%rsp)
140cd1ede:	00
140cd1edf:	4c 89 b4 24 80 00 00 	mov    %r14,0x80(%rsp)
140cd1ee6:	00
140cd1ee7:	89 44 24 34          	mov    %eax,0x34(%rsp)
140cd1eeb:	83 f8 02             	cmp    $0x2,%eax
140cd1eee:	0f 87 3c 03 00 00    	ja     0x140cd2230
140cd1ef4:	45 85 ff             	test   %r15d,%r15d
140cd1ef7:	7f 13                	jg     0x140cd1f0c
140cd1ef9:	c7 44 24 20 4e 00 00 	movl   $0x4e,0x20(%rsp)
140cd1f00:	00
140cd1f01:	41 b8 8a 00 00 00    	mov    $0x8a,%r8d
140cd1f07:	e9 32 03 00 00       	jmp    0x140cd223e
140cd1f0c:	44 0f be 31          	movsbl (%rcx),%r14d
140cd1f10:	41 ff cf             	dec    %r15d
140cd1f13:	48 ff c1             	inc    %rcx
140cd1f16:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
140cd1f1b:	45 85 ff             	test   %r15d,%r15d
140cd1f1e:	0f 8e 00 03 00 00    	jle    0x140cd2224
140cd1f24:	41 83 fe 2e          	cmp    $0x2e,%r14d
140cd1f28:	74 0a                	je     0x140cd1f34
140cd1f2a:	41 83 fe 20          	cmp    $0x20,%r14d
140cd1f2e:	0f 85 5e 02 00 00    	jne    0x140cd2192
140cd1f34:	33 ff                	xor    %edi,%edi
140cd1f36:	45 33 e4             	xor    %r12d,%r12d
140cd1f39:	45 85 ff             	test   %r15d,%r15d
140cd1f3c:	0f 8e c8 00 00 00    	jle    0x140cd200a
140cd1f42:	0f 1f 40 00          	nopl   0x0(%rax)
140cd1f46:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%rax,%rax,1)
140cd1f4d:	00 00 00
140cd1f50:	44 0f be 31          	movsbl (%rcx),%r14d
140cd1f54:	41 ff cf             	dec    %r15d
140cd1f57:	48 ff c1             	inc    %rcx
140cd1f5a:	48 89 4c 24 50       	mov    %rcx,0x50(%rsp)
140cd1f5f:	41 83 fe 20          	cmp    $0x20,%r14d
140cd1f63:	0f 84 98 00 00 00    	je     0x140cd2001
140cd1f69:	41 83 fe 2e          	cmp    $0x2e,%r14d
140cd1f6d:	0f 84 8e 00 00 00    	je     0x140cd2001
140cd1f73:	ba 04 00 00 00       	mov    $0x4,%edx
140cd1f78:	41 8b ce             	mov    %r14d,%ecx
140cd1f7b:	e8 60 37 03 00       	call   0x140d056e0
140cd1f80:	85 c0                	test   %eax,%eax
140cd1f82:	0f 84 1a 02 00 00    	je     0x140cd21a2
140cd1f88:	45 85 e4             	test   %r12d,%r12d
140cd1f8b:	75 3a                	jne    0x140cd1fc7
140cd1f8d:	81 ff 91 99 99 19    	cmp    $0x19999991,%edi
140cd1f93:	0f 82 aa 00 00 00    	jb     0x140cd2043
140cd1f99:	41 bc 01 00 00 00    	mov    $0x1,%r12d
140cd1f9f:	48 85 ed             	test   %rbp,%rbp
140cd1fa2:	75 11                	jne    0x140cd1fb5
140cd1fa4:	e8 a7 41 00 00       	call   0x140cd6150
140cd1fa9:	48 8b e8             	mov    %rax,%rbp
140cd1fac:	48 85 c0             	test   %rax,%rax
140cd1faf:	0f 84 2f 02 00 00    	je     0x140cd21e4
140cd1fb5:	8b d7                	mov    %edi,%edx
140cd1fb7:	48 8b cd             	mov    %rbp,%rcx
140cd1fba:	e8 71 45 00 00       	call   0x140cd6530
140cd1fbf:	85 c0                	test   %eax,%eax
140cd1fc1:	0f 84 1d 02 00 00    	je     0x140cd21e4
140cd1fc7:	ba 0a 00 00 00       	mov    $0xa,%edx
140cd1fcc:	48 8b cd             	mov    %rbp,%rcx
140cd1fcf:	e8 fc 92 04 00       	call   0x140d1b2d0
140cd1fd4:	85 c0                	test   %eax,%eax
140cd1fd6:	0f 84 08 02 00 00    	je     0x140cd21e4
140cd1fdc:	41 8d 46 d0          	lea    -0x30(%r14),%eax
140cd1fe0:	48 8b cd             	mov    %rbp,%rcx
140cd1fe3:	48 63 d0             	movslq %eax,%rdx
140cd1fe6:	e8 85 8e 04 00       	call   0x140d1ae70
140cd1feb:	85 c0                	test   %eax,%eax
140cd1fed:	0f 84 f1 01 00 00    	je     0x140cd21e4
140cd1ff3:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140cd1ff8:	45 85 ff             	test   %r15d,%r15d
140cd1ffb:	0f 8f 4f ff ff ff    	jg     0x140cd1f50
140cd2001:	8b 44 24 34          	mov    0x34(%rsp),%eax
140cd2005:	48 8b 54 24 40       	mov    0x40(%rsp),%rdx
140cd200a:	83 7c 24 30 00       	cmpl   $0x0,0x30(%rsp)
140cd200f:	75 6a                	jne    0x140cd207b
140cd2011:	83 f8 02             	cmp    $0x2,%eax
140cd2014:	7d 09                	jge    0x140cd201f
140cd2016:	83 ff 28             	cmp    $0x28,%edi
140cd2019:	0f 83 93 01 00 00    	jae    0x140cd21b2
140cd201f:	8d 04 80             	lea    (%rax,%rax,4),%eax
140cd2022:	c1 e0 03             	shl    $0x3,%eax
140cd2025:	45 85 e4             	test   %r12d,%r12d
140cd2028:	74 25                	je     0x140cd204f
140cd202a:	48 63 d0             	movslq %eax,%rdx
140cd202d:	48 8b cd             	mov    %rbp,%rcx
140cd2030:	e8 3b 8e 04 00       	call   0x140d1ae70
140cd2035:	85 c0                	test   %eax,%eax
140cd2037:	0f 84 a7 01 00 00    	je     0x140cd21e4
140cd203d:	33 f6                	xor    %esi,%esi
140cd203f:	33 db                	xor    %ebx,%ebx
140cd2041:	eb 41                	jmp    0x140cd2084
140cd2043:	8d 3c bf             	lea    (%rdi,%rdi,4),%edi
140cd2046:	8d 7f e8             	lea    -0x18(%rdi),%edi
140cd2049:	41 8d 3c 7e          	lea    (%r14,%rdi,2),%edi
140cd204d:	eb a4                	jmp    0x140cd1ff3
140cd204f:	03 f8                	add    %eax,%edi
140cd2051:	33 f6                	xor    %esi,%esi
140cd2053:	33 db                	xor    %ebx,%ebx
140cd2055:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%rax,%rax,1)
140cd205c:	00 00 00 00
140cd2060:	40 0f b6 c7          	movzbl %dil,%eax
140cd2064:	ff c6                	inc    %esi
140cd2066:	24 7f                	and    $0x7f,%al
140cd2068:	c1 ef 07             	shr    $0x7,%edi
140cd206b:	42 88 04 2b          	mov    %al,(%rbx,%r13,1)
140cd206f:	48 ff c3             	inc    %rbx
140cd2072:	85 ff                	test   %edi,%edi
140cd2074:	75 ea                	jne    0x140cd2060
140cd2076:	e9 b0 00 00 00       	jmp    0x140cd212b
140cd207b:	33 f6                	xor    %esi,%esi
140cd207d:	33 db                	xor    %ebx,%ebx
140cd207f:	45 85 e4             	test   %r12d,%r12d
140cd2082:	74 dc                	je     0x140cd2060
140cd2084:	48 8b cd             	mov    %rbp,%rcx
140cd2087:	e8 24 41 00 00       	call   0x140cd61b0
140cd208c:	8d 48 06             	lea    0x6(%rax),%ecx
140cd208f:	b8 93 24 49 92       	mov    $0x92492493,%eax
140cd2094:	f7 e9                	imul   %ecx
140cd2096:	8d 3c 11             	lea    (%rcx,%rdx,1),%edi
140cd2099:	c1 ff 02             	sar    $0x2,%edi
140cd209c:	8b c7                	mov    %edi,%eax
140cd209e:	c1 e8 1f             	shr    $0x1f,%eax
140cd20a1:	03 f8                	add    %eax,%edi
140cd20a3:	3b 7c 24 38          	cmp    0x38(%rsp),%edi
140cd20a7:	7e 47                	jle    0x140cd20f0
140cd20a9:	48 8d 44 24 58       	lea    0x58(%rsp),%rax
140cd20ae:	4c 3b e8             	cmp    %rax,%r13
140cd20b1:	74 15                	je     0x140cd20c8
140cd20b3:	41 b8 88 00 00 00    	mov    $0x88,%r8d
140cd20b9:	48 8d 15 d8 81 47 00 	lea    0x4781d8(%rip),%rdx        # 0x14114a298
140cd20c0:	49 8b cd             	mov    %r13,%rcx
140cd20c3:	e8 48 f9 fe ff       	call   0x140cc1a10
140cd20c8:	8d 47 20             	lea    0x20(%rdi),%eax
140cd20cb:	41 b8 8a 00 00 00    	mov    $0x8a,%r8d
140cd20d1:	48 63 c8             	movslq %eax,%rcx
140cd20d4:	48 8d 15 bd 81 47 00 	lea    0x4781bd(%rip),%rdx        # 0x14114a298
140cd20db:	89 44 24 38          	mov    %eax,0x38(%rsp)
140cd20df:	e8 cc f8 fe ff       	call   0x140cc19b0
140cd20e4:	4c 8b e8             	mov    %rax,%r13
140cd20e7:	48 85 c0             	test   %rax,%rax
140cd20ea:	0f 84 f4 00 00 00    	je     0x140cd21e4
140cd20f0:	85 ff                	test   %edi,%edi
140cd20f2:	74 32                	je     0x140cd2126
140cd20f4:	0f 1f 40 00          	nopl   0x0(%rax)
140cd20f8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140cd20ff:	00
140cd2100:	ba 80 00 00 00       	mov    $0x80,%edx
140cd2105:	48 8b cd             	mov    %rbp,%rcx
140cd2108:	ff cf                	dec    %edi
140cd210a:	e8 11 8f 04 00       	call   0x140d1b020
140cd210f:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
140cd2113:	0f 84 cb 00 00 00    	je     0x140cd21e4
140cd2119:	42 88 04 2b          	mov    %al,(%rbx,%r13,1)
140cd211d:	ff c6                	inc    %esi
140cd211f:	48 ff c3             	inc    %rbx
140cd2122:	85 ff                	test   %edi,%edi
140cd2124:	75 da                	jne    0x140cd2100
140cd2126:	48 8b 54 24 40       	mov    0x40(%rsp),%rdx
140cd212b:	48 63 7c 24 30       	movslq 0x30(%rsp),%rdi
140cd2130:	8d 04 3e             	lea    (%rsi,%rdi,1),%eax
140cd2133:	48 85 d2             	test   %rdx,%rdx
140cd2136:	74 3d                	je     0x140cd2175
140cd2138:	3b 44 24 48          	cmp    0x48(%rsp),%eax
140cd213c:	0f 8f 80 00 00 00    	jg     0x140cd21c2
140cd2142:	48 ff cb             	dec    %rbx
140cd2145:	48 85 db             	test   %rbx,%rbx
140cd2148:	7e 1c                	jle    0x140cd2166
140cd214a:	48 8d 0c 3a          	lea    (%rdx,%rdi,1),%rcx
140cd214e:	03 fb                	add    %ebx,%edi
140cd2150:	42 0f b6 04 2b       	movzbl (%rbx,%r13,1),%eax
140cd2155:	48 8d 49 01          	lea    0x1(%rcx),%rcx
140cd2159:	0c 80                	or     $0x80,%al
140cd215b:	48 ff cb             	dec    %rbx
140cd215e:	88 41 ff             	mov    %al,-0x1(%rcx)
140cd2161:	48 85 db             	test   %rbx,%rbx
140cd2164:	7f ea                	jg     0x140cd2150
140cd2166:	41 0f b6 45 00       	movzbl 0x0(%r13),%eax
140cd216b:	48 63 cf             	movslq %edi,%rcx
140cd216e:	ff c7                	inc    %edi
140cd2170:	88 04 11             	mov    %al,(%rcx,%rdx,1)
140cd2173:	eb 02                	jmp    0x140cd2177
140cd2175:	8b f8                	mov    %eax,%edi
140cd2177:	89 7c 24 30          	mov    %edi,0x30(%rsp)
140cd217b:	45 85 ff             	test   %r15d,%r15d
140cd217e:	0f 8e 81 00 00 00    	jle    0x140cd2205
140cd2184:	48 8b 4c 24 50       	mov    0x50(%rsp),%rcx
140cd2189:	8b 44 24 34          	mov    0x34(%rsp),%eax
140cd218d:	e9 92 fd ff ff       	jmp    0x140cd1f24
140cd2192:	c7 44 24 20 57 00 00 	movl   $0x57,0x20(%rsp)
140cd2199:	00
140cd219a:	41 b8 83 00 00 00    	mov    $0x83,%r8d
140cd21a0:	eb 2e                	jmp    0x140cd21d0
140cd21a2:	c7 44 24 20 64 00 00 	movl   $0x64,0x20(%rsp)
140cd21a9:	00
140cd21aa:	41 b8 82 00 00 00    	mov    $0x82,%r8d
140cd21b0:	eb 1e                	jmp    0x140cd21d0
140cd21b2:	c7 44 24 20 78 00 00 	movl   $0x78,0x20(%rsp)
140cd21b9:	00
140cd21ba:	41 b8 93 00 00 00    	mov    $0x93,%r8d
140cd21c0:	eb 0e                	jmp    0x140cd21d0
140cd21c2:	c7 44 24 20 a0 00 00 	movl   $0xa0,0x20(%rsp)
140cd21c9:	00
140cd21ca:	41 b8 6b 00 00 00    	mov    $0x6b,%r8d
140cd21d0:	ba 64 00 00 00       	mov    $0x64,%edx
140cd21d5:	4c 8d 0d bc 80 47 00 	lea    0x4780bc(%rip),%r9        # 0x14114a298
140cd21dc:	8d 4a a9             	lea    -0x57(%rdx),%ecx
140cd21df:	e8 9c ea ff ff       	call   0x140cd0c80
140cd21e4:	48 8d 44 24 58       	lea    0x58(%rsp),%rax
140cd21e9:	4c 3b e8             	cmp    %rax,%r13
140cd21ec:	74 64                	je     0x140cd2252
140cd21ee:	41 b8 af 00 00 00    	mov    $0xaf,%r8d
140cd21f4:	48 8d 15 9d 80 47 00 	lea    0x47809d(%rip),%rdx        # 0x14114a298
140cd21fb:	49 8b cd             	mov    %r13,%rcx
140cd21fe:	e8 0d f8 fe ff       	call   0x140cc1a10
140cd2203:	eb 4d                	jmp    0x140cd2252
140cd2205:	48 8d 44 24 58       	lea    0x58(%rsp),%rax
140cd220a:	4c 3b e8             	cmp    %rax,%r13
140cd220d:	74 15                	je     0x140cd2224
140cd220f:	41 b8 aa 00 00 00    	mov    $0xaa,%r8d
140cd2215:	48 8d 15 7c 80 47 00 	lea    0x47807c(%rip),%rdx        # 0x14114a298
140cd221c:	49 8b cd             	mov    %r13,%rcx
140cd221f:	e8 ec f7 fe ff       	call   0x140cc1a10
140cd2224:	48 8b cd             	mov    %rbp,%rcx
140cd2227:	e8 34 3d 00 00       	call   0x140cd5f60
140cd222c:	8b c7                	mov    %edi,%eax
140cd222e:	eb 2c                	jmp    0x140cd225c
140cd2230:	c7 44 24 20 49 00 00 	movl   $0x49,0x20(%rsp)
140cd2237:	00
140cd2238:	41 b8 7a 00 00 00    	mov    $0x7a,%r8d
140cd223e:	ba 64 00 00 00       	mov    $0x64,%edx
140cd2243:	4c 8d 0d 4e 80 47 00 	lea    0x47804e(%rip),%r9        # 0x14114a298
140cd224a:	8d 4a a9             	lea    -0x57(%rdx),%ecx
140cd224d:	e8 2e ea ff ff       	call   0x140cd0c80
140cd2252:	48 8b cd             	mov    %rbp,%rcx
140cd2255:	e8 06 3d 00 00       	call   0x140cd5f60
140cd225a:	33 c0                	xor    %eax,%eax
140cd225c:	4c 8b a4 24 88 00 00 	mov    0x88(%rsp),%r12
140cd2263:	00
140cd2264:	48 8b b4 24 90 00 00 	mov    0x90(%rsp),%rsi
140cd226b:	00
140cd226c:	48 8b 9c 24 c8 00 00 	mov    0xc8(%rsp),%rbx
140cd2273:	00
140cd2274:	4c 8b b4 24 80 00 00 	mov    0x80(%rsp),%r14
140cd227b:	00
140cd227c:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
140cd2281:	48 33 cc             	xor    %rsp,%rcx
140cd2284:	e8 77 92 14 00       	call   0x140e1b500
140cd2289:	48 81 c4 98 00 00 00 	add    $0x98,%rsp
140cd2290:	41 5f                	pop    %r15
140cd2292:	41 5d                	pop    %r13
140cd2294:	5f                   	pop    %rdi
140cd2295:	5d                   	pop    %rbp
140cd2296:	c3                   	ret
140cd2297:	cc                   	int3
140cd2298:	cc                   	int3
140cd2299:	cc                   	int3
140cd229a:	cc                   	int3
140cd229b:	cc                   	int3
140cd229c:	cc                   	int3
140cd229d:	cc                   	int3
140cd229e:	cc                   	int3
140cd229f:	cc                   	int3
140cd22a0:	40 53                	rex push %rbx
140cd22a2:	56                   	push   %rsi
140cd22a3:	57                   	push   %rdi
140cd22a4:	41 56                	push   %r14
140cd22a6:	41 57                	push   %r15
140cd22a8:	b8 60 00 00 00       	mov    $0x60,%eax
140cd22ad:	e8 ee 91 14 00       	call   0x140e1b4a0
140cd22b2:	48 2b e0             	sub    %rax,%rsp
140cd22b5:	49 63 f0             	movslq %r8d,%rsi
140cd22b8:	4c 8b fa             	mov    %rdx,%r15
140cd22bb:	4c 8b f1             	mov    %rcx,%r14
140cd22be:	45 85 c0             	test   %r8d,%r8d
140cd22c1:	0f 8e fa 01 00 00    	jle    0x140cd24c1
140cd22c7:	48 85 d2             	test   %rdx,%rdx
140cd22ca:	0f 84 f1 01 00 00    	je     0x140cd24c1
140cd22d0:	48 8b 1a             	mov    (%rdx),%rbx
140cd22d3:	48 85 db             	test   %rbx,%rbx
140cd22d6:	0f 84 e5 01 00 00    	je     0x140cd24c1
140cd22dc:	80 7c 1e ff 00       	cmpb   $0x0,-0x1(%rsi,%rbx,1)
140cd22e1:	0f 8c da 01 00 00    	jl     0x140cd24c1
140cd22e7:	48 89 ac 24 90 00 00 	mov    %rbp,0x90(%rsp)
140cd22ee:	00
140cd22ef:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
140cd22f4:	33 ed                	xor    %ebp,%ebp
140cd22f6:	48 89 5c 24 48       	mov    %rbx,0x48(%rsp)
140cd22fb:	89 6c 24 40          	mov    %ebp,0x40(%rsp)
140cd22ff:	89 6c 24 50          	mov    %ebp,0x50(%rsp)
140cd2303:	89 74 24 44          	mov    %esi,0x44(%rsp)
140cd2307:	e8 a4 1a 00 00       	call   0x140cd3db0
140cd230c:	85 c0                	test   %eax,%eax
140cd230e:	74 25                	je     0x140cd2335
140cd2310:	8b c8                	mov    %eax,%ecx
140cd2312:	e8 39 19 00 00       	call   0x140cd3c50
140cd2317:	48 8b d8             	mov    %rax,%rbx
140cd231a:	4d 85 f6             	test   %r14,%r14
140cd231d:	74 0b                	je     0x140cd232a
140cd231f:	49 8b 0e             	mov    (%r14),%rcx
140cd2322:	e8 19 fa ff ff       	call   0x140cd1d40
140cd2327:	49 89 1e             	mov    %rbx,(%r14)
140cd232a:	49 01 37             	add    %rsi,(%r15)
140cd232d:	48 8b c3             	mov    %rbx,%rax
140cd2330:	e9 43 01 00 00       	jmp    0x140cd2478
140cd2335:	8b c5                	mov    %ebp,%eax
140cd2337:	80 3b 80             	cmpb   $0x80,(%rbx)
140cd233a:	75 0a                	jne    0x140cd2346
140cd233c:	85 c0                	test   %eax,%eax
140cd233e:	74 66                	je     0x140cd23a6
140cd2340:	40 38 6b ff          	cmp    %bpl,-0x1(%rbx)
140cd2344:	7d 60                	jge    0x140cd23a6
140cd2346:	ff c0                	inc    %eax
140cd2348:	48 ff c3             	inc    %rbx
140cd234b:	3b c6                	cmp    %esi,%eax
140cd234d:	7c e8                	jl     0x140cd2337
140cd234f:	4d 85 f6             	test   %r14,%r14
140cd2352:	74 0e                	je     0x140cd2362
140cd2354:	49 8b 3e             	mov    (%r14),%rdi
140cd2357:	48 85 ff             	test   %rdi,%rdi
140cd235a:	74 06                	je     0x140cd2362
140cd235c:	f6 47 20 01          	testb  $0x1,0x20(%rdi)
140cd2360:	75 74                	jne    0x140cd23d6
140cd2362:	41 b8 53 01 00 00    	mov    $0x153,%r8d
140cd2368:	48 8d 15 29 7f 47 00 	lea    0x477f29(%rip),%rdx        # 0x14114a298
140cd236f:	b9 28 00 00 00       	mov    $0x28,%ecx
140cd2374:	e8 d7 f9 fe ff       	call   0x140cc1d50
140cd2379:	48 8b f8             	mov    %rax,%rdi
140cd237c:	48 85 c0             	test   %rax,%rax
140cd237f:	75 4e                	jne    0x140cd23cf