From be12257b7252a05d261bce8d29bd74de5f23ecd2 Mon Sep 17 00:00:00 2001 From: Chunk Date: Sat, 7 Mar 2015 17:24:41 +0800 Subject: [PATCH] data-feat-model framework almost established. --- common.py | 21 +++++++++++---------- common.pyc | Bin 5647 -> 0 bytes mdata/CV.py | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- mdata/CV.pyc | Bin 6688 -> 0 bytes mdata/MSR.py | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- mdata/MSR.pyc | Bin 5792 -> 0 bytes mdata/__init__.py | 21 +++++++++++++++++---- mdata/__init__.pyc | Bin 3423 -> 0 bytes mfeat/HOG.pyc | Bin 3326 -> 0 bytes mfeat/IntraBlockDiff.pyc | Bin 1160 -> 0 bytes mfeat/__init__.pyc | Bin 2107 -> 0 bytes mjpeg/__init__.pyc | Bin 14447 -> 0 bytes mjpeg/base.pyc | Bin 1786 -> 0 bytes mjpeg/dct.pyc | Bin 2471 -> 0 bytes mmodel/SVM.py | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------- mmodel/SVM.pyc | Bin 0 -> 4569 bytes mmodel/__init__.py | 12 +++++------- mmodel/__init__.pyc | Bin 0 -> 1148 bytes msteg/__init__.pyc | Bin 6094 -> 0 bytes msteg/steganalysis/MPB.pyc | Bin 8955 -> 0 bytes msteg/steganalysis/__init__.pyc | Bin 238 -> 0 bytes res/svm_cv.model | 319 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ res/svm_sk.model | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ test_data.py | 26 ++++++++++++++++++++------ test_feat.py | 2 ++ test_model.py | 29 +++++++++++++++++++++++++++++ 26 files changed, 776 insertions(+), 115 deletions(-) create mode 100644 mmodel/SVM.pyc create mode 100644 mmodel/__init__.pyc create mode 100644 res/svm_cv.model create mode 100644 res/svm_sk.model create mode 100644 test_model.py diff --git a/common.py b/common.py index 2b8d33e..fbefc32 100644 --- a/common.py +++ b/common.py @@ -12,6 +12,8 @@ import time import StringIO import ConfigParser +import numpy as np + class Timer(): def __init__(self): @@ -134,19 +136,18 @@ def bits2bytes(arry_bits): """ str_bits = ''.join(map(str, arry_bits)) arry_bytes = [int(str_bits[i:i + 8], 2) for i in range(0, len(str_bits), 8)] - return np.array(arry_bytes,dtype=np.uint8).ravel() - - + return np.array(arry_bytes, dtype=np.uint8).ravel() def test_grammer(): - a = 'fsaf' - b = ['dasf', 'dff'] - c = 'dgfsfdg' - # print a + b - print [a] + b # ['fsaf', 'dasf', 'dff'] - print [a] + [b] # ['fsaf', ['dasf', 'dff']] - print [a] + [c] # ['fsaf', 'dgfsfdg'] + a = 'fsaf' + b = ['dasf', 'dff'] + c = 'dgfsfdg' + # print a + b + print [a] + b # ['fsaf', 'dasf', 'dff'] + print [a] + [b] # ['fsaf', ['dasf', 'dff']] + print [a] + [c] # ['fsaf', 'dgfsfdg'] + if __name__ == '__main__': timer = Timer() diff --git a/common.pyc b/common.pyc index 44dc982..a51dcba 100644 Binary files a/common.pyc and b/common.pyc differ diff --git a/mdata/CV.py b/mdata/CV.py index 5ac1157..35dcbb4 100644 --- a/mdata/CV.py +++ b/mdata/CV.py @@ -1,7 +1,7 @@ __author__ = 'chunk' from mdata import * -from mfeat import HOG +from mfeat import HOG, IntraBlockDiff import os, sys from PIL import Image @@ -138,19 +138,40 @@ class DataCV(DataDumperBase): pass - def get_feat(self, feattype='hog'): + def get_feat(self, image, feattype='hog', **kwargs): + size = kwargs.get('size', (48, 48)) - dict_tagbuf = {} + if feattype == 'hog': + feater = HOG.FeatHOG(size=size) + elif feattype == 'ibd': + feater = IntraBlockDiff.FeatIntraBlockDiff() + else: + raise Exception("Unknown feature type!") + + desc = feater.feat(image) + + return desc + + def extract_feat(self, feattype='hog'): + + if feattype == 'hog': + feater = HOG.FeatHOG(size=(48, 48)) + elif feattype == 'ibd': + feater = IntraBlockDiff.FeatIntraBlockDiff() + else: + raise Exception("Unknown feature type!") + + list_image = [] with open(self.list_file, 'rb') as tsvfile: tsvfile = csv.reader(tsvfile, delimiter='\t') for line in tsvfile: - dict_tagbuf[line[0] + '.jpg'] = line[1] + list_image.append(line[0]) dict_featbuf = {} - for imgname, imgtag in dict_tagbuf.items(): + for imgname in list_image: # if imgtag == 'True': - image = self.img_dir + imgname[:3] + '/' + imgname[3:] - desc = HOG.FeatHOG().feat(image, size=(48, 48)) + image = self.img_dir + imgname[:3] + '/' + imgname[3:] + '.jpg' + desc = feater.feat(image) dict_featbuf[imgname] = desc for imgname, desc in dict_featbuf.items(): @@ -184,3 +205,33 @@ class DataCV(DataDumperBase): raise pass + def load_data(self, mode='local', feattype='hog'): + INDEX = [] + X = [] + Y = [] + + if mode == "local": + + dict_tagbuf = {} + with open(self.list_file, 'rb') as tsvfile: + tsvfile = csv.reader(tsvfile, delimiter='\t') + for line in tsvfile: + imgname = line[0] + '.jpg' + dict_tagbuf[imgname] = line[1] + + dict_dataset = {} + for path, subdirs, files in os.walk(self.feat_dir): + for name in files: + featpath = os.path.join(path, name) + with open(featpath, 'rb') as featfile: + imgname = path.split('/')[-1] + name.replace('.' + feattype, '.jpg') + dict_dataset[imgname] = json.loads(featfile.read()) + + for imgname, tag in dict_tagbuf.items(): + tag = 1 if tag == 'True' else 0 + INDEX.append(imgname) + X.append(dict_dataset[imgname]) + Y.append(tag) + + return X, Y + diff --git a/mdata/CV.pyc b/mdata/CV.pyc index c607c22..79a4630 100644 Binary files a/mdata/CV.pyc and b/mdata/CV.pyc differ diff --git a/mdata/MSR.py b/mdata/MSR.py index 0281af4..854a6d0 100644 --- a/mdata/MSR.py +++ b/mdata/MSR.py @@ -1,7 +1,7 @@ __author__ = 'chunk' from mdata import * -from mfeat import * +from mfeat import HOG, IntraBlockDiff import os, sys import base64 @@ -146,8 +146,73 @@ class DataMSR(DataDumperBase): raise pass - def get_feat(self, feattype): - pass - def store_feat(self, feattype): - pass + def get_feat(self, image, feattype='ibd', **kwargs): + size = kwargs.get('size', (48, 48)) + + if feattype == 'hog': + feater = HOG.FeatHOG(size=size) + elif feattype == 'ibd': + feater = IntraBlockDiff.FeatIntraBlockDiff() + else: + raise Exception("Unknown feature type!") + + desc = feater.feat(image) + + return desc + + def extract_feat(self, feattype='ibd'): + + if feattype == 'hog': + feater = HOG.FeatHOG(size=(48, 48)) + elif feattype == 'ibd': + feater = IntraBlockDiff.FeatIntraBlockDiff() + else: + raise Exception("Unknown feature type!") + + list_image = [] + with open(self.list_file, 'rb') as tsvfile: + tsvfile = csv.reader(tsvfile, delimiter='\t') + for line in tsvfile: + list_image.append(line[0]) + + dict_featbuf = {} + for imgname in list_image: + # if imgtag == 'True': + image = self.img_dir + imgname + desc = feater.feat(image) + dict_featbuf[imgname] = desc + + for imgname, desc in dict_featbuf.items(): + # print imgname, desc + dir = self.feat_dir + imgname[:4] + if not os.path.exists(dir): + os.makedirs(dir) + featpath = dir + imgname[4:].split('.')[0] + '.' + feattype + with open(featpath, 'wb') as featfile: + featfile.write(json.dumps(desc.tolist())) + + def store_feat(self, feattype='ibd'): + if self.table == None: + self.table = self.get_table() + + dict_featbuf = {} + for path, subdirs, files in os.walk(self.feat_dir): + for name in files: + featpath = os.path.join(path, name) + # print featpath + with open(featpath, 'rb') as featfile: + imgname = path.split('/')[-1] + name.replace('.' + feattype, '.jpg') + dict_featbuf[imgname] = featfile.read() + + try: + # with self.table.batch(batch_size=5000) as b: + # for imgname, featdesc in dict_featbuf.items(): + # b.put(imgname, {'cf_feat:' + feattype: featdesc}) + with self.table.batch(batch_size=5000) as b: + for key, data in self.table.scan(): + b.put(key, {'cf_feat:' + feattype: dict_featbuf[key]}) + + except ValueError: + raise + pass diff --git a/mdata/MSR.pyc b/mdata/MSR.pyc index f13ce61..a3fd7a4 100644 Binary files a/mdata/MSR.pyc and b/mdata/MSR.pyc differ diff --git a/mdata/__init__.py b/mdata/__init__.py index f1c3e64..0552912 100644 --- a/mdata/__init__.py +++ b/mdata/__init__.py @@ -9,6 +9,7 @@ class DataDumperBase(object): Base class for image data dumping & retrieving. A regular directory pattern would be like this: + dst ├── Dev (category) ├── file-tag.tsv (list_file) │ @@ -50,8 +51,9 @@ class DataDumperBase(object): └── ... - convention: - 'img' for image file data while 'image' for file path; + Convention: + + 'im' or 'img' is for image file data while 'image' or 'image_path' for file path; """ @@ -86,10 +88,21 @@ class DataDumperBase(object): def store_tag(self, feattype): pass - def get_feat(self, feattype): + def store_feat(self, feattype): pass - def store_feat(self, feattype): + + def get_feat(self, image, feattype): + pass + + def extract_feat(self, feattype): pass + def load_data(self, mode): + pass + + + + + diff --git a/mdata/__init__.pyc b/mdata/__init__.pyc index 375d706..e8870bd 100644 Binary files a/mdata/__init__.pyc and b/mdata/__init__.pyc differ diff --git a/mfeat/HOG.pyc b/mfeat/HOG.pyc index d20aea1..a416a55 100644 Binary files a/mfeat/HOG.pyc and b/mfeat/HOG.pyc differ diff --git a/mfeat/IntraBlockDiff.pyc b/mfeat/IntraBlockDiff.pyc index 217fe15..c3dc93e 100644 Binary files a/mfeat/IntraBlockDiff.pyc and b/mfeat/IntraBlockDiff.pyc differ diff --git a/mfeat/__init__.pyc b/mfeat/__init__.pyc index af5783c..b2f68a2 100644 Binary files a/mfeat/__init__.pyc and b/mfeat/__init__.pyc differ diff --git a/mjpeg/__init__.pyc b/mjpeg/__init__.pyc index 6e3e126..c82a9da 100644 Binary files a/mjpeg/__init__.pyc and b/mjpeg/__init__.pyc differ diff --git a/mjpeg/base.pyc b/mjpeg/base.pyc index 2d0f3b7..017f6b5 100644 Binary files a/mjpeg/base.pyc and b/mjpeg/base.pyc differ diff --git a/mjpeg/dct.pyc b/mjpeg/dct.pyc index 3577d2e..b4819bc 100644 Binary files a/mjpeg/dct.pyc and b/mjpeg/dct.pyc differ diff --git a/mmodel/SVM.py b/mmodel/SVM.py index a1fc818..ed8a914 100644 --- a/mmodel/SVM.py +++ b/mmodel/SVM.py @@ -28,113 +28,106 @@ class ModelSVM(ModelBase): ModelBase.__init__(self) - def load(self, file, mode='local'): - timer = Timer() - INDEX = [] - X = [] - Y = [] - - base_dir = '/home/hadoop/data/HeadShoulder/' - dir = base_dir + 'Img/' - maplst = dir + 'images_map_Train.tsv' - dict_tagbuf = {} - with open(maplst, 'rb') as tsvfile: - tsvfile = csv.reader(tsvfile, delimiter='\t') - for line in tsvfile: - imgname = line[0] + '.jpg' - dict_tagbuf[imgname] = line[1] - - dir = base_dir + 'Feat/' - dict_dataset = {} + def _train_sk(self, X, Y): + lin_clf = svm.LinearSVC() + lin_clf.fit(X, Y) + with open('res/svm_sk.model', 'wb') as modelfile: + model = pickle.dump(lin_clf, modelfile) - timer.mark() - for path, subdirs, files in os.walk(dir + 'Train/'): - for name in files: - featpath = os.path.join(path, name) - # print featpath - with open(featpath, 'rb') as featfile: - imgname = path.split('/')[-1] + name.replace('.hog', '.jpg') - dict_dataset[imgname] = json.loads(featfile.read()) - timer.report() # 5.122354s + self.model = lin_clf - timer.mark() - for imgname, tag in dict_tagbuf.items(): - tag = 1 if tag == 'True' else 0 - INDEX.append(imgname) - X.append(dict_dataset[imgname]) - Y.append(tag) - timer.report() # 0.047625s + return lin_clf - return X, Y + def _predict_sk(self, feat, model=None): + """N.B. sklearn.svm.base.predict : + Perform classification on samples in X. + Parameters + ---------- + X : {array-like, sparse matrix}, shape = [n_samples, n_features] - def model_svm_train_sk(self,X, Y): - timer = Timer() - timer.mark() - lin_clf = svm.LinearSVC() - lin_clf.fit(X, Y) - with open('res/tmp.model', 'wb') as modelfile: - model = pickle.dump(lin_clf, modelfile) + Returns + ------- + y_pred : array, shape = [n_samples] + Class labels for samples in X. + """ + if model is None: + if self.model != None: + model = self.model + else: + with open('res/svm_sk.model', 'rb') as modelfile: + model = pickle.load(modelfile) - timer.report() + return model.predict(feat) - return lin_clf + def _test_sk(self, X, Y, model=None): + if model is None: + if self.model != None: + model = self.model + else: + with open('res/svm_sk.model', 'rb') as modelfile: + model = pickle.load(modelfile) + result_Y = np.array(self._predict_sk(X, model)) - def model_svm_predict_sk(self,image, clf=None): - if clf is None: - with open('res/tmp.model', 'rb') as modelfile: - clf = pickle.load(modelfile) - desc = feat_HOG(image, size=(48, 48)) - return clf.predict(desc) + print result_Y == Y + return np.mean(Y == result_Y) - def model_svm_train_cv(self,X, Y): + def _train_cv(self, X, Y): svm_params = dict(kernel_type=cv2.SVM_LINEAR, svm_type=cv2.SVM_C_SVC, C=2.67, gamma=5.383) + X, Y = np.array(X, dtype=np.float32), np.array(Y, dtype=np.float32) + timer = Timer() timer.mark() svm = cv2.SVM() svm.train(X, Y, params=svm_params) - svm.save('res/svm_data.model') + svm.save('res/svm_cv.model') + + self.model = svm return svm - def model_svm_predict_cv(self,image, svm=None): - if svm is None: - svm = cv2.SVM() - svm.load('res/svm_data.model') + def _predict_cv(self, feat, model=None): + if model is None: + if self.model != None: + model = self.model + else: + with open('res/svm_cv.model', 'rb') as modelfile: + model = pickle.load(modelfile) + feat = np.array(feat, dtype=np.float32) + + return model.predict(feat) + - desc = feat_HOG(image, size=(48, 48)) - desc = np.float32(np.asarray(desc)) - return svm.predict(desc) + def _test_cv(self, X, Y, model=None): + if model is None: + if self.model != None: + model = self.model + else: + with open('res/svm_cv.model', 'rb') as modelfile: + model = pickle.load(modelfile) + X, Y = np.array(X, dtype=np.float32), np.array(Y, dtype=np.float32) - def test_sk(self): - X, Y = load_data() + # result_Y = np.array([self._predict_cv(x, model) for x in X]) + result_Y = np.array(model.predict_all(X)).ravel() - clf = model_svm_train_sk(X, Y) - for path, subdirs, files in os.walk('data/467/'): - for name in files: - imgpath = os.path.join(path, name) - print name, model_svm_predict_sk(imgpath, clf) - print clf.coef_.shape, clf.coef_ + return np.mean(Y == result_Y) - def test_cv(self): - X, Y = load_data() - X, Y = np.float32(np.asarray(X)), np.float32(np.asarray(Y)) - print X, Y - svm = model_svm_train_cv(X, Y) - for path, subdirs, files in os.walk('data/467/'): - for name in files: - imgpath = os.path.join(path, name) - print name, model_svm_predict_cv(imgpath, svm) + def train(self, X, Y): + return self._train_cv(X, Y) + def predict(self, feat, model=None): + return self._predict_cv(feat, model) + def test(self, X, Y, model=None): + return self._test_cv(X, Y, model) diff --git a/mmodel/SVM.pyc b/mmodel/SVM.pyc new file mode 100644 index 0000000..30a167b Binary files /dev/null and b/mmodel/SVM.pyc differ diff --git a/mmodel/__init__.py b/mmodel/__init__.py index a04b616..a1318ad 100644 --- a/mmodel/__init__.py +++ b/mmodel/__init__.py @@ -2,19 +2,17 @@ __author__ = 'chunk' __all__ = ['ModelBase', ] + class ModelBase(object): def __init__(self): - pass - - def load(self, mode, file): - pass + self.model = None - def train(self): + def train(self, X, Y): pass - def test(self): + def predict(self, feat, model=None): pass - def predict(self): + def test(self, X, Y, model=None): pass diff --git a/mmodel/__init__.pyc b/mmodel/__init__.pyc new file mode 100644 index 0000000..c872931 Binary files /dev/null and b/mmodel/__init__.pyc differ diff --git a/msteg/__init__.pyc b/msteg/__init__.pyc index 7489cad..a76dbb9 100644 Binary files a/msteg/__init__.pyc and b/msteg/__init__.pyc differ diff --git a/msteg/steganalysis/MPB.pyc b/msteg/steganalysis/MPB.pyc index c14b025..6de0579 100644 Binary files a/msteg/steganalysis/MPB.pyc and b/msteg/steganalysis/MPB.pyc differ diff --git a/msteg/steganalysis/__init__.pyc b/msteg/steganalysis/__init__.pyc index e80dc27..8258c77 100644 Binary files a/msteg/steganalysis/__init__.pyc and b/msteg/steganalysis/__init__.pyc differ diff --git a/res/svm_cv.model b/res/svm_cv.model new file mode 100644 index 0000000..7dbebed --- /dev/null +++ b/res/svm_cv.model @@ -0,0 +1,319 @@ +%YAML:1.0 +my_svm: !!opencv-ml-svm + svm_type: C_SVC + kernel: { type:LINEAR } + C: 2.6699999999999999e+00 + term_criteria: { epsilon:1.1920928955078125e-07, iterations:1000 } + var_all: 900 + var_count: 900 + class_count: 2 + class_labels: !!opencv-matrix + rows: 1 + cols: 2 + dt: i + data: [ 0, 1 ] + sv_total: 1 + support_vectors: + - [ 1.00635447e-01, 3.80848616e-01, -3.61999944e-02, + 6.16463959e-01, -2.13634253e-01, 5.80662847e-01, + 1.32952228e-01, 6.20944738e-01, -1.50688276e-01, + -3.70861590e-01, -5.90423107e-01, 4.63727176e-01, + -2.05607280e-01, 2.41474081e-02, -1.48096114e-01, + -3.15087080e-01, -4.53733578e-02, -2.70828068e-01, + -2.03975633e-01, 2.82555878e-01, 9.47522465e-03, + -1.56084165e-01, 2.07339182e-01, -5.33106327e-01, + -1.25123873e-01, -2.21039921e-01, 2.36624721e-02, + 1.96492359e-01, -3.15506011e-01, -8.20042118e-02, + -6.43781200e-02, -3.41593117e-01, 2.09613755e-01, + -3.63092989e-01, 5.35438620e-02, 4.83716935e-01, + 2.24727899e-01, -1.06053203e-01, 2.59556502e-01, + 1.01173162e-01, -1.20247312e-01, 6.69345260e-02, + 3.92155111e-01, 6.04222454e-02, 2.99450070e-01, 1.96121454e-01, + -2.54563857e-02, 3.81424576e-01, 5.82436204e-01, + -3.16342831e-01, 1.58296034e-01, 1.53645635e-01, + 2.66968310e-01, -2.09024653e-01, -1.76746130e-01, + -4.63609487e-01, 2.29493454e-01, -3.91426325e-01, + 4.17520814e-02, -4.45464216e-02, -2.52456944e-02, + -1.75413117e-01, -1.89545355e-03, -4.60857272e-01, + 6.53700605e-02, -3.92839074e-01, -1.48130864e-01, + 3.35914567e-02, -4.86958064e-02, 7.31010810e-02, + 5.15685491e-02, 4.33498286e-02, -6.18374608e-02, + 4.24069226e-01, -1.12407561e-02, -5.09570315e-02, + -2.56250173e-01, -1.85945898e-01, -8.57309029e-02, + -6.62742183e-02, 1.88151091e-01, -1.12024345e-01, + 8.67723599e-02, 4.68617022e-01, -4.08511579e-01, + 4.94396180e-01, -2.02981289e-03, 1.70159534e-01, + -1.20491460e-01, 6.62366748e-02, 2.55558491e-01, + 1.52796045e-01, 1.26943201e-01, 2.59416312e-01, 4.79911327e-01, + -5.69163524e-02, -2.66524225e-01, 1.56104997e-01, + -2.32822329e-01, 6.70313761e-02, -1.03652611e-01, + 6.28767833e-02, -3.24732393e-01, -4.04358841e-02, + 3.57844740e-01, -1.59993663e-01, 1.35739282e-01, + -1.66464984e-01, 2.23796099e-01, 1.07447878e-01, + -1.44861355e-01, -1.36439964e-01, -1.07676782e-01, + -2.58990467e-01, 1.71149686e-01, -6.26204908e-02, + 2.75087565e-01, -1.36915579e-01, 3.37498523e-02, + -3.26198280e-01, -8.42690691e-02, 6.43373579e-02, + 2.99615502e-01, 3.18146795e-01, 1.13480799e-01, 3.62246484e-01, + -4.33289975e-01, 1.07924186e-01, 3.01304795e-02, + -1.77692845e-01, 3.31654578e-01, 3.22302759e-01, + 2.99436580e-02, 2.93032467e-01, 2.17150301e-01, + -6.47793710e-02, 6.06899321e-01, -2.77149528e-01, + 3.97809565e-01, -1.31793424e-01, -5.68050444e-02, + -9.24519729e-03, -3.72854285e-02, 1.62220318e-02, + 2.68669844e-01, -1.95947185e-01, 3.97543490e-01, + -3.82243127e-01, -1.73717774e-02, -2.06354544e-01, + 1.30633742e-01, 1.71459280e-02, -2.50614416e-02, + -4.15923506e-01, -1.01500526e-01, 3.00851882e-01, + 1.15127452e-01, 4.06373411e-01, -2.02237535e-02, + -3.17377858e-02, -4.38075781e-01, 2.82054126e-01, + 2.44007245e-01, 1.02171618e-02, -4.09222037e-01, + -1.82712048e-01, 1.41949460e-01, 2.09071502e-01, + 3.96968752e-01, -4.83931676e-02, 3.59820187e-01, + 5.31860851e-02, -3.35021585e-01, -7.78729934e-03, + 5.17243564e-01, 3.03447902e-01, 1.55488417e-01, + -4.34996575e-01, -1.17763869e-01, -2.11806029e-01, + -1.10544242e-01, -2.30027605e-02, -9.00872946e-02, + -4.62244079e-02, -8.72705132e-02, -9.02773887e-02, + 4.49247569e-01, 5.96865341e-02, -3.21723908e-01, + -1.42104374e-02, 6.55051321e-02, -8.89712796e-02, + -8.20277706e-02, -8.21489915e-02, 1.18508145e-01, + 1.59893055e-02, -6.40436560e-02, -2.71267563e-01, + -1.10220641e-01, -5.91016822e-02, -4.78215665e-02, + -5.37244856e-01, -1.69124529e-01, -5.39994657e-01, + 2.37307459e-01, 3.48656982e-01, -2.44099542e-01, + -3.65893334e-01, -4.60833237e-02, 1.98111981e-01, + 4.00575042e-01, -2.18251944e-01, -2.97822505e-01, + -1.58445835e-02, 1.24876015e-01, 2.21260786e-01, + -4.74443519e-03, -1.11860886e-01, 1.94061294e-01, + -5.40344059e-01, 2.84244359e-01, 4.19820808e-02, + -5.81977665e-02, -1.86366230e-01, 4.36667278e-02, + 4.67892110e-01, -2.80440748e-01, 3.47547941e-02, + -1.95210159e-01, 4.24981713e-01, -8.47802777e-03, + 5.17698348e-01, 8.74939039e-02, 1.36059463e-01, 3.59049231e-01, + -2.43589759e-01, -2.37154573e-01, -2.10391641e-01, + 1.33849964e-01, 1.26020744e-01, 3.17737907e-01, 8.77629220e-02, + -2.90314406e-01, 1.06091984e-01, -3.25623930e-01, + 1.49367616e-01, 4.49452430e-01, -6.03571653e-01, + -1.35134980e-01, -1.86212286e-01, -6.36053532e-02, + -4.04700965e-01, 3.93387347e-01, 7.58373588e-02, + 1.58630893e-01, -2.97074318e-01, -6.31024316e-02, + -8.26277211e-02, 2.09499195e-01, -5.55910230e-01, + -1.63837731e-01, -5.68352565e-02, -1.78624451e-01, + 4.57595527e-01, 4.15257253e-02, 8.19090754e-02, + -2.88352501e-02, 1.42328158e-01, -5.77499866e-01, + -1.98957413e-01, -1.17174581e-01, 3.58100653e-01, + 1.29576251e-01, -5.10679960e-01, 4.64282364e-01, + 6.17439508e-01, -3.70196879e-01, -1.32932872e-01, + 3.72315884e-01, -9.86856893e-02, -1.07622653e-01, + -2.00453058e-01, -8.87186453e-02, 1.16703771e-01, + 3.83127034e-01, -9.71138328e-02, -3.65556568e-01, + -1.27786964e-01, 1.84972122e-01, -1.85317934e-01, + 4.09868538e-01, -1.69965446e-01, -5.17840890e-05, + -4.28935170e-01, 3.04130256e-01, 2.81031489e-01, + 5.69726706e-01, -7.42259994e-02, 3.21475059e-01, + -2.12511003e-01, 1.21038340e-01, 3.96257102e-01, + 2.49143653e-02, -1.64538890e-01, 1.54328689e-01, + 1.75869569e-01, 2.48459101e-01, 4.04792845e-01, + -6.21580482e-02, -7.23844618e-02, 7.88373351e-02, + 3.73393416e-01, -8.74925554e-02, -1.66681170e-01, + -7.90943131e-02, 2.02672854e-01, 7.68239722e-02, + 9.02600884e-02, -4.71254811e-02, 2.86396831e-01, + -2.63849676e-01, -4.64057565e-01, -5.49089849e-01, + 7.40074739e-02, -2.09049731e-01, -6.77129626e-01, + 1.51250303e-01, -4.06975389e-01, -1.34572625e-01, + 3.26507002e-01, -3.22229385e-01, -3.35293412e-02, + -4.54952121e-02, 2.51653671e-01, 4.26460177e-01, + -3.03449035e-02, -6.34379327e-01, 2.13949710e-01, + -1.49300456e-01, -6.67283535e-02, 8.68585482e-02, + -1.70287386e-01, -6.41310290e-02, 2.60481834e-01, + -9.75598022e-02, -2.47203901e-01, -4.21436906e-01, + 1.73840225e-01, 1.22388020e-01, 9.92035866e-02, 2.14033648e-01, + 7.97198862e-02, 2.90736467e-01, 6.50119603e-01, 5.84670529e-02, + 2.29897678e-01, -3.20720643e-01, 7.73743466e-02, + -8.46224651e-02, 5.39197437e-02, 5.25330007e-01, + 3.04211885e-01, 1.29241899e-01, -2.69837081e-01, + -1.14225700e-01, -1.31151713e-02, -1.83524579e-01, + 1.92088321e-01, -1.23598054e-01, 2.86853723e-02, + -1.24666309e-02, 2.53173143e-01, -2.58706957e-01, + 5.32174110e-01, -1.26037911e-01, 5.02591580e-02, + 3.57517570e-01, 1.17894955e-01, 3.31125259e-01, 1.11832783e-01, + -1.79290473e-01, -1.39324829e-01, 3.72836769e-01, + -2.65483037e-02, -1.67395875e-01, 5.63529611e-01, + 5.08670919e-02, -7.84262549e-03, 3.87350172e-01, + 5.38743213e-02, 8.22081603e-03, 1.18441164e-01, + -2.23839834e-01, -1.88571617e-01, -2.55691171e-01, + -2.32272804e-01, 1.10698558e-01, 1.60189956e-01, + -1.50728703e-01, -3.52475405e-01, 2.62110561e-01, + 2.03178152e-02, 2.34497096e-02, -4.24976766e-01, + 5.03326476e-01, 2.10730150e-01, -9.98831913e-03, + 1.62081886e-02, 7.54389465e-02, 4.21941847e-01, + -1.60509795e-01, 1.73621431e-01, 5.45915782e-01, + 2.99163818e-01, 4.56744194e-01, -3.41301024e-01, + 6.58374876e-02, -1.41524356e-02, 1.43691093e-01, + -5.04402220e-01, 2.94354204e-02, -3.33520882e-02, + 2.37460494e-01, -5.57382815e-02, 4.77534473e-01, + 4.80603397e-01, 4.56571132e-01, -3.32570984e-03, + 3.00093323e-01, -1.97803099e-02, -9.92052108e-02, + -1.69277862e-01, -4.89659727e-01, -1.40021265e-01, + -4.36200708e-01, -2.12517813e-01, 4.30000991e-01, + 1.04435697e-01, -2.64832586e-01, 1.62904188e-01, + -2.09938616e-01, 1.51157200e-01, -2.94751108e-01, + 3.47593576e-01, 1.15150958e-01, -1.48473740e-01, + -4.04219657e-01, 1.39522269e-01, 1.41910568e-01, + 1.70096129e-01, 1.25298530e-01, 1.40752703e-01, + -5.24976432e-01, -4.03096735e-01, 2.64235251e-02, + -1.55077040e-01, -8.64557475e-02, -2.62489468e-01, + -7.16328472e-02, 3.64777371e-02, 1.67107150e-01, + -2.99846113e-01, 1.14257867e-02, -1.80441439e-01, + -1.96311042e-01, 1.72985867e-01, -4.13630277e-01, + -2.38129884e-01, 3.64788383e-01, 5.47355087e-03, + -6.39616251e-01, -4.82780814e-01, 1.20370470e-01, + -3.08639929e-02, 3.75426486e-02, 1.56579107e-01, + 1.90658927e-01, 3.08710426e-01, -4.06683773e-01, + 2.41629630e-01, -4.27006871e-01, 5.36698818e-01, + -1.02933245e-02, 8.34081396e-02, 8.57154280e-02, + -2.27696016e-01, 3.46511334e-01, 9.71489847e-02, + -1.28396288e-01, 1.05923209e-02, 2.28354275e-01, + 1.11864723e-01, -5.58578432e-01, -3.75273645e-01, + 1.53951690e-01, 9.63799208e-02, -2.76815355e-01, + -1.46062893e-03, 1.54368356e-01, -4.47663158e-01, + -5.45116365e-01, 3.86440335e-03, -2.96955198e-01, + -1.67067081e-01, 3.17165136e-01, -3.33658189e-01, + -2.41002664e-01, 2.65695900e-01, 2.19498545e-01, + 9.91022587e-02, 3.90363902e-01, 9.15065333e-02, + -3.49815153e-02, -6.08131923e-02, -1.09997824e-01, + 1.31603274e-02, -9.58568230e-02, 2.42391452e-01, + 1.02727808e-01, 1.97018266e-01, -2.37632632e-01, + 1.44086629e-01, -2.68510580e-01, 2.08839029e-01, + 3.79983604e-01, 1.04091682e-01, -3.53685409e-01, + 5.86204529e-01, 4.95225750e-03, -4.48516347e-02, + 1.01068750e-01, 3.92818093e-01, -3.62113006e-02, + -1.46802768e-01, 1.35388792e-01, 1.38382092e-01, + 1.48070589e-01, -4.25118625e-01, -1.75745875e-01, + 3.78002465e-01, -2.10354820e-01, -5.19592986e-02, + 1.10778727e-01, -3.51839453e-01, 3.32946271e-01, + -5.59986532e-01, -4.17612940e-01, -2.77652964e-02, + 3.45188566e-02, 2.78745949e-01, 2.07424849e-01, + -2.69175708e-01, -1.95480496e-01, 5.10237664e-02, + 5.31870425e-01, -4.50279802e-01, 2.10754082e-01, + -2.88423267e-03, 3.27303797e-01, -1.07819043e-01, + 6.81314945e-01, -1.36909872e-01, 3.67804885e-01, + -2.26810232e-01, -1.21685497e-01, -6.76775500e-02, + -1.05786487e-01, 2.98110276e-01, -1.82659939e-01, + 2.66984217e-02, 3.62214088e-01, -6.90025762e-02, + 1.11846603e-01, -2.18714103e-01, 1.86836019e-01, + -1.56641662e-01, -3.86389971e-01, 2.08430424e-01, + 1.93191469e-01, 6.45032758e-03, 2.34401941e-01, + -2.55201548e-01, 2.68865049e-01, -3.03713828e-02, + 1.50862843e-01, -6.15152597e-01, -3.73961985e-01, + 1.84285045e-01, -3.92355651e-01, -1.17721006e-01, + -2.84718096e-01, -4.88695465e-02, -1.58195123e-02, + 2.48721391e-01, -4.00804073e-01, 3.41714561e-01, + 3.13368082e-01, -3.82878557e-02, 2.83384681e-01, + -2.80475527e-01, -1.88924149e-01, -5.15471287e-02, + 4.50969785e-01, 4.25203331e-03, -7.25841299e-02, + -4.02388424e-02, 2.48287618e-01, 2.72535890e-01, + -1.53794155e-01, 7.51439631e-02, -3.72893900e-01, + 1.99668854e-01, -3.21120135e-02, -7.52131417e-02, + -5.15982844e-02, -7.21984282e-02, 6.63316548e-01, + -2.96146065e-01, 6.10040091e-02, 1.08289234e-01, + -1.04519345e-01, -9.49029103e-02, -4.55625504e-01, + 4.32514176e-02, -3.83038796e-03, 4.81194317e-01, + -1.67021409e-01, 6.21539131e-02, -1.63614884e-01, + -3.69821846e-01, -1.62424017e-02, -1.80038199e-01, + -1.98606163e-01, -3.63899648e-01, 1.15855664e-01, + 2.24566936e-01, -2.42324501e-01, 5.75001359e-01, + -4.66853976e-02, 1.42434925e-01, -1.71716660e-01, + 3.72132510e-01, 3.09737891e-01, -9.43784695e-03, + 2.23572459e-02, 2.27866117e-02, -4.98219639e-01, + -7.04279840e-02, -4.27559912e-02, -2.19071344e-01, + -5.80286868e-02, 1.91626325e-01, 1.92536458e-01, + -1.91773325e-01, 9.86482669e-03, 4.37478274e-01, + -1.41508235e-02, 6.72889128e-02, 2.20997795e-01, + 3.33521247e-01, -2.66620547e-01, 1.46219224e-01, + -8.74190778e-02, 6.19130909e-01, -1.54305443e-01, + -9.43374559e-02, -1.86473608e-01, -1.46451518e-01, + 7.15432912e-02, -1.81693196e-01, -1.13373091e-02, + -6.02997951e-02, -2.43861333e-01, -1.20440178e-01, + 3.15330893e-01, 2.81973749e-01, -1.08011521e-01, + 2.00957492e-01, 8.11613277e-02, -1.70868173e-01, + 1.17361508e-01, -2.41528228e-01, -5.12285307e-02, + -5.40408939e-02, 2.95093685e-01, -1.56089067e-01, + -6.90469146e-01, -3.65456357e-03, 7.04098493e-02, + -9.66299176e-02, -5.12030572e-02, 2.51964360e-01, + 3.58488597e-02, 6.95013642e-01, 1.39234260e-01, 3.39805812e-01, + -1.59381479e-01, 4.17184323e-01, -8.45175609e-02, + 3.42082322e-01, 3.35495412e-01, -6.75573274e-02, + -1.55734196e-01, 3.24536055e-01, -1.03536710e-01, + 3.33302289e-01, -1.24088511e-01, 2.30881527e-01, + -7.11121336e-02, -1.00211062e-01, 1.86521187e-01, + 8.83157849e-02, 2.13061988e-01, -1.84731558e-01, + 6.97695464e-02, 4.76718128e-01, -1.30899161e-01, + -3.95139813e-01, 1.07154146e-01, -2.48354554e-01, + -3.61816287e-01, 4.31138515e-01, -1.06623344e-01, + -4.58101928e-01, -2.23259002e-01, 4.54964116e-02, + -4.71347183e-01, 2.82200336e-01, -1.99851170e-01, + 3.69985849e-02, 4.05309796e-01, -1.72780603e-02, + 3.40874881e-01, -2.75685996e-01, 2.43859753e-01, + 4.10324723e-01, 5.24578877e-02, 8.00840259e-02, + -6.86981604e-02, 4.91635621e-01, -1.18908718e-01, + -6.08145036e-02, -1.75886080e-01, 2.98066884e-01, + -1.31822675e-01, 2.65567780e-01, -2.92782128e-01, + -6.57639921e-01, -1.34164244e-01, 9.24002603e-02, + -7.00423643e-02, 4.08357009e-02, -4.65526223e-01, + -3.02779078e-02, -2.29174390e-01, -5.53770103e-02, + 3.84121180e-01, -2.95284539e-01, -1.20111905e-01, + -1.89169347e-01, -2.93912515e-02, 3.77128739e-03, + 3.34948078e-02, -4.21449482e-01, 2.25277305e-01, + -1.37642473e-01, -2.32760031e-02, -4.58599702e-02, + -1.47618234e-01, -1.18895071e-02, -1.37809962e-01, + 2.92905539e-01, -1.84893534e-02, -4.83157076e-02, + 3.05987835e-01, -7.29814321e-02, -3.15960765e-01, + -4.60345715e-01, -1.07046194e-01, 1.82802603e-01, + -1.80641711e-01, 1.76112682e-01, 1.86231136e-02, + 1.37297302e-01, -5.23265779e-01, 3.09553087e-01, + 3.14518332e-01, -2.98973918e-01, 2.55388051e-01, + 4.02834177e-01, -1.05708390e-01, 5.69513552e-02, + -2.22940654e-01, 1.16365194e-01, -1.78536698e-02, + -1.79674000e-01, 2.12301463e-01, 5.01181670e-02, + 2.33651429e-01, 9.96237546e-02, -1.97195768e-01, + 2.23892361e-01, -2.09036842e-01, 6.88388646e-02, + 6.18318841e-02, -3.34334970e-01, -2.90876329e-01, + 1.17357962e-01, 3.53356063e-01, -1.00525208e-01, + 3.05819720e-01, 2.93604583e-01, 5.67990579e-02, + -1.26378313e-01, -1.26170188e-01, 1.06249660e-01, + -2.14072056e-02, -4.95804809e-02, -1.03100706e-02, + 5.12418163e-04, -1.36731952e-01, -7.37648308e-02, + 1.96228698e-01, -6.72558323e-02, -1.24358177e-01, + -9.39830542e-02, 4.75961983e-01, 9.50917527e-02, + 4.15876746e-01, 1.41114518e-01, 1.98907271e-01, + -1.99507982e-01, 3.13885242e-01, -3.15521240e-01, + 2.42021441e-01, 2.31652319e-01, -4.59780186e-01, + 1.88241582e-02, -2.36623734e-01, 3.29642266e-01, + -6.21061921e-02, 3.01684141e-01, 5.67733906e-02, + 1.78491510e-02, 1.20198198e-01, -4.94834304e-01, + -2.78854519e-01, 7.25529809e-03, -1.12130277e-01, + 5.98911606e-02, 1.37148827e-01, -1.79479152e-01, + 1.54982030e-01, 2.27190051e-02, 1.83249563e-01, 4.51547742e-01, + 1.55428752e-01, -5.13685979e-02, 1.12153314e-01, + 1.53186172e-01, 2.06783172e-02, -1.60872728e-01, + -3.41741025e-01, 2.00449526e-01, 9.83034223e-02, + 1.62472233e-01, -1.30619943e-01, -1.64210603e-01, + 2.26896137e-01, -3.64758760e-01, -6.58841953e-02, + 5.54984808e-01, 3.76383424e-01, 4.08599496e-01, + -2.42465481e-01, -2.06514783e-02, 5.33783473e-02, + 1.11794574e-02, -1.07440695e-01, 1.55651331e-01, + -2.05175787e-01, -1.22273723e-02, -9.18614417e-02, + -1.96771454e-02, -2.11976450e-02, 3.37859005e-01, + 1.40858158e-01, -2.61175871e-01, -2.54496515e-01, + -1.37110084e-01, 2.60234654e-01, 2.59515136e-01, + -6.09289110e-02, 1.22784421e-01, -9.18693766e-02, + 1.49260059e-01, 4.13678527e-01, 2.82856733e-01, + -3.79875749e-01, -6.14341676e-01 ] + decision_functions: + - + sv_count: 1 + rho: 1.2788952397013760e+00 + alpha: [ 1. ] + index: [ 0 ] diff --git a/res/svm_sk.model b/res/svm_sk.model new file mode 100644 index 0000000..0392705 --- /dev/null +++ b/res/svm_sk.model @@ -0,0 +1,176 @@ +ccopy_reg +_reconstructor +p0 +(csklearn.svm.classes +LinearSVC +p1 +c__builtin__ +object +p2 +Ntp3 +Rp4 +(dp5 +S'loss' +p6 +S'l2' +p7 +sS'C' +p8 +F1.0 +sS'intercept_' +p9 +cnumpy.core.multiarray +_reconstruct +p10 +(cnumpy +ndarray +p11 +(I0 +tp12 +S'b' +p13 +tp14 +Rp15 +(I1 +(I1 +tp16 +cnumpy +dtype +p17 +(S'f8' +p18 +I0 +I1 +tp19 +Rp20 +(I3 +S'<' +p21 +NNNI-1 +I-1 +I0 +tp22 +bI00 +S'\xcf\xbbtl\x04`\x00@' +p23 +tp24 +bsS'verbose' +p25 +I0 +sS'dual' +p26 +I01 +sS'fit_intercept' +p27 +I01 +sS'class_weight_' +p28 +g10 +(g11 +(I0 +tp29 +g13 +tp30 +Rp31 +(I1 +(I2 +tp32 +g20 +I00 +S'\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?' +p33 +tp34 +bsS'penalty' +p35 +g7 +sS'multi_class' +p36 +S'ovr' +p37 +sS'random_state' +p38 +NsS'raw_coef_' +p39 +g10 +(g11 +(I0 +tp40 +g13 +tp41 +Rp42 +(I1 +(I1 +I901 +tp43 +g20 +I01 +S'D\xb2\x81\xbf7k\xda?lx\xac\xc8\xad0\xe6\xbf\xb3\'\xdfq\x16\'\xdc?\xd9\x84\xe8\x97\xa2\x06\xf0\xbf\x82\x8d\xd7\xa7\xb9+\xe3?\xf2:D\xc8\xc7F\xe8\xbf;\x84\xdb=\xfa\x9c\xe5\xbf\xc6Ci\x1b\x9d,\xf3\xbfO\xd1m\x1cf)\xc4\xbf\xc6\x9e\x04\x91\x8e\xef\xf2?\xe7%=\tk\xcf\xe2?\xa3HfY%\x8b\xd7\xbf\x1fQ\x7f\'\x1a\xbc\xda?[\x07%\xea\x86\xb4\xea\xbf\r\xe5\x89\xca\xbeZ\xdd?\x17\xa8>\xf9\xc5P\xd3?\xb5\xa8\xb4 |4\xc9?&(\x96\x0e\\\xe6\xeb?.+/\x1a\xaf\x00\xea?\xc5;eK\xa0\xa7\xe5\xbf\xb0\xac\x15[M \xcb?\x8d\xd1\xcd]Y\x1b\xc9\xbf0b\x934\x16\x83\xcf\xbf\xde\t\xe0\xed\xdf\x85\xfc?C@rN\xc37\xa3\xbf\x8ei\x00\x9e\xb3.\xc9?\xa8\x82\xf1N\x103\xe1\xbf\xa2\xc5\x7f\x08Il\xe3\xbf7\x9f\xadv(^\xe5?\x08\x10f$C\x12\xb4?\x8c\t&\x1c\xed\xeb\xcd\xbf=?\xdd\x19\x18\xfc\xeb?0d\xe4\xb0k\xef\xed\xbf\xc1\xc3D\x9c\xed\xfb\xe0?\xc0l\xfc\xf0\xd6h\xdb\xbf\x14\x06\x99\x139\x8b\xe1\xbf_\x00\xb8\xc7\x9a\xc1\xe0\xbf\xee\x87\xe5\xe0\xe2\xd9\xc0\xbfA\xbc\x18\rxK\xd4\xbf^F\xdbq\xa8\xf6\x97\xbf\xe3)\xfc\xd6\xcd\xd4\xea?\xeco|\x82\xbd\xa7\xdc?]\xb6\xff\xb8\xcc\xc5\xe4\xbf\xc5[C5\xd0\xce\xd3\xbf\x91\x02\x08\xdcvd\xe5\xbf\xa5lrv\xa3\xd2\xa2\xbf\xdcY\xbd\x1e\xcc\xbf\xe4?~\xd3\xabL\xef\xf0\xf0\xbf\xe8\xc1\xa2\x9d\x96j\xf7\xbf.XN\xdd&\x82\xbc\xbf|\x04\xab<"_\xd9\xbfYj\x9aMH\x02\xdf\xbf\xcf\xb70m\xaf0\xa2?{2\xe1\xd1\xb0>\xd7?t? \x86=u\xbc?I7\xa7\xe9#\x8e\xf1?\xf2"\x1e(q\xc8\xce\xbfj\xdb\x16v/i\xdd?\xda\xae\xdc\xf4\xd3\xf6\xd0\xbf|o\t\xe6\x01e\xa1?\xba-\xbe\x9aS\x89\xdf\xbf9\x98\x11\xe1\xbe=\xec?\xbb\xe3\xf0\x9a\x87\xfe\xb0?\x8b\xd5D\x19\x11\xc7\xea?B\xa4\xddx\xe5\x99\xb6\xbf\x17\xeel\xa7v\xc8\xeb?\xcb\x827w\xd6\x1a\xbf?|\x01\xab:>|\xde?_\xfefM\xac\xd9\xd9?\xee\xcbk\x155\x0f\xc2?K\xbc\x88\xe4\xcf\xc3\xcc\xbftI\xb7\x93\xe1\xff\xdc?vY[\'\xd9\xf7\xe9?g\x1d\x8bE\xddf\xf2\xbf\xceeg\x81Y\xdd\xa6\xbfTr\xaf4\x1a\xf1\x9f?>\x03\x84\xae\x83\xc0\xe9?\xbfb\xd1\xf4X\xae\xd3?\xe3\x9a\x08b\xeba\xc2?\xd4\x16\xf3\x9a\x97"p\xbf\x10)S\x04V\xff\xd8\xbf\xa6\xa5\xbcH}\xa9\xdb\xbf}\xc5smnR\xd0?y,!\xd6\xfd\xb0\xe3\xbf\xeaC\xe7\x17\x18I\xf7?\x08\x14\xc6D\xf4@\xee\xbf\xf9\xb5w]6\x12\xc5?k\x83\\\x17Ng\xc2\xbfk\x86\xfa\x034%\xc3?\xbc\xfa\r\x8f\x92@\xdb\xbf\x0c!E\xa4\xb7R\xbf\xbf\xa4f\xcac\xaa\xba\xe2\xbf\xb9\xc8oc\xf5\xc8\xb7?q\x82eF"\x08\xd5\xbf\xe7\xe0\x97\xf3-L\xf2\xbf\xf3>uS\x83A\xcf?\x86\xfec\x98\xc1(\xbd?\x9b$\x14]\xefw\xd7\xbf\xabp\xa3\xd9x\\\xcc\xbf\xd6\x07\x933*\x9e\xd6?}\x8d\x9dm\xa2\xa9\xe0?\xab6Sq\xe4\xb2\xc6?m"\x16\x86o\x9e\xd2?\xda\x94g\xfcK\x1e\xde?T\xff\x9e\xdbd\xae\xe8\xbf\xbe\xbe\x9cz\x9b\xf4\xe6?\xe0$\xb8~\x7fJ\xdd\xbf\xae\xc7\xe6Q\xb6\x8a\xdd?\xf6X2\x8bTf\xe6\xbf\xe4\xda\xfe\xc4\xe36\xc8\xbf\xff!\xc2?\xf3\x8f\xbf?\xcec\xdd[Ji\xd3\xbf\xc9\xea\xe2I\xdb\xcc\xd5?\xeaH\xf8\xe2\xa2\x00\xb6?\x98\x13\xd7e\x01o\xd2\xbfo9\xaaof.\xc9?mA\xda\'T\x0e\xd2\xbf\x82c\xd1Z\xcd\xd0\xcf?\x19i,\x17A\r\xa5\xbf!\xdbb\x17\xd2G\xf6?aW\x88\x95\xe2\xe5\xc8\xbf\xc2\x95\x1eD\xd6S\xc9?$s\x8e\x91\xf10\xcc\xbf(x#J\xee\xfa\xf3\xbf\xbb\x16!2\x1dZ\xcf\xbf\x91\x10\x0c\x13\x86+\xc1?\xd4\xb8\n\xb5\xf1k\xed?\r\xa5\xd9|^>\xc6\xbf\xf7\xa5}4\x80+\xd6\xbf\xe7rY\x1e?\xa9\xe6?K\xe3\xb4\xb6\xd4D\xf2\xbf9\r~\x85\xab\x04\xe5\xbf\x82\x82\xb8\xf74\xc0\xdf\xbf\x11V\x8b\x95k\xa6\xdf\xbf\xb3R\x80\x17#)\xef\xbff(\x9d\xf0\xfa\x8f\xd8?\xba\x05a\xefc\x04\xfc\xbf\x14\x86Eq>}\xde?\x03\x0b%\xb5\xfc\x1a\xc7\xbfFF\x97\xe4\x0b\xa2\xe3?\xac]\xb7\xa5_\x94\xc7?\xf5>\x16c\xc9S\xc1?\xd4\x9dS\xe3Y\x1d\xe7?\xf3"L,\xaf:\xcc?r(\xf3|\xdf\xac\xd1\xbf\x19\xc2\r\xad\xf7`\xc2\xbf{\xf1\xf8\xd2\xa6\x00\xe6\xbfp\xeaz\xaa\x9e\xd2\xe5?\xaf\xd6\xb4\xab3\x85\xde\xbfE,\xdf8oU\xcd\xbf\x81\xc6\xee\xa9\xd7}\xb2\xbfM\x0b\xc3\x1d\x8f\x05\xd1??\xffe\xd0S\x03\xc9\xbf\xf8\xdc\xdf8\x013\xea?x\xcb\xc5\xd3vM\xf1?5Z\x863\x08\xc4\xe5\xbf\xb7\xb3/u\x91p\xcf\xbf\xf3\xa7\xd2\x11\x10\xff\xea\xbf\xb2\x05?\xdf\xe8\x82\xd7\xbf\x8c\xce\x02\x8c\r\xb0\x91\xbff\xdf,[\xab\xf1\xee?\xe4\xccxr^v\xdf\xbf\x8cX\xe4\xb3\x88\xf8\xcf\xbf\xc1aoX\xa3h\xd3?\xc6\xfb\xb7\x16F9\xcb?\xd2\x07^\xe8\xcdA\xe0?45\xeb\xa4\xc7\x8a\xc9\xbf\'A\x0b\xef\xdf\xae\xed\xbf\xf20\'\\o\x94\xc0\xbf\xbf\xf3\xb6I\x9b,\xd0\xbf5\xa8\x00\xd8\x02\xc5\xf3\xbf\xdf\x83\x0b\xf2\x8dY\xd1?\x1d.\x9c4\x12\xf3\xe6?%\xa3Q\xd9\xa3\xb3\xb7?/y,\xb0\xbc\x89\xf6\xbf\'\xb6!\xf8\xfa\xca\xdb\xbfm\x0b\x04\xb0\xde"\xe2\xbf\x9d4h\x17\x19}\xca?\\\xb4\xdce\x9b\x10\xe6?\x06\xcf\xd5I\x02)\xdc?\x03@\x14VUi\xe2\xbf\xbb\xaa\xff|\x8f[\xbd\xbf\x84\xc6\x16\xc1 \xd2\xe4?A\x87\x1b\x98\x92\r\xd6?q\x19e\xe1\xca\xb4\xdf?\xdd\xafY\x18O\x8a\xdf?%-\xd5\xa6m\x02\xf2\xbf\xab\xfa\xe4\xda[\xb4\xd3?\xdd\xf7\x00|\xd7j\xf0?\xfd\x03\xe8~1?\xb5?J[\x9e\xe3\x88\xe4\xda\xbfg\xf3@\x90{\x1b\xd1?"p\xe0j\xce\x94\xcc?\x0f\xf7\x1f\x8e\xc1\xf7\xad?b@s1\xfd\x0e\x9f?\x1d\x10\xf1=]\xe5\xc0\xbf\x07l\xfe+\xea7\xde\xbf\xdcgB@\x04?\xf1?__\x95\x80\\E\xe3?\xd0\xde\xd7\xd9\xfe\x85\xe7?`=\xc3\xf2G}\xc9?\xa4H\x84\x10\xa3\xb6\xf3?\xdb*\xe9\xdcNC\xc0\xbf\xd5}\x9f\xc9\xa8\xc7\xe5?a\x9e\x13\xc3T\x1d\xf3\xbf` 2D2_\xd2\xbfm\x12\x17\xfcw\x96\xe7?\x9a0\xa2u\xaa\xf3\xd6?\xe3\x9c\x95\xe1\x1d}\xd8?\x87+\x19j\x0ex\xc0?\x19\xdf\xbe\xbf;\x86\x00D1\x9d\xd0\xbf1,\xd3\xfd\x9aP\xb7\xbf|m\xf8\x18y\x14\x8d\xbf\xa9\x87m\x13n\xec\xe3\xbf\xfe\xa3\xa9\xfa\xe9\x01\xab?\xd0\xc7Kt\xff\x01\xb7\xbf\xden\xc4\xbdvn\xf2?\xeb\xab\x85\xf8(G\xd1\xbf\xa6\xe1\xbf[\xc3\xfd\xc5\xbf^ra2\xb3\x99\xc0?\xb4\xba\x1c\x95\x7fg\xd8\xbf\xeef\xda\xea\xbem\xa2?"\xdb\x92t\xa1\x14\xe6\xbf\x07P\x90l\xa4~\xee\xbf\xefO^\xce\xad4\xec\xbfR\xd9\x85\xe1>\x06\xd8\xbf\x88\xd3\xc5mLt\xe9?\x7fn0\x91\x97"\xd7\xbf\xa9\xae\x81tM\xf3\x9d\xbfr\xda/\x9c\xac\xa7\xa3?\xe4\xd5\x0eN\x9dF\xeb\xbf\xa9/:\xfcG\xe5\xf3\xbf\xfd\xea\x05\xc3^\x18\xda\xbf\xf0\x8fn\x01\x80Z\xf1?\xce\x8ev.\x10\xbb\xc7?\xd5\\Xt@p\xe1?\xd75|y\xd9\xe2\x95?\x19\x01e\xd5\xdc#\xc6\xbf\xf4\xf7\xdf\xaa\xca\xe7\xc6?9\xec\x185\x1b\xe0\xad\xbf\xdb\xe1"\x1d\xcd.\xd3?o\x06*\x8e\xe46\xd0\xbf\xa5\xd0\x1d\xd9[t\xf0?\xd1\xa5\xfc\xd0\x86\xf2\xf2\xbf\n\xf6\xab\x1f\xe5\xe1\xd6?j\xac\xb9\xa8{a\xc9\xbf\n\xaa\x9bF~\xaf\xf4\xbfS\xd1\x82b\x8a\xec\xdf\xbf.\xb9\xa1\xee\x9a\xe5\xd5\xbf\xf2\x11\x190\xb7\xc9\xc2\xbf\x9bF\xdd\xb1\xfd\xc9\xc5?G\xba\xb7~8\xa0\xcd?\xd8Tl^\xacs\xee\xbf\x84`N\xa7_\x15\xb4?2W \x86\xc2\x9d\xdf?~\x87~\xb3H\xb7\xf1\xbfvz\xc1%V\xc9\xd1\xbf\x8c\xe6\xfbOa\xad\xbb\xbf\xbc\xa2\xef\x15\xf3[\xeb\xbf<9\x84\xc1d\x85\xa5?\xa8y\xda\x9c\xbe\xa8\xab\xbf\xdb\xe0\x12\x14nL\xd3\xbf\xec\xc1\xf6\x81\xe0\x86\xe1?\xfb#dE}\x1a\xc1?\xdc\x82\xe2{v\n\xd4?\xd5e\xbfN\xca\x05\xe5?$\x85\x01\x15@\xfc\xdc\xbf,$\x9cB\xe2\xcb\xdc\xbf\'\xc8\x86\x9c\xc4\xd7\xde?\xc4\x8cR7z\x08\xea?]\x18\xb0A\xc9ju?\xd9\xed\xff\x0b\xdd\x90\xda\xbf\xdf\x9b\xa8n\xa5\xf1\xd3\xbf2\xec\xa0\x8d\xda|\xf3?\x95\x8f|k\xea\xbf\xe3\xbfc\xf8\xdc\x1a\x88\xd8\xe2\xbf|\xfb\x8bSx\r\xcc?\xf1\xd1\xdeQS\x92\xde\xbf?y\xfa\xa3G\xb9\xd9?\xb7qZ\xb6o\xd1\xe9\xbfO\x8d\xdew\xae\xdd\xc8\xbfC\x93u\x01\x91N\xe0\xbfw%\xd2A\x86\x17\xee\xbfz\xff3\x89\x15}\xe4\xbf\x91\x99\x9fiH"\xf0\xbf\x02\xea\xa2\x9f\xb2 \xe8?\xa4X\x98y"\xe7\xd0\xbf.\xbf\x14AO\x83\xe0?J\x12A\xb9F5\xe4\xbf\xe8\x16m\x83\xa0i\xf3?U\x85>\xc7\xadY\xc2\xbf\x95\xda\x81\xe5j\xa8\xe0?\x8c/N\xcbg%\xe8\xbfE\x86\xef\xb2\x1e\xd4\xd7\xbf\xff\x82\x01i\x1eU\xf6\xbftj\xdbwY\xc8\xe6\xbfmP$ov\xc7\xef\xbf\xb9\x81\x14n&`\xb5?\x9f\xfd\xe6\xc2.r\xd2\xbfFF\xa2H\x1a/\xad\xbf\\\x9fN-\x9f\xd3\xe1?\x9c\xab\xa8\xb7\xf89\xb8\xbf\xb6\xb27\xee\xf0\xcd\xe6?\xc3\x97\xd3G!\x8d\xcb?\xfb\xc6hi3\xe0\xe9?Z\xaeX\xa4IR\xec?)\xa7\xeeW0\xe1\xe5\xbfE\xdb\x05\xbb2h\xe2?\xa4\xb9\x1e\xba\xa8\xeb\xc3?\xc7\xaec\x889\xcf\xe1?\xe6\xdb\xac\xd8\xa4\x9e\xdc?=\xa7\x98P\xa8\x94\xe7\xbfe\x0fBj\x9d#\xb1?W\x19\xc3\xa8j\x0e\xea\xbfn\xd9\x86\xcd*\x00\xe6\xbfJ\xf1\x9e\xd9G\x84\xa0?\xe5\tXy\xffd\xfa?\x95&y\x95qL\xc4?9\x81Q\xd2\x98\x84\xe5\xbf\xb9\x98\x0cf\x93\x03\xe1\xbf\xb8z-\xff\x89\xdf\x87\xbf\x16\xd0\x10\xcf\xac\xe4\xb5\xbf\xc0y\x90\xd2}D\xf2?N_\xfe\xd9\x84c\xe8?\xf9\xf6q\x9e\x9c\x99\xd3?\xb77\x07\xab\xf2z\xc9?&\t(T(\xa2\xb7?\x9c6\x01`wO\xe7?\x91\xf2\xad\xe9\xbc\xb6\xac?O\x99\xbeU5\xa6\xe2\xbfv\x0cF\xf9\xc1(\x91\xbf\xd4\xc1u\x87\xc0\xe6\xee?\xb4\x9f\x82g\xbcQ\xae?W\xc6\x86\xde<\xb7\xca?\xaf\x07\x96Y\xd3\xaf\xb3\xbffx\x10\xdf\xafH\xc9?\xd0\xb4\xa6\xb1\xb5!\xe2?\x95\t\x9f\xdd\x88\x93\xcf?\xdb\xd8l\x99\x0c[\xf4\xbf\x88a\xc3\xd9n\x8d\xd9\xbf\xd8\xcf\xcaOg\xd0\xee?\xe4\xe1\xbf\xd7\x89F\xec?0\xb0U\x8ev\xaf\xd3\xbf\r\x91\xf9\x05\xa1F\xe9?Y\xbf\xf9\xe3\x8f\x96\xd9\xbfF\x86\xd34J*\xb5?\xa6\xab\xfcY!\x84\xdd\xbfB\xaf\xea\xec\ne\xdc\xbfE|\x1d\xa0\xf5/\xef?\x04\x0bl\xa0\xe8\xd8\xe4\xbf\xb9\x83\xdbf2\x94\xeb?)\xe8\xdc\xaa\x7f\n\xee\xbf\x95\xac\x98qNL\xb6?\x1a\x010\xaf\xbb\xfe\xa7\xbf\xec\xe7\xc4\xb1{\xc2\xc8?\xb7\xd3h\xa8\x04\x0e\xd3?\x01$\xf9\x0bt\xcd\xf3\xbf\xca\xd9.3![\xa2\xbfLg\xe5\xfecu\xd2?\xf8\x97\xd6R\xcfJ\xc1?\xaf&s\x95a\'\xf3\xbf\x88\xe8\xf4\n<\xad\xe0\xbf\xe1\xdd\xadT\x9a\x0c\xf2?W\\\x19\x19\x93V\xd9?S\x12\x06l\xd9\x00\xe5\xbf\xd2\xe0\x1b\x99-\x01\xdc\xbfdM~vG\xa5\xce?\xe4\xe9U:n\xdb\xdd\xbfV\x03\x81y\xbd\xa7\xdd\xbf\x05\xf1f\xfb\xaf\x0f\xd6?\xd4f\xc5\x17\x94\x8c\xf1?/\xf4Q$\x02$\xc9?\xd2!7s\x84]\xc0?Y\xdd\x15`\xc5$\xcf?II\x86\xc2+\x81\xda\xbf\xcb\n\xf1\xedg\xab\xce?\x90\xcb1U\xc6\xc7\xe8?\xee\xf9\x99\xbf\xf1=\xaa\xbf\xb4\x04\x92\xe7pi\xa9\xbfV\x98\xf8r\x06\xf4\xeb\xbfE\xdd\xaa\t\x16\xe7\xe4\xbf\xef,9/)\xfd\xba\xbft\xfa\x10S\n\xe8\xc6?\xf8[\xf8JN\x8f\xcf?\xa9J\x1e.\x18r\xe0\xbfM\xddo\x04\x08`\xbc\xbf\x15n\xb07\xb9\x11\xd2\xbf\xf1\x92\x8bEz\xe6\xc8\xbf\xc2\xe7\xca\xd7{\xa3\xb6\xbf\x1d_\xad\xfd\x94\xe3\xb6?\x08y\x92\xd83`\xea?B\xf2\x08J\xee\xc2\xda\xbfc\xdc\xffi\x85\xe6\xca?)\xd9cC\xfbK\xd3?84\xef\x03N\xb7\xf6\xbfbH{{\x8d\xfa\xdd\xbfYq\xd0\xab\xce\x0e\xd8?\x1c\x0b\xaa\xa2\xc9(\xf0\xbf\x9a\xd1U\x8b"\x91\xd6?C\xfe[!\xd44\xa9\xbf\x132\xa8\x9b\x8e\x93\xc5\xbf\xe1\xa6=>\xae%\xe4\xbf,\xd2Z\xfc>\t\xd6?\xbbt\xe0\x96.\x95\xd4?\xf0vg\xde\x0e7\xbf\xbfu\x9b\xcchW?\xe2\xbf\xae\x89\xd5\x88\xbb\x91\xc6\xbf\xfaz\x87\th@\xc0?\xd5\x97]\x8f\xb8\xb3\xd5\xbf\xf7*\'\xf8\x0cn\xe7\xbf\xa5s\x97\x0bG\xfa\xc5?\x15w\xf1\xb8\x8c=\xe5\xbf\xd6\xfbb\xcfR\x98\xec\xbf\xe3=\r\x8b\xe9#\xed?S\xb1\x9e\xc6X\xfb\xe5\xbf\x00e\xa8n\xbc\x9f\xf8?\x0f\xba\x85\xac2\xa9\xe3?\x8c\xa5~\x13fd\xca\xbf\xf8w\x84\xee\xdd\x7f\xab\xbf\xfa+C\xe3Bw\xe6\xbf\xd7\xe4\xfcD\x04\xf0\xed\xbfV.\x15\xc3}n\xf2?I\xb3?\xad\x073\x85?\x89\x87\x0f^\xefS\xe1?\xee6W*^2\xec\xbf\xc9J{\x9e\xb1f\xe9?2\\\xa7t\xd3\xbd\xd2?\xc7\xb0\x16_n2\x95\xbf7\xb26\x08\xde+\xde\xbfRp\x82\xc0{\x9b\xa3\xbf1\xe6\x9a\x13u\xc7\xf8\xbf%\xde\x91\xf1\xdcP\xe4?YX\xa8\xa0D7\xe7\xbf]M\'\xe8\xdf\xd9\xe4?\xc5\xdb9%\x8aw\xe1?\xfe\x19\xea\xbb`\x8e\xd0?\xe6\xdd@\xa1\xf7O\x97\xbf\xa3F~\xe3n{\xdd\xbf\xe4r NB\xc0\xc2?*\x1b\xe2Pv;\xe4\xbf\xb5\x0c\xe5[i<\xdf\xbf!\x86\xb8\xa4\xa8A\xe6?\xd4\xc35\xe1 \x89\xe5\xbf\xcd\xa9\x92s\xb6\xed\xa0\xbf\xe8P{`\x95\xbe\xac?\xfbT\xef\'\xf9f\xd2?\xcc\x8d\x92,2\xd8\xde?\x1a#H\x85\x01\xb3\x91?\xc0\xe8^(An\xd6\xbf\x82\xa9*\xb5\x85l\xd5?\xf2x<\x1c\xa6\x01\xe0\xbf\xd5\xae\x1aX\x93\xc1\xf0?\xd2\x83\x85z\x0e\xdf\xe4\xbf\xcabs\x8c\xa5l\xc2?\x11\xf7^\x90\xec\xd8\xd9\xbf\xf6\x1d\x1cMq\xb3\xee?\x15\n\xf6\xb8\xd7\xcf\xe9?\xa6\xa6\x95\xc9 "\xd4\xbfw\xa6\x05\xb6T\x99\xe9?w\xba\xc4\xa3e\r\xc6?;\xee\xfa\xbft\xe7\xe7?\x9f\x15\r\x93\xcf\xdb\xb6\xbf\xf3\xc3\xe6V(\x83\xb8\xbf\xb8&\xad(\xef\xe0\xd3\xbf\x9aY\xd1XvN\xf0?\xce\xe1^\xc1\xbd\x93\xe7\xbf!%,\xb1\xfe\xdc\xdd\xbf\xae\xfdB\xc9\xa2\t\xd0?7\xd2\xa4\xc3\xd6\xcd\xe9\xbf\xffI\x18\x82\xc4\xd3\xea?T\xf8\xd9\xa3\x8b[\xd1?\x86\xc5\x95\x96\xa0\xd7\xda?i\x83V-\xf0\xca\xa8\xbf\x95\xe8\x8e\x94\x87\xd7\xbb\xbfG\x1b\xfb\xab\x1f\x12\xbd\xbf\x132;@e\xf9\xc2\xbfo\xf6\xb1\xa9\x95\xa0\xe4\xbf\xe7\x12\x1a+@\xaa\xe5\xbf\xb8\x81\xe5M\xc1E\xa4\xbfKp\xd2_\xfc\x80\x93?\xb5\x08IH\x05Q\xec? \xc4\xff2\xc7\xd1\xd7\xbfzo\xc4Y\x01\xca\xb2?\xc0\xf7:\x82\xd6Y\xdd?\\\x08\xed\xbf\x01d\xe1?\x98\x1c\x99bxA\xc1\xbfj\x17\xd8%\x88i\xf2\xbfZ\xea\xbe\xdfxA\xe5?\xec\x87\xa74\xbcU\xcc\xbfzhqGb-\xd6?\x1a\x0cN\xde\x00\x90h\xbf\xe6\xcbX#J\xe1\xcd\xbf\xd0\x86\x131\x18\x18\xf6?x\xe3\xda\x8eh!\xac\xbf\r\xc3\xea7\x7fd\xa6?\x85K\xf4L\xc9\xfb\xe8\xbff\xd9\xb65\x0b\xca\xdf?V\xa3/d\x08:\xe9\xbf\x0e\xadk\xfc\xf2\xa4\xdc?\x017\xa9\xbe\xf2.\xe4?\xa7\xd7\x82\x01!c\xe3\xbfu^\x9a\xb6MK\xe1?)\xe9\xb0\x8c\x06\xff\xa5\xbf\xf2\xe1\x96\xd2\x9f\x13\xe3?\xda90\xad\xfc\xad\xe6\xbfD\x9b"\xc3km\xdc\xbf\x91\x1d\x04\x1f\xb9\x17\xf0?Xq\xe2\x1c\xcc\x0b\xe9\xbf\xa2OS\xf8\x9as\xc5?\xa7\xcf\xb0H\xbd\x02\xcf?V\t\x12\xe6E\x9b\xcb?\xc3\x86JX\xaa(\xf2\xbf\x8e\x95n\xe9\xe7\x8c\xd0\xbf\x1d\x95\xc9Z\xc9n\xd4?\xee:]\xf1~u\xcd?\x03\x1e\xa7\xe5\xd3\xdf\xc6?Q\x7f\xd1:\xbcn\xf0?\x91?\xb7p \xe4\xcb\xbf\xc8s\xcd~\xdd+\xbd\xbf\xe4\x97\xdd\xc3\x07]\xd8?+\x92\xaa\xb2\xeb\x06\xe2?\x97L\xf5\x9e\xb6G\xe1\xbf\xf9N\x9f\xc1\xc9\xdc\xd3\xbfB\xa9\xbf\xfe\x01\xed\xd5?UbSSvh\xd1?\xa3H\xaf\xd5\xdf?\xf8\xbf\xc0\x08\x11 K\x8d\xb3?f\xdfq\x87 \xda\xe0\xbf\xf1\xf8\x0c\xf3)\xa1\x8d?\xcb\x01\x9f!\xa9\xb9\xe5\xbf\xed\xd4/\x8d\xa8\x1a\xe3?\xdaI\xd7\xfa\x81I\xd0\xbf\xc1\xc5a\xc0\xe9\xae\xe4?Lru\x99\xb6\xf6\xf1\xbf-\x8e\x8c \xc5\xee\xd0?\x81\xd0Z\xdd?,\xd9?\xda p\x13\xb0r\xd3?\xa6d9\xe4A\x84\xc2\xbf\xdb\xfeg#\xc5\x92\xae\xbf\x166WR\xdez\xb1?\x1e\xefb\x13\x8c\xcf\xa1\xbf?C\xc1\x1c\xa2\xd5\xcf\xbf\xfe\xb8\x17\x9f\xcc\xb1\xb8?\xd5\xfb:i;\xda\xb7\xbf/\xbd8\xca\xa5\xc7\xe9\xbf\x85\x03\xbdwb\x94\xdf\xbf\xaa\xa3\xac\x80\x1a)\xe0?A\xa6\x04\xaf\x8a&\xb9\xbf\\"]|\n\xaa\xeb\xbf\xff>\xcb?\xa1q\xd3?\xb0\x99p%\x01\x15\xd4\xbf\xc2\xe8 aj\xc0\xe8?\x843~\xcd\x1c\x06\xc6?ko\x1a\x80\xa0\xeb\xc8\xbf\xa2\x0b\xae})\xed\xed\xbfb\x14U(\xb3\xc0\xdf?\x85\xd3f&\x84v\xf2?_[%\xbd\x9e\xfa\xd2\xbf\n\xfe\xbe;\x02R\xd0\xbf\x81\xd9\xf3\xbd\xe2\xbb\xd6\xbfd\xb3\x9c\x12\x93;\xd7\xbf\x16@6\xc3\\\xa7\xdb\xbf\xd8\xc5\xa1\xe5\x1b&\xc0?\xc0\xe1\x98\xeb#1\xf5\xbf=\xa88\x9a\x87\xed\xd4\xbf\xd1\x96\x06\xf2L\xf8\xe4\xbf\xc0\xea\xad\xea\xa7\xf9\xd7?\xa0\x18V\xdfIh\xe9\xbf\x07\xe7\xa9%\x1a<\xc1?h\xcfI7e\'\xf3\xbf3\x1f~\x91\x83x\xca\xbf\n\xbcQ\xd4\xf5W\xc8?\xdf\\\xd6\x13\x88\xe0\xd7?\xf7\xa2i\xd1r\xd0\xda\xbf\x07>\x9b\x86\x9fY\xc2\xbf,\x9c<\xd6R\x08\xd3\xbf\xa6\xc2\x95\xbb8\xbb\xe2?\xde\x91\x94O=a\xe4\xbf\x0ch\xcd\xa3f\xfe\xd1?\xf9\xec\xa8\xe1l\x80\xe4?\xc2\xb8\xa5\xa7\xb8\x98\xd0\xbf\xe3H\xd0Sk\x06\xb9\xbf+N\xbdM\x7f\x19\xe2\xbf\xb8\xa9\xa7N\xb5\xc3\xe6?\x18&=7~f\xe0\xbf.\x9b\x92@ \x1c\xf7\xbf>_UsF\xfb\xab?sm*\x8f\x16\xd8\xdc?\x06\xb3\x1d)\xfb\xf3\xbf\xbfk\xc9\xd1\x0b\xc5\xb1\xd9?\xc8\x12q\xa4\x96J\xea?\x80%\xa4:\xf0\n\xdb\xbf\xe4\xa9\xbd>\x0e\x00\xd4?}\xe5\x801\xd1\xcc\xf9?#2\x1e=%\xad\xc8?~\xed\x9f.\x92\xa9\xdf\xbf^\xe95sqL\xf6?M4gP\xb9\xbd\xde\xbf\xa76C\xd0\xc3\xd3\xdb?t\xa4\xd60*\xe4\xa3?\x0bH\x9eC\xf8u\xcb\xbf\xa3&\xa1j\xd1x\xbf?\x9f,\xe7oQP\xf0\xbf\x99\x9cz\xb3\xb7\xbc\xe0?\xaf\xd6\x1b\xaf\xe0\x9a\xcd\xbf\xe5\x1b\xdd\xbaC \xdc\xbf\xf3\x12\xb6k\x9e+\xd7?\x06\xb1\xf9\xaeH\x87\xe4?x\x15y\x9eI}\xbd?\xec\xf5\x1f\xeb\xddz\xeb\xbfL\xfew\x7f_\x99\xd1\xbf\x17\x19\xb1\x9e\xe7t\xcd?\t\xcf\xd1s\x01t\xdd?0`\xb1`\xdf\x90\xe0\xbf\xb1dkS\xddy\x9d\xbf\xf3\x19\xc6\xa8\xaba\xe3\xbf\x9b~/9\xab\xe7\xe2?[L\xcf\xd8\x80&\xf8?+\x8a\xf3%\xf5\xe1\xe0?=\x84rQQ\xc1\xde\xbf{\x9a\x8a/\xfd\x15\xc5?\xa8\xaakw\x9e0\xc2?\x0c"\x01\x88j\x9c\xed?\xc8\xcb\xdbJ\x8f\xdf\xe1?\x1d\x86\xce\x16\xb74\xd0?\th\x90>M\x07\x9a?\xe1W\xbb\x98}\xed\xf6\xbf\xc4\xc6\xa3\x97`\xb5\xe0?\xf2\xf7\xed\x14\xc5@\xbf\xbf\xca\x12l\xb2\x95\x0f\xe1?\xa1\xdb\xfc\\U\x00\xc1\xbf\x85_5)\xc7\xef\xcd\xbf/\xeb\xeb\xe0\xe3\x88\xb3\xbfo\x8a\x1d\xc8\xa0\xf9\xec?R\xec\\\x97c9\xc4?\x11d\x1f\xd2%\xf7\xed?\x9b\x893\xf7O\x02\xc6\xbf\x0c\xa6\x80\x85\x04\xc7\xc4\xbfj\xc4\xf0\x18\x15_\xda\xbf}\x933\x98\xcdE\xd4?\xc1O\xbb\x85\xe3e\xd6?\xf3Z%#\xcb\xcc\xcc\xbf\xfc\xa2\x9a\xa4V\x04\xcb\xbf\xb3]\xe6\xb7\xd5\x9e\xbf\xbf8f\\#\xcd}\xef\xbf-&L\x8c\x15\xdb\xc0?MW\xa1\xdc\xff\xc4\xc2?\xa6\x1dKOJ\x93\xdc?\xd2\xa1<\x99\xf1\x9f\xc9?\x8c\xad>uU\xc5\xc5\xbf\xc2\x83\xb9\xfdT3\xb1\xbf\xe2\x03\xdfp\x10\xb2\xe2\xbf+Lrl\xe2f\xb5?6\x16\xb9_\x16\x85\xd1\xbfd\x82Xv\xdd\xcf\xf4?dw;\\6Q\xdd\xbf\xe7x\xa6t\xe34\xe6\xbf"\x91V\x17\x91\xc3\xb8?\x8f\xb7\xf1x\x9cT\xe8\xbf"`\x1cU\x0e^\xec\xbf\xa6\xd3\xcc\x02u\xb8\x86\xbf\x7fp\x17\xea\x82\x06\x82?e\xd5\xd1\xd4R\xac\xe2?"\r\xa4\x050|x?M\x9b#\xa9*\xa3\xe5?\x8bG\xf1&\x83:\xb7?`a\x81\xe1\xab\x99\xbc\xbf.\\\x85\'\x95\xbb\xc4?\x02H`\xe6\xf7\x04\xd2\xbf\xc1\xc2\xd9\xb3=\x94\x96\xbfM\x125\x89\x05\xff\xc5?\x19\x10\x9a\xceV\xdc\xc9\xbf\x04\xe0{s\r\x88\xbb?)/\xcc\xd4\x87\xb0\xdc?{\xcaB\xd5\xbaz\xad?+\xe8\x85\xd7\x8dN\xe6?\xe7&\x04\xb4\x8b|\xe8?aI\r\xe5\x15\xae\xce\xbfJ\x9ad\x00x\xf5\xd9\xbf\xba\xf4\xa3\x95\xb67\xa3?GZA\xe3n\x0b\xf0\xbf\xb3\xc6\xb7\x95\xba\x8d\xf1\xbf[[\x8f\x81n\xa3\xc1\xbf\xa2\xc5\xad\xcd\xb1\x91v\xbf\x05\xd21\x0e\x95\t\x9a\xbfIp\xfc\xc3\xd2\x01\xd6\xbf\x94\xb0\x1d\x02s~\xb5?nc\x87\x17\x84h\xc3\xbf\xeb?\xd8\xb1\x9f\x0e\xf0?75"\xc2\xbf\xe1\xc3?]/\x133\x8d\xc4\xdf?Ap\xa1twT\xc9?T\x9c\x8a\xb5y\x82\xf2\xbf\x1b\xed\xa85\x7f\xad\x98\xbf\x8e!*#\xf5\xa4\xed?l\x7f\xe2\x99g[\xc2?QOjj\x18h\xdf\xbf\x99\x85[\x99\xcd\xdc\xca\xbfI3"\x86\x7fq\xec\xbf\xba\x8b\x81\xe7e\x8e\xd3\xbf\xafn\xc9\xa9gi\xe2\xbf\xd3\xc1\xbf\x0b\x0f\x16\xde?%\xb6iw\xad\x81\xe5\xbf\x02g\xbboT=\xea?\x8aD\xbe\xfe\xc2[\xc5\xbf0!\xfd_\x941\xc2\xbf \xb9\x9b\xf4[\x9c\xef?\xe4\x04\xdc\x981G\xc8\xbf\xed4*\xec\x16T\xe7?\xddK\xf2a\xb2\xfb\xe1\xbf~\x7f\x16!\xf95\xc2?\x98\xe9\x03:\x11\x81\xde\xbf\xdcLg\xff2\x89\xde?\xc7;\\\xac`z\xde\xbf\x0c\xe2n*\xab\x9b\xde\xbfh\xd3^\xa0\xf6l\xf0?r\xc2\xd9\x99\'\xf9\xd8?\x1d\xed\x88\xbdF\x9b\xe0\xbf\xa9\xdd\xe7\xfd\x9aA\xc7?\x15o\x0e7\xaf\x9e\xe4\xbf\xfa\xfc-\xd3\\\xefw\xbfA\x0b\x83\x1d\xe6\x81\xe5?\xdd,O\xe3\xb6\x80\xe0\xbf\x12\x8ffQ\xb8G\xc0\xbf.\x10\xc6}~\x17\xe2\xbfE\xb2Ki\x8d\xcb\xd9\xbf,LN\xab\xba\xed\xc3\xbf\x9d{\xa1 \xa1\x8e\xd2?\xeb\xdd\xb8|\xcb\xd2\xd4?%U\xc3\xefr\xea\xdb\xbf\xea\x03\xacYi\x82\xd5\xbfh\x1d\xf0\xe6\x12\xcf\xef?\x9f1\x97\xe5a\xed\xd7?R\xf4\xcd3&\xab\xe4\xbfO\xb9w\xe5\xa9\xe5\xc9\xbf\xfc5\x147|\r\xe7\xbf\x03\r\xfbg\x91`\xec?\x96\xb6\xaa\xc2\x1b\x93\xce\xbf\x9d\xbeV)-"\xe3\xbf\xd2"Y.!\xfb\xf0?\x99\x0b4\'\xd8\x1f\xc8?N`\n\xe8\xcch\xf3\xbf(@\x82\xe6"\xaf\xec\xbf\xd3V@\'\x9c\x06\xde\xbf\x86\x87\x00\xfa<~\xe5?_R\x17\x91~R\xbe?\x86U\xd2\xad\x8d\xf0\xc6\xbf\xe7\xd9\xff\xb8A\xc5\xe1\xbf\x9e\x8f\x7f$\xd8n\xd1\xbf\xc8=\xfdL\xf8\x18\xf2\xbf\x16\xfe\xb3\xd5-X\xe2?\\bh=N\x14\xb6?\x81\x05\xb0^\xbdy\x8b\xbf\xd4M\xbb\xa8\x85h\x9e?\xf3\x9e`\xf0\x8e\xe5\xdc\xbf\xd0Q\x00\x9cw\x99\xe5\xbf`\x8dpz\xe6\x19\xd5\xbf\xb3\x9eY\x91+b\xa2\xbfht^ym\t\xb7?;\xe5\xbd\xc5\x19@\xd4?:\xd6g{\r\xd5\xe6\xbf1\xb0\xfa\xc9\xee\x1e\xe5\xbf\xb3\xeb\x0f\'\xcc\xdb\xd3?\xd6\xd7\x90\x89\xfb8\xbe\xbfcaf\xe5*K\xbc\xbf\xd1\xc9\x1f\x9f\xdat\xe0\xbf\xef\xf4\xa2\x0ev\x9b\xcf\xbfM\xdc\xba\xe1\xbfi\xe2\xbfG\xb4ya\x94\x03\xf5?\t\xe8\x1e\x1a.\xea\xf7?\xcf\xbbtl\x04`\x00@' +p44 +tp45 +bsS'_enc' +p46 +g0 +(csklearn.preprocessing.label +LabelEncoder +p47 +g2 +Ntp48 +Rp49 +(dp50 +S'classes_' +p51 +g10 +(g11 +(I0 +tp52 +g13 +tp53 +Rp54 +(I1 +(I2 +tp55 +g17 +(S'i8' +p56 +I0 +I1 +tp57 +Rp58 +(I3 +S'<' +p59 +NNNI-1 +I-1 +I0 +tp60 +bI00 +S'\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00' +p61 +tp62 +bsbsS'tol' +p63 +F0.0001 +sS'coef_' +p64 +g10 +(g11 +(I0 +tp65 +g13 +tp66 +Rp67 +(I1 +(I1 +I900 +tp68 +g20 +I01 +S'D\xb2\x81\xbf7k\xda?lx\xac\xc8\xad0\xe6\xbf\xb3\'\xdfq\x16\'\xdc?\xd9\x84\xe8\x97\xa2\x06\xf0\xbf\x82\x8d\xd7\xa7\xb9+\xe3?\xf2:D\xc8\xc7F\xe8\xbf;\x84\xdb=\xfa\x9c\xe5\xbf\xc6Ci\x1b\x9d,\xf3\xbfO\xd1m\x1cf)\xc4\xbf\xc6\x9e\x04\x91\x8e\xef\xf2?\xe7%=\tk\xcf\xe2?\xa3HfY%\x8b\xd7\xbf\x1fQ\x7f\'\x1a\xbc\xda?[\x07%\xea\x86\xb4\xea\xbf\r\xe5\x89\xca\xbeZ\xdd?\x17\xa8>\xf9\xc5P\xd3?\xb5\xa8\xb4 |4\xc9?&(\x96\x0e\\\xe6\xeb?.+/\x1a\xaf\x00\xea?\xc5;eK\xa0\xa7\xe5\xbf\xb0\xac\x15[M \xcb?\x8d\xd1\xcd]Y\x1b\xc9\xbf0b\x934\x16\x83\xcf\xbf\xde\t\xe0\xed\xdf\x85\xfc?C@rN\xc37\xa3\xbf\x8ei\x00\x9e\xb3.\xc9?\xa8\x82\xf1N\x103\xe1\xbf\xa2\xc5\x7f\x08Il\xe3\xbf7\x9f\xadv(^\xe5?\x08\x10f$C\x12\xb4?\x8c\t&\x1c\xed\xeb\xcd\xbf=?\xdd\x19\x18\xfc\xeb?0d\xe4\xb0k\xef\xed\xbf\xc1\xc3D\x9c\xed\xfb\xe0?\xc0l\xfc\xf0\xd6h\xdb\xbf\x14\x06\x99\x139\x8b\xe1\xbf_\x00\xb8\xc7\x9a\xc1\xe0\xbf\xee\x87\xe5\xe0\xe2\xd9\xc0\xbfA\xbc\x18\rxK\xd4\xbf^F\xdbq\xa8\xf6\x97\xbf\xe3)\xfc\xd6\xcd\xd4\xea?\xeco|\x82\xbd\xa7\xdc?]\xb6\xff\xb8\xcc\xc5\xe4\xbf\xc5[C5\xd0\xce\xd3\xbf\x91\x02\x08\xdcvd\xe5\xbf\xa5lrv\xa3\xd2\xa2\xbf\xdcY\xbd\x1e\xcc\xbf\xe4?~\xd3\xabL\xef\xf0\xf0\xbf\xe8\xc1\xa2\x9d\x96j\xf7\xbf.XN\xdd&\x82\xbc\xbf|\x04\xab<"_\xd9\xbfYj\x9aMH\x02\xdf\xbf\xcf\xb70m\xaf0\xa2?{2\xe1\xd1\xb0>\xd7?t? \x86=u\xbc?I7\xa7\xe9#\x8e\xf1?\xf2"\x1e(q\xc8\xce\xbfj\xdb\x16v/i\xdd?\xda\xae\xdc\xf4\xd3\xf6\xd0\xbf|o\t\xe6\x01e\xa1?\xba-\xbe\x9aS\x89\xdf\xbf9\x98\x11\xe1\xbe=\xec?\xbb\xe3\xf0\x9a\x87\xfe\xb0?\x8b\xd5D\x19\x11\xc7\xea?B\xa4\xddx\xe5\x99\xb6\xbf\x17\xeel\xa7v\xc8\xeb?\xcb\x827w\xd6\x1a\xbf?|\x01\xab:>|\xde?_\xfefM\xac\xd9\xd9?\xee\xcbk\x155\x0f\xc2?K\xbc\x88\xe4\xcf\xc3\xcc\xbftI\xb7\x93\xe1\xff\xdc?vY[\'\xd9\xf7\xe9?g\x1d\x8bE\xddf\xf2\xbf\xceeg\x81Y\xdd\xa6\xbfTr\xaf4\x1a\xf1\x9f?>\x03\x84\xae\x83\xc0\xe9?\xbfb\xd1\xf4X\xae\xd3?\xe3\x9a\x08b\xeba\xc2?\xd4\x16\xf3\x9a\x97"p\xbf\x10)S\x04V\xff\xd8\xbf\xa6\xa5\xbcH}\xa9\xdb\xbf}\xc5smnR\xd0?y,!\xd6\xfd\xb0\xe3\xbf\xeaC\xe7\x17\x18I\xf7?\x08\x14\xc6D\xf4@\xee\xbf\xf9\xb5w]6\x12\xc5?k\x83\\\x17Ng\xc2\xbfk\x86\xfa\x034%\xc3?\xbc\xfa\r\x8f\x92@\xdb\xbf\x0c!E\xa4\xb7R\xbf\xbf\xa4f\xcac\xaa\xba\xe2\xbf\xb9\xc8oc\xf5\xc8\xb7?q\x82eF"\x08\xd5\xbf\xe7\xe0\x97\xf3-L\xf2\xbf\xf3>uS\x83A\xcf?\x86\xfec\x98\xc1(\xbd?\x9b$\x14]\xefw\xd7\xbf\xabp\xa3\xd9x\\\xcc\xbf\xd6\x07\x933*\x9e\xd6?}\x8d\x9dm\xa2\xa9\xe0?\xab6Sq\xe4\xb2\xc6?m"\x16\x86o\x9e\xd2?\xda\x94g\xfcK\x1e\xde?T\xff\x9e\xdbd\xae\xe8\xbf\xbe\xbe\x9cz\x9b\xf4\xe6?\xe0$\xb8~\x7fJ\xdd\xbf\xae\xc7\xe6Q\xb6\x8a\xdd?\xf6X2\x8bTf\xe6\xbf\xe4\xda\xfe\xc4\xe36\xc8\xbf\xff!\xc2?\xf3\x8f\xbf?\xcec\xdd[Ji\xd3\xbf\xc9\xea\xe2I\xdb\xcc\xd5?\xeaH\xf8\xe2\xa2\x00\xb6?\x98\x13\xd7e\x01o\xd2\xbfo9\xaaof.\xc9?mA\xda\'T\x0e\xd2\xbf\x82c\xd1Z\xcd\xd0\xcf?\x19i,\x17A\r\xa5\xbf!\xdbb\x17\xd2G\xf6?aW\x88\x95\xe2\xe5\xc8\xbf\xc2\x95\x1eD\xd6S\xc9?$s\x8e\x91\xf10\xcc\xbf(x#J\xee\xfa\xf3\xbf\xbb\x16!2\x1dZ\xcf\xbf\x91\x10\x0c\x13\x86+\xc1?\xd4\xb8\n\xb5\xf1k\xed?\r\xa5\xd9|^>\xc6\xbf\xf7\xa5}4\x80+\xd6\xbf\xe7rY\x1e?\xa9\xe6?K\xe3\xb4\xb6\xd4D\xf2\xbf9\r~\x85\xab\x04\xe5\xbf\x82\x82\xb8\xf74\xc0\xdf\xbf\x11V\x8b\x95k\xa6\xdf\xbf\xb3R\x80\x17#)\xef\xbff(\x9d\xf0\xfa\x8f\xd8?\xba\x05a\xefc\x04\xfc\xbf\x14\x86Eq>}\xde?\x03\x0b%\xb5\xfc\x1a\xc7\xbfFF\x97\xe4\x0b\xa2\xe3?\xac]\xb7\xa5_\x94\xc7?\xf5>\x16c\xc9S\xc1?\xd4\x9dS\xe3Y\x1d\xe7?\xf3"L,\xaf:\xcc?r(\xf3|\xdf\xac\xd1\xbf\x19\xc2\r\xad\xf7`\xc2\xbf{\xf1\xf8\xd2\xa6\x00\xe6\xbfp\xeaz\xaa\x9e\xd2\xe5?\xaf\xd6\xb4\xab3\x85\xde\xbfE,\xdf8oU\xcd\xbf\x81\xc6\xee\xa9\xd7}\xb2\xbfM\x0b\xc3\x1d\x8f\x05\xd1??\xffe\xd0S\x03\xc9\xbf\xf8\xdc\xdf8\x013\xea?x\xcb\xc5\xd3vM\xf1?5Z\x863\x08\xc4\xe5\xbf\xb7\xb3/u\x91p\xcf\xbf\xf3\xa7\xd2\x11\x10\xff\xea\xbf\xb2\x05?\xdf\xe8\x82\xd7\xbf\x8c\xce\x02\x8c\r\xb0\x91\xbff\xdf,[\xab\xf1\xee?\xe4\xccxr^v\xdf\xbf\x8cX\xe4\xb3\x88\xf8\xcf\xbf\xc1aoX\xa3h\xd3?\xc6\xfb\xb7\x16F9\xcb?\xd2\x07^\xe8\xcdA\xe0?45\xeb\xa4\xc7\x8a\xc9\xbf\'A\x0b\xef\xdf\xae\xed\xbf\xf20\'\\o\x94\xc0\xbf\xbf\xf3\xb6I\x9b,\xd0\xbf5\xa8\x00\xd8\x02\xc5\xf3\xbf\xdf\x83\x0b\xf2\x8dY\xd1?\x1d.\x9c4\x12\xf3\xe6?%\xa3Q\xd9\xa3\xb3\xb7?/y,\xb0\xbc\x89\xf6\xbf\'\xb6!\xf8\xfa\xca\xdb\xbfm\x0b\x04\xb0\xde"\xe2\xbf\x9d4h\x17\x19}\xca?\\\xb4\xdce\x9b\x10\xe6?\x06\xcf\xd5I\x02)\xdc?\x03@\x14VUi\xe2\xbf\xbb\xaa\xff|\x8f[\xbd\xbf\x84\xc6\x16\xc1 \xd2\xe4?A\x87\x1b\x98\x92\r\xd6?q\x19e\xe1\xca\xb4\xdf?\xdd\xafY\x18O\x8a\xdf?%-\xd5\xa6m\x02\xf2\xbf\xab\xfa\xe4\xda[\xb4\xd3?\xdd\xf7\x00|\xd7j\xf0?\xfd\x03\xe8~1?\xb5?J[\x9e\xe3\x88\xe4\xda\xbfg\xf3@\x90{\x1b\xd1?"p\xe0j\xce\x94\xcc?\x0f\xf7\x1f\x8e\xc1\xf7\xad?b@s1\xfd\x0e\x9f?\x1d\x10\xf1=]\xe5\xc0\xbf\x07l\xfe+\xea7\xde\xbf\xdcgB@\x04?\xf1?__\x95\x80\\E\xe3?\xd0\xde\xd7\xd9\xfe\x85\xe7?`=\xc3\xf2G}\xc9?\xa4H\x84\x10\xa3\xb6\xf3?\xdb*\xe9\xdcNC\xc0\xbf\xd5}\x9f\xc9\xa8\xc7\xe5?a\x9e\x13\xc3T\x1d\xf3\xbf` 2D2_\xd2\xbfm\x12\x17\xfcw\x96\xe7?\x9a0\xa2u\xaa\xf3\xd6?\xe3\x9c\x95\xe1\x1d}\xd8?\x87+\x19j\x0ex\xc0?\x19\xdf\xbe\xbf;\x86\x00D1\x9d\xd0\xbf1,\xd3\xfd\x9aP\xb7\xbf|m\xf8\x18y\x14\x8d\xbf\xa9\x87m\x13n\xec\xe3\xbf\xfe\xa3\xa9\xfa\xe9\x01\xab?\xd0\xc7Kt\xff\x01\xb7\xbf\xden\xc4\xbdvn\xf2?\xeb\xab\x85\xf8(G\xd1\xbf\xa6\xe1\xbf[\xc3\xfd\xc5\xbf^ra2\xb3\x99\xc0?\xb4\xba\x1c\x95\x7fg\xd8\xbf\xeef\xda\xea\xbem\xa2?"\xdb\x92t\xa1\x14\xe6\xbf\x07P\x90l\xa4~\xee\xbf\xefO^\xce\xad4\xec\xbfR\xd9\x85\xe1>\x06\xd8\xbf\x88\xd3\xc5mLt\xe9?\x7fn0\x91\x97"\xd7\xbf\xa9\xae\x81tM\xf3\x9d\xbfr\xda/\x9c\xac\xa7\xa3?\xe4\xd5\x0eN\x9dF\xeb\xbf\xa9/:\xfcG\xe5\xf3\xbf\xfd\xea\x05\xc3^\x18\xda\xbf\xf0\x8fn\x01\x80Z\xf1?\xce\x8ev.\x10\xbb\xc7?\xd5\\Xt@p\xe1?\xd75|y\xd9\xe2\x95?\x19\x01e\xd5\xdc#\xc6\xbf\xf4\xf7\xdf\xaa\xca\xe7\xc6?9\xec\x185\x1b\xe0\xad\xbf\xdb\xe1"\x1d\xcd.\xd3?o\x06*\x8e\xe46\xd0\xbf\xa5\xd0\x1d\xd9[t\xf0?\xd1\xa5\xfc\xd0\x86\xf2\xf2\xbf\n\xf6\xab\x1f\xe5\xe1\xd6?j\xac\xb9\xa8{a\xc9\xbf\n\xaa\x9bF~\xaf\xf4\xbfS\xd1\x82b\x8a\xec\xdf\xbf.\xb9\xa1\xee\x9a\xe5\xd5\xbf\xf2\x11\x190\xb7\xc9\xc2\xbf\x9bF\xdd\xb1\xfd\xc9\xc5?G\xba\xb7~8\xa0\xcd?\xd8Tl^\xacs\xee\xbf\x84`N\xa7_\x15\xb4?2W \x86\xc2\x9d\xdf?~\x87~\xb3H\xb7\xf1\xbfvz\xc1%V\xc9\xd1\xbf\x8c\xe6\xfbOa\xad\xbb\xbf\xbc\xa2\xef\x15\xf3[\xeb\xbf<9\x84\xc1d\x85\xa5?\xa8y\xda\x9c\xbe\xa8\xab\xbf\xdb\xe0\x12\x14nL\xd3\xbf\xec\xc1\xf6\x81\xe0\x86\xe1?\xfb#dE}\x1a\xc1?\xdc\x82\xe2{v\n\xd4?\xd5e\xbfN\xca\x05\xe5?$\x85\x01\x15@\xfc\xdc\xbf,$\x9cB\xe2\xcb\xdc\xbf\'\xc8\x86\x9c\xc4\xd7\xde?\xc4\x8cR7z\x08\xea?]\x18\xb0A\xc9ju?\xd9\xed\xff\x0b\xdd\x90\xda\xbf\xdf\x9b\xa8n\xa5\xf1\xd3\xbf2\xec\xa0\x8d\xda|\xf3?\x95\x8f|k\xea\xbf\xe3\xbfc\xf8\xdc\x1a\x88\xd8\xe2\xbf|\xfb\x8bSx\r\xcc?\xf1\xd1\xdeQS\x92\xde\xbf?y\xfa\xa3G\xb9\xd9?\xb7qZ\xb6o\xd1\xe9\xbfO\x8d\xdew\xae\xdd\xc8\xbfC\x93u\x01\x91N\xe0\xbfw%\xd2A\x86\x17\xee\xbfz\xff3\x89\x15}\xe4\xbf\x91\x99\x9fiH"\xf0\xbf\x02\xea\xa2\x9f\xb2 \xe8?\xa4X\x98y"\xe7\xd0\xbf.\xbf\x14AO\x83\xe0?J\x12A\xb9F5\xe4\xbf\xe8\x16m\x83\xa0i\xf3?U\x85>\xc7\xadY\xc2\xbf\x95\xda\x81\xe5j\xa8\xe0?\x8c/N\xcbg%\xe8\xbfE\x86\xef\xb2\x1e\xd4\xd7\xbf\xff\x82\x01i\x1eU\xf6\xbftj\xdbwY\xc8\xe6\xbfmP$ov\xc7\xef\xbf\xb9\x81\x14n&`\xb5?\x9f\xfd\xe6\xc2.r\xd2\xbfFF\xa2H\x1a/\xad\xbf\\\x9fN-\x9f\xd3\xe1?\x9c\xab\xa8\xb7\xf89\xb8\xbf\xb6\xb27\xee\xf0\xcd\xe6?\xc3\x97\xd3G!\x8d\xcb?\xfb\xc6hi3\xe0\xe9?Z\xaeX\xa4IR\xec?)\xa7\xeeW0\xe1\xe5\xbfE\xdb\x05\xbb2h\xe2?\xa4\xb9\x1e\xba\xa8\xeb\xc3?\xc7\xaec\x889\xcf\xe1?\xe6\xdb\xac\xd8\xa4\x9e\xdc?=\xa7\x98P\xa8\x94\xe7\xbfe\x0fBj\x9d#\xb1?W\x19\xc3\xa8j\x0e\xea\xbfn\xd9\x86\xcd*\x00\xe6\xbfJ\xf1\x9e\xd9G\x84\xa0?\xe5\tXy\xffd\xfa?\x95&y\x95qL\xc4?9\x81Q\xd2\x98\x84\xe5\xbf\xb9\x98\x0cf\x93\x03\xe1\xbf\xb8z-\xff\x89\xdf\x87\xbf\x16\xd0\x10\xcf\xac\xe4\xb5\xbf\xc0y\x90\xd2}D\xf2?N_\xfe\xd9\x84c\xe8?\xf9\xf6q\x9e\x9c\x99\xd3?\xb77\x07\xab\xf2z\xc9?&\t(T(\xa2\xb7?\x9c6\x01`wO\xe7?\x91\xf2\xad\xe9\xbc\xb6\xac?O\x99\xbeU5\xa6\xe2\xbfv\x0cF\xf9\xc1(\x91\xbf\xd4\xc1u\x87\xc0\xe6\xee?\xb4\x9f\x82g\xbcQ\xae?W\xc6\x86\xde<\xb7\xca?\xaf\x07\x96Y\xd3\xaf\xb3\xbffx\x10\xdf\xafH\xc9?\xd0\xb4\xa6\xb1\xb5!\xe2?\x95\t\x9f\xdd\x88\x93\xcf?\xdb\xd8l\x99\x0c[\xf4\xbf\x88a\xc3\xd9n\x8d\xd9\xbf\xd8\xcf\xcaOg\xd0\xee?\xe4\xe1\xbf\xd7\x89F\xec?0\xb0U\x8ev\xaf\xd3\xbf\r\x91\xf9\x05\xa1F\xe9?Y\xbf\xf9\xe3\x8f\x96\xd9\xbfF\x86\xd34J*\xb5?\xa6\xab\xfcY!\x84\xdd\xbfB\xaf\xea\xec\ne\xdc\xbfE|\x1d\xa0\xf5/\xef?\x04\x0bl\xa0\xe8\xd8\xe4\xbf\xb9\x83\xdbf2\x94\xeb?)\xe8\xdc\xaa\x7f\n\xee\xbf\x95\xac\x98qNL\xb6?\x1a\x010\xaf\xbb\xfe\xa7\xbf\xec\xe7\xc4\xb1{\xc2\xc8?\xb7\xd3h\xa8\x04\x0e\xd3?\x01$\xf9\x0bt\xcd\xf3\xbf\xca\xd9.3![\xa2\xbfLg\xe5\xfecu\xd2?\xf8\x97\xd6R\xcfJ\xc1?\xaf&s\x95a\'\xf3\xbf\x88\xe8\xf4\n<\xad\xe0\xbf\xe1\xdd\xadT\x9a\x0c\xf2?W\\\x19\x19\x93V\xd9?S\x12\x06l\xd9\x00\xe5\xbf\xd2\xe0\x1b\x99-\x01\xdc\xbfdM~vG\xa5\xce?\xe4\xe9U:n\xdb\xdd\xbfV\x03\x81y\xbd\xa7\xdd\xbf\x05\xf1f\xfb\xaf\x0f\xd6?\xd4f\xc5\x17\x94\x8c\xf1?/\xf4Q$\x02$\xc9?\xd2!7s\x84]\xc0?Y\xdd\x15`\xc5$\xcf?II\x86\xc2+\x81\xda\xbf\xcb\n\xf1\xedg\xab\xce?\x90\xcb1U\xc6\xc7\xe8?\xee\xf9\x99\xbf\xf1=\xaa\xbf\xb4\x04\x92\xe7pi\xa9\xbfV\x98\xf8r\x06\xf4\xeb\xbfE\xdd\xaa\t\x16\xe7\xe4\xbf\xef,9/)\xfd\xba\xbft\xfa\x10S\n\xe8\xc6?\xf8[\xf8JN\x8f\xcf?\xa9J\x1e.\x18r\xe0\xbfM\xddo\x04\x08`\xbc\xbf\x15n\xb07\xb9\x11\xd2\xbf\xf1\x92\x8bEz\xe6\xc8\xbf\xc2\xe7\xca\xd7{\xa3\xb6\xbf\x1d_\xad\xfd\x94\xe3\xb6?\x08y\x92\xd83`\xea?B\xf2\x08J\xee\xc2\xda\xbfc\xdc\xffi\x85\xe6\xca?)\xd9cC\xfbK\xd3?84\xef\x03N\xb7\xf6\xbfbH{{\x8d\xfa\xdd\xbfYq\xd0\xab\xce\x0e\xd8?\x1c\x0b\xaa\xa2\xc9(\xf0\xbf\x9a\xd1U\x8b"\x91\xd6?C\xfe[!\xd44\xa9\xbf\x132\xa8\x9b\x8e\x93\xc5\xbf\xe1\xa6=>\xae%\xe4\xbf,\xd2Z\xfc>\t\xd6?\xbbt\xe0\x96.\x95\xd4?\xf0vg\xde\x0e7\xbf\xbfu\x9b\xcchW?\xe2\xbf\xae\x89\xd5\x88\xbb\x91\xc6\xbf\xfaz\x87\th@\xc0?\xd5\x97]\x8f\xb8\xb3\xd5\xbf\xf7*\'\xf8\x0cn\xe7\xbf\xa5s\x97\x0bG\xfa\xc5?\x15w\xf1\xb8\x8c=\xe5\xbf\xd6\xfbb\xcfR\x98\xec\xbf\xe3=\r\x8b\xe9#\xed?S\xb1\x9e\xc6X\xfb\xe5\xbf\x00e\xa8n\xbc\x9f\xf8?\x0f\xba\x85\xac2\xa9\xe3?\x8c\xa5~\x13fd\xca\xbf\xf8w\x84\xee\xdd\x7f\xab\xbf\xfa+C\xe3Bw\xe6\xbf\xd7\xe4\xfcD\x04\xf0\xed\xbfV.\x15\xc3}n\xf2?I\xb3?\xad\x073\x85?\x89\x87\x0f^\xefS\xe1?\xee6W*^2\xec\xbf\xc9J{\x9e\xb1f\xe9?2\\\xa7t\xd3\xbd\xd2?\xc7\xb0\x16_n2\x95\xbf7\xb26\x08\xde+\xde\xbfRp\x82\xc0{\x9b\xa3\xbf1\xe6\x9a\x13u\xc7\xf8\xbf%\xde\x91\xf1\xdcP\xe4?YX\xa8\xa0D7\xe7\xbf]M\'\xe8\xdf\xd9\xe4?\xc5\xdb9%\x8aw\xe1?\xfe\x19\xea\xbb`\x8e\xd0?\xe6\xdd@\xa1\xf7O\x97\xbf\xa3F~\xe3n{\xdd\xbf\xe4r NB\xc0\xc2?*\x1b\xe2Pv;\xe4\xbf\xb5\x0c\xe5[i<\xdf\xbf!\x86\xb8\xa4\xa8A\xe6?\xd4\xc35\xe1 \x89\xe5\xbf\xcd\xa9\x92s\xb6\xed\xa0\xbf\xe8P{`\x95\xbe\xac?\xfbT\xef\'\xf9f\xd2?\xcc\x8d\x92,2\xd8\xde?\x1a#H\x85\x01\xb3\x91?\xc0\xe8^(An\xd6\xbf\x82\xa9*\xb5\x85l\xd5?\xf2x<\x1c\xa6\x01\xe0\xbf\xd5\xae\x1aX\x93\xc1\xf0?\xd2\x83\x85z\x0e\xdf\xe4\xbf\xcabs\x8c\xa5l\xc2?\x11\xf7^\x90\xec\xd8\xd9\xbf\xf6\x1d\x1cMq\xb3\xee?\x15\n\xf6\xb8\xd7\xcf\xe9?\xa6\xa6\x95\xc9 "\xd4\xbfw\xa6\x05\xb6T\x99\xe9?w\xba\xc4\xa3e\r\xc6?;\xee\xfa\xbft\xe7\xe7?\x9f\x15\r\x93\xcf\xdb\xb6\xbf\xf3\xc3\xe6V(\x83\xb8\xbf\xb8&\xad(\xef\xe0\xd3\xbf\x9aY\xd1XvN\xf0?\xce\xe1^\xc1\xbd\x93\xe7\xbf!%,\xb1\xfe\xdc\xdd\xbf\xae\xfdB\xc9\xa2\t\xd0?7\xd2\xa4\xc3\xd6\xcd\xe9\xbf\xffI\x18\x82\xc4\xd3\xea?T\xf8\xd9\xa3\x8b[\xd1?\x86\xc5\x95\x96\xa0\xd7\xda?i\x83V-\xf0\xca\xa8\xbf\x95\xe8\x8e\x94\x87\xd7\xbb\xbfG\x1b\xfb\xab\x1f\x12\xbd\xbf\x132;@e\xf9\xc2\xbfo\xf6\xb1\xa9\x95\xa0\xe4\xbf\xe7\x12\x1a+@\xaa\xe5\xbf\xb8\x81\xe5M\xc1E\xa4\xbfKp\xd2_\xfc\x80\x93?\xb5\x08IH\x05Q\xec? \xc4\xff2\xc7\xd1\xd7\xbfzo\xc4Y\x01\xca\xb2?\xc0\xf7:\x82\xd6Y\xdd?\\\x08\xed\xbf\x01d\xe1?\x98\x1c\x99bxA\xc1\xbfj\x17\xd8%\x88i\xf2\xbfZ\xea\xbe\xdfxA\xe5?\xec\x87\xa74\xbcU\xcc\xbfzhqGb-\xd6?\x1a\x0cN\xde\x00\x90h\xbf\xe6\xcbX#J\xe1\xcd\xbf\xd0\x86\x131\x18\x18\xf6?x\xe3\xda\x8eh!\xac\xbf\r\xc3\xea7\x7fd\xa6?\x85K\xf4L\xc9\xfb\xe8\xbff\xd9\xb65\x0b\xca\xdf?V\xa3/d\x08:\xe9\xbf\x0e\xadk\xfc\xf2\xa4\xdc?\x017\xa9\xbe\xf2.\xe4?\xa7\xd7\x82\x01!c\xe3\xbfu^\x9a\xb6MK\xe1?)\xe9\xb0\x8c\x06\xff\xa5\xbf\xf2\xe1\x96\xd2\x9f\x13\xe3?\xda90\xad\xfc\xad\xe6\xbfD\x9b"\xc3km\xdc\xbf\x91\x1d\x04\x1f\xb9\x17\xf0?Xq\xe2\x1c\xcc\x0b\xe9\xbf\xa2OS\xf8\x9as\xc5?\xa7\xcf\xb0H\xbd\x02\xcf?V\t\x12\xe6E\x9b\xcb?\xc3\x86JX\xaa(\xf2\xbf\x8e\x95n\xe9\xe7\x8c\xd0\xbf\x1d\x95\xc9Z\xc9n\xd4?\xee:]\xf1~u\xcd?\x03\x1e\xa7\xe5\xd3\xdf\xc6?Q\x7f\xd1:\xbcn\xf0?\x91?\xb7p \xe4\xcb\xbf\xc8s\xcd~\xdd+\xbd\xbf\xe4\x97\xdd\xc3\x07]\xd8?+\x92\xaa\xb2\xeb\x06\xe2?\x97L\xf5\x9e\xb6G\xe1\xbf\xf9N\x9f\xc1\xc9\xdc\xd3\xbfB\xa9\xbf\xfe\x01\xed\xd5?UbSSvh\xd1?\xa3H\xaf\xd5\xdf?\xf8\xbf\xc0\x08\x11 K\x8d\xb3?f\xdfq\x87 \xda\xe0\xbf\xf1\xf8\x0c\xf3)\xa1\x8d?\xcb\x01\x9f!\xa9\xb9\xe5\xbf\xed\xd4/\x8d\xa8\x1a\xe3?\xdaI\xd7\xfa\x81I\xd0\xbf\xc1\xc5a\xc0\xe9\xae\xe4?Lru\x99\xb6\xf6\xf1\xbf-\x8e\x8c \xc5\xee\xd0?\x81\xd0Z\xdd?,\xd9?\xda p\x13\xb0r\xd3?\xa6d9\xe4A\x84\xc2\xbf\xdb\xfeg#\xc5\x92\xae\xbf\x166WR\xdez\xb1?\x1e\xefb\x13\x8c\xcf\xa1\xbf?C\xc1\x1c\xa2\xd5\xcf\xbf\xfe\xb8\x17\x9f\xcc\xb1\xb8?\xd5\xfb:i;\xda\xb7\xbf/\xbd8\xca\xa5\xc7\xe9\xbf\x85\x03\xbdwb\x94\xdf\xbf\xaa\xa3\xac\x80\x1a)\xe0?A\xa6\x04\xaf\x8a&\xb9\xbf\\"]|\n\xaa\xeb\xbf\xff>\xcb?\xa1q\xd3?\xb0\x99p%\x01\x15\xd4\xbf\xc2\xe8 aj\xc0\xe8?\x843~\xcd\x1c\x06\xc6?ko\x1a\x80\xa0\xeb\xc8\xbf\xa2\x0b\xae})\xed\xed\xbfb\x14U(\xb3\xc0\xdf?\x85\xd3f&\x84v\xf2?_[%\xbd\x9e\xfa\xd2\xbf\n\xfe\xbe;\x02R\xd0\xbf\x81\xd9\xf3\xbd\xe2\xbb\xd6\xbfd\xb3\x9c\x12\x93;\xd7\xbf\x16@6\xc3\\\xa7\xdb\xbf\xd8\xc5\xa1\xe5\x1b&\xc0?\xc0\xe1\x98\xeb#1\xf5\xbf=\xa88\x9a\x87\xed\xd4\xbf\xd1\x96\x06\xf2L\xf8\xe4\xbf\xc0\xea\xad\xea\xa7\xf9\xd7?\xa0\x18V\xdfIh\xe9\xbf\x07\xe7\xa9%\x1a<\xc1?h\xcfI7e\'\xf3\xbf3\x1f~\x91\x83x\xca\xbf\n\xbcQ\xd4\xf5W\xc8?\xdf\\\xd6\x13\x88\xe0\xd7?\xf7\xa2i\xd1r\xd0\xda\xbf\x07>\x9b\x86\x9fY\xc2\xbf,\x9c<\xd6R\x08\xd3\xbf\xa6\xc2\x95\xbb8\xbb\xe2?\xde\x91\x94O=a\xe4\xbf\x0ch\xcd\xa3f\xfe\xd1?\xf9\xec\xa8\xe1l\x80\xe4?\xc2\xb8\xa5\xa7\xb8\x98\xd0\xbf\xe3H\xd0Sk\x06\xb9\xbf+N\xbdM\x7f\x19\xe2\xbf\xb8\xa9\xa7N\xb5\xc3\xe6?\x18&=7~f\xe0\xbf.\x9b\x92@ \x1c\xf7\xbf>_UsF\xfb\xab?sm*\x8f\x16\xd8\xdc?\x06\xb3\x1d)\xfb\xf3\xbf\xbfk\xc9\xd1\x0b\xc5\xb1\xd9?\xc8\x12q\xa4\x96J\xea?\x80%\xa4:\xf0\n\xdb\xbf\xe4\xa9\xbd>\x0e\x00\xd4?}\xe5\x801\xd1\xcc\xf9?#2\x1e=%\xad\xc8?~\xed\x9f.\x92\xa9\xdf\xbf^\xe95sqL\xf6?M4gP\xb9\xbd\xde\xbf\xa76C\xd0\xc3\xd3\xdb?t\xa4\xd60*\xe4\xa3?\x0bH\x9eC\xf8u\xcb\xbf\xa3&\xa1j\xd1x\xbf?\x9f,\xe7oQP\xf0\xbf\x99\x9cz\xb3\xb7\xbc\xe0?\xaf\xd6\x1b\xaf\xe0\x9a\xcd\xbf\xe5\x1b\xdd\xbaC \xdc\xbf\xf3\x12\xb6k\x9e+\xd7?\x06\xb1\xf9\xaeH\x87\xe4?x\x15y\x9eI}\xbd?\xec\xf5\x1f\xeb\xddz\xeb\xbfL\xfew\x7f_\x99\xd1\xbf\x17\x19\xb1\x9e\xe7t\xcd?\t\xcf\xd1s\x01t\xdd?0`\xb1`\xdf\x90\xe0\xbf\xb1dkS\xddy\x9d\xbf\xf3\x19\xc6\xa8\xaba\xe3\xbf\x9b~/9\xab\xe7\xe2?[L\xcf\xd8\x80&\xf8?+\x8a\xf3%\xf5\xe1\xe0?=\x84rQQ\xc1\xde\xbf{\x9a\x8a/\xfd\x15\xc5?\xa8\xaakw\x9e0\xc2?\x0c"\x01\x88j\x9c\xed?\xc8\xcb\xdbJ\x8f\xdf\xe1?\x1d\x86\xce\x16\xb74\xd0?\th\x90>M\x07\x9a?\xe1W\xbb\x98}\xed\xf6\xbf\xc4\xc6\xa3\x97`\xb5\xe0?\xf2\xf7\xed\x14\xc5@\xbf\xbf\xca\x12l\xb2\x95\x0f\xe1?\xa1\xdb\xfc\\U\x00\xc1\xbf\x85_5)\xc7\xef\xcd\xbf/\xeb\xeb\xe0\xe3\x88\xb3\xbfo\x8a\x1d\xc8\xa0\xf9\xec?R\xec\\\x97c9\xc4?\x11d\x1f\xd2%\xf7\xed?\x9b\x893\xf7O\x02\xc6\xbf\x0c\xa6\x80\x85\x04\xc7\xc4\xbfj\xc4\xf0\x18\x15_\xda\xbf}\x933\x98\xcdE\xd4?\xc1O\xbb\x85\xe3e\xd6?\xf3Z%#\xcb\xcc\xcc\xbf\xfc\xa2\x9a\xa4V\x04\xcb\xbf\xb3]\xe6\xb7\xd5\x9e\xbf\xbf8f\\#\xcd}\xef\xbf-&L\x8c\x15\xdb\xc0?MW\xa1\xdc\xff\xc4\xc2?\xa6\x1dKOJ\x93\xdc?\xd2\xa1<\x99\xf1\x9f\xc9?\x8c\xad>uU\xc5\xc5\xbf\xc2\x83\xb9\xfdT3\xb1\xbf\xe2\x03\xdfp\x10\xb2\xe2\xbf+Lrl\xe2f\xb5?6\x16\xb9_\x16\x85\xd1\xbfd\x82Xv\xdd\xcf\xf4?dw;\\6Q\xdd\xbf\xe7x\xa6t\xe34\xe6\xbf"\x91V\x17\x91\xc3\xb8?\x8f\xb7\xf1x\x9cT\xe8\xbf"`\x1cU\x0e^\xec\xbf\xa6\xd3\xcc\x02u\xb8\x86\xbf\x7fp\x17\xea\x82\x06\x82?e\xd5\xd1\xd4R\xac\xe2?"\r\xa4\x050|x?M\x9b#\xa9*\xa3\xe5?\x8bG\xf1&\x83:\xb7?`a\x81\xe1\xab\x99\xbc\xbf.\\\x85\'\x95\xbb\xc4?\x02H`\xe6\xf7\x04\xd2\xbf\xc1\xc2\xd9\xb3=\x94\x96\xbfM\x125\x89\x05\xff\xc5?\x19\x10\x9a\xceV\xdc\xc9\xbf\x04\xe0{s\r\x88\xbb?)/\xcc\xd4\x87\xb0\xdc?{\xcaB\xd5\xbaz\xad?+\xe8\x85\xd7\x8dN\xe6?\xe7&\x04\xb4\x8b|\xe8?aI\r\xe5\x15\xae\xce\xbfJ\x9ad\x00x\xf5\xd9\xbf\xba\xf4\xa3\x95\xb67\xa3?GZA\xe3n\x0b\xf0\xbf\xb3\xc6\xb7\x95\xba\x8d\xf1\xbf[[\x8f\x81n\xa3\xc1\xbf\xa2\xc5\xad\xcd\xb1\x91v\xbf\x05\xd21\x0e\x95\t\x9a\xbfIp\xfc\xc3\xd2\x01\xd6\xbf\x94\xb0\x1d\x02s~\xb5?nc\x87\x17\x84h\xc3\xbf\xeb?\xd8\xb1\x9f\x0e\xf0?75"\xc2\xbf\xe1\xc3?]/\x133\x8d\xc4\xdf?Ap\xa1twT\xc9?T\x9c\x8a\xb5y\x82\xf2\xbf\x1b\xed\xa85\x7f\xad\x98\xbf\x8e!*#\xf5\xa4\xed?l\x7f\xe2\x99g[\xc2?QOjj\x18h\xdf\xbf\x99\x85[\x99\xcd\xdc\xca\xbfI3"\x86\x7fq\xec\xbf\xba\x8b\x81\xe7e\x8e\xd3\xbf\xafn\xc9\xa9gi\xe2\xbf\xd3\xc1\xbf\x0b\x0f\x16\xde?%\xb6iw\xad\x81\xe5\xbf\x02g\xbboT=\xea?\x8aD\xbe\xfe\xc2[\xc5\xbf0!\xfd_\x941\xc2\xbf \xb9\x9b\xf4[\x9c\xef?\xe4\x04\xdc\x981G\xc8\xbf\xed4*\xec\x16T\xe7?\xddK\xf2a\xb2\xfb\xe1\xbf~\x7f\x16!\xf95\xc2?\x98\xe9\x03:\x11\x81\xde\xbf\xdcLg\xff2\x89\xde?\xc7;\\\xac`z\xde\xbf\x0c\xe2n*\xab\x9b\xde\xbfh\xd3^\xa0\xf6l\xf0?r\xc2\xd9\x99\'\xf9\xd8?\x1d\xed\x88\xbdF\x9b\xe0\xbf\xa9\xdd\xe7\xfd\x9aA\xc7?\x15o\x0e7\xaf\x9e\xe4\xbf\xfa\xfc-\xd3\\\xefw\xbfA\x0b\x83\x1d\xe6\x81\xe5?\xdd,O\xe3\xb6\x80\xe0\xbf\x12\x8ffQ\xb8G\xc0\xbf.\x10\xc6}~\x17\xe2\xbfE\xb2Ki\x8d\xcb\xd9\xbf,LN\xab\xba\xed\xc3\xbf\x9d{\xa1 \xa1\x8e\xd2?\xeb\xdd\xb8|\xcb\xd2\xd4?%U\xc3\xefr\xea\xdb\xbf\xea\x03\xacYi\x82\xd5\xbfh\x1d\xf0\xe6\x12\xcf\xef?\x9f1\x97\xe5a\xed\xd7?R\xf4\xcd3&\xab\xe4\xbfO\xb9w\xe5\xa9\xe5\xc9\xbf\xfc5\x147|\r\xe7\xbf\x03\r\xfbg\x91`\xec?\x96\xb6\xaa\xc2\x1b\x93\xce\xbf\x9d\xbeV)-"\xe3\xbf\xd2"Y.!\xfb\xf0?\x99\x0b4\'\xd8\x1f\xc8?N`\n\xe8\xcch\xf3\xbf(@\x82\xe6"\xaf\xec\xbf\xd3V@\'\x9c\x06\xde\xbf\x86\x87\x00\xfa<~\xe5?_R\x17\x91~R\xbe?\x86U\xd2\xad\x8d\xf0\xc6\xbf\xe7\xd9\xff\xb8A\xc5\xe1\xbf\x9e\x8f\x7f$\xd8n\xd1\xbf\xc8=\xfdL\xf8\x18\xf2\xbf\x16\xfe\xb3\xd5-X\xe2?\\bh=N\x14\xb6?\x81\x05\xb0^\xbdy\x8b\xbf\xd4M\xbb\xa8\x85h\x9e?\xf3\x9e`\xf0\x8e\xe5\xdc\xbf\xd0Q\x00\x9cw\x99\xe5\xbf`\x8dpz\xe6\x19\xd5\xbf\xb3\x9eY\x91+b\xa2\xbfht^ym\t\xb7?;\xe5\xbd\xc5\x19@\xd4?:\xd6g{\r\xd5\xe6\xbf1\xb0\xfa\xc9\xee\x1e\xe5\xbf\xb3\xeb\x0f\'\xcc\xdb\xd3?\xd6\xd7\x90\x89\xfb8\xbe\xbfcaf\xe5*K\xbc\xbf\xd1\xc9\x1f\x9f\xdat\xe0\xbf\xef\xf4\xa2\x0ev\x9b\xcf\xbfM\xdc\xba\xe1\xbfi\xe2\xbfG\xb4ya\x94\x03\xf5?\t\xe8\x1e\x1a.\xea\xf7?' +p69 +tp70 +bsS'class_weight' +p71 +NsS'intercept_scaling' +p72 +I1 +sb. \ No newline at end of file diff --git a/test_data.py b/test_data.py index f3a43c6..21869a9 100644 --- a/test_data.py +++ b/test_data.py @@ -1,22 +1,36 @@ __author__ = 'chunk' +from common import * + from mdata import MSR, CV + def test_MSR(): dmsr = MSR.DataMSR() # msrd.format() # msrd.build_list() - dmsr.store_image() - dmsr.store_tag() + # dmsr.store_image() + # dmsr.store_tag() + + # dmsr.extract_feat(feattype='ibd') + dmsr.store_feat(feattype='ibd') + def test_CV(): dcv = CV.DataCV() - #dcv.format() - #dcv.build_list() + # dcv.format() + # dcv.build_list() #dcv.get_feat() - dcv.store_feat() + # dcv.extract_feat() + print dcv.get_feat("/home/hadoop/data/HeadShoulder/dst/Train/Img/132/7c5fe33bd194fc1ae7b0023956ebd.jpg", 'ibd') + X, Y = dcv.load_data() + print len(X), len(Y) + if __name__ == '__main__': + # test_MSR() test_CV() - print 'helllo ' + + + print 'helllo' diff --git a/test_feat.py b/test_feat.py index 13901d5..340c7cb 100644 --- a/test_feat.py +++ b/test_feat.py @@ -1,5 +1,7 @@ __author__ = 'chunk' +from common import * + from mfeat import HOG, IntraBlockDiff diff --git a/test_model.py b/test_model.py new file mode 100644 index 0000000..1513732 --- /dev/null +++ b/test_model.py @@ -0,0 +1,29 @@ +__author__ = 'chunk' + +from common import * + +from mdata import MSR, CV +from mmodel import SVM +from mfeat import HOG + +timer = Timer() + + +def test_SVM_CV(): + dcv = CV.DataCV() + X, Y = dcv.load_data() + msvm = SVM.ModelSVM() + msvm.train(X, Y) + + for path, subdirs, files in os.walk('data/467/'): + for name in files: + imgpath = os.path.join(path, name) + feat = dcv.get_feat(imgpath, 'hog') + print name, msvm.predict(feat) + + print msvm.test(X, Y) # 0.948892561983 for svm_cv ,0.989024793388 for svm_sk + + +if __name__ == '__main__': + test_SVM_CV() + print 'helllo' -- libgit2 0.21.2