-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathface2face3.15.cpp
373 lines (314 loc) · 54.1 KB
/
face2face3.15.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/photo.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/shape/shape_transformer.hpp>
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_processing/render_face_detections.h>
#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <dlib/opencv.h>
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
using namespace cv;
using namespace dlib;
void resizeImage(cv::Mat &mat,
int row_size,
int col_size);
void Landmark(Mat user_face, std::vector<cv::Point> &user_face_landmark);
void Read_Landmark_from_txt(std::vector<cv::Point> &points, string path);
void save_Landmark_To_txt(std::vector<cv::Point> landmark, string save_path);
std::vector<cv::Point> Get_forehead_landmark(std::vector<cv::Point> landmarks);
void warp(Mat object_lip, Mat &warped_object_lip,
std::vector<cv::Point> object_lip_landmark,
std::vector<cv::Point> user_lip_landmark);
Mat Generate_mask(std::vector<cv::Point> landmark,
Mat user_face, double user_weight);
void Adjust_brightness(Mat user_face, Mat &warped_object_face,
std::vector<cv::Point> user_face_edge_landmark);
Mat Alpha_blending(Mat user_face,
std::vector<cv::Point> user_face_landmark,
std::vector<cv::Point> user_face_edge_landmark,
Mat warped_object_face, double user_weight);
Mat Poisson_editing(Mat user_face, Mat result_face,
std::vector<cv::Point> user_face_edge_landmark);
int main(int argc, char* argv[])
{
//if(argc < 2)
//{
// cerr << "not enough argv; \n";
// exit(0);
//}
//////
//string main_path = "./";
//string save_path = "./";
//string filename = argv[1];
//// user info
string user_name="jingtian";
string object_name = "FBB";
Mat user_face = imread(user_name+".jpeg", IMREAD_COLOR);
Mat object_face = imread(object_name+".jpg", IMREAD_COLOR);
resizeImage(user_face,400,300);
resizeImage(object_face,400,300);
//cvtColor(Face_mask, Face_mask, COLOR_BGR2GRAY );
//// get landmarks
std::vector<cv::Point> user_face_landmark,object_face_landmark;
Landmark(object_face, object_face_landmark);
Landmark(user_face, user_face_landmark);// get the forehand already
save_Landmark_To_txt(user_face_landmark,user_name+".txt");
save_Landmark_To_txt(object_face_landmark,object_name+".txt");
Read_Landmark_from_txt(user_face_landmark, user_name+".txt");
Read_Landmark_from_txt(object_face_landmark, object_name+".txt");
//// warping
user_face.convertTo(user_face, CV_32FC3, 1.0 / 255); //
object_face.convertTo(object_face, CV_32FC3, 1.0 / 255); //
Mat warped_object_face=object_face.clone();
warp(object_face, warped_object_face, object_face_landmark, user_face_landmark);
std::vector<cv::Point> user_face_edge_landmark = Get_forehead_landmark(user_face_landmark);
Adjust_brightness(user_face,warped_object_face,user_face_edge_landmark);
//// alpha blending
Mat result_face=Alpha_blending(user_face,
user_face_landmark,
user_face_edge_landmark,
warped_object_face, 0.6);
return 0;
//imwrite(save_path + "processed_" + filename, replaced_right_eyebrow);
}
// ----------------------------------------------------------------------------------------
void Landmark(Mat user_face, std::vector<cv::Point> &user_face_landmark)
{
const std::string shape_predictor_68_face_landmarks = "shape_predictor_68_face_landmarks.dat";
dlib::array2d<bgr_pixel> img;
dlib::assign_image(img, dlib::cv_image<bgr_pixel>(user_face));
frontal_face_detector detector = get_frontal_face_detector();
shape_predictor sp;
deserialize(shape_predictor_68_face_landmarks) >> sp;
std::vector<dlib::rectangle> dets = detector(img);
std::vector<full_object_detection> shapes;
for (unsigned long j = 0; j < dets.size(); ++j)
{
full_object_detection shape = sp(img, dets[j]);
shapes.push_back(shape);
}
dlib::array<array2d<rgb_pixel> > face_chips;
extract_image_chips(img, get_face_chip_details(shapes), face_chips);
for (int i = 0; i<shapes[0].num_parts(); i++)
{
Point p(shapes[0].part(i).x(), shapes[0].part(i).y());
user_face_landmark.push_back(p);
}
}
void save_Landmark_To_txt(std::vector<cv::Point> landmark, string save_path)
{
ofstream outfile;
outfile.open(save_path);
for(int i=0;i<landmark.size();i++)
{
outfile << landmark[i].x << " " << landmark[i].y<<endl;
}
outfile.close();
}
void resizeImage(cv::Mat &mat,
int row_size,
int col_size)
{
int ori_row_size = mat.rows;
int ori_col_size = mat.cols;
// input aspect ratio
float ori_aspect = ((float)ori_row_size / ori_col_size);
// output aspect ratio
float new_aspect = ((float)row_size / col_size);
if(ori_aspect < new_aspect) { // crop col_size to be ori_row_size/new_aspect
float new_col_size = ori_row_size / new_aspect;
mat = mat(cv::Rect( (ori_col_size - new_col_size) / 2, 0, new_col_size, ori_row_size));
} else {
float new_row_size = ori_col_size * new_aspect;
mat = mat(cv::Rect(0, (ori_row_size - new_row_size) / 2, ori_col_size, new_row_size));
}
// resize(mat, mat, cv::Size(col_size, row_size), 0, 0, cv::INTER_AREA);
resize(mat, mat, cv::Size(col_size, row_size), 0, 0, cv::INTER_CUBIC);
}
void Read_Landmark_from_txt(std::vector<cv::Point> &points, string path)
{
ifstream infile;
infile.open(path);
int tmp1 = 0, tmp2 = 0, cnt = 0;
while (infile >> tmp1 >> tmp2)
{
cnt++;
points.push_back(Point(tmp1, tmp2));
}
infile.close();
}
void Adjust_brightness(Mat user_face, Mat &warped_object_face,
std::vector<cv::Point> user_face_edge_landmark)
{
Rect face_roi=boundingRect(user_face_edge_landmark);
cv::Scalar user_mean=mean(user_face(face_roi));
cv::Scalar object_mean=mean(warped_object_face(face_roi));
// subtract(warped_object_face(face_roi),user_mean*0.7+object_mean*0.3,warped_object_face(face_roi));
warped_object_face(face_roi)+=(user_mean-object_mean);
// cvtColor(user_face,user_face,CV_RGB2HSV);
// cvtColor(warped_object_face,warped_object_face,CV_RGB2HSV);
// std::vector<Mat> user_channels,object_channels;
// split(user_face,user_channels);
// Mat user_brightness_channel=user_channels.at(2);
// split(warped_object_face,object_channels);
// Mat object_brightness_channel=object_channels.at(2);
// addWeighted(user_brightness_channel(face_roi),0.7,
// object_brightness_channel(face_roi),0.3,
// 0,
// object_brightness_channel(face_roi));
// merge(object_channels,warped_object_face);
}
Mat Alpha_blending(Mat user_face,
std::vector<cv::Point> user_face_landmark,
std::vector<cv::Point> user_face_edge_landmark,
Mat warped_object_face, double user_weight)
{
//// Face mask
Mat Face_mask=Generate_mask(user_face_edge_landmark,user_face,1.0-user_weight);
Mat Full_mask=Mat(user_face.rows, user_face.cols, user_face.type(), Scalar(1,1,1));
subtract(Full_mask,Face_mask,Full_mask);
// Eye mask
std::vector<cv::Point> user_left_eye_landmark(6),user_right_eye_landmark(6);
std::copy(user_face_landmark.begin()+36,user_face_landmark.begin()+42,
user_left_eye_landmark.begin());
std::copy(user_face_landmark.begin()+42,user_face_landmark.begin()+48,
user_right_eye_landmark.begin());
Mat Eye_left_mask=Generate_mask(user_left_eye_landmark,user_face,1.0-user_weight);
Mat Eye_right_mask=Generate_mask(user_right_eye_landmark,user_face,1.0-user_weight);
Mat Eye_mask=Eye_right_mask.clone();
add(Eye_left_mask,Eye_right_mask,Eye_mask);
add(Full_mask,Eye_mask,Full_mask);
////alpha blending
Mat user_face_temp, warped_object_face_temp;
multiply(Full_mask, user_face, user_face_temp);
multiply(Scalar::all(1.0)-Full_mask, warped_object_face, warped_object_face_temp);
Mat result_face=user_face.clone();
add(user_face_temp,warped_object_face_temp,result_face);
//// poisson
Mat poissoned_result_face = Poisson_editing(user_face, result_face,
user_face_edge_landmark);
return result_face;
}
Mat Poisson_editing(Mat user_face, Mat result_face,
std::vector<cv::Point> user_face_edge_landmark)
{
user_face.convertTo(user_face, CV_8UC3,255); //
result_face.convertTo(result_face, CV_8UC3,255); //
Mat Face_mask=Generate_mask(user_face_edge_landmark,user_face,1)*255;
cvtColor(Face_mask, Face_mask, COLOR_BGR2GRAY );
int minx = INT_MAX, miny = INT_MAX, maxx = INT_MIN, maxy = INT_MIN;
int h = Face_mask.size().height;
int w = Face_mask.size().width;
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
if(Face_mask.at<uchar>(i,j) == 255)
{
minx = std::min(minx,i);
maxx = std::max(maxx,i);
miny = std::min(miny,j);
maxy = std::max(maxy,j);
}
}
}
Point p((maxy+miny)/2,(maxx+minx)/2);
Mat normal_clone;
seamlessClone(result_face, user_face, Face_mask, p, normal_clone, cv::NORMAL_CLONE);
return normal_clone;
}
Mat Generate_mask(std::vector<cv::Point> landmark,Mat user_face, double user_weight)
{
std::vector<std::vector<Point> > contours;
contours.push_back(landmark);
Mat user_mask = Mat(user_face.rows, user_face.cols, user_face.type(), Scalar(0,0,0));;
drawContours(user_mask, contours, 0,
Scalar(user_weight, user_weight, user_weight), cv::FILLED);
return user_mask;
}
std::vector<cv::Point> Get_forehead_landmark(std::vector<cv::Point> landmarks)
{
int nose_pos_x, nose_pos_y, eye_distance;
int data_x[68];
int data_y[68];
double parameters[22][137] = {
1.3121299e-02,7.8284466e-02,1.3682537e-01,1.1193889e-01,8.5031013e-02,3.2164153e-02,2.2350495e-02,-1.0342495e-02,-7.7748444e-03,-4.0949703e-02,-9.4443154e-02,-4.5142534e-02,-1.2129812e-02,-2.8264511e-02,-2.5573502e-02,-3.9540465e-02,5.6412532e-02,9.4804590e-02,7.8443343e-02,1.3893100e-02,1.0792109e-02,-2.3188053e-02,-4.3070856e-02,9.6286530e-02,7.5091737e-02,9.5919161e-02,7.9320113e-02,6.8816141e-02,-7.8367443e-03,1.2037974e-03,6.1224332e-03,6.0018602e-03,7.4132183e-02,4.7533831e-02,0.0000000e+00,3.0244671e-02,-2.4806944e-02,3.4067353e-02,3.2375106e-02,-2.7030400e-02,-7.2101302e-02,-7.5412298e-02,-2.8089621e-02,1.0861926e-01,9.1262445e-02,1.5729370e-02,4.7188652e-02,5.1038625e-02,4.8099831e-02,1.0931182e-01,3.0284517e-02,3.2455440e-02,3.4390681e-02,2.3339667e-02,-4.3051222e-02,-7.8296030e-02,-4.6093510e-02,1.1579448e-03,2.0111992e-02,1.3445342e-02,6.8736382e-02,1.0687902e-01,2.3445923e-02,1.8608164e-02,2.3801735e-02,-5.8753286e-02,1.8909902e-02,1.8608164e-02,1.7607099e-02,-3.7417622e-02,-3.4370718e-02,-6.5401648e-04,-6.1420559e-03,8.0073921e-03,2.8394741e-02,7.3957990e-02,2.8149253e-02,6.1638398e-02,6.7837015e-03,1.0586601e-02,6.1508994e-02,1.5643770e-02,-8.3011018e-03,-6.4700514e-02,-1.3585540e-01,-1.9324428e-01,-7.1548360e-02,-1.0840823e-01,-5.1292315e-02,1.0942300e-02,-2.4187566e-02,-2.6045937e-02,-3.0076191e-02,-9.7204905e-02,-1.6209973e-01,-1.0404166e-01,-4.5922655e-02,2.9887540e-02,-9.2110968e-03,2.4398089e-02,-3.5193005e-02,-1.0243772e-02,0.0000000e+00,-2.4326741e-02,-3.1989629e-02,-4.1102218e-03,-2.1114091e-03,1.7829321e-02,3.2220918e-02,-3.4638411e-02,-2.2349686e-02,-3.7368946e-02,9.0799296e-03,-7.2009632e-03,-4.6385060e-02,-8.7616707e-02,-4.3387803e-02,1.4695900e-01,1.8178829e-02,-4.7165243e-02,-5.2549172e-02,-4.4566095e-02,-5.6111360e-02,2.0398258e-02,-2.9106672e-02,-3.4292549e-02,-4.0364966e-02,-1.5182467e-02,-9.7194959e-03,2.6946896e-02,-6.5104450e-02,-3.8284408e-02,-6.1001474e-02,-7.3246101e-03,-4.6956339e-02,-5.1928216e-02,-3.5749626e-02,
3.1180874e-02,1.3499584e-01,2.4835632e-01,1.5021234e-01,8.5558140e-02,3.1791164e-02,-3.1699740e-03,-4.0783360e-02,-4.8414793e-02,-1.1404019e-01,-2.2790368e-01,-9.5408626e-02,-5.4001598e-02,-8.6711975e-02,-7.9510061e-02,-1.1268404e-01,4.6914326e-02,1.1667445e-01,1.3158617e-01,1.6968321e-02,1.5620599e-02,-1.4992434e-02,-3.0742766e-02,3.5174768e-02,4.7344789e-02,1.1464249e-01,1.1331928e-01,1.1127616e-01,-3.6293198e-02,1.0527181e-03,9.9789631e-03,2.2008825e-02,1.6286545e-01,9.3323431e-02,0.0000000e+00,5.0488739e-02,-4.3936958e-02,7.2176512e-02,6.2156377e-02,-6.2066806e-02,-1.1130287e-01,-1.4637267e-01,-3.3757287e-02,1.7959614e-01,1.4967924e-01,3.0171522e-02,1.0335739e-01,7.1806566e-02,6.6289152e-02,1.1976975e-01,9.1497578e-03,4.4260910e-02,4.2416584e-02,4.8124565e-02,-7.6794692e-02,-9.8576029e-02,-5.1056578e-02,2.9865429e-03,3.2656435e-02,-1.5054186e-02,7.2170078e-02,1.2261943e-01,1.1219978e-02,2.7140382e-02,6.0938025e-02,-6.6498908e-02,3.5350750e-02,2.7140382e-02,1.4276740e-03,-2.1431880e-02,-4.1395518e-02,7.3525244e-03,-3.2889807e-02,-6.4363802e-02,-1.9650955e-02,9.7381136e-02,2.5034831e-02,9.0706027e-02,-2.8369340e-03,-3.0908605e-02,9.6068918e-02,-1.3746738e-02,-2.2314411e-02,-1.2383163e-01,-2.1409055e-01,-2.8046570e-01,-1.1306551e-01,-1.6234790e-01,-7.0907395e-02,8.7101288e-02,1.6507323e-02,-1.8575271e-02,-6.3032590e-03,-1.2920812e-01,-2.8151524e-01,-1.6578207e-01,-4.4873448e-02,8.4569140e-02,1.3042823e-02,5.8644542e-02,-5.6830950e-02,-3.1644063e-02,0.0000000e+00,-3.6341100e-02,-4.0735731e-02,2.3329209e-02,5.0454629e-02,8.3454199e-02,1.2589548e-01,-1.9151769e-02,1.9971717e-02,-2.0942336e-02,6.0840926e-02,4.3447567e-02,-6.0381338e-02,-1.3317995e-01,-4.1765042e-02,2.7171027e-01,8.5971449e-02,-8.8530053e-03,-2.9755285e-02,-1.6676984e-02,-6.9103623e-02,4.2124216e-02,5.4820400e-02,3.7519280e-02,2.2739200e-02,6.5535312e-02,2.5468800e-02,2.9131283e-02,-7.3320061e-02,-3.7897144e-02,-7.5627986e-02,2.5941867e-02,1.5677016e-02,1.2389314e-02,3.5446961e-02,
-1.5464135e-02,6.4233644e-02,1.6199664e-01,1.0133685e-01,5.8871970e-02,3.5904242e-02,1.8919712e-02,-1.7999287e-02,-4.7943645e-02,-6.3133181e-02,-1.1919266e-01,-7.6642138e-02,-8.5659621e-02,-7.8221357e-02,-7.2191611e-02,-6.4860500e-02,4.0690515e-02,6.3840411e-02,9.9356572e-02,3.9908585e-02,4.0752945e-02,1.5804100e-02,4.1321161e-02,2.3545934e-02,3.1077259e-02,6.8881402e-02,6.9308726e-02,7.7468366e-02,4.4098453e-03,1.4876400e-02,1.2096847e-02,2.9956870e-02,1.3366055e-01,6.9611820e-02,0.0000000e+00,1.0095386e-02,-4.9593613e-02,6.9782815e-02,5.4532084e-02,-1.2204236e-02,-4.2885219e-02,-6.1768072e-02,2.3193324e-03,1.1125600e-01,5.7084804e-02,3.3934445e-02,5.4318680e-02,3.1418905e-02,3.1458997e-02,1.2574906e-01,-3.1553897e-03,7.5132701e-03,7.0004686e-03,-4.7333304e-04,-4.4883223e-02,-1.2167766e-01,-3.7065585e-02,5.6675157e-03,2.0516284e-02,-1.1817892e-02,1.9104474e-02,1.2305222e-01,-3.5490228e-02,1.3992970e-02,1.2718359e-02,-9.0568467e-02,7.4272369e-03,1.3992970e-02,-8.2676171e-03,-1.9304050e-02,-5.2899565e-02,-4.0839828e-02,-6.4427613e-02,-9.0327912e-02,-6.3560000e-02,4.0654102e-02,3.2666677e-03,7.1208952e-02,3.4344950e-02,-6.7742490e-03,4.0773304e-02,-2.7097780e-02,-3.4920317e-02,-7.6005502e-02,-9.8416504e-02,-1.2534507e-01,-8.6115327e-02,-1.0182351e-01,-5.4850218e-02,1.4906256e-02,-1.5904451e-03,-3.7540318e-02,-3.8023376e-02,-7.0191546e-02,-1.2421091e-01,-6.2360271e-02,-2.6972664e-02,3.4823141e-02,-1.4586202e-02,2.6774049e-02,-2.0658265e-02,-2.1648514e-02,0.0000000e+00,-1.3373914e-02,-1.2852852e-02,-6.3060339e-02,-4.9709217e-02,-4.2188660e-02,-3.2761703e-03,-7.8579557e-02,-4.4943059e-02,-4.8988715e-02,-2.7728290e-02,-3.5194433e-02,-7.1476275e-02,-1.1033840e-01,-6.4119188e-02,1.7973196e-01,2.2870860e-02,-3.2405643e-02,-5.2263173e-02,-3.9548912e-02,-5.5885730e-02,7.3517536e-02,5.9469854e-02,5.3278142e-02,4.5145874e-02,7.0766973e-02,3.5600901e-02,7.2796996e-02,-3.6201158e-02,-2.2913582e-02,-3.6821113e-02,5.9209936e-02,7.0387827e-03,-3.5916338e-03,-3.1343967e-05,
-1.5682990e-02,1.1081190e-01,2.1190928e-01,1.0833185e-01,4.9472685e-02,3.0419635e-02,-6.2153788e-03,-3.3540159e-02,-5.8382383e-02,-9.3530584e-02,-1.7469380e-01,-6.5295005e-02,-5.9647870e-02,-6.8922252e-02,-5.7885958e-02,-7.2533216e-02,3.8754265e-02,7.7199611e-02,1.1785351e-01,3.2504905e-02,3.1147173e-02,1.6597641e-02,2.9922620e-02,-5.7727703e-02,-2.8622992e-02,3.3323095e-02,5.3727918e-02,7.4762971e-02,-2.8847189e-02,2.3856208e-03,3.8959331e-03,2.1817281e-02,1.5174545e-01,8.0528125e-02,0.0000000e+00,2.5037812e-02,-4.1747855e-02,8.7284512e-02,6.8735496e-02,-2.7699443e-02,-5.0397037e-02,-9.0415355e-02,7.1304881e-03,1.2217674e-01,7.8118681e-02,2.0716178e-02,7.1601522e-02,2.7376180e-02,2.6766277e-02,9.8078889e-02,-1.6858558e-02,1.4028528e-02,1.4832221e-02,3.6305879e-02,-4.2076843e-02,-7.4630511e-02,-9.7331281e-03,1.9397327e-02,3.1545589e-02,-3.1527002e-02,2.4598431e-02,9.4086969e-02,-2.9155927e-02,2.0862002e-02,5.3506616e-02,-4.1917204e-02,2.6599702e-02,2.0862002e-02,-1.9245142e-02,8.9225739e-03,-3.3744579e-02,-1.2721059e-02,-5.6914661e-02,-1.1270998e-01,-7.4389352e-02,5.4318463e-02,1.2970421e-02,7.9534973e-02,2.5630176e-02,-2.5768604e-02,6.9169597e-02,-4.2390393e-02,-3.8258347e-02,-1.1017910e-01,-1.4996138e-01,-1.8124128e-01,-8.4675759e-02,-1.0947880e-01,-4.5985450e-02,8.5720741e-02,4.2154241e-02,-1.1607395e-02,-3.3587862e-03,-8.3740637e-02,-2.0769588e-01,-1.2611479e-01,-2.6548629e-02,6.0771217e-02,3.7500465e-03,3.9721160e-02,-2.7785201e-02,-2.7578320e-02,0.0000000e+00,-1.8368130e-02,-1.3921205e-02,-1.3908977e-02,1.1064691e-02,3.1968938e-02,7.6190839e-02,-3.8252597e-02,9.0711817e-03,-2.8540390e-02,1.3598964e-02,5.2164774e-03,-7.6509195e-02,-1.2867471e-01,-5.6622571e-02,2.1997613e-01,7.6313532e-02,1.5335235e-02,-4.9616219e-03,8.2464097e-05,-4.3974628e-02,5.8949944e-02,1.1767002e-01,1.0524010e-01,9.6577126e-02,1.2586220e-01,5.5325857e-02,4.6147696e-02,-2.5608361e-02,-1.1579729e-02,-3.0177544e-02,6.1768683e-02,6.8975294e-02,7.0646214e-02,7.5289806e-02,
7.2106295e-02,8.7554853e-02,2.3083626e-01,1.0547793e-01,4.3781144e-02,4.8727933e-02,6.8021927e-03,-2.9583527e-02,-8.4952418e-02,-1.0952574e-01,-2.1560161e-01,-1.2757318e-01,-1.6667253e-01,-1.5807745e-01,-1.5075246e-01,-1.4145779e-01,-6.7470682e-03,2.6079341e-02,9.6576490e-02,2.6062357e-02,3.9196144e-02,4.4062662e-02,1.1696431e-01,-1.1819244e-01,-5.7309961e-02,3.6638186e-02,6.3666132e-02,1.0978406e-01,-1.9048312e-02,1.0730193e-02,1.3563322e-02,5.7088490e-02,2.1230320e-01,1.0554012e-01,0.0000000e+00,1.4945082e-02,-7.3045869e-02,5.8756828e-02,4.2944335e-02,-5.3755955e-02,-5.6939432e-02,-1.1740536e-01,-2.0617611e-02,1.4371718e-01,8.2336840e-02,8.2946295e-02,1.3086312e-01,5.5557566e-02,4.4077776e-02,9.0336186e-02,-5.8968925e-02,-1.0502394e-03,-1.1452078e-02,-7.0313550e-04,-5.0487968e-02,-1.1774694e-01,-2.0622006e-02,7.7876354e-03,2.1825805e-02,-5.2064372e-02,-3.3031828e-02,9.4521179e-02,-7.9498835e-02,1.1145752e-02,2.6460826e-02,-7.7393718e-02,7.9857649e-03,1.1145752e-02,-4.7410782e-02,8.4555982e-02,-1.5502582e-03,-1.6883754e-02,-8.7760281e-02,-1.8838398e-01,-1.4763650e-01,2.1106995e-02,-3.3579392e-02,5.9826604e-02,9.1615051e-03,-7.5071569e-02,1.9219928e-02,-8.5184394e-02,-6.3899937e-02,-1.0297381e-01,-7.5256558e-02,-6.6116040e-02,-9.2576157e-02,-9.6932275e-02,-4.8207061e-02,8.2087423e-02,5.7015736e-02,-1.7703594e-02,-7.6219581e-03,-6.0029430e-02,-1.7096299e-01,-7.1093693e-02,-2.7109330e-02,5.7316203e-02,-1.9939867e-03,4.4055145e-02,-2.3490277e-02,-4.5375508e-02,0.0000000e+00,-1.6767761e-02,-6.8003071e-03,-8.3370252e-02,-4.9047120e-02,-5.1943306e-02,2.9594385e-02,-9.5577799e-02,-2.4159643e-02,-5.3911883e-02,-3.7949546e-02,-3.5271948e-02,-1.0187254e-01,-1.5446608e-01,-8.1584039e-02,2.5456134e-01,6.9504632e-02,1.5297837e-02,-2.6618297e-02,-5.0844639e-03,-5.7613965e-02,1.0282692e-01,1.5865261e-01,1.4079861e-01,1.2770490e-01,1.5681654e-01,7.1389476e-02,8.7274198e-02,-1.6082271e-02,-7.2355949e-03,-2.5784519e-02,1.0845342e-01,9.4187638e-02,7.8965855e-02,7.3701418e-02,
2.7254775e-02,5.1817568e-02,4.9137876e-02,3.9392942e-02,3.5681933e-02,2.7148251e-02,2.7609366e-03,-8.0064343e-03,-1.5079450e-02,6.6096685e-03,1.1304914e-02,2.5884975e-02,1.2109444e-02,3.2946824e-03,-3.4373142e-03,1.1030128e-02,1.6993285e-02,2.6373258e-02,3.1954364e-02,4.4556477e-02,5.2400952e-02,6.2965351e-02,6.4332922e-02,-5.4631677e-02,-3.6665965e-02,-1.9687021e-02,-9.3064392e-03,1.8396964e-02,1.8514198e-02,1.0328038e-02,4.6861498e-03,8.7608890e-03,2.2446684e-02,1.4052380e-02,0.0000000e+00,-1.4077841e-03,-1.0458414e-02,1.3210100e-02,2.1241007e-02,3.1291433e-02,3.0496079e-02,2.4931815e-02,1.8284509e-02,1.6843457e-02,1.8847307e-02,2.9956468e-02,4.0464875e-02,3.0698121e-02,2.1674866e-02,9.1118281e-03,4.7955362e-03,5.9261917e-03,-1.7460318e-02,-5.7205519e-03,-4.4323240e-03,-5.5968134e-03,-9.2153643e-03,-1.0481283e-02,-1.2104165e-02,-2.6286712e-03,-2.0709256e-03,8.8683078e-03,-1.3458094e-03,-1.1359721e-02,-4.0176150e-03,-5.4548446e-03,-1.5403622e-02,-1.1359721e-02,-3.6232120e-03,1.2541255e-02,-7.4750560e-03,-1.4712586e-02,-2.3278791e-02,-4.1213851e-02,-3.7300035e-02,-2.7460579e-02,-3.6749292e-02,-3.4408155e-02,-3.1772144e-02,-1.1434801e-02,-1.0802844e-02,-1.7693172e-02,-1.6741910e-02,-7.2340040e-04,2.3913606e-02,3.9438075e-02,-3.6331446e-02,-3.2128988e-02,-2.3510723e-02,8.2591054e-03,2.6544602e-02,2.9337441e-03,-1.4846427e-02,-3.2900606e-02,-5.1234448e-02,-5.0677484e-02,-8.5400326e-03,-2.3892317e-02,-2.2262380e-02,-3.3903968e-02,3.3590339e-03,-4.4358299e-03,0.0000000e+00,6.9727919e-03,7.9226147e-03,-2.4065463e-02,-1.7231353e-02,-2.4546257e-02,-1.2166507e-02,-9.1257699e-03,7.5547200e-03,-7.2793218e-03,-1.9941798e-02,-1.6874103e-02,-2.0246431e-02,-7.3730378e-03,-4.5213114e-03,2.0665884e-02,3.0803904e-02,3.7280069e-02,3.4777762e-02,3.7920207e-02,4.2176898e-02,3.5670469e-02,1.8333838e-02,6.9954862e-04,-3.7440381e-04,-7.4075053e-03,-4.1641924e-03,3.5776030e-02,4.9892451e-02,4.2616350e-02,4.9788145e-02,4.1173198e-02,1.6134137e-02,1.1722569e-02,7.9311920e-03,
6.5058579e-02,1.4734105e-01,1.9488085e-01,7.2408365e-02,1.3927002e-02,8.2195685e-03,-5.7871737e-02,-6.2177539e-02,-7.3248845e-02,-1.0149658e-01,-1.8407995e-01,-3.7988778e-02,-4.2897506e-02,-7.5881028e-02,-7.7163487e-02,-1.0431651e-01,-3.7561868e-02,1.2370933e-02,9.6888754e-02,3.6923795e-02,3.9895425e-02,6.1845654e-02,5.8579551e-02,-1.7921967e-01,-1.0831548e-01,-2.7354285e-02,6.9203437e-03,4.5996718e-02,-4.2893216e-02,-1.2029875e-03,4.4922937e-03,2.1616821e-02,1.1640169e-01,6.1734750e-02,0.0000000e+00,3.2648751e-02,-1.8373122e-02,5.0474695e-02,4.6650895e-02,-3.6055643e-02,-2.8423530e-02,-8.5380713e-02,-3.6788554e-04,9.4502061e-02,9.8785486e-02,4.7264637e-02,1.1553327e-01,5.2744349e-02,4.0910136e-02,-3.8923029e-02,-4.8697493e-02,1.3230018e-02,-2.8481951e-03,5.2369649e-02,-2.0828162e-02,3.1785482e-02,2.3168355e-02,1.0387437e-02,8.4332620e-03,-5.7472650e-02,-2.0549707e-02,-2.9481650e-02,-2.0707685e-02,2.2728211e-03,7.1023953e-02,4.7098707e-02,2.6319726e-02,2.2728211e-03,-4.1633074e-02,7.4949078e-02,1.4000256e-02,2.0669136e-02,-4.4165117e-02,-1.3654657e-01,-9.0438888e-02,7.0505336e-03,-2.4050207e-02,8.6297979e-03,-4.4646086e-02,-7.5639493e-02,3.9655919e-02,-5.4094026e-02,-1.7924274e-02,-6.5138496e-02,-6.1124692e-02,-4.4293970e-02,-8.3909200e-02,-9.4668395e-02,-4.3195539e-02,1.3249625e-01,8.4523042e-02,2.3730194e-02,3.2374036e-02,-7.4128147e-02,-2.2614955e-01,-1.4228260e-01,-1.6471740e-02,5.0890383e-02,2.4606664e-02,2.0434624e-02,-3.2327963e-02,-3.8621348e-02,0.0000000e+00,-1.2332210e-02,-4.9994009e-03,3.0293452e-02,7.3321216e-02,8.7801216e-02,1.3638222e-01,2.7121582e-02,7.9829073e-02,2.3831393e-02,6.3630704e-02,6.6491347e-02,-3.3299539e-02,-6.2935011e-02,2.9510695e-03,1.5165258e-01,1.1553396e-01,9.5178927e-02,7.2999169e-02,7.8770769e-02,1.2219885e-02,1.7722818e-02,1.2979067e-01,9.9388832e-02,8.8583243e-02,1.0016059e-01,2.7804918e-02,-1.3284056e-02,2.0610874e-02,2.9438873e-02,1.0363157e-02,4.8640925e-02,1.2101325e-01,1.2380109e-01,1.3008295e-01,
5.6727675e-02,1.2777806e-01,1.7999323e-01,6.5053084e-02,7.0353237e-03,-8.9624030e-05,-5.7961119e-02,-5.9170011e-02,-6.3783843e-02,-1.0956262e-01,-1.9796767e-01,-4.4018952e-02,-2.4836218e-02,-7.1052352e-02,-7.1409855e-02,-1.0723305e-01,-2.5600104e-02,3.6864326e-02,8.7570694e-02,2.1381832e-02,2.5980654e-02,4.4453604e-02,2.6222141e-02,-1.3642015e-01,-7.0115521e-02,7.4443274e-03,3.6909008e-02,5.8505743e-02,-4.4137034e-02,6.0780655e-04,6.3777525e-03,1.9570924e-02,1.1581829e-01,6.2451214e-02,0.0000000e+00,3.8129657e-02,-1.6399218e-02,5.2295481e-02,4.9200199e-02,-4.1807976e-02,-4.4010238e-02,-9.5011472e-02,-2.1469011e-03,1.0511595e-01,1.1227514e-01,3.0398079e-02,1.0902316e-01,5.3159190e-02,4.3212692e-02,-3.2171324e-02,-2.7336538e-02,2.8183147e-02,6.9749928e-03,5.0208327e-02,-4.9907172e-02,1.7083681e-02,-3.3059362e-03,-7.7263228e-03,5.5472670e-03,-4.7447314e-02,6.6629196e-03,-1.9545878e-02,2.8580895e-03,2.6702001e-03,6.7089488e-02,2.5548944e-02,2.2012469e-02,2.6702001e-03,-2.4404964e-02,2.6844343e-02,-8.2204413e-03,1.8133228e-02,-3.9398987e-02,-1.1780619e-01,-7.8522971e-02,8.4541482e-03,-3.2444423e-02,-3.9685133e-03,-6.6017373e-02,-8.5468420e-02,4.2528274e-02,-4.9709088e-02,-1.7945933e-02,-8.0910055e-02,-1.0406031e-01,-1.0552549e-01,-7.7198747e-02,-9.5681426e-02,-3.8573288e-02,1.3963853e-01,8.5298812e-02,2.8972884e-02,4.8032810e-02,-6.4861265e-02,-2.2204723e-01,-1.3516631e-01,5.5773377e-03,7.5853726e-02,3.7973625e-02,3.2956164e-02,-3.8108329e-02,-3.4840586e-02,0.0000000e+00,-1.5512298e-02,-1.1598181e-02,7.5778343e-02,1.2303520e-01,1.4470657e-01,1.8348357e-01,6.8221928e-02,1.1013040e-01,5.5219770e-02,1.1452037e-01,1.1494273e-01,9.9296617e-04,-3.4224012e-02,3.8035731e-02,1.6251596e-01,1.3490334e-01,1.0522799e-01,8.5340489e-02,9.1535702e-02,2.2703513e-02,1.6148299e-02,1.1974079e-01,8.7462821e-02,7.2844040e-02,9.1081638e-02,3.0753241e-02,-2.0986578e-02,2.0832059e-02,3.1608778e-02,1.0016841e-02,4.5460554e-02,1.0718325e-01,1.1241794e-01,1.2662806e-01,
9.1030708e-02,1.0107153e-01,1.6192213e-01,6.4198938e-02,1.5861034e-02,6.4753122e-03,-3.3824890e-02,-3.8133900e-02,-4.1432135e-02,-1.0617953e-01,-2.0768509e-01,-7.6169536e-02,-4.5103031e-02,-8.7828227e-02,-8.5547488e-02,-1.2384627e-01,-3.1436453e-02,3.0680773e-02,5.2466396e-02,-1.8363725e-02,-1.1501659e-02,2.7603052e-03,-8.4761662e-03,-7.0847007e-02,-1.8879075e-02,5.4733320e-02,7.1092184e-02,7.6162897e-02,-4.7810844e-02,-3.4683538e-03,7.2240795e-03,2.0783930e-02,1.0872843e-01,5.8949775e-02,0.0000000e+00,4.4217260e-02,-1.6450379e-02,2.1478196e-02,1.9671848e-02,-7.2763817e-02,-7.8218452e-02,-1.2405308e-01,-3.6925132e-02,1.1594744e-01,1.2582962e-01,3.7392054e-02,1.1250890e-01,6.3898646e-02,5.2619206e-02,-2.3726905e-02,-2.2427981e-02,3.4642539e-02,2.1219374e-02,4.1895739e-02,-5.8406000e-02,2.7514932e-03,-1.9371230e-02,-1.5297413e-02,7.8658764e-03,-3.6609560e-02,1.6168712e-02,-7.9196388e-03,1.3902976e-02,7.8880599e-03,5.4482348e-02,8.4284129e-03,2.3183452e-02,7.8880599e-03,-1.5999359e-02,4.7141427e-02,2.3223247e-02,4.6681253e-02,-7.1211650e-03,-7.1483840e-02,-4.1010665e-02,3.1213315e-02,-1.9098322e-02,8.7159577e-03,-5.9509035e-02,-8.0854810e-02,4.7034459e-02,-2.3509044e-02,4.0405778e-03,-5.9236048e-02,-9.0829206e-02,-1.0108972e-01,-4.4070619e-02,-6.8899644e-02,-1.8185607e-02,1.2851269e-01,6.8797757e-02,3.5106874e-02,6.5223406e-02,-3.5946575e-02,-1.7392609e-01,-7.8986060e-02,9.5424390e-03,9.2099855e-02,4.8417314e-02,5.3714654e-02,-4.2915247e-02,-3.2834998e-02,0.0000000e+00,-2.4093347e-02,-2.0864465e-02,8.8650388e-02,1.2906239e-01,1.5041878e-01,1.8593586e-01,6.9702178e-02,1.0108459e-01,5.7868654e-02,1.2608886e-01,1.2579592e-01,2.4344328e-02,-2.3842468e-02,4.5372262e-02,1.6183434e-01,1.0776239e-01,6.7001631e-02,4.6331667e-02,5.8027062e-02,-8.7722403e-03,4.9473146e-03,8.6515973e-02,6.2828587e-02,4.6675788e-02,7.0263400e-02,2.4776042e-02,-3.1975991e-02,-1.9356762e-02,-6.9406049e-04,-2.8353514e-02,1.9941226e-02,7.7968570e-02,7.8813933e-02,9.5235924e-02,
8.7589392e-02,8.6863472e-02,1.3015177e-01,4.6721450e-02,9.3801390e-03,1.9669153e-02,-1.6519480e-02,-1.9222569e-02,-3.6354452e-02,-7.7729994e-02,-1.5087139e-01,-6.1747027e-02,-5.9660707e-02,-7.5854727e-02,-7.1360610e-02,-8.9091369e-02,-3.7370893e-02,-2.0349193e-03,2.5038475e-02,-1.7645483e-02,-1.1194413e-02,1.2269382e-02,2.3739819e-02,-9.1887030e-02,-3.6196556e-02,2.4932199e-02,4.8265689e-02,6.3214235e-02,-3.3382144e-02,-2.3253128e-04,5.1021458e-03,2.1205219e-02,8.2072389e-02,3.9332786e-02,0.0000000e+00,2.6195155e-02,-9.7963568e-03,1.1650121e-02,4.7377183e-03,-5.5006846e-02,-4.2638441e-02,-8.4301353e-02,-2.5187772e-02,8.0895358e-02,8.4398582e-02,5.3219780e-02,9.9239513e-02,5.1258318e-02,4.1609495e-02,-4.1413615e-02,-3.9851619e-02,9.8917510e-03,4.1737249e-03,2.7406444e-02,-2.1795520e-02,2.5907499e-02,1.0723109e-02,-4.6633669e-03,2.8391618e-03,-4.3869286e-02,-2.5710701e-02,-2.8378505e-02,-1.4155840e-02,1.4179759e-03,3.8633470e-02,2.8702656e-02,1.6773214e-02,1.4179759e-03,-3.0517496e-02,7.8300696e-02,3.6730468e-02,2.9568256e-02,-2.1424681e-02,-9.3685746e-02,-7.1409255e-02,-7.2015344e-03,-3.0598071e-02,-4.8815461e-03,-3.9026027e-02,-7.1903493e-02,1.6839294e-02,-2.8895470e-02,6.3597982e-03,-2.1711482e-02,-7.1022215e-03,1.4062692e-02,-2.2444336e-02,-2.8639418e-02,-4.7123203e-03,9.5762586e-02,6.3132405e-02,3.2318688e-02,5.7891522e-02,2.9851184e-03,-8.6086691e-02,-1.6073979e-02,1.6009743e-02,6.5323226e-02,3.9374113e-02,3.9670527e-02,-2.5601684e-02,-3.0979153e-02,0.0000000e+00,-1.3961725e-02,-4.4073213e-03,4.3503226e-02,7.6176891e-02,8.6251810e-02,1.1947037e-01,3.9780804e-02,6.9984828e-02,4.4502720e-02,7.9256361e-02,8.5769353e-02,2.1621875e-02,-1.0087837e-02,3.2785356e-02,8.6870448e-02,6.0698695e-02,5.0050688e-02,3.1874396e-02,4.1374736e-02,-1.1580240e-02,5.4219875e-04,9.0318085e-02,7.6455197e-02,6.5029132e-02,7.4637053e-02,2.0621080e-02,-3.3984768e-02,-9.4023868e-03,-2.2424353e-03,-1.6657153e-02,2.0216787e-02,8.3371295e-02,8.2745947e-02,8.4139755e-02,
-2.0094132e-02,1.3150166e-01,1.4104682e-01,6.1490546e-02,1.8115938e-02,1.6775140e-02,-2.1774193e-02,-2.0756939e-02,-2.7598586e-02,-6.5772306e-02,-1.1267735e-01,-1.8061925e-02,-8.0057722e-03,-1.7525783e-02,-7.7643709e-03,-3.6761190e-02,-2.0579217e-02,2.2597131e-03,6.5272903e-02,9.3395698e-03,-4.7301166e-03,-2.4392677e-04,-2.3857111e-02,-7.3759044e-02,-4.0355387e-02,-1.0334988e-02,1.2343402e-02,1.3577389e-02,-4.0356608e-02,-5.9444469e-03,-4.4368418e-03,-5.7707680e-03,3.6906779e-02,1.6453824e-02,0.0000000e+00,2.3833048e-02,1.4622678e-02,5.6726627e-02,3.5937462e-02,-2.2707170e-02,-1.7832409e-02,-4.5954369e-02,1.5865938e-02,5.0891723e-02,5.3585112e-02,8.0105525e-03,3.6632496e-02,9.3340480e-03,1.4318508e-02,-3.4999307e-02,-2.8577457e-02,-7.0178120e-04,1.6310167e-02,6.0722006e-02,1.5524119e-02,7.1133191e-02,5.3111956e-02,2.7921283e-02,1.6987057e-02,-4.2987085e-02,-1.2642443e-02,-3.2782194e-02,-7.5034101e-03,1.0700859e-02,6.7254644e-02,7.6340817e-02,4.0545458e-02,1.0700859e-02,-2.7669464e-02,4.6367036e-02,1.1764750e-02,1.2899305e-02,-2.4710271e-02,-7.8393173e-02,-5.1762492e-02,-7.5549225e-04,6.4265654e-03,2.1709170e-02,-4.7807906e-05,-3.0760176e-02,4.6403485e-02,-9.0178603e-03,2.3335008e-02,-1.8756250e-02,-3.1186435e-02,-2.1389690e-02,-1.8948548e-02,-3.0084348e-02,-5.0346362e-04,9.3997084e-02,5.1053537e-02,3.1953981e-02,5.2880713e-02,-4.7479447e-03,-9.0127201e-02,-3.8514701e-02,1.2540824e-02,5.9494388e-02,4.2137443e-02,3.6785871e-02,-2.4003670e-02,-2.2338947e-02,0.0000000e+00,-1.1385094e-02,-1.1543090e-03,5.8429700e-02,8.2255475e-02,1.0898637e-01,1.1688934e-01,5.0174542e-02,6.8603525e-02,4.6858333e-02,8.6329341e-02,8.5970360e-02,2.1428471e-02,-7.1813986e-03,2.7517508e-02,3.0669579e-02,3.0573546e-02,2.7979468e-02,2.5446019e-02,1.9228410e-02,-2.7416469e-02,-4.4859971e-02,7.2134451e-02,7.0735952e-02,6.6185946e-02,7.0382514e-02,3.7526412e-03,-7.5422915e-02,-3.1319232e-02,-2.2835190e-02,-3.3784092e-02,-2.2522999e-02,7.4262535e-02,8.7248571e-02,8.7653589e-02,
-3.9736863e-02,-9.0233459e-03,-3.1527284e-02,-2.7924592e-02,-2.9060118e-02,-1.8272339e-02,-8.3365884e-03,6.1329322e-03,1.3746377e-02,-1.0892027e-02,-1.0203267e-02,-1.0671349e-02,7.0144481e-03,3.6991187e-03,7.4521473e-03,-1.0065175e-02,-3.3164299e-02,-3.4763546e-02,-1.8190069e-02,-2.4320957e-02,-3.3886405e-02,-3.5175213e-02,-5.7630770e-02,3.7489793e-02,3.3387239e-02,1.5038670e-02,9.3197117e-03,-2.3746183e-02,-1.2247959e-02,-1.9130971e-03,-1.3653858e-03,-1.1261839e-02,-3.7382025e-02,-2.3133233e-02,0.0000000e+00,2.8012116e-03,2.2917692e-02,4.4783722e-03,-5.3456443e-03,-1.0995258e-02,-7.3265894e-03,4.4729575e-04,6.3325996e-03,-1.9391976e-02,-8.3561216e-03,-2.8154883e-02,-3.5258491e-02,-2.4672839e-02,-1.4868076e-02,-4.4612106e-02,2.5219903e-03,-9.0970153e-04,1.3191582e-02,1.0916956e-02,1.4616503e-03,3.9230518e-02,1.2032203e-02,-2.6508197e-03,-5.0391100e-04,-3.2360057e-03,-1.2734351e-03,-3.9362636e-02,1.5491637e-02,2.0658387e-03,7.7652218e-03,2.7341180e-02,1.0815408e-02,2.0658387e-03,4.9736945e-03,-1.3735167e-02,5.2927789e-03,1.1277521e-02,1.5583768e-02,2.3722947e-02,1.7079758e-02,-9.5879119e-03,7.2853882e-03,-6.9262364e-03,-1.5136201e-03,-4.3834813e-03,6.1605406e-03,2.4632187e-02,3.8854825e-02,3.1698391e-02,1.9239017e-02,2.2181065e-02,4.3954364e-02,4.4034234e-02,3.3492399e-02,1.7807896e-02,3.4259894e-03,2.4219274e-02,4.7722176e-02,6.1471372e-02,7.7226189e-02,7.5646563e-02,4.3602383e-02,3.9146617e-02,3.8862638e-02,2.7694286e-02,-4.3690531e-03,2.2695237e-03,0.0000000e+00,-1.4713072e-03,4.4610970e-04,6.9409449e-02,7.3986084e-02,8.5259560e-02,6.3433414e-02,6.7235845e-02,4.5648822e-02,6.2862074e-02,8.3102820e-02,8.4768228e-02,7.7248422e-02,7.2815789e-02,6.5079105e-02,-6.1163074e-02,-1.6132233e-02,-3.8274122e-03,2.3717791e-03,-1.3583714e-03,-1.0097140e-02,-4.8842360e-02,-1.1856737e-02,-2.1446706e-03,-4.3844454e-03,-4.8080159e-03,-7.7857928e-03,-6.5686427e-02,-2.6818309e-02,-2.4572207e-02,-2.6919018e-02,-4.2577422e-02,-9.2262194e-04,5.7299963e-03,1.0432309e-02,
-1.2950745e-02,-5.5503800e-02,-9.0283086e-02,-5.8375386e-02,-4.6344049e-02,-4.3405348e-02,-2.1611797e-02,-4.4879177e-03,1.4853444e-02,-1.7400799e-03,3.9328530e-03,-3.0462706e-02,-1.7670596e-02,-2.9477682e-02,-3.8352185e-02,-5.5204046e-02,-8.0103630e-02,-8.1578387e-02,-3.3458915e-02,-2.0351703e-02,-2.6773757e-02,-3.1308150e-02,-5.6483247e-02,7.7195510e-02,6.1014553e-02,3.1363147e-02,2.1489638e-03,-4.5000444e-02,7.4306420e-04,2.7621340e-03,7.3271237e-03,-3.0530666e-03,-5.4697355e-02,-3.0160718e-02,0.0000000e+00,-1.6609129e-04,1.7304316e-02,-2.9102642e-02,-2.5382438e-02,-1.7445417e-02,-1.7521114e-02,1.3368815e-03,-1.4075377e-02,-3.5355019e-02,-1.1106901e-02,-2.6280642e-02,-4.2053387e-02,-1.8264076e-02,-1.1981789e-02,-6.6144332e-02,7.2991019e-03,4.7433296e-03,9.0347902e-03,-1.4012941e-02,-1.4994816e-02,1.3773338e-02,-2.0450984e-02,-2.3181993e-02,-1.4470135e-02,1.1974506e-02,-2.3783389e-03,-5.2736432e-02,2.5553668e-02,-5.5914996e-03,-1.8474701e-02,-1.8361580e-03,-3.3540014e-03,-5.5914996e-03,1.4663799e-02,-1.8796383e-02,1.3617651e-02,2.2741001e-02,3.7221691e-02,6.7902255e-02,5.7690196e-02,-3.3863786e-03,3.7662688e-03,-2.2619644e-02,-2.2965601e-02,-7.0401328e-03,-1.3949918e-02,4.1856327e-02,5.2227033e-02,6.5482118e-02,5.9846037e-02,6.6629355e-02,4.4890281e-02,5.0009161e-02,2.9627672e-02,-1.0310118e-02,-2.1328333e-02,1.6842729e-02,3.6069707e-02,6.4161170e-02,1.1261825e-01,1.0469646e-01,4.0857531e-02,2.5822902e-02,3.6489332e-02,2.0359171e-02,-6.8924164e-03,4.5600068e-03,0.0000000e+00,-2.9878013e-04,-6.0035494e-03,6.4887994e-02,6.7202613e-02,6.5976098e-02,4.3682263e-02,6.5995381e-02,3.2621636e-02,6.5858657e-02,8.2811820e-02,8.5954175e-02,9.7077334e-02,1.0373882e-01,8.2831103e-02,-7.6179404e-02,-2.7126859e-02,-1.4406392e-02,-1.2488553e-02,-6.2810700e-03,-5.1792569e-03,-4.8490217e-02,-6.7999323e-02,-6.3403966e-02,-6.7852354e-02,-6.8222013e-02,-2.9402329e-02,-5.7996799e-02,-3.2565619e-02,-2.4589314e-02,-3.3318934e-02,-5.2803272e-02,-4.4032408e-02,-4.9455065e-02,-3.4503118e-02,
-3.8958509e-02,-3.9813676e-02,-1.7185161e-01,-8.5203151e-02,-4.9600486e-02,-7.8160029e-02,-5.9543259e-02,-2.7741440e-02,3.4728749e-02,4.9452607e-02,1.0699967e-01,4.6934644e-02,6.5255822e-02,3.1626789e-02,3.3470496e-03,-2.5575696e-02,-1.2197636e-01,-1.2982459e-01,-2.4031198e-02,2.4457953e-02,5.6464496e-03,-6.2427126e-03,-9.1798732e-02,9.7074841e-02,5.0094830e-02,-2.3811419e-02,-7.7998035e-02,-1.3784777e-01,1.2276896e-02,-1.6262817e-03,5.2132392e-03,-3.0990540e-02,-1.6564307e-01,-7.9414234e-02,0.0000000e+00,-1.0919825e-03,5.2324357e-02,-5.4489588e-02,-3.0448202e-02,2.3569090e-02,1.9316992e-02,6.6828934e-02,-7.0187838e-04,-1.0851399e-01,-3.3306940e-02,-5.8669299e-02,-9.3448097e-02,-2.8756384e-02,-2.1944405e-02,-1.3860094e-01,3.0417728e-02,9.3336622e-03,8.6947538e-03,-4.3419089e-04,2.1314131e-02,8.9813360e-02,-6.1025680e-03,-2.0511115e-02,-3.1786428e-02,3.6054150e-02,1.0995536e-02,-1.2475333e-01,7.0506190e-02,-1.6695434e-02,-1.6985945e-02,6.0443141e-02,-2.0556666e-03,-1.6695434e-02,3.1379062e-02,-3.6244585e-02,2.1759416e-02,4.0893536e-02,8.4759840e-02,1.6454907e-01,1.5326576e-01,-3.8202741e-03,2.4844693e-02,-5.8929534e-02,-5.0712594e-02,3.0748983e-02,-1.8500720e-02,9.0157689e-02,9.2178157e-02,1.3412045e-01,1.2040595e-01,1.3257529e-01,4.2625223e-02,4.9777952e-02,2.0293138e-02,-4.3531884e-02,-5.2918803e-02,2.0629914e-02,1.2553299e-02,3.0810552e-02,1.1144490e-01,6.1109585e-02,1.5980937e-02,-3.4360213e-02,2.3588653e-02,-2.9013462e-02,-6.4134514e-03,2.0581368e-02,0.0000000e+00,8.7248162e-03,-7.9708097e-03,8.7945058e-02,7.6628964e-02,7.2636054e-02,1.8030703e-02,9.9424946e-02,3.9075004e-02,7.6123327e-02,8.4990401e-02,8.4792367e-02,1.2198650e-01,1.6718712e-01,1.1177929e-01,-1.9708809e-01,-5.0317694e-02,-9.6173877e-03,1.0600616e-02,9.5409865e-03,3.4365155e-02,-1.1138980e-01,-1.8379912e-01,-1.8555018e-01,-1.8268282e-01,-2.0272976e-01,-1.0278929e-01,-1.0413347e-01,-2.1168548e-02,-8.4336099e-03,-1.7101167e-02,-1.1924371e-01,-1.0395861e-01,-1.0837296e-01,-8.1165535e-02,
2.6634473e-02,5.4958704e-02,-6.2163916e-02,-4.9219961e-02,-5.3872398e-02,-1.0770231e-01,-1.2712590e-01,-8.9857293e-02,-6.6707348e-03,-3.5642760e-02,-4.8935380e-02,8.9451206e-03,5.7429902e-02,-2.1378302e-02,-5.5275432e-02,-1.2963901e-01,-1.7070206e-01,-1.2541197e-01,3.6686669e-02,2.7676154e-02,6.1654917e-03,-4.8549959e-04,-1.2511340e-01,4.2833919e-02,2.8815790e-02,2.4320115e-03,-4.8953526e-02,-1.1268936e-01,-3.1955991e-02,-7.8639772e-03,1.1011583e-02,-2.5221597e-02,-1.1400301e-01,-4.6751795e-02,0.0000000e+00,4.1073709e-02,5.5045594e-02,-4.2282672e-02,-1.3220167e-02,-3.2274667e-02,-4.4267053e-02,-2.8784899e-02,-3.1842654e-02,-3.1204801e-02,7.3759877e-02,-4.0085079e-02,-1.5648200e-02,2.2015783e-02,2.0537611e-02,-1.9785492e-01,1.0367609e-02,3.7657794e-02,3.0944069e-02,5.2942852e-02,-8.0624598e-03,1.3081473e-01,-6.0827014e-03,-2.1980855e-02,-2.6709689e-02,7.4173794e-03,2.5296953e-02,-1.6906940e-01,9.5226284e-02,-1.0536243e-02,4.4544294e-02,1.0507526e-01,2.9971412e-02,-1.0536243e-02,1.8386878e-02,-1.1787313e-02,3.4935723e-02,8.6340933e-02,9.5498375e-02,1.4111405e-01,1.6771198e-01,4.4385894e-02,4.1859650e-02,-3.6995213e-02,-9.3005376e-02,-1.2918033e-02,3.8612217e-02,9.5436074e-02,1.1775786e-01,1.0428328e-01,4.8527849e-02,4.8183002e-02,-2.0169373e-02,-3.7156353e-02,-1.9805257e-02,4.9226529e-02,-2.3105268e-02,3.6249550e-02,4.3032340e-02,-3.9980617e-02,-7.6128084e-02,-5.1389805e-02,-2.6178623e-03,1.9603504e-02,6.0907723e-02,2.5087792e-03,-5.0214238e-02,-5.3710572e-03,0.0000000e+00,-1.1255514e-02,-3.0791829e-02,1.6546881e-01,1.8502020e-01,2.0242605e-01,1.6859500e-01,1.6153870e-01,1.1866922e-01,1.2017403e-01,1.9071120e-01,1.8692036e-01,1.3840188e-01,1.5385325e-01,1.4982385e-01,-9.3323507e-02,3.4579244e-02,4.6348427e-02,5.4816558e-02,6.0252777e-02,3.0465023e-02,-1.4078427e-01,-1.5142713e-01,-1.7456964e-01,-1.8277249e-01,-1.8775139e-01,-1.0975821e-01,-1.5881130e-01,-4.6828356e-02,-1.0504860e-02,-4.9097452e-02,-1.3647113e-01,-5.5483476e-02,-5.8222628e-02,-8.2241965e-03,
-1.4870164e-02,7.4488765e-02,-3.3536002e-02,-3.0358061e-02,-4.5937999e-02,-1.1549663e-01,-1.3295822e-01,-9.5082849e-02,1.0362584e-03,-5.8438291e-02,-9.0583933e-02,4.6042599e-03,9.0036978e-02,-7.8691072e-03,-3.7278774e-02,-1.3510328e-01,-1.5033702e-01,-8.6120175e-02,6.2075544e-02,1.9522210e-02,-8.5162180e-03,-2.9979520e-02,-1.8559688e-01,8.7490984e-02,6.0830004e-02,3.2811494e-02,-2.3686577e-02,-1.0859620e-01,-4.9554081e-02,-1.3140582e-02,8.4463272e-03,-3.6715451e-02,-1.0679882e-01,-3.9087558e-02,0.0000000e+00,5.6927435e-02,6.0162121e-02,-1.6270996e-02,8.0717466e-03,-4.2300355e-02,-7.2988886e-02,-5.4991308e-02,-2.8631477e-02,-7.4256168e-03,9.9368900e-02,-7.5264817e-02,-3.1141160e-02,1.4051085e-02,1.8501131e-02,-1.7338335e-01,3.4629694e-02,5.7659787e-02,5.5780404e-02,7.6673278e-02,-3.3009554e-02,1.2394229e-01,-2.0608325e-02,-2.3207710e-02,-1.5149189e-02,1.5627344e-02,7.2668380e-02,-1.4596094e-01,1.2650277e-01,9.1457563e-04,6.6630479e-02,9.8648750e-02,4.4381684e-02,9.1457563e-04,3.6438103e-02,-5.5647065e-02,1.6097190e-02,9.8580710e-02,1.1111549e-01,1.7184677e-01,2.0132405e-01,8.0342369e-02,6.5233535e-02,-1.3874765e-02,-9.3208861e-02,-6.5523514e-03,7.9495079e-02,1.1229583e-01,1.2745809e-01,7.2700580e-02,-3.9419982e-02,-7.5821700e-02,-1.8796327e-02,-5.6130799e-02,-1.5822901e-02,8.2333638e-02,-1.8301371e-02,4.6320916e-02,6.4663260e-02,-5.3305264e-02,-1.2715459e-01,-8.5965314e-02,6.4511373e-03,5.7821153e-02,7.9179253e-02,2.5660234e-02,-6.4033710e-02,-2.0956091e-03,0.0000000e+00,-2.0834954e-02,-4.3970991e-02,2.2904974e-01,2.5227517e-01,2.8912163e-01,2.4354203e-01,2.0698114e-01,1.5632159e-01,1.4721659e-01,2.5478202e-01,2.4280495e-01,1.5987490e-01,1.5567333e-01,1.7264152e-01,-4.9363912e-02,6.2516630e-02,4.8686893e-02,6.1912089e-02,6.2952855e-02,2.2163991e-02,-1.5504803e-01,-1.5477245e-01,-1.7786233e-01,-1.8878809e-01,-1.8100638e-01,-1.0392771e-01,-1.7886611e-01,-7.0295171e-02,-2.4226235e-02,-7.2092973e-02,-1.5448714e-01,-6.1761080e-02,-5.6099248e-02,5.6759698e-03,
4.3897996e-02,1.2886454e-01,-9.9584871e-02,9.4057698e-04,4.0536646e-02,-7.7958919e-02,-1.0792933e-01,-7.1159724e-02,7.1113621e-02,5.5834803e-02,9.5148404e-02,1.5737787e-01,2.7292662e-01,1.3085070e-01,7.9623872e-02,-8.4736950e-03,-9.8784154e-02,-2.6692476e-02,3.6619767e-02,6.3103639e-02,4.5155221e-02,3.6341514e-02,-1.8571691e-01,1.0688715e-01,4.7287119e-02,-1.3420814e-02,-8.3117633e-02,-1.4650882e-01,-1.1191701e-02,-1.6095940e-02,2.3139619e-03,-7.2805464e-02,-2.3706729e-01,-8.8800289e-02,0.0000000e+00,6.2440735e-02,9.5751115e-02,-7.5037306e-02,-6.5373320e-03,3.5792574e-02,-5.3341895e-03,5.0798149e-02,-1.9600148e-02,-6.8958912e-02,1.1224459e-01,-7.8627083e-02,-3.1139310e-02,6.1371570e-02,4.7261629e-02,-2.0538045e-01,1.1165190e-01,9.7162193e-02,5.1685351e-02,7.6419144e-02,-1.2421691e-02,2.0424807e-01,-4.5394320e-02,-5.5713186e-02,-5.1113695e-02,7.4073559e-02,1.4046291e-01,-1.8361895e-01,2.2712466e-01,-2.2535195e-02,4.0496118e-02,1.4721042e-01,1.1543833e-02,-2.2535195e-02,8.4302688e-02,-4.9647872e-02,6.2002630e-02,1.4840925e-01,1.9982554e-01,3.2133366e-01,3.2078000e-01,6.0740237e-02,3.9735101e-02,-1.2298521e-01,-1.8284507e-01,3.9275856e-02,6.7010836e-02,1.7489279e-01,1.5882520e-01,1.5629221e-01,4.1813964e-02,3.6726601e-03,6.8169246e-03,-3.9339478e-02,-7.4737913e-03,5.3322033e-02,-7.2249042e-03,8.8310394e-02,5.7578210e-02,-9.4762624e-02,-1.4582841e-01,-1.7151588e-01,-1.8159671e-02,-3.6930747e-02,3.0775563e-02,-7.6681847e-02,-4.8112400e-02,3.1528433e-02,0.0000000e+00,-6.9011620e-03,-4.0899948e-02,2.7577078e-01,2.7433520e-01,3.0124687e-01,2.1512362e-01,2.7154109e-01,1.9660580e-01,1.5819867e-01,2.4468046e-01,2.3037767e-01,1.9063538e-01,2.3925774e-01,2.1497467e-01,-1.6765156e-01,7.8772124e-02,9.3789864e-02,1.3802304e-01,1.3086987e-01,1.4156553e-01,-1.7353378e-01,-2.9457666e-01,-3.4288877e-01,-3.4442675e-01,-3.6780372e-01,-1.8705204e-01,-1.7337785e-01,1.6067487e-02,5.3473898e-02,2.4568994e-02,-1.8550919e-01,-1.3500214e-01,-1.2746797e-01,-6.2201940e-02,
4.3980254e-02,8.0407270e-02,-1.5807688e-01,-3.8744944e-02,1.5954216e-02,-8.7402935e-02,-1.1803656e-01,-7.9365613e-02,5.4030562e-02,8.5753431e-02,1.5908893e-01,1.7810587e-01,2.5356191e-01,1.1875289e-01,5.5888616e-02,-4.9180735e-03,-1.2048282e-01,-6.7098571e-02,2.9968419e-02,1.0408347e-01,9.5756630e-02,9.9509792e-02,-9.5662743e-02,4.4367708e-02,-5.2595481e-03,-6.9706704e-02,-1.3713913e-01,-1.7607797e-01,2.0110491e-02,-4.4252034e-03,8.0928519e-03,-5.8136073e-02,-2.3722823e-01,-9.0734953e-02,0.0000000e+00,3.6532593e-02,7.9069903e-02,-8.4452573e-02,-4.8315302e-03,7.6817973e-02,4.8642453e-02,1.0835402e-01,4.3495988e-03,-1.1469943e-01,6.0544791e-02,-7.0012547e-02,-4.0472319e-02,4.8369289e-02,2.9566648e-02,-2.1486757e-01,1.0307978e-01,8.2911292e-02,1.4699399e-02,3.5371941e-02,-1.0647979e-02,1.7442537e-01,-5.7538592e-02,-6.9002693e-02,-6.9918032e-02,7.7518859e-02,1.0797811e-01,-1.9331783e-01,2.0082566e-01,-4.0028882e-02,3.7387797e-03,1.1775467e-01,-2.1059097e-02,-4.0028882e-02,7.8259059e-02,-4.5573363e-02,5.3185451e-02,1.2156889e-01,1.7767144e-01,2.9428952e-01,2.8690395e-01,1.9046449e-02,3.3029087e-03,-1.6279683e-01,-1.9700758e-01,3.3989829e-02,1.6646852e-02,1.4552657e-01,1.2903401e-01,1.7302012e-01,1.1192164e-01,1.0446760e-01,-2.3005661e-03,-2.3330406e-02,-1.4051298e-02,2.1054464e-02,-1.3345980e-03,7.6342867e-02,2.4896796e-02,-9.0552442e-02,-1.0122156e-01,-1.6162258e-01,-1.7939377e-02,-8.6565249e-02,-2.1902109e-04,-1.1960735e-01,-2.4262413e-02,3.5867546e-02,0.0000000e+00,1.2259754e-02,-2.3031073e-02,2.1410569e-01,2.1110133e-01,2.1183218e-01,1.3649467e-01,2.3427135e-01,1.6700715e-01,1.3493000e-01,1.7730980e-01,1.7115836e-01,1.6418425e-01,2.4616256e-01,1.9974897e-01,-1.8995438e-01,8.4336979e-02,1.2319767e-01,1.6160595e-01,1.5887726e-01,1.9088880e-01,-1.2483262e-01,-2.8321922e-01,-3.4276721e-01,-3.4177296e-01,-3.7663530e-01,-1.7846322e-01,-1.1226635e-01,8.2812301e-02,1.0341386e-01,8.8602738e-02,-1.3070011e-01,-1.2920325e-01,-1.3151523e-01,-7.3444434e-02,
5.7905484e-02,3.1436145e-02,-2.0868076e-01,-7.3237761e-02,-3.8632584e-03,-9.1533851e-02,-1.0767677e-01,-6.2861252e-02,6.7425155e-02,1.0439381e-01,1.8595125e-01,1.7514228e-01,2.4021014e-01,1.1803902e-01,5.6911617e-02,2.2099224e-03,-1.3170860e-01,-9.4694388e-02,-1.2870519e-02,7.6863173e-02,7.1036067e-02,8.0127268e-02,-9.3979903e-02,3.4804110e-02,-1.9177161e-02,-8.9513264e-02,-1.5640945e-01,-1.9077055e-01,1.6524461e-02,-1.2399145e-02,3.1580541e-03,-5.8846966e-02,-2.5330620e-01,-1.0114716e-01,0.0000000e+00,2.7735943e-02,7.9242850e-02,-1.1426810e-01,-3.2763899e-02,6.5584855e-02,5.0132200e-02,1.1047649e-01,-1.0105536e-02,-1.4548010e-01,2.8816297e-02,-7.3946377e-02,-5.6362619e-02,3.1764604e-02,1.2780754e-02,-2.2528486e-01,9.1396163e-02,7.2064802e-02,9.6924251e-03,2.3186513e-02,3.0831031e-03,1.7856476e-01,-4.8073774e-02,-6.3983058e-02,-6.8430753e-02,7.9416531e-02,9.1501853e-02,-2.0587995e-01,1.8888378e-01,-3.9444748e-02,-9.3175088e-03,1.2148212e-01,-2.4728308e-02,-3.9444748e-02,7.3816411e-02,-1.9910322e-02,7.8743449e-02,1.3282036e-01,1.9143942e-01,3.0879616e-01,2.9168289e-01,1.4408903e-02,5.0387739e-03,-1.6615690e-01,-1.8849436e-01,3.2078701e-02,-6.7685538e-03,1.3630499e-01,1.1893243e-01,1.7742245e-01,1.3274445e-01,1.3262156e-01,3.1179303e-02,1.8297261e-02,8.8755475e-03,6.5173506e-03,-7.6602271e-03,7.7100536e-02,2.6476473e-02,-6.3519366e-02,-4.9934405e-02,-1.2718192e-01,-2.0017669e-02,-9.9030406e-02,-2.8374025e-03,-1.1790092e-01,-1.3396931e-02,4.0913833e-02,0.0000000e+00,1.4070918e-02,-2.0088678e-02,1.9579183e-01,1.8370171e-01,1.7563116e-01,1.0016834e-01,2.1488366e-01,1.4521522e-01,1.1654863e-01,1.4163254e-01,1.3772631e-01,1.5241959e-01,2.3881715e-01,1.8088504e-01,-2.1695206e-01,6.2212697e-02,1.0929230e-01,1.4734599e-01,1.4337535e-01,1.8132176e-01,-1.2974930e-01,-2.8849076e-01,-3.3976538e-01,-3.3498000e-01,-3.7283347e-01,-1.7370262e-01,-1.0908091e-01,7.9872493e-02,9.6117315e-02,8.4969538e-02,-1.3667605e-01,-1.3150385e-01,-1.3389762e-01,-8.2151090e-02,
4.6042743e-02,6.4236452e-02,-1.2200739e-01,-6.9375835e-02,-4.0318424e-02,-8.9772358e-02,-1.1951390e-01,-7.2636682e-02,2.1207801e-02,3.8933381e-02,8.0866117e-02,1.1076266e-01,1.4183009e-01,6.0673053e-02,1.8981626e-02,-3.8046075e-02,-1.5683812e-01,-1.3303079e-01,3.1936111e-03,5.0844569e-02,3.5236328e-02,5.1866219e-02,-7.6287702e-02,-5.0190271e-02,-6.3749255e-02,-1.0325937e-01,-1.3994610e-01,-1.6347377e-01,-1.7897620e-02,-1.6698367e-02,-1.0259991e-03,-4.4558122e-02,-1.8749387e-01,-8.0668061e-02,0.0000000e+00,2.6462339e-02,7.4738391e-02,-7.6152329e-02,-2.8404131e-02,2.0100836e-02,3.0448262e-02,5.3869564e-02,-9.9652756e-03,-1.1045069e-01,2.5430390e-02,-4.3101202e-02,-3.0109587e-02,1.4463729e-02,4.3503781e-03,-2.4225848e-01,1.6130792e-02,3.0599609e-02,6.6407731e-03,5.0493444e-02,4.1336848e-02,2.0591279e-01,2.7206228e-02,-1.5970498e-02,-4.1845531e-02,1.8548312e-02,1.3854392e-02,-2.2301681e-01,1.0825601e-01,-2.5296393e-02,3.3260803e-02,1.6770621e-01,1.2315920e-02,-2.5296393e-02,1.7922964e-02,4.1204744e-02,8.1729315e-02,1.0734223e-01,1.2667051e-01,1.7454389e-01,1.8412786e-01,4.7920838e-03,2.2319904e-02,-9.9623825e-02,-1.1905811e-01,5.2348493e-03,4.7588975e-03,9.1348544e-02,1.0874052e-01,1.4395234e-01,1.3094916e-01,1.5946298e-01,1.4120253e-02,1.1982168e-02,3.5755578e-03,3.9427222e-02,3.6481668e-03,6.1841786e-02,3.7389763e-02,-3.8995538e-02,-5.5025558e-02,-8.8643216e-02,-1.8941773e-02,-5.6104273e-02,2.6199323e-02,-6.3937563e-02,-2.0549577e-02,1.2605591e-02,0.0000000e+00,6.9920804e-03,-1.0775058e-02,1.4755289e-01,1.5081361e-01,1.5199440e-01,1.0544170e-01,1.6334970e-01,1.2152893e-01,9.9870288e-02,1.2458051e-01,1.2615925e-01,1.1541739e-01,1.7232928e-01,1.3593581e-01,-1.8920748e-01,3.5779468e-02,8.8582970e-02,1.1163775e-01,1.0530261e-01,1.0250986e-01,-1.4557095e-01,-1.7092226e-01,-2.0218534e-01,-1.9870510e-01,-2.3086661e-01,-1.3119414e-01,-1.4642897e-01,3.0227641e-02,4.6680146e-02,3.0398145e-02,-1.3092494e-01,-4.2765174e-02,-3.9397279e-02,-4.1200434e-03,
-2.0878181e-02,4.7656141e-03,-2.1772347e-01,-9.4294833e-02,-3.0493218e-02,-6.8946303e-02,-6.5183955e-02,-2.1572914e-02,6.3257936e-02,1.1869688e-01,2.2791133e-01,1.4781901e-01,1.5105742e-01,1.1636246e-01,7.9156217e-02,5.4048933e-02,-1.3316455e-01,-1.6267382e-01,-4.3377441e-02,4.8414203e-02,2.4034845e-02,2.6885307e-02,-8.2007305e-02,2.1737724e-02,-3.4351046e-02,-1.3055648e-01,-1.7899361e-01,-2.0961815e-01,1.3235118e-02,-1.7255173e-02,-9.0640082e-03,-6.0516791e-02,-2.6616870e-01,-1.2618044e-01,0.0000000e+00,-6.5167054e-03,8.7963073e-02,-9.2551239e-02,-5.2114181e-02,6.1941114e-02,7.8683435e-02,1.3580016e-01,9.2198784e-03,-1.8832324e-01,-6.8621224e-02,-6.1131169e-02,-1.1342942e-01,-3.3234531e-02,-3.2387307e-02,-2.1122739e-01,2.5955994e-02,-2.5569546e-03,-3.2788046e-03,2.1836432e-02,9.7836258e-02,2.0731735e-01,5.4820983e-02,5.4370968e-03,-4.0624874e-02,4.1371229e-02,-7.0258436e-03,-2.0593518e-01,8.7247181e-02,-2.5981202e-02,-6.2050680e-03,1.6733294e-01,2.7990330e-03,-2.5981202e-02,2.3507142e-02,3.5427098e-02,8.2349133e-02,7.5265022e-02,1.2912728e-01,2.1727010e-01,2.0056585e-01,-2.4881055e-02,3.5293743e-02,-9.9469333e-02,-6.2657470e-02,6.1908166e-02,-3.4563425e-02,1.0909366e-01,1.1059685e-01,1.9508086e-01,2.1391375e-01,2.5535083e-01,6.7823768e-02,8.4618661e-02,3.4543995e-02,-5.6540399e-02,-4.8410686e-02,4.2105167e-02,2.0301573e-03,1.4021444e-02,1.1112933e-01,1.2161517e-02,-2.1863372e-02,-1.1312947e-01,-2.2307920e-03,-8.7918291e-02,1.0414973e-02,3.4327734e-02,0.0000000e+00,2.0315891e-02,4.4618540e-03,7.2927177e-02,4.2119230e-02,2.9612828e-02,-4.3648428e-02,9.7840396e-02,3.2995113e-02,5.1404491e-02,2.4406901e-02,2.6273347e-02,1.0009783e-01,1.8276997e-01,9.2634469e-02,-3.2524569e-01,-7.9116458e-02,4.6590004e-03,4.3253684e-02,2.8168496e-02,7.3325213e-02,-1.6451038e-01,-2.3991547e-01,-2.4289812e-01,-2.2642348e-01,-2.7610345e-01,-1.5542739e-01,-1.3926223e-01,1.2334471e-02,1.6819313e-02,2.1200295e-02,-1.6506982e-01,-1.0730275e-01,-1.0416020e-01,-8.7390693e-02,
-4.0055172e-02,-3.6596434e-02,-1.7103906e-01,-7.9808629e-02,-3.4019608e-02,-5.2914787e-02,-3.5461291e-02,-9.9454080e-03,3.7580301e-02,8.0430567e-02,1.5794545e-01,6.6736244e-02,5.3122513e-02,4.4970896e-02,1.9799445e-02,1.2662530e-02,-1.1033899e-01,-1.4505430e-01,-3.1349498e-02,3.5648333e-02,1.8576302e-02,1.2751468e-02,-4.0305416e-02,4.7811129e-02,5.8622161e-04,-7.4078532e-02,-1.1776269e-01,-1.4960924e-01,2.1323141e-02,-4.5362740e-03,-6.6720003e-04,-3.0583260e-02,-1.6896421e-01,-8.3104638e-02,0.0000000e+00,-1.6069282e-02,4.6998983e-02,-5.8639394e-02,-3.6730461e-02,4.2826129e-02,5.3339507e-02,9.7783471e-02,8.5788269e-03,-1.3576652e-01,-7.3080387e-02,-4.3551992e-02,-9.8694567e-02,-4.0774689e-02,-3.5686663e-02,-1.2137389e-01,1.1616965e-02,-1.1968905e-02,-6.8710274e-03,-9.2504840e-03,6.0175624e-02,9.4815536e-02,2.4668155e-02,1.4025751e-03,-2.6500736e-02,3.1720631e-02,-1.8220810e-02,-1.1697655e-01,3.8723791e-02,-1.6446018e-02,-2.5751382e-02,7.3177032e-02,-5.5027252e-03,-1.6446018e-02,1.5146669e-02,2.8601639e-02,5.7443698e-02,4.4520199e-02,8.5009831e-02,1.5188410e-01,1.3719842e-01,-8.9491031e-03,3.4131330e-02,-4.3689156e-02,-1.0018941e-02,5.6438671e-02,-2.6492626e-02,8.4659287e-02,8.5307031e-02,1.5542349e-01,1.8217293e-01,2.1574522e-01,6.0781847e-02,8.0090162e-02,3.3676785e-02,-6.1897420e-02,-4.8205242e-02,1.9229636e-02,-3.4851125e-03,4.1529088e-02,1.4630944e-01,7.5634324e-02,-4.1231765e-03,-7.2971022e-02,-2.8382808e-03,-5.0986741e-02,1.4366885e-02,2.4016702e-02,0.0000000e+00,1.6919873e-02,6.7903291e-03,2.1137192e-02,-3.3748584e-03,-2.0449155e-02,-6.6308976e-02,3.8424470e-02,-9.4761349e-03,2.6878130e-02,-1.8519469e-03,1.9947581e-03,7.3140160e-02,1.2779211e-01,5.7021678e-02,-2.1601787e-01,-8.2322293e-02,-2.8216608e-02,-7.8878497e-03,-1.2049310e-02,2.7893691e-02,-9.1169527e-02,-1.6157291e-01,-1.5679642e-01,-1.4642871e-01,-1.7658881e-01,-9.1321945e-02,-7.1420930e-02,-8.1360161e-03,-5.4344773e-03,-2.0234365e-03,-9.9863267e-02,-8.5195799e-02,-9.1068450e-02,-8.1385715e-02
};
double landmarks_data_11[137] = { 1 };
for (int i = 0; i < 68; i++)
{
data_x[i] = landmarks[i].x;
data_y[i] = landmarks[i].y;
}
nose_pos_x = data_x[33];
nose_pos_y = data_y[33];
eye_distance = data_x[45] - data_x[36];
double data_X[68];
double data_Y[68];
for (int i = 0; i < 68; i++)
{
data_X[i] = (data_x[i] - nose_pos_x + 0.0) / eye_distance;
data_Y[i] = (data_y[i] - nose_pos_y + 0.0) / eye_distance;
landmarks_data_11[i + 1] = data_X[i];
landmarks_data_11[i + 69] = data_Y[i];
}
double head_landmarks_temp[22] = { 0 };
for (int i = 0; i < 22; i++)
{
for (int j = 0; j < 137; j++)
{
head_landmarks_temp[i] = head_landmarks_temp[i] + parameters[i][j] * landmarks_data_11[j];
}
if (i<11)
head_landmarks_temp[i] = head_landmarks_temp[i] * eye_distance + nose_pos_x;
else
head_landmarks_temp[i] = head_landmarks_temp[i] * eye_distance + nose_pos_y;
}
std::vector<cv::Point> user_face_edge_landmark(17);
std::copy(landmarks.begin(),landmarks.begin()+17,
user_face_edge_landmark.begin());
for (int i = 0; i < 11 ; i++)
{
cv::Point p((int)head_landmarks_temp[i], (int)head_landmarks_temp[i + 11]);
user_face_edge_landmark.push_back(p);
}
return user_face_edge_landmark;
}
void warp(Mat object_lip, Mat &warped_object_lip, std::vector<cv::Point> object_lip_landmark, std::vector<cv::Point> user_lip_landmark)
{
std::vector<DMatch> good_matches;
for (int i = 0; i < object_lip_landmark.size(); i++)
{
good_matches.push_back(DMatch(i, i, 0));
}
Ptr<ThinPlateSplineShapeTransformer> mytps = createThinPlateSplineShapeTransformer(1);
mytps->estimateTransformation(user_lip_landmark, object_lip_landmark, good_matches);
mytps->warpImage(object_lip, warped_object_lip);
}