Built motion from commit ffdca78c.|2.6.24
[motion2.git] / server / api / faxQueueReport / faxQueueReport.controller.js
index db1ea73..114caa7 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xc298=['sort','where','filters','pick','filter','merge','options','FaxQueueReport','includeAll','include','findAll','catch','show','params','length','create','body','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','reject','save','update','then','error','name','send','index','map','rawAttributes','type','key','query','keys','intersection','model','attributes','fields','hasOwnProperty','nolimit','order'];(function(_0xd1b4d7,_0x28b2c1){var _0x3002ec=function(_0x3d95ce){while(--_0x3d95ce){_0xd1b4d7['push'](_0xd1b4d7['shift']());}};_0x3002ec(++_0x28b2c1);}(_0xc298,0x143));var _0x8c29=function(_0x17b572,_0x544508){_0x17b572=_0x17b572-0x0;var _0x1d2f7a=_0xc298[_0x17b572];return _0x1d2f7a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8c29('0x0'));var zipdir=require(_0x8c29('0x1'));var jsonpatch=require(_0x8c29('0x2'));var rp=require(_0x8c29('0x3'));var moment=require(_0x8c29('0x4'));var BPromise=require(_0x8c29('0x5'));var Mustache=require('mustache');var util=require(_0x8c29('0x6'));var path=require(_0x8c29('0x7'));var sox=require(_0x8c29('0x8'));var csv=require(_0x8c29('0x9'));var ejs=require(_0x8c29('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8c29('0xb'));var squel=require(_0x8c29('0xc'));var crypto=require(_0x8c29('0xd'));var jsforce=require(_0x8c29('0xe'));var deskjs=require(_0x8c29('0xf'));var toCsv=require(_0x8c29('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x8c29('0x10'));var qs=require(_0x8c29('0x11'));var as=require(_0x8c29('0x12'));var hardwareService=require(_0x8c29('0x13'));var logger=require(_0x8c29('0x14'))(_0x8c29('0x15'));var utils=require(_0x8c29('0x16'));var config=require(_0x8c29('0x17'));var licenseUtil=require(_0x8c29('0x18'));var db=require(_0x8c29('0x19'))['db'];function respondWithStatusCode(_0xd82e60,_0x1dc424){_0x1dc424=_0x1dc424||0xcc;return function(_0x3023d2){if(_0x3023d2){return _0xd82e60[_0x8c29('0x1a')](_0x1dc424);}return _0xd82e60[_0x8c29('0x1b')](_0x1dc424)[_0x8c29('0x1c')]();};}function respondWithResult(_0x5a9eb8,_0x3dc480){_0x3dc480=_0x3dc480||0xc8;return function(_0xcdae4d){if(_0xcdae4d){return _0x5a9eb8['status'](_0x3dc480)['json'](_0xcdae4d);}};}function respondWithFilteredResult(_0x17d84b,_0xe87c50){return function(_0x4929b9){if(_0x4929b9){var _0x24add4=typeof _0xe87c50[_0x8c29('0x1d')]===_0x8c29('0x1e')&&typeof _0xe87c50['limit']===_0x8c29('0x1e');var _0x37fc8e=_0x4929b9[_0x8c29('0x1f')];var _0x6324b8=_0x24add4?0x0:_0xe87c50[_0x8c29('0x1d')];var _0x21ada9=_0x24add4?_0x4929b9['count']:_0xe87c50[_0x8c29('0x1d')]+_0xe87c50[_0x8c29('0x20')];var _0x41e389;if(_0x21ada9>=_0x37fc8e){_0x21ada9=_0x37fc8e;_0x41e389=0xc8;}else{_0x41e389=0xce;}_0x17d84b[_0x8c29('0x1b')](_0x41e389);return _0x17d84b[_0x8c29('0x21')](_0x8c29('0x22'),_0x6324b8+'-'+_0x21ada9+'/'+_0x37fc8e)[_0x8c29('0x23')](_0x4929b9);}return null;};}function patchUpdates(_0x10810c){return function(_0x5c62a0){try{jsonpatch['apply'](_0x5c62a0,_0x10810c,!![]);}catch(_0x2702a1){return BPromise[_0x8c29('0x24')](_0x2702a1);}return _0x5c62a0[_0x8c29('0x25')]();};}function saveUpdates(_0x513efd,_0x5a61f3){return function(_0x3fb320){if(_0x3fb320){return _0x3fb320[_0x8c29('0x26')](_0x513efd)[_0x8c29('0x27')](function(_0x157e61){return _0x157e61;});}return null;};}function removeEntity(_0x34cf21,_0x507124){return function(_0x40431d){if(_0x40431d){return _0x40431d['destroy']()[_0x8c29('0x27')](function(){_0x34cf21['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2c7979,_0x376297){return function(_0x3a967d){if(!_0x3a967d){_0x2c7979['sendStatus'](0x194);}return _0x3a967d;};}function handleError(_0x38a45c,_0x4e0066){_0x4e0066=_0x4e0066||0x1f4;return function(_0x5cd1e7){logger[_0x8c29('0x28')](_0x5cd1e7['stack']);if(_0x5cd1e7[_0x8c29('0x29')]){delete _0x5cd1e7[_0x8c29('0x29')];}_0x38a45c['status'](_0x4e0066)[_0x8c29('0x2a')](_0x5cd1e7);};}exports[_0x8c29('0x2b')]=function(_0x4eee54,_0x2c6ae1){var _0x5dd93a={},_0x48996c={},_0x25f26a={'count':0x0,'rows':[]};var _0x20e42f=_[_0x8c29('0x2c')](db['FaxQueueReport'][_0x8c29('0x2d')],function(_0xde770a){return{'name':_0xde770a['fieldName'],'type':_0xde770a[_0x8c29('0x2e')][_0x8c29('0x2f')]};});_0x48996c['model']=_[_0x8c29('0x2c')](_0x20e42f,_0x8c29('0x29'));_0x48996c[_0x8c29('0x30')]=_[_0x8c29('0x31')](_0x4eee54[_0x8c29('0x30')]);_0x48996c['filters']=_[_0x8c29('0x32')](_0x48996c[_0x8c29('0x33')],_0x48996c[_0x8c29('0x30')]);_0x5dd93a[_0x8c29('0x34')]=_[_0x8c29('0x32')](_0x48996c[_0x8c29('0x33')],qs[_0x8c29('0x35')](_0x4eee54['query'][_0x8c29('0x35')]));_0x5dd93a[_0x8c29('0x34')]=_0x5dd93a[_0x8c29('0x34')]['length']?_0x5dd93a[_0x8c29('0x34')]:_0x48996c[_0x8c29('0x33')];if(!_0x4eee54['query'][_0x8c29('0x36')](_0x8c29('0x37'))){_0x5dd93a['limit']=qs[_0x8c29('0x20')](_0x4eee54[_0x8c29('0x30')][_0x8c29('0x20')]);_0x5dd93a[_0x8c29('0x1d')]=qs['offset'](_0x4eee54[_0x8c29('0x30')][_0x8c29('0x1d')]);}_0x5dd93a[_0x8c29('0x38')]=qs[_0x8c29('0x39')](_0x4eee54[_0x8c29('0x30')]['sort']);_0x5dd93a[_0x8c29('0x3a')]=qs[_0x8c29('0x3b')](_[_0x8c29('0x3c')](_0x4eee54[_0x8c29('0x30')],_0x48996c[_0x8c29('0x3b')]),_0x20e42f);if(_0x4eee54[_0x8c29('0x30')][_0x8c29('0x3d')]){_0x5dd93a[_0x8c29('0x3a')]=_[_0x8c29('0x3e')](_0x5dd93a[_0x8c29('0x3a')],{'$or':_['map'](_0x20e42f,function(_0x351628){if(_0x351628[_0x8c29('0x2e')]!=='VIRTUAL'){var _0x426335={};_0x426335[_0x351628[_0x8c29('0x29')]]={'$like':'%'+_0x4eee54[_0x8c29('0x30')]['filter']+'%'};return _0x426335;}})});}_0x5dd93a=_[_0x8c29('0x3e')]({},_0x5dd93a,_0x4eee54[_0x8c29('0x3f')]);var _0x507aea={'where':_0x5dd93a[_0x8c29('0x3a')]};return db[_0x8c29('0x40')][_0x8c29('0x1f')](_0x507aea)[_0x8c29('0x27')](function(_0x313111){_0x25f26a['count']=_0x313111;if(_0x4eee54[_0x8c29('0x30')][_0x8c29('0x41')]){_0x5dd93a[_0x8c29('0x42')]=[{'all':!![]}];}return db[_0x8c29('0x40')][_0x8c29('0x43')](_0x5dd93a);})[_0x8c29('0x27')](function(_0x187da3){_0x25f26a['rows']=_0x187da3;return _0x25f26a;})[_0x8c29('0x27')](respondWithFilteredResult(_0x2c6ae1,_0x5dd93a))[_0x8c29('0x44')](handleError(_0x2c6ae1,null));};exports[_0x8c29('0x45')]=function(_0x258d4e,_0x5910ff){var _0x59faaf={'raw':!![],'where':{'id':_0x258d4e[_0x8c29('0x46')]['id']}},_0x127ad1={};_0x127ad1['model']=_[_0x8c29('0x31')](db[_0x8c29('0x40')][_0x8c29('0x2d')]);_0x127ad1[_0x8c29('0x30')]=_[_0x8c29('0x31')](_0x258d4e['query']);_0x127ad1[_0x8c29('0x3b')]=_['intersection'](_0x127ad1['model'],_0x127ad1['query']);_0x59faaf[_0x8c29('0x34')]=_[_0x8c29('0x32')](_0x127ad1[_0x8c29('0x33')],qs['fields'](_0x258d4e[_0x8c29('0x30')][_0x8c29('0x35')]));_0x59faaf['attributes']=_0x59faaf[_0x8c29('0x34')][_0x8c29('0x47')]?_0x59faaf[_0x8c29('0x34')]:_0x127ad1[_0x8c29('0x33')];if(_0x258d4e['query']['includeAll']){_0x59faaf['include']=[{'all':!![]}];}_0x59faaf=_[_0x8c29('0x3e')]({},_0x59faaf,_0x258d4e[_0x8c29('0x3f')]);return db['FaxQueueReport']['find'](_0x59faaf)[_0x8c29('0x27')](handleEntityNotFound(_0x5910ff,null))[_0x8c29('0x27')](respondWithResult(_0x5910ff,null))[_0x8c29('0x44')](handleError(_0x5910ff,null));};exports[_0x8c29('0x48')]=function(_0x3d3467,_0x2bb16f){return db[_0x8c29('0x40')]['create'](_0x3d3467[_0x8c29('0x49')],{})[_0x8c29('0x27')](respondWithResult(_0x2bb16f,0xc9))[_0x8c29('0x44')](handleError(_0x2bb16f,null));};exports[_0x8c29('0x26')]=function(_0x1ba6e2,_0x577459){if(_0x1ba6e2[_0x8c29('0x49')]['id']){delete _0x1ba6e2[_0x8c29('0x49')]['id'];}return db[_0x8c29('0x40')]['find']({'where':{'id':_0x1ba6e2[_0x8c29('0x46')]['id']}})[_0x8c29('0x27')](handleEntityNotFound(_0x577459,null))[_0x8c29('0x27')](saveUpdates(_0x1ba6e2[_0x8c29('0x49')],null))[_0x8c29('0x27')](respondWithResult(_0x577459,null))['catch'](handleError(_0x577459,null));};exports[_0x8c29('0x4a')]=function(_0x11b351,_0x4762c1){return db['FaxQueueReport']['find']({'where':{'id':_0x11b351[_0x8c29('0x46')]['id']}})[_0x8c29('0x27')](handleEntityNotFound(_0x4762c1,null))[_0x8c29('0x27')](removeEntity(_0x4762c1,null))[_0x8c29('0x44')](handleError(_0x4762c1,null));};exports['describe']=function(_0x39ffcb,_0x1a6a65){return db[_0x8c29('0x40')][_0x8c29('0x4b')]()[_0x8c29('0x27')](respondWithResult(_0x1a6a65,null))[_0x8c29('0x44')](handleError(_0x1a6a65,null));};
\ No newline at end of file
+var _0x765b=['attributes','order','sort','where','filter','merge','type','FaxQueueReport','include','rows','show','options','catch','create','body','find','params','describe','fast-json-patch','moment','mustache','util','path','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','name','send','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','length'];(function(_0x4a3a71,_0x51afe3){var _0x2e0160=function(_0x32a0a8){while(--_0x32a0a8){_0x4a3a71['push'](_0x4a3a71['shift']());}};_0x2e0160(++_0x51afe3);}(_0x765b,0x18c));var _0xb765=function(_0x57fa7e,_0xd0b5ce){_0x57fa7e=_0x57fa7e-0x0;var _0x320671=_0x765b[_0x57fa7e];return _0x320671;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb765('0x0'));var rp=require('request-promise');var moment=require(_0xb765('0x1'));var BPromise=require('bluebird');var Mustache=require(_0xb765('0x2'));var util=require(_0xb765('0x3'));var path=require(_0xb765('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb765('0x5'));var squel=require('squel');var crypto=require(_0xb765('0x6'));var jsforce=require(_0xb765('0x7'));var deskjs=require(_0xb765('0x8'));var toCsv=require('to-csv');var querystring=require(_0xb765('0x9'));var Papa=require(_0xb765('0xa'));var Redis=require(_0xb765('0xb'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb765('0xc'));var logger=require(_0xb765('0xd'))(_0xb765('0xe'));var utils=require(_0xb765('0xf'));var config=require('../../config/environment');var licenseUtil=require(_0xb765('0x10'));var db=require(_0xb765('0x11'))['db'];function respondWithStatusCode(_0x157a3b,_0x3f9acb){_0x3f9acb=_0x3f9acb||0xcc;return function(_0x38ee06){if(_0x38ee06){return _0x157a3b[_0xb765('0x12')](_0x3f9acb);}return _0x157a3b[_0xb765('0x13')](_0x3f9acb)[_0xb765('0x14')]();};}function respondWithResult(_0x355f6e,_0x4d8eff){_0x4d8eff=_0x4d8eff||0xc8;return function(_0x2aebdb){if(_0x2aebdb){return _0x355f6e['status'](_0x4d8eff)[_0xb765('0x15')](_0x2aebdb);}};}function respondWithFilteredResult(_0x33958e,_0x4cecc1){return function(_0x4b8e26){if(_0x4b8e26){var _0x3f73f4=typeof _0x4cecc1[_0xb765('0x16')]===_0xb765('0x17')&&typeof _0x4cecc1[_0xb765('0x18')]===_0xb765('0x17');var _0x3b9a9b=_0x4b8e26[_0xb765('0x19')];var _0x395edc=_0x3f73f4?0x0:_0x4cecc1['offset'];var _0x3fd470=_0x3f73f4?_0x4b8e26[_0xb765('0x19')]:_0x4cecc1[_0xb765('0x16')]+_0x4cecc1[_0xb765('0x18')];var _0x711484;if(_0x3fd470>=_0x3b9a9b){_0x3fd470=_0x3b9a9b;_0x711484=0xc8;}else{_0x711484=0xce;}_0x33958e[_0xb765('0x13')](_0x711484);return _0x33958e[_0xb765('0x1a')](_0xb765('0x1b'),_0x395edc+'-'+_0x3fd470+'/'+_0x3b9a9b)[_0xb765('0x15')](_0x4b8e26);}return null;};}function patchUpdates(_0x3a1197){return function(_0x44936d){try{jsonpatch[_0xb765('0x1c')](_0x44936d,_0x3a1197,!![]);}catch(_0x5074ca){return BPromise['reject'](_0x5074ca);}return _0x44936d[_0xb765('0x1d')]();};}function saveUpdates(_0x5f4189,_0x3d69c7){return function(_0x2e0196){if(_0x2e0196){return _0x2e0196[_0xb765('0x1e')](_0x5f4189)['then'](function(_0x97b886){return _0x97b886;});}return null;};}function removeEntity(_0x1a740c,_0x5d1ea0){return function(_0x3a05b1){if(_0x3a05b1){return _0x3a05b1[_0xb765('0x1f')]()[_0xb765('0x20')](function(){_0x1a740c[_0xb765('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3735e3,_0x6a5457){return function(_0x4e12b8){if(!_0x4e12b8){_0x3735e3['sendStatus'](0x194);}return _0x4e12b8;};}function handleError(_0x2a38b6,_0x4715d7){_0x4715d7=_0x4715d7||0x1f4;return function(_0x1c561a){logger['error'](_0x1c561a['stack']);if(_0x1c561a['name']){delete _0x1c561a[_0xb765('0x21')];}_0x2a38b6[_0xb765('0x13')](_0x4715d7)[_0xb765('0x22')](_0x1c561a);};}exports['index']=function(_0xb41497,_0x3c7206){var _0x48a84a={},_0x2842c2={},_0xe9f0b9={'count':0x0,'rows':[]};var _0x439162=_['map'](db['FaxQueueReport'][_0xb765('0x23')],function(_0x42fc05){return{'name':_0x42fc05[_0xb765('0x24')],'type':_0x42fc05['type'][_0xb765('0x25')]};});_0x2842c2[_0xb765('0x26')]=_['map'](_0x439162,'name');_0x2842c2[_0xb765('0x27')]=_[_0xb765('0x28')](_0xb41497[_0xb765('0x27')]);_0x2842c2[_0xb765('0x29')]=_[_0xb765('0x2a')](_0x2842c2[_0xb765('0x26')],_0x2842c2[_0xb765('0x27')]);_0x48a84a['attributes']=_[_0xb765('0x2a')](_0x2842c2[_0xb765('0x26')],qs[_0xb765('0x2b')](_0xb41497[_0xb765('0x27')]['fields']));_0x48a84a['attributes']=_0x48a84a['attributes'][_0xb765('0x2c')]?_0x48a84a[_0xb765('0x2d')]:_0x2842c2['model'];if(!_0xb41497[_0xb765('0x27')]['hasOwnProperty']('nolimit')){_0x48a84a[_0xb765('0x18')]=qs[_0xb765('0x18')](_0xb41497['query'][_0xb765('0x18')]);_0x48a84a[_0xb765('0x16')]=qs['offset'](_0xb41497[_0xb765('0x27')][_0xb765('0x16')]);}_0x48a84a[_0xb765('0x2e')]=qs[_0xb765('0x2f')](_0xb41497[_0xb765('0x27')][_0xb765('0x2f')]);_0x48a84a[_0xb765('0x30')]=qs[_0xb765('0x29')](_['pick'](_0xb41497[_0xb765('0x27')],_0x2842c2[_0xb765('0x29')]),_0x439162);if(_0xb41497['query'][_0xb765('0x31')]){_0x48a84a['where']=_[_0xb765('0x32')](_0x48a84a[_0xb765('0x30')],{'$or':_['map'](_0x439162,function(_0x146237){if(_0x146237[_0xb765('0x33')]!=='VIRTUAL'){var _0x5b3d74={};_0x5b3d74[_0x146237[_0xb765('0x21')]]={'$like':'%'+_0xb41497[_0xb765('0x27')][_0xb765('0x31')]+'%'};return _0x5b3d74;}})});}_0x48a84a=_[_0xb765('0x32')]({},_0x48a84a,_0xb41497['options']);var _0x191daf={'where':_0x48a84a[_0xb765('0x30')]};return db[_0xb765('0x34')]['count'](_0x191daf)[_0xb765('0x20')](function(_0x17a2a3){_0xe9f0b9[_0xb765('0x19')]=_0x17a2a3;if(_0xb41497[_0xb765('0x27')]['includeAll']){_0x48a84a[_0xb765('0x35')]=[{'all':!![]}];}return db[_0xb765('0x34')]['findAll'](_0x48a84a);})[_0xb765('0x20')](function(_0x536651){_0xe9f0b9[_0xb765('0x36')]=_0x536651;return _0xe9f0b9;})['then'](respondWithFilteredResult(_0x3c7206,_0x48a84a))['catch'](handleError(_0x3c7206,null));};exports[_0xb765('0x37')]=function(_0x15077b,_0x542372){var _0x42a715={'raw':!![],'where':{'id':_0x15077b['params']['id']}},_0x516b98={};_0x516b98['model']=_['keys'](db[_0xb765('0x34')][_0xb765('0x23')]);_0x516b98[_0xb765('0x27')]=_[_0xb765('0x28')](_0x15077b[_0xb765('0x27')]);_0x516b98['filters']=_[_0xb765('0x2a')](_0x516b98[_0xb765('0x26')],_0x516b98['query']);_0x42a715[_0xb765('0x2d')]=_[_0xb765('0x2a')](_0x516b98['model'],qs[_0xb765('0x2b')](_0x15077b[_0xb765('0x27')][_0xb765('0x2b')]));_0x42a715[_0xb765('0x2d')]=_0x42a715[_0xb765('0x2d')][_0xb765('0x2c')]?_0x42a715[_0xb765('0x2d')]:_0x516b98[_0xb765('0x26')];if(_0x15077b[_0xb765('0x27')]['includeAll']){_0x42a715[_0xb765('0x35')]=[{'all':!![]}];}_0x42a715=_[_0xb765('0x32')]({},_0x42a715,_0x15077b[_0xb765('0x38')]);return db['FaxQueueReport']['find'](_0x42a715)[_0xb765('0x20')](handleEntityNotFound(_0x542372,null))['then'](respondWithResult(_0x542372,null))[_0xb765('0x39')](handleError(_0x542372,null));};exports[_0xb765('0x3a')]=function(_0x53ad7b,_0x12eff7){return db[_0xb765('0x34')][_0xb765('0x3a')](_0x53ad7b[_0xb765('0x3b')],{})[_0xb765('0x20')](respondWithResult(_0x12eff7,0xc9))[_0xb765('0x39')](handleError(_0x12eff7,null));};exports['update']=function(_0x188dbe,_0x2540fc){if(_0x188dbe[_0xb765('0x3b')]['id']){delete _0x188dbe[_0xb765('0x3b')]['id'];}return db[_0xb765('0x34')][_0xb765('0x3c')]({'where':{'id':_0x188dbe[_0xb765('0x3d')]['id']}})['then'](handleEntityNotFound(_0x2540fc,null))[_0xb765('0x20')](saveUpdates(_0x188dbe['body'],null))[_0xb765('0x20')](respondWithResult(_0x2540fc,null))[_0xb765('0x39')](handleError(_0x2540fc,null));};exports[_0xb765('0x1f')]=function(_0x38752d,_0x5f37de){return db[_0xb765('0x34')]['find']({'where':{'id':_0x38752d[_0xb765('0x3d')]['id']}})['then'](handleEntityNotFound(_0x5f37de,null))[_0xb765('0x20')](removeEntity(_0x5f37de,null))['catch'](handleError(_0x5f37de,null));};exports['describe']=function(_0x3170d4,_0x580a3d){return db[_0xb765('0x34')][_0xb765('0x3e')]()[_0xb765('0x20')](respondWithResult(_0x580a3d,null))[_0xb765('0x39')](handleError(_0x580a3d,null));};
\ No newline at end of file