Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
99ee3f4b
Commit
99ee3f4b
authored
Nov 07, 2016
by
Random-Liu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add non-numeric user name support.
parent
d8fa6a99
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
294 additions
and
266 deletions
+294
-266
api.pb.go
pkg/kubelet/api/v1alpha1/runtime/api.pb.go
+225
-223
api.proto
pkg/kubelet/api/v1alpha1/runtime/api.proto
+8
-6
convert.go
pkg/kubelet/dockershim/convert.go
+2
-13
security_context.go
pkg/kubelet/dockershim/security_context.go
+1
-3
security_context_test.go
pkg/kubelet/dockershim/security_context_test.go
+2
-3
docker_manager.go
pkg/kubelet/dockertools/docker_manager.go
+5
-5
docker_manager_test.go
pkg/kubelet/dockertools/docker_manager_test.go
+10
-2
BUILD
pkg/kubelet/kuberuntime/BUILD
+1
-0
helpers.go
pkg/kubelet/kuberuntime/helpers.go
+8
-3
kuberuntime_container.go
pkg/kubelet/kuberuntime/kuberuntime_container.go
+1
-1
kuberuntime_sandbox.go
pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
+1
-1
security_context.go
pkg/kubelet/kuberuntime/security_context.go
+30
-6
No files found.
pkg/kubelet/api/v1alpha1/runtime/api.pb.go
View file @
99ee3f4b
...
@@ -475,8 +475,9 @@ type LinuxSandboxSecurityContext struct {
...
@@ -475,8 +475,9 @@ type LinuxSandboxSecurityContext struct {
NamespaceOptions
*
NamespaceOption
`protobuf:"bytes,1,opt,name=namespace_options,json=namespaceOptions" json:"namespace_options,omitempty"`
NamespaceOptions
*
NamespaceOption
`protobuf:"bytes,1,opt,name=namespace_options,json=namespaceOptions" json:"namespace_options,omitempty"`
// Optional SELinux context to be applied.
// Optional SELinux context to be applied.
SelinuxOptions
*
SELinuxOption
`protobuf:"bytes,2,opt,name=selinux_options,json=selinuxOptions" json:"selinux_options,omitempty"`
SelinuxOptions
*
SELinuxOption
`protobuf:"bytes,2,opt,name=selinux_options,json=selinuxOptions" json:"selinux_options,omitempty"`
// The UID to run the entrypoint of the sandbox process.
// The user to run the entrypoint of the sandbox process, it could be uid or
RunAsUser
*
int64
`protobuf:"varint,3,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"`
// user name.
RunAsUser
*
string
`protobuf:"bytes,3,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"`
// If set, the root filesystem of the sandbox is read-only.
// If set, the root filesystem of the sandbox is read-only.
ReadonlyRootfs
*
bool
`protobuf:"varint,4,opt,name=readonly_rootfs,json=readonlyRootfs" json:"readonly_rootfs,omitempty"`
ReadonlyRootfs
*
bool
`protobuf:"varint,4,opt,name=readonly_rootfs,json=readonlyRootfs" json:"readonly_rootfs,omitempty"`
// A list of groups applied to the first process run in the sandbox, in addition
// A list of groups applied to the first process run in the sandbox, in addition
...
@@ -504,11 +505,11 @@ func (m *LinuxSandboxSecurityContext) GetSelinuxOptions() *SELinuxOption {
...
@@ -504,11 +505,11 @@ func (m *LinuxSandboxSecurityContext) GetSelinuxOptions() *SELinuxOption {
return
nil
return
nil
}
}
func
(
m
*
LinuxSandboxSecurityContext
)
GetRunAsUser
()
int64
{
func
(
m
*
LinuxSandboxSecurityContext
)
GetRunAsUser
()
string
{
if
m
!=
nil
&&
m
.
RunAsUser
!=
nil
{
if
m
!=
nil
&&
m
.
RunAsUser
!=
nil
{
return
*
m
.
RunAsUser
return
*
m
.
RunAsUser
}
}
return
0
return
""
}
}
func
(
m
*
LinuxSandboxSecurityContext
)
GetReadonlyRootfs
()
bool
{
func
(
m
*
LinuxSandboxSecurityContext
)
GetReadonlyRootfs
()
bool
{
...
@@ -1335,9 +1336,10 @@ type LinuxContainerSecurityContext struct {
...
@@ -1335,9 +1336,10 @@ type LinuxContainerSecurityContext struct {
NamespaceOptions
*
NamespaceOption
`protobuf:"bytes,3,opt,name=namespace_options,json=namespaceOptions" json:"namespace_options,omitempty"`
NamespaceOptions
*
NamespaceOption
`protobuf:"bytes,3,opt,name=namespace_options,json=namespaceOptions" json:"namespace_options,omitempty"`
// Optional SELinux context to be applied.
// Optional SELinux context to be applied.
SelinuxOptions
*
SELinuxOption
`protobuf:"bytes,4,opt,name=selinux_options,json=selinuxOptions" json:"selinux_options,omitempty"`
SelinuxOptions
*
SELinuxOption
`protobuf:"bytes,4,opt,name=selinux_options,json=selinuxOptions" json:"selinux_options,omitempty"`
// The UID to run the the container process as.
// The user to run the the container process as, it could be uid or user
// name.
// Defaults to user specified in image metadata if unspecified.
// Defaults to user specified in image metadata if unspecified.
RunAsUser
*
int64
`protobuf:"varint
,5,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"`
RunAsUser
*
string
`protobuf:"bytes
,5,opt,name=run_as_user,json=runAsUser" json:"run_as_user,omitempty"`
// If set, the root filesystem of the container is read-only.
// If set, the root filesystem of the container is read-only.
ReadonlyRootfs
*
bool
`protobuf:"varint,6,opt,name=readonly_rootfs,json=readonlyRootfs" json:"readonly_rootfs,omitempty"`
ReadonlyRootfs
*
bool
`protobuf:"varint,6,opt,name=readonly_rootfs,json=readonlyRootfs" json:"readonly_rootfs,omitempty"`
// A list of groups applied to the first process run in the container, in addition
// A list of groups applied to the first process run in the container, in addition
...
@@ -1381,11 +1383,11 @@ func (m *LinuxContainerSecurityContext) GetSelinuxOptions() *SELinuxOption {
...
@@ -1381,11 +1383,11 @@ func (m *LinuxContainerSecurityContext) GetSelinuxOptions() *SELinuxOption {
return
nil
return
nil
}
}
func
(
m
*
LinuxContainerSecurityContext
)
GetRunAsUser
()
int64
{
func
(
m
*
LinuxContainerSecurityContext
)
GetRunAsUser
()
string
{
if
m
!=
nil
&&
m
.
RunAsUser
!=
nil
{
if
m
!=
nil
&&
m
.
RunAsUser
!=
nil
{
return
*
m
.
RunAsUser
return
*
m
.
RunAsUser
}
}
return
0
return
""
}
}
func
(
m
*
LinuxContainerSecurityContext
)
GetReadonlyRootfs
()
bool
{
func
(
m
*
LinuxContainerSecurityContext
)
GetReadonlyRootfs
()
bool
{
...
@@ -2439,9 +2441,9 @@ type Image struct {
...
@@ -2439,9 +2441,9 @@ type Image struct {
RepoDigests
[]
string
`protobuf:"bytes,3,rep,name=repo_digests,json=repoDigests" json:"repo_digests,omitempty"`
RepoDigests
[]
string
`protobuf:"bytes,3,rep,name=repo_digests,json=repoDigests" json:"repo_digests,omitempty"`
// The size of the image in bytes.
// The size of the image in bytes.
Size_
*
uint64
`protobuf:"varint,4,opt,name=size" json:"size,omitempty"`
Size_
*
uint64
`protobuf:"varint,4,opt,name=size" json:"size,omitempty"`
// The u
id
that will run the command(s).
// The u
ser
that will run the command(s).
U
id
*
int64
`protobuf:"varint,5,opt,name=uid" json:"uid
,omitempty"`
U
ser
*
string
`protobuf:"bytes,5,opt,name=user" json:"user
,omitempty"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
}
}
func
(
m
*
Image
)
Reset
()
{
*
m
=
Image
{}
}
func
(
m
*
Image
)
Reset
()
{
*
m
=
Image
{}
}
...
@@ -2477,11 +2479,11 @@ func (m *Image) GetSize_() uint64 {
...
@@ -2477,11 +2479,11 @@ func (m *Image) GetSize_() uint64 {
return
0
return
0
}
}
func
(
m
*
Image
)
GetU
id
()
int64
{
func
(
m
*
Image
)
GetU
ser
()
string
{
if
m
!=
nil
&&
m
.
U
id
!=
nil
{
if
m
!=
nil
&&
m
.
U
ser
!=
nil
{
return
*
m
.
U
id
return
*
m
.
U
ser
}
}
return
0
return
""
}
}
type
ListImagesResponse
struct
{
type
ListImagesResponse
struct
{
...
@@ -3801,214 +3803,214 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
...
@@ -3801,214 +3803,214 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
}
}
var
fileDescriptorApi
=
[]
byte
{
var
fileDescriptorApi
=
[]
byte
{
// 33
42
bytes of a gzipped FileDescriptorProto
// 33
36
bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x09
,
0x6e
,
0x88
,
0x02
,
0xff
,
0xcc
,
0x3a
,
0xcd
,
0x72
,
0x1b
,
0xc7
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x09
,
0x6e
,
0x88
,
0x02
,
0xff
,
0xcc
,
0x3a
,
0xcd
,
0x72
,
0x1b
,
0xc7
,
0xd1
,
0x04
,
0x40
,
0x8
2
,
0x40
,
0x83
,
0x00
,
0xc1
,
0x21
,
0x45
,
0x42
,
0xa0
,
0x25
,
0x51
,
0x6b
,
0xc9
,
0xd1
,
0x04
,
0x40
,
0x8
0
,
0x40
,
0x83
,
0x00
,
0xc1
,
0x21
,
0x45
,
0x42
,
0xa0
,
0x25
,
0x51
,
0x6b
,
0xc9
,
0x96
,
0x64
,
0x5b
,
0x9f
,
0xc5
,
0x2f
,
0xb1
,
0x62
,
0xd9
,
0x92
,
0x0d
,
0x93
,
0xb4
,
0x43
,
0x4b
,
0x82
,
0x96
,
0x64
,
0x5b
,
0x9f
,
0xc5
,
0x2f
,
0xb1
,
0x62
,
0xd9
,
0x92
,
0x0d
,
0x93
,
0xb4
,
0x43
,
0x4b
,
0x82
,
0xe8
,
0x85
,
0xe4
,
0xd8
,
0xe5
,
0xc3
,
0x66
,
0x85
,
0x1d
,
0x8
2
,
0x2b
,
0x01
,
0xbb
,
0xeb
,
0xd9
,
0x0
1
,
0xe8
,
0x85
,
0xe4
,
0xd8
,
0xe5
,
0xc3
,
0x66
,
0x85
,
0x1d
,
0x8
1
,
0x2b
,
0x01
,
0xbb
,
0xeb
,
0xdd
,
0x8
1
,
0x2
d
,
0xa6
,
0x2a
,
0xf7
,
0x1c
,
0x92
,
0xaa
,
0x5c
,
0x73
,
0x4a
,
0x0e
,
0xa9
,
0x72
,
0x25
,
0xb9
,
0xa5
,
0x2
c
,
0xe6
,
0x92
,
0x6b
,
0x0e
,
0x49
,
0x55
,
0xae
,
0x39
,
0x25
,
0x87
,
0x54
,
0xb9
,
0x92
,
0xdc
,
0x52
,
0x
2a
,
0x55
,
0x79
,
0x87
,
0x54
,
0x1e
,
0x20
,
0x8f
,
0x90
,
0x57
,
0xc8
,
0x29
,
0x35
,
0x7f
,
0xbb
,
0xb3
,
0x
95
,
0xaa
,
0xbc
,
0x43
,
0x2a
,
0x0f
,
0x90
,
0x47
,
0xc8
,
0x2b
,
0xe4
,
0x94
,
0x9a
,
0xdf
,
0x9d
,
0xfd
,
0x
7f
,
0x14
,
0x29
,
0xbb
,
0x62
,
0xdd
,
0x76
,
0x7a
,
0x7a
,
0x7a
,
0x7a
,
0xba
,
0x7b
,
0xfa
,
0x6f
,
0x07
,
0x
a3
,
0x48
,
0xd9
,
0x15
,
0xeb
,
0xb6
,
0xd3
,
0xd3
,
0xd3
,
0xd3
,
0xd3
,
0xdd
,
0xd3
,
0x7f
,
0x3b
,
0xd0
,
0x
ea
,
0x76
,
0xe0
,
0x5e
,
0x0f
,
0x88
,
0x4f
,
0x7d
,
0x34
,
0x4f
,
0xa6
,
0x1e
,
0x75
,
0x27
,
0xd8
,
0xb8
,
0x
b0
,
0x03
,
0xf7
,
0x6a
,
0x10
,
0xfa
,
0xc4
,
0x47
,
0x0b
,
0xe1
,
0xcc
,
0x23
,
0xee
,
0x14
,
0x1b
,
0x57
,
0x
06
,
0xad
,
0xcf
,
0x31
,
0x09
,
0x5d
,
0xdf
,
0x33
,
0xf1
,
0xd7
,
0x53
,
0x1c
,
0x52
,
0xd4
,
0x81
,
0xf9
,
0x
a0
,
0xfd
,
0x39
,
0x0e
,
0x23
,
0xd7
,
0xf7
,
0x4c
,
0xfc
,
0xf5
,
0x0c
,
0x47
,
0x04
,
0x75
,
0x61
,
0xe1
,
0x
43
,
0x01
,
0xe9
,
0x94
,
0x36
,
0x4a
,
0x57
,
0xea
,
0xa6
,
0x1a
,
0x1a
,
0xdf
,
0x96
,
0x60
,
0x31
,
0x42
,
0x
29
,
0x87
,
0x74
,
0x4b
,
0x9b
,
0xa5
,
0x4b
,
0x0d
,
0x53
,
0x0e
,
0x8d
,
0x6f
,
0x4b
,
0xb0
,
0xa4
,
0x90
,
0x
0e
,
0x03
,
0xdf
,
0x0b
,
0x71
,
0x31
,
0x36
,
0xba
,
0x08
,
0x0b
,
0x72
,
0x13
,
0xcb
,
0xb3
,
0x27
,
0xb8
,
0x
a3
,
0xc0
,
0xf7
,
0x22
,
0x5c
,
0x8c
,
0x8d
,
0xce
,
0xc3
,
0xa2
,
0xd8
,
0xc4
,
0xf2
,
0xec
,
0x29
,
0xee
,
0x
53
,
0xe6
,
0xd3
,
0x0d
,
0x09
,
0xeb
,
0xdb
,
0x13
,
0x8c
,
0x5e
,
0x87
,
0x45
,
0x85
,
0xa2
,
0x88
,
0x54
,
0x
96
,
0xd9
,
0x74
,
0x53
,
0xc0
,
0x06
,
0xf6
,
0x14
,
0xa3
,
0xd7
,
0x61
,
0x49
,
0xa2
,
0x48
,
0x22
,
0x15
,
0x
38
,
0x56
,
0x4b
,
0x82
,
0xe5
,
0x6e
,
0xe8
,
0x3a
,
0x2c
,
0x2b
,
0x44
,
0x3b
,
0x70
,
0x23
,
0xe4
,
0x59
,
0x
86
,
0xd5
,
0x16
,
0x60
,
0xb1
,
0x1b
,
0xba
,
0x0a
,
0x2b
,
0x12
,
0xd1
,
0x0e
,
0x5c
,
0x85
,
0x3c
,
0xcf
,
0x
8e
,
0xbc
,
0x24
,
0xa7
,
0x7a
,
0x81
,
0x2b
,
0xf1
,
0x8d
,
0xaf
,
0xa0
,
0xbe
,
0xdd
,
0x1f
,
0x6c
,
0xf9
,
0x
90
,
0x97
,
0xc5
,
0x54
,
0x3f
,
0x70
,
0x05
,
0xbe
,
0xf1
,
0x15
,
0x34
,
0x76
,
0x06
,
0xc3
,
0x6d
,
0xdf
,
0x
de
,
0xbe
,
0x3b
,
0x62
,
0x2c
,
0x86
,
0x98
,
0xb0
,
0x35
,
0x9d
,
0xd2
,
0x46
,
0x85
,
0xb1
,
0x28
,
0x87
,
0x
7b
,
0xe4
,
0x8e
,
0x29
,
0x8b
,
0x11
,
0x0e
,
0xe9
,
0x9a
,
0x6e
,
0x69
,
0xb3
,
0x42
,
0x59
,
0x14
,
0x43
,
0x
a8
,
0x0b
,
0xb5
,
0x10
,
0xdb
,
0x64
,
0x78
,
0x80
,
0xc3
,
0x4e
,
0x99
,
0x4f
,
0x45
,
0x63
,
0xb6
,
0xca
,
0x
d4
,
0x83
,
0x7a
,
0x84
,
0xed
,
0x70
,
0x74
,
0x80
,
0xa3
,
0x6e
,
0x99
,
0x4d
,
0xa9
,
0x31
,
0x5d
,
0xe5
,
0x0
f
,
0xa8
,
0xeb
,
0x7b
,
0x61
,
0xa7
,
0x22
,
0x56
,
0xc9
,
0xa1
,
0xf1
,
0xbb
,
0x12
,
0x34
,
0xf6
,
0x7c
,
0x0
7
,
0xc4
,
0xf5
,
0xbd
,
0xa8
,
0x5b
,
0xe1
,
0xab
,
0xc4
,
0xd0
,
0xf8
,
0x5d
,
0x09
,
0x9a
,
0xfb
,
0x7e
,
0x4
2
,
0xef
,
0xdb
,
0x41
,
0xe0
,
0x7a
,
0x23
,
0xf4
,
0x16
,
0xd4
,
0xb8
,
0x50
,
0x87
,
0xfe
,
0x98
,
0xcb
,
0x4
8
,
0xee
,
0xda
,
0x41
,
0xe0
,
0x7a
,
0x63
,
0xf4
,
0x16
,
0xd4
,
0x99
,
0x50
,
0x47
,
0xfe
,
0x84
,
0xc9
,
0xa0
,
0xb
5
,
0xb9
,
0x74
,
0x5d
,
0xb2
,
0x74
,
0x7d
,
0x4f
,
0x4e
,
0x98
,
0x11
,
0x0a
,
0xba
,
0x0c
,
0xad
,
0xa0
,
0xb
d
,
0xb5
,
0x7c
,
0x55
,
0xb0
,
0x74
,
0x75
,
0x5f
,
0x4c
,
0x98
,
0x0a
,
0x05
,
0x5d
,
0x84
,
0xf6
,
0x
a1
,
0xef
,
0x51
,
0xdb
,
0xf5
,
0x30
,
0xb1
,
0x02
,
0x9f
,
0x50
,
0x2e
,
0x99
,
0x39
,
0xb3
,
0x19
,
0x41
,
0x
c8
,
0xf7
,
0x88
,
0xed
,
0x7a
,
0x38
,
0xb4
,
0x02
,
0x3f
,
0x24
,
0x4c
,
0x32
,
0x55
,
0xb3
,
0xa5
,
0xa0
,
0x
19
,
0x71
,
0xb4
,
0x0e
,
0xf5
,
0x03
,
0x3f
,
0xa4
,
0x02
,
0xa3
,
0xc2
,
0x31
,
0x6a
,
0x0c
,
0xc0
,
0x27
,
0x
94
,
0x38
,
0xda
,
0x80
,
0xc6
,
0x81
,
0x1f
,
0x11
,
0x8e
,
0x51
,
0x61
,
0x18
,
0x75
,
0x0a
,
0x60
,
0x93
,
0x
d7
,
0x60
,
0x9e
,
0x4f
,
0xba
,
0x81
,
0x94
,
0x41
,
0x95
,
0x0d
,
0x77
,
0x03
,
0xe3
,
0xb7
,
0x25
,
0x98
,
0x
eb
,
0xb0
,
0xc0
,
0x26
,
0xdd
,
0x40
,
0xc8
,
0xa0
,
0x46
,
0x87
,
0x7b
,
0x81
,
0xf1
,
0xdb
,
0x12
,
0x54
,
0x
bb
,
0xef
,
0x4f
,
0x3d
,
0x9a
,
0xda
,
0xc6
,
0xa6
,
0x07
,
0x52
,
0x3f
,
0xda
,
0x36
,
0x36
,
0x3d
,
0x88
,
0x
ef
,
0xfa
,
0x33
,
0x8f
,
0xa4
,
0xb6
,
0xb1
,
0xc9
,
0x81
,
0xd0
,
0x8f
,
0xb6
,
0x8d
,
0x4d
,
0x0e
,
0xe2
,
0x
b7
,
0x61
,
0x18
,
0x42
,
0x45
,
0x62
,
0x1b
,
0x36
,
0xd9
,
0x85
,
0x1a
,
0xc1
,
0xb6
,
0xe3
,
0x7b
,
0xe3
,
0x
6d
,
0x28
,
0x06
,
0x57
,
0x11
,
0xdf
,
0x86
,
0x4e
,
0xf6
,
0xa0
,
0x1e
,
0x62
,
0xdb
,
0xf1
,
0xbd
,
0xc9
,
0x2
3
,
0xce
,
0x42
,
0xcd
,
0x8c
,
0xc6
,
0x4c
,
0x77
,
0x21
,
0x1e
,
0xbb
,
0xde
,
0xf4
,
0x99
,
0x45
,
0xf0
,
0x2
1
,
0x63
,
0xa1
,
0x6e
,
0xaa
,
0x31
,
0xd5
,
0x5d
,
0x84
,
0x27
,
0xae
,
0x37
,
0x7b
,
0x66
,
0x85
,
0x78
,
0x
d8
,
0x7e
,
0x8c
,
0xc7
,
0x9c
,
0x95
,
0x9a
,
0xd9
,
0x92
,
0x60
,
0x53
,
0x40
,
0x8d
,
0x27
,
0xb0
,
0xc8
,
0x
62
,
0x3f
,
0xc4
,
0x13
,
0xc6
,
0x4a
,
0xdd
,
0x6c
,
0x0b
,
0xb0
,
0xc9
,
0xa1
,
0xc6
,
0x63
,
0x58
,
0xa2
,
0x
94
,
0x1d
,
0x06
,
0xf6
,
0x10
,
0x3f
,
0xe0
,
0x22
,
0x64
,
0xa6
,
0xc1
,
0x37
,
0xf5
,
0x30
,
0xfd
,
0xc6
,
0x
ca
,
0x8e
,
0x02
,
0x7b
,
0x84
,
0xef
,
0x31
,
0x11
,
0x52
,
0xd3
,
0x60
,
0x9b
,
0x7a
,
0x98
,
0x7c
,
0xe3
,
0x
27
,
0x4f
,
0x39
,
0x67
,
0x35
,
0xb3
,
0xc1
,
0x60
,
0x7d
,
0x01
,
0x42
,
0x67
,
0xa1
,
0x26
,
0xf8
,
0x72
,
0x
87
,
0x4f
,
0x18
,
0x67
,
0x75
,
0xb3
,
0x49
,
0x61
,
0x03
,
0x0e
,
0x42
,
0xa7
,
0xa1
,
0xce
,
0xf9
,
0x72
,
0x1d
,
0xc
e
,
0x56
,
0xcd
,
0xe4
,
0x27
,
0xde
,
0x73
,
0x9d
,
0x68
,
0xca
,
0x0d
,
0x86
,
0x92
,
0xab
,
0x79
,
0x1d
,
0xc
6
,
0x56
,
0xdd
,
0x64
,
0x27
,
0xde
,
0x77
,
0x1d
,
0x35
,
0xe5
,
0x06
,
0x23
,
0xc1
,
0xd5
,
0x02
,
0x
71
,
0xfa
,
0xa1
,
0xf1
,
0xfb
,
0x32
,
0xac
,
0xdf
,
0x63
,
0x9b
,
0x0f
,
0x6c
,
0xcf
,
0x79
,
0xec
,
0x3
f
,
0x
3f
,
0xfd
,
0xc8
,
0xf8
,
0x7d
,
0x19
,
0x36
,
0xee
,
0xd0
,
0xcd
,
0x87
,
0xb6
,
0xe7
,
0x3c
,
0xf4
,
0x9
f
,
0x
1b
,
0xe0
,
0xe1
,
0x94
,
0xb8
,
0xf4
,
0x68
,
0xcb
,
0xf7
,
0x28
,
0x7e
,
0x46
,
0xd1
,
0x0e
,
0x2c
,
0x79
,
0x
0d
,
0xf1
,
0x68
,
0x16
,
0xba
,
0xe4
,
0x70
,
0xdb
,
0xf7
,
0x08
,
0x7e
,
0x46
,
0xd0
,
0x2e
,
0x2c
,
0x7b
,
0x
8a
,
0x17
,
0x4b
,
0xa9
,
0x97
,
0xed
,
0xde
,
0xd8
,
0xec
,
0x44
,
0x3a
,
0x4b
,
0x71
,
0x6b
,
0xb6
,
0xbd
,
0x
92
,
0x17
,
0x4b
,
0xaa
,
0x97
,
0xee
,
0xde
,
0xdc
,
0xea
,
0x2a
,
0x9d
,
0xa5
,
0xb8
,
0x35
,
0x3b
,
0x5e
,
0x
24
,
0x20
,
0x44
,
0x1f
,
0xc4
,
0x67
,
0x57
,
0x44
,
0xca
,
0x9c
,
0xc8
,
0x6a
,
0x44
,
0x64
,
0xb0
,
0xc3
,
0x
12
,
0x10
,
0xa1
,
0x0f
,
0xe2
,
0xb3
,
0x4b
,
0x22
,
0x65
,
0x46
,
0x64
,
0x4d
,
0x11
,
0x19
,
0xee
,
0x32
,
0x
f9
,
0x90
,
0x24
,
0x94
,
0x4c
,
0x14
,
0x81
,
0xf3
,
0xc0
,
0xee
,
0x81
,
0x65
,
0x87
,
0xd6
,
0x34
,
0xc4
,
0x
3e
,
0x04
,
0x09
,
0x29
,
0x13
,
0x49
,
0xe0
,
0x2c
,
0xd0
,
0x7b
,
0x60
,
0xd9
,
0x91
,
0x35
,
0x8b
,
0x70
,
0x
84
,
0x9f
,
0xa2
,
0x62
,
0xd6
,
0xc9
,
0xd4
,
0xeb
,
0x85
,
0x8f
,
0x42
,
0x4c
,
0xf8
,
0xc5
,
0x90
,
0x82
,
0x
28
,
0x8c
,
0xbe
,
0x11
,
0xce
,
0xbc
,
0x7e
,
0xf4
,
0x20
,
0xc2
,
0x21
,
0xbb
,
0x18
,
0x42
,
0xd0
,
0x56
,
0x
b6
,
0x88
,
0xef
,
0xd3
,
0xfd
,
0x50
,
0x09
,
0x57
,
0x81
,
0x4d
,
0x0e
,
0x45
,
0xff
,
0x07
,
0xcb
,
0xe1
,
0x
e8
,
0xfb
,
0xe4
,
0x51
,
0x24
,
0x85
,
0x2b
,
0xc1
,
0x26
,
0x83
,
0xa2
,
0xff
,
0x83
,
0x95
,
0x68
,
0x16
,
0x
34
,
0x08
,
0xc6
,
0x78
,
0x82
,
0x3d
,
0x6a
,
0x8f
,
0xad
,
0x11
,
0xf1
,
0xa7
,
0x41
,
0xd8
,
0x99
,
0xdb
,
0x
04
,
0x13
,
0x3c
,
0xc5
,
0x1e
,
0xb1
,
0x27
,
0xd6
,
0x38
,
0xf4
,
0x67
,
0x41
,
0xd4
,
0xad
,
0x6e
,
0x56
,
0x
a8
,
0x5c
,
0xa9
,
0x98
,
0x48
,
0x9f
,
0xfa
,
0x84
,
0xcf
,
0x18
,
0xbf
,
0x29
,
0xc1
,
0x19
,
0xce
,
0xd9
,
0x
2e
,
0x55
,
0x4c
,
0xa4
,
0x4f
,
0x7d
,
0xc2
,
0x66
,
0x8c
,
0xdf
,
0x94
,
0xe0
,
0x14
,
0xe3
,
0x6c
,
0xdf
,
0x
9e
,
0xef
,
0x48
,
0x21
,
0xc9
,
0x6b
,
0xf2
,
0x2a
,
0x34
,
0x87
,
0x7c
,
0xb9
,
0x15
,
0xd8
,
0x04
,
0x7b
,
0x
77
,
0x84
,
0x90
,
0xc4
,
0x35
,
0x79
,
0x15
,
0x5a
,
0x23
,
0xb6
,
0xdc
,
0x0a
,
0xec
,
0x10
,
0x7b
,
0x44
,
0x
54
,
0xda
,
0xcb
,
0x82
,
0x00
,
0xee
,
0x71
,
0x18
,
0x7a
,
0x00
,
0xed
,
0x50
,
0xca
,
0xd4
,
0x1a
,
0x0a
,
0x
d8
,
0xcb
,
0x22
,
0x07
,
0xee
,
0x33
,
0x18
,
0xba
,
0x07
,
0x9d
,
0x48
,
0xc8
,
0xd4
,
0x1a
,
0x71
,
0xa1
,
0x
a1
,
0xca
,
0xa3
,
0x5f
,
0x8a
,
0x8e
,
0x7e
,
0x8c
,
0x02
,
0xcc
,
0xc5
,
0x30
,
0x09
,
0x30
,
0x08
,
0xa0
,
0x
8a
,
0xa3
,
0x5f
,
0x50
,
0x47
,
0x3f
,
0x42
,
0x01
,
0xe6
,
0x52
,
0x94
,
0x04
,
0x18
,
0x21
,
0xa0
,
0x98
,
0x9
8
,
0x93
,
0xfb
,
0x98
,
0xda
,
0x8e
,
0x4d
,
0x6d
,
0x84
,
0x60
,
0x96
,
0xfb
,
0x0c
,
0xc1
,
0x02
,
0xff
,
0x9
3
,
0xbb
,
0x98
,
0xd8
,
0x8e
,
0x4d
,
0x6c
,
0x84
,
0x60
,
0x9e
,
0xf9
,
0x0c
,
0xce
,
0x02
,
0xfb
,
0x46
,
0x
46
,
0x6d
,
0xa8
,
0x4c
,
0xa5
,
0x31
,
0xd4
,
0x4d
,
0xf6
,
0x89
,
0x5e
,
0x81
,
0x7a
,
0xa4
,
0x1a
,
0xe9
,
0x
1d
,
0xa8
,
0xcc
,
0x84
,
0x31
,
0x34
,
0x4c
,
0xfa
,
0x89
,
0x5e
,
0x81
,
0x86
,
0x52
,
0x8d
,
0x94
,
0xa1
,
0x
38
,
0x62
,
0x00
,
0xbb
,
0xc0
,
0x36
,
0xa5
,
0x78
,
0x12
,
0x50
,
0x2e
,
0xbb
,
0xa6
,
0xa9
,
0x86
,
0xc6
,
0x
02
,
0xd0
,
0x0b
,
0x6c
,
0x13
,
0x82
,
0xa7
,
0x01
,
0x61
,
0xb2
,
0x6b
,
0x99
,
0x72
,
0x68
,
0xfc
,
0x7d
,
0x
df
,
0x67
,
0xa1
,
0x9d
,
0x39
,
0xfe
,
0x4d
,
0xa8
,
0x4d
,
0xe4
,
0xf6
,
0xd2
,
0x22
,
0xd6
,
0xe3
,
0x5b
,
0x
1e
,
0x3a
,
0x99
,
0xe3
,
0x5f
,
0x87
,
0xfa
,
0x54
,
0x6c
,
0x2f
,
0x2c
,
0x62
,
0x23
,
0xbe
,
0xc5
,
0x19
,
0x
9c
,
0xe1
,
0xd0
,
0x8c
,
0x90
,
0xd9
,
0x25
,
0x61
,
0xe6
,
0xa7
,
0xf9
,
0xb8
,
0x68
,
0xcc
,
0x64
,
0x3a
,
0x
0e
,
0x4d
,
0x85
,
0x4c
,
0x2f
,
0x09
,
0x35
,
0x3f
,
0xcd
,
0xc7
,
0xa9
,
0x31
,
0x95
,
0xe9
,
0xc4
,
0x1f
,
0x
f6
,
0x47
,
0x96
,
0xe3
,
0x12
,
0x3c
,
0xa4
,
0x3e
,
0x39
,
0x92
,
0x5c
,
0x2e
,
0x8c
,
0xfd
,
0xd1
,
0xb6
,
0x
5b
,
0x8e
,
0x1b
,
0xe2
,
0x11
,
0xf1
,
0xc3
,
0x43
,
0xc1
,
0xe5
,
0xe2
,
0xc4
,
0x1f
,
0xef
,
0x48
,
0x18
,
0x
82
,
0xa1
,
0x1b
,
0x00
,
0x8e
,
0x17
,
0x32
,
0x71
,
0xee
,
0xbb
,
0x23
,
0xce
,
0x6b
,
0x63
,
0x13
,
0x45
,
0x
ba
,
0x06
,
0xe0
,
0x78
,
0x11
,
0x15
,
0xe7
,
0x23
,
0x77
,
0xcc
,
0x78
,
0x6d
,
0x6e
,
0x21
,
0xb5
,
0xb7
,
0x
7b
,
0x47
,
0x7e
,
0xcc
,
0xac
,
0x3b
,
0x5e
,
0x28
,
0x99
,
0x7d
,
0x17
,
0x9a
,
0xcc
,
0x2f
,
0x58
,
0x13
,
0x
f2
,
0x63
,
0x66
,
0xc3
,
0xf1
,
0x22
,
0xc1
,
0xec
,
0xbb
,
0xd0
,
0xa2
,
0x7e
,
0xc1
,
0x9a
,
0x72
,
0x17
,
0x
e1
,
0x82
,
0x84
,
0xc2
,
0x1b
,
0x9b
,
0x2b
,
0x1a
,
0xc7
,
0x91
,
0x7f
,
0x32
,
0x17
,
0x82
,
0x78
,
0x10
,
0x
c4
,
0x15
,
0xde
,
0xdc
,
0x5a
,
0xd5
,
0x38
,
0x56
,
0xfe
,
0xc9
,
0x5c
,
0x0c
,
0xe2
,
0x41
,
0x84
,
0x6e
,
0x
a2
,
0xdb
,
0x50
,
0xe5
,
0xf7
,
0x32
,
0xec
,
0x54
,
0xf9
,
0x9a
,
0xcb
,
0x39
,
0xa7
,
0x14
,
0xbb
,
0x5c
,
0x
42
,
0x8d
,
0xdd
,
0xcb
,
0xa8
,
0x5b
,
0x63
,
0x6b
,
0x2e
,
0xe6
,
0x9c
,
0x92
,
0xef
,
0x72
,
0xf5
,
0x0e
,
0x
bf
,
0xc7
,
0xf1
,
0x76
,
0x3c
,
0x4a
,
0x8e
,
0x4c
,
0xb9
,
0x08
,
0xdd
,
0x83
,
0x86
,
0xed
,
0x79
,
0x3e
,
0x
c3
,
0xdb
,
0xf5
,
0x48
,
0x78
,
0x68
,
0x8a
,
0x45
,
0xe8
,
0x0e
,
0x34
,
0x6d
,
0xcf
,
0xf3
,
0x89
,
0xcd
,
0x
b5
,
0x85
,
0xd9
,
0xcf
,
0x73
,
0x1a
,
0xd7
,
0x8a
,
0x69
,
0xf4
,
0x62
,
0x64
,
0x41
,
0x48
,
0x5f
,
0x8e
,
0x
cd
,
0x7e
,
0x81
,
0xd1
,
0xb8
,
0x52
,
0x4c
,
0xa3
,
0x1f
,
0x23
,
0x73
,
0x42
,
0xfa
,
0x72
,
0xf4
,
0x23
,
0x
7e
,
0x04
,
0x73
,
0xfc
,
0x5e
,
0x74
,
0x6a
,
0xfc
,
0xd4
,
0xe7
,
0x93
,
0x36
,
0x94
,
0x26
,
0x66
,
0x0a
,
0x
a8
,
0xb2
,
0x7b
,
0xd1
,
0xad
,
0xb3
,
0x53
,
0x9f
,
0x4d
,
0xda
,
0x50
,
0x9a
,
0x98
,
0xc9
,
0x91
,
0x7b
,
0xe
4
,
0xee
,
0xbb
,
0xd0
,
0xd0
,
0x58
,
0x63
,
0x86
,
0xf1
,
0x14
,
0x1f
,
0x49
,
0x5b
,
0x61
,
0x9f
,
0x6
8
,
0xe
f
,
0x42
,
0x53
,
0x63
,
0x8d
,
0x1a
,
0xc6
,
0x13
,
0x7c
,
0x28
,
0x6c
,
0x85
,
0x7e
,
0xa2
,
0x55
,
0xa
8
,
0x
05
,
0xe6
,
0x0e
,
0xed
,
0xf1
,
0x54
,
0xe9
,
0x43
,
0x0c
,
0x6e
,
0x95
,
0x7f
,
0x52
,
0xea
,
0xde
,
0x81
,
0x
3e
,
0xb5
,
0x27
,
0x33
,
0xa9
,
0x0f
,
0x3e
,
0xb8
,
0x51
,
0xfe
,
0x49
,
0xa9
,
0x77
,
0x0b
,
0x3a
,
0x69
,
0x
76
,
0x9a
,
0xa3
,
0xd3
,
0xac
,
0x37
,
0x76
,
0x61
,
0xc5
,
0x9c
,
0x7a
,
0x31
,
0x63
,
0x2a
,
0x68
,
0xde
,
0x
8e
,
0x4e
,
0xb2
,
0xde
,
0xd8
,
0x83
,
0x55
,
0x73
,
0xe6
,
0xc5
,
0x8c
,
0xc9
,
0xa0
,
0x79
,
0x0d
,
0x6a
,
0x
80
,
0xaa
,
0xd4
,
0x9f
,
0xb0
,
0x9d
,
0xb3
,
0x85
,
0x12
,
0x31
,
0x25
,
0xa2
,
0x71
,
0x1b
,
0xce
,
0xa4
,
0x
42
,
0x7f
,
0xdc
,
0x76
,
0x4e
,
0x17
,
0x4a
,
0xc4
,
0x14
,
0x88
,
0xc6
,
0x4d
,
0x38
,
0x95
,
0x22
,
0x25
,
0x4
8
,
0xc9
,
0x90
,
0x7a
,
0x09
,
0x5a
,
0x81
,
0xef
,
0x58
,
0xa1
,
0x00
,
0x5b
,
0xae
,
0xa3
,
0x6e
,
0x6
2
,
0x4
2
,
0xea
,
0x05
,
0x68
,
0x07
,
0xbe
,
0x63
,
0x45
,
0x1c
,
0x6c
,
0xb9
,
0x8e
,
0xbc
,
0x89
,
0x81
,
0xc
2
,
0x
10
,
0xe1
,
0xee
,
0x3a
,
0x6c
,
0xf9
,
0x80
,
0xfa
,
0x41
,
0x96
,
0x95
,
0x93
,
0x2d
,
0xef
,
0xc0
,
0x6a
,
0x
dd
,
0x73
,
0xe8
,
0xf2
,
0x21
,
0xf1
,
0x83
,
0x2c
,
0x2b
,
0xc7
,
0x5b
,
0xde
,
0x85
,
0xb5
,
0xf4
,
0x72
,
0x
7a
,
0xb9
,
0xd8
,
0xde
,
0xf8
,
0x00
,
0xd6
,
0x4c
,
0x3c
,
0xf1
,
0x0f
,
0xf1
,
0x8b
,
0x92
,
0xee
,
0x42
,
0x
be
,
0xbd
,
0xf1
,
0x01
,
0xac
,
0x9b
,
0x78
,
0xea
,
0x3f
,
0xc5
,
0x2f
,
0x4a
,
0xba
,
0x07
,
0xdd
,
0x2c
,
0x
27
,
0x4b
,
0x20
,
0x26
,
0x1e
,
0x43
,
0x07
,
0xd4
,
0xa6
,
0xd3
,
0xf0
,
0x74
,
0xc4
,
0xaf
,
0xea
,
0x04
,
0x
81
,
0x98
,
0x78
,
0x0c
,
0x1d
,
0x12
,
0x9b
,
0xcc
,
0xa2
,
0x93
,
0x11
,
0xbf
,
0xac
,
0x13
,
0x10
,
0xc1
,
0x
64
,
0xb0
,
0x10
,
0x74
,
0x50
,
0x0b
,
0xca
,
0x6e
,
0x20
,
0x17
,
0x95
,
0xdd
,
0xc0
,
0xf8
,
0x12
,
0xea
,
0x
82
,
0xd3
,
0x41
,
0x6d
,
0x28
,
0xbb
,
0x81
,
0x58
,
0x54
,
0x76
,
0x03
,
0xe3
,
0x4b
,
0x68
,
0x0c
,
0x74
,
0x
7d
,
0xdd
,
0x1b
,
0xe8
,
0xd1
,
0xa6
,
0x6e
,
0xaa
,
0x21
,
0xda
,
0x8c
,
0x03
,
0x7d
,
0xf9
,
0x39
,
0x91
,
0x
6f
,
0xa0
,
0x47
,
0x9b
,
0x86
,
0x29
,
0x87
,
0x68
,
0x2b
,
0x0e
,
0xf4
,
0xe5
,
0xe7
,
0x44
,
0x02
,
0x95
,
0x
20
,
0x4a
,
0x01
,
0xee
,
0x66
,
0x9c
,
0xa8
,
0xe4
,
0x61
,
0x13
,
0x20
,
0xf2
,
0x40
,
0x2a
,
0xb2
,
0xa0
,
0x
02
,
0xdc
,
0xce
,
0x38
,
0x51
,
0xc1
,
0xc3
,
0x16
,
0x80
,
0xf2
,
0x40
,
0x32
,
0xb2
,
0xa0
,
0x2c
,
0x3d
,
0x
2c
,
0x3d
,
0x53
,
0xc3
,
0x32
,
0xfe
,
0x98
,
0x70
,
0x47
,
0xda
,
0x61
,
0x9c
,
0xe8
,
0x30
,
0x4e
,
0xc2
,
0x
53
,
0xc3
,
0x32
,
0xfe
,
0x98
,
0x70
,
0x47
,
0xda
,
0x61
,
0x1c
,
0x75
,
0x18
,
0x27
,
0xe1
,
0x9e
,
0xca
,
0x
3d
,
0x95
,
0x4f
,
0xe3
,
0x9e
,
0xae
,
0xc3
,
0x5c
,
0x48
,
0x6d
,
0x2a
,
0x1c
,
0x64
,
0x4b
,
0x3b
,
0x5c
,
0x
27
,
0x71
,
0x4f
,
0x57
,
0xa1
,
0x1a
,
0x11
,
0x9b
,
0x70
,
0x07
,
0xd9
,
0xd6
,
0x0e
,
0x97
,
0xdc
,
0x12
,
0x
72
,
0x4b
,
0x6c
,
0x0a
,
0x34
,
0x74
,
0x0e
,
0x60
,
0x48
,
0xb0
,
0x4d
,
0xb1
,
0x63
,
0xd9
,
0xc2
,
0x73
,
0x
9b
,
0x1c
,
0x0d
,
0x9d
,
0x01
,
0x18
,
0x85
,
0xd8
,
0x26
,
0xd8
,
0xb1
,
0x6c
,
0xee
,
0x39
,
0x2b
,
0x66
,
0x
56
,
0xcc
,
0xba
,
0x84
,
0xf4
,
0x28
,
0xba
,
0x15
,
0xcb
,
0x71
,
0x8e
,
0xb3
,
0xb1
,
0x91
,
0x43
,
0x30
,
0x
43
,
0x40
,
0xfa
,
0x04
,
0xdd
,
0x88
,
0xe5
,
0x58
,
0x65
,
0x6c
,
0x6c
,
0xe6
,
0x10
,
0x4c
,
0xe8
,
0x25
,
0x
a1
,
0x97
,
0x58
,
0xd2
,
0xd1
,
0x6d
,
0xaf
,
0x1e
,
0x7f
,
0xdb
,
0xe5
,
0x3a
,
0x81
,
0xac
,
0x39
,
0xac
,
0x
96
,
0xb4
,
0xba
,
0xed
,
0xb5
,
0xa3
,
0x6f
,
0xbb
,
0x58
,
0xc7
,
0x91
,
0x35
,
0x87
,
0xb5
,
0x50
,
0xe8
,
0x
f9
,
0x42
,
0x87
,
0x25
,
0x56
,
0x9c
,
0xc4
,
0x61
,
0xd5
,
0x0a
,
0x1d
,
0x96
,
0xa4
,
0x71
,
0xac
,
0xc3
,
0x
b0
,
0xf8
,
0x8a
,
0xe3
,
0x38
,
0xac
,
0x7a
,
0xa1
,
0xc3
,
0x12
,
0x34
,
0x8e
,
0x74
,
0x58
,
0x3f
,
0xa4
,
0x
fa
,
0x21
,
0x5d
,
0xcf
,
0x7d
,
0xe8
,
0x64
,
0xaf
,
0x8e
,
0x74
,
0x19
,
0x37
,
0xa0
,
0x1a
,
0x72
,
0xc8
,
0x
eb
,
0xb9
,
0x0b
,
0xdd
,
0xec
,
0xd5
,
0x11
,
0x2e
,
0xe3
,
0x1a
,
0xd4
,
0x22
,
0x06
,
0x39
,
0xc2
,
0xfd
,
0x
31
,
0xee
,
0x47
,
0x2e
,
0x91
,
0x88
,
0xc6
,
0xbf
,
0x4b
,
0xba
,
0xd5
,
0x7d
,
0xec
,
0x8e
,
0x29
,
0x26
,
0x
88
,
0x25
,
0x02
,
0xd1
,
0xf8
,
0x77
,
0x49
,
0xb7
,
0xba
,
0x8f
,
0xdd
,
0x09
,
0xc1
,
0x61
,
0xc6
,
0xea
,
0x
19
,
0xab
,
0x8b
,
0x8c
,
0xa7
,
0x7c
,
0x32
,
0xe3
,
0x19
,
0x40
,
0x8b
,
0x8b
,
0xdd
,
0x0a
,
0xf1
,
0x98
,
0x
94
,
0xf1
,
0x94
,
0x8f
,
0x67
,
0x3c
,
0x43
,
0x68
,
0x33
,
0xb1
,
0x5b
,
0x11
,
0x9e
,
0xb0
,
0xe8
,
0xc6
,
0x
47
,
0x37
,
0x9e
,
0x3b
,
0x37
,
0x36
,
0xdf
,
0xcc
,
0x59
,
0x28
,
0xb6
,
0x14
,
0x3a
,
0x1b
,
0x48
,
0x74
,
0x
72
,
0xe7
,
0xe6
,
0xd6
,
0x9b
,
0x39
,
0x0b
,
0xf9
,
0x96
,
0x5c
,
0x67
,
0x43
,
0x81
,
0xce
,
0x25
,
0xde
,
0x
21
,
0xf1
,
0xe6
,
0x58
,
0x87
,
0x75
,
0x3f
,
0x04
,
0x94
,
0x45
,
0x3a
,
0x95
,
0xe8
,
0x3e
,
0x65
,
0xd7
,
0x
9a
,
0xe8
,
0xb0
,
0xde
,
0x87
,
0x80
,
0xb2
,
0x48
,
0x27
,
0x12
,
0xdd
,
0xa7
,
0xf4
,
0xba
,
0xd2
,
0xd4
,
0x
95
,
0xa5
,
0xce
,
0x39
,
0x6e
,
0x7b
,
0x9f
,
0xb3
,
0x71
,
0x8c
,
0xdc
,
0x04
,
0x9f
,
0xa6
,
0x44
,
0x3
4
,
0x
39
,
0xc7
,
0x6d
,
0x3f
,
0x62
,
0x6c
,
0x1c
,
0x21
,
0x37
,
0xce
,
0xa7
,
0x29
,
0x10
,
0x8d
,
0x3f
,
0x5
4
,
0x
fe
,
0x50
,
0x01
,
0x88
,
0x27
,
0x5f
,
0xda
,
0x7b
,
0x7a
,
0x33
,
0xba
,
0x35
,
0x22
,
0x35
,
0xb8
,
0x90
,
0x
00
,
0xe2
,
0xc9
,
0x97
,
0xf6
,
0x9e
,
0x5e
,
0x57
,
0xb7
,
0x86
,
0xa7
,
0x06
,
0xe7
,
0x72
,
0xe8
,
0xe5
,
0x
43
,
0x2f
,
0xf7
,
0xbe
,
0x7c
,
0x9c
,
0xbc
,
0x2f
,
0x22
,
0x49
,
0xb8
,
0x94
,
0xb7
,
0xfa
,
0xa5
,
0xbd
,
0x
de
,
0x97
,
0x8f
,
0x93
,
0xf7
,
0x85
,
0x27
,
0x09
,
0x17
,
0xf2
,
0x56
,
0xbf
,
0xb4
,
0x37
,
0x65
,
0x1b
,
0x
29
,
0x5b
,
0xb0
,
0x9a
,
0x56
,
0xb7
,
0xbc
,
0x27
,
0x57
,
0x61
,
0xce
,
0xa5
,
0x78
,
0x22
,
0x0a
,
0xc1
,
0x
d6
,
0xd2
,
0xea
,
0x16
,
0xf7
,
0xe4
,
0x32
,
0x54
,
0x5d
,
0x82
,
0xa7
,
0xbc
,
0x10
,
0x6c
,
0x6e
,
0xad
,
0x
c6
,
0xe6
,
0x72
,
0xce
,
0xb1
,
0x4c
,
0x81
,
0x61
,
0x5c
,
0x84
,
0xfa
,
0xee
,
0xc4
,
0x1e
,
0xe1
,
0x41
,
0x
e4
,
0x1c
,
0xcb
,
0xe4
,
0x18
,
0xc6
,
0x79
,
0x68
,
0xec
,
0x4d
,
0xed
,
0x31
,
0x1e
,
0x06
,
0x78
,
0x44
,
0x
80
,
0x87
,
0x6c
,
0x2f
,
0x97
,
0x0d
,
0xe4
,
0xfe
,
0x62
,
0x60
,
0x6c
,
0x42
,
0xed
,
0x2e
,
0x3e
,
0xfa
,
0x
f7
,
0x72
,
0xe9
,
0x40
,
0xec
,
0xcf
,
0x07
,
0xc6
,
0x16
,
0xd4
,
0x6f
,
0xe3
,
0xc3
,
0xcf
,
0xe9
,
0xbe
,
0x
9c
,
0xed
,
0x7b
,
0x52
,
0xfe
,
0x8c
,
0x7f
,
0x94
,
0x60
,
0x8d
,
0xbb
,
0xbb
,
0x2d
,
0x55
,
0x86
,
0x99
,
0x
c7
,
0xe5
,
0xcf
,
0xf8
,
0x47
,
0x09
,
0xd6
,
0x99
,
0xbb
,
0xdb
,
0x96
,
0x65
,
0x98
,
0x89
,
0x23
,
0x7f
,
0x
38
,
0xf4
,
0xa7
,
0x64
,
0x88
,
0x43
,
0xae
,
0xd2
,
0x60
,
0x6a
,
0x05
,
0x98
,
0xb8
,
0xbe
,
0xb0
,
0x29
,
0x
16
,
0x8e
,
0x70
,
0xc4
,
0x54
,
0x1a
,
0xcc
,
0xac
,
0x00
,
0x87
,
0xae
,
0xcf
,
0x6d
,
0x8a
,
0xaa
,
0x34
,
0x
a6
,
0xd2
,
0x60
,
0xba
,
0xc7
,
0x01
,
0xac
,
0x54
,
0x63
,
0xd3
,
0x5f
,
0x4f
,
0x7d
,
0x69
,
0x5b
,
0x15
,
0x
98
,
0xed
,
0x33
,
0x00
,
0x2d
,
0xd5
,
0xe8
,
0xf4
,
0xd7
,
0x33
,
0x5f
,
0xd8
,
0x56
,
0xc5
,
0xac
,
0x8f
,
0x
b3
,
0x36
,
0x0c
,
0xa6
,
0x9f
,
0xb1
,
0xb1
,
0x5a
,
0x1b
,
0x1e
,
0xd8
,
0x04
,
0x87
,
0xaa
,
0xa0
,
0x18
,
0x
82
,
0xd9
,
0x67
,
0x74
,
0x2c
,
0xd7
,
0x46
,
0x07
,
0x76
,
0x88
,
0x23
,
0x66
,
0x43
,
0x7c
,
0xed
,
0x90
,
0x0
6
,
0xd3
,
0x01
,
0x07
,
0xa0
,
0x1b
,
0x70
,
0x66
,
0x82
,
0x27
,
0x3e
,
0x39
,
0xb2
,
0xc6
,
0xee
,
0xc4
,
0x0
1
,
0xd0
,
0x35
,
0x38
,
0x35
,
0xc5
,
0x53
,
0x3f
,
0x3c
,
0xb4
,
0x26
,
0xee
,
0xd4
,
0x25
,
0x96
,
0xeb
,
0x
a5
,
0x96
,
0xeb
,
0x59
,
0x8f
,
0x8f
,
0x28
,
0x0e
,
0xa5
,
0xe1
,
0x20
,
0x31
,
0x79
,
0x8f
,
0xcd
,
0xed
,
0x
59
,
0x0f
,
0x0f
,
0x09
,
0x8e
,
0x84
,
0xe1
,
0x20
,
0x3e
,
0x79
,
0x87
,
0xce
,
0xed
,
0x79
,
0x1f
,
0xd1
,
0x
7a
,
0x1f
,
0xb1
,
0x19
,
0x64
,
0x40
,
0xd3
,
0xf7
,
0x27
,
0x56
,
0x38
,
0xf4
,
0x09
,
0xb6
,
0x6c
,
0xe7
,
0x
19
,
0x64
,
0x40
,
0xcb
,
0xf7
,
0xa7
,
0x56
,
0x34
,
0xf2
,
0x43
,
0x6c
,
0xd9
,
0xce
,
0x63
,
0xe6
,
0xef
,
0x
09
,
0xf7
,
0xf7
,
0x15
,
0xb3
,
0xe1
,
0xfb
,
0x93
,
0x01
,
0x83
,
0xf5
,
0x9c
,
0x27
,
0x86
,
0x0d
,
0xcd
,
0x
2b
,
0x66
,
0xd3
,
0xf7
,
0xa7
,
0x43
,
0x0a
,
0xeb
,
0x3b
,
0x8f
,
0x0d
,
0x1b
,
0x5a
,
0x89
,
0x42
,
0x87
,
0x
44
,
0xa1
,
0xc3
,
0x12
,
0x77
,
0x5e
,
0xd1
,
0xc8
,
0xc4
,
0x9d
,
0x7d
,
0x33
,
0x18
,
0xf1
,
0xc7
,
0x4a
,
0x
26
,
0xee
,
0xac
,
0xa2
,
0x11
,
0x89
,
0x3b
,
0xfd
,
0xa6
,
0xb0
,
0xd0
,
0x9f
,
0x48
,
0x39
,
0xb0
,
0x6f
,
0x0
e
,
0xfc
,
0x9b
,
0xc1
,
0xe8
,
0x51
,
0xa0
,
0xb2
,
0x76
,
0xfe
,
0xcd
,
0x04
,
0x36
,
0xc6
,
0x87
,
0xb2
,
0x0
a
,
0x23
,
0x87
,
0x81
,
0xcc
,
0xda
,
0xd9
,
0x37
,
0x15
,
0xd8
,
0x04
,
0x3f
,
0x15
,
0x75
,
0x64
,
0xc3
,
0x
8e
,
0xac
,
0x9b
,
0x62
,
0x60
,
0x38
,
0x00
,
0x5b
,
0x76
,
0x60
,
0x3f
,
0x76
,
0xc7
,
0x2e
,
0x3d
,
0x42
,
0x
e4
,
0x03
,
0xc3
,
0x01
,
0xd8
,
0xb6
,
0x03
,
0xfb
,
0xa1
,
0x3b
,
0x71
,
0xc9
,
0x21
,
0xba
,
0x0c
,
0x1d
,
0x
57
,
0xa1
,
0x6d
,
0x3b
,
0x8e
,
0x35
,
0x54
,
0x10
,
0x17
,
0xab
,
0xa2
,
0x7e
,
0xd1
,
0x76
,
0x9c
,
0x2d
,
0x
db
,
0x71
,
0xac
,
0x91
,
0x84
,
0xb8
,
0x58
,
0x16
,
0xf5
,
0x4b
,
0xb6
,
0xe3
,
0x6c
,
0x6b
,
0x60
,
0xf4
,
0x0
d
,
0x8c
,
0xde
,
0x80
,
0x25
,
0x87
,
0xf8
,
0x41
,
0x12
,
0x57
,
0x54
,
0xf9
,
0x6d
,
0x36
,
0xa1
,
0x23
,
0x0
6
,
0x2c
,
0x3b
,
0xa1
,
0x1f
,
0x24
,
0x71
,
0x79
,
0x95
,
0xdf
,
0xa1
,
0x13
,
0x3a
,
0xb2
,
0xf1
,
0x9f
,
0x
1b
,
0xff
,
0x29
,
0xc3
,
0xb9
,
0xa4
,
0x5a
,
0xd2
,
0xa5
,
0xe3
,
0x4d
,
0x58
,
0x48
,
0xed
,
0x5a
,
0x4a
,
0x
32
,
0x9c
,
0x49
,
0xaa
,
0x25
,
0x5d
,
0x3a
,
0x5e
,
0x87
,
0xc5
,
0xd4
,
0xae
,
0xa5
,
0x84
,
0x05
,
0xc5
,
0x
58
,
0x50
,
0xcc
,
0xa4
,
0x99
,
0x40
,
0x44
,
0xe7
,
0x01
,
0x02
,
0xe2
,
0x1e
,
0xba
,
0x63
,
0x3c
,
0xc2
,
0x
4c
,
0x9a
,
0x09
,
0x44
,
0x74
,
0x16
,
0x20
,
0x08
,
0xdd
,
0xa7
,
0xee
,
0x04
,
0x8f
,
0xb1
,
0xac
,
0x65
,
0x
aa
,
0x96
,
0xd5
,
0x20
,
0xf9
,
0x35
,
0x69
,
0xe5
,
0xfb
,
0xa8
,
0x49
,
0x67
,
0xbf
,
0x4b
,
0x4d
,
0x3a
,
0x
35
,
0x48
,
0x7e
,
0x4d
,
0x5a
,
0xf9
,
0x3e
,
0x6a
,
0xd2
,
0xf9
,
0xef
,
0x52
,
0x93
,
0x56
,
0x8f
,
0x51
,
0x
77
,
0x82
,
0x9a
,
0xb4
,
0x7a
,
0x9a
,
0x9a
,
0x74
,
0xbe
,
0xb0
,
0x26
,
0xfd
,
0x53
,
0x09
,
0x56
,
0x9
2
,
0x
93
,
0xd6
,
0x4e
,
0x52
,
0x93
,
0x2e
,
0x14
,
0xd6
,
0xa4
,
0x7f
,
0x2a
,
0xc1
,
0x6a
,
0x52
,
0xf8
,
0xa
2
,
0xc
2
,
0x97
,
0x65
,
0xce
,
0x1d
,
0xa8
,
0x13
,
0x75
,
0x3b
,
0xa4
,
0xc0
,
0x37
,
0x92
,
0x49
,
0x43
,
0xf
6
,
0xc
c
,
0xb9
,
0x05
,
0x8d
,
0x50
,
0xde
,
0x0e
,
0x21
,
0xf0
,
0xcd
,
0x64
,
0xd2
,
0x90
,
0xbd
,
0x45
,
0x6
6
,
0x
16
,
0x99
,
0xf1
,
0x12
,
0xf4
,
0x59
,
0x61
,
0xb5
,
0xfa
,
0x5a
,
0x01
,
0x99
,
0xe7
,
0xd6
,
0xab
,
0x3d
,
0x
bc
,
0x04
,
0x7d
,
0x56
,
0x58
,
0xad
,
0xbe
,
0x56
,
0x40
,
0xe6
,
0xb9
,
0xf5
,
0x6a
,
0x1f
,
0x96
,
0x15
,
0x
58
,
0x8a
,
0x90
,
0x8f
,
0x2d
,
0x57
,
0xb5
,
0xf2
,
0xb3
,
0x9c
,
0x2c
,
0x3f
,
0x3d
,
0xa8
,
0x6e
,
0xe3
,
0x
f2
,
0x91
,
0xe5
,
0xaa
,
0x56
,
0x7e
,
0x96
,
0x93
,
0xe5
,
0xa7
,
0x07
,
0xb5
,
0x1d
,
0xfc
,
0xd4
,
0x1d
,
0x
43
,
0x77
,
0x88
,
0xbf
,
0x97
,
0x1e
,
0xcd
,
0x06
,
0x34
,
0x02
,
0x4c
,
0x26
,
0x6e
,
0x18
,
0x46
,
0x86
,
0x
e1
,
0xef
,
0xa5
,
0x47
,
0xb3
,
0x09
,
0xcd
,
0x00
,
0x87
,
0x53
,
0x37
,
0x8a
,
0x94
,
0xe1
,
0x34
,
0x4c
,
0x
53
,
0x37
,
0x75
,
0x90
,
0xf1
,
0xaf
,
0x39
,
0x58
,
0x4c
,
0x4b
,
0xf6
,
0x9d
,
0x4c
,
0xb5
,
0xdb
,
0x8d
,
0x
1d
,
0x64
,
0xfc
,
0xab
,
0x0a
,
0x4b
,
0x69
,
0xc9
,
0xbe
,
0x93
,
0xa9
,
0x76
,
0x7b
,
0xb1
,
0x25
,
0xa7
,
0x
2d
,
0x39
,
0x7d
,
0x3e
,
0x2d
,
0x4a
,
0x5d
,
0x51
,
0x8e
,
0xb0
,
0x9c
,
0x4a
,
0x6d
,
0x23
,
0x5f
,
0x29
,
0x
cf
,
0xa7
,
0x45
,
0xa9
,
0x4b
,
0xd2
,
0x11
,
0x96
,
0x53
,
0xa9
,
0xad
,
0xf2
,
0x95
,
0xc2
,
0x39
,
0xd2
,
0x
9d
,
0x23
,
0x3b
,
0xff
,
0xd0
,
0x9f
,
0x4c
,
0x6c
,
0xcf
,
0x51
,
0xfd
,
0x33
,
0x39
,
0x64
,
0xd2
,
0xb2
,
0x
f3
,
0x8f
,
0xfc
,
0xe9
,
0xd4
,
0xf6
,
0x1c
,
0xd9
,
0x3f
,
0x13
,
0x43
,
0x2a
,
0x2d
,
0x3b
,
0x1c
,
0x53
,
0x
c9
,
0x88
,
0x99
,
0x27
,
0x03
,
0xf3
,
0x6f
,
0x74
,
0x01
,
0x1a
,
0x2c
,
0x45
,
0x74
,
0x3d
,
0x5e
,
0x2
c
,
0x
f3
,
0xa4
,
0x60
,
0xf6
,
0x8d
,
0xce
,
0x41
,
0x93
,
0xa6
,
0x88
,
0xae
,
0xc7
,
0x8a
,
0x65
,
0x61
,
0x7
c
,
0x
73
,
0xe3
,
0xab
,
0x9b
,
0x20
,
0x41
,
0xdb
,
0x2e
,
0x41
,
0x97
,
0x61
,
0x16
,
0x7b
,
0x87
,
0x2a
,
0x1e
,
0x
20
,
0x40
,
0x3b
,
0x6e
,
0x88
,
0x2e
,
0xc2
,
0x3c
,
0xf6
,
0x9e
,
0xca
,
0x78
,
0x14
,
0x37
,
0xd8
,
0xa4
,
0x
c5
,
0x0d
,
0x36
,
0xe5
,
0x80
,
0x4d
,
0x3e
,
0x8d
,
0x5e
,
0x83
,
0xea
,
0xc4
,
0x9f
,
0x7a
,
0x54
,
0x25
,
0x
03
,
0x36
,
0xd9
,
0x34
,
0x7a
,
0x0d
,
0x6a
,
0x53
,
0x7f
,
0xe6
,
0x11
,
0x99
,
0x2c
,
0xb6
,
0x15
,
0x22
,
0x
8b
,
0xad
,
0x08
,
0x91
,
0x77
,
0xc5
,
0x4c
,
0x39
,
0x8b
,
0xae
,
0xc2
,
0xbc
,
0xc3
,
0x75
,
0xa0
,
0x32
,
0x
eb
,
0x8a
,
0x99
,
0x62
,
0x16
,
0x5d
,
0x86
,
0x05
,
0x87
,
0xe9
,
0x40
,
0x66
,
0x84
,
0x4b
,
0x71
,
0xc1
,
0xc
2
,
0xc5
,
0xb8
,
0xe0
,
0xe6
,
0x70
,
0x53
,
0xcd
,
0xa3
,
0xf7
,
0xa3
,
0x48
,
0x5a
,
0x4f
,
0xc5
,
0xc2
,
0xc
d
,
0xe0
,
0xa6
,
0x9c
,
0x47
,
0xef
,
0xab
,
0x48
,
0xda
,
0x48
,
0xc5
,
0xc2
,
0x94
,
0x50
,
0x73
,
0xc3
,
0x
94
,
0x50
,
0x73
,
0xc3
,
0xe9
,
0xdd
,
0x64
,
0x38
,
0x05
,
0x4e
,
0xe2
,
0x6a
,
0x21
,
0x89
,
0xe3
,
0xcb
,
0x
e9
,
0xed
,
0x64
,
0x38
,
0x05
,
0x46
,
0xe2
,
0x72
,
0x21
,
0x89
,
0xa3
,
0xcb
,
0xe5
,
0xd3
,
0x50
,
0x9f
,
0x
e5
,
0xb3
,
0x50
,
0x1b
,
0xfb
,
0x23
,
0x61
,
0x07
,
0x0d
,
0x51
,
0xc5
,
0x8c
,
0xfd
,
0x11
,
0x37
,
0x83
,
0x
f8
,
0x63
,
0x6e
,
0x07
,
0x4d
,
0x5e
,
0xc5
,
0x4c
,
0xfc
,
0x31
,
0x33
,
0x83
,
0x55
,
0x9a
,
0x3e
,
0x38
,
0x
15
,
0x96
,
0x3e
,
0x38
,
0xae
,
0xd7
,
0x59
,
0xe0
,
0x77
,
0x52
,
0x0c
,
0x58
,
0x54
,
0xe0
,
0x1f
,
0x96
,
0x
ae
,
0xd7
,
0x5d
,
0x64
,
0x77
,
0x92
,
0x0f
,
0x68
,
0x54
,
0x60
,
0x1f
,
0x96
,
0xef
,
0x8d
,
0x70
,
0xb7
,
0x
ef
,
0x0d
,
0x71
,
0xa7
,
0xc9
,
0xa7
,
0xea
,
0x1c
,
0xf2
,
0xc0
,
0x1b
,
0xf2
,
0xa0
,
0x45
,
0xe9
,
0x51
,
0x
c5
,
0xa6
,
0x1a
,
0x0c
,
0x72
,
0xcf
,
0x1b
,
0xb1
,
0xa0
,
0x45
,
0xc8
,
0x61
,
0xb7
,
0xcd
,
0xe0
,
0xf4
,
0x
a7
,
0xc5
,
0xe1
,
0xec
,
0x13
,
0xfd
,
0xbf
,
0x4a
,
0xd1
,
0x17
,
0xb9
,
0x7e
,
0xcf
,
0x15
,
0x5c
,
0x93
,
0x
13
,
0xfd
,
0xbf
,
0x4c
,
0xd1
,
0x97
,
0x98
,
0x7e
,
0xcf
,
0x14
,
0x5c
,
0x93
,
0x97
,
0xa6
,
0x1e
,
0xff
,
0x
97
,
0xa6
,
0x1e
,
0xff
,
0x6b
,
0x09
,
0x56
,
0xb7
,
0x78
,
0xd2
,
0xa3
,
0x79
,
0x82
,
0x53
,
0xd4
,
0x93
,
0x
6b
,
0x09
,
0xd6
,
0xb6
,
0x59
,
0xd2
,
0xa3
,
0x79
,
0x82
,
0x13
,
0xd4
,
0x93
,
0xe8
,
0x6d
,
0x55
,
0xb8
,
0x
e8
,
0xed
,
0xa8
,
0x70
,
0x4f
,
0x17
,
0x7f
,
0xe9
,
0xc3
,
0x4a
,
0x3c
,
0xf4
,
0x21
,
0xb4
,
0x14
,
0x4d
,
0x
a7
,
0x8b
,
0xbf
,
0xf4
,
0x61
,
0x05
,
0x1e
,
0xfa
,
0x10
,
0xda
,
0x92
,
0xa6
,
0x58
,
0x59
,
0x79
,
0x5e
,
0x
b9
,
0xb2
,
0xf2
,
0xbc
,
0x92
,
0xbf
,
0x19
,
0xea
,
0x43
,
0xe3
,
0x7d
,
0x58
,
0xcb
,
0xf0
,
0x2c
,
0x13
,
0x
c9
,
0xdf
,
0x8a
,
0xf4
,
0xa1
,
0xf1
,
0x3e
,
0xac
,
0x67
,
0x78
,
0x16
,
0x09
,
0xca
,
0x79
,
0x58
,
0x8c
,
0x
94
,
0x8b
,
0xb0
,
0x10
,
0x7b
,
0x84
,
0x88
,
0xe5
,
0x46
,
0x04
,
0xdb
,
0x75
,
0x8c
,
0x5b
,
0xac
,
0xf0
,
0x
3d
,
0x82
,
0x62
,
0xb9
,
0xa9
,
0x60
,
0x7b
,
0x8e
,
0x71
,
0x83
,
0x16
,
0xfe
,
0x76
,
0x48
,
0x32
,
0x07
,
0x
b7
,
0x09
,
0xcd
,
0x1c
,
0xf8
,
0x04
,
0x6b
,
0x79
,
0xd5
,
0x9f
,
0x5c
,
0x2b
,
0x0b
,
0xf3
,
0x01
,
0xac
,
0x
3e
,
0xc6
,
0x5a
,
0x56
,
0xf5
,
0x27
,
0xd7
,
0x8a
,
0xc2
,
0x7c
,
0x08
,
0xab
,
0x43
,
0xe2
,
0x07
,
0x2f
,
0x
0c
,
0xa8
,
0x1f
,
0xbc
,
0x00
,
0x51
,
0x76
,
0xd3
,
0xd9
,
0xb1
,
0xfd
,
0x29
,
0x95
,
0x59
,
0x89
,
0x1a
,
0x
40
,
0x94
,
0xde
,
0x74
,
0x7a
,
0x6c
,
0x7f
,
0x46
,
0x44
,
0x56
,
0x22
,
0x87
,
0xc6
,
0x3a
,
0xef
,
0x51
,
0x
1a
,
0x6b
,
0xa2
,
0x47
,
0x91
,
0xdd
,
0xed
,
0x3d
,
0x58
,
0x15
,
0x2d
,
0x82
,
0x17
,
0x39
,
0xc4
,
0x59
,
0x
64
,
0x77
,
0x7b
,
0x0f
,
0xd6
,
0x78
,
0x8b
,
0xe0
,
0x45
,
0x0e
,
0x71
,
0x5a
,
0x36
,
0x28
,
0xb2
,
0x74
,
0x
d5
,
0xa0
,
0xc8
,
0xd2
,
0xfd
,
0x75
,
0x59
,
0x73
,
0x75
,
0x05
,
0x35
,
0xcd
,
0x5b
,
0xc9
,
0x9a
,
0x66
,
0x
7f
,
0x5d
,
0xd6
,
0x5c
,
0x5d
,
0x41
,
0x4d
,
0xf3
,
0x56
,
0xb2
,
0xa6
,
0x59
,
0xcf
,
0x2a
,
0x3c
,
0x91
,
0x
2d
,
0xab
,
0xf0
,
0x44
,
0x9e
,
0x9d
,
0x35
,
0xa3
,
0x4a
,
0x8e
,
0x19
,
0x99
,
0x99
,
0xc2
,
0x67
,
0x96
,
0x
67
,
0x67
,
0xcd
,
0xa8
,
0x92
,
0x63
,
0x46
,
0x66
,
0xa6
,
0xf0
,
0x99
,
0x67
,
0x37
,
0xfd
,
0x8d
,
0x2c
,
0x
df
,
0xf4
,
0x37
,
0xb2
,
0xd4
,
0xff
,
0x87
,
0x75
,
0xcf
,
0xae
,
0xa8
,
0x7b
,
0xa2
,
0xad
,
0xa3
,
0x5e
,
0x
f5
,
0xff
,
0x61
,
0xdd
,
0xb3
,
0xc7
,
0xeb
,
0x1e
,
0xb5
,
0xb5
,
0xea
,
0xb5
,
0xbc
,
0x9d
,
0xaa
,
0x7b
,
0x
cb
,
0xdb
,
0xa9
,
0xba
,
0xa7
,
0x53
,
0xc4
,
0x66
,
0x54
,
0xf6
,
0xfc
,
0x6a
,
0x16
,
0xea
,
0xd1
,
0x5c
,
0x
ba
,
0x45
,
0x6c
,
0xaa
,
0xb2
,
0xe7
,
0x57
,
0xf3
,
0xd0
,
0x50
,
0x73
,
0x19
,
0x99
,
0x66
,
0x85
,
0x54
,
0x
46
,
0xa6
,
0x59
,
0x21
,
0x95
,
0x73
,
0x84
,
0xa4
,
0x07
,
0x9d
,
0xca
,
0x8b
,
0x04
,
0x9d
,
0xd9
,
0xe7
,
0x
ce
,
0x11
,
0x92
,
0x1e
,
0x74
,
0x2a
,
0x2f
,
0x12
,
0x74
,
0xe6
,
0x9f
,
0x17
,
0x74
,
0x36
,
0xa0
,
0xc1
,
0x
05
,
0x9d
,
0x75
,
0xa8
,
0xf3
,
0x0f
,
0x8b
,
0xe0
,
0x7d
,
0x19
,
0x44
,
0x6a
,
0x1c
,
0x60
,
0xe2
,
0xfd
,
0x
3e
,
0xac
,
0x10
,
0x3f
,
0x12
,
0x41
,
0xa4
,
0xce
,
0x00
,
0x26
,
0x7e
,
0x14
,
0x2b
,
0xbe
,
0x76
,
0x2c
,
0x
58
,
0xf1
,
0xd5
,
0x13
,
0x29
,
0x3e
,
0x59
,
0x60
,
0xcd
,
0xa7
,
0x0b
,
0xac
,
0x77
,
0xa2
,
0xb0
,
0x20
,
0x
c5
,
0x27
,
0x0b
,
0xac
,
0x85
,
0x74
,
0x81
,
0xf5
,
0x8e
,
0x0a
,
0x0b
,
0x3c
,
0x80
,
0x9c
,
0xcd
,
0x92
,
0x
02
,
0xc8
,
0xf9
,
0x2c
,
0xb9
,
0xdc
,
0x80
,
0xb0
,
0x93
,
0x0c
,
0x08
,
0x22
,
0xa6
,
0xbc
,
0x9a
,
0xb3
,
0x
cb
,
0x0d
,
0x08
,
0xbb
,
0xc9
,
0x80
,
0xc0
,
0x63
,
0xca
,
0xab
,
0x39
,
0x8b
,
0x5f
,
0xda
,
0xf2
,
0xea
,
0x
f8
,
0xa5
,
0x2d
,
0xaf
,
0xee
,
0x89
,
0xf2
,
0x4a
,
0xb7
,
0x2a
,
0xe9
,
0xbd
,
0x36
,
0x01
,
0xa2
,
0x8b
,
0x
0e
,
0x2f
,
0xaf
,
0x74
,
0xab
,
0x12
,
0xde
,
0x6b
,
0x0b
,
0x40
,
0x5d
,
0x54
,
0x59
,
0x63
,
0xa1
,
0xec
,
0x
aa
,
0x6a
,
0x2c
,
0x94
,
0x3d
,
0x9a
,
0xa9
,
0x61
,
0x31
,
0x57
,
0x90
,
0x90
,
0x7f
,
0xdc
,
0x10
,
0x3c
,
0x
d1
,
0x4c
,
0x0d
,
0x8b
,
0xba
,
0x82
,
0x84
,
0xfc
,
0xe3
,
0x86
,
0xe0
,
0x31
,
0x5c
,
0xc1
,
0x5f
,
0xf4
,
0x
81
,
0x2b
,
0xf8
,
0x8b
,
0x9e
,
0xda
,
0x14
,
0x74
,
0xce
,
0xde
,
0xc9
,
0x54
,
0xe4
,
0x27
,
0xb3
,
0xba
,
0x
d4
,
0xa6
,
0xa0
,
0x73
,
0xf6
,
0x4e
,
0xa6
,
0x22
,
0x3f
,
0x9e
,
0xd5
,
0xbd
,
0x95
,
0x2c
,
0xc8
,
0x4f
,
0x
b7
,
0x92
,
0x05
,
0xf9
,
0xe9
,
0xcc
,
0x25
,
0x53
,
0x8f
,
0xf3
,
0x48
,
0x6c
,
0x13
,
0x39
,
0x2d
,
0x93
,
0x
66
,
0x2e
,
0x99
,
0x7a
,
0x9c
,
0x45
,
0x62
,
0x3b
,
0x14
,
0xd3
,
0xbc
,
0x94
,
0x6a
,
0x08
,
0x48
,
0x9f
,
0x
6b
,
0x09
,
0xe9
,
0x51
,
0x96
,
0xff
,
0xec
,
0xbb
,
0x9e
,
0x1b
,
0x1e
,
0x88
,
0xf9
,
0x2a
,
0x9f
,
0x07
,
0x
d0
,
0xfc
,
0xe7
,
0x91
,
0xeb
,
0xb9
,
0xd1
,
0x01
,
0x9f
,
0xaf
,
0xb1
,
0x79
,
0x90
,
0xa0
,
0x3e
,
0xfb
,
0x
05
,
0xea
,
0xf1
,
0xdf
,
0x81
,
0xf8
,
0x99
,
0x4b
,
0xad
,
0xa1
,
0xef
,
0x60
,
0x6e
,
0x8c
,
0x73
,
0x66
,
0x
1d
,
0x88
,
0x9f
,
0xb9
,
0xc4
,
0x1a
,
0xf9
,
0x0e
,
0x66
,
0xc6
,
0x58
,
0x35
,
0xeb
,
0x14
,
0xb0
,
0xed
,
0x
8d
,
0x01
,
0xb6
,
0x7c
,
0x07
,
0xc7
,
0x17
,
0xa4
,
0x76
,
0xaa
,
0x0b
,
0x52
,
0x4f
,
0x5d
,
0x90
,
0x55
,
0x
3b
,
0x38
,
0xbe
,
0x20
,
0xf5
,
0x13
,
0x5d
,
0x90
,
0x46
,
0xea
,
0x82
,
0xac
,
0x41
,
0x2d
,
0xc4
,
0x76
,
0x
a8
,
0x12
,
0x6c
,
0x87
,
0xbe
,
0xd7
,
0x01
,
0xf1
,
0x53
,
0x51
,
0x8c
,
0x98
,
0x83
,
0x9f
,
0xe0
,
0x30
,
0x
e4
,
0x7b
,
0x5d
,
0xe0
,
0x3f
,
0x15
,
0xf9
,
0x88
,
0x3a
,
0xf8
,
0x29
,
0x8e
,
0x22
,
0xba
,
0x81
,
0xc8
,
0x
64
,
0x1b
,
0xc8
,
0xac
,
0x43
,
0x0e
,
0xb5
,
0xdc
,
0x68
,
0xa1
,
0x28
,
0x37
,
0x3a
,
0xa6
,
0x35
,
0x97
,
0x
3a
,
0xc4
,
0x50
,
0xcb
,
0x8d
,
0x16
,
0x8b
,
0x72
,
0xa3
,
0x23
,
0x5a
,
0x73
,
0xa9
,
0xdc
,
0xa8
,
0x55
,
0x
ca
,
0x8d
,
0x9a
,
0x45
,
0xb9
,
0xd1
,
0x49
,
0x3a
,
0x73
,
0x5a
,
0xe6
,
0xd7
,
0x3a
,
0x2e
,
0xf3
,
0xfb
,
0x
94
,
0x1b
,
0x1d
,
0xa7
,
0x33
,
0xa7
,
0x65
,
0x7e
,
0xed
,
0xa3
,
0x32
,
0xbf
,
0x1f
,
0xf2
,
0xe2
,
0xdc
,
0x
21
,
0x2f
,
0xce
,
0x5d
,
0x58
,
0xcb
,
0x98
,
0xba
,
0xbc
,
0x39
,
0x6f
,
0xa7
,
0x1a
,
0x78
,
0x9d
,
0x22
,
0x
86
,
0xf5
,
0x8c
,
0xa9
,
0x8b
,
0x9b
,
0xf3
,
0x76
,
0xaa
,
0x81
,
0xd7
,
0x2d
,
0x92
,
0x82
,
0xea
,
0xdf
,
0x
29
,
0x44
,
0xfd
,
0xbb
,
0x9f
,
0xc3
,
0xe2
,
0xce
,
0x33
,
0x3c
,
0x1c
,
0x1c
,
0x79
,
0xc3
,
0x53
,
0xc4
,
0x
fd
,
0x1c
,
0x96
,
0x76
,
0x9f
,
0xe1
,
0xd1
,
0xf0
,
0xd0
,
0x1b
,
0x9d
,
0x20
,
0x56
,
0x77
,
0xa0
,
0x32
,
0x
ea
,
0x36
,
0x54
,
0x86
,
0x13
,
0x47
,
0x96
,
0xc1
,
0xec
,
0x53
,
0x8f
,
0xde
,
0x95
,
0x64
,
0xf4
,
0xb6
,
0x
9a
,
0x3a
,
0xa2
,
0x0c
,
0xa6
,
0x9f
,
0x7a
,
0xf4
,
0xae
,
0x24
,
0xa3
,
0xb7
,
0x05
,
0x9d
,
0x78
,
0x07
,
0x
a0
,
0x1d
,
0xef
,
0x20
,
0xf9
,
0x5c
,
0x65
,
0x7c
,
0x3a
,
0x0c
,
0x99
,
0x11
,
0x5f
,
0x30
,
0xe5
,
0x48
,
0x
c1
,
0xe7
,
0x1a
,
0xe5
,
0xd3
,
0xa1
,
0xc8
,
0x94
,
0xf8
,
0xa2
,
0x29
,
0x46
,
0x02
,
0x8e
,
0xc3
,
0x90
,
0x
c2
,
0x31
,
0x21
,
0xfc
,
0xd4
,
0x02
,
0x8e
,
0x09
,
0x49
,
0x9a
,
0x6d
,
0x25
,
0x69
,
0xb6
,
0xc6
,
0x13
,
0x
9d
,
0x9a
,
0xc3
,
0x71
,
0x18
,
0x26
,
0xcd
,
0xb6
,
0x92
,
0x34
,
0x5b
,
0xe3
,
0x31
,
0x34
,
0xe9
,
0x06
,
0x
68
,
0xb0
,
0x0d
,
0xbe
,
0x13
,
0xfb
,
0x32
,
0x85
,
0xad
,
0xc4
,
0x29
,
0x6c
,
0x94
,
0x09
,
0xcf
,
0x6a
,
0x
df
,
0x89
,
0x7d
,
0x91
,
0xc2
,
0x56
,
0xe2
,
0x14
,
0x56
,
0x65
,
0xc2
,
0xf3
,
0x5a
,
0x26
,
0x6c
,
0x6c
,
0x
99
,
0xb0
,
0xb1
,
0x01
,
0x0b
,
0x62
,
0x2f
,
0x79
,
0x90
,
0x36
,
0x54
,
0xa6
,
0x64
,
0xac
,
0xf4
,
0x36
,
0x
c2
,
0x22
,
0xdf
,
0x4b
,
0x1c
,
0xa4
,
0x03
,
0x95
,
0x59
,
0x38
,
0x91
,
0x7a
,
0x9b
,
0x85
,
0x13
,
0xe3
,
0x
25
,
0x63
,
0xe3
,
0xa7
,
0xd0
,
0xec
,
0x51
,
0x6a
,
0x0f
,
0x0f
,
0x4e
,
0xc1
,
0x4f
,
0xb4
,
0x57
,
0x59
,
0x
a7
,
0xd0
,
0xea
,
0x13
,
0x62
,
0x8f
,
0x0e
,
0x4e
,
0xc0
,
0x8f
,
0xda
,
0xab
,
0xac
,
0xef
,
0x65
,
0x40
,
0x
df
,
0xcb
,
0x80
,
0x96
,
0xa2
,
0x54
,
0xb8
,
0x5b
,
0x1f
,
0xd0
,
0x9e
,
0x4f
,
0xe8
,
0xc7
,
0x3e
,
0xf9
,
0x
5b
,
0x52
,
0x2a
,
0xdc
,
0x6d
,
0x00
,
0x68
,
0xdf
,
0x0f
,
0xc9
,
0xc7
,
0x7e
,
0xf8
,
0x8d
,
0x1d
,
0x3a
,
0x
c6
,
0x26
,
0xce
,
0xe9
,
0x72
,
0x56
,
0x04
,
0xb3
,
0xf2
,
0xdd
,
0x40
,
0xe5
,
0xca
,
0x9c
,
0xc9
,
0xbf
,
0x
27
,
0xcb
,
0x59
,
0x11
,
0xcc
,
0x8b
,
0x77
,
0x03
,
0x95
,
0x4b
,
0x55
,
0x93
,
0x7d
,
0x1b
,
0xaf
,
0xc3
,
0x
8d
,
0xd7
,
0x61
,
0x39
,
0x41
,
0xaf
,
0x70
,
0xe3
,
0x9b
,
0xd0
,
0xe0
,
0x5e
,
0x41
,
0x66
,
0x47
,
0x57
,
0x
4a
,
0x82
,
0x5e
,
0xe1
,
0xc6
,
0xd7
,
0xa1
,
0xc9
,
0xbc
,
0x82
,
0xc8
,
0x8e
,
0x2e
,
0xe9
,
0x9d
,
0xad
,
0x
f4
,
0xce
,
0xd6
,
0x71
,
0xae
,
0x83
,
0x55
,
0xbe
,
0xcc
,
0xed
,
0x73
,
0x78
,
0xe4
,
0xa3
,
0xdf
,
0x4c
,
0x
a3
,
0x5c
,
0x07
,
0xad
,
0x7c
,
0xa9
,
0xdb
,
0x67
,
0x70
,
0xe5
,
0xa3
,
0xdf
,
0x4c
,
0x25
,
0x12
,
0xab
,
0x
25
,
0x12
,
0x2b
,
0xc9
,
0xf5
,
0xa9
,
0x24
,
0xe2
,
0x97
,
0x30
,
0xc7
,
0xc1
,
0x19
,
0x1f
,
0xbd
,
0xce
,
0x
c9
,
0xf5
,
0xa9
,
0x24
,
0xe2
,
0x97
,
0x50
,
0x65
,
0xe0
,
0x8c
,
0x8f
,
0xde
,
0xa0
,
0x85
,
0x7e
,
0xe0
,
0x
0a
,
0xfd
,
0xc0
,
0xb7
,
0xa8
,
0x3d
,
0x8a
,
0x5e
,
0x62
,
0x30
,
0xc0
,
0x43
,
0x7b
,
0x14
,
0xf2
,
0x87
,
0x
5b
,
0xc4
,
0x1e
,
0xab
,
0x97
,
0x18
,
0x14
,
0x70
,
0xdf
,
0x1e
,
0x47
,
0xec
,
0x21
,
0x09
,
0x9d
,
0x74
,
0x
24
,
0x6c
,
0xd2
,
0x71
,
0x47
,
0x38
,
0xa4
,
0xea
,
0x39
,
0x46
,
0x83
,
0xc1
,
0xb6
,
0x05
,
0x88
,
0x49
,
0x
dc
,
0x31
,
0x8e
,
0x88
,
0x7c
,
0x8e
,
0xd1
,
0xa4
,
0xb0
,
0x1d
,
0x0e
,
0xa2
,
0x12
,
0x89
,
0xdc
,
0x5f
,
0x
24
,
0x74
,
0x7f
,
0x21
,
0x12
,
0x84
,
0x59
,
0x93
,
0x7f
,
0xab
,
0xff
,
0xc5
,
0xc2
,
0xd5
,
0xb2
,
0x4f
,
0x
f0
,
0x04
,
0x61
,
0xde
,
0x64
,
0xdf
,
0xaa
,
0x15
,
0x55
,
0x8d
,
0x5b
,
0x51
,
0xc6
,
0xfb
,
0x80
,
0xf4
,
0x
e3
,
0x7d
,
0x40
,
0xfa
,
0x09
,
0xa4
,
0x88
,
0x5e
,
0x83
,
0x2a
,
0x3f
,
0xa0
,
0x0a
,
0x58
,
0xad
,
0xe4
,
0x
33
,
0x08
,
0x21
,
0xbd
,
0x06
,
0x35
,
0x76
,
0x44
,
0x19
,
0xb2
,
0xda
,
0xc9
,
0x43
,
0x98
,
0x62
,
0xd6
,
0x
11
,
0x4c
,
0x39
,
0x6b
,
0xdc
,
0x01
,
0x24
,
0x64
,
0x92
,
0x08
,
0x52
,
0x27
,
0x97
,
0xdf
,
0x7b
,
0xb0
,
0x
b8
,
0x05
,
0x88
,
0x4b
,
0x25
,
0x11
,
0xa6
,
0x8e
,
0x2f
,
0xc1
,
0xf7
,
0x60
,
0x25
,
0xb1
,
0x5e
,
0xfd
,
0x
9c
,
0x58
,
0x1f
,
0xfd
,
0xed
,
0x4b
,
0x10
,
0x48
,
0xef
,
0x2e
,
0x17
,
0xff
,
0xb3
,
0x04
,
0xd0
,
0x9b
,
0x
ef
,
0x4b
,
0x10
,
0x48
,
0xef
,
0x2e
,
0x16
,
0xff
,
0xb3
,
0x04
,
0xd0
,
0x9f
,
0x91
,
0x03
,
0x51
,
0xc0
,
0x
d2
,
0x03
,
0x59
,
0xbe
,
0x77
,
0xa1
,
0x36
,
0x0d
,
0x31
,
0xd1
,
0x9a
,
0x0e
,
0xd1
,
0x98
,
0xcd
,
0x05
,
0x
f7
,
0xa0
,
0x4e
,
0x4f
,
0xa4
,
0xb5
,
0x1d
,
0xd4
,
0x98
,
0xce
,
0x05
,
0x76
,
0x14
,
0x7d
,
0xe3
,
0x87
,
0x
76
,
0x18
,
0x7e
,
0xe3
,
0x13
,
0x95
,
0x85
,
0x45
,
0x63
,
0x5e
,
0x7a
,
0x4f
,
0xe9
,
0x81
,
0x6a
,
0xbb
,
0x
32
,
0x0f
,
0x53
,
0x63
,
0x56
,
0x7c
,
0xcf
,
0xc8
,
0x81
,
0x6c
,
0xbc
,
0xd1
,
0x6f
,
0x74
,
0x11
,
0xda
,
0x
b1
,
0x6f
,
0x74
,
0x19
,
0x5a
,
0xe2
,
0x3d
,
0x8c
,
0x65
,
0x3b
,
0x0e
,
0xc1
,
0x61
,
0x28
,
0xfb
,
0x6f
,
0x
fc
,
0x45
,
0x8c
,
0x65
,
0x3b
,
0x4e
,
0x88
,
0xa3
,
0x48
,
0x74
,
0xe0
,
0x5a
,
0x1c
,
0xda
,
0xe7
,
0x40
,
0x
4d
,
0x01
,
0xed
,
0x09
,
0x20
,
0x43
,
0x73
,
0x1d
,
0xec
,
0x51
,
0x97
,
0x1e
,
0x59
,
0xd4
,
0x7f
,
0x8a
,
0x
8a
,
0xe6
,
0x3a
,
0xd8
,
0x23
,
0x2e
,
0x39
,
0xb4
,
0x88
,
0xff
,
0x04
,
0x7b
,
0x42
,
0xb4
,
0x2d
,
0x09
,
0x
3d
,
0x99
,
0x5f
,
0x35
,
0x15
,
0xf4
,
0x21
,
0x03
,
0x32
,
0x34
,
0x82
,
0x47
,
0x6e
,
0x48
,
0x89
,
0x42
,
0x
bd
,
0x4f
,
0x81
,
0x14
,
0x2d
,
0xc4
,
0x63
,
0x37
,
0x22
,
0xa1
,
0x44
,
0xab
,
0x71
,
0x34
,
0x09
,
0x65
,
0x
ab
,
0x0a
,
0x34
,
0x05
,
0xe5
,
0x68
,
0xc6
,
0xb7
,
0x25
,
0x68
,
0xef
,
0x4d
,
0xc7
,
0x63
,
0x71
,
0xc8
,
0x
68
,
0xc6
,
0xb7
,
0x25
,
0xe8
,
0xec
,
0xcf
,
0x26
,
0x13
,
0x7e
,
0xc8
,
0x93
,
0xca
,
0x12
,
0xbd
,
0x2e
,
0x
d3
,
0xca
,
0x12
,
0xbd
,
0x2e
,
0xcf
,
0x51
,
0x4e
,
0x35
,
0xe1
,
0x62
,
0x11
,
0xc9
,
0xc3
,
0x7d
,
0xf7
,
0x
ce
,
0x51
,
0x4e
,
0xb5
,
0xe1
,
0x62
,
0x11
,
0x89
,
0xc3
,
0x7d
,
0xf7
,
0x72
,
0x6d
,
0x05
,
0x96
,
0x35
,
0x
62
,
0x6d
,
0x19
,
0x96
,
0x34
,
0x46
,
0x65
,
0x9d
,
0x71
,
0x07
,
0x90
,
0x28
,
0x41
,
0x5e
,
0x8c
,
0x7f
,
0x
46
,
0x45
,
0xa5
,
0x71
,
0x0b
,
0x10
,
0x2f
,
0x42
,
0x5e
,
0x8c
,
0x7f
,
0xe3
,
0x14
,
0xac
,
0x24
,
0xd6
,
0x
e3
,
0x0c
,
0x2c
,
0x27
,
0xd6
,
0x4b
,
0xb2
,
0xd7
,
0xa0
,
0x29
,
0x7f
,
0x9d
,
0x49
,
0x3d
,
0x9f
,
0x85
,
0x
0b
,
0xb2
,
0x57
,
0xa0
,
0x25
,
0x7e
,
0x9e
,
0x09
,
0x3d
,
0x9f
,
0x86
,
0x3a
,
0xf5
,
0x08
,
0x23
,
0xd7
,
0x
1a
,
0xf3
,
0x07
,
0x43
,
0xd7
,
0x51
,
0x2d
,
0xd5
,
0xf9
,
0xc0
,
0x77
,
0xb6
,
0x5c
,
0x87
,
0x18
,
0x7d
,
0x
91
,
0x4d
,
0xd5
,
0x85
,
0xc0
,
0x77
,
0xb6
,
0x5d
,
0x27
,
0x34
,
0x06
,
0xd0
,
0x32
,
0x39
,
0x79
,
0x81
,
0x
68
,
0x9a
,
0x82
,
0xbc
,
0xc4
,
0xbd
,
0x0d
,
0x2d
,
0xf9
,
0xa3
,
0xcd
,
0x4a
,
0xfc
,
0x8a
,
0x8e
,
0xfb
,
0x
7b
,
0x13
,
0xda
,
0xe2
,
0x57
,
0x9b
,
0x95
,
0xf8
,
0x19
,
0x1d
,
0x77
,
0x00
,
0x13
,
0xb4
,
0xcd
,
0x96
,
0x
7f
,
0x09
,
0xda
,
0x66
,
0xd3
,
0xd3
,
0x87
,
0xc6
,
0x57
,
0xd0
,
0x7d
,
0x14
,
0x38
,
0x2c
,
0xa1
,
0xd1
,
0x
a7
,
0x0f
,
0x8d
,
0xaf
,
0xa0
,
0xf7
,
0x20
,
0x70
,
0x68
,
0x4a
,
0xa3
,
0x53
,
0x95
,
0x47
,
0xbb
,
0x09
,
0x
a9
,
0xaa
,
0xa3
,
0xdd
,
0x06
,
0xf5
,
0x24
,
0xab
,
0x88
,
0x78
,
0x72
,
0x59
,
0x93
,
0xe8
,
0x43
,
0xe3
,
0x
f2
,
0x51
,
0x56
,
0x11
,
0xf1
,
0xe4
,
0xb2
,
0x56
,
0xa8
,
0x0f
,
0x8d
,
0x33
,
0xb0
,
0x91
,
0x4b
,
0x5c
,
0x
1c
,
0xac
,
0xe7
,
0x12
,
0x97
,
0xe7
,
0x0e
,
0xa0
,
0x1d
,
0x4f
,
0x38
,
0xae
,
0xea
,
0x24
,
0xf3
,
0x0e
,
0x
9c
,
0x3b
,
0x80
,
0x4e
,
0x3c
,
0xe1
,
0xb8
,
0xb2
,
0x97
,
0xcc
,
0x7a
,
0xc4
,
0x25
,
0xad
,
0x47
,
0xbc
,
0x
71
,
0x49
,
0xeb
,
0x10
,
0xaf
,
0x46
,
0x51
,
0x52
,
0xf8
,
0x5b
,
0x39
,
0xd2
,
0x12
,
0x97
,
0x4a
,
0x51
,
0x
a6
,
0xe2
,
0x24
,
0xf7
,
0xb8
,
0x62
,
0xa4
,
0xa5
,
0x2e
,
0x95
,
0xa2
,
0xd4
,
0x65
,
0x3e
,
0x91
,
0xba
,
0x
e2
,
0x32
,
0x9b
,
0x48
,
0x5c
,
0x8c
,
0x4f
,
0x23
,
0xe9
,
0xc9
,
0xac
,
0xf1
,
0x5d
,
0x9e
,
0xba
,
0x8a
,
0x
18
,
0x9f
,
0x2a
,
0xe9
,
0x89
,
0xbc
,
0xf1
,
0x5d
,
0x96
,
0xbc
,
0xf2
,
0xbd
,
0xa5
,
0x27
,
0x38
,
0x9d
,
0x
bd
,
0x95
,
0x27
,
0x38
,
0x9b
,
0x73
,
0x38
,
0x81
,
0x61
,
0x6a
,
0xc8
,
0xc6
,
0x22
,
0x34
,
0x13
,
0x3e
,
0x
73
,
0x38
,
0x8e
,
0x61
,
0x6a
,
0xc8
,
0xc6
,
0x12
,
0xb4
,
0x12
,
0x3e
,
0xc1
,
0xf8
,
0x10
,
0xda
,
0xa9
,
0x
c1
,
0xf8
,
0x10
,
0x5a
,
0xa9
,
0x4b
,
0x7e
,
0x3d
,
0x15
,
0xde
,
0x33
,
0x62
,
0x4b
,
0x06
,
0xf7
,
0x6b
,
0x
4b
,
0x7e
,
0x35
,
0x15
,
0xe0
,
0x33
,
0x62
,
0x4b
,
0x86
,
0xf7
,
0x2b
,
0xaf
,
0x40
,
0x5d
,
0xbe
,
0x1d
,
0x
af
,
0x40
,
0x4d
,
0xbd
,
0x1c
,
0x43
,
0xf3
,
0x50
,
0x79
,
0xb8
,
0xb5
,
0xd7
,
0x9e
,
0x61
,
0x1f
,
0x8f
,
0x
43
,
0x0b
,
0x50
,
0xb9
,
0xbf
,
0xbd
,
0xdf
,
0x99
,
0xa3
,
0x1f
,
0x0f
,
0x76
,
0xf6
,
0x3b
,
0xa5
,
0x2b
,
0x
b6
,
0xf7
,
0xda
,
0xa5
,
0x6b
,
0xb7
,
0x60
,
0x31
,
0xf5
,
0x53
,
0x08
,
0x2d
,
0x41
,
0x73
,
0xd0
,
0xe
b
,
0x
37
,
0x60
,
0x29
,
0xf5
,
0x5b
,
0x08
,
0x2d
,
0x43
,
0x6b
,
0xd8
,
0x1f
,
0xec
,
0x7c
,
0x74
,
0xef
,
0x0
b
,
0x
6f
,
0x7f
,
0xf4
,
0xe0
,
0x0b
,
0xcb
,
0xdc
,
0xe9
,
0x6d
,
0x7f
,
0xd9
,
0x9e
,
0x41
,
0x2b
,
0xd0
,
0x56
,
0x
cb
,
0xdc
,
0xed
,
0xef
,
0x7c
,
0xd9
,
0x99
,
0x43
,
0xab
,
0xd0
,
0x91
,
0xa0
,
0xc1
,
0xbd
,
0xfb
,
0x1c
,
0x
a0
,
0xfe
,
0x83
,
0x87
,
0x02
,
0x5a
,
0xba
,
0xf6
,
0x14
,
0x5a
,
0xc9
,
0xfc
,
0x15
,
0x9d
,
0x81
,
0xa5
,
0x
5a
,
0xba
,
0xf2
,
0x04
,
0xda
,
0xc9
,
0x0c
,
0x16
,
0x9d
,
0x82
,
0xe5
,
0xed
,
0x7b
,
0x83
,
0xfb
,
0xfd
,
0x
ad
,
0x07
,
0xfd
,
0x87
,
0xbd
,
0xdd
,
0xfe
,
0x8e
,
0x69
,
0x6d
,
0x99
,
0x3b
,
0xbd
,
0x87
,
0x3b
,
0xdb
,
0x
bd
,
0xc1
,
0xae
,
0x69
,
0x6d
,
0x9b
,
0xbb
,
0xfd
,
0xfb
,
0xbb
,
0x3b
,
0x9d
,
0xb9
,
0x24
,
0xd8
,
0x7c
,
0x
ed
,
0x99
,
0x24
,
0xd8
,
0x7c
,
0xd4
,
0xef
,
0xef
,
0xf6
,
0x3f
,
0x69
,
0x97
,
0x18
,
0xd5
,
0x18
,
0xbc
,
0x
30
,
0x18
,
0xec
,
0x0d
,
0x3e
,
0xe9
,
0x94
,
0x28
,
0xd5
,
0x18
,
0xbc
,
0xfb
,
0xc5
,
0x1e
,
0x45
,
0x2e
,
0x
f3
,
0xc5
,
0x2e
,
0x43
,
0x2e
,
0x27
,
0x91
,
0x1f
,
0xf5
,
0xef
,
0xf6
,
0x1f
,
0xfc
,
0xac
,
0xdf
,
0xae
,
0x
27
,
0x91
,
0x1f
,
0x0c
,
0x6e
,
0x0f
,
0xee
,
0xfd
,
0x6c
,
0xd0
,
0xa9
,
0x6c
,
0xfd
,
0xb9
,
0x09
,
0x6d
,
0x
6c
,
0xfe
,
0xb9
,
0x01
,
0x2d
,
0x75
,
0x40
,
0x4c
,
0x78
,
0xcb
,
0xf3
,
0x0e
,
0xcc
,
0xab
,
0x47
,
0x7d
,
0x
79
,
0x40
,
0x1c
,
0xb2
,
0xa6
,
0xe7
,
0x2d
,
0x58
,
0x90
,
0xcf
,
0xfa
,
0xe2
,
0x9c
,
0x3a
,
0xf9
,
0x06
,
0x
71
,
0x46
,
0x9d
,
0x7c
,
0x81
,
0xd8
,
0xed
,
0x64
,
0x27
,
0xa4
,
0xa1
,
0xcc
,
0xa0
,
0x3d
,
0xae
,
0x38
,
0x
b1
,
0xd7
,
0xcd
,
0x4e
,
0x08
,
0x43
,
0x99
,
0x43
,
0xfb
,
0x4c
,
0x71
,
0xda
,
0x2f
,
0xb8
,
0x33
,
0xba
,
0x
ed
,
0x07
,
0xdc
,
0x39
,
0x5d
,
0x94
,
0x99
,
0x3f
,
0x7c
,
0xdd
,
0xf3
,
0x45
,
0xd3
,
0x11
,
0xc5
,
0x01
,
0x
28
,
0x33
,
0xff
,
0xf8
,
0x7a
,
0x67
,
0x8b
,
0xa6
,
0x15
,
0xc5
,
0x21
,
0xd5
,
0x96
,
0xfe
,
0x16
,
0x02
,
0x
d3
,
0x96
,
0xfe
,
0x12
,
0x02
,
0xc5
,
0x6b
,
0x72
,
0x5f
,
0x58
,
0x74
,
0x2f
,
0x14
,
0xce
,
0x47
,
0x44
,
0x
c5
,
0x6b
,
0x72
,
0xdf
,
0x58
,
0xf4
,
0xce
,
0x15
,
0xce
,
0x2b
,
0xa2
,
0x5f
,
0x42
,
0x27
,
0xfd
,
0x0a
,
0x
bf
,
0x84
,
0x76
,
0xfa
,
0x0d
,
0x04
,
0x8a
,
0x5b
,
0xd7
,
0x05
,
0xef
,
0x2b
,
0xba
,
0x17
,
0x8f
,
0xc1
,
0x
02
,
0xc5
,
0xcd
,
0xeb
,
0x82
,
0x17
,
0x16
,
0xbd
,
0xf3
,
0x47
,
0x60
,
0xe8
,
0xa4
,
0x33
,
0xef
,
0x05
,
0x
d0
,
0x49
,
0x67
,
0x5e
,
0x0b
,
0x6c
,
0x14
,
0xff
,
0xef
,
0xcd
,
0x90
,
0x2e
,
0xfa
,
0x89
,
0x2c
,
0x44
,
0x
36
,
0x8b
,
0xff
,
0xf8
,
0x66
,
0x48
,
0x17
,
0xfd
,
0x46
,
0xe6
,
0xa2
,
0x48
,
0xfe
,
0x3a
,
0x43
,
0xfa
,
0x
91
,
0xfc
,
0x71
,
0x86
,
0xf4
,
0x7f
,
0xf4
,
0x39
,
0x3f
,
0x50
,
0x35
,
0x51
,
0xe4
,
0xff
,
0x71
,
0x33
,
0x
5f
,
0xfa
,
0x9c
,
0x5f
,
0xa8
,
0x9a
,
0x28
,
0xf2
,
0xff
,
0xb9
,
0x19
,
0x73
,
0xe8
,
0x73
,
0x58
,
0x4a
,
0x
66
,
0xd0
,
0xe7
,
0xb0
,
0x98
,
0xea
,
0x76
,
0xa1
,
0x78
,
0x55
,
0x7e
,
0xef
,
0xae
,
0xbb
,
0x51
,
0x8c
,
0x
f5
,
0xbb
,
0x50
,
0xbc
,
0x2a
,
0xbf
,
0x7b
,
0xd7
,
0xdb
,
0x2c
,
0x46
,
0x48
,
0xea
,
0x4d
,
0xef
,
0x66
,
0x
90
,
0xd4
,
0x9b
,
0xde
,
0xcb
,
0x4a
,
0xe8
,
0x2d
,
0xa7
,
0x41
,
0x96
,
0xd0
,
0x5b
,
0x6e
,
0x13
,
0x8c
,
0x
25
,
0xf4
,
0x96
,
0xd3
,
0x22
,
0x4b
,
0xe8
,
0x2d
,
0xb7
,
0x0d
,
0xc6
,
0xcc
,
0x2b
,
0xd1
,
0xb3
,
0xd2
,
0x
9b
,
0x57
,
0xa2
,
0x63
,
0xa5
,
0x99
,
0x57
,
0x5e
,
0x7b
,
0xac
,
0x7b
,
0xbe
,
0x68
,
0x5a
,
0x3f
,
0x7e
,
0x
cc
,
0x2b
,
0xaf
,
0x41
,
0xd6
,
0x3b
,
0x5b
,
0x34
,
0xad
,
0x1f
,
0x3f
,
0xd5
,
0xaf
,
0xd2
,
0x8e
,
0x9f
,
0x
aa
,
0x5b
,
0xa5
,
0x1d
,
0x3f
,
0xbf
,
0x09
,
0xd6
,
0xdd
,
0x28
,
0x46
,
0x48
,
0xeb
,
0x2a
,
0xae
,
0xc2
,
0x
df
,
0x06
,
0xeb
,
0x6d
,
0x16
,
0x23
,
0xa4
,
0x75
,
0x15
,
0xd7
,
0xe1
,
0x29
,
0x5d
,
0x65
,
0xda
,
0x3e
,
0x
53
,
0xba
,
0xca
,
0x34
,
0x7d
,
0x52
,
0xba
,
0xca
,
0x96
,
0xef
,
0x52
,
0x57
,
0xa9
,
0x72
,
0xfa
,
0x42
,
0x
29
,
0x5d
,
0x65
,
0x0b
,
0x78
,
0xa1
,
0xab
,
0x54
,
0x41
,
0x7d
,
0xae
,
0xb0
,
0x16
,
0xc9
,
0xea
,
0x2a
,
0x
61
,
0x25
,
0x92
,
0xd5
,
0x55
,
0x7e
,
0x71
,
0x63
,
0xcc
,
0xa0
,
0x1e
,
0xd4
,
0x54
,
0x29
,
0x81
,
0xe2
,
0x
bf
,
0xbc
,
0x31
,
0xe6
,
0x50
,
0x1f
,
0xea
,
0xb2
,
0x98
,
0x40
,
0xf1
,
0xed
,
0x4e
,
0x55
,
0x30
,
0xbd
,
0xd
b
,
0x9d
,
0xaa
,
0x5f
,
0xba
,
0x67
,
0x73
,
0x66
,
0x22
,
0x12
,
0x3f
,
0x86
,
0x59
,
0x06
,
0x45
,
0x2b
,
0xd
3
,
0x39
,
0x33
,
0x8a
,
0xc4
,
0x8f
,
0x61
,
0x9e
,
0x42
,
0xd1
,
0x6a
,
0x02
,
0x49
,
0x2e
,
0x3d
,
0x95
,
0x
09
,
0x24
,
0xb5
,
0xf4
,
0x4c
,
0x0a
,
0x1a
,
0x2d
,
0x7b
,
0x0f
,
0xaa
,
0x22
,
0x17
,
0x47
,
0xb1
,
0xcf
,
0x
82
,
0xaa
,
0x65
,
0xef
,
0x41
,
0x8d
,
0x67
,
0xe3
,
0x28
,
0xf6
,
0xb9
,
0x89
,
0x44
,
0xbf
,
0xb7
,
0x9e
,
0x
4d
,
0xa4
,
0xf9
,
0xdd
,
0xb5
,
0x0c
,
0x3c
,
0x5a
,
0xfc
,
0xa9
,
0x78
,
0xe8
,
0x2b
,
0x93
,
0x6a
,
0xb
4
,
0x
81
,
0xab
,
0xc5
,
0x9f
,
0xf2
,
0xa7
,
0xbe
,
0x22
,
0xad
,
0x46
,
0x1b
,
0x89
,
0x07
,
0x76
,
0xc9
,
0xe
4
,
0x
9e
,
0x78
,
0x5e
,
0x97
,
0x4c
,
0xdd
,
0xbb
,
0xaf
,
0xe4
,
0x4f
,
0x46
,
0xb4
,
0x1e
,
0xc3
,
0x72
,
0x4e
,
0x
bd
,
0xf7
,
0x4a
,
0xfe
,
0xa4
,
0xa2
,
0xf5
,
0x10
,
0x56
,
0x72
,
0x42
,
0x20
,
0x8a
,
0x7b
,
0x3f
,
0xc5
,
0x
08
,
0x44
,
0x71
,
0xe7
,
0xa7
,
0x38
,
0xfa
,
0x76
,
0x2f
,
0x1d
,
0x8f
,
0xa4
,
0x1f
,
0x56
,
0x6a
,
0x6d
,
0x
d1
,
0xb7
,
0x77
,
0xe1
,
0x68
,
0x24
,
0xfd
,
0xb0
,
0x42
,
0x6b
,
0x6b
,
0xba
,
0xa9
,
0x6b
,
0xca
,
0x5a
,
0x
55
,
0x37
,
0x75
,
0x4d
,
0x59
,
0x6b
,
0x19
,
0xb8
,
0x5a
,
0xbc
,
0xf9
,
0xb7
,
0x32
,
0x2c
,
0x88
,
0x44
,
0x
cf
,
0xc0
,
0xe5
,
0xe2
,
0xad
,
0xbf
,
0x95
,
0x61
,
0x91
,
0x27
,
0x2a
,
0xc2
,
0x55
,
0x7f
,
0x02
,
0x10
,
0x
45
,
0xba
,
0xea
,
0x4f
,
0x00
,
0xe2
,
0x74
,
0x19
,
0x75
,
0x13
,
0xd6
,
0x93
,
0xa8
,
0x02
,
0xba
,
0xeb
,
0x
a7
,
0xcb
,
0xa8
,
0x97
,
0xb0
,
0x9e
,
0x44
,
0x1d
,
0xd0
,
0xdb
,
0xc8
,
0x9d
,
0xd3
,
0xc5
,
0xa8
,
0x65
,
0xb
9
,
0x73
,
0xba
,
0x18
,
0xb5
,
0xcc
,
0x57
,
0x13
,
0x63
,
0x36
,
0x9f
,
0xd6
,
0xc4
,
0x98
,
0x93
,
0x2c
,
0xb
e
,
0x9a
,
0x18
,
0xb3
,
0xf9
,
0xb4
,
0x26
,
0xc6
,
0x9c
,
0x64
,
0xd9
,
0x98
,
0x43
,
0x3b
,
0xd0
,
0x50
,
0x
1b
,
0x33
,
0x68
,
0x1b
,
0xea
,
0x51
,
0x3a
,
0x86
,
0xb4
,
0x2c
,
0x2e
,
0x95
,
0x4b
,
0x76
,
0xbb
,
0x79
,
0x
e9
,
0x18
,
0xd2
,
0xb2
,
0xb8
,
0x54
,
0x2e
,
0xd9
,
0xeb
,
0xe5
,
0x4d
,
0xe9
,
0x1c
,
0x69
,
0xf9
,
0x97
,
0x
53
,
0x3a
,
0x47
,
0x5a
,
0xfe
,
0xa5
,
0x71
,
0x94
,
0xcd
,
0xea
,
0x34
,
0x8e
,
0xf2
,
0x52
,
0xb6
,
0x99
,
0x
c6
,
0x51
,
0x36
,
0xab
,
0xd3
,
0x38
,
0xca
,
0x4b
,
0xd9
,
0xe6
,
0xfe
,
0x1b
,
0x00
,
0x00
,
0xff
,
0xff
,
0x
ff
,
0x06
,
0x00
,
0x00
,
0xff
,
0xff
,
0x53
,
0x61
,
0x56
,
0xc3
,
0x56
,
0x2f
,
0x00
,
0x00
,
0x
ce
,
0x7b
,
0x46
,
0x5c
,
0x58
,
0x2f
,
0x00
,
0x00
,
}
}
pkg/kubelet/api/v1alpha1/runtime/api.proto
View file @
99ee3f4b
...
@@ -159,8 +159,9 @@ message LinuxSandboxSecurityContext {
...
@@ -159,8 +159,9 @@ message LinuxSandboxSecurityContext {
optional
NamespaceOption
namespace_options
=
1
;
optional
NamespaceOption
namespace_options
=
1
;
// Optional SELinux context to be applied.
// Optional SELinux context to be applied.
optional
SELinuxOption
selinux_options
=
2
;
optional
SELinuxOption
selinux_options
=
2
;
// The UID to run the entrypoint of the sandbox process.
// The user to run the entrypoint of the sandbox process, it could be uid or
optional
int64
run_as_user
=
3
;
// user name.
optional
string
run_as_user
=
3
;
// If set, the root filesystem of the sandbox is read-only.
// If set, the root filesystem of the sandbox is read-only.
optional
bool
readonly_rootfs
=
4
;
optional
bool
readonly_rootfs
=
4
;
// A list of groups applied to the first process run in the sandbox, in addition
// A list of groups applied to the first process run in the sandbox, in addition
...
@@ -439,9 +440,10 @@ message LinuxContainerSecurityContext {
...
@@ -439,9 +440,10 @@ message LinuxContainerSecurityContext {
optional
NamespaceOption
namespace_options
=
3
;
optional
NamespaceOption
namespace_options
=
3
;
// Optional SELinux context to be applied.
// Optional SELinux context to be applied.
optional
SELinuxOption
selinux_options
=
4
;
optional
SELinuxOption
selinux_options
=
4
;
// The UID to run the the container process as.
// The user to run the the container process as, it could be uid or user
// name.
// Defaults to user specified in image metadata if unspecified.
// Defaults to user specified in image metadata if unspecified.
optional
int64
run_as_user
=
5
;
optional
string
run_as_user
=
5
;
// If set, the root filesystem of the container is read-only.
// If set, the root filesystem of the container is read-only.
optional
bool
readonly_rootfs
=
6
;
optional
bool
readonly_rootfs
=
6
;
// A list of groups applied to the first process run in the container, in addition
// A list of groups applied to the first process run in the container, in addition
...
@@ -758,8 +760,8 @@ message Image {
...
@@ -758,8 +760,8 @@ message Image {
repeated
string
repo_digests
=
3
;
repeated
string
repo_digests
=
3
;
// The size of the image in bytes.
// The size of the image in bytes.
optional
uint64
size
=
4
;
optional
uint64
size
=
4
;
// The u
id
that will run the command(s).
// The u
ser
that will run the command(s).
optional
int64
uid
=
5
;
optional
string
user
=
5
;
}
}
message
ListImagesResponse
{
message
ListImagesResponse
{
...
...
pkg/kubelet/dockershim/convert.go
View file @
99ee3f4b
...
@@ -18,7 +18,6 @@ package dockershim
...
@@ -18,7 +18,6 @@ package dockershim
import
(
import
(
"fmt"
"fmt"
"strconv"
"strings"
"strings"
"time"
"time"
...
@@ -57,24 +56,14 @@ func imageInspectToRuntimeAPIImage(image *dockertypes.ImageInspect) (*runtimeApi
...
@@ -57,24 +56,14 @@ func imageInspectToRuntimeAPIImage(image *dockertypes.ImageInspect) (*runtimeApi
return
nil
,
fmt
.
Errorf
(
"unable to convert a nil pointer to a runtime API image"
)
return
nil
,
fmt
.
Errorf
(
"unable to convert a nil pointer to a runtime API image"
)
}
}
var
err
error
var
uid
int64
size
:=
uint64
(
image
.
VirtualSize
)
size
:=
uint64
(
image
.
VirtualSize
)
imageUid
:=
dockertools
.
GetUidFromUser
(
image
.
Config
.
User
)
user
:=
dockertools
.
GetUserFromImageUser
(
image
.
Config
.
User
)
// Convert image UID to int64 format. Not that it assumes the process in
// the image is running as root if image.Config.User is not set.
if
imageUid
!=
""
{
uid
,
err
=
strconv
.
ParseInt
(
imageUid
,
10
,
64
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"non-numeric user (%q)"
,
imageUid
)
}
}
return
&
runtimeApi
.
Image
{
return
&
runtimeApi
.
Image
{
Id
:
&
image
.
ID
,
Id
:
&
image
.
ID
,
RepoTags
:
image
.
RepoTags
,
RepoTags
:
image
.
RepoTags
,
RepoDigests
:
image
.
RepoDigests
,
RepoDigests
:
image
.
RepoDigests
,
Size_
:
&
size
,
Size_
:
&
size
,
U
id
:
&
uid
,
U
ser
:
&
user
,
},
nil
},
nil
}
}
...
...
pkg/kubelet/dockershim/security_context.go
View file @
99ee3f4b
...
@@ -61,9 +61,7 @@ func applyContainerSecurityContext(lc *runtimeapi.LinuxContainerConfig, sandboxI
...
@@ -61,9 +61,7 @@ func applyContainerSecurityContext(lc *runtimeapi.LinuxContainerConfig, sandboxI
// modifyContainerConfig applies container security context config to dockercontainer.Config.
// modifyContainerConfig applies container security context config to dockercontainer.Config.
func
modifyContainerConfig
(
sc
*
runtimeapi
.
LinuxContainerSecurityContext
,
config
*
dockercontainer
.
Config
)
{
func
modifyContainerConfig
(
sc
*
runtimeapi
.
LinuxContainerSecurityContext
,
config
*
dockercontainer
.
Config
)
{
if
sc
!=
nil
&&
sc
.
RunAsUser
!=
nil
{
config
.
User
=
sc
.
GetRunAsUser
()
config
.
User
=
strconv
.
FormatInt
(
sc
.
GetRunAsUser
(),
10
)
}
}
}
// modifyHostConfig applies security context config to dockercontainer.HostConfig.
// modifyHostConfig applies security context config to dockercontainer.HostConfig.
...
...
pkg/kubelet/dockershim/security_context_test.go
View file @
99ee3f4b
...
@@ -18,7 +18,6 @@ package dockershim
...
@@ -18,7 +18,6 @@ package dockershim
import
(
import
(
"fmt"
"fmt"
"strconv"
"testing"
"testing"
dockercontainer
"github.com/docker/engine-api/types/container"
dockercontainer
"github.com/docker/engine-api/types/container"
...
@@ -29,7 +28,7 @@ import (
...
@@ -29,7 +28,7 @@ import (
)
)
func
TestModifyContainerConfig
(
t
*
testing
.
T
)
{
func
TestModifyContainerConfig
(
t
*
testing
.
T
)
{
var
uid
int64
=
123
var
uid
string
=
"123"
cases
:=
[]
struct
{
cases
:=
[]
struct
{
name
string
name
string
...
@@ -42,7 +41,7 @@ func TestModifyContainerConfig(t *testing.T) {
...
@@ -42,7 +41,7 @@ func TestModifyContainerConfig(t *testing.T) {
RunAsUser
:
&
uid
,
RunAsUser
:
&
uid
,
},
},
expected
:
&
dockercontainer
.
Config
{
expected
:
&
dockercontainer
.
Config
{
User
:
strconv
.
FormatInt
(
uid
,
10
)
,
User
:
uid
,
},
},
},
},
{
{
...
...
pkg/kubelet/dockertools/docker_manager.go
View file @
99ee3f4b
...
@@ -2474,7 +2474,7 @@ func (dm *DockerManager) isImageRoot(image string) (bool, error) {
...
@@ -2474,7 +2474,7 @@ func (dm *DockerManager) isImageRoot(image string) (bool, error) {
return
false
,
fmt
.
Errorf
(
"unable to inspect image %s, nil Config"
,
image
)
return
false
,
fmt
.
Errorf
(
"unable to inspect image %s, nil Config"
,
image
)
}
}
user
:=
GetU
idFrom
User
(
img
.
Config
.
User
)
user
:=
GetU
serFromImage
User
(
img
.
Config
.
User
)
// if no user is defined container will run as root
// if no user is defined container will run as root
if
user
==
""
{
if
user
==
""
{
return
true
,
nil
return
true
,
nil
...
@@ -2488,16 +2488,16 @@ func (dm *DockerManager) isImageRoot(image string) (bool, error) {
...
@@ -2488,16 +2488,16 @@ func (dm *DockerManager) isImageRoot(image string) (bool, error) {
return
uid
==
0
,
nil
return
uid
==
0
,
nil
}
}
// GetU
idFromUser splits the uid out of an uid:gid
string.
// GetU
serFromImageUser splits the user out of an user:group
string.
func
GetU
idFrom
User
(
id
string
)
string
{
func
GetU
serFromImage
User
(
id
string
)
string
{
if
id
==
""
{
if
id
==
""
{
return
id
return
id
}
}
// split instances where the id may contain u
id:gid
// split instances where the id may contain u
ser:group
if
strings
.
Contains
(
id
,
":"
)
{
if
strings
.
Contains
(
id
,
":"
)
{
return
strings
.
Split
(
id
,
":"
)[
0
]
return
strings
.
Split
(
id
,
":"
)[
0
]
}
}
// no g
id
, just return the id
// no g
roup
, just return the id
return
id
return
id
}
}
...
...
pkg/kubelet/dockertools/docker_manager_test.go
View file @
99ee3f4b
...
@@ -1431,7 +1431,7 @@ func TestVerifyNonRoot(t *testing.T) {
...
@@ -1431,7 +1431,7 @@ func TestVerifyNonRoot(t *testing.T) {
}
}
}
}
func
TestGetU
idFrom
User
(
t
*
testing
.
T
)
{
func
TestGetU
serFromImage
User
(
t
*
testing
.
T
)
{
tests
:=
map
[
string
]
struct
{
tests
:=
map
[
string
]
struct
{
input
string
input
string
expect
string
expect
string
...
@@ -1452,9 +1452,17 @@ func TestGetUidFromUser(t *testing.T) {
...
@@ -1452,9 +1452,17 @@ func TestGetUidFromUser(t *testing.T) {
input
:
"1:2:3"
,
input
:
"1:2:3"
,
expect
:
"1"
,
expect
:
"1"
,
},
},
"root username"
:
{
input
:
"root:root"
,
expect
:
"root"
,
},
"username"
:
{
input
:
"test:test"
,
expect
:
"test"
,
},
}
}
for
k
,
v
:=
range
tests
{
for
k
,
v
:=
range
tests
{
actual
:=
GetU
idFrom
User
(
v
.
input
)
actual
:=
GetU
serFromImage
User
(
v
.
input
)
if
actual
!=
v
.
expect
{
if
actual
!=
v
.
expect
{
t
.
Errorf
(
"%s failed. Expected %s but got %s"
,
k
,
v
.
expect
,
actual
)
t
.
Errorf
(
"%s failed. Expected %s but got %s"
,
k
,
v
.
expect
,
actual
)
}
}
...
...
pkg/kubelet/kuberuntime/BUILD
View file @
99ee3f4b
...
@@ -60,6 +60,7 @@ go_library(
...
@@ -60,6 +60,7 @@ go_library(
"//vendor:github.com/coreos/go-semver/semver",
"//vendor:github.com/coreos/go-semver/semver",
"//vendor:github.com/docker/docker/pkg/jsonlog",
"//vendor:github.com/docker/docker/pkg/jsonlog",
"//vendor:github.com/fsnotify/fsnotify",
"//vendor:github.com/fsnotify/fsnotify",
"//vendor:github.com/gogo/protobuf/proto",
"//vendor:github.com/golang/glog",
"//vendor:github.com/golang/glog",
"//vendor:github.com/google/cadvisor/info/v1",
"//vendor:github.com/google/cadvisor/info/v1",
],
],
...
...
pkg/kubelet/kuberuntime/helpers.go
View file @
99ee3f4b
...
@@ -147,13 +147,18 @@ func getContainerSpec(pod *api.Pod, containerName string) *api.Container {
...
@@ -147,13 +147,18 @@ func getContainerSpec(pod *api.Pod, containerName string) *api.Container {
}
}
// getImageUID gets uid that will run the command(s) from image.
// getImageUID gets uid that will run the command(s) from image.
func
(
m
*
kubeGenericRuntimeManager
)
getImageUser
(
image
string
)
(
int64
,
error
)
{
func
(
m
*
kubeGenericRuntimeManager
)
getImageUser
(
image
string
)
(
string
,
error
)
{
imageStatus
,
err
:=
m
.
imageService
.
ImageStatus
(
&
runtimeApi
.
ImageSpec
{
Image
:
&
image
})
imageStatus
,
err
:=
m
.
imageService
.
ImageStatus
(
&
runtimeApi
.
ImageSpec
{
Image
:
&
image
})
if
err
!=
nil
{
if
err
!=
nil
{
return
0
,
err
return
""
,
err
}
}
return
imageStatus
.
GetUid
(),
nil
user
:=
imageStatus
.
GetUser
()
// kuberuntime treats empty user as root.
if
user
==
""
{
return
"0"
,
nil
}
return
user
,
nil
}
}
// isContainerFailed returns true if container has exited and exitcode is not zero.
// isContainerFailed returns true if container has exited and exitcode is not zero.
...
...
pkg/kubelet/kuberuntime/kuberuntime_container.go
View file @
99ee3f4b
...
@@ -184,7 +184,7 @@ func (m *kubeGenericRuntimeManager) generateContainerConfig(container *api.Conta
...
@@ -184,7 +184,7 @@ func (m *kubeGenericRuntimeManager) generateContainerConfig(container *api.Conta
}
}
// generateLinuxContainerConfig generates linux container config for kubelet runtime api.
// generateLinuxContainerConfig generates linux container config for kubelet runtime api.
func
(
m
*
kubeGenericRuntimeManager
)
generateLinuxContainerConfig
(
container
*
api
.
Container
,
pod
*
api
.
Pod
,
imageUser
int64
)
*
runtimeApi
.
LinuxContainerConfig
{
func
(
m
*
kubeGenericRuntimeManager
)
generateLinuxContainerConfig
(
container
*
api
.
Container
,
pod
*
api
.
Pod
,
imageUser
string
)
*
runtimeApi
.
LinuxContainerConfig
{
lc
:=
&
runtimeApi
.
LinuxContainerConfig
{
lc
:=
&
runtimeApi
.
LinuxContainerConfig
{
Resources
:
&
runtimeApi
.
LinuxContainerResources
{},
Resources
:
&
runtimeApi
.
LinuxContainerResources
{},
SecurityContext
:
m
.
determineEffectiveSecurityContext
(
pod
,
container
,
imageUser
),
SecurityContext
:
m
.
determineEffectiveSecurityContext
(
pod
,
container
,
imageUser
),
...
...
pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
View file @
99ee3f4b
...
@@ -146,7 +146,7 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *api.Pod,
...
@@ -146,7 +146,7 @@ func (m *kubeGenericRuntimeManager) generatePodSandboxLinuxConfig(pod *api.Pod,
HostIpc
:
&
sc
.
HostIPC
,
HostIpc
:
&
sc
.
HostIPC
,
HostPid
:
&
sc
.
HostPID
,
HostPid
:
&
sc
.
HostPID
,
},
},
RunAsUser
:
sc
.
RunAsUser
,
RunAsUser
:
convertToRuntimeRunAsUser
(
sc
.
RunAsUser
)
,
}
}
if
sc
.
FSGroup
!=
nil
{
if
sc
.
FSGroup
!=
nil
{
...
...
pkg/kubelet/kuberuntime/security_context.go
View file @
99ee3f4b
...
@@ -18,6 +18,10 @@ package kuberuntime
...
@@ -18,6 +18,10 @@ package kuberuntime
import
(
import
(
"fmt"
"fmt"
"strconv"
"github.com/gogo/protobuf/proto"
"github.com/golang/glog"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
runtimeapi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
runtimeapi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
...
@@ -25,7 +29,7 @@ import (
...
@@ -25,7 +29,7 @@ import (
)
)
// determineEffectiveSecurityContext gets container's security context from api.Pod and api.Container.
// determineEffectiveSecurityContext gets container's security context from api.Pod and api.Container.
func
(
m
*
kubeGenericRuntimeManager
)
determineEffectiveSecurityContext
(
pod
*
api
.
Pod
,
container
*
api
.
Container
,
imageUser
int64
)
*
runtimeapi
.
LinuxContainerSecurityContext
{
func
(
m
*
kubeGenericRuntimeManager
)
determineEffectiveSecurityContext
(
pod
*
api
.
Pod
,
container
*
api
.
Container
,
imageUser
string
)
*
runtimeapi
.
LinuxContainerSecurityContext
{
effectiveSc
:=
securitycontext
.
DetermineEffectiveSecurityContext
(
pod
,
container
)
effectiveSc
:=
securitycontext
.
DetermineEffectiveSecurityContext
(
pod
,
container
)
synthesized
:=
convertToRuntimeSecurityContext
(
effectiveSc
)
synthesized
:=
convertToRuntimeSecurityContext
(
effectiveSc
)
if
synthesized
==
nil
{
if
synthesized
==
nil
{
...
@@ -61,17 +65,29 @@ func (m *kubeGenericRuntimeManager) determineEffectiveSecurityContext(pod *api.P
...
@@ -61,17 +65,29 @@ func (m *kubeGenericRuntimeManager) determineEffectiveSecurityContext(pod *api.P
}
}
// verifyRunAsNonRoot verifies RunAsNonRoot.
// verifyRunAsNonRoot verifies RunAsNonRoot.
func
verifyRunAsNonRoot
(
pod
*
api
.
Pod
,
container
*
api
.
Container
,
imageUser
int64
)
error
{
func
verifyRunAsNonRoot
(
pod
*
api
.
Pod
,
container
*
api
.
Container
,
imageUser
string
)
error
{
effectiveSc
:=
securitycontext
.
DetermineEffectiveSecurityContext
(
pod
,
container
)
effectiveSc
:=
securitycontext
.
DetermineEffectiveSecurityContext
(
pod
,
container
)
if
effectiveSc
==
nil
||
effectiveSc
.
RunAsNonRoot
==
nil
{
if
effectiveSc
==
nil
||
effectiveSc
.
RunAsNonRoot
==
nil
{
return
nil
return
nil
}
}
if
effectiveSc
.
RunAsUser
!=
nil
&&
*
effectiveSc
.
RunAsUser
==
0
{
if
effectiveSc
.
RunAsUser
!=
nil
{
return
fmt
.
Errorf
(
"container's runAsUser breaks non-root policy"
)
if
*
effectiveSc
.
RunAsUser
==
0
{
return
fmt
.
Errorf
(
"container's runAsUser breaks non-root policy"
)
}
return
nil
}
// Non-root verification only supports numeric user now. For non-numeric user,
// just return nil to by-pass the verfication.
// TODO: Support non-numeric user.
uid
,
err
:=
strconv
.
ParseInt
(
imageUser
,
10
,
64
)
if
err
!=
nil
{
glog
.
Warningf
(
"Non-root verification doesn't support non-numeric user (%s)"
,
imageUser
)
return
nil
}
}
if
imageUser
==
0
{
if
uid
==
0
{
return
fmt
.
Errorf
(
"container has runAsNonRoot and image will run as root"
)
return
fmt
.
Errorf
(
"container has runAsNonRoot and image will run as root"
)
}
}
...
@@ -85,7 +101,7 @@ func convertToRuntimeSecurityContext(securityContext *api.SecurityContext) *runt
...
@@ -85,7 +101,7 @@ func convertToRuntimeSecurityContext(securityContext *api.SecurityContext) *runt
}
}
return
&
runtimeapi
.
LinuxContainerSecurityContext
{
return
&
runtimeapi
.
LinuxContainerSecurityContext
{
RunAsUser
:
securityContext
.
RunAsUser
,
RunAsUser
:
convertToRuntimeRunAsUser
(
securityContext
.
RunAsUser
)
,
Privileged
:
securityContext
.
Privileged
,
Privileged
:
securityContext
.
Privileged
,
ReadonlyRootfs
:
securityContext
.
ReadOnlyRootFilesystem
,
ReadonlyRootfs
:
securityContext
.
ReadOnlyRootFilesystem
,
Capabilities
:
convertToRuntimeCapabilities
(
securityContext
.
Capabilities
),
Capabilities
:
convertToRuntimeCapabilities
(
securityContext
.
Capabilities
),
...
@@ -93,6 +109,14 @@ func convertToRuntimeSecurityContext(securityContext *api.SecurityContext) *runt
...
@@ -93,6 +109,14 @@ func convertToRuntimeSecurityContext(securityContext *api.SecurityContext) *runt
}
}
}
}
// convertToRuntimeRunAsUser converts RunAsUser from *int64 to *string.
func
convertToRuntimeRunAsUser
(
runAsUser
*
int64
)
*
string
{
if
runAsUser
==
nil
{
return
nil
}
return
proto
.
String
(
strconv
.
FormatInt
(
*
runAsUser
,
10
))
}
// convertToRuntimeSELinuxOption converts api.SELinuxOptions to runtimeapi.SELinuxOption.
// convertToRuntimeSELinuxOption converts api.SELinuxOptions to runtimeapi.SELinuxOption.
func
convertToRuntimeSELinuxOption
(
opts
*
api
.
SELinuxOptions
)
*
runtimeapi
.
SELinuxOption
{
func
convertToRuntimeSELinuxOption
(
opts
*
api
.
SELinuxOptions
)
*
runtimeapi
.
SELinuxOption
{
if
opts
==
nil
{
if
opts
==
nil
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment