Built motion from commit efa66e19.|2.6.22
[motion2.git] / server / api / integrationReport / integrationReport.controller.js
index 69e2b55..a3bf8f7 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x5267=['create','body','params','destroy','describe','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','update','then','end','error','stack','name','send','IntegrationReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','find'];(function(_0x4bcc37,_0x15f140){var _0x23676b=function(_0x343c06){while(--_0x343c06){_0x4bcc37['push'](_0x4bcc37['shift']());}};_0x23676b(++_0x15f140);}(_0x5267,0x12d));var _0x7526=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5267[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0x7526('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7526('0x1'));var zipdir=require(_0x7526('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7526('0x3'));var moment=require(_0x7526('0x4'));var BPromise=require(_0x7526('0x5'));var Mustache=require(_0x7526('0x6'));var util=require(_0x7526('0x7'));var path=require(_0x7526('0x8'));var sox=require(_0x7526('0x9'));var csv=require(_0x7526('0xa'));var ejs=require(_0x7526('0xb'));var fs=require('fs');var _=require(_0x7526('0xc'));var squel=require(_0x7526('0xd'));var crypto=require('crypto');var jsforce=require(_0x7526('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x7526('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x7526('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7526('0x10'));var as=require(_0x7526('0x11'));var hardwareService=require(_0x7526('0x12'));var logger=require(_0x7526('0x13'))('api');var utils=require(_0x7526('0x14'));var config=require(_0x7526('0x15'));var licenseUtil=require(_0x7526('0x16'));var db=require(_0x7526('0x17'))['db'];function respondWithStatusCode(_0x356def,_0x182441){_0x182441=_0x182441||0xcc;return function(_0x2eafa0){if(_0x2eafa0){return _0x356def[_0x7526('0x18')](_0x182441);}return _0x356def[_0x7526('0x19')](_0x182441)['end']();};}function respondWithResult(_0x49b464,_0x51aaa4){_0x51aaa4=_0x51aaa4||0xc8;return function(_0x4a555d){if(_0x4a555d){return _0x49b464[_0x7526('0x19')](_0x51aaa4)[_0x7526('0x1a')](_0x4a555d);}};}function respondWithFilteredResult(_0x749059,_0x923aeb){return function(_0x1f0630){if(_0x1f0630){var _0xb26d4c=_0x1f0630[_0x7526('0x1b')],_0x508f68=_0x923aeb[_0x7526('0x1c')],_0x4de9c6=_0x923aeb[_0x7526('0x1c')]+_0x923aeb[_0x7526('0x1d')],_0x14f80f;if(_0x4de9c6>=_0xb26d4c){_0x4de9c6=_0xb26d4c;_0x14f80f=0xc8;}else{_0x14f80f=0xce;}_0x749059[_0x7526('0x19')](_0x14f80f);return _0x749059[_0x7526('0x1e')](_0x7526('0x1f'),_0x508f68+'-'+_0x4de9c6+'/'+_0xb26d4c)[_0x7526('0x1a')](_0x1f0630);}return null;};}function patchUpdates(_0x40917e){return function(_0x4abacd){try{jsonpatch[_0x7526('0x20')](_0x4abacd,_0x40917e,!![]);}catch(_0x495279){return BPromise[_0x7526('0x21')](_0x495279);}return _0x4abacd['save']();};}function saveUpdates(_0x343356,_0x5b0f19){return function(_0x2b71d1){if(_0x2b71d1){return _0x2b71d1[_0x7526('0x22')](_0x343356)['then'](function(_0x1371e3){return _0x1371e3;});}return null;};}function removeEntity(_0x497bb1,_0x11b8ef){return function(_0x5f5a33){if(_0x5f5a33){return _0x5f5a33['destroy']()[_0x7526('0x23')](function(){_0x497bb1['status'](0xcc)[_0x7526('0x24')]();});}};}function handleEntityNotFound(_0x443973,_0x9ec47d){return function(_0xbd0368){if(!_0xbd0368){_0x443973[_0x7526('0x18')](0x194);}return _0xbd0368;};}function handleError(_0x18436c,_0x42bbbf){_0x42bbbf=_0x42bbbf||0x1f4;return function(_0x3e44b0){logger[_0x7526('0x25')](_0x3e44b0[_0x7526('0x26')]);if(_0x3e44b0['name']){delete _0x3e44b0[_0x7526('0x27')];}_0x18436c['status'](_0x42bbbf)[_0x7526('0x28')](_0x3e44b0);};}exports['index']=function(_0x27b1b2,_0x172a66){var _0x2d77e8={},_0x10eddf={},_0x37ebcd={'count':0x0,'rows':[]};var _0x3f0903=_['map'](db[_0x7526('0x29')][_0x7526('0x2a')],function(_0x20ffb9){return{'name':_0x20ffb9[_0x7526('0x2b')],'type':_0x20ffb9['type'][_0x7526('0x2c')]};});_0x10eddf[_0x7526('0x2d')]=_[_0x7526('0x2e')](_0x3f0903,_0x7526('0x27'));_0x10eddf[_0x7526('0x2f')]=_[_0x7526('0x30')](_0x27b1b2['query']);_0x10eddf[_0x7526('0x31')]=_[_0x7526('0x32')](_0x10eddf[_0x7526('0x2d')],_0x10eddf['query']);_0x2d77e8['attributes']=_['intersection'](_0x10eddf[_0x7526('0x2d')],qs[_0x7526('0x33')](_0x27b1b2[_0x7526('0x2f')][_0x7526('0x33')]));_0x2d77e8[_0x7526('0x34')]=_0x2d77e8[_0x7526('0x34')][_0x7526('0x35')]?_0x2d77e8['attributes']:_0x10eddf[_0x7526('0x2d')];if(!_0x27b1b2[_0x7526('0x2f')]['hasOwnProperty'](_0x7526('0x36'))){_0x2d77e8['limit']=qs['limit'](_0x27b1b2[_0x7526('0x2f')][_0x7526('0x1d')]);_0x2d77e8[_0x7526('0x1c')]=qs[_0x7526('0x1c')](_0x27b1b2[_0x7526('0x2f')]['offset']);}_0x2d77e8['order']=qs[_0x7526('0x37')](_0x27b1b2[_0x7526('0x2f')][_0x7526('0x37')]);_0x2d77e8[_0x7526('0x38')]=qs['filters'](_[_0x7526('0x39')](_0x27b1b2[_0x7526('0x2f')],_0x10eddf[_0x7526('0x31')]),_0x3f0903);if(_0x27b1b2['query']['filter']){_0x2d77e8[_0x7526('0x38')]=_[_0x7526('0x3a')](_0x2d77e8[_0x7526('0x38')],{'$or':_[_0x7526('0x2e')](_0x3f0903,function(_0x528241){if(_0x528241[_0x7526('0x3b')]!==_0x7526('0x3c')){var _0x1edfee={};_0x1edfee[_0x528241[_0x7526('0x27')]]={'$like':'%'+_0x27b1b2[_0x7526('0x2f')][_0x7526('0x3d')]+'%'};return _0x1edfee;}})});}_0x2d77e8=_[_0x7526('0x3a')]({},_0x2d77e8,_0x27b1b2[_0x7526('0x3e')]);var _0x3f2895={'where':_0x2d77e8['where']};return db[_0x7526('0x29')][_0x7526('0x1b')](_0x3f2895)[_0x7526('0x23')](function(_0x1ad5a0){_0x37ebcd[_0x7526('0x1b')]=_0x1ad5a0;if(_0x27b1b2[_0x7526('0x2f')][_0x7526('0x3f')]){_0x2d77e8[_0x7526('0x40')]=[{'all':!![]}];}return db[_0x7526('0x29')][_0x7526('0x41')](_0x2d77e8);})[_0x7526('0x23')](function(_0x25641a){_0x37ebcd[_0x7526('0x42')]=_0x25641a;return _0x37ebcd;})['then'](respondWithFilteredResult(_0x172a66,_0x2d77e8))[_0x7526('0x43')](handleError(_0x172a66,null));};exports['show']=function(_0x4183ff,_0x366514){var _0x2526c3={'raw':![],'where':{'id':_0x4183ff['params']['id']}},_0x31e8d4={};_0x31e8d4[_0x7526('0x2d')]=_[_0x7526('0x30')](db[_0x7526('0x29')][_0x7526('0x2a')]);_0x31e8d4[_0x7526('0x2f')]=_[_0x7526('0x30')](_0x4183ff[_0x7526('0x2f')]);_0x31e8d4[_0x7526('0x31')]=_['intersection'](_0x31e8d4[_0x7526('0x2d')],_0x31e8d4[_0x7526('0x2f')]);_0x2526c3[_0x7526('0x34')]=_[_0x7526('0x32')](_0x31e8d4['model'],qs[_0x7526('0x33')](_0x4183ff[_0x7526('0x2f')][_0x7526('0x33')]));_0x2526c3[_0x7526('0x34')]=_0x2526c3[_0x7526('0x34')]['length']?_0x2526c3[_0x7526('0x34')]:_0x31e8d4['model'];if(_0x4183ff[_0x7526('0x2f')][_0x7526('0x3f')]){_0x2526c3[_0x7526('0x40')]=[{'all':!![]}];}_0x2526c3=_[_0x7526('0x3a')]({},_0x2526c3,_0x4183ff[_0x7526('0x3e')]);return db['IntegrationReport'][_0x7526('0x44')](_0x2526c3)[_0x7526('0x23')](handleEntityNotFound(_0x366514,null))[_0x7526('0x23')](respondWithResult(_0x366514,null))['catch'](handleError(_0x366514,null));};exports[_0x7526('0x45')]=function(_0x2b73f0,_0x3c184b){return db[_0x7526('0x29')][_0x7526('0x45')](_0x2b73f0[_0x7526('0x46')],{})[_0x7526('0x23')](respondWithResult(_0x3c184b,0xc9))[_0x7526('0x43')](handleError(_0x3c184b,null));};exports[_0x7526('0x22')]=function(_0x441c59,_0x1032a5){if(_0x441c59[_0x7526('0x46')]['id']){delete _0x441c59[_0x7526('0x46')]['id'];}return db[_0x7526('0x29')]['find']({'where':{'id':_0x441c59[_0x7526('0x47')]['id']}})[_0x7526('0x23')](handleEntityNotFound(_0x1032a5,null))[_0x7526('0x23')](saveUpdates(_0x441c59['body'],null))[_0x7526('0x23')](respondWithResult(_0x1032a5,null))['catch'](handleError(_0x1032a5,null));};exports[_0x7526('0x48')]=function(_0x42e878,_0x3f3172){return db['IntegrationReport'][_0x7526('0x44')]({'where':{'id':_0x42e878['params']['id']}})[_0x7526('0x23')](handleEntityNotFound(_0x3f3172,null))['then'](removeEntity(_0x3f3172,null))[_0x7526('0x43')](handleError(_0x3f3172,null));};exports[_0x7526('0x49')]=function(_0x300124,_0xa1bc89){return db['IntegrationReport']['describe']()[_0x7526('0x23')](respondWithResult(_0xa1bc89,null))[_0x7526('0x43')](handleError(_0xa1bc89,null));};
\ No newline at end of file
+var _0xf3ae=['status','end','json','undefined','limit','count','offset','Content-Range','reject','save','then','error','name','send','index','map','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','includeAll','findAll','rows','catch','show','params','IntegrationReport','rawAttributes','include','options','find','create','body','update','destroy','describe','eml-format','rimraf','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf3ae,0xc7));var _0xef3a=function(_0x569174,_0x4b8716){_0x569174=_0x569174-0x0;var _0x48ab32=_0xf3ae[_0x569174];return _0x48ab32;};'use strict';var emlformat=require(_0xef3a('0x0'));var rimraf=require(_0xef3a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xef3a('0x2'));var Mustache=require(_0xef3a('0x3'));var util=require(_0xef3a('0x4'));var path=require('path');var sox=require(_0xef3a('0x5'));var csv=require(_0xef3a('0x6'));var ejs=require(_0xef3a('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xef3a('0x8'));var squel=require('squel');var crypto=require(_0xef3a('0x9'));var jsforce=require(_0xef3a('0xa'));var deskjs=require(_0xef3a('0xb'));var toCsv=require('to-csv');var querystring=require(_0xef3a('0xc'));var Papa=require('papaparse');var Redis=require(_0xef3a('0xd'));var authService=require(_0xef3a('0xe'));var qs=require(_0xef3a('0xf'));var as=require(_0xef3a('0x10'));var hardwareService=require(_0xef3a('0x11'));var logger=require(_0xef3a('0x12'))('api');var utils=require(_0xef3a('0x13'));var config=require(_0xef3a('0x14'));var licenseUtil=require(_0xef3a('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4724de,_0x1f4c12){_0x1f4c12=_0x1f4c12||0xcc;return function(_0x4a0762){if(_0x4a0762){return _0x4724de[_0xef3a('0x16')](_0x1f4c12);}return _0x4724de[_0xef3a('0x17')](_0x1f4c12)[_0xef3a('0x18')]();};}function respondWithResult(_0x112429,_0x4a733f){_0x4a733f=_0x4a733f||0xc8;return function(_0x2f65f9){if(_0x2f65f9){return _0x112429[_0xef3a('0x17')](_0x4a733f)[_0xef3a('0x19')](_0x2f65f9);}};}function respondWithFilteredResult(_0x10ea6c,_0x4eb154){return function(_0x3bffd2){if(_0x3bffd2){var _0x50800a=typeof _0x4eb154['offset']===_0xef3a('0x1a')&&typeof _0x4eb154[_0xef3a('0x1b')]==='undefined';var _0x1b27ce=_0x3bffd2[_0xef3a('0x1c')];var _0x46cde0=_0x50800a?0x0:_0x4eb154[_0xef3a('0x1d')];var _0x21bda4=_0x50800a?_0x3bffd2[_0xef3a('0x1c')]:_0x4eb154[_0xef3a('0x1d')]+_0x4eb154[_0xef3a('0x1b')];var _0x1f5aaf;if(_0x21bda4>=_0x1b27ce){_0x21bda4=_0x1b27ce;_0x1f5aaf=0xc8;}else{_0x1f5aaf=0xce;}_0x10ea6c['status'](_0x1f5aaf);return _0x10ea6c['set'](_0xef3a('0x1e'),_0x46cde0+'-'+_0x21bda4+'/'+_0x1b27ce)[_0xef3a('0x19')](_0x3bffd2);}return null;};}function patchUpdates(_0x245736){return function(_0x2d7440){try{jsonpatch['apply'](_0x2d7440,_0x245736,!![]);}catch(_0x3a5560){return BPromise[_0xef3a('0x1f')](_0x3a5560);}return _0x2d7440[_0xef3a('0x20')]();};}function saveUpdates(_0x5fd583,_0x12dbed){return function(_0xcdaf56){if(_0xcdaf56){return _0xcdaf56['update'](_0x5fd583)[_0xef3a('0x21')](function(_0xbbbd72){return _0xbbbd72;});}return null;};}function removeEntity(_0x740950,_0x474a99){return function(_0x286ece){if(_0x286ece){return _0x286ece['destroy']()[_0xef3a('0x21')](function(){_0x740950['status'](0xcc)[_0xef3a('0x18')]();});}};}function handleEntityNotFound(_0x56d040,_0x168f4c){return function(_0x3e99ba){if(!_0x3e99ba){_0x56d040[_0xef3a('0x16')](0x194);}return _0x3e99ba;};}function handleError(_0x2029f0,_0x197502){_0x197502=_0x197502||0x1f4;return function(_0x3dacd9){logger[_0xef3a('0x22')](_0x3dacd9['stack']);if(_0x3dacd9[_0xef3a('0x23')]){delete _0x3dacd9[_0xef3a('0x23')];}_0x2029f0[_0xef3a('0x17')](_0x197502)[_0xef3a('0x24')](_0x3dacd9);};}exports[_0xef3a('0x25')]=function(_0x59c4db,_0x594134){var _0x317f56={},_0x7263b5={},_0x7835d={'count':0x0,'rows':[]};var _0x30c005=_[_0xef3a('0x26')](db['IntegrationReport']['rawAttributes'],function(_0x3112c9){return{'name':_0x3112c9['fieldName'],'type':_0x3112c9['type'][_0xef3a('0x27')]};});_0x7263b5[_0xef3a('0x28')]=_[_0xef3a('0x26')](_0x30c005,_0xef3a('0x23'));_0x7263b5['query']=_[_0xef3a('0x29')](_0x59c4db[_0xef3a('0x2a')]);_0x7263b5['filters']=_[_0xef3a('0x2b')](_0x7263b5['model'],_0x7263b5[_0xef3a('0x2a')]);_0x317f56[_0xef3a('0x2c')]=_['intersection'](_0x7263b5[_0xef3a('0x28')],qs[_0xef3a('0x2d')](_0x59c4db['query']['fields']));_0x317f56[_0xef3a('0x2c')]=_0x317f56[_0xef3a('0x2c')][_0xef3a('0x2e')]?_0x317f56[_0xef3a('0x2c')]:_0x7263b5[_0xef3a('0x28')];if(!_0x59c4db[_0xef3a('0x2a')][_0xef3a('0x2f')](_0xef3a('0x30'))){_0x317f56[_0xef3a('0x1b')]=qs['limit'](_0x59c4db[_0xef3a('0x2a')]['limit']);_0x317f56[_0xef3a('0x1d')]=qs[_0xef3a('0x1d')](_0x59c4db[_0xef3a('0x2a')][_0xef3a('0x1d')]);}_0x317f56[_0xef3a('0x31')]=qs['sort'](_0x59c4db['query'][_0xef3a('0x32')]);_0x317f56['where']=qs[_0xef3a('0x33')](_[_0xef3a('0x34')](_0x59c4db['query'],_0x7263b5[_0xef3a('0x33')]),_0x30c005);if(_0x59c4db[_0xef3a('0x2a')][_0xef3a('0x35')]){_0x317f56[_0xef3a('0x36')]=_[_0xef3a('0x37')](_0x317f56['where'],{'$or':_[_0xef3a('0x26')](_0x30c005,function(_0x5819d2){if(_0x5819d2[_0xef3a('0x38')]!==_0xef3a('0x39')){var _0x3feaa0={};_0x3feaa0[_0x5819d2[_0xef3a('0x23')]]={'$like':'%'+_0x59c4db[_0xef3a('0x2a')][_0xef3a('0x35')]+'%'};return _0x3feaa0;}})});}_0x317f56=_[_0xef3a('0x37')]({},_0x317f56,_0x59c4db['options']);var _0x55d5e5={'where':_0x317f56['where']};return db['IntegrationReport'][_0xef3a('0x1c')](_0x55d5e5)[_0xef3a('0x21')](function(_0x263352){_0x7835d[_0xef3a('0x1c')]=_0x263352;if(_0x59c4db['query'][_0xef3a('0x3a')]){_0x317f56['include']=[{'all':!![]}];}return db['IntegrationReport'][_0xef3a('0x3b')](_0x317f56);})[_0xef3a('0x21')](function(_0x1773d){_0x7835d[_0xef3a('0x3c')]=_0x1773d;return _0x7835d;})['then'](respondWithFilteredResult(_0x594134,_0x317f56))[_0xef3a('0x3d')](handleError(_0x594134,null));};exports[_0xef3a('0x3e')]=function(_0x130364,_0x4b6b79){var _0x198eea={'raw':![],'where':{'id':_0x130364[_0xef3a('0x3f')]['id']}},_0x1ed397={};_0x1ed397['model']=_[_0xef3a('0x29')](db[_0xef3a('0x40')][_0xef3a('0x41')]);_0x1ed397[_0xef3a('0x2a')]=_[_0xef3a('0x29')](_0x130364[_0xef3a('0x2a')]);_0x1ed397[_0xef3a('0x33')]=_[_0xef3a('0x2b')](_0x1ed397[_0xef3a('0x28')],_0x1ed397[_0xef3a('0x2a')]);_0x198eea[_0xef3a('0x2c')]=_[_0xef3a('0x2b')](_0x1ed397[_0xef3a('0x28')],qs[_0xef3a('0x2d')](_0x130364[_0xef3a('0x2a')][_0xef3a('0x2d')]));_0x198eea[_0xef3a('0x2c')]=_0x198eea['attributes'][_0xef3a('0x2e')]?_0x198eea[_0xef3a('0x2c')]:_0x1ed397[_0xef3a('0x28')];if(_0x130364['query'][_0xef3a('0x3a')]){_0x198eea[_0xef3a('0x42')]=[{'all':!![]}];}_0x198eea=_['merge']({},_0x198eea,_0x130364[_0xef3a('0x43')]);return db[_0xef3a('0x40')][_0xef3a('0x44')](_0x198eea)[_0xef3a('0x21')](handleEntityNotFound(_0x4b6b79,null))['then'](respondWithResult(_0x4b6b79,null))[_0xef3a('0x3d')](handleError(_0x4b6b79,null));};exports[_0xef3a('0x45')]=function(_0x5a76a5,_0x4e4209){return db[_0xef3a('0x40')][_0xef3a('0x45')](_0x5a76a5[_0xef3a('0x46')],{})[_0xef3a('0x21')](respondWithResult(_0x4e4209,0xc9))[_0xef3a('0x3d')](handleError(_0x4e4209,null));};exports[_0xef3a('0x47')]=function(_0xa8e069,_0x36b012){if(_0xa8e069['body']['id']){delete _0xa8e069[_0xef3a('0x46')]['id'];}return db[_0xef3a('0x40')][_0xef3a('0x44')]({'where':{'id':_0xa8e069[_0xef3a('0x3f')]['id']}})[_0xef3a('0x21')](handleEntityNotFound(_0x36b012,null))[_0xef3a('0x21')](saveUpdates(_0xa8e069[_0xef3a('0x46')],null))[_0xef3a('0x21')](respondWithResult(_0x36b012,null))['catch'](handleError(_0x36b012,null));};exports[_0xef3a('0x48')]=function(_0xd7f223,_0x3f6921){return db[_0xef3a('0x40')][_0xef3a('0x44')]({'where':{'id':_0xd7f223['params']['id']}})[_0xef3a('0x21')](handleEntityNotFound(_0x3f6921,null))['then'](removeEntity(_0x3f6921,null))[_0xef3a('0x3d')](handleError(_0x3f6921,null));};exports[_0xef3a('0x49')]=function(_0x5ee2f8,_0x23b881){return db[_0xef3a('0x40')][_0xef3a('0x49')]()[_0xef3a('0x21')](respondWithResult(_0x23b881,null))['catch'](handleError(_0x23b881,null));};
\ No newline at end of file