Built motion from commit b5413ace.|2.6.9
[motion2.git] / server / api / smsQueueReport / smsQueueReport.controller.js
index 073d5c9..4ce8f75 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x29f7=['query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','filter','where','merge','type','count','includeAll','findAll','rows','show','params','keys','include','options','create','body','catch','find','describe','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','Content-Range','json','apply','save','update','then','destroy','error','stack','name','index','map','SmsQueueReport','rawAttributes','key','model'];(function(_0x2299e8,_0x3e4063){var _0x433c0e=function(_0x43f27e){while(--_0x43f27e){_0x2299e8['push'](_0x2299e8['shift']());}};_0x433c0e(++_0x3e4063);}(_0x29f7,0x100));var _0x729f=function(_0x326845,_0x152fef){_0x326845=_0x326845-0x0;var _0x52c03c=_0x29f7[_0x326845];return _0x52c03c;};'use strict';var pdf=require(_0x729f('0x0'));var emlformat=require(_0x729f('0x1'));var rimraf=require(_0x729f('0x2'));var zipdir=require(_0x729f('0x3'));var jsonpatch=require(_0x729f('0x4'));var rp=require(_0x729f('0x5'));var moment=require(_0x729f('0x6'));var BPromise=require(_0x729f('0x7'));var Mustache=require('mustache');var util=require(_0x729f('0x8'));var path=require(_0x729f('0x9'));var sox=require(_0x729f('0xa'));var csv=require(_0x729f('0xb'));var ejs=require(_0x729f('0xc'));var fs=require('fs');var _=require(_0x729f('0xd'));var squel=require(_0x729f('0xe'));var crypto=require(_0x729f('0xf'));var jsforce=require(_0x729f('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x729f('0x11'));var Papa=require(_0x729f('0x12'));var Redis=require(_0x729f('0x13'));var authService=require(_0x729f('0x14'));var qs=require(_0x729f('0x15'));var as=require(_0x729f('0x16'));var hardwareService=require(_0x729f('0x17'));var logger=require(_0x729f('0x18'))('api');var utils=require(_0x729f('0x19'));var config=require(_0x729f('0x1a'));var licenseUtil=require(_0x729f('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x62f621,_0x5ea3d2){_0x5ea3d2=_0x5ea3d2||0xcc;return function(_0x22602f){if(_0x22602f){return _0x62f621[_0x729f('0x1c')](_0x5ea3d2);}return _0x62f621[_0x729f('0x1d')](_0x5ea3d2)[_0x729f('0x1e')]();};}function respondWithResult(_0x460e36,_0xea50c8){_0xea50c8=_0xea50c8||0xc8;return function(_0x311307){if(_0x311307){return _0x460e36['status'](_0xea50c8)['json'](_0x311307);}};}function respondWithFilteredResult(_0x5df47e,_0x5bb447){return function(_0x50f383){if(_0x50f383){var _0x45784b=_0x50f383['count'],_0x431425=_0x5bb447[_0x729f('0x1f')],_0x54d499=_0x5bb447[_0x729f('0x1f')]+_0x5bb447['limit'],_0x571be2;if(_0x54d499>=_0x45784b){_0x54d499=_0x45784b;_0x571be2=0xc8;}else{_0x571be2=0xce;}_0x5df47e[_0x729f('0x1d')](_0x571be2);return _0x5df47e['set'](_0x729f('0x20'),_0x431425+'-'+_0x54d499+'/'+_0x45784b)[_0x729f('0x21')](_0x50f383);}return null;};}function patchUpdates(_0x4abd88){return function(_0x406f52){try{jsonpatch[_0x729f('0x22')](_0x406f52,_0x4abd88,!![]);}catch(_0x32aa56){return BPromise['reject'](_0x32aa56);}return _0x406f52[_0x729f('0x23')]();};}function saveUpdates(_0x3b3ec6,_0xd35dc7){return function(_0x4fa035){if(_0x4fa035){return _0x4fa035[_0x729f('0x24')](_0x3b3ec6)[_0x729f('0x25')](function(_0xfff375){return _0xfff375;});}return null;};}function removeEntity(_0x29ce84,_0x4a21c7){return function(_0x25b9ad){if(_0x25b9ad){return _0x25b9ad[_0x729f('0x26')]()['then'](function(){_0x29ce84[_0x729f('0x1d')](0xcc)[_0x729f('0x1e')]();});}};}function handleEntityNotFound(_0x5b7df0,_0x1af913){return function(_0x20b34b){if(!_0x20b34b){_0x5b7df0['sendStatus'](0x194);}return _0x20b34b;};}function handleError(_0x55b94e,_0x2ec525){_0x2ec525=_0x2ec525||0x1f4;return function(_0x472a99){logger[_0x729f('0x27')](_0x472a99[_0x729f('0x28')]);if(_0x472a99[_0x729f('0x29')]){delete _0x472a99[_0x729f('0x29')];}_0x55b94e[_0x729f('0x1d')](_0x2ec525)['send'](_0x472a99);};}exports[_0x729f('0x2a')]=function(_0x41b130,_0x56f88c){var _0x240b1c={},_0x374c15={},_0x4b9782={'count':0x0,'rows':[]};var _0x5df10a=_[_0x729f('0x2b')](db[_0x729f('0x2c')][_0x729f('0x2d')],function(_0x39e207){return{'name':_0x39e207['fieldName'],'type':_0x39e207['type'][_0x729f('0x2e')]};});_0x374c15[_0x729f('0x2f')]=_[_0x729f('0x2b')](_0x5df10a,_0x729f('0x29'));_0x374c15[_0x729f('0x30')]=_['keys'](_0x41b130['query']);_0x374c15[_0x729f('0x31')]=_[_0x729f('0x32')](_0x374c15['model'],_0x374c15[_0x729f('0x30')]);_0x240b1c[_0x729f('0x33')]=_['intersection'](_0x374c15[_0x729f('0x2f')],qs['fields'](_0x41b130[_0x729f('0x30')][_0x729f('0x34')]));_0x240b1c[_0x729f('0x33')]=_0x240b1c['attributes'][_0x729f('0x35')]?_0x240b1c[_0x729f('0x33')]:_0x374c15[_0x729f('0x2f')];if(!_0x41b130[_0x729f('0x30')][_0x729f('0x36')]('nolimit')){_0x240b1c[_0x729f('0x37')]=qs[_0x729f('0x37')](_0x41b130[_0x729f('0x30')][_0x729f('0x37')]);_0x240b1c['offset']=qs[_0x729f('0x1f')](_0x41b130[_0x729f('0x30')][_0x729f('0x1f')]);}_0x240b1c[_0x729f('0x38')]=qs[_0x729f('0x39')](_0x41b130[_0x729f('0x30')][_0x729f('0x39')]);_0x240b1c['where']=qs[_0x729f('0x31')](_['pick'](_0x41b130[_0x729f('0x30')],_0x374c15[_0x729f('0x31')]),_0x5df10a);if(_0x41b130[_0x729f('0x30')][_0x729f('0x3a')]){_0x240b1c[_0x729f('0x3b')]=_[_0x729f('0x3c')](_0x240b1c[_0x729f('0x3b')],{'$or':_['map'](_0x5df10a,function(_0x159fbb){if(_0x159fbb[_0x729f('0x3d')]!=='VIRTUAL'){var _0xccf081={};_0xccf081[_0x159fbb['name']]={'$like':'%'+_0x41b130['query'][_0x729f('0x3a')]+'%'};return _0xccf081;}})});}_0x240b1c=_[_0x729f('0x3c')]({},_0x240b1c,_0x41b130['options']);var _0x2e8871={'where':_0x240b1c[_0x729f('0x3b')]};return db[_0x729f('0x2c')][_0x729f('0x3e')](_0x2e8871)[_0x729f('0x25')](function(_0x5da035){_0x4b9782['count']=_0x5da035;if(_0x41b130[_0x729f('0x30')][_0x729f('0x3f')]){_0x240b1c['include']=[{'all':!![]}];}return db['SmsQueueReport'][_0x729f('0x40')](_0x240b1c);})[_0x729f('0x25')](function(_0xecf853){_0x4b9782[_0x729f('0x41')]=_0xecf853;return _0x4b9782;})[_0x729f('0x25')](respondWithFilteredResult(_0x56f88c,_0x240b1c))['catch'](handleError(_0x56f88c,null));};exports[_0x729f('0x42')]=function(_0x5d8ec5,_0x384c6a){var _0x6165f2={'raw':!![],'where':{'id':_0x5d8ec5[_0x729f('0x43')]['id']}},_0x40a5b7={};_0x40a5b7[_0x729f('0x2f')]=_[_0x729f('0x44')](db[_0x729f('0x2c')][_0x729f('0x2d')]);_0x40a5b7[_0x729f('0x30')]=_[_0x729f('0x44')](_0x5d8ec5[_0x729f('0x30')]);_0x40a5b7[_0x729f('0x31')]=_[_0x729f('0x32')](_0x40a5b7[_0x729f('0x2f')],_0x40a5b7[_0x729f('0x30')]);_0x6165f2[_0x729f('0x33')]=_['intersection'](_0x40a5b7[_0x729f('0x2f')],qs['fields'](_0x5d8ec5[_0x729f('0x30')][_0x729f('0x34')]));_0x6165f2['attributes']=_0x6165f2[_0x729f('0x33')][_0x729f('0x35')]?_0x6165f2[_0x729f('0x33')]:_0x40a5b7['model'];if(_0x5d8ec5[_0x729f('0x30')][_0x729f('0x3f')]){_0x6165f2[_0x729f('0x45')]=[{'all':!![]}];}_0x6165f2=_[_0x729f('0x3c')]({},_0x6165f2,_0x5d8ec5[_0x729f('0x46')]);return db[_0x729f('0x2c')]['find'](_0x6165f2)['then'](handleEntityNotFound(_0x384c6a,null))[_0x729f('0x25')](respondWithResult(_0x384c6a,null))['catch'](handleError(_0x384c6a,null));};exports[_0x729f('0x47')]=function(_0x44f32d,_0x212d2f){return db[_0x729f('0x2c')][_0x729f('0x47')](_0x44f32d[_0x729f('0x48')],{})[_0x729f('0x25')](respondWithResult(_0x212d2f,0xc9))[_0x729f('0x49')](handleError(_0x212d2f,null));};exports[_0x729f('0x24')]=function(_0x372e2f,_0x377124){if(_0x372e2f[_0x729f('0x48')]['id']){delete _0x372e2f[_0x729f('0x48')]['id'];}return db['SmsQueueReport'][_0x729f('0x4a')]({'where':{'id':_0x372e2f[_0x729f('0x43')]['id']}})[_0x729f('0x25')](handleEntityNotFound(_0x377124,null))[_0x729f('0x25')](saveUpdates(_0x372e2f[_0x729f('0x48')],null))[_0x729f('0x25')](respondWithResult(_0x377124,null))[_0x729f('0x49')](handleError(_0x377124,null));};exports[_0x729f('0x26')]=function(_0x35f6f0,_0x3e2e50){return db[_0x729f('0x2c')][_0x729f('0x4a')]({'where':{'id':_0x35f6f0[_0x729f('0x43')]['id']}})[_0x729f('0x25')](handleEntityNotFound(_0x3e2e50,null))[_0x729f('0x25')](removeEntity(_0x3e2e50,null))[_0x729f('0x49')](handleError(_0x3e2e50,null));};exports[_0x729f('0x4b')]=function(_0x44ade0,_0x446b91){return db[_0x729f('0x2c')]['describe']()[_0x729f('0x25')](respondWithResult(_0x446b91,null))[_0x729f('0x49')](handleError(_0x446b91,null));};
\ No newline at end of file
+var _0xa86f=['fields','length','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','intersection','includeAll','create','body','update','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','Content-Range','apply','reject','save','then','error','stack','name','send','index','SmsQueueReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters'];(function(_0x4e8b44,_0x474654){var _0x531bfc=function(_0x334bd9){while(--_0x334bd9){_0x4e8b44['push'](_0x4e8b44['shift']());}};_0x531bfc(++_0x474654);}(_0xa86f,0x146));var _0xfa86=function(_0x3da7ab,_0x2e00dc){_0x3da7ab=_0x3da7ab-0x0;var _0x4819ed=_0xa86f[_0x3da7ab];return _0x4819ed;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfa86('0x0'));var zipdir=require(_0xfa86('0x1'));var jsonpatch=require(_0xfa86('0x2'));var rp=require(_0xfa86('0x3'));var moment=require('moment');var BPromise=require(_0xfa86('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xfa86('0x5'));var csv=require(_0xfa86('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfa86('0x7'));var _=require(_0xfa86('0x8'));var squel=require('squel');var crypto=require(_0xfa86('0x9'));var jsforce=require(_0xfa86('0xa'));var deskjs=require(_0xfa86('0xb'));var toCsv=require(_0xfa86('0x6'));var querystring=require(_0xfa86('0xc'));var Papa=require(_0xfa86('0xd'));var Redis=require('ioredis');var authService=require(_0xfa86('0xe'));var qs=require(_0xfa86('0xf'));var as=require(_0xfa86('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfa86('0x11'))(_0xfa86('0x12'));var utils=require(_0xfa86('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xfa86('0x14'))['db'];function respondWithStatusCode(_0x502aa1,_0x244d0f){_0x244d0f=_0x244d0f||0xcc;return function(_0x8ba86f){if(_0x8ba86f){return _0x502aa1[_0xfa86('0x15')](_0x244d0f);}return _0x502aa1[_0xfa86('0x16')](_0x244d0f)[_0xfa86('0x17')]();};}function respondWithResult(_0x517c27,_0x4b300e){_0x4b300e=_0x4b300e||0xc8;return function(_0x3bdb1c){if(_0x3bdb1c){return _0x517c27['status'](_0x4b300e)[_0xfa86('0x18')](_0x3bdb1c);}};}function respondWithFilteredResult(_0x3031f9,_0x5a6234){return function(_0x5613a9){if(_0x5613a9){var _0x32cfe7=typeof _0x5a6234['offset']===_0xfa86('0x19')&&typeof _0x5a6234['limit']==='undefined';var _0xca7d05=_0x5613a9[_0xfa86('0x1a')];var _0x18de55=_0x32cfe7?0x0:_0x5a6234['offset'];var _0x47bddc=_0x32cfe7?_0x5613a9['count']:_0x5a6234[_0xfa86('0x1b')]+_0x5a6234[_0xfa86('0x1c')];var _0x211dfd;if(_0x47bddc>=_0xca7d05){_0x47bddc=_0xca7d05;_0x211dfd=0xc8;}else{_0x211dfd=0xce;}_0x3031f9[_0xfa86('0x16')](_0x211dfd);return _0x3031f9['set'](_0xfa86('0x1d'),_0x18de55+'-'+_0x47bddc+'/'+_0xca7d05)[_0xfa86('0x18')](_0x5613a9);}return null;};}function patchUpdates(_0x4f137e){return function(_0x56cebe){try{jsonpatch[_0xfa86('0x1e')](_0x56cebe,_0x4f137e,!![]);}catch(_0x947dd0){return BPromise[_0xfa86('0x1f')](_0x947dd0);}return _0x56cebe[_0xfa86('0x20')]();};}function saveUpdates(_0x4c2d16,_0x539b5f){return function(_0x5e802f){if(_0x5e802f){return _0x5e802f['update'](_0x4c2d16)[_0xfa86('0x21')](function(_0x39db6b){return _0x39db6b;});}return null;};}function removeEntity(_0x4eadd0,_0x3017af){return function(_0x4a8046){if(_0x4a8046){return _0x4a8046['destroy']()[_0xfa86('0x21')](function(){_0x4eadd0['status'](0xcc)[_0xfa86('0x17')]();});}};}function handleEntityNotFound(_0x14be22,_0xcbcaff){return function(_0x5b6616){if(!_0x5b6616){_0x14be22[_0xfa86('0x15')](0x194);}return _0x5b6616;};}function handleError(_0x3f1e71,_0xd8f34f){_0xd8f34f=_0xd8f34f||0x1f4;return function(_0x2df4ae){logger[_0xfa86('0x22')](_0x2df4ae[_0xfa86('0x23')]);if(_0x2df4ae[_0xfa86('0x24')]){delete _0x2df4ae[_0xfa86('0x24')];}_0x3f1e71[_0xfa86('0x16')](_0xd8f34f)[_0xfa86('0x25')](_0x2df4ae);};}exports[_0xfa86('0x26')]=function(_0x523988,_0x179a80){var _0x55818b={},_0x329c0e={},_0x469eef={'count':0x0,'rows':[]};var _0x35d3fa=_['map'](db[_0xfa86('0x27')][_0xfa86('0x28')],function(_0x500f55){return{'name':_0x500f55[_0xfa86('0x29')],'type':_0x500f55[_0xfa86('0x2a')][_0xfa86('0x2b')]};});_0x329c0e[_0xfa86('0x2c')]=_[_0xfa86('0x2d')](_0x35d3fa,_0xfa86('0x24'));_0x329c0e[_0xfa86('0x2e')]=_[_0xfa86('0x2f')](_0x523988['query']);_0x329c0e[_0xfa86('0x30')]=_['intersection'](_0x329c0e[_0xfa86('0x2c')],_0x329c0e[_0xfa86('0x2e')]);_0x55818b['attributes']=_['intersection'](_0x329c0e['model'],qs[_0xfa86('0x31')](_0x523988[_0xfa86('0x2e')][_0xfa86('0x31')]));_0x55818b['attributes']=_0x55818b['attributes'][_0xfa86('0x32')]?_0x55818b[_0xfa86('0x33')]:_0x329c0e[_0xfa86('0x2c')];if(!_0x523988[_0xfa86('0x2e')][_0xfa86('0x34')](_0xfa86('0x35'))){_0x55818b[_0xfa86('0x1c')]=qs[_0xfa86('0x1c')](_0x523988[_0xfa86('0x2e')]['limit']);_0x55818b[_0xfa86('0x1b')]=qs['offset'](_0x523988['query'][_0xfa86('0x1b')]);}_0x55818b[_0xfa86('0x36')]=qs[_0xfa86('0x37')](_0x523988[_0xfa86('0x2e')][_0xfa86('0x37')]);_0x55818b[_0xfa86('0x38')]=qs[_0xfa86('0x30')](_[_0xfa86('0x39')](_0x523988[_0xfa86('0x2e')],_0x329c0e[_0xfa86('0x30')]),_0x35d3fa);if(_0x523988[_0xfa86('0x2e')]['filter']){_0x55818b['where']=_[_0xfa86('0x3a')](_0x55818b[_0xfa86('0x38')],{'$or':_['map'](_0x35d3fa,function(_0x59a28){if(_0x59a28[_0xfa86('0x2a')]!==_0xfa86('0x3b')){var _0x395f72={};_0x395f72[_0x59a28['name']]={'$like':'%'+_0x523988[_0xfa86('0x2e')][_0xfa86('0x3c')]+'%'};return _0x395f72;}})});}_0x55818b=_[_0xfa86('0x3a')]({},_0x55818b,_0x523988[_0xfa86('0x3d')]);var _0x297473={'where':_0x55818b[_0xfa86('0x38')]};return db[_0xfa86('0x27')][_0xfa86('0x1a')](_0x297473)['then'](function(_0x2cb538){_0x469eef[_0xfa86('0x1a')]=_0x2cb538;if(_0x523988[_0xfa86('0x2e')]['includeAll']){_0x55818b[_0xfa86('0x3e')]=[{'all':!![]}];}return db[_0xfa86('0x27')][_0xfa86('0x3f')](_0x55818b);})['then'](function(_0x2c281e){_0x469eef[_0xfa86('0x40')]=_0x2c281e;return _0x469eef;})['then'](respondWithFilteredResult(_0x179a80,_0x55818b))[_0xfa86('0x41')](handleError(_0x179a80,null));};exports[_0xfa86('0x42')]=function(_0x3d9bbe,_0x25b8e2){var _0x24b435={'raw':!![],'where':{'id':_0x3d9bbe[_0xfa86('0x43')]['id']}},_0x1ed920={};_0x1ed920[_0xfa86('0x2c')]=_[_0xfa86('0x2f')](db[_0xfa86('0x27')][_0xfa86('0x28')]);_0x1ed920[_0xfa86('0x2e')]=_[_0xfa86('0x2f')](_0x3d9bbe[_0xfa86('0x2e')]);_0x1ed920['filters']=_[_0xfa86('0x44')](_0x1ed920[_0xfa86('0x2c')],_0x1ed920[_0xfa86('0x2e')]);_0x24b435[_0xfa86('0x33')]=_[_0xfa86('0x44')](_0x1ed920['model'],qs[_0xfa86('0x31')](_0x3d9bbe[_0xfa86('0x2e')][_0xfa86('0x31')]));_0x24b435['attributes']=_0x24b435[_0xfa86('0x33')]['length']?_0x24b435[_0xfa86('0x33')]:_0x1ed920['model'];if(_0x3d9bbe[_0xfa86('0x2e')][_0xfa86('0x45')]){_0x24b435[_0xfa86('0x3e')]=[{'all':!![]}];}_0x24b435=_['merge']({},_0x24b435,_0x3d9bbe[_0xfa86('0x3d')]);return db[_0xfa86('0x27')]['find'](_0x24b435)[_0xfa86('0x21')](handleEntityNotFound(_0x25b8e2,null))['then'](respondWithResult(_0x25b8e2,null))[_0xfa86('0x41')](handleError(_0x25b8e2,null));};exports[_0xfa86('0x46')]=function(_0x443850,_0x17116c){return db[_0xfa86('0x27')][_0xfa86('0x46')](_0x443850[_0xfa86('0x47')],{})[_0xfa86('0x21')](respondWithResult(_0x17116c,0xc9))[_0xfa86('0x41')](handleError(_0x17116c,null));};exports[_0xfa86('0x48')]=function(_0x41e8b5,_0x2d9f27){if(_0x41e8b5[_0xfa86('0x47')]['id']){delete _0x41e8b5['body']['id'];}return db[_0xfa86('0x27')]['find']({'where':{'id':_0x41e8b5['params']['id']}})['then'](handleEntityNotFound(_0x2d9f27,null))[_0xfa86('0x21')](saveUpdates(_0x41e8b5[_0xfa86('0x47')],null))[_0xfa86('0x21')](respondWithResult(_0x2d9f27,null))['catch'](handleError(_0x2d9f27,null));};exports['destroy']=function(_0x2ce700,_0x2d5614){return db[_0xfa86('0x27')][_0xfa86('0x49')]({'where':{'id':_0x2ce700[_0xfa86('0x43')]['id']}})[_0xfa86('0x21')](handleEntityNotFound(_0x2d5614,null))['then'](removeEntity(_0x2d5614,null))[_0xfa86('0x41')](handleError(_0x2d5614,null));};exports[_0xfa86('0x4a')]=function(_0x8be4f9,_0x38d97a){return db['SmsQueueReport'][_0xfa86('0x4a')]()[_0xfa86('0x21')](respondWithResult(_0x38d97a,null))[_0xfa86('0x41')](handleError(_0x38d97a,null));};
\ No newline at end of file