未验证 提交 683018fc 编写于 作者: O openharmony_ci 提交者: Gitee

!2201 Update xts test cases in image.

Merge pull request !2201 from wangxiaokai/master
......@@ -13,4 +13,4 @@
* limitations under the License.
*/
require('./Image.test.js')
\ No newline at end of file
require('./image.test.js')
\ No newline at end of file
......@@ -15,6 +15,7 @@
import image from '@ohos.multimedia.image'
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
import { testPng, testJpg } from './testImg'
describe('Image', function () {
......@@ -35,21 +36,20 @@ describe('Image', function () {
console.info('afterAll case');
})
/* *
* @tc.number : TC_001
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.using color,colorlength,offsetwidth and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_001', 0, async function (done) {
const Color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 2, width: 3 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 2, width: 3 } }
image.createPixelMap(Color, opts)
.then( pixelmap => {
expect(pixelmap !== null).assertTrue();
......@@ -63,21 +63,20 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-1
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-1
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.using color,colorlength, offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_001-1', 0, async function (done) {
const Color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 2, width: 3 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 2, width: 3 } }
image.createPixelMap(Color, opts, pixelmap => {
expect(pixelmap !== null).assertTrue();
console.info('TC_001-1 success');
......@@ -90,18 +89,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-2
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-2
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength, offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_001-2', 0, async function (done) {
const Color = new ArrayBuffer(96);
let opts = { alphaType: 1, editable: true, pixelFormat: 0, scaleMode: 2, size: { height: 2, width: 3 } }
......@@ -117,21 +115,20 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-3
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-3
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength,offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_001-3', 0, async function (done) {
const Color = new ArrayBuffer(96);
let opts = { alphaType: 2, editable: true, pixelFormat: 1, scaleMode: 1, size: { height: 2, width: 3 } }
let opts = { alphaType: 2, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 2, width: 3 } }
image.createPixelMap(Color, opts, pixelmap => {
expect(pixelmap !== null).assertTrue();
console.info('TC_001-3 success');
......@@ -144,19 +141,18 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-4
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_001-4', 0, async function (done) {
/**
* @tc.number : TC_001-4
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength,offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_001-4', 0, async function (done) {
const Color = new ArrayBuffer(96);
let opts = { alphaType: 3, editable: false, pixelFormat: 2, scaleMode: 2, size: { height: 2, width: 3 } }
image.createPixelMap(Color, opts, pixelmap => {
......@@ -171,18 +167,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-5
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-5
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength,offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_001-5', 0, async function (done) {
const Color = new ArrayBuffer(96);
let opts = { alphaType: 3, editable: true, pixelFormat: 2, scaleMode: 1, size: { height: -1, width: -1 } }
......@@ -190,26 +185,24 @@ describe('Image', function () {
expect(pixelmap !== null).assertTrue();
console.info('TC_001-5 success');
done();
})
.catch(error => {
console.log('TC_001-5 error: ' + error);
}).catch(error => {
console.log('TC_001-4 error: ' + error);
expect().assertFail();
done();
})
})
/* *
* @tc.number : TC_020
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.创建PixelMap,buffer
* 2.调用readPixelsToBuffer读取pixels
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_020
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.create PixelMap,buffer
* 2.call readPixelsToBuffer
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_020', 0, async function (done) {
console.info('TC_020 in');
const color = new ArrayBuffer(96);
......@@ -218,7 +211,7 @@ describe('Image', function () {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( pixelmap => {
console.info('TC_020 createPixelMap in');
......@@ -229,7 +222,7 @@ describe('Image', function () {
}
const readBuffer = new ArrayBuffer(96);
pixelmap.readPixelsToBuffer(readBuffer).then (() => {
pixelmap.readPixelsToBuffer(readBuffer).then(() => {
var bufferArr = new Uint8Array(readBuffer);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
......@@ -257,18 +250,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_020-1
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.创建PixelMap,buffer
* 2.调用readPixelsToBuffer读取pixels
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_020-1
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.create PixelMap,buffer
* 2.call readPixelsToBuffer
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_020-1', 0, async function (done) {
console.info('TC_020-1 in');
const color = new ArrayBuffer(96);
......@@ -277,7 +269,7 @@ describe('Image', function () {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (pixelmap) => {
console.info('TC_020-1 createPixelMap in');
expect(pixelmap !== null).assertTrue();
......@@ -313,18 +305,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_020-2
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.创建PixelMap,buffer
* 2.调用readPixelsToBuffer读取pixels
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_020-2
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.create PixelMap,buffer
* 2.call readPixelsToBuffer
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_020-2', 0, async function (done) {
console.info('TC_020-2 in');
const color = new ArrayBuffer(96);
......@@ -333,7 +324,7 @@ describe('Image', function () {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 2, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts, (pixelmap) => {
console.info('TC_020-2 createPixelMap in');
expect(pixelmap !== null).assertTrue();
......@@ -368,25 +359,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_021', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
......@@ -430,25 +420,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-1
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-1
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_021-1', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_021-1 success');
......@@ -457,25 +446,30 @@ describe('Image', function () {
const area = { pixels: new ArrayBuffer(20),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
}
pixelmap.readPixels(area,() => {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-1 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-1 Success');
expect(true).assertTrue();
done();
break;
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }}
pixelmap.readPixels(area,(data) => {
if(data !== null) {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-1 buffer ' + bufferArr[i]);
if(res) {
if(bufferArr[i] == 0) {
res = false;
console.info('TC_021-1 Success');
expect(true).assertTrue();
done();
break;
}
}
}
}
if (res) {
console.info('TC_021-1 buffer is all empty');
if (res) {
console.info('TC_021-1 buffer is all empty');
expect(false).assertTrue()
done();
}
} else {
console.info('TC_021-1 fail');
expect(false).assertTrue()
done();
}
......@@ -487,25 +481,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-2
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-2
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_021-2', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_021-2 success');
......@@ -514,27 +507,28 @@ describe('Image', function () {
const area = { pixels: new ArrayBuffer(20),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: -1, y: 0 }
}
pixelmap.readPixels(area,() => {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-2 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-2 Success');
expect(true).assertTrue();
done();
break;
region: { size: { height: 1, width: 2 }, x: -1, y: 0 }}
pixelmap.readPixels(area,(data) => {
if(data !== null){
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-2 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-2 Success');
expect(true).assertTrue();
done();
break;
}
}
}
}
if (res) {
console.info('TC_021-2 buffer is all empty');
expect(false).assertTrue()
done();
if (res) {
console.info('TC_021-2 buffer is all empty');
expect(false).assertTrue()
done();
}
}
})
.catch(error => {
......@@ -544,25 +538,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-3
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-3
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_021-3', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_021-3 success');
......@@ -571,27 +564,28 @@ describe('Image', function () {
const area = { pixels: new ArrayBuffer(0),
offset: 0,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
}
pixelmap.readPixels(area,() => {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-3 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-3 Success');
expect(true).assertTrue();
done();
break;
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }}
pixelmap.readPixels(area,(data) => {
if(data !== null){
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-3 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-3 Success');
expect(true).assertTrue();
done();
break;
}
}
}
}
if (res) {
console.info('TC_021-3 buffer is all empty');
expect(false).assertTrue()
done();
if (res) {
console.info('TC_021-3 buffer is all empty');
expect(false).assertTrue()
done();
}
}
})
.catch(error => {
......@@ -601,25 +595,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-4
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-4
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_021-4', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_021-4 success');
......@@ -628,27 +621,28 @@ describe('Image', function () {
const area = { pixels: new ArrayBuffer(20),
offset: 21,
stride: 8,
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }
}
pixelmap.readPixels(area,() => {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-4 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-4 Success');
expect(true).assertTrue();
done();
break;
region: { size: { height: 1, width: 2 }, x: 0, y: 0 }}
pixelmap.readPixels(area,(data) => {
if(data !== null){
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-4 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-4 Success');
expect(true).assertTrue();
done();
break;
}
}
}
}
if (res) {
console.info('TC_021-4 buffer is all empty');
expect(false).assertTrue()
done();
if (res) {
console.info('TC_021-4 buffer is all empty');
expect(false).assertTrue()
done();
}
}
})
.catch(error => {
......@@ -658,25 +652,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-5
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-5
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_021-5', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i + 1;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_021-5 success');
......@@ -685,27 +678,28 @@ describe('Image', function () {
const area = { pixels: new ArrayBuffer(20),
offset: 0,
stride: 8,
region: { size: { height: -1, width:-1}, x: 0, y: 0 }
}
pixelmap.readPixels(area,() => {
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-5 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-5 Success');
expect(true).assertTrue();
done();
break;
region: { size: { height: -1, width:-1}, x: 0, y: 0 }}
pixelmap.readPixels(area,(data) => {
if(data !== null){
var bufferArr = new Uint8Array(area.pixels);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
console.info('TC_021-5 buffer ' + bufferArr[i]);
if(res) {
if (bufferArr[i] == 0) {
res = false;
console.info('TC_021-5 Success');
expect(true).assertTrue();
done();
break;
}
}
}
}
if (res) {
console.info('TC_021-5 buffer is all empty');
expect(false).assertTrue()
done();
if (res) {
console.info('TC_021-5 buffer is all empty');
expect(false).assertTrue()
done();
}
}
})
.catch(error => {
......@@ -713,23 +707,22 @@ describe('Image', function () {
expect().assertFail();
done();
})
})
})
/* *
* @tc.number : TC_022
* @tc.name : write Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用writePixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_022
* @tc.name : write Pixels
* @tc.desc : 1.create PixelMap
* 2.call writePixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_022', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
......@@ -784,21 +777,20 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_022-1
* @tc.name : write Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用writePixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_022-1
* @tc.name : write Pixels
* @tc.desc : 1.create PixelMap
* 2.call writePixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_022-1', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_022-1 success');
......@@ -847,25 +839,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_023
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.创建PixelMap,buffer
* 2.调用writeBufferToPixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_023
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.create PixelMap,buffer
* 2.call writeBufferToPixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_023', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 }}
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 }}
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
......@@ -877,7 +868,7 @@ describe('Image', function () {
const writeColor = new ArrayBuffer(96);
pixelmap.writeBufferToPixels(writeColor).then(() => {
const readBuffer = new ArrayBuffer(96);
pixelmap.readPixelsToBuffer(readBuffer).then (() => {
pixelmap.readPixelsToBuffer(readBuffer).then(() => {
var bufferArr = new Uint8Array(readBuffer);
var res = true;
for (var i = 0; i < bufferArr.length; i++) {
......@@ -906,25 +897,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_023-1
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.创建PixelMap,buffer
* 2.调用writeBufferToPixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_023-1
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.create PixelMap,buffer
* 2.call writeBufferToPixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_023-1', 0, async function (done) {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = i;
}
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_023-1 success');
......@@ -959,23 +949,22 @@ describe('Image', function () {
expect().assertFail();
done();
})
})
/* *
* @tc.number : TC_024
* @tc.name : get Image In fo
* @tc.desc : 1.创建PixelMap,ImageInfo
* 2.调用getImageInfo
* 3.主动调用返回imageinfo
* 4.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_024
* @tc.name : get Image In fo
* @tc.desc : 1.create PixelMap,ImageInfo
* 2.call getImageInfo
* 3.call return imageinfo
* 4.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_024', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 2, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
......@@ -988,7 +977,7 @@ describe('Image', function () {
console.info('TC_024 imageInfo is ready');
expect(imageInfo.size.height == 4).assertTrue();
expect(imageInfo.size.width == 6).assertTrue();
expect(imageInfo.pixelFormat == 4).assertTrue();
expect(imageInfo.pixelFormat == 2).assertTrue();
done();
} else {
console.info('TC_024 imageInfo is empty');
......@@ -1003,22 +992,21 @@ describe('Image', function () {
done();
})
})
/* *
* @tc.number : TC_024-1
* @tc.name : get Image In fo
* @tc.desc : 1.创建PixelMap,ImageInfo
* 2.调用getImageInfo
* 3.主动调用返回imageinfo
* 4.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_024-1
* @tc.name : get Image In fo
* @tc.desc : 1.create PixelMap,ImageInfo
* 2.call getImageInfo
* 3.call return imageinfo
* 4.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_024-1', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
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_024-1 success');
......@@ -1043,60 +1031,22 @@ describe('Image', function () {
done();
})
})
/* *
* @tc.number : TC_025
* @tc.name : get Bytes Number PerRow
* @tc.desc : 1.创建PixelMap
* 2.写入PixelMap
* 3.调用getBytesNumberPerRow
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_025', 0, async function (done) {
/**
* @tc.number : TC_025-1
* @tc.name : get Bytes Number PerRow
* @tc.desc : 1.create PixelMap
* 2.set PixelMap
* 3.call getBytesNumberPerRow
* 4. call return number
* 5.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_025-1', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
const expectNum = opts.pixelFormat * opts.size.width;
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
console.info('TC_025 createPixelMap failed');
expect(false).assertTrue()
done();
}
pixelmap.getBytesNumberPerRow().then( num => {
console.info('TC_025 num is ' + num);
expect(num == expectNum).assertTrue();
done();
})
})
.catch(error => {
console.log('TC_025 error: ' + error);
expect().assertFail();
done();
})
})
/* *
* @tc.number : TC_025-1
* @tc.name : get Bytes Number PerRow
* @tc.desc : 1.创建PixelMap
* 2.写入PixelMap
* 3.调用getBytesNumberPerRow
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_025-1', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
const expectNum = opts.pixelFormat * opts.size.width;
image.createPixelMap(color, opts, pixelmap => {
expect(pixelmap !== null).assertTrue();
......@@ -1115,59 +1065,21 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_026
* @tc.name : get Pixel Bytes Number
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用getPixelBytesNumber
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_026', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
const expectNum = opts.pixelFormat * opts.size.width * opts.size.height;
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
console.info('TC_026 createPixelMap failed');
expect(false).assertTrue()
done();
}
pixelmap.getPixelBytesNumber().then( num => {
console.info('TC_026 num is ' + num);
expect(num == expectNum).assertTrue();
done();
})
})
.catch(error => {
console.log('TC_026 error: ' + error);
expect().assertFail();
done();
})
})
/* *
* @tc.number : TC_026-1
* @tc.name : get Pixel Bytes Number
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用getPixelBytesNumber
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_026-1
* @tc.name : get Pixel Bytes Number
* @tc.desc : 1.create PixelMap
* 2.set Pixel
* 3.call getPixelBytesNumber
* 4. call return number
* 5.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_026-1', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
const expectNum = opts.pixelFormat * opts.size.width * opts.size.height;
image.createPixelMap(color, opts,pixelmap => {
expect(pixelmap !== null).assertTrue();
......@@ -1186,52 +1098,50 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_027
* @tc.name : release
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用release
* 4.判断释放成功,返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_027
* @tc.name : release
* @tc.desc : 1.create PixelMap
* 2.set Pixel
* 3.call release
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_027', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( pixelmap => {
if (pixelmap == null) {
console.info('TC_027 createPixelMap failed');
expect(false).assertTrue()
done();
}
pixelmap.release();
expect(true).assertTrue();
.then( pixelmap => {
if (pixelmap == null) {
console.info('TC_027 createPixelMap failed');
expect(false).assertTrue()
done();
})
.catch(error => {
console.log('TC_027 error: ' + error);
expect().assertFail();
}
pixelmap.release().then(() => {
console.info('TC_027 success');
expect(true).assertTrue();
done();
})
}).catch(error => {
console.log('TC_027 error: ' + error);
expect().assertFail();
done();
})
})
/* *
* @tc.number : TC_027-1
* @tc.name : release(callback)
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用release
* 4.判断释放成功,返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_027-1
* @tc.name : release(callback)
* @tc.desc : 1.create PixelMap
* 2.set Pixel
* 3.call release
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_027-1', 0, async function (done) {
const color = new ArrayBuffer(96);
let opts = { alphaType: 0, editable: true, pixelFormat: 3, scaleMode: 1, size: { height: 4, width: 6 } }
......@@ -1242,7 +1152,7 @@ describe('Image', function () {
})
pixelmap.release(()=>{
expect(true).assertTrue();
console.log('TC_027-1 suc');
console.info('TC_027-1 success');
done();
})
.catch(error => {
......@@ -1251,18 +1161,17 @@ describe('Image', function () {
done();
})
})
/* *
* @tc.number : TC_041
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041
* @tc.name : create Image Source(uri)
* @tc.desc : 1.set uri
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_041', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
expect(imageSourceApi !== null).assertTrue();
......@@ -1270,17 +1179,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_041-1
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-1
* @tc.name : create Image Source(uri)
* @tc.desc : 1.seturi
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_041-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
expect(imageSourceApi !== null).assertTrue();
......@@ -1288,17 +1196,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_041-2
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-2
* @tc.name : create Image Source(uri)
* @tc.desc : 1.seturi
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_041-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
expect(imageSourceApi !== null).assertTrue();
......@@ -1306,17 +1213,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_041-3
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-3
* @tc.name : create Image Source(uri)
* @tc.desc : 1.seturi
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_041-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
expect(imageSourceApi !== null).assertTrue();
......@@ -1324,17 +1230,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_041-4
* @tc.name : create Image Source(uri)
* @tc.desc : 1.调用createImageSource(uri)
* 2.传入错误后缀文件
* 3.imagesource空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-4
* @tc.name : create Image Source(uri)
* @tc.desc : 1.call createImageSource(uri)
* 2.Incoming wrong suffix file
* 3.imagesource null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_041-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.tif');
expect(imageSourceApi == null).assertTrue();
......@@ -1342,17 +1247,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_041-5
* @tc.name : create Image Source(uri)
* @tc.desc : 1.调用createImageSource(uri)
* 2.输入错误uri
* 3.imagesource空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-5
* @tc.name : create Image Source(uri)
* @tc.desc : 1.call createImageSource(uri)
* 2.set wrong uri
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_041-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/multiedia/test.jpg');
expect(imageSourceApi == null).assertTrue();
......@@ -1360,17 +1264,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_042
* @tc.name : create Image Source(fd)
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042
* @tc.name : create Image Source(fd)
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_042', 0, async function (done) {
const imageSourceApi = image.createImageSource(29);
expect(imageSourceApi !== null).assertTrue();
......@@ -1378,17 +1281,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_042-1
* @tc.name : create Image Source(fd) bmp
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-1
* @tc.name : create Image Source(fd) bmp
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_042-1', 0, async function (done) {
const imageSourceApi = image.createImageSource(30);
expect(imageSourceApi !== null).assertTrue();
......@@ -1396,17 +1298,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_042-2
* @tc.name : create Image Source(fd) png
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-2
* @tc.name : create Image Source(fd) png
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_042-2', 0, async function (done) {
const imageSourceApi = image.createImageSource(28);
expect(imageSourceApi !== null).assertTrue();
......@@ -1414,17 +1315,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_042-3
* @tc.name : create Image Source(fd) gif
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-3
* @tc.name : create Image Source(fd) gif
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_042-3', 0, async function (done) {
const imageSourceApi = image.createImageSource(27);
expect(imageSourceApi !== null).assertTrue();
......@@ -1432,17 +1332,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_042-4
* @tc.name : create Image Source(fd)
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-4
* @tc.name : create Image Source(fd)
* @tc.desc : 1.call createImageSource
* 2.set wrong fd
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_042-4', 0, async function (done) {
const imageSourceApi = image.createImageSource(-2);
expect(imageSourceApi == null).assertTrue();
......@@ -1450,41 +1349,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_042-5
* @tc.name : create Image Source(fd)
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_042-5', 0, async function (done) {
const imageSourceApi = image.createImageSource(-2);
if(imageSourceApi == null){
console.info('TC_042-5 success');
expect(true).assertTrue();
done();
}else{
console.info('TC_042-5 fail');
expect(false).assertTrue();
done();
}
})
/* *
* @tc.number : TC_043
* @tc.name : create Image Source(data)
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043
* @tc.name : create Image Source(data)
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_043', 0, async function (done) {
console.info('TC_043 start');
const data = new ArrayBuffer(96);
......@@ -1494,17 +1368,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_043-1
* @tc.name : create Image Source(data) bmp
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-1
* @tc.name : create Image Source(data) bmp
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_043-1', 0, async function (done) {
console.info('TC_043-1 start');
const data = new ArrayBuffer(104);
......@@ -1514,17 +1387,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_043-2
* @tc.name : create Image Source(data) png
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-2
* @tc.name : create Image Source(data) png
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_043-2', 0, async function (done) {
console.info('TC_043-2 start');
const data = new ArrayBuffer(112);
......@@ -1534,17 +1406,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_043-3
* @tc.name : create Image Source(data) gif
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-3
* @tc.name : create Image Source(data) gif
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_043-3', 0, async function (done) {
console.info('TC_043-3 start');
const data = new ArrayBuffer(112);
......@@ -1553,18 +1424,17 @@ describe('Image', function () {
console.info('TC_043-3 finished');
done();
})
/* *
* @tc.number : TC_043-4
* @tc.name : create Image Source(data)
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-4
* @tc.name : create Image Source(data)
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_043-4', 0, async function (done) {
console.info('TC_043-4 start');
const data = new ArrayBuffer(0);
......@@ -1574,16 +1444,16 @@ describe('Image', function () {
done();
})
/* *
* @tc.number : TC_044
* @tc.name : release() promise
* @tc.desc : 1.创建ImageSource
* 2.调用release()
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_044
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_044', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -1591,23 +1461,28 @@ describe('Image', function () {
expect(false).assertTrue();
done();
} else {
imageSourceApi.release();
console.info('TC_044 release');
expect(true).assertTrue();
done();
imageSourceApi.release().then(()=>{
console.info('TC_044 release');
expect(true).assertTrue();
done();
}).catch(()=>{
console.log('TC_044 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_044-1
* @tc.name : release() callback
* @tc.desc : 1.创建ImageSource
* 2.调用release()
* 3.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_044-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_044-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -1621,32 +1496,18 @@ describe('Image', function () {
done();
})
}
// if (imageSourceApi == null) {
// console.info('TC_044 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.release(() => {
// console.info('TC_044 Success1');
// expect(true).assertTrue();
// done();
// })
// onsole.info('TC_044 Success2');
// expect(true).assertTrue();
// done();
// }
})
/* *
* @tc.number : TC_045
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.创建imageSource
* 2.imageSource调用getImageInfo(ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.create imageSource
* 2.imageSourcecall getImageInfo(ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_045', 0, async function (done) {
console.info('TC_045');
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
......@@ -1664,16 +1525,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_045-1
* @tc.name : get Image Info(ImageInfo) bmp
* @tc.desc : 1.创建imageSource
* 2.imageSource调用getImageInfo(ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045-1
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.create imageSource
* 2.imageSourcecall getImageInfo(ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_045-1', 0, async function (done) {
console.info('TC_045-1');
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
......@@ -1691,16 +1552,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_045-2
* @tc.name : get Image Info(ImageInfo) png
* @tc.desc : 1.创建imageSource
* 2.imageSource调用getImageInfo(ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045-2
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.create imageSource
* 2.imageSourcecall getImageInfo(ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_045-2', 0, async function (done) {
console.info('TC_045-2');
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
......@@ -1718,16 +1579,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_045-3
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045-3
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_045-3', 0, async function (done) {
console.info('TC_045-3');
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
......@@ -1745,16 +1606,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_046
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_046
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_046', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -1770,16 +1631,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_046-1
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_046-1
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_046-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -1795,16 +1656,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number: TC_046-2
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-2
* @tc.name : getImageInfo(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_046-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -1820,16 +1681,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number: TC_046-3
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-3
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_046-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -1845,16 +1706,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number: TC_046-4
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-4
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_046-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -1870,16 +1731,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number: TC_046-5
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.创建ImageInfo
* 2.调用getImageInfo(index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-5
* @tc.name : get Image Info(index, ImageInfo)
* @tc.desc : 1.create ImageInfo
* 2.call getImageInfo(index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_046-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -1895,16 +1756,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_047
* @tc.name : get Image Info(index) 返回Image Info
* @tc.desc : 1.创建imagesource
* 2.调用getImageInfo(index)
* 3.callback调用,返回imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_047
* @tc.name : get Image Info(index) return Image Info
* @tc.desc : 1.create imagesource
* 2.call getImageInfo(index)
* 3.callbackcall ,return imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_047', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -1917,20 +1778,24 @@ describe('Image', function () {
console.info('TC_047 imageInfo');
expect(imageInfo !== null).assertTrue();
done();
}).catch(()=>{
console.log('TC_047 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_047-1
* @tc.name : get Image Info(index) 返回Image Info
* @tc.desc : 1.创建imagesource
* 2.调用getImageInfo(index)
* 3.callback调用,返回imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_047-1
* @tc.name : get Image Info(index) return Image Info
* @tc.desc : 1.create imagesource
* 2.call getImageInfo(index)
* 3.callbackcall ,return imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_047-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -1943,20 +1808,24 @@ describe('Image', function () {
console.info('TC_047-1 imageInfo');
expect(imageInfo !== null).assertTrue();
done();
}).catch(()=>{
console.log('TC_047-1 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_047-2
* @tc.name : get Image Info(index) 返回Image Info
* @tc.desc : 1.创建imagesource
* 2.调用getImageInfo(index)
* 3.callback调用,返回imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_047-2
* @tc.name : get Image Info(index) return Image Info
* @tc.desc : 1.create imagesource
* 2.call getImageInfo(index)
* 3.callbackcall ,return imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_047-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -1969,20 +1838,24 @@ describe('Image', function () {
console.info('TC_047-2 imageInfo');
expect(imageInfo !== null).assertTrue();
done();
}).catch(()=>{
console.log('TC_047-2 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_047-3
* @tc.name : get Image Info(index) 返回Image Info
* @tc.desc : 1.创建imagesource
* 2.调用getImageInfo(index)
* 3.callback调用,返回imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_047-3
* @tc.name : get Image Info(index) return ImageInfo
* @tc.desc : 1.create imagesource
* 2.call getImageInfo(index)
* 3.callbackcall ,return imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_047-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -1995,20 +1868,24 @@ describe('Image', function () {
console.info('TC_047-3 ');
expect(imageInfo !== null).assertTrue();
done();
}).catch(()=>{
console.log('TC_047-3 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number: TC_047-4
* @tc.name : get Image Info(index) 返回Image Info
* @tc.desc : 1.创建imagesource
* 2.调用getImageInfo(index=1)
* 3.callback imageinfo空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number: TC_047-4
* @tc.name : get Image Info(index) return ImageInfo
* @tc.desc : 1.create imagesource
* 2.call getImageInfo(index=1)
* 3.callback return imageinfo null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_047-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -2021,20 +1898,24 @@ describe('Image', function () {
expect(imageInfo == null).assertTrue();
console.info('TC_047-4 suc');
done();
}).catch(()=>{
console.log('TC_047-4 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_047-5
* @tc.name : get Image Info(index) 返回Image Info
* @tc.desc : 1.创建imagesource
* 2.调用getImageInfo(index=-1)
* 3.callback imageinfo空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_047-5
* @tc.name : get Image Info(index) return ImageInfo
* @tc.desc : 1.create imagesource
* 2.call getImageInfo(index=-1)
* 3.callback return imageinfo null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_047-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -2045,143 +1926,30 @@ describe('Image', function () {
imageSourceApi.getImageInfo(-1)
.then((error,imageInfo) => {
expect(imageInfo == null).assertTrue();
console.info('TC_047-5 suc');
console.info('TC_047-5 success');
done();
}).catch(()=>{
console.log('TC_047-5 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_048
* @tc.name : get Image Property Int获取Exif信息
* @tc.desc : 1.创建imagesource
* 2.调用getImagePropertyInt
* 3.传入参数(index,key,value)
* 4.返回number类型属性值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
//it('TC_048', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
// if (imageSourceApi == null) {
// console.info('TC_048 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyInt(0, "ImageHeight", -1)
// .then(height => {
// console.info('TC_048 height ' + height);
// expect(height !== -1).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_048-1 callback
* @tc.name : get Image Property Int获取Exif信息
* @tc.desc : 1.创建imagesource
* 2.调用getImagePropertyInt
* 3.传入参数(index,key,value)
* 4.返回number类型属性值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
// it('TC_048-1', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
// if (imageSourceApi == null) {
// console.info('TC_048 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyInt(0, "ImageHeight", -1,height => {
// console.info('TC_048 height ' + height);
// expect(height !== -1).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_049
* @tc.name : get Image Property String获取Exif信息
* @tc.desc : 1.创建PixelMap
* 2.创建ImageInfo
* 3.传入索引、key和value
* 4.调用getImagePropertyString
* 5.判断获取的信息和输入的是否一致,返回string类型属性值
* 6.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
// it('TC_049', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test_exif.jpg');
// if (imageSourceApi == null) {
// console.info('TC_049 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyString(0, "GPSAltitude")
// .then(gps => {
// console.info('TC_049 GPSAltitude' + gps);
// expect(gps !== null && gps.length > 0).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_049-1 callback
* @tc.name : get Image Property String获取Exif信息
* @tc.desc : 1.创建PixelMap
* 2.创建ImageInfo
* 3.传入索引、key和value
* 4.调用getImagePropertyString
* 5.判断获取的信息和输入的是否一致,返回string类型属性值
* 6.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
//it('TC_049-1', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test_exif.jpg');
// if (imageSourceApi == null) {
// console.info('TC_049 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyString(0, "GPSAltitude",gps => {
// console.info('TC_049 GPSAltitude' + gps);
// expect(gps !== null && gps.length > 0).assertTrue();
// done();
// })
// }
//})
/* *
* @tc.number : TC_050
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建PixelMap
* 2.创建imagesource
* 3.确定index和DecodeOptions作为参数
* 4.调用createPixelMap
* 5.callback返回空
* 6.当传入参数为DecodeOptions时
* 7.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2206,19 +1974,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-1
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2243,19 +2010,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-2
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2280,19 +2046,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-3
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2319,17 +2084,16 @@ describe('Image', function () {
/**
* @tc.number : TC_050-4
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2356,17 +2120,16 @@ describe('Image', function () {
/**
* @tc.number : TC_050-5
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2393,18 +2156,17 @@ describe('Image', function () {
/**
* @tc.number : TC_050-6
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-6', 0, async function (done) {
it('TC_050-6', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
console.info('TC_050-6 create image source failed');
......@@ -2428,19 +2190,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-7
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-7', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2465,19 +2226,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-8
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-8', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2502,19 +2262,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-9
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-9', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2539,18 +2298,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-10
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-10', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -2575,160 +2334,268 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_051
* @tc.name : create PixelMap对图片进行区域解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
// it('TC_051', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
// if (imageSourceApi == null) {
// console.info('TC_051 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// let decodingOptions = {
// sampleSize:1
// };
// imageSourceApi.createPixelMap(0, decodingOptions, pixelmap => {
// console.info('TC_051 createPixelMap ');
// expect(pixelmap !== null ).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_052
* @tc.name : create Incremental Source(data)进行渐进式解码
* @tc.desc : 1.创建 IncrementalSourceOptions
* 2.incrementalMode设为INCREMENTAL_DATA
* 3.调用createIncrementalSource(data)
* 4.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_052', 0, async function (done) {
const data = new ArrayBuffer(96);
const imageSourceApi = image.createIncrementalSource(data);
console.info('TC_052 create Incremental Source');
expect(imageSourceApi !== null).assertTrue();
done();
})
/* *
* @tc.number : TC_053
* @tc.name : update Data更新数据 promise
* @tc.desc : 1.创建imagesource
* 2.创建sourceStreamPtr_
* 3.调用UpdateData(data, isFinal, offset,length)
* 4.主动调用时返回布尔值
* 5.传入参数为(data, isFinal, offset,length)时
* 6.callback调用返回空
* 7.传入参数为(data, isFinal)时
* 8.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_053', 0, async function (done) {
const dataBuffer = new ArrayBuffer(96);
const imageSourceIncrementalSApi = image.createIncrementalSource(dataBuffer);
let array = [1,2,3,4,5,6,7,8,9,10];
imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
expect(data).assertTrue();
console.info('TC_053 success');
done();
})
})
/* *
* @tc.number : TC_053-1
* @tc.name : update Data更新数据 callback
* @tc.desc : 1.创建imagesource
* 2.调用UpdateData(data, isFinal, offset,length)
* 3.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_053-1', 0, async function (done) {
const dataBuffer = new ArrayBuffer(96);
const imageSourceIncrementalSApi = image.createIncrementalSource(dataBuffer);
let array = [1,2,3,4,5,6,7,8,9,10];
imageSourceIncrementalSApi.updateData(array, false, 0, 10,(error,data )=> {
if(data !== undefined){
expect(data).assertTrue();
console.info('TC_053-1 success');
done();
}else{
console.info('TC_053-1 create image source failed');
expect(false).assertTrue();
done();
}
})
})
/* *
* @tc.number : TC_053-2
* @tc.name : update Data更新渐进式数据 callback
* @tc.desc : 1.创建imagesource
* 2.调用UpdateData(data, isFinal)
* 3.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_053-2', 0, async function (done) {
const dataBuffer = new ArrayBuffer(96);
const imageSourceIncrementalSApi = image.createIncrementalSource(dataBuffer);
let array = [1,2,3,4,5,6,7,8,9,10];
imageSourceIncrementalSApi.updateData(array, false,(error,data) => {
if(data !== undefined){
expect(data).assertTrue();
console.info('TC_053-2 success');
done();
}else{
console.info('TC_053-2 create image source failed');
expect(false).assertTrue();
done();
}
})
})
/* *
* @tc.number : TC_062
* @tc.name : packing打包ImageSource对象
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it('TC_062', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
/**
* @tc.number : TC_050-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-11', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
console.info('TC_062 create image source failed');
console.info('TC_050-11 create image source failed');
expect(false).assertTrue();
done();
} else {
const imagePackerApi = image.createImagePacker();
imageSourceApi.createPixelMap().then(pixelmap => {
console.info('TC_050-11 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
}).catch(error => {
console.log('TC_050-11 error: ' + error);
expect().assertFail();
done();
})
}
})
/**
* @tc.number : TC_050-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-12', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
console.info('TC_050-12 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap(pixelmap => {
console.info('TC_050-12 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_050-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-13', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
console.info('TC_050-13 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 400, y: 400 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_050-13 createPixelMap ');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_050-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_050-14', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
console.info('TC_050-14 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:500,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 400, y: 400 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_050-14 createPixelMap ');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_053
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.update data
* 3.create pixelmap
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_053', 0, async function (done) {
try {
let testimagebuffer = testPng;
console.info('TC_053 0003 ' + testimagebuffer.length);
let bufferSize = testimagebuffer.length;
let offset = 0;
const incSouce = image.createIncrementalSource(new ArrayBuffer(1));
let isFinished = false;
while (offset < testimagebuffer.length) {
console.info('TC_053 0006 ' + testimagebuffer.length);
var oneStep = testimagebuffer.slice(offset, offset + bufferSize);
console.info('TC_053 0007 ' + oneStep.length);
if (oneStep.length < bufferSize) {
isFinished = true;
}
ret = await incSouce.updateData(oneStep, isFinished, 0, oneStep.length);
if (!ret) {
console.info('TC_053 updateData failed');
expect(ret).assertTrue();
break;
}
offset = offset + oneStep.length;
console.info('TC_053 0011 ' + offset);
}
if (ret) {
console.info('TC_053 updateData success ');
let decodingOptions = {
sampleSize:1
};
incSouce.createPixelMap(decodingOptions, (err, pixelmap) => {
console.info('TC_053 0014' + pixelmap);
expect(pixelmap !== undefined ).assertTrue();
done();
})
} else {
done();
}
done();
} catch (error) {
console.info('TC_053 updateData failed ' + error);
}
})
/**
* @tc.number : TC_053-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.update data
* 3.create pixelmap
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_053-1', 0, async function (done) {
try {
let testimagebuffer = testJpg;
console.info('TC_053-1 0003 ' + testimagebuffer.length);
let bufferSize = testimagebuffer.length;
let offset = 0;
const incSouce = image.createIncrementalSource(new ArrayBuffer(1));
let isFinished = false;
while (offset < testimagebuffer.length) {
console.info('TC_053-1 0006 ' + testimagebuffer.length);
var oneStep = testimagebuffer.slice(offset, offset + bufferSize);
console.info('TC_053-1 0007 ' + oneStep.length);
if (oneStep.length < bufferSize) {
isFinished = true;
}
ret = await incSouce.updateData(oneStep, isFinished, 0, oneStep.length);
if (!ret) {
console.info('TC_053-1 updateData failed');
expect(ret).assertTrue();
break;
}
offset = offset + oneStep.length;
console.info('TC_053-1 0011 ' + offset);
}
if (ret) {
console.info('TC_053-1 updateData success ');
let decodingOptions = {
sampleSize:1
};
incSouce.createPixelMap(decodingOptions, (err, pixelmap) => {
expect(pixelmap !== undefined ).assertTrue();
done();
})
} else {
done();
}
done();
} catch (error) {
console.info('TC_053-1 updateData failed ' + error);
}
})
/**
* @tc.number : TC_062
* @tc.name : packing
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_062', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
console.info('TC_062 create image source failed');
expect(false).assertTrue();
done();
} else {
const imagePackerApi = image.createImagePacker();
if (imagePackerApi == null) {
console.info('TC_062 create image packer failed');
expect(false).assertTrue();
......@@ -2740,24 +2607,26 @@ describe('Image', function () {
console.info('TC_062 finished');
expect(data !== null).assertTrue();
done();
})
}).catch(()=>{
console.log('TC_062 error: ' + error);
expect(false).assertTrue();
done();
})
}
}
})
/* *
* @tc.number : TC_062-1
* @tc.name : packing打包ImageSource对象(callback)
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-1
* @tc.name : packing
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_062-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -2781,18 +2650,17 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_062-2
* @tc.name : packing打包ImageSource对象
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-2
* @tc.name : packing ImageSource
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_062-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -2817,18 +2685,17 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_062-3
* @tc.name : packing打包ImageSource对象
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-3
* @tc.name : packing ImageSource
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.call return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_062-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -2853,17 +2720,47 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_063
* @tc.name : release释放ImagePacker实例
* @tc.desc : 1.创建ImagePacker
* 2.调用release
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-4
* @tc.name : packing
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_062-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
console.info('TC_062-4 create image source failed');
expect(false).assertTrue();
done();
} else {
const imagePackerApi = image.createImagePacker();
if (imagePackerApi == null) {
console.info('TC_062-4 create image packer failed');
expect(false).assertTrue();
done();
} else {
console.info('TC_062-4 create image packer success');
expect(true).assertTrue();
done();
}
}
})
/**
* @tc.number : TC_063
* @tc.name : release ImagePacker
* @tc.desc : 1.create ImagePacker
* 2.call release
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_063', 0, async function (done) {
const imagePackerApi = image.createImagePacker();
if (imagePackerApi == null) {
......@@ -2871,24 +2768,28 @@ describe('Image', function () {
expect(false).assertTrue();
done();
} else {
imagePackerApi.release();
console.info('TC_063 release');
expect(true).assertTrue();
done();
imagePackerApi.release().then(()=>{
console.info('TC_063 release');
expect(true).assertTrue();
done();
}).catch(()=>{
console.log('TC_063 error: ' + error);
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_063-1
* @tc.name : release释放ImagePacker实例 callback
* @tc.desc : 1.创建ImagePacker
* 2.调用release
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_063-1
* @tc.name : release ImagePacker
* @tc.desc : 1.create ImagePacker
* 2.call release
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_063-1', 0, async function (done) {
const imagePackerApi = image.createImagePacker();
if (imagePackerApi == null) {
......@@ -2904,18 +2805,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_064
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_064
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_064', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -2923,25 +2822,28 @@ describe('Image', function () {
expect(false).assertTrue();
done();
} else {
imageSourceApi.release();
console.info('TC_064 release');
expect(true).assertTrue();
done();
imageSourceApi.release().then(()=>{
console.info('TC_064 release');
expect(true).assertTrue();
done();
}).catch(error => {
console.log('TC_064 error: ' + error);
expect().assertFail();
done();
})
}
})
/* *
* @tc.number : TC_064-1 callback
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_064-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_064-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -2957,44 +2859,45 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_065
* @tc.name : release() bmp promise
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_065
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_065', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
console.info('TC_065 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.release();
console.info('TC_065 release');
expect(true).assertTrue();
if (imageSourceApi == null) {
console.info('TC_065 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.release().then(()=>{
console.info('TC_065 release');
expect(true).assertTrue();
done();
}).catch(error => {
console.log('TC_065 error: ' + error);
expect().assertFail();
done();
})
}
})
/* *
* @tc.number : TC_065-1 bmp callback
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_065-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.create SourceStream
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_065-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3010,45 +2913,45 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_066
* @tc.name : release() gif promise
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_066
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_066', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
console.info('TC_066 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.release();
console.info('TC_066 release');
expect(true).assertTrue();
console.info('TC_066 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.release().then(()=>{
console.info('TC_065 release');
expect(true).assertTrue();
done();
}).catch(error => {
console.log('TC_065 error: ' + error);
expect().assertFail();
done();
})
}
})
/* *
* @tc.number : TC_066-1 gif callback
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_066-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_066-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3060,23 +2963,26 @@ describe('Image', function () {
console.info('TC_066-1 Success');
expect(true).assertTrue();
done();
}).catch(()=>{
console.info('TC_066-1 release');
expect(false).assertTrue();
done();
})
}
})
/* *
* @tc.number : TC_067
* @tc.name : create PixelMap对图片进行解码生成位图 gif
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067
* @tc.name : Decode the image to generate a bitmap gif
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3101,19 +3007,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-1
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3138,19 +3043,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-2
* @tc.name : create PixelMap对图片进行解码生成位图 gif
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3175,19 +3079,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-3
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3212,18 +3115,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-4
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-4
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3248,18 +3151,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-5
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-5
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3284,18 +3187,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-6
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-6
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-6', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3320,18 +3223,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-7
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-7', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3356,18 +3259,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-8
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-8', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3392,18 +3295,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-9
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-9', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3428,18 +3331,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-10
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-10', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3462,21 +3365,150 @@ describe('Image', function () {
done();
})
}
})
/* *
* @tc.number : TC_068
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_067-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-11', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
console.info('TC_067-11 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap().then(pixelmap => {
console.info('TC_067-11 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
}).catch(error => {
console.log('TC_067-11 error: ' + error);
expect().assertFail();
done();
})
}
})
/**
* @tc.number : TC_067-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-12', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
console.info('TC_067-12 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap(pixelmap => {
console.info('TC_067-12 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_067-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-13', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
console.info('TC_067-13 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 400, y: 400 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_067-13 createPixelMap ');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_067-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_067-14', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
console.info('TC_067-14 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:500,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 400, y: 400 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_067-14 createPixelMap ');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_068
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3501,19 +3533,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-1
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3538,18 +3569,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-2
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3574,18 +3605,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-3
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3610,18 +3641,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-4
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-4
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3646,18 +3677,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-5
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-5
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3682,19 +3713,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-6
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-6
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-6', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3719,18 +3749,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-7
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-7', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.gif');
if (imageSourceApi == null) {
......@@ -3755,18 +3785,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-8
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-8', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3791,18 +3821,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-9
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-9', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3827,18 +3857,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-10
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-10', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
......@@ -3863,19 +3893,148 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-11', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
console.info('TC_068-11 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap().then(pixelmap => {
console.info('TC_068-11 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
}).catch(error => {
console.log('TC_068-11 error: ' + error);
expect().assertFail();
done();
})
}
})
/**
* @tc.number : TC_068-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-12', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
console.info('TC_068-12 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap(pixelmap => {
console.info('TC_068-12 createPixelMap ');
expect(pixelmap !== null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_068-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-13', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
console.info('TC_068-13 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 440, y:440 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_068-13 createPixelMap ');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_068-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_068-14', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.bmp');
if (imageSourceApi == null) {
console.info('TC_068-14 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:550,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 440, y:440 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_068-14 createPixelMap ');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_163
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -3900,19 +4059,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-1
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-1', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -3937,19 +4095,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-2
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-2', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -3974,18 +4131,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-3
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-3', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4010,18 +4167,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-4
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-4
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-4', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4046,18 +4203,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-5
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-5
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-5', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4082,18 +4239,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-6
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-6
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-6', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4118,18 +4275,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-7
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-7', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4154,18 +4311,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-8
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-8', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4190,18 +4347,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-9
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-9', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4226,18 +4383,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-10
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-10', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
......@@ -4260,18 +4417,147 @@ describe('Image', function () {
done();
})
}
})
/* *
* @tc.number : TC_164
* @tc.name : supportedFormats
* @tc.desc : 1.创建imagesource
* 2.调用supportedFormats
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_163-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-11', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
console.info('TC_163-11 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap().then(pixelmap => {
console.info('TC_163-11 createPixelMap');
expect(pixelmap !== null ).assertTrue();
done();
}).catch(error => {
console.log('TC_163-11 error: ' + error);
expect().assertFail();
done();
})
}
})
/**
* @tc.number : TC_163-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-12', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
console.info('TC_163-12 create image source failed');
expect(false).assertTrue();
done();
} else {
imageSourceApi.createPixelMap(pixelmap => {
console.info('TC_163-12 createPixelMap');
expect(pixelmap !== null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_163-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-13', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
console.info('TC_163-13 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 500, y:500 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_163-13 createPixelMap');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_163-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_163-14', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.png');
if (imageSourceApi == null) {
console.info('TC_163-14 create image source failed');
expect(false).assertTrue();
done();
} else {
let decodingOptions = {
sampleSize:1,
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:400,
desiredPixelFormat:2,
desiredRegion: { size: { height: 1, width: 2 }, x: 500, y:500 },
index:0
};
imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
console.info('TC_163-14 createPixelMap');
expect(pixelmap == null ).assertTrue();
done();
})
}
})
/**
* @tc.number : TC_164
* @tc.name : supportedFormats
* @tc.desc : 1.create imagesource
* 2.call supportedFormats
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_164', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
if (imageSourceApi == null) {
......@@ -4279,23 +4565,22 @@ 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 suc ');
console.info('TC_164 success ');
done();
}
})
/* *
* @tc.number : TC_166
* @tc.name : supportedFormats
* @tc.desc : 1.创建imagepacker
* 2.调用supportedFormats
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_166
* @tc.name : supportedFormats
* @tc.desc : 1.create imagepacker
* 2.call supportedFormats
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it('TC_166', 0, async function (done) {
const imagePackerApi = image.createImagePacker();
if (imagePackerApi == null) {
......@@ -4303,26 +4588,25 @@ 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 suc ');
console.info('TC_166 success ');
done();
}
})
/* *
* @tc.number : TC_167
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_167
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it('TC_167', 0, async function (done) {
const imageSourceApi = image.createImageSource('/data/local/tmp/test.arw');
let decodingOptions = {
......@@ -4330,7 +4614,7 @@ describe('Image', function () {
editable: true,
desiredSize:{ width:1, height:2},
rotateDegrees:10,
desiredPixelFormat:4,
desiredPixelFormat:3,
desiredRegion: { size: { height: 1, width: 2 }, x: 0, y: 0 },
index:0
};
......@@ -4339,5 +4623,5 @@ describe('Image', function () {
expect(pixelmap == null ).assertTrue();
done();
})
})
})
})
\ No newline at end of file
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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,
218, 73, 166, 76, 254, 104, 254, 104, 167, 51, 253, 39, 51, 45, 52, 77, 161, 36, 29, 19, 2, 24, 98, 140, 28, 91, 24, 91, 150, 44, 164, 213,
93, 187, 146, 86, 123, 95, 237, 253, 156, 243, 251, 253, 190, 223, 247, 235, 213, 253, 237, 34, 220, 106, 86, 182, 105, 160, 99, 30, 143, 224, 175, 177,
31, 251, 145, 31, 102, 101, 109, 133, 133, 241, 194, 174, 42, 253, 224, 108, 54, 123, 100, 24, 250, 235, 135, 161, 178, 239, 251, 67, 17, 241, 149, 42,
253, 238, 100, 50, 121, 178, 117, 76, 207, 31, 221, 194, 243, 7, 30, 229, 187, 89, 240, 215, 212, 15, 253, 208, 167, 24, 47, 108, 98, 186, 118, 242,
253, 165, 250, 135, 150, 62, 176, 178, 178, 186, 208, 247, 61, 146, 232, 103, 61, 173, 235, 4, 62, 106, 243, 175, 165, 250, 159, 108, 61, 149, 153, 126,
252, 235, 79, 241, 221, 42, 248, 107, 232, 83, 159, 252, 126, 90, 27, 1, 250, 158, 217, 172, 255, 167, 171, 107, 43, 183, 204, 102, 61, 179, 233, 140,
201, 100, 66, 149, 176, 4, 1, 173, 53, 70, 163, 17, 173, 181, 87, 128, 255, 102, 54, 27, 254, 143, 214, 114, 248, 198, 83, 79, 243, 221, 168, 241,
215, 208, 237, 183, 221, 66, 102, 94, 93, 195, 240, 63, 207, 102, 211, 251, 214, 86, 39, 172, 156, 91, 101, 101, 117, 194, 249, 149, 53, 250, 97, 96,
50, 157, 113, 254, 252, 10, 67, 153, 201, 116, 74, 149, 182, 70, 196, 71, 50, 242, 108, 102, 62, 177, 107, 231, 14, 31, 57, 122, 140, 239, 54, 141,
191, 160, 237, 91, 55, 51, 30, 141, 216, 182, 109, 235, 120, 211, 198, 13, 235, 150, 214, 45, 141, 186, 46, 180, 113, 227, 6, 175, 174, 174, 241, 87,
237, 83, 159, 122, 132, 79, 127, 252, 251, 121, 97, 223, 190, 191, 63, 235, 251, 31, 95, 91, 155, 196, 233, 211, 167, 89, 93, 153, 176, 54, 153, 48,
212, 192, 80, 66, 18, 85, 98, 54, 155, 49, 157, 78, 137, 8, 76, 44, 142, 70, 221, 123, 35, 120, 153, 244, 179, 87, 238, 216, 195, 145, 99, 135,
248, 110, 210, 241, 29, 186, 239, 190, 123, 233, 103, 253, 226, 120, 220, 30, 176, 253, 48, 196, 93, 147, 201, 100, 199, 80, 53, 93, 92, 92, 124, 117,
109, 109, 237, 209, 141, 27, 55, 254, 193, 245, 215, 95, 127, 124, 239, 222, 189, 12, 195, 192, 95, 133, 8, 248, 151, 127, 240, 185, 235, 134, 161, 255,
143, 38, 147, 181, 56, 123, 246, 12, 179, 217, 140, 201, 108, 74, 169, 232, 135, 129, 140, 4, 155, 204, 100, 174, 170, 88, 93, 93, 69, 18, 227, 81,
183, 117, 97, 60, 254, 197, 136, 120, 146, 54, 125, 133, 239, 50, 29, 223, 198, 189, 247, 220, 197, 179, 207, 189, 196, 226, 194, 232, 254, 229, 117, 139,
63, 11, 60, 50, 244, 195, 150, 217, 48, 208, 186, 14, 19, 100, 22, 227, 241, 194, 143, 75, 254, 234, 139, 47, 190, 248, 143, 134, 97, 248, 131, 204,
212, 5, 252, 101, 75, 155, 176, 63, 58, 153, 206, 110, 155, 76, 166, 172, 172, 174, 49, 153, 206, 24, 134, 1, 99, 144, 113, 136, 204, 196, 54, 153,
201, 92, 85, 49, 157, 78, 89, 89, 93, 163, 181, 188, 167, 139, 246, 31, 63, 249, 141, 39, 126, 249, 129, 251, 31, 224, 137, 39, 159, 230, 187, 69,
242, 45, 188, 255, 125, 239, 37, 91, 151, 239, 125, 207, 253, 63, 178, 180, 180, 244, 235, 227, 209, 232, 51, 150, 183, 204, 102, 51, 214, 214, 86, 89,
91, 155, 176, 178, 178, 198, 116, 58, 163, 239, 135, 113, 149, 190, 39, 34, 254, 151, 174, 235, 62, 35, 41, 248, 75, 246, 233, 79, 125, 146, 197, 241,
186, 5, 75, 223, 95, 67, 181, 233, 116, 202, 116, 50, 101, 24, 6, 108, 97, 153, 214, 26, 17, 193, 91, 108, 51, 215, 90, 35, 34, 152, 205, 102,
72, 34, 51, 31, 121, 224, 254, 7, 183, 65, 240, 221, 164, 227, 29, 124, 240, 131, 239, 103, 113, 221, 152, 209, 180, 251, 248, 226, 120, 252, 63, 88,
190, 106, 101, 117, 149, 181, 181, 53, 86, 86, 87, 153, 245, 51, 250, 190, 152, 78, 103, 72, 98, 24, 6, 134, 97, 32, 34, 118, 117, 93, 247, 43,
85, 117, 40, 51, 63, 95, 85, 252, 165, 137, 160, 52, 236, 138, 200, 123, 38, 211, 9, 125, 223, 51, 87, 85, 64, 144, 25, 204, 69, 4, 146, 200,
76, 230, 36, 49, 55, 12, 3, 17, 48, 12, 3, 195, 208, 174, 109, 173, 93, 11, 188, 201, 119, 145, 142, 119, 176, 184, 48, 198, 131, 239, 88, 183,
184, 244, 143, 9, 174, 90, 89, 91, 97, 50, 153, 178, 58, 153, 50, 157, 245, 204, 102, 61, 85, 98, 78, 18, 195, 48, 48, 23, 17, 116, 93, 119,
181, 164, 95, 152, 205, 102, 79, 3, 199, 184, 140, 255, 226, 231, 126, 158, 151, 95, 126, 153, 135, 191, 239, 225, 118, 195, 13, 215, 143, 55, 109, 222,
180, 28, 17, 203, 4, 75, 24, 108, 97, 27, 75, 171, 42, 77, 215, 38, 107, 43, 215, 93, 119, 195, 228, 23, 254, 193, 127, 185, 222, 25, 155, 185,
96, 54, 155, 209, 15, 3, 85, 34, 51, 177, 185, 40, 34, 152, 179, 205, 219, 169, 68, 63, 155, 49, 30, 143, 151, 34, 189, 17, 155, 239, 38, 29,
151, 241, 177, 143, 62, 76, 223, 15, 227, 117, 235, 22, 255, 243, 209, 168, 187, 107, 229, 252, 10, 125, 223, 51, 157, 245, 12, 67, 49, 157, 245, 244,
179, 30, 219, 204, 101, 38, 173, 53, 102, 179, 25, 17, 65, 215, 117, 116, 93, 247, 189, 125, 223, 255, 141, 241, 120, 252, 63, 78, 167, 83, 126, 255,
115, 191, 203, 71, 63, 246, 253, 60, 250, 232, 23, 214, 173, 91, 183, 124, 205, 194, 120, 124, 71, 55, 234, 238, 24, 141, 186, 155, 33, 174, 109, 45,
183, 69, 198, 186, 140, 88, 144, 205, 156, 36, 106, 24, 214, 84, 53, 147, 106, 165, 239, 215, 142, 255, 237, 191, 243, 183, 103, 191, 246, 107, 255, 219,
50, 113, 2, 8, 44, 19, 209, 184, 28, 219, 188, 197, 54, 195, 48, 48, 26, 141, 48, 38, 34, 107, 227, 198, 205, 62, 124, 248, 48, 255, 221, 63,
250, 21, 254, 193, 47, 254, 87, 124, 55, 232, 120, 155, 77, 159, 249, 40, 221, 73, 104, 109, 116, 111, 215, 181, 31, 150, 204, 116, 54, 99, 58, 157,
49, 155, 205, 152, 205, 102, 212, 48, 80, 85, 100, 38, 85, 69, 85, 49, 215, 90, 35, 51, 145, 68, 187, 228, 111, 76, 167, 211, 127, 246, 244, 51,
79, 158, 95, 89, 89, 187, 243, 217, 103, 159, 126, 248, 154, 107, 118, 127, 100, 52, 30, 223, 213, 117, 221, 14, 240, 66, 107, 13, 73, 16, 96, 155,
0, 100, 19, 128, 36, 172, 17, 86, 97, 25, 89, 220, 112, 195, 117, 220, 121, 231, 237, 28, 56, 112, 128, 204, 36, 91, 226, 161, 199, 134, 136, 96,
46, 34, 136, 8, 36, 17, 17, 100, 38, 146, 200, 76, 50, 131, 42, 113, 197, 21, 59, 151, 127, 241, 151, 126, 241, 31, 110, 221, 182, 245, 137, 243,
231, 206, 125, 227, 87, 255, 215, 127, 122, 240, 153, 167, 159, 62, 182, 119, 239, 222, 67, 207, 61, 255, 210, 217, 67, 135, 143, 206, 214, 173, 91, 226,
228, 201, 147, 252, 255, 169, 227, 109, 62, 112, 2, 214, 111, 88, 100, 50, 233, 63, 156, 25, 59, 167, 211, 158, 97, 24, 24, 134, 1, 169, 24, 106,
192, 54, 17, 129, 109, 170, 10, 73, 216, 166, 181, 70, 102, 98, 67, 102, 50, 26, 141, 238, 254, 91, 127, 235, 51, 127, 127, 58, 153, 221, 186, 121,
243, 166, 143, 108, 216, 176, 113, 231, 120, 52, 138, 11, 32, 192, 54, 24, 162, 5, 146, 136, 72, 230, 194, 5, 1, 68, 16, 145, 68, 66, 89, 96,
179, 176, 176, 192, 35, 143, 124, 130, 190, 239, 249, 220, 231, 254, 128, 51, 103, 206, 48, 244, 61, 217, 26, 93, 215, 17, 17, 216, 102, 46, 34, 152,
155, 205, 102, 84, 21, 17, 1, 4, 216, 220, 127, 255, 125, 163, 235, 174, 223, 243, 189, 182, 190, 119, 221, 226, 130, 55, 172, 95, 158, 94, 123, 237,
53, 167, 239, 190, 231, 174, 35, 251, 247, 237, 123, 229, 200, 161, 67, 207, 156, 59, 119, 246, 107, 131, 227, 233, 126, 82, 135, 178, 197, 240, 235, 191,
249, 47, 249, 171, 214, 120, 155, 219, 111, 185, 153, 67, 175, 29, 203, 205, 91, 55, 252, 116, 73, 119, 77, 38, 83, 38, 147, 9, 147, 201, 132, 201,
108, 74, 85, 81, 37, 170, 138, 97, 24, 136, 8, 50, 147, 185, 136, 192, 54, 182, 129, 196, 214, 194, 35, 143, 124, 226, 131, 119, 222, 121, 199, 221,
235, 214, 173, 91, 191, 110, 105, 41, 50, 27, 115, 153, 73, 70, 227, 146, 32, 35, 9, 130, 224, 146, 8, 200, 76, 8, 192, 129, 205, 69, 182, 88,
183, 110, 29, 119, 220, 113, 7, 119, 221, 117, 23, 235, 215, 47, 115, 228, 240, 97, 222, 60, 121, 18, 201, 64, 48, 103, 27, 73, 84, 21, 146, 176,
77, 102, 178, 48, 30, 179, 107, 215, 21, 252, 196, 79, 254, 36, 187, 174, 184, 2, 213, 64, 215, 90, 100, 102, 183, 254, 130, 43, 175, 188, 114, 215,
158, 61, 187, 239, 216, 182, 125, 219, 135, 218, 104, 244, 239, 163, 250, 161, 104, 220, 23, 65, 222, 114, 203, 205, 39, 206, 157, 247, 234, 67, 15, 220,
195, 254, 253, 251, 249, 171, 208, 120, 155, 219, 110, 185, 153, 174, 235, 218, 120, 113, 244, 119, 74, 190, 233, 252, 202, 10, 147, 201, 148, 201, 116, 194,
116, 58, 101, 58, 235, 25, 250, 1, 73, 84, 21, 182, 153, 147, 132, 109, 34, 130, 204, 96, 46, 51, 248, 208, 135, 62, 148, 55, 223, 124, 51, 219,
182, 109, 103, 52, 26, 17, 17, 68, 64, 102, 99, 46, 34, 200, 76, 34, 32, 51, 177, 77, 107, 13, 99, 36, 147, 145, 32, 99, 204, 92, 4, 23,
101, 6, 59, 118, 236, 224, 190, 251, 238, 225, 193, 119, 63, 200, 116, 54, 227, 229, 151, 94, 102, 50, 153, 50, 30, 143, 176, 77, 85, 81, 85, 84,
21, 153, 73, 215, 53, 150, 151, 215, 241, 31, 252, 216, 143, 242, 177, 143, 125, 148, 57, 169, 192, 198, 54, 17, 129, 44, 70, 227, 17, 59, 118, 238,
224, 154, 107, 174, 25, 109, 221, 190, 117, 219, 116, 50, 185, 119, 229, 252, 202, 15, 73, 254, 200, 85, 87, 109, 95, 159, 45, 14, 62, 255, 252, 139,
103, 127, 247, 243, 191, 207, 193, 215, 223, 224, 47, 83, 227, 109, 110, 186, 233, 6, 206, 158, 95, 99, 105, 221, 248, 135, 250, 26, 238, 152, 78, 167,
172, 173, 173, 49, 157, 205, 232, 251, 129, 201, 100, 74, 13, 133, 109, 108, 83, 85, 204, 117, 221, 136, 136, 96, 110, 54, 155, 97, 155, 135, 30, 122,
128, 31, 251, 177, 31, 229, 166, 155, 110, 98, 97, 97, 76, 102, 35, 51, 201, 76, 32, 120, 75, 102, 146, 25, 204, 101, 6, 178, 201, 76, 46, 49,
17, 1, 17, 68, 4, 17, 129, 109, 36, 33, 21, 17, 176, 109, 251, 22, 222, 253, 238, 7, 185, 118, 247, 110, 94, 124, 241, 69, 78, 157, 58, 141,
109, 50, 19, 12, 17, 65, 215, 53, 70, 163, 17, 215, 93, 183, 135, 159, 248, 201, 159, 96, 231, 206, 157, 72, 133, 106, 160, 170, 176, 141, 109, 140,
177, 133, 100, 108, 179, 101, 235, 22, 246, 92, 183, 135, 133, 165, 133, 238, 244, 169, 83, 187, 39, 147, 181, 143, 102, 196, 71, 126, 253, 127, 255, 103,
53, 38, 247, 221, 117, 231, 237, 147, 231, 94, 124, 137, 191, 44, 141, 183, 185, 241, 198, 235, 89, 191, 97, 209, 67, 213, 13, 195, 48, 124, 223, 100,
50, 101, 232, 7, 166, 179, 25, 211, 217, 12, 201, 88, 38, 51, 105, 173, 33, 137, 136, 96, 52, 26, 33, 153, 190, 239, 217, 180, 105, 19, 63, 250,
163, 159, 230, 231, 126, 238, 103, 185, 251, 238, 187, 89, 88, 24, 3, 65, 4, 23, 101, 38, 17, 129, 109, 34, 130, 8, 200, 108, 92, 18, 68, 4,
16, 16, 92, 18, 16, 17, 68, 38, 193, 5, 22, 223, 148, 168, 68, 215, 37, 183, 220, 122, 51, 119, 220, 126, 27, 123, 247, 62, 203, 177, 99, 199,
200, 72, 90, 235, 232, 90, 99, 52, 234, 88, 90, 28, 211, 247, 61, 207, 61, 247, 28, 235, 55, 172, 103, 215, 174, 157, 180, 214, 144, 196, 156, 36,
164, 66, 22, 82, 17, 128, 109, 90, 107, 236, 220, 185, 157, 171, 174, 186, 138, 243, 231, 207, 230, 233, 211, 167, 174, 12, 226, 227, 209, 229, 157, 147,
89, 191, 111, 251, 142, 157, 135, 111, 191, 237, 86, 246, 237, 219, 207, 191, 171, 198, 219, 188, 252, 202, 62, 174, 191, 238, 58, 192, 107, 54, 159, 236,
251, 217, 198, 217, 108, 198, 80, 133, 36, 230, 84, 98, 206, 54, 153, 73, 102, 50, 153, 76, 168, 42, 62, 240, 129, 247, 243, 203, 191, 252, 75, 252,
248, 143, 255, 56, 187, 119, 95, 67, 102, 0, 65, 107, 73, 102, 35, 34, 152, 203, 12, 50, 147, 204, 4, 76, 68, 2, 6, 2, 219, 68, 4, 17,
96, 155, 57, 27, 108, 17, 4, 145, 129, 101, 8, 136, 224, 34, 203, 216, 102, 215, 174, 157, 220, 118, 199, 109, 28, 56, 112, 128, 55, 79, 158, 100,
212, 37, 59, 118, 108, 227, 193, 135, 238, 103, 195, 134, 245, 156, 58, 117, 134, 55, 222, 56, 200, 151, 191, 252, 37, 206, 157, 59, 207, 205, 183, 220,
194, 242, 242, 50, 150, 152, 179, 5, 97, 36, 3, 193, 220, 48, 244, 68, 152, 165, 229, 101, 174, 187, 126, 15, 37, 113, 232, 240, 209, 110, 24, 234,
182, 136, 252, 216, 104, 212, 206, 175, 77, 39, 207, 222, 120, 227, 245, 195, 171, 251, 95, 227, 223, 69, 227, 50, 174, 191, 238, 90, 52, 232, 168, 131,
205, 217, 242, 123, 134, 126, 136, 42, 49, 155, 206, 232, 135, 162, 159, 13, 204, 101, 38, 146, 153, 78, 39, 44, 175, 95, 230, 239, 254, 244, 79, 241,
75, 191, 244, 11, 220, 123, 223, 189, 116, 221, 136, 136, 32, 51, 128, 36, 179, 49, 23, 17, 100, 38, 54, 68, 4, 151, 4, 223, 20, 68, 4, 23,
5, 216, 38, 34, 137, 224, 162, 0, 36, 1, 6, 2, 219, 72, 194, 6, 35, 170, 6, 182, 111, 223, 202, 189, 247, 222, 195, 174, 93, 59, 185, 250,
170, 43, 121, 224, 129, 123, 185, 247, 190, 187, 216, 115, 221, 53, 28, 120, 253, 0, 231, 206, 157, 103, 214, 207, 120, 234, 169, 63, 101, 255, 171, 175,
114, 251, 109, 183, 178, 188, 188, 76, 213, 128, 109, 36, 17, 201, 69, 85, 69, 85, 1, 102, 168, 129, 214, 117, 92, 117, 213, 46, 22, 23, 23, 56,
240, 218, 27, 244, 125, 191, 57, 91, 126, 95, 215, 229, 122, 13, 122, 252, 198, 27, 175, 155, 236, 219, 255, 26, 255, 95, 53, 46, 99, 223, 254, 215,
216, 189, 231, 106, 151, 244, 188, 237, 123, 250, 126, 184, 81, 85, 24, 51, 244, 3, 17, 65, 107, 141, 214, 26, 125, 223, 179, 105, 211, 70, 254, 235,
95, 250, 69, 126, 234, 167, 126, 130, 141, 27, 54, 98, 65, 68, 16, 193, 5, 65, 102, 71, 68, 2, 65, 68, 146, 217, 128, 32, 34, 137, 72, 90,
235, 136, 8, 230, 34, 2, 219, 204, 5, 193, 156, 13, 216, 4, 193, 156, 13, 118, 96, 23, 150, 33, 184, 32, 48, 34, 2, 108, 179, 97, 253, 50,
183, 220, 114, 51, 123, 246, 92, 67, 235, 26, 163, 81, 199, 246, 237, 219, 216, 178, 121, 51, 47, 60, 255, 34, 253, 48, 96, 155, 125, 175, 236, 231,
165, 23, 95, 226, 214, 91, 111, 101, 243, 150, 77, 88, 96, 27, 169, 144, 10, 187, 176, 141, 109, 176, 177, 12, 152, 93, 187, 174, 96, 113, 105, 145,
87, 247, 191, 74, 223, 207, 70, 153, 249, 158, 204, 184, 186, 134, 225, 177, 155, 111, 190, 126, 101, 180, 48, 226, 196, 137, 147, 252, 69, 53, 222, 193,
85, 187, 175, 68, 131, 206, 75, 250, 211, 174, 181, 251, 193, 87, 151, 69, 16, 64, 96, 155, 217, 108, 198, 194, 194, 152, 159, 255, 249, 159, 227, 111,
254, 205, 207, 48, 26, 143, 136, 8, 34, 130, 136, 32, 51, 137, 8, 50, 27, 17, 65, 68, 144, 153, 68, 4, 153, 73, 102, 18, 17, 204, 69, 152,
136, 224, 45, 17, 65, 68, 96, 131, 45, 140, 177, 141, 101, 100, 17, 17, 128, 145, 69, 68, 32, 9, 171, 176, 141, 109, 108, 99, 139, 165, 165, 37,
54, 108, 88, 79, 102, 208, 90, 227, 202, 171, 174, 224, 220, 249, 243, 188, 254, 218, 27, 68, 36, 115, 7, 15, 30, 228, 197, 23, 95, 226, 206, 119,
189, 139, 205, 155, 55, 33, 9, 91, 84, 21, 17, 193, 91, 36, 35, 21, 115, 182, 216, 177, 99, 59, 75, 75, 75, 188, 252, 242, 126, 250, 126, 200,
150, 121, 87, 100, 187, 106, 58, 12, 95, 218, 184, 97, 227, 234, 171, 251, 95, 227, 47, 170, 241, 14, 222, 56, 112, 144, 173, 155, 183, 48, 30, 181,
163, 150, 190, 38, 124, 147, 97, 79, 215, 186, 28, 134, 129, 217, 108, 198, 250, 245, 235, 249, 217, 159, 253, 25, 62, 243, 153, 255, 144, 209, 104, 4,
17, 180, 76, 50, 147, 204, 36, 34, 200, 12, 32, 153, 203, 76, 34, 130, 136, 32, 51, 137, 8, 222, 98, 155, 75, 204, 156, 109, 108, 115, 73, 96,
155, 136, 192, 54, 115, 17, 96, 27, 8, 230, 108, 48, 38, 194, 72, 102, 24, 10, 48, 96, 90, 107, 44, 45, 45, 50, 30, 143, 24, 47, 140, 217,
190, 109, 59, 207, 62, 251, 60, 103, 207, 157, 7, 76, 68, 114, 232, 208, 97, 14, 29, 60, 200, 61, 247, 220, 205, 242, 242, 50, 182, 136, 48, 182,
168, 26, 176, 141, 109, 36, 17, 17, 216, 98, 110, 231, 206, 157, 200, 197, 171, 251, 95, 165, 74, 145, 173, 189, 43, 35, 54, 206, 166, 179, 71, 175,
191, 110, 207, 236, 181, 215, 14, 240, 23, 209, 248, 22, 142, 30, 59, 198, 198, 13, 203, 196, 168, 29, 173, 97, 248, 125, 219, 71, 183, 108, 218, 116,
237, 21, 59, 119, 236, 184, 249, 230, 155, 248, 233, 191, 247, 119, 249, 244, 143, 124, 154, 241, 194, 136, 204, 32, 72, 34, 130, 204, 36, 34, 136, 8,
50, 147, 204, 36, 34, 137, 8, 34, 130, 204, 36, 34, 176, 77, 68, 96, 27, 155, 11, 2, 169, 0, 19, 145, 128, 177, 185, 36, 192, 64, 96, 34,
130, 32, 144, 10, 108, 100, 35, 21, 198, 204, 73, 5, 24, 16, 54, 23, 24, 48, 182, 176, 204, 250, 245, 203, 156, 61, 115, 150, 23, 94, 120, 9,
99, 48, 100, 118, 28, 56, 112, 144, 147, 39, 79, 241, 192, 253, 247, 50, 26, 53, 108, 83, 85, 216, 2, 2, 73, 100, 114, 145, 36, 108, 176, 205,
206, 157, 59, 56, 117, 242, 36, 135, 14, 29, 37, 35, 35, 91, 222, 29, 48, 153, 76, 214, 30, 187, 238, 186, 61, 126, 253, 192, 27, 124, 167, 26,
223, 198, 241, 19, 39, 57, 124, 232, 40, 191, 250, 107, 191, 186, 242, 145, 143, 124, 100, 239, 39, 63, 249, 3, 31, 249, 129, 71, 30, 185, 229, 147,
159, 250, 36, 119, 190, 235, 93, 100, 75, 178, 53, 130, 32, 35, 200, 76, 230, 34, 160, 181, 198, 92, 102, 146, 153, 180, 214, 176, 77, 68, 48, 23,
17, 204, 73, 34, 34, 184, 196, 68, 128, 109, 222, 34, 21, 127, 78, 198, 128, 45, 100, 97, 132, 108, 2, 144, 4, 8, 201, 128, 1, 99, 131, 84,
72, 66, 18, 17, 73, 68, 176, 113, 211, 70, 158, 123, 246, 121, 206, 159, 95, 37, 162, 17, 17, 24, 216, 191, 111, 63, 227, 209, 136, 119, 189, 235,
14, 108, 99, 11, 219, 204, 217, 194, 54, 182, 128, 192, 22, 96, 50, 147, 29, 59, 182, 179, 111, 223, 126, 206, 157, 59, 79, 16, 173, 107, 237, 222,
214, 186, 231, 118, 108, 223, 250, 194, 166, 205, 155, 121, 227, 141, 131, 124, 39, 146, 239, 208, 149, 87, 94, 193, 246, 237, 91, 127, 96, 215, 174, 157,
31, 222, 185, 115, 7, 203, 203, 235, 80, 21, 216, 96, 46, 138, 72, 164, 194, 54, 115, 182, 153, 139, 72, 34, 130, 203, 145, 68, 102, 146, 153, 128,
153, 139, 8, 254, 159, 108, 176, 13, 54, 68, 32, 9, 73, 24, 227, 8, 8, 254, 156, 36, 34, 130, 136, 196, 54, 182, 0, 19, 1, 17, 9, 24,
73, 92, 113, 197, 14, 238, 124, 215, 237, 100, 54, 90, 107, 216, 38, 35, 176, 204, 111, 252, 250, 191, 224, 241, 175, 61, 65, 132, 145, 140, 36, 36,
1, 129, 109, 108, 83, 85, 216, 198, 54, 132, 216, 177, 115, 27, 239, 123, 223, 131, 216, 102, 24, 122, 100, 109, 203, 204, 255, 246, 232, 241, 55, 111,
24, 143, 70, 124, 167, 26, 223, 129, 47, 252, 225, 239, 115, 246, 244, 233, 77, 155, 55, 111, 254, 149, 165, 165, 117, 183, 102, 36, 68, 210, 90, 66,
4, 217, 146, 140, 196, 230, 162, 214, 146, 136, 192, 134, 204, 36, 34, 176, 33, 34, 136, 8, 50, 147, 214, 26, 182, 249, 127, 51, 118, 17, 145, 216,
6, 204, 156, 36, 108, 17, 128, 36, 28, 38, 8, 176, 40, 21, 24, 44, 35, 21, 145, 96, 11, 169, 144, 138, 57, 219, 84, 21, 182, 144, 140, 100,
2, 51, 234, 70, 60, 245, 141, 167, 233, 251, 129, 42, 97, 27, 34, 56, 191, 178, 202, 225, 35, 135, 121, 240, 161, 7, 88, 94, 183, 12, 24, 169,
176, 69, 4, 84, 137, 170, 1, 219, 72, 2, 11, 89, 108, 218, 188, 145, 67, 7, 143, 112, 236, 232, 9, 32, 232, 186, 182, 43, 35, 125, 246, 236,
217, 63, 188, 238, 218, 107, 244, 198, 193, 67, 124, 59, 141, 111, 227, 119, 126, 251, 179, 108, 218, 180, 145, 174, 235, 62, 182, 126, 253, 250, 159, 233,
90, 55, 142, 76, 8, 46, 138, 8, 34, 147, 136, 4, 67, 215, 117, 68, 4, 16, 180, 214, 0, 19, 209, 200, 76, 34, 130, 185, 136, 192, 54, 115,
182, 121, 139, 109, 108, 51, 103, 27, 73, 204, 217, 134, 0, 89, 4, 1, 6, 169, 48, 198, 50, 82, 17, 128, 45, 108, 99, 27, 73, 128, 145, 140,
36, 108, 99, 11, 219, 204, 73, 197, 186, 165, 37, 94, 122, 121, 31, 39, 142, 191, 73, 73, 188, 37, 51, 56, 116, 232, 48, 155, 54, 109, 228, 206,
59, 111, 71, 18, 182, 144, 4, 4, 96, 230, 108, 99, 155, 108, 129, 84, 140, 186, 17, 93, 55, 226, 249, 231, 95, 64, 50, 153, 73, 102, 222, 212,
186, 246, 39, 227, 241, 248, 213, 173, 219, 182, 112, 248, 240, 81, 190, 149, 228, 219, 24, 141, 70, 124, 245, 79, 30, 111, 11, 11, 11, 63, 220, 186,
92, 150, 141, 100, 34, 146, 204, 4, 2, 149, 80, 21, 17, 96, 27, 219, 68, 112, 129, 137, 72, 108, 97, 27, 73, 204, 217, 70, 18, 182, 105, 173,
49, 103, 155, 185, 204, 64, 18, 96, 50, 147, 185, 214, 26, 173, 37, 115, 146, 192, 64, 4, 24, 146, 32, 34, 33, 76, 68, 128, 3, 27, 34, 130,
136, 0, 140, 13, 17, 193, 55, 153, 185, 165, 165, 69, 110, 187, 245, 102, 50, 147, 204, 68, 18, 96, 108, 3, 201, 231, 126, 239, 243, 28, 58, 120,
24, 48, 182, 153, 147, 10, 219, 68, 4, 111, 145, 140, 13, 170, 226, 198, 27, 246, 176, 123, 247, 213, 244, 179, 25, 179, 217, 20, 169, 182, 183, 214,
254, 211, 217, 172, 95, 94, 90, 90, 226, 219, 73, 190, 141, 108, 112, 219, 237, 55, 95, 51, 234, 186, 15, 102, 36, 17, 144, 105, 112, 97, 27, 91,
24, 51, 103, 155, 8, 136, 0, 27, 36, 3, 198, 22, 118, 97, 23, 146, 176, 141, 36, 108, 83, 85, 84, 21, 85, 3, 32, 108, 176, 141, 109, 108,
19, 1, 146, 80, 153, 57, 89, 148, 197, 69, 6, 99, 176, 145, 140, 109, 34, 32, 2, 108, 115, 73, 16, 17, 216, 38, 34, 176, 141, 84, 128, 32,
204, 77, 55, 94, 199, 104, 220, 97, 23, 173, 5, 17, 92, 96, 198, 227, 17, 111, 28, 56, 200, 23, 190, 240, 40, 96, 36, 243, 150, 170, 162, 74,
24, 99, 138, 26, 122, 40, 225, 18, 227, 81, 227, 93, 119, 220, 138, 129, 26, 196, 48, 12, 4, 254, 104, 102, 124, 111, 215, 26, 223, 78, 242, 109,
44, 45, 45, 49, 30, 47, 220, 215, 186, 182, 199, 54, 182, 144, 132, 44, 170, 6, 108, 131, 65, 18, 85, 66, 50, 16, 188, 165, 74, 84, 21, 85,
133, 109, 164, 162, 170, 136, 224, 2, 35, 21, 182, 200, 12, 192, 216, 102, 174, 74, 216, 66, 50, 85, 3, 165, 66, 50, 153, 137, 45, 84, 194, 54,
182, 145, 4, 2, 99, 74, 133, 36, 230, 170, 4, 4, 17, 96, 27, 201, 216, 226, 45, 42, 177, 243, 138, 237, 92, 121, 229, 14, 50, 131, 136, 0,
76, 102, 163, 181, 198, 220, 163, 143, 126, 137, 19, 39, 78, 146, 13, 36, 33, 137, 136, 192, 22, 150, 176, 5, 54, 17, 65, 112, 201, 245, 55, 92,
203, 134, 245, 203, 76, 166, 19, 250, 126, 64, 210, 198, 204, 248, 204, 217, 243, 231, 199, 239, 126, 207, 3, 124, 43, 201, 183, 240, 220, 115, 207, 114,
195, 13, 123, 232, 186, 238, 193, 136, 24, 219, 198, 54, 146, 176, 77, 68, 18, 17, 128, 201, 76, 50, 19, 91, 72, 162, 170, 152, 139, 128, 214, 146,
136, 96, 206, 22, 32, 134, 161, 167, 170, 7, 132, 45, 164, 66, 50, 182, 137, 8, 50, 131, 136, 224, 146, 32, 34, 136, 0, 3, 153, 13, 2, 108,
33, 137, 57, 99, 108, 99, 155, 57, 219, 216, 70, 18, 182, 153, 179, 69, 68, 48, 103, 153, 185, 229, 229, 37, 174, 185, 230, 106, 108, 211, 90, 3,
130, 57, 73, 116, 221, 136, 3, 175, 31, 228, 79, 159, 122, 6, 219, 72, 162, 170, 168, 42, 170, 10, 219, 216, 252, 185, 136, 192, 18, 155, 55, 109,
228, 202, 171, 175, 96, 24, 6, 134, 97, 96, 24, 138, 11, 30, 94, 88, 24, 223, 213, 90, 227, 91, 73, 190, 133, 87, 246, 189, 196, 231, 191, 240,
229, 133, 209, 104, 116, 71, 102, 98, 155, 32, 136, 8, 144, 209, 48, 96, 153, 32, 176, 133, 93, 12, 53, 96, 139, 57, 73, 204, 217, 6, 140, 109,
34, 2, 91, 72, 66, 18, 54, 68, 4, 182, 145, 10, 91, 72, 194, 6, 219, 216, 34, 18, 108, 99, 131, 101, 84, 3, 168, 176, 184, 32, 176, 193,
22, 96, 230, 108, 144, 4, 24, 16, 146, 1, 51, 103, 27, 99, 108, 131, 69, 6, 92, 187, 251, 106, 70, 93, 135, 109, 90, 107, 204, 217, 6, 204,
172, 31, 248, 202, 87, 191, 206, 172, 47, 36, 17, 17, 72, 34, 49, 137, 73, 192, 50, 150, 40, 137, 185, 214, 53, 174, 189, 230, 106, 230, 170, 68,
213, 128, 228, 93, 45, 242, 145, 43, 175, 220, 193, 67, 15, 222, 207, 59, 73, 190, 5, 73, 44, 173, 91, 220, 16, 25, 187, 249, 51, 178, 176, 141,
13, 198, 204, 73, 194, 54, 102, 206, 148, 6, 108, 35, 137, 97, 24, 24, 134, 162, 170, 144, 132, 84, 216, 96, 27, 201, 216, 194, 54, 146, 145, 140,
100, 108, 35, 139, 170, 66, 18, 85, 3, 82, 97, 11, 108, 2, 19, 54, 145, 208, 50, 1, 99, 132, 109, 108, 3, 193, 156, 205, 159, 49, 54, 23,
25, 3, 102, 78, 42, 84, 3, 187, 118, 237, 100, 121, 121, 153, 136, 32, 2, 50, 147, 136, 128, 8, 34, 147, 103, 159, 125, 158, 147, 39, 79, 49,
103, 131, 109, 192, 96, 99, 137, 136, 192, 64, 4, 216, 66, 42, 118, 94, 177, 157, 174, 107, 12, 195, 192, 48, 20, 82, 113, 193, 199, 95, 127, 245,
208, 102, 219, 188, 147, 228, 91, 24, 141, 58, 22, 198, 11, 75, 192, 14, 219, 216, 198, 50, 146, 176, 133, 109, 36, 97, 27, 12, 182, 49, 96, 115,
129, 137, 8, 170, 132, 109, 36, 3, 198, 6, 169, 136, 8, 108, 51, 12, 133, 36, 164, 34, 2, 108, 35, 23, 118, 225, 48, 229, 226, 146, 192, 54,
210, 192, 225, 195, 135, 120, 230, 153, 167, 121, 225, 133, 231, 57, 118, 252, 24, 114, 145, 17, 216, 66, 42, 108, 17, 1, 17, 32, 25, 73, 72, 133,
109, 130, 96, 206, 24, 12, 178, 217, 188, 121, 35, 203, 203, 75, 64, 0, 65, 107, 141, 214, 26, 151, 152, 227, 199, 79, 240, 250, 107, 175, 147, 153,
72, 194, 54, 16, 148, 132, 13, 182, 177, 4, 4, 82, 97, 196, 230, 45, 155, 88, 92, 92, 64, 85, 84, 13, 12, 195, 128, 237, 59, 51, 243, 142,
204, 224, 157, 116, 124, 11, 163, 174, 195, 242, 250, 8, 22, 165, 129, 200, 14, 34, 176, 205, 156, 109, 170, 6, 130, 70, 89, 180, 174, 35, 72, 44,
81, 12, 200, 34, 34, 176, 141, 109, 34, 184, 32, 201, 12, 170, 10, 201, 204, 101, 6, 146, 1, 35, 9, 219, 148, 138, 136, 196, 18, 24, 130, 11,
100, 158, 254, 198, 55, 248, 173, 223, 254, 44, 71, 14, 31, 165, 4, 91, 54, 109, 230, 246, 59, 110, 229, 193, 135, 30, 228, 202, 171, 174, 36, 34,
168, 42, 36, 81, 85, 128, 1, 243, 22, 169, 168, 42, 108, 99, 140, 37, 70, 227, 17, 155, 54, 111, 228, 240, 145, 227, 16, 102, 46, 34, 136, 8,
34, 146, 26, 6, 246, 237, 123, 141, 123, 239, 126, 23, 184, 8, 11, 243, 103, 108, 50, 130, 146, 168, 42, 48, 80, 98, 121, 105, 137, 197, 165, 5,
78, 159, 62, 75, 14, 73, 215, 4, 205, 155, 51, 121, 223, 194, 194, 226, 99, 239, 126, 232, 94, 190, 250, 181, 111, 240, 118, 29, 239, 224, 7, 30,
249, 56, 88, 188, 242, 202, 43, 55, 222, 183, 241, 238, 245, 94, 24, 97, 11, 57, 104, 36, 146, 201, 228, 2, 33, 65, 107, 13, 11, 8, 99, 12,
134, 48, 36, 137, 84, 68, 4, 32, 106, 16, 163, 241, 8, 2, 108, 17, 17, 92, 20, 70, 26, 144, 141, 109, 108, 3, 6, 131, 74, 204, 157, 124,
243, 77, 126, 231, 119, 254, 53, 127, 250, 212, 94, 206, 157, 95, 101, 24, 6, 146, 198, 222, 103, 159, 227, 235, 143, 127, 157, 135, 31, 254, 48, 247,
63, 120, 31, 163, 241, 2, 146, 177, 3, 91, 216, 102, 78, 18, 54, 216, 198, 18, 150, 49, 166, 181, 198, 120, 60, 38, 2, 186, 236, 152, 14, 61,
115, 54, 100, 38, 195, 96, 94, 123, 245, 0, 53, 244, 128, 1, 19, 17, 72, 166, 170, 104, 173, 97, 46, 176, 177, 141, 92, 68, 4, 75, 139, 11,
84, 137, 42, 161, 18, 170, 66, 248, 125, 199, 79, 188, 185, 48, 234, 186, 41, 151, 209, 241, 14, 178, 5, 63, 253, 247, 254, 179, 117, 63, 242, 233,
31, 254, 79, 238, 190, 231, 206, 101, 73, 100, 38, 216, 24, 131, 133, 20, 68, 4, 151, 4, 32, 108, 209, 90, 67, 18, 9, 84, 152, 32, 56, 115,
234, 20, 79, 61, 249, 4, 47, 189, 242, 10, 235, 214, 45, 243, 61, 223, 243, 65, 246, 236, 185, 14, 147, 12, 85, 204, 25, 99, 137, 57, 219, 148,
6, 194, 32, 137, 140, 224, 141, 131, 7, 121, 225, 165, 87, 56, 125, 230, 28, 147, 217, 12, 167, 32, 130, 213, 179, 107, 156, 223, 187, 194, 177, 227,
39, 56, 118, 252, 56, 15, 127, 223, 135, 25, 47, 44, 0, 198, 54, 146, 169, 42, 36, 97, 11, 217, 4, 96, 46, 48, 100, 4, 11, 139, 11, 4,
1, 152, 214, 26, 195, 48, 144, 25, 64, 80, 85, 28, 63, 118, 130, 233, 100, 202, 226, 210, 24, 8, 108, 192, 134, 8, 74, 66, 85, 16, 193, 92,
56, 104, 153, 44, 44, 44, 82, 85, 216, 66, 54, 146, 136, 204, 59, 22, 198, 227, 45, 16, 71, 184, 140, 142, 119, 48, 110, 141, 219, 110, 190, 233,
190, 233, 116, 242, 33, 219, 216, 66, 18, 17, 1, 81, 32, 200, 108, 132, 131, 204, 164, 170, 128, 36, 34, 176, 1, 131, 109, 144, 56, 124, 248, 16,
159, 253, 236, 255, 197, 147, 95, 127, 130, 147, 167, 78, 209, 151, 248, 218, 227, 95, 231, 103, 126, 230, 103, 184, 254, 250, 235, 81, 9, 115, 65, 128,
36, 108, 176, 69, 73, 132, 185, 192, 148, 138, 35, 71, 15, 115, 238, 220, 121, 102, 195, 140, 133, 205, 29, 59, 174, 217, 201, 120, 97, 204, 137, 163,
39, 56, 125, 240, 44, 7, 15, 31, 229, 247, 62, 247, 111, 200, 22, 124, 232, 195, 255, 30, 173, 107, 84, 21, 182, 128, 128, 0, 91, 96, 99, 9,
91, 216, 166, 36, 250, 217, 64, 169, 144, 76, 102, 71, 102, 34, 9, 219, 100, 54, 78, 158, 60, 197, 100, 50, 101, 97, 113, 140, 84, 216, 92, 96,
34, 192, 18, 182, 152, 179, 140, 44, 140, 137, 12, 84, 69, 149, 168, 42, 134, 128, 110, 60, 222, 158, 153, 87, 3, 71, 184, 140, 228, 50, 126, 240,
83, 159, 96, 235, 230, 141, 140, 23, 198, 31, 30, 250, 126, 107, 213, 0, 4, 146, 144, 10, 187, 176, 11, 91, 204, 85, 21, 182, 169, 234, 177, 6,
108, 33, 21, 200, 28, 57, 116, 144, 95, 255, 231, 255, 156, 47, 124, 225, 139, 236, 59, 240, 58, 167, 166, 167, 89, 141, 21, 190, 241, 220, 147, 252,
198, 111, 254, 6, 171, 171, 171, 88, 198, 18, 150, 128, 32, 50, 104, 93, 71, 102, 98, 27, 91, 216, 197, 234, 234, 121, 134, 26, 136, 81, 114, 199,
125, 119, 242, 209, 135, 63, 198, 13, 55, 220, 194, 109, 247, 220, 206, 134, 157, 235, 25, 106, 224, 248, 137, 147, 252, 209, 23, 190, 200, 222, 189, 123,
177, 140, 84, 216, 198, 54, 82, 97, 21, 150, 168, 18, 146, 32, 2, 108, 102, 179, 25, 173, 53, 34, 130, 170, 66, 18, 153, 137, 109, 90, 75, 86,
86, 86, 153, 76, 103, 128, 177, 132, 85, 84, 21, 118, 81, 26, 48, 2, 12, 22, 152, 139, 102, 211, 41, 6, 36, 49, 235, 123, 6, 9, 73, 27,
171, 106, 183, 36, 46, 39, 185, 12, 219, 188, 126, 248, 248, 82, 68, 190, 123, 54, 155, 49, 157, 78, 121, 139, 109, 170, 10, 219, 72, 194, 54, 16,
128, 33, 12, 97, 164, 30, 44, 206, 156, 62, 197, 191, 250, 173, 207, 242, 229, 199, 190, 194, 145, 19, 199, 89, 220, 182, 196, 109, 15, 189, 139, 59,
31, 186, 135, 93, 55, 93, 201, 87, 158, 248, 99, 246, 238, 125, 22, 34, 144, 196, 48, 12, 16, 208, 181, 70, 70, 50, 234, 58, 186, 174, 67, 18,
182, 105, 173, 209, 117, 29, 163, 197, 17, 91, 55, 110, 99, 247, 230, 107, 57, 245, 250, 73, 22, 218, 2, 155, 182, 110, 196, 36, 125, 63, 112, 232,
232, 81, 30, 251, 242, 99, 156, 57, 125, 138, 57, 73, 72, 133, 36, 108, 35, 137, 57, 27, 176, 233, 251, 129, 149, 213, 21, 130, 160, 235, 58, 34,
2, 219, 68, 4, 182, 177, 205, 48, 12, 172, 172, 172, 128, 193, 22, 178, 80, 21, 85, 198, 6, 219, 72, 194, 152, 204, 196, 130, 149, 149, 85, 44,
97, 9, 219, 216, 198, 246, 66, 68, 236, 204, 12, 238, 184, 253, 86, 222, 46, 185, 140, 22, 201, 66, 215, 109, 25, 117, 163, 91, 170, 138, 213, 149,
85, 134, 161, 71, 42, 170, 10, 73, 216, 32, 137, 170, 98, 24, 122, 164, 194, 22, 146, 24, 106, 96, 152, 205, 248, 234, 87, 190, 204, 99, 143, 125,
133, 227, 111, 158, 34, 70, 112, 195, 237, 55, 241, 137, 135, 63, 201, 117, 219, 111, 96, 195, 120, 19, 238, 204, 87, 190, 242, 37, 166, 147, 53, 164,
98, 46, 51, 105, 109, 68, 215, 117, 100, 54, 34, 130, 185, 42, 177, 115, 199, 118, 182, 109, 221, 68, 20, 60, 245, 196, 83, 252, 247, 255, 228, 159,
240, 248, 19, 95, 231, 141, 131, 7, 56, 127, 102, 5, 44, 108, 51, 89, 235, 217, 183, 239, 85, 94, 126, 233, 101, 192, 96, 97, 21, 72, 216, 6,
11, 169, 8, 32, 34, 56, 123, 238, 28, 43, 231, 87, 137, 12, 50, 147, 204, 32, 34, 136, 8, 70, 163, 17, 17, 129, 108, 134, 190, 71, 18, 230,
2, 155, 136, 0, 12, 152, 32, 152, 179, 77, 4, 204, 102, 61, 231, 206, 173, 80, 18, 37, 1, 70, 50, 146, 136, 136, 45, 139, 139, 75, 128, 121,
187, 228, 50, 50, 147, 214, 186, 43, 91, 230, 214, 201, 218, 132, 179, 231, 206, 97, 23, 85, 61, 85, 3, 182, 169, 42, 84, 133, 36, 36, 161, 18,
42, 83, 37, 112, 112, 228, 216, 17, 254, 237, 151, 31, 227, 240, 145, 99, 244, 253, 64, 118, 29, 145, 240, 252, 222, 23, 57, 248, 202, 33, 78, 188,
113, 2, 15, 226, 245, 215, 95, 229, 220, 217, 211, 168, 138, 136, 0, 130, 136, 32, 72, 130, 164, 101, 71, 70, 99, 24, 6, 110, 190, 229, 22, 30,
254, 190, 135, 89, 236, 22, 57, 119, 234, 44, 125, 78, 217, 184, 115, 153, 55, 143, 188, 201, 153, 35, 103, 120, 75, 73, 156, 61, 187, 194, 190, 125,
251, 25, 102, 83, 194, 194, 26, 176, 132, 101, 176, 176, 197, 92, 100, 114, 234, 228, 105, 166, 147, 25, 173, 117, 216, 32, 153, 204, 36, 34, 136, 8,
50, 147, 140, 128, 0, 169, 176, 5, 1, 132, 137, 0, 12, 4, 151, 68, 16, 145, 156, 59, 191, 194, 202, 234, 20, 3, 178, 40, 11, 169, 168, 42,
134, 161, 182, 92, 125, 213, 46, 170, 196, 219, 117, 92, 86, 96, 188, 35, 34, 150, 135, 26, 56, 126, 236, 56, 183, 220, 114, 35, 153, 73, 4, 12,
67, 79, 102, 16, 209, 48, 102, 212, 141, 48, 194, 6, 27, 236, 224, 185, 189, 207, 240, 210, 43, 175, 176, 186, 54, 1, 139, 217, 234, 148, 253, 47,
191, 202, 243, 123, 95, 228, 232, 254, 35, 140, 23, 199, 108, 221, 180, 153, 171, 175, 186, 134, 241, 226, 34, 165, 129, 116, 71, 70, 48, 151, 153, 216,
6, 76, 182, 196, 54, 24, 62, 240, 190, 247, 243, 218, 254, 3, 252, 206, 231, 126, 159, 129, 162, 95, 233, 169, 89, 193, 192, 5, 1, 8, 28, 244,
125, 241, 230, 137, 147, 172, 173, 173, 177, 184, 184, 136, 205, 69, 182, 144, 204, 37, 6, 7, 135, 14, 29, 161, 170, 176, 133, 84, 204, 217, 38, 34,
152, 107, 173, 163, 27, 117, 188, 69, 18, 115, 182, 129, 192, 54, 182, 201, 72, 140, 48, 230, 212, 201, 83, 172, 156, 95, 193, 6, 73, 72, 66, 18,
150, 32, 98, 116, 231, 29, 215, 243, 228, 55, 158, 230, 237, 146, 203, 48, 6, 123, 83, 85, 45, 16, 193, 241, 227, 199, 25, 134, 162, 170, 144, 10,
169, 176, 65, 18, 146, 40, 21, 146, 40, 21, 178, 88, 89, 89, 225, 185, 103, 159, 227, 212, 169, 51, 148, 4, 4, 158, 193, 155, 7, 78, 226, 126,
96, 231, 238, 109, 44, 46, 45, 178, 97, 113, 35, 31, 250, 208, 135, 25, 141, 58, 36, 129, 33, 34, 136, 8, 34, 130, 174, 235, 152, 179, 13, 152,
89, 63, 37, 187, 224, 227, 159, 120, 152, 59, 239, 184, 149, 24, 96, 88, 27, 176, 192, 24, 48, 16, 204, 5, 48, 235, 167, 76, 167, 83, 84, 133,
37, 84, 3, 85, 133, 45, 108, 97, 204, 234, 218, 132, 3, 7, 14, 146, 153, 216, 102, 46, 2, 36, 81, 85, 12, 195, 128, 36, 48, 96, 99, 192,
50, 54, 68, 4, 96, 34, 130, 140, 68, 18, 17, 65, 68, 112, 228, 232, 113, 166, 179, 25, 115, 54, 88, 198, 54, 54, 248, 130, 233, 84, 216, 230,
237, 146, 203, 49, 16, 44, 218, 110, 92, 112, 242, 228, 105, 206, 157, 91, 193, 134, 97, 24, 144, 140, 45, 192, 72, 162, 170, 24, 106, 160, 159, 13,
212, 32, 206, 156, 57, 195, 129, 55, 14, 49, 153, 204, 128, 192, 4, 118, 160, 85, 56, 119, 104, 149, 115, 135, 87, 153, 157, 238, 185, 255, 158, 251,
216, 189, 251, 106, 134, 217, 0, 6, 219, 216, 38, 35, 136, 8, 192, 68, 4, 17, 80, 26, 168, 26, 232, 251, 158, 205, 155, 55, 241, 131, 63, 248,
8, 123, 246, 92, 205, 120, 212, 8, 243, 103, 204, 92, 182, 100, 97, 97, 204, 210, 210, 34, 45, 27, 37, 81, 42, 228, 194, 42, 130, 32, 8, 50,
147, 195, 71, 143, 113, 224, 141, 35, 188, 37, 51, 201, 108, 100, 38, 223, 100, 250, 190, 71, 50, 146, 48, 6, 140, 100, 44, 19, 17, 200, 66, 22,
65, 82, 130, 3, 7, 14, 33, 25, 8, 230, 36, 83, 37, 100, 35, 41, 86, 87, 2, 91, 188, 93, 114, 25, 14, 99, 46, 8, 192, 112, 250, 244,
105, 14, 31, 62, 140, 84, 216, 92, 96, 134, 97, 160, 170, 176, 11, 187, 176, 11, 185, 48, 197, 233, 51, 167, 57, 123, 230, 44, 85, 133, 13, 182,
177, 205, 156, 21, 184, 96, 121, 121, 29, 239, 125, 223, 187, 105, 45, 24, 212, 51, 212, 0, 54, 182, 169, 18, 85, 133, 108, 130, 192, 54, 17, 129,
45, 250, 126, 198, 116, 58, 225, 218, 107, 119, 243, 3, 159, 248, 40, 215, 237, 217, 205, 198, 13, 203, 44, 140, 71, 116, 173, 49, 30, 117, 172, 95,
183, 196, 230, 77, 235, 217, 185, 99, 27, 163, 209, 152, 42, 33, 9, 201, 24, 48, 38, 34, 176, 205, 179, 123, 95, 100, 50, 153, 162, 18, 153, 13,
155, 139, 34, 130, 57, 219, 216, 198, 54, 198, 204, 89, 102, 206, 22, 145, 129, 44, 50, 146, 204, 68, 50, 43, 231, 215, 120, 227, 141, 67, 72, 66,
18, 182, 193, 198, 54, 182, 176, 209, 234, 116, 130, 109, 222, 174, 227, 114, 12, 97, 144, 68, 107, 73, 245, 197, 171, 251, 95, 229, 250, 235, 247, 208,
117, 141, 8, 144, 76, 215, 113, 129, 145, 68, 102, 146, 153, 72, 48, 157, 174, 49, 155, 205, 176, 205, 37, 193, 156, 109, 230, 108, 115, 195, 13, 215,
115, 195, 13, 215, 209, 15, 61, 182, 201, 12, 140, 1, 67, 0, 1, 65, 64, 152, 136, 96, 78, 18, 85, 3, 195, 208, 35, 137, 219, 239, 184, 141,
8, 248, 250, 227, 79, 112, 236, 248, 9, 38, 107, 83, 34, 96, 221, 210, 18, 187, 118, 109, 231, 198, 27, 111, 32, 2, 36, 161, 42, 164, 98, 206,
152, 108, 201, 177, 99, 111, 242, 252, 243, 47, 19, 36, 173, 5, 174, 129, 8, 144, 132, 109, 108, 19, 17, 216, 134, 224, 207, 152, 136, 192, 134, 136,
224, 34, 131, 49, 17, 65, 100, 227, 196, 137, 55, 57, 122, 244, 4, 153, 9, 24, 219, 204, 101, 6, 182, 177, 125, 230, 137, 39, 255, 4, 203, 188,
93, 199, 101, 132, 184, 72, 37, 164, 194, 14, 246, 239, 127, 141, 123, 78, 158, 100, 219, 182, 45, 216, 38, 2, 164, 192, 54, 153, 137, 13, 146, 1,
179, 176, 176, 64, 107, 73, 70, 80, 46, 32, 136, 8, 230, 194, 176, 176, 48, 230, 221, 15, 221, 207, 186, 117, 235, 24, 134, 129, 139, 28, 212, 208,
83, 53, 166, 181, 129, 140, 6, 153, 72, 194, 54, 115, 153, 73, 85, 49, 212, 128, 52, 144, 4, 183, 223, 118, 11, 219, 183, 109, 225, 181, 87, 95,
227, 212, 169, 147, 148, 196, 250, 245, 235, 185, 118, 207, 53, 92, 125, 205, 85, 72, 61, 182, 136, 4, 156, 96, 46, 16, 67, 153, 175, 125, 253, 105,
206, 156, 57, 71, 4, 32, 8, 131, 37, 108, 19, 17, 68, 4, 17, 65, 102, 146, 153, 88, 98, 46, 50, 80, 137, 200, 192, 134, 200, 192, 54, 150,
201, 113, 240, 210, 43, 251, 57, 119, 126, 133, 136, 68, 50, 173, 129, 109, 170, 68, 132, 80, 213, 217, 51, 167, 207, 98, 155, 183, 235, 184, 44, 99,
3, 1, 25, 193, 80, 197, 241, 227, 39, 121, 118, 239, 243, 124, 207, 7, 223, 139, 84, 124, 83, 210, 154, 169, 42, 90, 107, 216, 102, 211, 198, 141,
108, 219, 190, 149, 215, 14, 28, 164, 175, 1, 108, 36, 136, 128, 209, 168, 113, 195, 13, 123, 120, 224, 254, 251, 1, 35, 9, 219, 68, 4, 82, 33,
21, 195, 80, 100, 152, 200, 100, 46, 34, 136, 8, 50, 19, 219, 168, 138, 161, 6, 40, 211, 50, 217, 190, 99, 59, 219, 183, 111, 99, 168, 1, 219,
180, 214, 145, 25, 88, 133, 36, 108, 99, 27, 155, 139, 50, 130, 151, 247, 189, 206, 51, 79, 63, 135, 109, 8, 232, 85, 72, 98, 46, 34, 152, 139,
8, 108, 115, 145, 161, 36, 36, 33, 153, 200, 32, 8, 100, 1, 193, 69, 1, 179, 89, 207, 222, 189, 47, 32, 153, 174, 131, 204, 64, 18, 182, 177,
132, 36, 151, 244, 166, 44, 94, 125, 253, 13, 222, 46, 185, 12, 217, 216, 194, 50, 17, 129, 36, 50, 131, 103, 158, 121, 150, 163, 71, 143, 99, 27,
73, 84, 9, 169, 24, 134, 1, 91, 72, 98, 24, 138, 165, 165, 37, 222, 243, 158, 247, 176, 121, 243, 38, 90, 38, 4, 180, 46, 89, 92, 90, 96,
215, 149, 59, 249, 232, 199, 30, 102, 215, 149, 87, 48, 12, 3, 85, 3, 195, 48, 80, 53, 32, 23, 170, 194, 22, 146, 81, 9, 201, 24, 147, 145,
72, 34, 34, 176, 141, 74, 12, 195, 64, 63, 12, 12, 195, 64, 97, 218, 104, 196, 104, 97, 129, 236, 26, 146, 40, 21, 182, 193, 32, 153, 8, 147,
25, 156, 58, 117, 150, 127, 251, 197, 175, 194, 196, 203, 222, 0, 0, 32, 0, 73, 68, 65, 84, 48, 153, 204, 192, 129, 10, 178, 53, 200, 32, 91,
35, 34, 168, 42, 190, 41, 144, 68, 63, 155, 17, 4, 216, 216, 134, 128, 32, 192, 96, 155, 214, 26, 135, 14, 29, 101, 255, 190, 215, 201, 72, 34,
130, 185, 136, 64, 18, 6, 50, 98, 5, 124, 156, 119, 208, 113, 25, 150, 145, 189, 58, 194, 131, 236, 142, 11, 50, 147, 179, 103, 207, 243, 199, 127,
252, 85, 62, 254, 241, 135, 89, 92, 92, 4, 140, 36, 34, 2, 48, 54, 23, 4, 153, 201, 3, 15, 61, 64, 180, 228, 171, 127, 242, 56, 7, 222,
56, 192, 208, 247, 236, 220, 185, 131, 247, 127, 224, 189, 188, 251, 221, 15, 32, 13, 216, 198, 54, 17, 193, 48, 64, 63, 43, 70, 157, 104, 77, 68,
64, 102, 34, 9, 149, 32, 160, 181, 164, 69, 16, 54, 97, 46, 178, 132, 128, 4, 108, 48, 16, 97, 108, 161, 18, 178, 137, 8, 34, 128, 8, 206,
173, 174, 242, 249, 63, 250, 18, 135, 14, 31, 35, 34, 32, 32, 19, 100, 147, 17, 244, 85, 216, 69, 132, 0, 49, 39, 21, 195, 32, 250, 161, 144,
5, 17, 68, 128, 36, 50, 18, 27, 50, 3, 8, 158, 120, 226, 25, 78, 159, 57, 71, 107, 13, 27, 36, 17, 209, 32, 184, 168, 164, 21, 201, 71,
9, 115, 57, 29, 151, 97, 11, 236, 73, 16, 195, 208, 247, 157, 36, 136, 100, 238, 133, 231, 95, 226, 170, 43, 175, 224, 129, 7, 239, 67, 226, 162,
136, 192, 54, 146, 200, 76, 32, 137, 8, 30, 122, 247, 131, 220, 115, 207, 221, 156, 58, 121, 146, 126, 232, 89, 183, 110, 29, 219, 182, 109, 165, 181,
198, 48, 20, 96, 108, 19, 17, 128, 169, 234, 169, 234, 169, 161, 145, 217, 40, 21, 150, 176, 197, 92, 70, 35, 51, 201, 76, 50, 2, 1, 6, 74,
194, 24, 59, 200, 108, 88, 162, 84, 216, 230, 18, 19, 1, 231, 206, 175, 241, 232, 23, 255, 152, 151, 95, 218, 71, 68, 32, 21, 85, 3, 146, 128,
64, 18, 153, 9, 85, 100, 54, 36, 19, 17, 100, 38, 4, 96, 46, 138, 128, 32, 152, 51, 16, 1, 153, 201, 137, 55, 79, 243, 248, 227, 79, 98,
27, 219, 204, 101, 6, 115, 54, 72, 2, 251, 84, 223, 247, 199, 34, 184, 172, 142, 203, 176, 141, 237, 53, 225, 33, 91, 35, 29, 24, 136, 8, 250,
94, 60, 246, 216, 87, 89, 94, 191, 142, 91, 110, 185, 153, 136, 96, 206, 22, 6, 44, 33, 7, 65, 195, 54, 173, 5, 59, 175, 216, 78, 68, 96,
7, 85, 162, 74, 100, 6, 182, 121, 75, 132, 25, 106, 160, 52, 80, 53, 96, 139, 104, 201, 48, 12, 244, 179, 158, 190, 31, 144, 0, 7, 56, 48,
23, 68, 128, 141, 37, 132, 177, 19, 48, 182, 145, 196, 92, 4, 16, 201, 177, 99, 111, 242, 232, 23, 255, 152, 87, 95, 61, 8, 52, 170, 122, 108,
147, 153, 64, 32, 9, 219, 24, 51, 87, 85, 188, 69, 18, 227, 81, 71, 100, 16, 17, 216, 38, 51, 144, 64, 22, 38, 176, 197, 215, 30, 127, 146,
131, 7, 143, 16, 17, 216, 38, 34, 136, 8, 32, 152, 139, 8, 100, 191, 90, 85, 231, 50, 147, 203, 233, 184, 140, 194, 24, 175, 150, 220, 119, 93,
7, 97, 134, 190, 199, 230, 2, 115, 238, 236, 10, 159, 251, 189, 63, 164, 74, 220, 118, 219, 45, 24, 145, 110, 4, 16, 153, 68, 4, 25, 32, 21,
115, 17, 65, 68, 48, 103, 155, 136, 64, 10, 34, 130, 57, 219, 68, 36, 85, 197, 202, 249, 21, 78, 245, 103, 57, 191, 178, 202, 249, 243, 231, 89,
89, 89, 101, 58, 153, 34, 137, 204, 100, 212, 53, 198, 227, 96, 52, 78, 34, 6, 108, 97, 10, 28, 128, 169, 18, 96, 34, 146, 136, 100, 117, 50,
229, 229, 151, 94, 228, 169, 111, 236, 229, 216, 241, 147, 212, 32, 100, 83, 37, 36, 19, 145, 192, 128, 36, 136, 0, 67, 102, 3, 68, 213, 128, 109,
230, 100, 131, 33, 2, 236, 160, 100, 34, 0, 65, 100, 112, 226, 196, 105, 30, 125, 244, 49, 134, 161, 232, 186, 17, 111, 169, 18, 173, 5, 184, 17,
36, 114, 61, 127, 227, 181, 55, 173, 236, 123, 99, 31, 151, 211, 113, 25, 178, 177, 125, 182, 164, 105, 200, 12, 253, 64, 149, 176, 197, 48, 12, 216,
112, 252, 248, 73, 126, 235, 179, 191, 203, 185, 115, 231, 185, 251, 158, 59, 24, 141, 70, 204, 133, 130, 204, 134, 195, 204, 69, 36, 32, 34, 130, 185,
136, 192, 134, 8, 243, 22, 201, 128, 120, 243, 196, 97, 14, 31, 62, 206, 155, 39, 79, 113, 230, 204, 89, 214, 214, 214, 152, 205, 102, 72, 34, 51,
25, 143, 199, 44, 46, 45, 177, 113, 253, 50, 187, 119, 111, 99, 243, 166, 69, 2, 136, 8, 46, 49, 17, 9, 209, 88, 89, 89, 227, 224, 27, 135,
120, 102, 239, 11, 28, 58, 124, 148, 26, 138, 97, 40, 8, 192, 38, 51, 145, 138, 185, 190, 31, 176, 69, 16, 152, 192, 54, 153, 137, 36, 108, 99,
155, 170, 194, 54, 24, 164, 34, 8, 34, 147, 108, 13, 1, 127, 248, 135, 95, 226, 245, 215, 14, 67, 36, 182, 137, 8, 46, 49, 182, 137, 8, 36,
203, 142, 103, 143, 28, 63, 202, 209, 163, 199, 185, 156, 142, 203, 144, 10, 73, 103, 236, 209, 164, 170, 40, 137, 170, 129, 136, 36, 34, 8, 32, 51,
56, 119, 110, 133, 223, 251, 189, 207, 115, 244, 232, 49, 222, 243, 158, 7, 217, 186, 109, 11, 182, 176, 193, 97, 230, 34, 132, 13, 17, 16, 17, 68,
4, 17, 193, 156, 13, 182, 152, 59, 117, 250, 60, 123, 159, 121, 153, 227, 199, 223, 228, 204, 153, 83, 156, 59, 119, 158, 213, 213, 85, 250, 190, 199,
54, 151, 4, 27, 54, 108, 96, 219, 150, 205, 172, 223, 208, 177, 101, 243, 18, 198, 204, 69, 36, 231, 207, 175, 113, 252, 216, 155, 188, 113, 248, 8,
175, 189, 250, 58, 167, 78, 157, 161, 202, 116, 93, 135, 29, 100, 38, 150, 17, 66, 18, 96, 44, 97, 11, 8, 34, 2, 169, 176, 185, 40, 51, 177,
205, 92, 70, 64, 0, 17, 64, 16, 153, 148, 138, 209, 104, 204, 51, 207, 60, 207, 31, 253, 209, 151, 33, 18, 34, 152, 139, 8, 230, 34, 146, 204,
100, 78, 82, 95, 85, 175, 172, 13, 3, 239, 164, 227, 50, 60, 8, 171, 86, 145, 78, 87, 137, 214, 18, 169, 97, 139, 57, 89, 180, 214, 33, 153,
97, 86, 60, 246, 229, 175, 241, 242, 75, 251, 121, 255, 251, 30, 226, 182, 219, 111, 102, 253, 250, 117, 148, 5, 1, 4, 23, 152, 185, 204, 164, 69,
195, 54, 182, 113, 128, 129, 32, 56, 123, 246, 44, 175, 31, 120, 157, 195, 135, 142, 114, 232, 208, 65, 250, 126, 32, 2, 140, 152, 77, 123, 78, 156,
56, 65, 75, 184, 239, 222, 187, 185, 246, 158, 155, 185, 98, 199, 22, 44, 19, 17, 180, 214, 120, 241, 165, 215, 248, 252, 191, 249, 34, 167, 78, 157,
166, 4, 153, 73, 107, 73, 68, 146, 145, 200, 34, 34, 24, 84, 188, 165, 101, 67, 37, 186, 110, 68, 85, 81, 42, 36, 49, 12, 34, 34, 200, 76,
134, 97, 64, 50, 221, 66, 199, 210, 226, 24, 91, 100, 4, 115, 153, 141, 195, 71, 79, 240, 155, 255, 231, 191, 226, 236, 217, 85, 50, 19, 219, 204,
217, 38, 51, 185, 196, 68, 6, 17, 76, 92, 58, 103, 204, 59, 233, 184, 12, 169, 168, 170, 169, 170, 142, 141, 198, 99, 196, 55, 85, 21, 125, 223,
19, 17, 68, 4, 198, 84, 137, 3, 7, 14, 241, 47, 14, 255, 54, 187, 119, 95, 201, 61, 247, 220, 193, 173, 183, 220, 204, 150, 173, 155, 232, 186,
134, 44, 34, 18, 75, 252, 223, 213, 193, 91, 240, 231, 247, 125, 223, 245, 231, 235, 253, 254, 252, 254, 199, 213, 238, 234, 96, 157, 173, 147, 79, 137,
92, 199, 78, 161, 101, 154, 50, 147, 146, 25, 66, 153, 41, 229, 152, 97, 114, 65, 153, 97, 166, 189, 229, 146, 43, 110, 24, 46, 152, 1, 238, 128,
14, 195, 5, 164, 153, 0, 197, 197, 83, 26, 55, 208, 184, 57, 214, 137, 237, 38, 150, 101, 71, 138, 117, 176, 180, 90, 89, 210, 106, 87, 218, 243,
254, 79, 191, 239, 231, 253, 126, 177, 63, 41, 10, 30, 198, 146, 108, 147, 148, 244, 241, 88, 92, 72, 194, 221, 72, 66, 136, 182, 185, 251, 206, 59,
120, 226, 177, 135, 184, 117, 227, 58, 135, 7, 55, 184, 120, 233, 45, 118, 118, 246, 56, 123, 246, 12, 203, 178, 240, 224, 67, 31, 225, 95, 249, 233,
191, 196, 103, 62, 253, 41, 238, 190, 231, 110, 70, 6, 221, 69, 100, 112, 245, 234, 77, 190, 244, 171, 191, 197, 235, 111, 92, 100, 123, 123, 133, 36,
64, 72, 193, 200, 4, 9, 33, 108, 3, 166, 102, 177, 209, 110, 218, 6, 140, 221, 204, 57, 217, 144, 68, 85, 81, 85, 188, 39, 34, 216, 221, 219,
5, 27, 99, 66, 201, 173, 131, 35, 254, 247, 191, 247, 69, 94, 120, 241, 28, 82, 34, 9, 73, 188, 199, 54, 146, 216, 176, 27, 155, 19, 211, 39,
182, 121, 63, 131, 247, 113, 243, 230, 225, 209, 222, 222, 238, 69, 4, 53, 27, 108, 64, 68, 4, 153, 73, 85, 1, 162, 170, 145, 132, 109, 142, 79,
78, 120, 241, 197, 115, 188, 248, 226, 75, 220, 117, 247, 157, 60, 242, 200, 195, 60, 246, 216, 35, 60, 112, 223, 125, 220, 121, 215, 89, 118, 118, 86,
172, 198, 32, 51, 201, 76, 66, 162, 108, 108, 179, 26, 193, 103, 63, 251, 41, 62, 246, 177, 135, 249, 169, 191, 244, 19, 60, 255, 194, 139, 124, 243,
155, 207, 241, 246, 229, 235, 220, 127, 255, 93, 252, 244, 79, 255, 11, 60, 252, 224, 253, 40, 205, 156, 107, 114, 236, 160, 16, 54, 60, 253, 141, 103,
120, 243, 205, 75, 140, 76, 108, 147, 153, 72, 162, 187, 209, 106, 240, 46, 209, 221, 72, 65, 68, 96, 160, 187, 17, 208, 109, 48, 216, 38, 51, 233,
158, 72, 98, 163, 187, 137, 16, 123, 123, 187, 236, 237, 238, 210, 109, 20, 226, 120, 61, 249, 194, 23, 126, 133, 175, 124, 245, 235, 68, 36, 27, 221,
77, 68, 176, 33, 137, 119, 137, 238, 166, 91, 140, 49, 144, 132, 109, 222, 207, 224, 125, 60, 244, 209, 251, 234, 228, 120, 253, 90, 85, 209, 213, 68,
6, 85, 133, 16, 32, 64, 188, 203, 128, 137, 16, 115, 26, 133, 168, 130, 75, 23, 223, 230, 194, 27, 151, 248, 234, 87, 190, 206, 246, 246, 54, 219,
219, 43, 78, 157, 222, 231, 212, 222, 62, 35, 7, 247, 220, 115, 55, 255, 242, 95, 254, 139, 220, 255, 192, 71, 0, 179, 49, 107, 178, 44, 199, 236,
238, 38, 31, 255, 216, 131, 156, 218, 31, 60, 243, 204, 243, 220, 243, 145, 59, 217, 221, 9, 14, 15, 111, 161, 16, 85, 133, 27, 132, 185, 114, 237,
58, 223, 120, 250, 15, 88, 102, 177, 181, 21, 136, 160, 219, 128, 201, 4, 204, 109, 166, 170, 168, 106, 196, 109, 130, 174, 162, 13, 8, 20, 66, 36,
217, 201, 156, 197, 156, 133, 109, 36, 145, 153, 116, 55, 119, 222, 121, 150, 221, 189, 29, 114, 12, 110, 221, 58, 228, 239, 125, 225, 87, 248, 245, 95,
255, 50, 221, 38, 34, 216, 176, 205, 134, 36, 254, 31, 70, 18, 54, 216, 2, 2, 73, 188, 159, 193, 247, 241, 235, 191, 253, 59, 252, 107, 63, 251,
51, 148, 253, 138, 219, 29, 82, 148, 27, 73, 84, 55, 85, 19, 219, 72, 65, 183, 177, 65, 10, 4, 184, 77, 42, 32, 204, 156, 19, 12, 135, 71,
39, 220, 188, 117, 200, 197, 75, 87, 216, 168, 42, 108, 243, 135, 223, 126, 158, 159, 255, 249, 127, 155, 143, 127, 236, 81, 170, 38, 115, 46, 204, 229,
132, 147, 245, 49, 235, 245, 154, 213, 74, 124, 226, 19, 15, 33, 193, 250, 228, 132, 145, 43, 150, 165, 56, 58, 58, 38, 115, 197, 214, 106, 197, 243,
207, 189, 196, 197, 75, 111, 99, 139, 110, 19, 1, 2, 186, 27, 9, 102, 21, 18, 84, 21, 96, 64, 84, 53, 179, 138, 141, 170, 194, 109, 170, 10,
219, 108, 100, 38, 85, 69, 119, 227, 110, 78, 214, 107, 238, 190, 231, 46, 118, 119, 118, 185, 116, 233, 10, 255, 219, 231, 255, 1, 95, 253, 218, 83,
116, 155, 136, 192, 54, 17, 129, 36, 108, 99, 27, 73, 72, 2, 68, 102, 18, 145, 216, 148, 77, 217, 226, 253, 12, 222, 199, 178, 94, 48, 188, 92,
85, 107, 208, 78, 117, 33, 5, 115, 46, 216, 166, 219, 216, 147, 170, 34, 36, 26, 48, 208, 93, 8, 49, 103, 97, 243, 142, 136, 160, 187, 145, 68,
68, 176, 81, 85, 156, 123, 229, 85, 126, 225, 239, 252, 93, 254, 195, 191, 241, 239, 243, 177, 39, 62, 74, 119, 115, 116, 124, 204, 141, 27, 55, 185,
114, 229, 42, 151, 47, 95, 225, 230, 205, 27, 44, 203, 100, 181, 218, 102, 103, 123, 155, 179, 103, 239, 228, 145, 71, 30, 225, 244, 233, 51, 28, 28,
28, 243, 244, 55, 158, 97, 89, 79, 198, 24, 116, 21, 206, 32, 98, 133, 16, 99, 12, 220, 205, 106, 123, 11, 27, 214, 235, 53, 17, 73, 183, 17,
194, 54, 115, 22, 182, 89, 150, 133, 238, 198, 54, 18, 239, 152, 115, 98, 155, 173, 213, 138, 71, 30, 125, 152, 103, 190, 253, 34, 159, 255, 252, 63,
224, 197, 23, 207, 33, 9, 73, 216, 70, 18, 221, 77, 68, 16, 17, 116, 55, 146, 176, 141, 36, 170, 10, 41, 144, 116, 36, 233, 8, 204, 251, 73,
222, 199, 195, 15, 63, 68, 119, 239, 68, 232, 231, 16, 119, 180, 193, 221, 84, 23, 93, 13, 24, 119, 99, 140, 13, 203, 178, 96, 27, 219, 216, 96,
55, 118, 99, 131, 219, 84, 55, 182, 145, 132, 109, 108, 99, 224, 250, 245, 155, 188, 114, 254, 187, 60, 242, 200, 67, 220, 115, 207, 93, 172, 215, 199,
92, 185, 114, 133, 215, 94, 191, 192, 133, 11, 111, 241, 246, 219, 215, 184, 121, 243, 144, 245, 201, 194, 206, 206, 54, 15, 61, 120, 63, 15, 63, 252,
16, 251, 251, 167, 248, 218, 215, 158, 226, 235, 95, 255, 38, 153, 43, 114, 12, 144, 176, 27, 183, 81, 136, 136, 96, 35, 51, 177, 161, 170, 153, 115,
34, 192, 54, 146, 152, 53, 169, 106, 16, 116, 155, 170, 162, 202, 84, 21, 221, 13, 8, 219, 68, 4, 191, 246, 143, 127, 139, 215, 95, 127, 147, 136,
64, 18, 239, 145, 68, 68, 176, 33, 9, 219, 72, 34, 51, 201, 76, 192, 128, 136, 136, 55, 109, 255, 79, 146, 110, 28, 28, 28, 240, 253, 12, 62,
64, 87, 95, 4, 93, 168, 238, 7, 187, 27, 219, 100, 14, 108, 179, 177, 120, 66, 55, 85, 133, 221, 216, 198, 54, 110, 35, 132, 16, 229, 162, 91,
216, 102, 163, 187, 145, 132, 36, 82, 73, 35, 206, 157, 251, 46, 191, 240, 119, 62, 207, 127, 240, 55, 254, 61, 30, 126, 240, 35, 60, 248, 224, 3,
108, 111, 111, 241, 224, 3, 247, 113, 116, 120, 4, 152, 221, 189, 93, 206, 158, 61, 195, 153, 59, 78, 179, 179, 189, 197, 235, 175, 95, 228, 119, 191,
242, 251, 44, 179, 136, 48, 138, 193, 24, 131, 170, 66, 17, 108, 116, 155, 204, 192, 54, 221, 141, 109, 192, 180, 205, 70, 117, 19, 145, 40, 26, 181,
144, 64, 18, 17, 98, 189, 94, 179, 209, 93, 172, 215, 39, 124, 235, 155, 207, 18, 17, 140, 49, 248, 94, 182, 177, 141, 36, 54, 108, 35, 137, 136,
0, 68, 85, 49, 70, 16, 17, 216, 190, 105, 251, 150, 36, 222, 79, 242, 62, 62, 250, 208, 131, 92, 189, 118, 125, 189, 183, 191, 247, 87, 36, 253,
57, 219, 96, 110, 51, 54, 116, 23, 115, 78, 34, 130, 238, 166, 170, 217, 48, 198, 24, 219, 216, 70, 10, 186, 141, 36, 222, 83, 85, 216, 102, 195,
54, 182, 185, 126, 253, 38, 231, 206, 189, 202, 71, 31, 126, 136, 187, 238, 60, 139, 4, 91, 219, 43, 246, 246, 119, 216, 223, 223, 229, 212, 169, 83,
236, 237, 237, 177, 187, 183, 207, 193, 193, 49, 191, 252, 203, 95, 226, 252, 171, 111, 144, 25, 216, 38, 35, 177, 205, 198, 106, 12, 54, 50, 147, 204,
164, 187, 232, 54, 27, 17, 73, 85, 81, 53, 193, 80, 221, 116, 55, 179, 138, 170, 137, 36, 230, 44, 186, 155, 238, 166, 170, 144, 196, 24, 3, 73,
116, 55, 27, 221, 205, 134, 36, 222, 35, 9, 73, 108, 72, 66, 2, 73, 68, 136, 49, 18, 41, 158, 94, 175, 215, 191, 152, 153, 125, 112, 112, 192,
247, 147, 188, 143, 143, 126, 244, 33, 238, 187, 239, 94, 47, 203, 242, 99, 153, 227, 103, 170, 138, 57, 39, 221, 205, 70, 87, 211, 221, 216, 208, 221,
216, 77, 85, 99, 155, 119, 24, 12, 216, 198, 136, 141, 170, 162, 187, 233, 110, 54, 108, 51, 231, 68, 18, 27, 87, 175, 222, 224, 249, 231, 191, 195,
238, 222, 46, 31, 249, 200, 221, 172, 182, 86, 100, 14, 182, 183, 118, 216, 218, 222, 1, 39, 175, 191, 246, 22, 255, 215, 255, 249, 155, 60, 255, 252,
75, 40, 196, 70, 230, 64, 33, 16, 140, 49, 104, 155, 80, 96, 67, 102, 130, 1, 1, 54, 221, 141, 219, 216, 166, 170, 17, 48, 171, 88, 47, 107,
170, 154, 13, 155, 119, 84, 21, 221, 77, 102, 34, 9, 73, 108, 216, 70, 18, 182, 249, 94, 17, 129, 109, 36, 177, 33, 9, 73, 216, 38, 34, 1,
125, 233, 210, 165, 75, 255, 112, 127, 127, 159, 131, 131, 3, 190, 159, 228, 125, 124, 247, 181, 215, 121, 224, 254, 251, 232, 246, 61, 171, 213, 248, 183,
128, 49, 70, 82, 213, 204, 185, 176, 209, 213, 108, 216, 96, 155, 119, 25, 119, 99, 27, 187, 193, 6, 137, 110, 211, 221, 116, 55, 182, 121, 143, 109,
54, 36, 1, 230, 224, 224, 144, 231, 158, 251, 14, 175, 189, 246, 38, 235, 165, 88, 102, 115, 229, 234, 77, 190, 243, 226, 119, 249, 202, 239, 126, 131,
223, 253, 202, 239, 115, 249, 242, 85, 20, 65, 230, 224, 61, 54, 100, 4, 57, 6, 27, 145, 73, 68, 16, 18, 109, 35, 137, 57, 139, 234, 6, 137,
147, 147, 53, 85, 147, 89, 69, 119, 209, 54, 32, 230, 156, 128, 88, 150, 133, 57, 39, 182, 89, 173, 86, 124, 175, 136, 192, 54, 146, 136, 8, 54,
108, 179, 33, 137, 136, 96, 35, 66, 68, 136, 136, 96, 140, 193, 109, 191, 116, 230, 204, 153, 175, 85, 21, 7, 7, 7, 124, 63, 131, 15, 96, 27,
219, 207, 117, 251, 114, 68, 62, 184, 44, 107, 34, 68, 102, 82, 85, 204, 57, 65, 98, 206, 194, 110, 54, 108, 110, 19, 118, 97, 155, 101, 78, 20,
73, 85, 209, 221, 216, 70, 18, 182, 169, 42, 50, 147, 170, 162, 187, 217, 144, 130, 101, 22, 207, 254, 225, 119, 120, 238, 249, 151, 89, 173, 2, 41,
49, 224, 134, 72, 145, 17, 68, 4, 138, 6, 195, 200, 32, 199, 0, 137, 170, 98, 181, 90, 33, 9, 219, 108, 68, 136, 245, 122, 193, 109, 170, 38,
110, 35, 241, 142, 49, 6, 179, 38, 27, 221, 133, 109, 192, 72, 194, 54, 99, 12, 54, 50, 147, 238, 230, 61, 17, 193, 123, 36, 97, 155, 238, 102,
140, 129, 109, 36, 33, 5, 182, 217, 144, 226, 150, 221, 223, 182, 205, 165, 75, 151, 120, 63, 131, 15, 48, 231, 194, 156, 245, 250, 24, 227, 249, 49,
242, 193, 57, 11, 219, 8, 17, 10, 222, 147, 25, 204, 217, 72, 252, 49, 41, 80, 192, 24, 131, 101, 54, 146, 136, 8, 54, 108, 179, 209, 221, 68,
4, 146, 88, 150, 197, 85, 245, 150, 237, 206, 204, 123, 51, 51, 186, 77, 21, 183, 53, 118, 147, 153, 96, 176, 141, 109, 236, 38, 35, 105, 55, 234,
194, 134, 213, 24, 72, 162, 187, 193, 70, 219, 91, 128, 145, 192, 128, 20, 156, 44, 199, 8, 144, 68, 119, 131, 65, 10, 64, 216, 32, 129, 36, 108,
19, 17, 108, 216, 70, 18, 182, 217, 144, 132, 109, 170, 138, 204, 68, 18, 146, 216, 136, 72, 192, 216, 77, 166, 0, 211, 61, 223, 236, 230, 5, 219,
124, 144, 224, 3, 44, 179, 249, 115, 159, 254, 228, 141, 170, 249, 7, 85, 133, 221, 108, 204, 42, 102, 53, 57, 6, 82, 16, 145, 216, 166, 219, 108,
216, 166, 186, 233, 110, 20, 129, 36, 108, 99, 27, 219, 116, 55, 203, 178, 176, 81, 85, 172, 215, 107, 159, 156, 156, 252, 175, 221, 253, 87, 151, 101,
249, 217, 101, 89, 254, 251, 170, 90, 115, 219, 156, 69, 85, 209, 109, 54, 50, 131, 119, 216, 132, 18, 73, 108, 84, 53, 96, 12, 204, 101, 193, 54,
17, 129, 36, 108, 35, 5, 237, 198, 110, 34, 130, 234, 102, 163, 186, 152, 85, 44, 75, 209, 13, 17, 201, 156, 147, 245, 122, 189, 72, 42, 254, 72,
85, 97, 155, 13, 219, 116, 55, 182, 249, 127, 179, 161, 219, 216, 16, 17, 68, 4, 153, 201, 109, 79, 207, 89, 23, 108, 243, 65, 146, 15, 112, 225,
194, 155, 156, 58, 117, 138, 110, 223, 3, 250, 55, 193, 17, 18, 27, 85, 141, 13, 221, 133, 128, 57, 11, 219, 116, 55, 118, 35, 9, 27, 108, 3,
98, 195, 54, 203, 178, 176, 145, 153, 100, 38, 221, 205, 241, 241, 241, 83, 221, 253, 183, 186, 251, 57, 73, 151, 186, 251, 183, 129, 251, 199, 24, 127,
62, 51, 177, 141, 13, 99, 36, 96, 36, 145, 99, 96, 192, 109, 16, 100, 36, 25, 129, 34, 64, 16, 17, 100, 36, 17, 65, 119, 99, 155, 245, 122,
205, 198, 156, 147, 141, 170, 194, 109, 204, 134, 168, 42, 186, 155, 170, 98, 206, 249, 173, 204, 140, 219, 78, 69, 4, 146, 176, 205, 134, 36, 34, 130,
13, 73, 108, 72, 66, 18, 27, 17, 66, 18, 99, 36, 153, 1, 8, 219, 127, 123, 140, 252, 202, 155, 111, 94, 228, 131, 4, 31, 98, 189, 94, 152,
115, 126, 203, 246, 91, 99, 12, 218, 102, 206, 201, 134, 36, 164, 160, 109, 192, 108, 216, 141, 13, 221, 102, 195, 54, 115, 78, 108, 99, 155, 49, 6,
146, 168, 42, 150, 101, 97, 89, 22, 108, 255, 221, 204, 60, 47, 9, 219, 68, 196, 205, 170, 250, 47, 215, 203, 250, 133, 170, 66, 18, 99, 36, 54,
216, 220, 38, 36, 177, 97, 160, 102, 33, 137, 182, 169, 154, 116, 27, 12, 109, 51, 231, 100, 206, 73, 85, 147, 145, 116, 55, 17, 65, 102, 82, 213,
28, 31, 31, 83, 213, 216, 166, 187, 169, 42, 186, 251, 0, 248, 98, 132, 150, 204, 68, 18, 153, 137, 36, 36, 33, 9, 219, 72, 34, 34, 200, 76,
34, 130, 204, 100, 181, 74, 50, 69, 166, 200, 12, 64, 68, 196, 5, 219, 191, 93, 85, 124, 152, 224, 67, 216, 80, 213, 175, 116, 247, 75, 199, 71,
199, 204, 57, 201, 28, 72, 66, 2, 219, 204, 57, 233, 54, 221, 77, 183, 233, 110, 186, 139, 170, 162, 187, 137, 16, 115, 78, 230, 156, 72, 194, 54,
146, 216, 168, 170, 235, 192, 151, 185, 205, 54, 27, 22, 216, 126, 177, 170, 254, 143, 238, 102, 67, 18, 221, 13, 4, 82, 178, 94, 79, 92, 32, 5,
17, 194, 54, 146, 48, 48, 198, 32, 50, 201, 76, 186, 155, 185, 20, 235, 245, 194, 122, 89, 232, 106, 220, 102, 206, 137, 109, 36, 192, 102, 206, 201,
187, 68, 151, 191, 177, 202, 124, 54, 34, 238, 144, 196, 134, 109, 34, 130, 136, 32, 34, 144, 132, 109, 34, 130, 136, 32, 66, 216, 133, 4, 146, 200,
12, 64, 100, 174, 144, 242, 203, 115, 214, 243, 32, 62, 76, 240, 33, 186, 155, 175, 63, 245, 244, 77, 219, 79, 101, 38, 182, 177, 77, 205, 133, 101,
89, 176, 141, 36, 54, 236, 70, 18, 221, 141, 36, 54, 34, 196, 156, 133, 36, 36, 209, 221, 72, 66, 18, 182, 185, 237, 130, 237, 215, 248, 30, 174,
102, 140, 97, 204, 175, 74, 58, 144, 196, 134, 36, 186, 155, 182, 17, 2, 9, 187, 81, 4, 237, 38, 51, 201, 76, 186, 155, 174, 162, 187, 168, 106,
34, 19, 108, 186, 139, 182, 169, 46, 108, 112, 55, 182, 105, 55, 138, 96, 140, 193, 109, 221, 230, 239, 175, 86, 91, 91, 224, 59, 248, 35, 146, 120,
143, 36, 34, 130, 204, 228, 93, 198, 54, 17, 137, 20, 72, 34, 34, 1, 35, 105, 13, 124, 97, 127, 255, 212, 73, 55, 31, 42, 248, 16, 221, 205,
191, 244, 23, 255, 188, 171, 230, 87, 21, 90, 86, 171, 65, 8, 20, 129, 36, 170, 38, 27, 182, 145, 132, 109, 108, 99, 243, 142, 101, 153, 116, 55,
27, 17, 129, 36, 36, 97, 27, 219, 84, 213, 53, 219, 87, 186, 155, 199, 31, 251, 24, 143, 63, 250, 24, 143, 63, 250, 152, 94, 125, 234, 89, 34,
226, 5, 219, 175, 74, 66, 18, 146, 216, 112, 55, 10, 97, 55, 180, 145, 130, 136, 100, 206, 137, 219, 84, 21, 203, 156, 84, 53, 96, 186, 27, 219,
140, 49, 176, 77, 119, 51, 231, 164, 109, 186, 77, 87, 51, 151, 133, 245, 122, 205, 178, 44, 47, 111, 111, 109, 125, 25, 241, 241, 188, 45, 66, 68,
4, 153, 73, 102, 146, 153, 72, 66, 18, 239, 145, 32, 51, 136, 72, 108, 144, 68, 119, 3, 194, 237, 111, 206, 57, 127, 227, 228, 228, 132, 183, 222,
186, 196, 135, 9, 62, 196, 55, 158, 254, 22, 115, 22, 115, 246, 83, 115, 214, 155, 110, 83, 221, 128, 144, 130, 136, 68, 18, 171, 213, 138, 213, 88,
177, 33, 137, 170, 162, 187, 17, 16, 17, 116, 55, 221, 77, 119, 211, 221, 116, 55, 2, 36, 85, 68, 244, 103, 126, 236, 211, 82, 207, 196, 94, 185,
123, 235, 167, 254, 218, 207, 238, 158, 57, 117, 199, 173, 174, 122, 163, 187, 145, 132, 109, 36, 17, 17, 72, 66, 1, 229, 166, 170, 232, 42, 150, 101,
97, 35, 51, 201, 76, 192, 216, 102, 206, 201, 172, 162, 102, 97, 27, 219, 116, 155, 89, 141, 9, 20, 73, 102, 98, 27, 236, 95, 191, 99, 127, 239,
138, 228, 79, 70, 4, 82, 176, 97, 155, 141, 170, 162, 187, 145, 68, 68, 32, 9, 16, 27, 146, 201, 12, 34, 2, 99, 66, 242, 106, 140, 207, 239,
140, 173, 139, 221, 205, 15, 34, 248, 1, 116, 55, 115, 206, 87, 109, 255, 65, 85, 97, 155, 238, 194, 54, 153, 129, 109, 108, 83, 221, 100, 38, 99,
12, 70, 38, 238, 34, 34, 136, 16, 27, 182, 217, 176, 141, 36, 102, 21, 6, 237, 239, 237, 143, 91, 7, 183, 182, 218, 222, 118, 247, 142, 237, 157,
238, 222, 221, 222, 222, 201, 136, 184, 32, 137, 238, 102, 195, 54, 223, 43, 51, 8, 137, 141, 144, 216, 144, 32, 66, 116, 53, 85, 13, 54, 17, 193,
172, 162, 187, 176, 65, 17, 100, 14, 108, 51, 231, 164, 187, 89, 150, 229, 237, 49, 198, 111, 218, 125, 151, 34, 158, 224, 29, 6, 76, 119, 19, 33,
50, 19, 219, 188, 71, 18, 18, 68, 8, 73, 188, 103, 100, 146, 153, 207, 85, 213, 23, 14, 79, 142, 216, 223, 221, 231, 137, 199, 158, 224, 195, 4,
63, 128, 111, 60, 253, 7, 236, 237, 237, 28, 86, 213, 111, 42, 2, 219, 116, 27, 48, 235, 245, 194, 156, 147, 238, 98, 206, 133, 8, 97, 155, 234,
162, 219, 116, 55, 182, 145, 132, 36, 54, 36, 241, 14, 9, 68, 108, 175, 86, 59, 221, 181, 211, 221, 187, 213, 189, 219, 221, 123, 93, 189, 7, 236,
72, 186, 213, 221, 116, 55, 221, 205, 70, 85, 81, 53, 89, 150, 53, 27, 145, 73, 132, 136, 8, 186, 138, 170, 166, 170, 49, 32, 137, 118, 51, 231,
66, 119, 179, 94, 175, 169, 154, 184, 155, 238, 166, 187, 169, 42, 214, 235, 53, 182, 127, 127, 103, 103, 231, 181, 234, 122, 56, 20, 143, 100, 38, 153,
34, 51, 136, 0, 27, 108, 147, 153, 100, 38, 153, 137, 36, 34, 2, 73, 72, 34, 34, 136, 8, 86, 171, 45, 219, 253, 63, 175, 74, 231, 239, 216,
63, 21, 1, 162, 139, 39, 30, 125, 156, 15, 50, 248, 1, 29, 159, 172, 177, 249, 39, 171, 149, 46, 71, 232, 110, 48, 115, 153, 84, 21, 85, 69,
132, 144, 196, 178, 76, 170, 154, 57, 27, 69, 96, 68, 119, 1, 98, 195, 54, 221, 205, 70, 132, 88, 229, 216, 157, 85, 103, 203, 190, 233, 246, 176,
157, 224, 180, 73, 64, 183, 29, 75, 162, 187, 89, 173, 86, 100, 38, 153, 9, 152, 110, 211, 109, 186, 155, 28, 3, 100, 54, 50, 147, 57, 39, 153,
65, 68, 224, 54, 203, 178, 96, 64, 145, 116, 23, 221, 147, 110, 19, 17, 116, 21, 174, 62, 92, 229, 248, 178, 32, 192, 159, 24, 35, 239, 228, 54,
219, 128, 145, 2, 137, 219, 154, 136, 68, 130, 8, 209, 13, 18, 72, 16, 17, 68, 136, 140, 68, 248, 27, 224, 255, 101, 108, 15, 149, 59, 64, 213,
10, 132, 249, 32, 193, 15, 168, 219, 204, 89, 207, 44, 203, 242, 251, 85, 69, 119, 211, 54, 146, 200, 76, 34, 130, 80, 80, 93, 40, 68, 102, 50,
198, 138, 13, 41, 176, 141, 36, 36, 33, 9, 219, 140, 28, 8, 206, 84, 213, 71, 220, 222, 177, 123, 215, 238, 221, 238, 222, 107, 247, 94, 119, 239,
131, 182, 184, 77, 18, 153, 137, 36, 36, 81, 213, 8, 8, 9, 108, 150, 101, 97, 206, 66, 18, 221, 133, 109, 164, 96, 89, 47, 84, 55, 146, 176,
161, 187, 169, 106, 230, 44, 230, 156, 84, 21, 115, 22, 221, 253, 252, 214, 106, 245, 74, 87, 239, 71, 198, 147, 153, 177, 189, 90, 37, 138, 32, 51,
200, 12, 34, 130, 213, 106, 69, 132, 176, 27, 219, 100, 6, 146, 200, 76, 36, 200, 72, 34, 226, 176, 187, 255, 219, 17, 171, 215, 203, 29, 128, 16,
18, 230, 195, 4, 63, 160, 170, 102, 127, 119, 235, 86, 119, 253, 67, 80, 71, 4, 171, 213, 138, 213, 24, 216, 166, 187, 105, 27, 41, 248, 94, 82,
96, 27, 219, 108, 216, 198, 54, 239, 177, 57, 235, 246, 125, 118, 111, 87, 247, 110, 117, 239, 181, 189, 219, 221, 123, 213, 181, 111, 247, 25, 73, 68,
4, 221, 77, 85, 81, 85, 68, 4, 57, 6, 198, 68, 136, 238, 162, 187, 1, 97, 131, 36, 106, 78, 102, 21, 33, 17, 145, 96, 179, 44, 11, 27,
17, 129, 109, 54, 236, 94, 34, 226, 107, 72, 13, 156, 14, 197, 143, 75, 65, 230, 64, 130, 136, 96, 140, 65, 102, 32, 37, 17, 65, 102, 34, 137,
8, 145, 153, 68, 36, 82, 16, 17, 216, 254, 130, 237, 47, 74, 4, 32, 254, 152, 0, 241, 65, 130, 31, 208, 179, 207, 254, 33, 199, 39, 107, 230,
236, 95, 5, 206, 71, 4, 221, 77, 219, 100, 38, 54, 116, 55, 35, 19, 119, 35, 65, 132, 176, 139, 136, 32, 34, 168, 42, 108, 19, 17, 68, 4,
182, 81, 232, 84, 211, 31, 45, 123, 167, 187, 119, 186, 189, 227, 238, 93, 119, 239, 85, 213, 190, 225, 78, 254, 72, 119, 35, 9, 73, 216, 166, 187,
9, 5, 17, 193, 214, 214, 54, 91, 91, 91, 68, 136, 174, 98, 46, 11, 85, 69, 102, 98, 160, 187, 104, 27, 27, 170, 76, 85, 97, 155, 170, 194,
246, 43, 91, 91, 91, 47, 218, 30, 202, 184, 127, 107, 103, 247, 209, 49, 182, 168, 134, 49, 182, 128, 4, 68, 68, 18, 33, 34, 146, 136, 224, 93,
98, 53, 6, 35, 147, 145, 137, 224, 235, 180, 255, 235, 85, 172, 14, 176, 184, 205, 128, 217, 144, 248, 48, 193, 15, 161, 38, 220, 188, 113, 244, 98,
85, 255, 74, 119, 51, 231, 68, 130, 238, 6, 76, 102, 0, 70, 226, 29, 221, 69, 102, 242, 30, 73, 68, 4, 27, 17, 65, 102, 18, 17, 163, 237,
143, 119, 247, 142, 237, 29, 187, 119, 186, 122, 183, 187, 119, 186, 123, 223, 246, 221, 220, 38, 137, 136, 192, 54, 182, 145, 32, 4, 146, 168, 42, 236,
6, 76, 85, 35, 9, 99, 12, 116, 55, 203, 178, 80, 85, 132, 2, 27, 36, 97, 131, 36, 230, 156, 5, 122, 42, 34, 142, 5, 219, 33, 61, 250,
137, 79, 124, 226, 236, 125, 247, 63, 192, 131, 15, 62, 196, 24, 43, 238, 191, 255, 126, 246, 246, 246, 57, 125, 250, 12, 99, 172, 200, 76, 36, 17,
17, 100, 38, 182, 1, 3, 62, 95, 213, 255, 77, 106, 188, 37, 148, 2, 27, 12, 24, 227, 173, 154, 216, 205, 7, 9, 126, 8, 221, 197, 233, 51,
123, 93, 85, 191, 4, 92, 138, 8, 36, 129, 141, 219, 72, 194, 230, 29, 153, 9, 136, 238, 166, 187, 137, 8, 50, 147, 238, 102, 195, 54, 27, 153,
73, 102, 126, 188, 230, 220, 119, 123, 203, 221, 219, 118, 111, 219, 222, 110, 247, 105, 73, 119, 74, 98, 67, 18, 153, 137, 36, 36, 33, 5, 221, 69,
85, 99, 67, 68, 16, 17, 40, 2, 33, 186, 139, 154, 147, 170, 194, 134, 101, 153, 72, 162, 187, 177, 77, 85, 97, 251, 149, 213, 106, 245, 135, 64,
70, 228, 174, 164, 211, 23, 46, 92, 200, 245, 250, 132, 157, 157, 29, 246, 246, 246, 184, 247, 222, 123, 57, 125, 250, 52, 247, 222, 123, 47, 71, 71,
71, 204, 89, 68, 4, 171, 213, 138, 13, 73, 220, 246, 70, 205, 250, 69, 183, 223, 104, 247, 221, 192, 54, 82, 27, 186, 81, 163, 240, 58, 146, 115,
175, 158, 231, 131, 36, 63, 132, 183, 47, 95, 230, 238, 187, 239, 98, 89, 47, 23, 115, 228, 227, 17, 241, 47, 118, 155, 28, 3, 69, 128, 33, 199,
96, 86, 209, 93, 8, 48, 70, 10, 34, 130, 170, 34, 51, 169, 42, 222, 35, 137, 238, 118, 72, 191, 43, 81, 109, 111, 217, 94, 25, 70, 117, 223,
135, 248, 87, 51, 115, 63, 51, 137, 8, 34, 2, 219, 100, 36, 153, 66, 18, 146, 144, 4, 134, 145, 9, 18, 216, 116, 155, 165, 38, 27, 85, 69,
119, 19, 145, 116, 55, 238, 166, 103, 45, 192, 151, 86, 171, 213, 75, 66, 139, 4, 15, 62, 248, 208, 195, 183, 110, 222, 252, 204, 193, 193, 173, 184,
118, 245, 42, 115, 78, 46, 95, 190, 204, 209, 209, 17, 87, 174, 92, 225, 228, 228, 4, 73, 140, 28, 8, 17, 138, 217, 246, 183, 215, 235, 229, 239,
183, 121, 46, 20, 7, 138, 184, 21, 210, 77, 164, 99, 164, 6, 219, 152, 115, 175, 190, 194, 135, 73, 126, 72, 111, 189, 125, 153, 251, 30, 184, 175,
221, 253, 122, 100, 254, 213, 64, 103, 109, 35, 160, 221, 84, 53, 203, 156, 132, 4, 152, 110, 131, 2, 219, 84, 21, 17, 129, 109, 186, 155, 204, 68,
18, 85, 165, 219, 126, 39, 34, 14, 128, 149, 97, 24, 71, 187, 31, 31, 99, 252, 149, 213, 106, 53, 248, 35, 146, 144, 68, 102, 48, 198, 32, 51,
145, 68, 68, 144, 17, 84, 55, 118, 83, 213, 72, 208, 109, 140, 233, 110, 218, 208, 109, 170, 138, 185, 44, 244, 236, 231, 182, 183, 183, 127, 45, 20,
7, 130, 67, 164, 163, 204, 188, 188, 179, 189, 115, 243, 240, 224, 224, 12, 104, 107, 189, 94, 198, 178, 172, 181, 172, 23, 186, 155, 237, 237, 109, 86,
171, 213, 146, 138, 91, 192, 185, 154, 243, 55, 150, 245, 252, 146, 164, 239, 100, 230, 91, 25, 113, 49, 35, 222, 82, 196, 117, 41, 22, 103, 88, 136,
147, 48, 55, 175, 93, 231, 195, 12, 126, 4, 181, 76, 94, 120, 245, 252, 211, 79, 62, 241, 196, 223, 150, 244, 159, 27, 143, 57, 39, 109, 211, 110,
50, 147, 141, 42, 131, 68, 40, 176, 77, 102, 82, 85, 100, 38, 221, 141, 109, 50, 19, 73, 219, 221, 125, 150, 228, 117, 64, 108, 152, 141, 135, 35,
98, 123, 206, 73, 102, 18, 17, 100, 38, 146, 0, 209, 54, 33, 80, 4, 182, 81, 8, 170, 153, 101, 36, 81, 221, 44, 115, 98, 55, 221, 141, 20,
72, 98, 163, 171, 15, 50, 243, 183, 71, 142, 171, 224, 35, 224, 8, 116, 120, 237, 234, 181, 183, 35, 116, 126, 172, 86, 95, 202, 200, 143, 2, 119,
67, 110, 129, 19, 36, 33, 187, 250, 96, 218, 111, 185, 251, 34, 112, 101, 172, 198, 141, 80, 92, 85, 232, 74, 70, 92, 27, 210, 65, 75, 19, 133,
163, 154, 151, 206, 159, 227, 7, 53, 248, 17, 92, 60, 127, 157, 79, 61, 246, 168, 151, 101, 249, 31, 86, 57, 254, 66, 142, 252, 119, 157, 1, 221,
156, 172, 139, 8, 209, 221, 128, 200, 8, 20, 193, 178, 76, 108, 19, 17, 116, 55, 146, 136, 8, 186, 27, 73, 43, 236, 125, 65, 27, 10, 16, 144,
146, 30, 1, 97, 55, 221, 77, 102, 82, 53, 137, 8, 198, 24, 96, 19, 49, 232, 46, 50, 18, 73, 68, 36, 166, 153, 115, 97, 89, 22, 54, 164,
100, 195, 134, 101, 89, 179, 44, 11, 22, 95, 219, 217, 217, 121, 86, 161, 67, 208, 33, 112, 8, 28, 73, 58, 1, 234, 182, 55, 187, 251, 91, 66,
72, 10, 133, 36, 48, 182, 5, 51, 34, 22, 101, 158, 32, 29, 11, 142, 20, 113, 28, 210, 90, 168, 44, 250, 47, 124, 234, 113, 254, 233, 115, 47,
115, 238, 252, 43, 252, 48, 6, 63, 130, 123, 238, 63, 69, 157, 52, 63, 243, 115, 159, 188, 242, 91, 95, 120, 225, 63, 149, 185, 127, 53, 198, 95,
70, 77, 196, 130, 0, 41, 16, 5, 18, 115, 22, 27, 146, 168, 42, 108, 19, 17, 140, 49, 144, 68, 85, 33, 41, 35, 2, 119, 79, 192, 183, 157,
150, 244, 88, 102, 0, 38, 51, 129, 166, 187, 145, 192, 110, 148, 3, 48, 93, 197, 136, 100, 86, 209, 109, 186, 155, 101, 153, 44, 203, 66, 230, 138,
136, 64, 50, 39, 39, 199, 44, 203, 66, 85, 189, 188, 183, 187, 247, 143, 34, 227, 26, 112, 44, 233, 16, 56, 4, 142, 129, 69, 82, 73, 154, 192,
20, 154, 10, 77, 161, 10, 81, 146, 166, 164, 10, 152, 72, 37, 169, 128, 146, 84, 141, 220, 96, 117, 243, 181, 239, 92, 224, 149, 243, 175, 240, 195,
74, 126, 4, 119, 157, 189, 19, 4, 231, 158, 125, 59, 14, 15, 214, 151, 35, 245, 117, 227, 79, 43, 244, 104, 68, 48, 171, 168, 154, 72, 65, 87,
113, 199, 233, 51, 156, 57, 115, 134, 101, 89, 120, 228, 145, 71, 56, 58, 58, 226, 201, 39, 159, 228, 214, 173, 91, 252, 228, 79, 254, 36, 175, 191,
254, 250, 113, 70, 252, 222, 24, 227, 138, 224, 4, 180, 238, 238, 79, 41, 227, 95, 143, 136, 149, 36, 50, 69, 102, 32, 137, 136, 32, 51, 16, 2,
243, 142, 145, 131, 101, 153, 156, 172, 79, 0, 1, 166, 219, 204, 217, 204, 57, 145, 68, 119, 179, 44, 203, 173, 213, 106, 245, 75, 123, 187, 123, 207,
6, 28, 41, 226, 86, 72, 7, 146, 14, 37, 29, 41, 98, 29, 138, 147, 144, 214, 82, 172, 35, 99, 137, 136, 69, 210, 58, 165, 69, 210, 18, 210,
130, 52, 37, 77, 80, 129, 74, 33, 55, 197, 208, 224, 165, 243, 231, 184, 118, 245, 109, 126, 20, 131, 31, 153, 48, 246, 246, 206, 86, 156, 28, 215,
51, 217, 245, 55, 35, 243, 63, 137, 204, 159, 3, 157, 18, 1, 134, 136, 100, 119, 119, 135, 199, 31, 127, 130, 91, 183, 110, 241, 227, 63, 254, 227,
92, 186, 116, 137, 123, 239, 189, 151, 87, 207, 191, 202, 197, 55, 47, 50, 114, 220, 112, 247, 137, 164, 221, 200, 60, 176, 122, 161, 253, 185, 204, 177,
27, 25, 224, 102, 140, 164, 170, 217, 144, 132, 13, 166, 129, 96, 140, 21, 179, 138, 200, 96, 197, 138, 170, 70, 10, 164, 192, 158, 116, 55, 182, 153,
203, 82, 17, 241, 197, 83, 251, 251, 191, 19, 210, 145, 164, 35, 208, 145, 196, 17, 112, 2, 44, 66, 133, 84, 18, 133, 84, 192, 148, 212, 130, 146,
84, 130, 66, 42, 65, 11, 25, 201, 220, 246, 157, 87, 206, 241, 39, 33, 249, 17, 156, 61, 123, 39, 33, 129, 4, 88, 10, 228, 230, 234, 156, 253,
27, 93, 253, 124, 40, 238, 207, 200, 7, 164, 72, 110, 59, 58, 58, 164, 170, 185, 124, 249, 45, 230, 156, 92, 187, 118, 157, 27, 55, 110, 112, 116,
120, 200, 229, 203, 151, 233, 234, 175, 142, 49, 158, 202, 136, 107, 146, 174, 172, 151, 245, 67, 18, 127, 51, 51, 239, 16, 38, 115, 176, 97, 131, 36,
198, 72, 4, 140, 145, 116, 55, 182, 89, 150, 133, 89, 147, 238, 166, 219, 204, 89, 84, 21, 27, 221, 205, 122, 189, 118, 119, 255, 218, 233, 253, 83,
191, 176, 26, 227, 154, 20, 7, 146, 110, 69, 198, 129, 164, 195, 144, 142, 36, 173, 35, 98, 157, 210, 146, 17, 235, 144, 214, 138, 152, 33, 45, 138,
88, 80, 76, 164, 137, 212, 142, 52, 136, 151, 206, 159, 227, 202, 245, 107, 252, 73, 17, 63, 162, 187, 31, 122, 132, 51, 41, 12, 132, 20, 216, 1,
72, 110, 150, 246, 67, 109, 255, 27, 134, 127, 39, 34, 126, 114, 246, 114, 186, 27, 173, 215, 39, 236, 238, 238, 114, 120, 116, 140, 128, 174, 238, 154,
243, 247, 182, 183, 183, 127, 97, 123, 107, 251, 21, 227, 43, 93, 117, 180, 244, 252, 143, 87, 171, 213, 127, 180, 94, 175, 137, 8, 50, 19, 73, 128,
217, 216, 218, 218, 194, 110, 50, 130, 110, 35, 137, 234, 102, 89, 22, 192, 84, 65, 119, 179, 81, 85, 156, 156, 156, 208, 221, 191, 115, 199, 254, 169,
255, 106, 119, 119, 247, 2, 102, 65, 58, 150, 56, 1, 142, 5, 107, 73, 19, 104, 65, 133, 212, 64, 73, 106, 67, 11, 44, 100, 11, 115, 219, 75,
231, 95, 225, 79, 139, 248, 255, 224, 241, 199, 158, 32, 49, 141, 144, 91, 216, 97, 8, 1, 182, 115, 153, 243, 158, 118, 127, 118, 186, 127, 234, 228,
100, 253, 185, 49, 242, 225, 101, 153, 187, 64, 217, 190, 132, 249, 202, 222, 238, 238, 63, 94, 141, 241, 166, 205, 9, 176, 92, 189, 118, 245, 161, 159,
248, 236, 79, 252, 143, 171, 173, 173, 79, 188, 250, 234, 121, 50, 147, 155, 55, 111, 145, 25, 116, 23, 146, 216, 222, 222, 38, 34, 16, 198, 134, 182,
89, 150, 133, 170, 162, 170, 17, 162, 109, 132, 56, 62, 62, 242, 178, 204, 47, 239, 237, 237, 253, 23, 167, 246, 247, 95, 5, 166, 96, 45, 233, 4,
233, 4, 88, 11, 166, 160, 5, 109, 169, 3, 89, 162, 185, 173, 52, 124, 237, 244, 3, 156, 190, 117, 137, 243, 47, 63, 207, 159, 54, 241, 39, 224,
137, 71, 31, 167, 99, 69, 244, 130, 109, 9, 75, 16, 186, 109, 100, 82, 85, 99, 233, 222, 61, 62, 57, 57, 211, 213, 123, 17, 234, 49, 198, 173,
213, 106, 117, 212, 221, 216, 14, 131, 70, 68, 95, 186, 114, 249, 167, 158, 120, 226, 137, 95, 60, 60, 60, 188, 227, 51, 159, 249, 12, 111, 188, 241,
6, 27, 103, 207, 158, 229, 249, 231, 159, 231, 129, 7, 30, 224, 245, 215, 95, 35, 51, 176, 77, 85, 97, 155, 57, 155, 170, 162, 230, 36, 16, 182,
89, 230, 156, 213, 245, 155, 251, 123, 251, 255, 221, 254, 222, 222, 183, 109, 31, 2, 235, 148, 22, 96, 45, 105, 1, 38, 96, 192, 128, 21, 233, 188,
126, 139, 186, 243, 14, 190, 243, 242, 75, 252, 179, 54, 248, 19, 240, 242, 249, 115, 108, 124, 252, 177, 199, 177, 100, 57, 12, 182, 49, 235, 57, 5,
56, 165, 121, 199, 222, 222, 77, 221, 102, 59, 170, 42, 220, 173, 128, 64, 82, 131, 70, 142, 14, 233, 198, 133, 11, 23, 214, 146, 184, 120, 241, 34,
175, 190, 250, 42, 79, 62, 249, 36, 111, 189, 245, 22, 103, 206, 156, 225, 190, 251, 238, 227, 141, 55, 94, 163, 170, 144, 68, 119, 211, 93, 128, 136,
8, 10, 49, 171, 152, 115, 94, 147, 244, 143, 78, 157, 186, 227, 151, 183, 183, 182, 222, 182, 221, 33, 221, 2, 142, 145, 166, 208, 148, 100, 41, 124,
112, 120, 145, 83, 251, 15, 240, 194, 185, 23, 249, 99, 87, 47, 241, 255, 7, 241, 167, 232, 241, 71, 159, 224, 93, 6, 91, 41, 176, 45, 144, 192,
226, 93, 178, 45, 64, 25, 193, 213, 27, 55, 118, 151, 154, 255, 153, 34, 254, 214, 169, 253, 253, 237, 131, 195, 67, 30, 120, 224, 1, 174, 95, 191,
206, 238, 238, 46, 25, 201, 193, 225, 45, 186, 139, 238, 166, 109, 220, 13, 4, 85, 197, 92, 150, 195, 174, 126, 118, 140, 241, 27, 219, 219, 219, 223,
202, 204, 75, 145, 121, 41, 35, 46, 14, 233, 42, 104, 177, 228, 163, 213, 142, 199, 92, 243, 221, 87, 94, 226, 207, 18, 241, 207, 208, 39, 31, 255,
56, 118, 19, 26, 204, 94, 99, 54, 36, 113, 155, 13, 152, 207, 253, 216, 147, 254, 39, 95, 255, 189, 59, 142, 79, 78, 254, 58, 240, 243, 57, 198,
231, 20, 186, 43, 51, 119, 186, 91, 171, 28, 108, 111, 111, 179, 94, 214, 172, 151, 5, 139, 118, 247, 81, 47, 117, 177, 219, 207, 103, 196, 211, 171,
213, 234, 133, 28, 249, 86, 68, 92, 141, 136, 203, 17, 113, 57, 34, 174, 167, 98, 145, 18, 187, 121, 233, 252, 203, 252, 89, 36, 254, 140, 250, 220,
103, 63, 199, 119, 95, 251, 238, 30, 240, 216, 241, 241, 241, 39, 247, 246, 246, 158, 152, 203, 124, 48, 35, 246, 70, 142, 81, 93, 89, 221, 199, 118,
95, 150, 116, 33, 35, 223, 204, 204, 43, 17, 113, 32, 116, 168, 208, 77, 73, 183, 34, 226, 48, 164, 117, 219, 30, 17, 188, 116, 254, 21, 254, 44,
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册