Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
4205ed89
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4205ed89
编写于
3月 08, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 08, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2249 Add image XTS test cases for exif and coverage API 8
Merge pull request !2249 from wangxiaokai/master
上级
3f0f39fb
632e4c73
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
2274 addition
and
779 deletion
+2274
-779
multimedia/image/image_js_standard/src/main/js/test/image.test.js
...ia/image/image_js_standard/src/main/js/test/image.test.js
+1664
-37
multimedia/image/image_js_standard/src/main/js/test/testImg.js
...media/image/image_js_standard/src/main/js/test/testImg.js
+610
-742
未找到文件。
multimedia/image/image_js_standard/src/main/js/test/image.test.js
浏览文件 @
4205ed89
...
...
@@ -1053,7 +1053,7 @@ describe('Image', function () {
console
.
info
(
'
TC_25-1 success
'
);
done
();
})
pixelmap
.
getBytesNumberPerRow
(
num
=>
{
pixelmap
.
getBytesNumberPerRow
(
).
then
(
num
=>
{
console
.
info
(
'
TC_025-1 num is
'
+
num
);
expect
(
num
==
expectNum
).
assertTrue
();
done
();
...
...
@@ -1086,7 +1086,7 @@ describe('Image', function () {
console
.
info
(
'
TC_026-1 success
'
);
done
();
})
pixelmap
.
getPixelBytesNumber
(
num
=>
{
pixelmap
.
getPixelBytesNumber
(
).
then
(
num
=>
{
console
.
info
(
'
TC_026-1 num is
'
+
num
);
expect
(
num
==
expectNum
).
assertTrue
();
done
();
...
...
@@ -1112,8 +1112,7 @@ describe('Image', function () {
it
(
'
TC_027
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
image
.
createPixelMap
(
color
,
opts
).
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
console
.
info
(
'
TC_027 createPixelMap failed
'
);
expect
(
false
).
assertTrue
()
...
...
@@ -1124,12 +1123,13 @@ describe('Image', function () {
expect
(
true
).
assertTrue
();
done
();
})
})
.
catch
(
error
=>
{
.
catch
(
error
=>
{
console
.
log
(
'
TC_027 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
})
})
/**
* @tc.number : TC_027-1
...
...
@@ -1146,19 +1146,16 @@ describe('Image', function () {
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_026-1 success
'
);
if
(
pixelmap
==
null
)
{
console
.
info
(
'
TC_027 createPixelMap failed
'
);
expect
(
false
).
assertTrue
()
done
();
})
}
pixelmap
.
release
(()
=>
{
expect
(
true
).
assertTrue
();
console
.
info
(
'
TC_027-1 success
'
);
console
.
log
(
'
TC_027-1 success
'
);
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_027-1 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
})
...
...
@@ -1465,8 +1462,8 @@ describe('Image', function () {
console
.
info
(
'
TC_044 release
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(
()
=>
{
console
.
log
(
'
TC_044 error:
'
+
error
);
}).
catch
(
error
=>
{
console
.
info
(
'
TC_044 release
'
);
expect
(
false
).
assertTrue
();
done
();
})
...
...
@@ -4565,9 +4562,9 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
expect
(
imageSourceApi
.
supportedFormats
!=
null
).
assertTrue
();
expect
(
imageSourceApi
.
supportedFormats
!=
null
).
assertTrue
();
console
.
info
(
imageSourceApi
.
supportedFormats
);
console
.
info
(
'
TC_164 success
'
);
console
.
info
(
'
TC_164 success
'
);
done
();
}
})
...
...
@@ -4588,9 +4585,9 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
expect
(
imagePackerApi
.
supportedFormats
!=
null
).
assertTrue
();
expect
(
imagePackerApi
.
supportedFormats
!=
null
).
assertTrue
();
console
.
info
(
imagePackerApi
.
supportedFormats
);
console
.
info
(
'
TC_166 success
'
);
console
.
info
(
'
TC_166 success
'
);
done
();
}
})
...
...
@@ -4624,4 +4621,1634 @@ describe('Image', function () {
done
();
})
})
/**
* @tc.number : TC_168
* @tc.name : isEditable
* @tc.desc : 1.create pixelmap
* 2.call isEditable
* 3.return true
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_168
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
image
.
createPixelMap
(
Color
,
opts
,
pixelmap
=>
{
if
(
pixelmap
==
null
){
console
.
info
(
'
TC_168 create pixelmap failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
expect
(
pixelmap
.
isEditable
==
true
).
assertTrue
();
console
.
info
(
'
TC_168 success
'
);
done
();
}
})
})
/**
* @tc.number : TC_171
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(BitsPerSample)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
4
'
}
imageSourceApi
.
getImageProperty
(
"
BitsPerSample
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171 BitsPerSample
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-1
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(Orientation)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
4
'
}
imageSourceApi
.
getImageProperty
(
"
Orientation
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-1 Orientation
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-1 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-2
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
ImageLength
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-2 ImageLength
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-2 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-3
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-3 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-3 ImageWidth
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-3 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-4
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLatitude
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-4 GPSLatitude
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-4 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-5
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-5 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLongitude
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-5 GPSLongitude
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-5 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-6
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(GPSLatitudeRef)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-6 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-6 GPSLatitudeRef
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-6 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-7
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-7 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLongitudeRef
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-7 GPSLongitudeRef
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-7 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_171-8
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength)
* 4.The return value is not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_171-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_171-8 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
DateTimeOriginal
"
,
property
)
.
then
(
data
=>
{
console
.
info
(
'
TC_171-8 DateTimeOriginal
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_171-8 error:
'
+
error
);
expect
(
false
).
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_172
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(BitsPerSample)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
BitsPerSample
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172 BitsPerSample
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-1
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(Orientation)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
Orientation
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-1 Orientation
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-2
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(ImageLength)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
ImageLength
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-2 ImageLength
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-3
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(ImageWidth)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-3 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-3 ImageWidth
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-4
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(GPSLatitude)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitude
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-4 GPSLatitude
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-5
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(GPSLongitude)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-5 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitude
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-5 GPSLongitude
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-6
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(GPSLatitudeRef)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-6 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-6 GPSLatitudeRef
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-7
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(GPSLongitudeRef)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-7 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitudeRef
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-7 GPSLongitudeRef
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_172-8
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.call getImageProperty(DateTimeOriginal)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_172-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_172-8 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
getImageProperty
(
"
DateTimeOriginal
"
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_172-8 DateTimeOriginal
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(BitsPerSample,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
BitsPerSample
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173 BitsPerSample
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-1
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(Orientation,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
Orientation
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-1 Orientation
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-2
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageLength,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
ImageLength
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-2 ImageLength
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-3
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(ImageWidth,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-3 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-3 ImageWidth
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-4
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(GPSLatitude,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLatitude
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-4 GPSLatitude
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-5
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(GPSLongitude,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-5 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLongitude
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-5 GPSLongitude
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-6
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(GPSLatitudeRef,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-6 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-6 GPSLatitudeRef
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-7
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(GPSLongitudeRef,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-7 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
GPSLongitudeRef
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-7 GPSLongitudeRef
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_173-8
* @tc.name : getImageProperty
* @tc.desc : 1.create imagesource
* 2.set property
* 3.call getImageProperty(DateTimeOriginal,property)
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_173-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_173-8 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
0
,
defaultValue
:
'
10
'
}
imageSourceApi
.
getImageProperty
(
"
DateTimeOrigina
"
,
property
,(
error
,
data
)
=>
{
console
.
info
(
'
TC_173-8 DateTimeOriginal
'
+
data
);
expect
(
data
!==
null
).
assertTrue
();
expect
(
data
!==
undefined
).
assertTrue
();
expect
(
data
!==
''
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_174
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
console
.
info
(
'
TC_174 start modifyImageProperty
'
);
imageSourceApi
.
modifyImageProperty
(
"
BitsPerSample
"
,
"
4
"
)
.
then
(()
=>
{
console
.
info
(
'
TC_174 start ImageProperty
'
);
imageSourceApi
.
getImageProperty
(
"
BitsPerSample
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174 BitsPerSample
'
+
value
);
expect
(
value
==
'
4
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-1
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
Orientation
"
,
"
2
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
Orientation
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-1 Orientation
'
+
value
);
expect
(
value
==
'
2
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-1 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-2
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
ImageLength
"
,
"
200
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
ImageLength
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-2 ImageLength
'
+
value
);
expect
(
value
==
'
200
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-2 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-3
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-3 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
200
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-3 ImageWidth
'
+
value
);
expect
(
value
==
'
200
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-3 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-4
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitude
"
,
"
57.88888
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitude
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-4 GPSLatitude
'
+
value
);
expect
(
value
==
'
57.88888
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-4 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-5
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-5 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLongitude
"
,
"
205.3332
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitude
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-5 GPSLongitude
'
+
value
);
expect
(
value
==
'
205.3332
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-5 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-6
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-6 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitudeRef
"
,
"
N
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-6 GPSLatitudeRef
'
+
value
);
expect
(
value
==
'
N
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-6 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-7
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-7 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitudeRef
"
,
"
W
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-7 GPSLatitudeRef
'
+
value
);
expect
(
value
==
'
W
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-7 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_174-8
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_174-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_174-8 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
DateTimeOriginal
"
,
"
2022-09-09
"
)
.
then
(()
=>
{
imageSourceApi
.
getImageProperty
(
"
DateTimeOriginal
"
).
then
((
value
)
=>
{
console
.
info
(
'
TC_174-8 DateTimeOriginal
'
+
value
);
expect
(
value
==
'
2022-09-09
'
).
assertTrue
();
done
();
}).
catch
((
err
)
=>
{
console
.
info
(
`TC_174-8 getimageproperty failed, err:
${
err
}
`
);
expect
(
false
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
BitsPerSample
"
,
"
4
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
BitsPerSample
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175 BitsPerSample
'
+
value
);
expect
(
value
==
"
4
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-1
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
Orientation
"
,
"
2
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
Orientation
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-1 Orientation
'
+
value
);
expect
(
value
==
"
2
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-2
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
ImageLength
"
,
"
200
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
ImageLength
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-2 ImageLength
'
+
value
);
expect
(
value
==
"
200
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-3
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-3 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
200
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-3 ImageWidth
'
+
value
);
expect
(
value
==
"
200
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-4
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitude
"
,
"
57.88888
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitude
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-4 GPSLatitude
'
+
value
);
expect
(
value
==
"
57.88888
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-5
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-5 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLongitude
"
,
"
205.3332
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitude
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-5 GPSLongitude
'
+
value
);
expect
(
value
==
"
205.3332
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-6
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-6 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitudeRef
"
,
"
N
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-6 GPSLatitudeRef
'
+
value
);
expect
(
value
==
"
N
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-7
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-7 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
GPSLongitudeRef
"
,
"
W
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitudeRef
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-7 GPSLongitudeRef
'
+
value
);
expect
(
value
==
"
W
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_175-8
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_175-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_175-8 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
modifyImageProperty
(
"
DateTimeOriginal
"
,
"
2022-09-09
"
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
DateTimeOriginal
"
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_175-8 DateTimeOriginal
'
+
value
);
expect
(
value
==
"
2022-09-09
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
BitsPerSample
"
,
"
4
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
BitsPerSample
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176 BitsPerSample
'
+
value
);
expect
(
value
==
"
4
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-1
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
Orientation
"
,
"
2
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
Orientation
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-1 Orientation
'
+
value
);
expect
(
value
==
"
2
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-2
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
ImageLength
"
,
"
200
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
ImageLength
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-2 ImageLength
'
+
value
);
expect
(
value
==
"
200
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-3
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-3 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
200
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-3 ImageWidth
'
+
value
);
expect
(
value
==
"
200
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-4
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitude
"
,
"
57.88888
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitude
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-4 GPSLatitude
'
+
value
);
expect
(
value
==
"
57.88888
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-5
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-5 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
GPSLongitude
"
,
"
205.3332
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitude
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-5 GPSLongitude
'
+
value
);
expect
(
value
==
"
205.3332
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-6
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-6 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
GPSLatitudeRef
"
,
"
N
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLatitudeRef
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-6 GPSLatitudeRef
'
+
value
);
expect
(
value
==
"
N
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-7
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-7 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
GPSLongitudeRef
"
,
"
W
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
GPSLongitudeRef
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-7 GPSLongitudeRef
'
+
value
);
expect
(
value
==
"
W
"
).
assertTrue
();
done
();
})
})
}
})
/**
* @tc.number : TC_176-8
* @tc.name : modifyImageProperty
* @tc.desc : 1.create imagesource
* 2.call modifyImageProperty(key,value,options)
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_176-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test_exif.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_176-8 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
property
=
{
index
:
1
,
defaultValue
:
'
1
'
}
imageSourceApi
.
modifyImageProperty
(
"
DateTimeOriginal
"
,
"
2022-09-09
"
,
property
,()
=>
{
imageSourceApi
.
getImageProperty
(
"
DateTimeOriginal
"
,
property
,(
error
,
value
)
=>
{
console
.
info
(
'
TC_176-8 DateTimeOriginal
'
+
value
);
expect
(
value
==
"
2022-09-09
"
).
assertTrue
();
done
();
})
})
}
})
})
\ No newline at end of file
multimedia/image/image_js_standard/src/main/js/test/testImg.js
浏览文件 @
4205ed89
...
...
@@ -12,7 +12,83 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
let
testJpg
=
new
Uint8Array
([
255
,
216
,
255
,
224
,
0
,
16
,
74
,
70
,
73
,
70
,
0
,
1
,
1
,
1
,
0
,
96
,
0
,
96
,
0
,
0
,
255
,
219
,
0
,
67
,
0
,
2
,
1
,
1
,
2
,
1
,
1
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
3
,
5
,
3
,
3
,
3
,
3
,
3
,
6
,
4
,
4
,
3
,
5
,
7
,
6
,
7
,
7
,
7
,
6
,
7
,
7
,
8
,
9
,
11
,
9
,
8
,
8
,
10
,
8
,
7
,
7
,
10
,
13
,
10
,
10
,
11
,
12
,
12
,
12
,
12
,
7
,
9
,
14
,
15
,
13
,
12
,
14
,
11
,
12
,
12
,
12
,
255
,
219
,
0
,
67
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
6
,
3
,
3
,
6
,
12
,
8
,
7
,
8
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
12
,
255
,
192
,
0
,
17
,
8
,
0
,
226
,
1
,
216
,
3
,
1
,
34
,
0
,
2
,
17
,
1
,
3
,
17
,
1
,
255
,
196
,
0
,
31
,
0
,
0
,
1
,
5
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
255
,
196
,
0
,
181
,
16
,
0
,
2
,
1
,
3
,
3
,
2
,
4
,
3
,
5
,
5
,
4
,
4
,
0
,
0
,
1
,
125
,
1
,
2
,
3
,
0
,
4
,
17
,
5
,
18
,
33
,
49
,
65
,
6
,
19
,
81
,
97
,
7
,
34
,
113
,
20
,
50
,
129
,
145
,
161
,
8
,
35
,
66
,
177
,
193
,
21
,
82
,
209
,
240
,
36
,
51
,
98
,
114
,
130
,
9
,
10
,
22
,
23
,
24
,
25
,
26
,
37
,
38
,
39
,
40
,
41
,
42
,
52
,
53
,
54
,
55
,
56
,
57
,
58
,
67
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
83
,
84
,
85
,
86
,
87
,
88
,
89
,
90
,
99
,
100
,
101
,
102
,
103
,
104
,
105
,
106
,
115
,
116
,
117
,
118
,
119
,
120
,
121
,
122
,
131
,
132
,
133
,
134
,
135
,
136
,
137
,
138
,
146
,
147
,
148
,
149
,
150
,
151
,
152
,
153
,
154
,
162
,
163
,
164
,
165
,
166
,
167
,
168
,
169
,
170
,
178
,
179
,
180
,
181
,
182
,
183
,
184
,
185
,
186
,
194
,
195
,
196
,
197
,
198
,
199
,
200
,
201
,
202
,
210
,
211
,
212
,
213
,
214
,
215
,
216
,
217
,
218
,
225
,
226
,
227
,
228
,
229
,
230
,
231
,
232
,
233
,
234
,
241
,
242
,
243
,
244
,
245
,
246
,
247
,
248
,
249
,
250
,
255
,
196
,
0
,
31
,
1
,
0
,
3
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
255
,
196
,
0
,
181
,
17
,
0
,
2
,
1
,
2
,
4
,
4
,
3
,
4
,
7
,
5
,
4
,
4
,
0
,
1
,
2
,
119
,
0
,
1
,
2
,
3
,
17
,
4
,
5
,
33
,
49
,
6
,
18
,
65
,
81
,
7
,
97
,
113
,
19
,
34
,
50
,
129
,
8
,
20
,
66
,
145
,
161
,
177
,
193
,
9
,
35
,
51
,
82
,
240
,
21
,
98
,
114
,
209
,
10
,
22
,
36
,
52
,
225
,
37
,
241
,
23
,
24
,
25
,
26
,
38
,
39
,
40
,
41
,
42
,
53
,
54
,
55
,
56
,
57
,
58
,
67
,
68
,
69
,
70
,
71
,
72
,
73
,
74
,
83
,
84
,
85
,
86
,
87
,
88
,
89
,
90
,
99
,
100
,
101
,
102
,
103
,
104
,
105
,
106
,
115
,
116
,
117
,
118
,
119
,
120
,
121
,
122
,
130
,
131
,
132
,
133
,
134
,
135
,
136
,
137
,
138
,
146
,
147
,
148
,
149
,
150
,
151
,
152
,
153
,
154
,
162
,
163
,
164
,
165
,
166
,
167
,
168
,
169
,
170
,
178
,
179
,
180
,
181
,
182
,
183
,
184
,
185
,
186
,
194
,
195
,
196
,
197
,
198
,
199
,
200
,
201
,
202
,
210
,
211
,
212
,
213
,
214
,
215
,
216
,
217
,
218
,
226
,
227
,
228
,
229
,
230
,
231
,
232
,
233
,
234
,
242
,
243
,
244
,
245
,
246
,
247
,
248
,
249
,
250
,
255
,
218
,
0
,
12
,
3
,
1
,
0
,
2
,
17
,
3
,
17
,
0
,
63
,
0
,
253
,
16
,
162
,
138
,
43
,
252
,
99
,
63
,
170
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
2
,
138
,
40
,
160
,
15
,
255
,
217
])
let
testPng
=
new
Uint8Array
([
137
,
80
,
78
,
71
,
13
,
10
,
26
,
10
,
0
,
0
,
0
,
13
,
73
,
72
,
68
,
82
,
0
,
0
,
0
,
100
,
0
,
0
,
0
,
100
,
8
,
6
,
0
,
0
,
0
,
112
,
226
,
149
,
84
,
0
,
0
,
32
,
0
,
73
,
68
,
65
,
84
,
120
,
1
,
212
,
193
,
123
,
176
,
231
,
247
,
93
,
223
,
247
,
231
,
251
,
253
,
249
,
254
,
126
,
231
,
156
,
61
,
123
,
191
,
105
,
37
,
173
,
180
,
186
,
95
,
173
,
187
,
228
,
43
,
166
,
182
,
133
,
109
,
44
,
108
,
160
,
6
,
154
,
105
,
157
,
116
,
104
,
50
,
64
,
72
,
155
,
41
,
195
,
64
,
167
,
13
,
80
,
...
...
@@ -529,214 +605,6 @@ let testPng = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73,
19
,
255
,
28
,
240
,
23
,
223
,
64
,
127
,
237
,
65
,
62
,
251
,
233
,
207
,
228
,
181
,
27
,
215
,
87
,
115
,
206
,
40
,
125
,
211
,
16
,
0
,
0
,
0
,
35
,
73
,
68
,
65
,
84
,
149
,
164
,
204
,
8
,
133
,
132
,
13
,
22
,
190
,
173
,
132
,
22
,
133
,
166
,
164
,
186
,
251
,
158
,
143
,
248
,
248
,
248
,
136
,
103
,
158
,
125
,
134
,
127
,
94
,
252
,
223
,
160
,
16
,
125
,
12
,
251
,
15
,
241
,
139
,
0
,
0
,
0
,
0
,
73
,
69
,
78
,
68
,
174
,
66
,
96
,
130
])
let
testJpg
=
new
Uint8Array
([
255
,
216
,
255
,
224
,
0
,
16
,
74
,
70
,
73
,
70
,
0
,
1
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
0
,
255
,
219
,
0
,
67
,
0
,
6
,
4
,
4
,
5
,
4
,
4
,
6
,
5
,
5
,
5
,
6
,
6
,
6
,
7
,
9
,
14
,
9
,
9
,
8
,
8
,
9
,
18
,
13
,
13
,
10
,
14
,
21
,
18
,
22
,
22
,
21
,
18
,
20
,
20
,
23
,
26
,
33
,
28
,
23
,
24
,
31
,
25
,
20
,
20
,
29
,
39
,
29
,
31
,
34
,
35
,
37
,
37
,
37
,
22
,
28
,
41
,
44
,
40
,
36
,
43
,
33
,
36
,
37
,
36
,
255
,
219
,
0
,
67
,
1
,
6
,
6
,
6
,
9
,
8
,
9
,
17
,
9
,
9
,
17
,
36
,
24
,
20
,
24
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
255
,
194
,
0
,
17
,
8
,
0
,
134
,
0
,
200
,
3
,
1
,
34
,
0
,
2
,
17
,
1
,
3
,
17
,
1
,
255
,
196
,
0
,
27
,
0
,
0
,
2
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
3
,
5
,
0
,
2
,
4
,
6
,
1
,
7
,
255
,
196
,
0
,
25
,
1
,
0
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
3
,
0
,
4
,
5
,
255
,
218
,
0
,
12
,
3
,
1
,
0
,
2
,
16
,
3
,
16
,
0
,
0
,
1
,
228
,
9
,
152
,
145
,
134
,
173
,
24
,
72
,
155
,
105
,
215
,
68
,
13
,
44
,
184
,
169
,
181
,
80
,
198
,
145
,
166
,
191
,
14
,
53
,
115
,
16
,
9
,
170
,
96
,
157
,
183
,
164
,
243
,
213
,
54
,
23
,
158
,
46
,
129
,
56
,
219
,
15
,
57
,
234
,
91
,
12
,
97
,
24
,
172
,
209
,
230
,
230
,
64
,
147
,
117
,
160
,
203
,
198
,
198
,
155
,
45
,
245
,
151
,
174
,
169
,
238
,
202
,
85
,
58
,
62
,
137
,
3
,
159
,
82
,
218
,
134
,
75
,
131
,
207
,
162
,
239
,
7
,
1
,
242
,
208
,
244
,
60
,
223
,
60
,
71
,
66
,
251
,
148
,
53
,
208
,
185
,
205
,
232
,
2
,
49
,
215
,
48
,
197
,
111
,
116
,
187
,
242
,
44
,
167
,
113
,
172
,
128
,
215
,
205
,
153
,
51
,
58
,
47
,
62
,
7
,
222
,
70
,
222
,
128
,
78
,
201
,
53
,
58
,
171
,
216
,
237
,
64
,
226
,
111
,
167
,
22
,
22
,
232
,
220
,
106
,
77
,
229
,
243
,
185
,
150
,
141
,
149
,
20
,
43
,
207
,
183
,
29
,
215
,
33
,
243
,
218
,
186
,
210
,
147
,
51
,
227
,
128
,
190
,
125
,
182
,
219
,
41
,
100
,
187
,
47
,
82
,
147
,
227
,
200
,
79
,
122
,
126
,
47
,
222
,
191
,
163
,
40
,
216
,
21
,
113
,
167
,
116
,
203
,
228
,
253
,
218
,
217
,
207
,
58
,
215
,
149
,
132
,
146
,
49
,
19
,
190
,
38
,
245
,
43
,
60
,
16
,
170
,
239
,
42
,
14
,
158
,
45
,
35
,
200
,
19
,
180
,
204
,
49
,
180
,
38
,
109
,
238
,
54
,
31
,
63
,
144
,
47
,
95
,
167
,
97
,
234
,
141
,
158
,
230
,
149
,
125
,
21
,
206
,
197
,
25
,
118
,
78
,
128
,
112
,
175
,
40
,
197
,
216
,
209
,
142
,
137
,
138
,
95
,
54
,
66
,
45
,
183
,
205
,
243
,
166
,
239
,
56
,
197
,
162
,
172
,
236
,
112
,
219
,
143
,
24
,
24
,
202
,
133
,
113
,
164
,
99
,
207
,
106
,
84
,
126
,
208
,
205
,
194
,
110
,
205
,
199
,
167
,
38
,
158
,
166
,
206
,
3
,
97
,
147
,
235
,
115
,
202
,
244
,
232
,
206
,
83
,
187
,
28
,
107
,
151
,
78
,
67
,
1
,
207
,
98
,
176
,
188
,
121
,
21
,
146
,
38
,
181
,
235
,
114
,
133
,
207
,
187
,
112
,
249
,
246
,
46
,
110
,
11
,
143
,
56
,
42
,
61
,
129
,
151
,
202
,
29
,
134
,
116
,
110
,
164
,
124
,
205
,
122
,
119
,
209
,
93
,
252
,
239
,
187
,
133
,
239
,
201
,
245
,
220
,
102
,
39
,
235
,
56
,
126
,
156
,
30
,
149
,
59
,
110
,
9
,
79
,
64
,
175
,
74
,
25
,
200
,
70
,
244
,
62
,
124
,
252
,
218
,
187
,
59
,
247
,
116
,
236
,
80
,
189
,
133
,
80
,
34
,
32
,
59
,
60
,
236
,
66
,
109
,
229
,
10
,
57
,
182
,
85
,
41
,
175
,
159
,
98
,
165
,
145
,
113
,
109
,
142
,
245
,
202
,
98
,
102
,
103
,
100
,
222
,
80
,
108
,
119
,
200
,
176
,
166
,
250
,
63
,
6
,
193
,
89
,
110
,
135
,
132
,
48
,
166
,
158
,
87
,
223
,
2
,
24
,
135
,
195
,
62
,
190
,
172
,
188
,
246
,
24
,
22
,
121
,
242
,
26
,
156
,
250
,
151
,
90
,
174
,
190
,
204
,
241
,
202
,
93
,
146
,
117
,
109
,
38
,
146
,
67
,
219
,
201
,
36
,
220
,
89
,
34
,
254
,
138
,
65
,
149
,
201
,
59
,
20
,
30
,
200
,
194
,
90
,
69
,
215
,
52
,
147
,
108
,
217
,
36
,
161
,
53
,
164
,
109
,
81
,
201
,
133
,
164
,
138
,
127
,
255
,
196
,
0
,
36
,
16
,
0
,
2
,
2
,
3
,
0
,
2
,
2
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
0
,
3
,
4
,
17
,
18
,
19
,
33
,
5
,
34
,
16
,
20
,
49
,
65
,
21
,
50
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
1
,
5
,
2
,
128
,
192
,
243
,
201
,
3
,
78
,
160
,
51
,
251
,
60
,
123
,
158
,
50
,
37
,
100
,
136
,
46
,
158
,
93
,
199
,
34
,
15
,
115
,
153
,
238
,
111
,
242
,
125
,
194
,
39
,
27
,
30
,
56
,
213
,
206
,
76
,
209
,
128
,
24
,
55
,
54
,
103
,
70
,
7
,
48
,
89
,
22
,
217
,
216
,
48
,
115
,
63
,
93
,
200
,
240
,
180
,
106
,
204
,
85
,
34
,
117
,
3
,
66
,
194
,
121
,
4
,
236
,
77
,
136
,
88
,
78
,
245
,
5
,
131
,
109
,
163
,
22
,
184
,
41
,
130
,
129
,
161
,
72
,
158
,
37
,
135
,
28
,
79
,
4
,
52
,
79
,
25
,
149
,
212
,
206
,
216
,
127
,
28
,
181
,
65
,
194
,
128
,
4
,
124
,
122
,
172
,
23
,
124
,
58
,
153
,
149
,
129
,
126
,
50
,
247
,
25
,
225
,
99
,
59
,
51
,
202
,
103
,
154
,
53
,
176
,
89
,
18
,
239
,
117
,
184
,
210
,
48
,
51
,
212
,
90
,
250
,
134
,
173
,
19
,
177
,
1
,
16
,
232
,
205
,
8
,
159
,
87
,
163
,
34
,
38
,
154
,
15
,
198
,
230
,
210
,
241
,
242
,
191
,
28
,
184
,
231
,
137
,
196
,
230
,
20
,
18
,
193
,
169
,
206
,
231
,
132
,
194
,
141
,
176
,
26
,
7
,
97
,
6
,
67
,
74
,
242
,
204
,
92
,
173
,
195
,
122
,
153
,
245
,
63
,
141
,
76
,
74
,
125
,
216
,
126
,
244
,
230
,
42
,
138
,
178
,
67
,
128
,
211
,
184
,
87
,
195
,
111
,
202
,
229
,
126
,
213
,
250
,
51
,
80
,
172
,
212
,
116
,
159
,
195
,
229
,
158
,
65
,
181
,
160
,
9
,
250
,
224
,
145
,
134
,
39
,
234
,
129
,
63
,
90
,
26
,
88
,
16
,
27
,
124
,
60
,
196
,
195
,
119
,
54
,
128
,
20
,
167
,
223
,
51
,
26
,
243
,
71
,
195
,
99
,
92
,
49
,
179
,
25
,
177
,
241
,
112
,
30
,
220
,
154
,
242
,
25
,
69
,
35
,
68
,
241
,
56
,
140
,
178
,
197
,
135
,
168
,
202
,
219
,
10
,
97
,
26
,
139
,
105
,
137
,
100
,
13
,
63
,
221
,
137
,
164
,
97
,
94
,
39
,
108
,
152
,
245
,
36
,
99
,
233
,
142
,
229
,
227
,
83
,
30
,
209
,
170
,
242
,
107
,
172
,
87
,
98
,
90
,
150
,
30
,
79
,
203
,
19
,
226
,
251
,
44
,
160
,
249
,
34
,
209
,
77
,
139
,
112
,
241
,
63
,
67
,
103
,
152
,
120
,
135
,
136
,
200
,
166
,
122
,
34
,
176
,
12
,
224
,
193
,
181
,
158
,
165
,
117
,
246
,
202
,
56
,
4
,
195
,
44
,
73
,
106
,
157
,
35
,
154
,
142
,
101
,
182
,
217
,
62
,
58
,
245
,
76
,
52
,
126
,
230
,
109
,
205
,
109
,
138
,
173
,
115
,
46
,
48
,
165
,
22
,
149
,
75
,
51
,
143
,
118
,
232
,
71
,
254
,
15
,
176
,
113
,
14
,
196
,
91
,
14
,
150
,
215
,
137
,
144
,
218
,
92
,
158
,
134
,
57
,
243
,
26
,
209
,
107
,
27
,
132
,
205
,
207
,
236
,
106
,
183
,
31
,
7
,
215
,
235
,
148
,
56
,
244
,
251
,
36
,
87
,
93
,
129
,
33
,
175
,
71
,
91
,
11
,
143
,
101
,
53
,
218
,
157
,
66
,
162
,
29
,
111
,
159
,
187
,
110
,
55
,
240
,
87
,
234
,
133
,
212
,
41
,
27
,
28
,
129
,
138
,
139
,
85
,
97
,
230
,
224
,
121
,
254
,
167
,
45
,
8
,
155
,
159
,
173
,
184
,
181
,
242
,
217
,
219
,
0
,
158
,
32
,
121
,
74
,
78
,
67
,
165
,
203
,
195
,
178
,
253
,
77
,
115
,
128
,
176
,
0
,
65
,
68
,
103
,
15
,
233
,
108
,
58
,
91
,
73
,
92
,
94
,
238
,
134
,
178
,
34
,
127
,
58
,
133
,
226
,
60
,
164
,
29
,
241
,
181
,
43
,
197
,
189
,
20
,
0
,
125
,
110
,
201
,
107
,
91
,
76
,
239
,
175
,
120
,
238
,
52
,
140
,
117
,
157
,
81
,
239
,
135
,
105
,
239
,
76
,
158
,
220
,
21
,
135
,
108
,
255
,
0
,
194
,
187
,
216
,
162
,
195
,
40
,
11
,
74
,
1
,
212
,
21
,
9
,
98
,
199
,
149
,
123
,
152
,
219
,
128
,
250
,
40
,
53
,
115
,
123
,
186
,
225
,
85
,
22
,
88
,
11
,
22
,
48
,
95
,
185
,
79
,
38
,
177
,
233
,
89
,
5
,
233
,
144
,
77
,
86
,
91
,
146
,
166
,
53
,
187
,
158
,
114
,
99
,
48
,
105
,
173
,
204
,
76
,
186
,
170
,
85
,
204
,
12
,
149
,
223
,
163
,
139
,
111
,
81
,
16
,
52
,
190
,
189
,
45
,
214
,
114
,
113
,
14
,
218
,
159
,
75
,
95
,
243
,
254
,
128
,
149
,
185
,
51
,
228
,
108
,
46
,
254
,
86
,
22
,
11
,
8
,
150
,
183
,
39
,
15
,
35
,
69
,
178
,
91
,
164
,
184
,
214
,
115
,
244
,
47
,
113
,
160
,
227
,
150
,
68
,
112
,
124
,
186
,
42
,
131
,
167
,
199
,
246
,
234
,
213
,
15
,
59
,
210
,
112
,
242
,
186
,
152
,
89
,
10
,
201
,
155
,
96
,
226
,
234
,
124
,
166
,
176
,
244
,
54
,
53
,
222
,
170
,
97
,
206
,
37
,
158
,
82
,
246
,
248
,
213
,
242
,
149
,
229
,
36
,
52
,
183
,
110
,
108
,
255
,
0
,
198
,
249
,
152
,
148
,
51
,
139
,
23
,
245
,
241
,
110
,
181
,
172
,
35
,
178
,
109
,
94
,
154
,
191
,
114
,
234
,
23
,
172
,
123
,
64
,
43
,
113
,
217
,
11
,
226
,
241
,
41
,
93
,
40
,
148
,
221
,
192
,
108
,
214
,
118
,
243
,
9
,
102
,
65
,
222
,
43
,
135
,
149
,
167
,
85
,
96
,
238
,
149
,
201
,
8
,
113
,
202
,
146
,
197
,
248
,
2
,
221
,
30
,
153
,
199
,
46
,
7
,
198
,
222
,
58
,
202
,
201
,
108
,
169
,
101
,
97
,
154
,
218
,
252
,
131
,
86
,
106
,
194
,
117
,
99
,
175
,
73
,
17
,
249
,
139
,
246
,
110
,
248
,
10
,
224
,
214
,
24
,
168
,
98
,
82
,
43
,
177
,
119
,
115
,
188
,
108
,
179
,
73
,
31
,
49
,
171
,
50
,
50
,
133
,
142
,
114
,
29
,
167
,
94
,
144
,
108
,
145
,
165
,
248
,
242
,
58
,
183
,
161
,
18
,
210
,
49
,
171
,
179
,
74
,
110
,
32
,
187
,
243
,
22
,
208
,
90
,
199
,
216
,
224
,
105
,
190
,
178
,
151
,
38
,
121
,
72
,
30
,
126
,
151
,
161
,
3
,
237
,
84
,
232
,
143
,
69
,
151
,
112
,
208
,
21
,
44
,
232
,
203
,
24
,
232
,
55
,
115
,
126
,
188
,
154
,
125
,
232
,
37
,
155
,
159
,
103
,
133
,
206
,
187
,
36
,
163
,
115
,
1
,
47
,
18
,
223
,
185
,
59
,
179
,
201
,
220
,
255
,
196
,
0
,
34
,
17
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
17
,
16
,
18
,
3
,
33
,
4
,
32
,
49
,
65
,
34
,
48
,
97
,
255
,
218
,
0
,
8
,
1
,
3
,
1
,
1
,
63
,
1
,
253
,
106
,
172
,
148
,
41
,
136
,
172
,
208
,
162
,
177
,
165
,
142
,
214
,
47
,
27
,
26
,
179
,
178
,
217
,
121
,
72
,
95
,
136
,
251
,
43
,
210
,
203
,
46
,
179
,
86
,
36
,
181
,
254
,
147
,
125
,
30
,
63
,
22
,
210
,
239
,
224
,
242
,
56
,
210
,
87
,
139
,
47
,
29
,
151
,
120
,
72
,
138
,
44
,
108
,
225
,
141
,
179
,
201
,
119
,
138
,
53
,
44
,
100
,
81
,
66
,
19
,
30
,
56
,
225
,
71
,
36
,
118
,
62
,
11
,
44
,
163
,
82
,
8
,
174
,
232
,
146
,
213
,
137
,
147
,
120
,
82
,
251
,
54
,
234
,
217
,
46
,
217
,
161
,
69
,
209
,
98
,
102
,
204
,
115
,
127
,
102
,
200
,
150
,
54
,
214
,
8
,
230
,
228
,
180
,
151
,
186
,
31
,
165
,
225
,
231
,
255
,
196
,
0
,
36
,
17
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
17
,
3
,
33
,
18
,
19
,
16
,
49
,
4
,
65
,
34
,
97
,
20
,
50
,
81
,
255
,
218
,
0
,
8
,
1
,
2
,
1
,
1
,
63
,
1
,
161
,
164
,
112
,
177
,
193
,
143
,
146
,
56
,
242
,
250
,
35
,
142
,
134
,
135
,
18
,
159
,
135
,
98
,
200
,
78
,
114
,
71
,
115
,
59
,
153
,
222
,
200
,
100
,
183
,
178
,
171
,
72
,
100
,
176
,
192
,
113
,
173
,
26
,
34
,
147
,
56
,
196
,
120
,
162
,
206
,
248
,
191
,
100
,
167
,
137
,
157
,
112
,
126
,
142
,
186
,
62
,
54
,
6
,
191
,
41
,
30
,
199
,
100
,
157
,
146
,
201
,
189
,
156
,
136
,
50
,
172
,
164
,
73
,
35
,
137
,
24
,
74
,
114
,
227
,
19
,
15
,
199
,
88
,
215
,
239
,
195
,
149
,
50
,
79
,
102
,
89
,
241
,
67
,
77
,
198
,
209
,
13
,
177
,
81
,
95
,
178
,
159
,
250
,
73
,
35
,
132
,
89
,
131
,
227
,
199
,
18
,
253
,
248
,
114
,
38
,
236
,
226
,
124
,
182
,
220
,
232
,
221
,
104
,
198
,
154
,
217
,
22
,
118
,
29
,
201
,
14
,
22
,
99
,
248
,
202
,
95
,
216
,
145
,
100
,
137
,
196
,
244
,
182
,
74
,
219
,
178
,
184
,
196
,
175
,
196
,
161
,
65
,
138
,
36
,
115
,
241
,
103
,
242
,
20
,
137
,
207
,
101
,
234
,
200
,
190
,
72
,
145
,
159
,
81
,
162
,
144
,
163
,
170
,
36
,
183
,
72
,
138
,
59
,
53
,
161
,
56
,
178
,
112
,
26
,
104
,
228
,
208
,
178
,
73
,
35
,
12
,
184
,
251
,
50
,
63
,
184
,
142
,
77
,
251
,
41
,
125
,
158
,
221
,
35
,
174
,
94
,
208
,
163
,
36
,
69
,
81
,
68
,
137
,
33
,
146
,
35
,
39
,
117
,
229
,
161
,
162
,
62
,
43
,
199
,
255
,
196
,
0
,
46
,
16
,
0
,
2
,
2
,
1
,
3
,
2
,
4
,
5
,
4
,
3
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
17
,
33
,
16
,
18
,
49
,
65
,
81
,
32
,
34
,
50
,
97
,
3
,
19
,
48
,
66
,
113
,
35
,
64
,
129
,
145
,
80
,
82
,
161
,
177
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
6
,
63
,
2
,
255
,
0
,
9
,
123
,
93
,
28
,
63
,
219
,
40
,
174
,
75
,
248
,
143
,
115
,
41
,
81
,
193
,
82
,
130
,
63
,
74
,
123
,
127
,
38
,
233
,
37
,
37
,
221
,
125
,
26
,
127
,
73
,
52
,
84
,
185
,
47
,
192
,
224
,
243
,
221
,
51
,
124
,
61
,
47
,
167
,
213
,
207
,
135
,
230
,
75
,
132
,
90
,
178
,
158
,
11
,
90
,
252
,
229
,
233
,
251
,
143
,
211
,
126
,
72
,
175
,
216
,
238
,
154
,
168
,
155
,
82
,
165
,
166
,
239
,
129
,
47
,
48
,
190
,
127
,
36
,
231
,
240
,
224
,
231
,
40
,
174
,
17
,
25
,
207
,
225
,
74
,
23
,
209
,
146
,
82
,
244
,
215
,
135
,
5
,
125
,
37
,
140
,
30
,
157
,
119
,
104
,
148
,
164
,
144
,
167
,
6
,
165
,
23
,
212
,
84
,
84
,
101
,
94
,
218
,
103
,
8
,
195
,
169
,
14
,
18
,
231
,
199
,
90
,
94
,
148
,
138
,
240
,
215
,
65
,
56
,
244
,
35
,
190
,
94
,
106
,
200
,
230
,
123
,
35
,
108
,
99
,
147
,
60
,
146
,
146
,
245
,
51
,
248
,
241
,
114
,
96
,
182
,
100
,
162
,
151
,
138
,
244
,
206
,
184
,
47
,
116
,
183
,
27
,
220
,
155
,
47
,
195
,
76
,
178
,
216
,
145
,
104
,
93
,
252
,
23
,
122
,
237
,
44
,
170
,
35
,
219
,
75
,
44
,
161
,
199
,
91
,
179
,
36
,
78
,
116
,
228
,
218
,
188
,
87
,
174
,
77
,
213
,
145
,
197
,
255
,
0
,
26
,
126
,
53
,
221
,
209
,
142
,
184
,
70
,
112
,
197
,
108
,
119
,
208
,
230
,
180
,
242
,
171
,
23
,
145
,
164
,
40
,
196
,
246
,
250
,
17
,
28
,
191
,
161
,
119
,
209
,
246
,
49
,
201
,
200
,
224
,
108
,
226
,
139
,
22
,
74
,
122
,
113
,
193
,
232
,
167
,
213
,
235
,
206
,
180
,
86
,
179
,
133
,
102
,
232
,
201
,
8
,
110
,
170
,
40
,
207
,
246
,
96
,
218
,
202
,
68
,
95
,
36
,
155
,
61
,
28
,
158
,
231
,
158
,
243
,
167
,
177
,
229
,
87
,
100
,
148
,
126
,
215
,
84
,
126
,
162
,
228
,
221
,
173
,
46
,
74
,
150
,
12
,
189
,
37
,
62
,
236
,
177
,
62
,
172
,
221
,
46
,
16
,
231
,
107
,
103
,
72
,
136
,
178
,
199
,
57
,
126
,
17
,
207
,
2
,
146
,
88
,
35
,
186
,
57
,
226
,
201
,
91
,
199
,
75
,
45
,
116
,
16
,
159
,
247
,
68
,
182
,
230
,
242
,
40
,
203
,
43
,
255
,
0
,
48
,
74
,
73
,
116
,
73
,
22
,
143
,
51
,
201
,
113
,
121
,
171
,
60
,
221
,
202
,
37
,
20
,
234
,
213
,
27
,
90
,
219
,
202
,
162
,
110
,
253
,
74
,
149
,
27
,
107
,
40
,
165
,
252
,
153
,
26
,
138
,
193
,
116
,
232
,
217
,
60
,
81
,
73
,
212
,
107
,
132
,
200
,
205
,
127
,
194
,
254
,
227
,
253
,
177
,
86
,
39
,
213
,
228
,
181
,
195
,
187
,
215
,
210
,
209
,
152
,
212
,
87
,
99
,
60
,
123
,
10
,
75
,
210
,
94
,
215
,
125
,
253
,
138
,
172
,
25
,
113
,
166
,
109
,
172
,
80
,
171
,
133
,
255
,
0
,
79
,
155
,
12
,
78
,
89
,
145
,
234
,
224
,
106
,
185
,
230
,
141
,
207
,
29
,
206
,
125
,
198
,
231
,
229
,
139
,
85
,
108
,
105
,
122
,
172
,
248
,
178
,
226
,
110
,
145
,
234
,
228
,
174
,
190
,
197
,
243
,
252
,
143
,
191
,
68
,
52
,
232
,
189
,
213
,
236
,
39
,
220
,
252
,
119
,
43
,
177
,
179
,
237
,
54
,
113
,
101
,
46
,
4
,
229
,
212
,
149
,
231
,
105
,
185
,
215
,
153
,
95
,
227
,
6
,
222
,
183
,
201
,
134
,
149
,
17
,
86
,
241
,
219
,
68
,
215
,
81
,
71
,
143
,
198
,
159
,
129
,
103
,
135
,
67
,
254
,
180
,
199
,
82
,
228
,
242
,
81
,
146
,
154
,
63
,
255
,
196
,
0
,
38
,
16
,
1
,
0
,
2
,
2
,
2
,
1
,
3
,
5
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
81
,
97
,
16
,
113
,
161
,
129
,
145
,
177
,
225
,
240
,
193
,
209
,
241
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
1
,
63
,
33
,
61
,
231
,
146
,
57
,
204
,
61
,
62
,
187
,
151
,
68
,
33
,
147
,
163
,
232
,
232
,
68
,
8
,
168
,
98
,
198
,
161
,
7
,
120
,
212
,
113
,
168
,
33
,
229
,
33
,
104
,
195
,
5
,
132
,
193
,
196
,
29
,
32
,
28
,
74
,
157
,
122
,
70
,
24
,
80
,
153
,
34
,
96
,
126
,
101
,
71
,
244
,
83
,
181
,
19
,
150
,
33
,
115
,
9
,
24
,
11
,
204
,
243
,
122
,
68
,
250
,
6
,
143
,
16
,
94
,
32
,
117
,
51
,
147
,
155
,
40
,
226
,
51
,
33
,
7
,
212
,
168
,
149
,
106
,
5
,
57
,
67
,
131
,
47
,
28
,
67
,
72
,
7
,
81
,
134
,
149
,
237
,
47
,
207
,
244
,
153
,
52
,
195
,
89
,
78
,
215
,
15
,
12
,
101
,
30
,
103
,
98
,
87
,
41
,
230
,
46
,
43
,
204
,
85
,
220
,
218
,
32
,
242
,
101
,
84
,
182
,
86
,
37
,
173
,
226
,
107
,
39
,
66
,
115
,
161
,
244
,
26
,
109
,
67
,
44
,
12
,
98
,
47
,
113
,
28
,
184
,
192
,
103
,
56
,
68
,
25
,
233
,
107
,
199
,
208
,
197
,
34
,
141
,
75
,
80
,
110
,
83
,
152
,
72
,
47
,
113
,
90
,
204
,
7
,
44
,
60
,
56
,
116
,
112
,
167
,
113
,
1
,
195
,
22
,
243
,
44
,
94
,
20
,
243
,
40
,
109
,
150
,
233
,
131
,
109
,
68
,
216
,
130
,
42
,
92
,
3
,
204
,
110
,
187
,
20
,
22
,
53
,
15
,
47
,
44
,
57
,
9
,
151
,
166
,
173
,
92
,
183
,
47
,
164
,
97
,
22
,
210
,
12
,
98
,
94
,
181
,
21
,
114
,
165
,
84
,
88
,
96
,
154
,
19
,
48
,
69
,
194
,
206
,
97
,
122
,
79
,
124
,
204
,
19
,
17
,
177
,
186
,
243
,
15
,
137
,
14
,
74
,
217
,
53
,
165
,
174
,
38
,
48
,
168
,
220
,
250
,
65
,
185
,
135
,
45
,
158
,
129
,
84
,
212
,
0
,
192
,
234
,
32
,
220
,
52
,
225
,
11
,
172
,
51
,
73
,
13
,
106
,
84
,
111
,
136
,
59
,
130
,
131
,
2
,
241
,
129
,
97
,
35
,
161
,
132
,
143
,
113
,
153
,
48
,
223
,
153
,
86
,
19
,
51
,
18
,
209
,
211
,
113
,
21
,
226
,
38
,
225
,
47
,
115
,
66
,
16
,
28
,
202
,
112
,
220
,
174
,
216
,
103
,
180
,
47
,
182
,
51
,
109
,
71
,
204
,
166
,
167
,
101
,
196
,
35
,
66
,
51
,
90
,
140
,
193
,
109
,
76
,
156
,
68
,
172
,
131
,
141
,
54
,
184
,
221
,
67
,
168
,
212
,
80
,
206
,
222
,
103
,
92
,
115
,
8
,
4
,
178
,
82
,
166
,
107
,
150
,
3
,
146
,
41
,
94
,
199
,
168
,
176
,
213
,
209
,
149
,
181
,
76
,
23
,
204
,
84
,
230
,
127
,
4
,
88
,
215
,
1
,
10
,
92
,
129
,
167
,
157
,
97
,
115
,
116
,
14
,
120
,
33
,
89
,
208
,
34
,
196
,
195
,
8
,
28
,
140
,
80
,
220
,
237
,
226
,
97
,
13
,
32
,
242
,
243
,
112
,
204
,
114
,
204
,
4
,
99
,
166
,
185
,
244
,
217
,
182
,
230
,
13
,
206
,
188
,
199
,
12
,
199
,
30
,
35
,
178
,
49
,
18
,
193
,
9
,
77
,
89
,
152
,
173
,
6
,
102
,
106
,
227
,
226
,
44
,
174
,
106
,
102
,
229
,
166
,
142
,
236
,
150
,
212
,
231
,
113
,
86
,
241
,
15
,
183
,
21
,
163
,
136
,
93
,
169
,
129
,
150
,
247
,
145
,
113
,
48
,
169
,
146
,
93
,
70
,
152
,
53
,
165
,
8
,
151
,
50
,
203
,
185
,
154
,
230
,
16
,
245
,
51
,
212
,
132
,
12
,
18
,
190
,
49
,
11
,
94
,
18
,
130
,
213
,
22
,
178
,
133
,
62
,
69
,
87
,
152
,
187
,
22
,
241
,
49
,
88
,
204
,
181
,
30
,
247
,
22
,
95
,
36
,
183
,
161
,
49
,
180
,
89
,
222
,
153
,
109
,
199
,
51
,
4
,
107
,
44
,
121
,
18
,
203
,
178
,
89
,
184
,
51
,
186
,
134
,
222
,
165
,
39
,
137
,
98
,
138
,
178
,
193
,
57
,
162
,
174
,
91
,
185
,
72
,
8
,
216
,
178
,
48
,
57
,
196
,
79
,
218
,
225
,
139
,
53
,
110
,
18
,
54
,
12
,
110
,
48
,
17
,
56
,
144
,
199
,
105
,
115
,
148
,
133
,
62
,
37
,
199
,
40
,
33
,
77
,
18
,
152
,
92
,
18
,
241
,
166
,
145
,
113
,
44
,
125
,
98
,
213
,
156
,
117
,
26
,
54
,
70
,
93
,
121
,
186
,
159
,
86
,
55
,
184
,
202
,
226
,
165
,
217
,
16
,
117
,
137
,
163
,
56
,
188
,
238
,
99
,
27
,
196
,
190
,
51
,
76
,
36
,
205
,
12
,
183
,
133
,
213
,
14
,
216
,
168
,
25
,
117
,
46
,
97
,
222
,
24
,
24
,
185
,
87
,
188
,
1
,
119
,
202
,
149
,
228
,
71
,
227
,
158
,
39
,
48
,
148
,
108
,
25
,
173
,
195
,
116
,
162
,
57
,
142
,
123
,
239
,
10
,
173
,
33
,
118
,
66
,
149
,
178
,
40
,
112
,
8
,
144
,
193
,
147
,
209
,
5
,
254
,
21
,
50
,
129
,
137
,
122
,
253
,
101
,
173
,
183
,
9
,
147
,
0
,
21
,
50
,
135
,
50
,
144
,
197
,
76
,
146
,
184
,
40
,
67
,
42
,
59
,
128
,
40
,
114
,
75
,
194
,
137
,
119
,
21
,
142
,
140
,
202
,
158
,
211
,
34
,
220
,
229
,
32
,
166
,
100
,
94
,
105
,
153
,
106
,
229
,
189
,
198
,
173
,
253
,
165
,
168
,
82
,
216
,
130
,
208
,
91
,
248
,
133
,
176
,
90
,
227
,
226
,
107
,
166
,
75
,
198
,
9
,
195
,
176
,
3
,
247
,
128
,
22
,
236
,
149
,
20
,
81
,
164
,
202
,
64
,
153
,
204
,
168
,
7
,
113
,
185
,
70
,
166
,
222
,
34
,
53
,
37
,
185
,
144
,
226
,
165
,
3
,
165
,
126
,
101
,
166
,
148
,
92
,
173
,
67
,
114
,
243
,
22
,
196
,
193
,
24
,
196
,
161
,
198
,
101
,
104
,
193
,
138
,
221
,
204
,
89
,
219
,
232
,
25
,
4
,
183
,
238
,
49
,
133
,
167
,
74
,
230
,
90
,
33
,
165
,
44
,
27
,
93
,
237
,
3
,
146
,
100
,
164
,
128
,
19
,
238
,
103
,
61
,
128
,
59
,
153
,
30
,
135
,
79
,
79
,
254
,
196
,
80
,
166
,
191
,
143
,
136
,
192
,
193
,
219
,
147
,
204
,
52
,
82
,
107
,
234
,
126
,
162
,
194
,
10
,
0
,
198
,
10
,
251
,
254
,
225
,
181
,
166
,
106
,
199
,
23
,
42
,
54
,
120
,
74
,
248
,
216
,
33
,
216
,
174
,
199
,
82
,
164
,
69
,
68
,
78
,
30
,
172
,
137
,
8
,
66
,
8
,
205
,
141
,
69
,
131
,
201
,
202
,
190
,
165
,
212
,
128
,
183
,
60
,
70
,
176
,
193
,
242
,
139
,
157
,
132
,
169
,
119
,
149
,
201
,
91
,
153
,
15
,
50
,
226
,
13
,
244
,
43
,
209
,
93
,
195
,
22
,
103
,
30
,
70
,
229
,
41
,
99
,
90
,
91
,
137
,
184
,
32
,
198
,
161
,
102
,
168
,
87
,
143
,
39
,
51
,
17
,
58
,
222
,
223
,
195
,
50
,
38
,
71
,
247
,
39
,
226
,
114
,
221
,
117
,
5
,
241
,
147
,
108
,
96
,
86
,
53
,
87
,
198
,
33
,
100
,
80
,
35
,
176
,
222
,
9
,
97
,
246
,
15
,
47
,
226
,
35
,
118
,
30
,
90
,
246
,
175
,
180
,
210
,
214
,
89
,
75
,
174
,
223
,
26
,
139
,
251
,
23
,
124
,
149
,
5
,
75
,
214
,
23
,
79
,
215
,
233
,
1
,
55
,
179
,
59
,
187
,
254
,
251
,
65
,
22
,
230
,
87
,
20
,
238
,
36
,
219
,
50
,
115
,
30
,
112
,
118
,
47
,
241
,
52
,
7
,
44
,
34
,
202
,
138
,
103
,
203
,
29
,
125
,
166
,
35
,
135
,
178
,
229
,
29
,
178
,
255
,
0
,
36
,
230
,
19
,
100
,
28
,
188
,
115
,
29
,
78
,
54
,
235
,
27
,
127
,
200
,
167
,
207
,
6
,
191
,
189
,
226
,
227
,
195
,
107
,
36
,
183
,
108
,
158
,
63
,
196
,
181
,
26
,
20
,
66
,
245
,
49
,
174
,
55
,
226
,
22
,
154
,
166
,
82
,
68
,
208
,
113
,
148
,
185
,
40
,
93
,
56
,
124
,
65
,
10
,
21
,
161
,
239
,
11
,
0
,
170
,
85
,
84
,
0
,
72
,
129
,
60
,
96
,
197
,
236
,
150
,
14
,
211
,
66
,
25
,
196
,
92
,
224
,
54
,
249
,
117
,
83
,
28
,
16
,
4
,
213
,
33
,
174
,
73
,
194
,
218
,
150
,
155
,
14
,
132
,
21
,
50
,
219
,
228
,
212
,
189
,
146
,
191
,
236
,
243
,
133
,
139
,
234
,
42
,
166
,
137
,
129
,
69
,
96
,
113
,
46
,
208
,
121
,
12
,
91
,
87
,
62
,
166
,
40
,
220
,
134
,
30
,
51
,
12
,
18
,
224
,
248
,
155
,
43
,
60
,
191
,
189
,
226
,
109
,
128
,
149
,
247
,
148
,
92
,
103
,
18
,
192
,
181
,
248
,
252
,
70
,
211
,
168
,
79
,
255
,
218
,
0
,
12
,
3
,
1
,
0
,
2
,
0
,
3
,
0
,
0
,
0
,
16
,
0
,
11
,
95
,
201
,
21
,
11
,
241
,
117
,
198
,
54
,
242
,
102
,
37
,
18
,
160
,
46
,
55
,
232
,
31
,
26
,
46
,
94
,
202
,
104
,
93
,
30
,
207
,
237
,
127
,
160
,
44
,
90
,
233
,
186
,
230
,
116
,
172
,
158
,
127
,
75
,
184
,
98
,
203
,
56
,
43
,
0
,
199
,
29
,
10
,
105
,
68
,
54
,
85
,
245
,
33
,
248
,
48
,
20
,
196
,
66
,
91
,
122
,
46
,
42
,
238
,
241
,
113
,
12
,
247
,
110
,
32
,
121
,
215
,
215
,
96
,
159
,
76
,
126
,
14
,
0
,
195
,
254
,
24
,
66
,
13
,
232
,
125
,
247
,
255
,
196
,
0
,
28
,
17
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
16
,
81
,
97
,
255
,
218
,
0
,
8
,
1
,
3
,
1
,
1
,
63
,
16
,
187
,
118
,
237
,
131
,
121
,
228
,
171
,
9
,
246
,
221
,
182
,
27
,
64
,
62
,
69
,
129
,
216
,
17
,
143
,
39
,
126
,
217
,
191
,
146
,
26
,
88
,
78
,
28
,
130
,
99
,
118
,
212
,
48
,
167
,
110
,
88
,
100
,
79
,
46
,
201
,
239
,
145
,
230
,
64
,
242
,
93
,
50
,
214
,
205
,
72
,
50
,
201
,
7
,
75
,
185
,
30
,
165
,
215
,
127
,
12
,
167
,
232
,
120
,
178
,
197
,
132
,
198
,
20
,
99
,
58
,
95
,
213
,
139
,
27
,
68
,
40
,
13
,
173
,
132
,
195
,
243
,
38
,
247
,
228
,
185
,
254
,
19
,
106
,
19
,
58
,
150
,
121
,
114
,
252
,
114
,
217
,
251
,
32
,
54
,
81
,
114
,
211
,
151
,
65
,
61
,
99
,
52
,
174
,
200
,
204
,
41
,
150
,
81
,
56
,
140
,
94
,
55
,
198
,
28
,
233
,
115
,
4
,
116
,
174
,
196
,
143
,
133
,
177
,
11
,
196
,
247
,
57
,
210
,
237
,
178
,
59
,
52
,
251
,
33
,
118
,
72
,
255
,
0
,
85
,
219
,
138
,
124
,
237
,
159
,
63
,
53
,
249
,
6
,
147
,
47
,
47
,
23
,
152
,
80
,
159
,
111
,
164
,
44
,
159
,
111
,
59
,
108
,
95
,
255
,
196
,
0
,
29
,
17
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
81
,
16
,
129
,
161
,
255
,
218
,
0
,
8
,
1
,
2
,
1
,
1
,
63
,
16
,
98
,
164
,
79
,
138
,
92
,
27
,
125
,
144
,
22
,
188
,
149
,
121
,
49
,
242
,
3
,
228
,
104
,
242
,
71
,
201
,
51
,
191
,
192
,
253
,
99
,
110
,
54
,
45
,
140
,
30
,
64
,
24
,
97
,
1
,
227
,
51
,
185
,
140
,
111
,
81
,
126
,
20
,
135
,
36
,
52
,
103
,
200
,
184
,
137
,
29
,
234
,
202
,
193
,
177
,
63
,
204
,
186
,
182
,
65
,
176
,
231
,
228
,
202
,
131
,
222
,
73
,
236
,
129
,
172
,
124
,
172
,
79
,
32
,
122
,
70
,
189
,
88
,
248
,
247
,
245
,
62
,
67
,
219
,
200
,
254
,
161
,
213
,
251
,
228
,
200
,
37
,
195
,
116
,
180
,
230
,
222
,
242
,
20
,
41
,
230
,
218
,
255
,
0
,
54
,
212
,
103
,
95
,
101
,
44
,
161
,
225
,
176
,
118
,
211
,
159
,
39
,
166
,
188
,
134
,
211
,
237
,
244
,
91
,
7
,
78
,
216
,
186
,
95
,
20
,
134
,
142
,
19
,
14
,
31
,
199
,
71
,
45
,
58
,
123
,
46
,
138
,
224
,
75
,
125
,
214
,
10
,
103
,
108
,
7
,
35
,
120
,
5
,
201
,
200
,
51
,
177
,
240
,
32
,
220
,
227
,
252
,
91
,
28
,
238
,
17
,
84
,
9
,
113
,
29
,
109
,
156
,
62
,
91
,
40
,
96
,
174
,
86
,
188
,
34
,
54
,
235
,
165
,
224
,
64
,
144
,
255
,
0
,
178
,
193
,
204
,
177
,
103
,
135
,
179
,
157
,
33
,
204
,
71
,
193
,
61
,
79
,
37
,
149
,
58
,
89
,
75
,
236
,
171
,
18
,
207
,
166
,
195
,
144
,
196
,
200
,
114
,
96
,
79
,
32
,
57
,
100
,
64
,
64
,
48
,
1
,
128
,
235
,
99
,
22
,
243
,
203
,
255
,
196
,
0
,
37
,
16
,
1
,
0
,
3
,
0
,
2
,
2
,
2
,
2
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
81
,
97
,
113
,
129
,
145
,
161
,
177
,
193
,
240
,
209
,
241
,
16
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
1
,
63
,
16
,
168
,
15
,
41
,
81
,
118
,
184
,
149
,
10
,
48
,
123
,
138
,
188
,
228
,
56
,
160
,
52
,
236
,
194
,
39
,
42
,
152
,
197
,
218
,
83
,
221
,
146
,
184
,
86
,
109
,
18
,
90
,
84
,
183
,
141
,
64
,
119
,
103
,
238
,
50
,
240
,
228
,
187
,
2
,
75
,
139
,
156
,
148
,
37
,
47
,
16
,
143
,
57
,
30
,
2
,
40
,
160
,
113
,
45
,
237
,
212
,
106
,
203
,
156
,
77
,
129
,
99
,
185
,
203
,
92
,
43
,
156
,
239
,
145
,
101
,
182
,
74
,
178
,
228
,
169
,
169
,
18
,
46
,
174
,
16
,
40
,
155
,
117
,
140
,
90
,
48
,
80
,
3
,
46
,
211
,
172
,
174
,
106
,
27
,
134
,
52
,
142
,
52
,
74
,
106
,
169
,
97
,
26
,
200
,
15
,
72
,
95
,
130
,
19
,
190
,
32
,
244
,
37
,
67
,
89
,
74
,
101
,
167
,
148
,
227
,
34
,
143
,
9
,
168
,
43
,
198
,
65
,
24
,
25
,
214
,
18
,
230
,
11
,
20
,
64
,
113
,
83
,
17
,
42
,
98
,
84
,
86
,
139
,
114
,
24
,
114
,
224
,
88
,
134
,
74
,
14
,
145
,
168
,
90
,
218
,
225
,
31
,
131
,
123
,
194
,
125
,
159
,
44
,
162
,
77
,
107
,
204
,
187
,
91
,
215
,
83
,
204
,
129
,
11
,
247
,
132
,
114
,
212
,
180
,
168
,
31
,
120
,
142
,
197
,
133
,
203
,
80
,
173
,
44
,
224
,
38
,
137
,
104
,
84
,
79
,
230
,
90
,
1
,
185
,
102
,
83
,
204
,
168
,
12
,
10
,
63
,
178
,
58
,
54
,
119
,
137
,
193
,
97
,
134
,
42
,
9
,
118
,
74
,
172
,
106
,
92
,
254
,
113
,
81
,
210
,
171
,
167
,
187
,
231
,
127
,
21
,
0
,
167
,
134
,
249
,
130
,
21
,
112
,
50
,
130
,
206
,
161
,
187
,
194
,
128
,
127
,
80
,
205
,
243
,
38
,
191
,
94
,
178
,
44
,
219
,
98
,
66
,
176
,
66
,
47
,
197
,
197
,
64
,
243
,
41
,
135
,
152
,
83
,
23
,
45
,
192
,
217
,
43
,
185
,
3
,
76
,
60
,
244
,
70
,
199
,
131
,
168
,
29
,
43
,
81
,
171
,
81
,
106
,
177
,
29
,
160
,
95
,
204
,
254
,
248
,
206
,
58
,
40
,
117
,
224
,
156
,
48
,
96
,
110
,
6
,
171
,
61
,
194
,
0
,
138
,
27
,
230
,
94
,
64
,
60
,
67
,
96
,
106
,
22
,
137
,
139
,
114
,
85
,
6
,
169
,
228
,
246
,
74
,
136
,
90
,
210
,
135
,
218
,
63
,
7
,
212
,
51
,
180
,
11
,
74
,
102
,
185
,
100
,
218
,
33
,
2
,
158
,
225
,
119
,
244
,
64
,
46
,
133
,
29
,
127
,
243
,
83
,
10
,
249
,
99
,
85
,
175
,
137
,
112
,
66
,
217
,
139
,
215
,
169
,
184
,
47
,
212
,
113
,
192
,
119
,
15
,
131
,
0
,
110
,
215
,
20
,
23
,
67
,
47
,
198
,
84
,
208
,
40
,
2
,
37
,
222
,
188
,
32
,
130
,
173
,
131
,
67
,
249
,
137
,
42
,
208
,
243
,
203
,
205
,
252
,
70
,
255
,
0
,
4
,
215
,
254
,
57
,
130
,
217
,
209
,
205
,
87
,
205
,
117
,
124
,
192
,
80
,
6
,
55
,
188
,
224
,
150
,
96
,
99
,
117
,
18
,
18
,
31
,
88
,
64
,
151
,
73
,
84
,
51
,
170
,
142
,
218
,
217
,
79
,
90
,
62
,
160
,
245
,
211
,
228
,
130
,
14
,
76
,
58
,
159
,
88
,
11
,
125
,
185
,
2
,
73
,
177
,
42
,
163
,
230
,
5
,
200
,
57
,
156
,
75
,
111
,
117
,
48
,
102
,
246
,
16
,
17
,
243
,
216
,
184
,
120
,
80
,
58
,
33
,
19
,
207
,
203
,
16
,
219
,
45
,
129
,
142
,
109
,
106
,
185
,
149
,
197
,
210
,
199
,
21
,
119
,
8
,
24
,
218
,
108
,
213
,
127
,
80
,
70
,
47
,
161
,
41
,
249
,
107
,
60
,
196
,
2
,
101
,
209
,
83
,
22
,
181
,
120
,
35
,
10
,
187
,
21
,
173
,
246
,
75
,
253
,
159
,
164
,
243
,
21
,
84
,
178
,
225
,
2
,
3
,
5
,
65
,
111
,
113
,
176
,
220
,
93
,
35
,
32
,
197
,
5
,
242
,
69
,
154
,
41
,
114
,
29
,
239
,
217
,
238
,
121
,
224
,
166
,
4
,
23
,
142
,
65
,
189
,
163
,
170
,
20
,
120
,
16
,
57
,
31
,
185
,
99
,
2
,
92
,
244
,
30
,
73
,
88
,
20
,
38
,
222
,
90
,
12
,
140
,
217
,
91
,
98
,
85
,
103
,
95
,
36
,
19
,
165
,
20
,
211
,
78
,
140
,
173
,
234
,
112
,
112
,
119
,
209
,
212
,
97
,
232
,
160
,
236
,
185
,
114
,
43
,
235
,
35
,
218
,
129
,
160
,
208
,
46
,
53
,
232
,
35
,
122
,
34
,
174
,
233
,
153
,
116
,
115
,
47
,
166
,
214
,
31
,
117
,
46
,
130
,
89
,
9
,
175
,
111
,
168
,
228
,
91
,
30
,
217
,
205
,
60
,
202
,
26
,
236
,
121
,
149
,
41
,
190
,
79
,
152
,
133
,
138
,
71
,
76
,
74
,
92
,
151
,
60
,
50
,
141
,
8
,
119
,
194
,
32
,
181
,
189
,
87
,
152
,
2
,
214
,
32
,
56
,
164
,
201
,
11
,
212
,
70
,
229
,
6
,
181
,
212
,
69
,
148
,
231
,
37
,
6
,
198
,
198
,
67
,
93
,
153
,
84
,
85
,
111
,
137
,
156
,
199
,
210
,
114
,
158
,
237
,
211
,
8
,
192
,
28
,
132
,
63
,
115
,
93
,
61
,
33
,
158
,
32
,
35
,
186
,
94
,
96
,
28
,
2
,
4
,
15
,
34
,
48
,
228
,
174
,
143
,
48
,
69
,
48
,
126
,
229
,
232
,
42
,
134
,
199
,
186
,
165
,
240
,
75
,
91
,
224
,
158
,
37
,
2
,
2
,
63
,
185
,
119
,
178
,
244
,
62
,
101
,
68
,
140
,
151
,
113
,
117
,
111
,
146
,
9
,
77
,
159
,
135
,
153
,
76
,
110
,
198
,
67
,
42
,
31
,
19
,
184
,
244
,
39
,
155
,
54
,
49
,
175
,
130
,
201
,
88
,
80
,
133
,
167
,
136
,
85
,
22
,
241
,
46
,
96
,
114
,
81
,
13
,
106
,
41
,
210
,
177
,
13
,
182
,
232
,
71
,
69
,
143
,
22
,
0
,
224
,
176
,
179
,
137
,
178
,
162
,
12
,
220
,
186
,
191
,
81
,
118
,
133
,
20
,
84
,
27
,
207
,
52
,
182
,
36
,
60
,
96
,
44
,
26
,
160
,
112
,
64
,
36
,
90
,
211
,
143
,
81
,
238
,
149
,
87
,
7
,
153
,
171
,
6
,
21
,
55
,
17
,
230
,
241
,
26
,
150
,
111
,
126
,
32
,
16
,
42
,
30
,
72
,
109
,
16
,
35
,
103
,
117
,
94
,
94
,
98
,
11
,
106
,
220
,
245
,
4
,
101
,
64
,
3
,
204
,
191
,
32
,
121
,
20
,
134
,
64
,
186
,
148
,
109
,
217
,
233
,
238
,
52
,
20
,
50
,
170
,
31
,
40
,
49
,
111
,
234
,
95
,
154
,
147
,
92
,
122
,
141
,
1
,
171
,
74
,
205
,
1
,
121
,
47
,
82
,
158
,
92
,
129
,
238
,
0
,
0
,
84
,
198
,
55
,
12
,
240
,
233
,
150
,
17
,
104
,
110
,
177
,
185
,
64
,
14
,
248
,
148
,
16
,
188
,
83
,
203
,
24
,
96
,
144
,
250
,
57
,
8
,
134
,
207
,
241
,
247
,
5
,
5
,
151
,
229
,
40
,
83
,
92
,
2
,
227
,
205
,
57
,
27
,
104
,
191
,
48
,
177
,
46
,
135
,
200
,
242
,
203
,
32
,
117
,
75
,
231
,
238
,
49
,
31
,
248
,
71
,
192
,
253
,
227
,
193
,
115
,
136
,
149
,
108
,
10
,
106
,
61
,
5
,
10
,
45
,
128
,
23
,
78
,
71
,
215
,
26
,
221
,
143
,
215
,
161
,
197
,
81
,
59
,
48
,
81
,
228
,
224
,
132
,
160
,
185
,
124
,
24
,
96
,
123
,
207
,
62
,
216
,
77
,
104
,
104
,
94
,
107
,
25
,
21
,
90
,
111
,
163
,
48
,
255
,
0
,
119
,
42
,
161
,
224
,
33
,
218
,
176
,
169
,
233
,
158
,
50
,
85
,
59
,
8
,
165
,
91
,
30
,
89
,
146
,
150
,
16
,
108
,
241
,
156
,
74
,
148
,
35
,
124
,
113
,
222
,
162
,
123
,
216
,
63
,
71
,
19
,
82
,
14
,
147
,
130
,
185
,
148
,
96
,
50
,
22
,
165
,
213
,
254
,
226
,
117
,
2
,
78
,
222
,
203
,
177
,
184
,
252
,
115
,
122
,
174
,
203
,
12
,
34
,
234
,
171
,
243
,
9
,
114
,
168
,
96
,
149
,
224
,
203
,
243
,
16
,
195
,
182
,
108
,
114
,
92
,
85
,
238
,
194
,
216
,
177
,
195
,
71
,
190
,
6
,
11
,
248
,
253
,
192
,
69
,
1
,
203
,
232
,
133
,
60
,
84
,
151
,
233
,
144
,
237
,
91
,
6
,
176
,
247
,
18
,
210
,
2
,
252
,
122
,
249
,
137
,
140
,
61
,
72
,
203
,
65
,
45
,
43
,
91
,
43
,
132
,
46
,
144
,
120
,
128
,
49
,
12
,
39
,
82
,
182
,
88
,
211
,
126
,
184
,
252
,
164
,
122
,
156
,
144
,
15
,
164
,
100
,
96
,
21
,
5
,
212
,
243
,
55
,
137
,
83
,
134
,
18
,
244
,
133
,
192
,
61
,
64
,
42
,
133
,
114
,
45
,
134
,
11
,
243
,
103
,
231
,
238
,
51
,
182
,
5
,
6
,
130
,
214
,
103
,
191
,
196
,
64
,
237
,
58
,
122
,
22
,
253
,
93
,
149
,
246
,
248
,
158
,
75
,
67
,
19
,
1
,
119
,
178
,
145
,
179
,
54
,
89
,
81
,
52
,
104
,
85
,
220
,
61
,
77
,
175
,
124
,
190
,
224
,
121
,
250
,
146
,
107
,
219
,
175
,
93
,
203
,
166
,
171
,
117
,
200
,
195
,
213
,
129
,
54
,
178
,
13
,
219
,
22
,
126
,
33
,
158
,
42
,
64
,
112
,
91
,
39
,
27
,
132
,
119
,
224
,
148
,
52
,
228
,
7
,
209
,
190
,
35
,
211
,
68
,
199
,
42
,
247
,
115
,
143
,
196
,
3
,
205
,
244
,
94
,
104
,
113
,
85
,
171
,
0
,
89
,
69
,
0
,
40
,
158
,
201
,
99
,
0
,
26
,
43
,
166
,
106
,
122
,
249
,
238
,
80
,
201
,
40
,
53
,
76
,
35
,
181
,
130
,
137
,
191
,
74
,
94
,
123
,
143
,
128
,
205
,
72
,
187
,
13
,
190
,
170
,
47
,
56
,
232
,
106
,
181
,
223
,
2
,
86
,
241
,
196
,
64
,
119
,
144
,
86
,
45
,
175
,
121
,
81
,
74
,
162
,
77
,
222
,
173
,
254
,
18
,
50
,
60
,
250
,
184
,
197
,
141
,
252
,
1
,
62
,
101
,
48
,
153
,
5
,
245
,
11
,
227
,
139
,
31
,
200
,
25
,
81
,
20
,
65
,
79
,
224
,
216
,
183
,
126
,
235
,
136
,
24
,
165
,
184
,
29
,
37
,
143
,
92
,
2
,
178
,
185
,
128
,
184
,
4
,
182
,
98
,
219
,
219
,
221
,
94
,
185
,
201
,
64
,
98
,
9
,
155
,
19
,
128
,
228
,
47
,
247
,
76
,
87
,
122
,
164
,
228
,
35
,
123
,
94
,
255
,
0
,
184
,
224
,
185
,
138
,
149
,
191
,
251
,
251
,
140
,
76
,
177
,
109
,
21
,
195
,
94
,
171
,
235
,
38
,
181
,
167
,
134
,
171
,
247
,
45
,
251
,
41
,
212
,
128
,
253
,
78
,
19
,
195
,
145
,
17
,
188
,
134
,
241
,
31
,
105
,
49
,
68
,
142
,
1
,
229
,
95
,
227
,
196
,
174
,
129
,
10
,
50
,
216
,
189
,
105
,
89
,
238
,
52
,
221
,
80
,
235
,
233
,
221
,
85
,
125
,
205
,
228
,
218
,
53
,
125
,
232
,
16
,
14
,
75
,
105
,
180
,
246
,
191
,
238
,
227
,
236
,
218
,
148
,
59
,
92
,
255
,
0
,
184
,
151
,
109
,
51
,
31
,
107
,
246
,
253
,
67
,
120
,
192
,
130
,
158
,
22
,
174
,
129
,
92
,
154
,
139
,
77
,
45
,
77
,
1
,
240
,
143
,
203
,
17
,
1
,
175
,
16
,
124
,
133
,
83
,
238
,
4
,
238
,
18
,
212
,
4
,
118
,
251
,
137
,
203
,
14
,
171
,
86
,
161
,
71
,
213
,
30
,
111
,
196
,
187
,
10
,
181
,
94
,
76
,
255
,
0
,
47
,
77
,
121
,
137
,
81
,
155
,
87
,
179
,
206
,
71
,
202
,
59
,
57
,
157
,
79
,
60
,
93
,
215
,
252
,
171
,
137
,
5
,
21
,
149
,
16
,
166
,
152
,
243
,
126
,
105
,
189
,
89
,
184
,
186
,
192
,
22
,
12
,
166
,
130
,
185
,
245
,
232
,
129
,
213
,
64
,
242
,
130
,
128
,
221
,
186
,
216
,
250
,
209
,
194
,
60
,
6
,
75
,
188
,
62
,
7
,
171
,
91
,
224
,
247
,
173
,
169
,
129
,
32
,
6
,
140
,
206
,
177
,
224
,
57
,
186
,
192
,
228
,
73
,
173
,
9
,
104
,
59
,
56
,
175
,
99
,
206
,
195
,
106
,
212
,
101
,
162
,
55
,
163
,
27
,
250
,
94
,
228
,
167
,
247
,
101
,
192
,
180
,
175
,
214
,
25
,
14
,
189
,
179
,
105
,
176
,
64
,
3
,
180
,
3
,
227
,
113
,
142
,
178
,
12
,
42
,
186
,
93
,
103
,
20
,
241
,
21
,
171
,
35
,
178
,
160
,
0
,
28
,
247
,
127
,
221
,
75
,
39
,
218
,
220
,
175
,
55
,
99
,
250
,
236
,
151
,
44
,
5
,
233
,
109
,
18
,
86
,
43
,
105
,
191
,
246
,
26
,
242
,
1
,
89
,
113
,
92
,
80
,
229
,
102
,
92
,
165
,
198
,
91
,
59
,
165
,
31
,
207
,
252
,
139
,
89
,
112
,
36
,
66
,
219
,
202
,
183
,
143
,
168
,
94
,
47
,
176
,
0
,
160
,
136
,
22
,
149
,
154
,
227
,
54
,
224
,
209
,
178
,
235
,
88
,
45
,
13
,
127
,
234
,
216
,
131
,
8
,
65
,
134
,
190
,
2
,
232
,
104
,
174
,
119
,
122
,
156
,
248
,
30
,
107
,
16
,
180
,
242
,
107
,
124
,
225
,
223
,
4
,
0
,
209
,
26
,
247
,
93
,
243
,
182
,
239
,
7
,
218
,
59
,
30
,
138
,
84
,
41
,
30
,
141
,
77
,
255
,
0
,
177
,
26
,
211
,
119
,
82
,
155
,
229
,
27
,
176
,
227
,
191
,
204
,
37
,
128
,
0
,
29
,
96
,
212
,
60
,
116
,
129
,
39
,
110
,
108
,
47
,
230
,
102
,
236
,
112
,
178
,
181
,
222
,
159
,
223
,
113
,
237
,
178
,
158
,
142
,
236
,
222
,
110
,
98
,
138
,
212
,
222
,
237
,
243
,
198
,
100
,
118
,
5
,
86
,
88
,
1
,
162
,
171
,
226
,
108
,
182
,
90
,
69
,
22
,
214
,
199
,
201
,
71
,
153
,
191
,
170
,
54
,
26
,
21
,
43
,
174
,
155
,
178
,
253
,
192
,
33
,
200
,
10
,
0
,
66
,
138
,
186
,
110
,
139
,
173
,
30
,
136
,
193
,
176
,
222
,
214
,
237
,
32
,
165
,
213
,
237
,
110
,
252
,
74
,
3
,
227
,
102
,
43
,
85
,
207
,
61
,
65
,
224
,
84
,
178
,
176
,
43
,
85
,
71
,
113
,
44
,
1
,
192
,
30
,
151
,
248
,
139
,
22
,
111
,
83
,
129
,
106
,
231
,
167
,
243
,
59
,
201
,
32
,
171
,
247
,
246
,
126
,
137
,
92
,
71
,
131
,
127
,
123
,
26
,
197
,
76
,
56
,
28
,
58
,
59
,
229
,
134
,
1
,
106
,
39
,
179
,
195
,
215
,
44
,
215
,
211
,
74
,
217
,
217
,
254
,
246
,
202
,
198
,
182
,
182
,
168
,
28
,
103
,
204
,
190
,
32
,
52
,
105
,
201
,
66
,
222
,
243
,
141
,
249
,
151
,
64
,
21
,
155
,
165
,
71
,
63
,
67
,
4
,
30
,
225
,
197
,
148
,
117
,
0
,
157
,
45
,
138
,
162
,
146
,
158
,
25
,
207
,
60
,
202
,
196
,
55
,
200
,
8
,
156
,
122
,
227
,
241
,
63
,
255
,
217
])
export
default
{
testPng
,
testJpg
}
\ No newline at end of file
export
{
testPng
,
testJpg
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录