Built motion from commit a61a4a20.|2.5.46
[motion2.git] / server / api / faxTransferReport / faxTransferReport.controller.js
index b6c7297..da63a5d 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xadb5=['map','fieldName','type','key','model','query','keys','filters','intersection','attributes','nolimit','order','sort','where','VIRTUAL','merge','options','FaxTransferReport','findAll','rows','catch','show','rawAttributes','fields','includeAll','include','find','create','body','update','describe','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','limit','set','json','reject','save','then','destroy','stack','name','send','index'];(function(_0x422905,_0x3bce3a){var _0x33dc6c=function(_0x4852c9){while(--_0x4852c9){_0x422905['push'](_0x422905['shift']());}};_0x33dc6c(++_0x3bce3a);}(_0xadb5,0xad));var _0x5adb=function(_0x5ed12b,_0x7d1c76){_0x5ed12b=_0x5ed12b-0x0;var _0x2fc0c4=_0xadb5[_0x5ed12b];return _0x2fc0c4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x5adb('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5adb('0x1'));var jsonpatch=require(_0x5adb('0x2'));var rp=require(_0x5adb('0x3'));var moment=require('moment');var BPromise=require(_0x5adb('0x4'));var Mustache=require(_0x5adb('0x5'));var util=require(_0x5adb('0x6'));var path=require('path');var sox=require(_0x5adb('0x7'));var csv=require(_0x5adb('0x8'));var ejs=require(_0x5adb('0x9'));var fs=require('fs');var _=require(_0x5adb('0xa'));var squel=require(_0x5adb('0xb'));var crypto=require(_0x5adb('0xc'));var jsforce=require(_0x5adb('0xd'));var deskjs=require(_0x5adb('0xe'));var toCsv=require(_0x5adb('0x8'));var querystring=require(_0x5adb('0xf'));var Papa=require(_0x5adb('0x10'));var Redis=require(_0x5adb('0x11'));var authService=require(_0x5adb('0x12'));var qs=require(_0x5adb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5adb('0x14'))(_0x5adb('0x15'));var utils=require(_0x5adb('0x16'));var config=require('../../config/environment');var db=require(_0x5adb('0x17'))['db'];function respondWithStatusCode(_0x56012f,_0x2a0b70){_0x2a0b70=_0x2a0b70||0xcc;return function(_0x5433bf){if(_0x5433bf){return _0x56012f[_0x5adb('0x18')](_0x2a0b70);}return _0x56012f[_0x5adb('0x19')](_0x2a0b70)[_0x5adb('0x1a')]();};}function respondWithResult(_0x5c929a,_0x2a545b){_0x2a545b=_0x2a545b||0xc8;return function(_0x34af2c){if(_0x34af2c){return _0x5c929a[_0x5adb('0x19')](_0x2a545b)['json'](_0x34af2c);}};}function respondWithFilteredResult(_0x2312de,_0x518823){return function(_0x367d82){if(_0x367d82){var _0x42a482=_0x367d82[_0x5adb('0x1b')],_0x30614e=_0x518823[_0x5adb('0x1c')],_0x304784=_0x518823[_0x5adb('0x1c')]+_0x518823[_0x5adb('0x1d')],_0x1c0f97;if(_0x304784>=_0x42a482){_0x304784=_0x42a482;_0x1c0f97=0xc8;}else{_0x1c0f97=0xce;}_0x2312de['status'](_0x1c0f97);return _0x2312de[_0x5adb('0x1e')]('Content-Range',_0x30614e+'-'+_0x304784+'/'+_0x42a482)[_0x5adb('0x1f')](_0x367d82);}return null;};}function patchUpdates(_0x558f76){return function(_0x3ef465){try{jsonpatch['apply'](_0x3ef465,_0x558f76,!![]);}catch(_0x5e218c){return BPromise[_0x5adb('0x20')](_0x5e218c);}return _0x3ef465[_0x5adb('0x21')]();};}function saveUpdates(_0x438671,_0x1fd4a7){return function(_0x99bc6c){if(_0x99bc6c){return _0x99bc6c['update'](_0x438671)[_0x5adb('0x22')](function(_0x5c296e){return _0x5c296e;});}return null;};}function removeEntity(_0x4e9f16,_0x3754cc){return function(_0x379b33){if(_0x379b33){return _0x379b33[_0x5adb('0x23')]()[_0x5adb('0x22')](function(){_0x4e9f16[_0x5adb('0x19')](0xcc)[_0x5adb('0x1a')]();});}};}function handleEntityNotFound(_0xfd9bb9,_0x4ca150){return function(_0x4b1957){if(!_0x4b1957){_0xfd9bb9[_0x5adb('0x18')](0x194);}return _0x4b1957;};}function handleError(_0x3220cd,_0x3839fb){_0x3839fb=_0x3839fb||0x1f4;return function(_0xeb556c){logger['error'](_0xeb556c[_0x5adb('0x24')]);if(_0xeb556c[_0x5adb('0x25')]){delete _0xeb556c['name'];}_0x3220cd[_0x5adb('0x19')](_0x3839fb)[_0x5adb('0x26')](_0xeb556c);};}exports[_0x5adb('0x27')]=function(_0x55b40a,_0x13ad1d){var _0xbe21b1={},_0x3a4fca={},_0x2c64a3={'count':0x0,'rows':[]};var _0x36459b=_[_0x5adb('0x28')](db['FaxTransferReport']['rawAttributes'],function(_0x5d457e){return{'name':_0x5d457e[_0x5adb('0x29')],'type':_0x5d457e[_0x5adb('0x2a')][_0x5adb('0x2b')]};});_0x3a4fca[_0x5adb('0x2c')]=_[_0x5adb('0x28')](_0x36459b,'name');_0x3a4fca[_0x5adb('0x2d')]=_[_0x5adb('0x2e')](_0x55b40a[_0x5adb('0x2d')]);_0x3a4fca[_0x5adb('0x2f')]=_[_0x5adb('0x30')](_0x3a4fca[_0x5adb('0x2c')],_0x3a4fca[_0x5adb('0x2d')]);_0xbe21b1[_0x5adb('0x31')]=_[_0x5adb('0x30')](_0x3a4fca[_0x5adb('0x2c')],qs['fields'](_0x55b40a[_0x5adb('0x2d')]['fields']));_0xbe21b1[_0x5adb('0x31')]=_0xbe21b1[_0x5adb('0x31')]['length']?_0xbe21b1[_0x5adb('0x31')]:_0x3a4fca[_0x5adb('0x2c')];if(!_0x55b40a[_0x5adb('0x2d')]['hasOwnProperty'](_0x5adb('0x32'))){_0xbe21b1[_0x5adb('0x1d')]=qs['limit'](_0x55b40a['query'][_0x5adb('0x1d')]);_0xbe21b1['offset']=qs[_0x5adb('0x1c')](_0x55b40a[_0x5adb('0x2d')][_0x5adb('0x1c')]);}_0xbe21b1[_0x5adb('0x33')]=qs[_0x5adb('0x34')](_0x55b40a['query'][_0x5adb('0x34')]);_0xbe21b1[_0x5adb('0x35')]=qs[_0x5adb('0x2f')](_['pick'](_0x55b40a['query'],_0x3a4fca[_0x5adb('0x2f')]),_0x36459b);if(_0x55b40a[_0x5adb('0x2d')]['filter']){_0xbe21b1[_0x5adb('0x35')]=_['merge'](_0xbe21b1[_0x5adb('0x35')],{'$or':_['map'](_0x36459b,function(_0x11cb37){if(_0x11cb37['type']!==_0x5adb('0x36')){var _0x23a1db={};_0x23a1db[_0x11cb37['name']]={'$like':'%'+_0x55b40a[_0x5adb('0x2d')]['filter']+'%'};return _0x23a1db;}})});}_0xbe21b1=_[_0x5adb('0x37')]({},_0xbe21b1,_0x55b40a[_0x5adb('0x38')]);var _0xd5660c={'where':_0xbe21b1['where']};return db[_0x5adb('0x39')][_0x5adb('0x1b')](_0xd5660c)[_0x5adb('0x22')](function(_0x132803){_0x2c64a3[_0x5adb('0x1b')]=_0x132803;if(_0x55b40a['query']['includeAll']){_0xbe21b1['include']=[{'all':!![]}];}return db['FaxTransferReport'][_0x5adb('0x3a')](_0xbe21b1);})[_0x5adb('0x22')](function(_0x3a104a){_0x2c64a3[_0x5adb('0x3b')]=_0x3a104a;return _0x2c64a3;})[_0x5adb('0x22')](respondWithFilteredResult(_0x13ad1d,_0xbe21b1))[_0x5adb('0x3c')](handleError(_0x13ad1d,null));};exports[_0x5adb('0x3d')]=function(_0x3bf282,_0x478a70){var _0x53f2c6={'raw':!![],'where':{'id':_0x3bf282['params']['id']}},_0x27dbb7={};_0x27dbb7[_0x5adb('0x2c')]=_[_0x5adb('0x2e')](db[_0x5adb('0x39')][_0x5adb('0x3e')]);_0x27dbb7[_0x5adb('0x2d')]=_['keys'](_0x3bf282[_0x5adb('0x2d')]);_0x27dbb7[_0x5adb('0x2f')]=_['intersection'](_0x27dbb7[_0x5adb('0x2c')],_0x27dbb7[_0x5adb('0x2d')]);_0x53f2c6['attributes']=_[_0x5adb('0x30')](_0x27dbb7[_0x5adb('0x2c')],qs[_0x5adb('0x3f')](_0x3bf282[_0x5adb('0x2d')][_0x5adb('0x3f')]));_0x53f2c6[_0x5adb('0x31')]=_0x53f2c6[_0x5adb('0x31')]['length']?_0x53f2c6['attributes']:_0x27dbb7[_0x5adb('0x2c')];if(_0x3bf282[_0x5adb('0x2d')][_0x5adb('0x40')]){_0x53f2c6[_0x5adb('0x41')]=[{'all':!![]}];}_0x53f2c6=_['merge']({},_0x53f2c6,_0x3bf282['options']);return db[_0x5adb('0x39')][_0x5adb('0x42')](_0x53f2c6)[_0x5adb('0x22')](handleEntityNotFound(_0x478a70,null))[_0x5adb('0x22')](respondWithResult(_0x478a70,null))[_0x5adb('0x3c')](handleError(_0x478a70,null));};exports['create']=function(_0x182cbc,_0x437f52){return db['FaxTransferReport'][_0x5adb('0x43')](_0x182cbc[_0x5adb('0x44')],{})[_0x5adb('0x22')](respondWithResult(_0x437f52,0xc9))[_0x5adb('0x3c')](handleError(_0x437f52,null));};exports[_0x5adb('0x45')]=function(_0x3a5409,_0x39840e){if(_0x3a5409[_0x5adb('0x44')]['id']){delete _0x3a5409['body']['id'];}return db[_0x5adb('0x39')]['find']({'where':{'id':_0x3a5409['params']['id']}})['then'](handleEntityNotFound(_0x39840e,null))[_0x5adb('0x22')](saveUpdates(_0x3a5409[_0x5adb('0x44')],null))[_0x5adb('0x22')](respondWithResult(_0x39840e,null))['catch'](handleError(_0x39840e,null));};exports[_0x5adb('0x23')]=function(_0x5cbab5,_0x177a81){return db[_0x5adb('0x39')][_0x5adb('0x42')]({'where':{'id':_0x5cbab5['params']['id']}})[_0x5adb('0x22')](handleEntityNotFound(_0x177a81,null))['then'](removeEntity(_0x177a81,null))[_0x5adb('0x3c')](handleError(_0x177a81,null));};exports[_0x5adb('0x46')]=function(_0x55c535,_0x2402a3){return db[_0x5adb('0x39')][_0x5adb('0x46')]()[_0x5adb('0x22')](respondWithResult(_0x2402a3,null))[_0x5adb('0x3c')](handleError(_0x2402a3,null));};
\ No newline at end of file
+var _0x08f8=['Content-Range','reject','save','update','destroy','stack','map','FaxTransferReport','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','name','filter','options','includeAll','include','then','rows','catch','params','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','count','limit','set'];(function(_0x1c098c,_0x52d94b){var _0x3bfa4c=function(_0x33930f){while(--_0x33930f){_0x1c098c['push'](_0x1c098c['shift']());}};_0x3bfa4c(++_0x52d94b);}(_0x08f8,0x71));var _0x808f=function(_0x368fce,_0x352f46){_0x368fce=_0x368fce-0x0;var _0x118c1b=_0x08f8[_0x368fce];return _0x118c1b;};'use strict';var emlformat=require(_0x808f('0x0'));var rimraf=require(_0x808f('0x1'));var zipdir=require(_0x808f('0x2'));var jsonpatch=require(_0x808f('0x3'));var rp=require('request-promise');var moment=require(_0x808f('0x4'));var BPromise=require(_0x808f('0x5'));var Mustache=require(_0x808f('0x6'));var util=require(_0x808f('0x7'));var path=require('path');var sox=require(_0x808f('0x8'));var csv=require(_0x808f('0x9'));var ejs=require(_0x808f('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x808f('0xb'));var squel=require('squel');var crypto=require(_0x808f('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x808f('0xd'));var toCsv=require(_0x808f('0x9'));var querystring=require(_0x808f('0xe'));var Papa=require(_0x808f('0xf'));var Redis=require('ioredis');var authService=require(_0x808f('0x10'));var qs=require(_0x808f('0x11'));var as=require(_0x808f('0x12'));var hardwareService=require(_0x808f('0x13'));var logger=require('../../config/logger')(_0x808f('0x14'));var utils=require(_0x808f('0x15'));var config=require(_0x808f('0x16'));var licenseUtil=require(_0x808f('0x17'));var db=require(_0x808f('0x18'))['db'];function respondWithStatusCode(_0x1692e7,_0x4d5d70){_0x4d5d70=_0x4d5d70||0xcc;return function(_0x24293b){if(_0x24293b){return _0x1692e7['sendStatus'](_0x4d5d70);}return _0x1692e7['status'](_0x4d5d70)[_0x808f('0x19')]();};}function respondWithResult(_0x3c1b1f,_0x4ff92f){_0x4ff92f=_0x4ff92f||0xc8;return function(_0x58b5bf){if(_0x58b5bf){return _0x3c1b1f[_0x808f('0x1a')](_0x4ff92f)[_0x808f('0x1b')](_0x58b5bf);}};}function respondWithFilteredResult(_0x592df4,_0x1dd1eb){return function(_0x5f15ed){if(_0x5f15ed){var _0x49fc69=typeof _0x1dd1eb[_0x808f('0x1c')]===_0x808f('0x1d')&&typeof _0x1dd1eb['limit']===_0x808f('0x1d');var _0xa1c3cf=_0x5f15ed[_0x808f('0x1e')];var _0x20a839=_0x49fc69?0x0:_0x1dd1eb[_0x808f('0x1c')];var _0x214ce0=_0x49fc69?_0x5f15ed['count']:_0x1dd1eb[_0x808f('0x1c')]+_0x1dd1eb[_0x808f('0x1f')];var _0x2cc8ea;if(_0x214ce0>=_0xa1c3cf){_0x214ce0=_0xa1c3cf;_0x2cc8ea=0xc8;}else{_0x2cc8ea=0xce;}_0x592df4[_0x808f('0x1a')](_0x2cc8ea);return _0x592df4[_0x808f('0x20')](_0x808f('0x21'),_0x20a839+'-'+_0x214ce0+'/'+_0xa1c3cf)['json'](_0x5f15ed);}return null;};}function patchUpdates(_0xf44cad){return function(_0x489bce){try{jsonpatch['apply'](_0x489bce,_0xf44cad,!![]);}catch(_0x54b314){return BPromise[_0x808f('0x22')](_0x54b314);}return _0x489bce[_0x808f('0x23')]();};}function saveUpdates(_0x5abf50,_0x31234b){return function(_0x49e57c){if(_0x49e57c){return _0x49e57c[_0x808f('0x24')](_0x5abf50)['then'](function(_0x474146){return _0x474146;});}return null;};}function removeEntity(_0x456a68,_0x245316){return function(_0x2a62ef){if(_0x2a62ef){return _0x2a62ef[_0x808f('0x25')]()['then'](function(){_0x456a68['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ecd72,_0x21abd9){return function(_0x59d677){if(!_0x59d677){_0x1ecd72['sendStatus'](0x194);}return _0x59d677;};}function handleError(_0x20c7b6,_0x4ea39d){_0x4ea39d=_0x4ea39d||0x1f4;return function(_0x23d8d8){logger['error'](_0x23d8d8[_0x808f('0x26')]);if(_0x23d8d8['name']){delete _0x23d8d8['name'];}_0x20c7b6['status'](_0x4ea39d)['send'](_0x23d8d8);};}exports['index']=function(_0x6d878,_0x2ad9d8){var _0x4612cc={},_0x32f69e={},_0x1438bb={'count':0x0,'rows':[]};var _0x3c4559=_[_0x808f('0x27')](db[_0x808f('0x28')][_0x808f('0x29')],function(_0x20e33d){return{'name':_0x20e33d[_0x808f('0x2a')],'type':_0x20e33d[_0x808f('0x2b')][_0x808f('0x2c')]};});_0x32f69e[_0x808f('0x2d')]=_['map'](_0x3c4559,'name');_0x32f69e['query']=_[_0x808f('0x2e')](_0x6d878[_0x808f('0x2f')]);_0x32f69e[_0x808f('0x30')]=_['intersection'](_0x32f69e[_0x808f('0x2d')],_0x32f69e[_0x808f('0x2f')]);_0x4612cc[_0x808f('0x31')]=_[_0x808f('0x32')](_0x32f69e[_0x808f('0x2d')],qs[_0x808f('0x33')](_0x6d878[_0x808f('0x2f')]['fields']));_0x4612cc[_0x808f('0x31')]=_0x4612cc[_0x808f('0x31')][_0x808f('0x34')]?_0x4612cc[_0x808f('0x31')]:_0x32f69e['model'];if(!_0x6d878[_0x808f('0x2f')][_0x808f('0x35')](_0x808f('0x36'))){_0x4612cc[_0x808f('0x1f')]=qs[_0x808f('0x1f')](_0x6d878[_0x808f('0x2f')][_0x808f('0x1f')]);_0x4612cc[_0x808f('0x1c')]=qs[_0x808f('0x1c')](_0x6d878[_0x808f('0x2f')][_0x808f('0x1c')]);}_0x4612cc[_0x808f('0x37')]=qs[_0x808f('0x38')](_0x6d878['query'][_0x808f('0x38')]);_0x4612cc[_0x808f('0x39')]=qs[_0x808f('0x30')](_['pick'](_0x6d878[_0x808f('0x2f')],_0x32f69e[_0x808f('0x30')]),_0x3c4559);if(_0x6d878['query']['filter']){_0x4612cc[_0x808f('0x39')]=_[_0x808f('0x3a')](_0x4612cc[_0x808f('0x39')],{'$or':_['map'](_0x3c4559,function(_0x4c799d){if(_0x4c799d['type']!==_0x808f('0x3b')){var _0x4047dd={};_0x4047dd[_0x4c799d[_0x808f('0x3c')]]={'$like':'%'+_0x6d878[_0x808f('0x2f')][_0x808f('0x3d')]+'%'};return _0x4047dd;}})});}_0x4612cc=_[_0x808f('0x3a')]({},_0x4612cc,_0x6d878[_0x808f('0x3e')]);var _0x3bf38f={'where':_0x4612cc[_0x808f('0x39')]};return db[_0x808f('0x28')][_0x808f('0x1e')](_0x3bf38f)['then'](function(_0x2609ef){_0x1438bb['count']=_0x2609ef;if(_0x6d878['query'][_0x808f('0x3f')]){_0x4612cc[_0x808f('0x40')]=[{'all':!![]}];}return db[_0x808f('0x28')]['findAll'](_0x4612cc);})[_0x808f('0x41')](function(_0x46cf6a){_0x1438bb[_0x808f('0x42')]=_0x46cf6a;return _0x1438bb;})['then'](respondWithFilteredResult(_0x2ad9d8,_0x4612cc))[_0x808f('0x43')](handleError(_0x2ad9d8,null));};exports['show']=function(_0x53ce31,_0x51a352){var _0x1eea4b={'raw':!![],'where':{'id':_0x53ce31[_0x808f('0x44')]['id']}},_0xc5e719={};_0xc5e719[_0x808f('0x2d')]=_[_0x808f('0x2e')](db[_0x808f('0x28')]['rawAttributes']);_0xc5e719[_0x808f('0x2f')]=_[_0x808f('0x2e')](_0x53ce31[_0x808f('0x2f')]);_0xc5e719['filters']=_['intersection'](_0xc5e719['model'],_0xc5e719[_0x808f('0x2f')]);_0x1eea4b['attributes']=_[_0x808f('0x32')](_0xc5e719[_0x808f('0x2d')],qs[_0x808f('0x33')](_0x53ce31['query']['fields']));_0x1eea4b[_0x808f('0x31')]=_0x1eea4b['attributes']['length']?_0x1eea4b[_0x808f('0x31')]:_0xc5e719[_0x808f('0x2d')];if(_0x53ce31[_0x808f('0x2f')][_0x808f('0x3f')]){_0x1eea4b[_0x808f('0x40')]=[{'all':!![]}];}_0x1eea4b=_[_0x808f('0x3a')]({},_0x1eea4b,_0x53ce31[_0x808f('0x3e')]);return db[_0x808f('0x28')][_0x808f('0x45')](_0x1eea4b)[_0x808f('0x41')](handleEntityNotFound(_0x51a352,null))[_0x808f('0x41')](respondWithResult(_0x51a352,null))[_0x808f('0x43')](handleError(_0x51a352,null));};exports[_0x808f('0x46')]=function(_0x2e6603,_0x346094){return db['FaxTransferReport']['create'](_0x2e6603[_0x808f('0x47')],{})[_0x808f('0x41')](respondWithResult(_0x346094,0xc9))[_0x808f('0x43')](handleError(_0x346094,null));};exports[_0x808f('0x24')]=function(_0x1e1950,_0x4df9d1){if(_0x1e1950[_0x808f('0x47')]['id']){delete _0x1e1950[_0x808f('0x47')]['id'];}return db[_0x808f('0x28')][_0x808f('0x45')]({'where':{'id':_0x1e1950[_0x808f('0x44')]['id']}})[_0x808f('0x41')](handleEntityNotFound(_0x4df9d1,null))[_0x808f('0x41')](saveUpdates(_0x1e1950[_0x808f('0x47')],null))['then'](respondWithResult(_0x4df9d1,null))[_0x808f('0x43')](handleError(_0x4df9d1,null));};exports['destroy']=function(_0x414c83,_0x22a7fa){return db[_0x808f('0x28')][_0x808f('0x45')]({'where':{'id':_0x414c83[_0x808f('0x44')]['id']}})[_0x808f('0x41')](handleEntityNotFound(_0x22a7fa,null))[_0x808f('0x41')](removeEntity(_0x22a7fa,null))[_0x808f('0x43')](handleError(_0x22a7fa,null));};exports[_0x808f('0x48')]=function(_0x1612b4,_0x1d6e82){return db[_0x808f('0x28')][_0x808f('0x48')]()[_0x808f('0x41')](respondWithResult(_0x1d6e82,null))['catch'](handleError(_0x1d6e82,null));};
\ No newline at end of file