Built motion from commit (unavailable).|2.5.1
[motion2.git] / server / api / voiceTransferReport / voiceTransferReport.controller.js
index 7270810..1ca3c8c 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xfcbe=['fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','catch','params','model','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','ejs','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','end','error','stack','name','send','index','map','VoiceTransferReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes'];(function(_0x299137,_0x251783){var _0x1e64a2=function(_0x3023dd){while(--_0x3023dd){_0x299137['push'](_0x299137['shift']());}};_0x1e64a2(++_0x251783);}(_0xfcbe,0x1b1));var _0xefcb=function(_0x56f4b2,_0x88ac9f){_0x56f4b2=_0x56f4b2-0x0;var _0x2a5025=_0xfcbe[_0x56f4b2];return _0x2a5025;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xefcb('0x0'));var rimraf=require(_0xefcb('0x1'));var zipdir=require(_0xefcb('0x2'));var jsonpatch=require(_0xefcb('0x3'));var rp=require(_0xefcb('0x4'));var moment=require(_0xefcb('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xefcb('0x6'));var util=require(_0xefcb('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xefcb('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xefcb('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xefcb('0xa'));var toCsv=require(_0xefcb('0xb'));var querystring=require(_0xefcb('0xc'));var Papa=require('papaparse');var Redis=require(_0xefcb('0xd'));var authService=require(_0xefcb('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xefcb('0xf'));var logger=require(_0xefcb('0x10'))(_0xefcb('0x11'));var utils=require(_0xefcb('0x12'));var config=require(_0xefcb('0x13'));var licenseUtil=require(_0xefcb('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x92bb0c,_0x163012){_0x163012=_0x163012||0xcc;return function(_0x2c77dd){if(_0x2c77dd){return _0x92bb0c[_0xefcb('0x15')](_0x163012);}return _0x92bb0c[_0xefcb('0x16')](_0x163012)['end']();};}function respondWithResult(_0x585355,_0x24ac43){_0x24ac43=_0x24ac43||0xc8;return function(_0xd13e37){if(_0xd13e37){return _0x585355['status'](_0x24ac43)[_0xefcb('0x17')](_0xd13e37);}};}function respondWithFilteredResult(_0x565c13,_0x3946ef){return function(_0x565fae){if(_0x565fae){var _0x172816=_0x565fae[_0xefcb('0x18')],_0x46a22a=_0x3946ef[_0xefcb('0x19')],_0x440e20=_0x3946ef['offset']+_0x3946ef[_0xefcb('0x1a')],_0x187f0f;if(_0x440e20>=_0x172816){_0x440e20=_0x172816;_0x187f0f=0xc8;}else{_0x187f0f=0xce;}_0x565c13[_0xefcb('0x16')](_0x187f0f);return _0x565c13[_0xefcb('0x1b')](_0xefcb('0x1c'),_0x46a22a+'-'+_0x440e20+'/'+_0x172816)[_0xefcb('0x17')](_0x565fae);}return null;};}function patchUpdates(_0x2baf5e){return function(_0x3a3ffe){try{jsonpatch['apply'](_0x3a3ffe,_0x2baf5e,!![]);}catch(_0x39ab04){return BPromise[_0xefcb('0x1d')](_0x39ab04);}return _0x3a3ffe['save']();};}function saveUpdates(_0x12a93f,_0x51c2e){return function(_0xea53e9){if(_0xea53e9){return _0xea53e9[_0xefcb('0x1e')](_0x12a93f)[_0xefcb('0x1f')](function(_0x4e13c0){return _0x4e13c0;});}return null;};}function removeEntity(_0x10c662,_0x33641c){return function(_0x2ab79d){if(_0x2ab79d){return _0x2ab79d[_0xefcb('0x20')]()[_0xefcb('0x1f')](function(){_0x10c662[_0xefcb('0x16')](0xcc)[_0xefcb('0x21')]();});}};}function handleEntityNotFound(_0x2a74f6,_0x52e7dd){return function(_0x5844e2){if(!_0x5844e2){_0x2a74f6['sendStatus'](0x194);}return _0x5844e2;};}function handleError(_0x104212,_0x38a583){_0x38a583=_0x38a583||0x1f4;return function(_0x457ff6){logger[_0xefcb('0x22')](_0x457ff6[_0xefcb('0x23')]);if(_0x457ff6[_0xefcb('0x24')]){delete _0x457ff6[_0xefcb('0x24')];}_0x104212['status'](_0x38a583)[_0xefcb('0x25')](_0x457ff6);};}exports[_0xefcb('0x26')]=function(_0xa42610,_0x11286f){var _0x18f4ef={},_0x18f3be={},_0x16757b={'count':0x0,'rows':[]};var _0x36521c=_[_0xefcb('0x27')](db[_0xefcb('0x28')][_0xefcb('0x29')],function(_0x160782){return{'name':_0x160782[_0xefcb('0x2a')],'type':_0x160782[_0xefcb('0x2b')][_0xefcb('0x2c')]};});_0x18f3be['model']=_[_0xefcb('0x27')](_0x36521c,_0xefcb('0x24'));_0x18f3be[_0xefcb('0x2d')]=_[_0xefcb('0x2e')](_0xa42610[_0xefcb('0x2d')]);_0x18f3be[_0xefcb('0x2f')]=_[_0xefcb('0x30')](_0x18f3be['model'],_0x18f3be['query']);_0x18f4ef[_0xefcb('0x31')]=_[_0xefcb('0x30')](_0x18f3be['model'],qs[_0xefcb('0x32')](_0xa42610[_0xefcb('0x2d')][_0xefcb('0x32')]));_0x18f4ef['attributes']=_0x18f4ef[_0xefcb('0x31')][_0xefcb('0x33')]?_0x18f4ef[_0xefcb('0x31')]:_0x18f3be['model'];if(!_0xa42610['query']['hasOwnProperty']('nolimit')){_0x18f4ef[_0xefcb('0x1a')]=qs[_0xefcb('0x1a')](_0xa42610[_0xefcb('0x2d')][_0xefcb('0x1a')]);_0x18f4ef[_0xefcb('0x19')]=qs[_0xefcb('0x19')](_0xa42610[_0xefcb('0x2d')][_0xefcb('0x19')]);}_0x18f4ef[_0xefcb('0x34')]=qs[_0xefcb('0x35')](_0xa42610[_0xefcb('0x2d')][_0xefcb('0x35')]);_0x18f4ef[_0xefcb('0x36')]=qs[_0xefcb('0x2f')](_[_0xefcb('0x37')](_0xa42610[_0xefcb('0x2d')],_0x18f3be['filters']),_0x36521c);if(_0xa42610[_0xefcb('0x2d')][_0xefcb('0x38')]){_0x18f4ef[_0xefcb('0x36')]=_[_0xefcb('0x39')](_0x18f4ef['where'],{'$or':_[_0xefcb('0x27')](_0x36521c,function(_0x5e5b5a){if(_0x5e5b5a[_0xefcb('0x2b')]!==_0xefcb('0x3a')){var _0x31bf8b={};_0x31bf8b[_0x5e5b5a[_0xefcb('0x24')]]={'$like':'%'+_0xa42610['query'][_0xefcb('0x38')]+'%'};return _0x31bf8b;}})});}_0x18f4ef=_[_0xefcb('0x39')]({},_0x18f4ef,_0xa42610[_0xefcb('0x3b')]);var _0x5ba923={'where':_0x18f4ef[_0xefcb('0x36')]};return db[_0xefcb('0x28')][_0xefcb('0x18')](_0x5ba923)['then'](function(_0x4d9550){_0x16757b[_0xefcb('0x18')]=_0x4d9550;if(_0xa42610['query']['includeAll']){_0x18f4ef[_0xefcb('0x3c')]=[{'all':!![]}];}return db[_0xefcb('0x28')][_0xefcb('0x3d')](_0x18f4ef);})['then'](function(_0x4d4f06){_0x16757b['rows']=_0x4d4f06;return _0x16757b;})[_0xefcb('0x1f')](respondWithFilteredResult(_0x11286f,_0x18f4ef))[_0xefcb('0x3e')](handleError(_0x11286f,null));};exports['show']=function(_0x464bd7,_0x5ae48d){var _0x36e545={'raw':!![],'where':{'id':_0x464bd7[_0xefcb('0x3f')]['id']}},_0x2a9d91={};_0x2a9d91[_0xefcb('0x40')]=_[_0xefcb('0x2e')](db['VoiceTransferReport']['rawAttributes']);_0x2a9d91[_0xefcb('0x2d')]=_[_0xefcb('0x2e')](_0x464bd7['query']);_0x2a9d91['filters']=_['intersection'](_0x2a9d91[_0xefcb('0x40')],_0x2a9d91[_0xefcb('0x2d')]);_0x36e545['attributes']=_[_0xefcb('0x30')](_0x2a9d91['model'],qs[_0xefcb('0x32')](_0x464bd7[_0xefcb('0x2d')][_0xefcb('0x32')]));_0x36e545[_0xefcb('0x31')]=_0x36e545[_0xefcb('0x31')]['length']?_0x36e545[_0xefcb('0x31')]:_0x2a9d91['model'];if(_0x464bd7[_0xefcb('0x2d')]['includeAll']){_0x36e545[_0xefcb('0x3c')]=[{'all':!![]}];}_0x36e545=_['merge']({},_0x36e545,_0x464bd7[_0xefcb('0x3b')]);return db['VoiceTransferReport'][_0xefcb('0x41')](_0x36e545)[_0xefcb('0x1f')](handleEntityNotFound(_0x5ae48d,null))[_0xefcb('0x1f')](respondWithResult(_0x5ae48d,null))[_0xefcb('0x3e')](handleError(_0x5ae48d,null));};exports[_0xefcb('0x42')]=function(_0x443a93,_0x4b0735){return db[_0xefcb('0x28')]['create'](_0x443a93[_0xefcb('0x43')],{})[_0xefcb('0x1f')](respondWithResult(_0x4b0735,0xc9))[_0xefcb('0x3e')](handleError(_0x4b0735,null));};exports[_0xefcb('0x1e')]=function(_0x3a313f,_0xc3db22){if(_0x3a313f['body']['id']){delete _0x3a313f[_0xefcb('0x43')]['id'];}return db[_0xefcb('0x28')][_0xefcb('0x41')]({'where':{'id':_0x3a313f['params']['id']}})['then'](handleEntityNotFound(_0xc3db22,null))[_0xefcb('0x1f')](saveUpdates(_0x3a313f[_0xefcb('0x43')],null))['then'](respondWithResult(_0xc3db22,null))[_0xefcb('0x3e')](handleError(_0xc3db22,null));};exports[_0xefcb('0x20')]=function(_0x1c3c7d,_0xa27108){return db[_0xefcb('0x28')][_0xefcb('0x41')]({'where':{'id':_0x1c3c7d['params']['id']}})[_0xefcb('0x1f')](handleEntityNotFound(_0xa27108,null))[_0xefcb('0x1f')](removeEntity(_0xa27108,null))[_0xefcb('0x3e')](handleError(_0xa27108,null));};exports[_0xefcb('0x44')]=function(_0x2743ba,_0x12acc6){return db[_0xefcb('0x28')]['describe']()[_0xefcb('0x1f')](respondWithResult(_0x12acc6,null))[_0xefcb('0x3e')](handleError(_0x12acc6,null));};
\ No newline at end of file
+var _0xb27d=['rows','catch','show','length','options','create','body','find','params','describe','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','squel','crypto','jsforce','desk.js','to-csv','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','set','Content-Range','apply','reject','update','then','destroy','end','error','stack','name','index','map','VoiceTransferReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','sort','filter','where','merge','type','VIRTUAL','count','includeAll'];(function(_0x20dbe4,_0x2693ff){var _0x459d2e=function(_0x2d28bf){while(--_0x2d28bf){_0x20dbe4['push'](_0x20dbe4['shift']());}};_0x459d2e(++_0x2693ff);}(_0xb27d,0xe5));var _0xdb27=function(_0x484e36,_0x4482d8){_0x484e36=_0x484e36-0x0;var _0xafc85d=_0xb27d[_0x484e36];return _0xafc85d;};'use strict';var pdf=require(_0xdb27('0x0'));var emlformat=require(_0xdb27('0x1'));var rimraf=require(_0xdb27('0x2'));var zipdir=require(_0xdb27('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdb27('0x4'));var moment=require(_0xdb27('0x5'));var BPromise=require(_0xdb27('0x6'));var Mustache=require(_0xdb27('0x7'));var util=require(_0xdb27('0x8'));var path=require(_0xdb27('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xdb27('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xdb27('0xb'));var crypto=require(_0xdb27('0xc'));var jsforce=require(_0xdb27('0xd'));var deskjs=require(_0xdb27('0xe'));var toCsv=require(_0xdb27('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xdb27('0x10'));var qs=require(_0xdb27('0x11'));var as=require(_0xdb27('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xdb27('0x13'))(_0xdb27('0x14'));var utils=require('../../config/utils');var config=require(_0xdb27('0x15'));var licenseUtil=require(_0xdb27('0x16'));var db=require(_0xdb27('0x17'))['db'];function respondWithStatusCode(_0x14456e,_0x58f420){_0x58f420=_0x58f420||0xcc;return function(_0x2b460c){if(_0x2b460c){return _0x14456e[_0xdb27('0x18')](_0x58f420);}return _0x14456e[_0xdb27('0x19')](_0x58f420)['end']();};}function respondWithResult(_0x2d6731,_0x3da690){_0x3da690=_0x3da690||0xc8;return function(_0x578b82){if(_0x578b82){return _0x2d6731['status'](_0x3da690)[_0xdb27('0x1a')](_0x578b82);}};}function respondWithFilteredResult(_0x18d4af,_0x27ddb6){return function(_0x2002fb){if(_0x2002fb){var _0x5eb20c=_0x2002fb['count'],_0x476124=_0x27ddb6[_0xdb27('0x1b')],_0xee4683=_0x27ddb6[_0xdb27('0x1b')]+_0x27ddb6['limit'],_0x51a0f0;if(_0xee4683>=_0x5eb20c){_0xee4683=_0x5eb20c;_0x51a0f0=0xc8;}else{_0x51a0f0=0xce;}_0x18d4af['status'](_0x51a0f0);return _0x18d4af[_0xdb27('0x1c')](_0xdb27('0x1d'),_0x476124+'-'+_0xee4683+'/'+_0x5eb20c)[_0xdb27('0x1a')](_0x2002fb);}return null;};}function patchUpdates(_0x4dbd1a){return function(_0x4bfcd3){try{jsonpatch[_0xdb27('0x1e')](_0x4bfcd3,_0x4dbd1a,!![]);}catch(_0x3bbf95){return BPromise[_0xdb27('0x1f')](_0x3bbf95);}return _0x4bfcd3['save']();};}function saveUpdates(_0x3d2039,_0x2f6ff6){return function(_0x7b6d08){if(_0x7b6d08){return _0x7b6d08[_0xdb27('0x20')](_0x3d2039)[_0xdb27('0x21')](function(_0x5a5c9c){return _0x5a5c9c;});}return null;};}function removeEntity(_0x344ce2,_0x23c655){return function(_0x5ec5f7){if(_0x5ec5f7){return _0x5ec5f7[_0xdb27('0x22')]()[_0xdb27('0x21')](function(){_0x344ce2[_0xdb27('0x19')](0xcc)[_0xdb27('0x23')]();});}};}function handleEntityNotFound(_0x4f8efe,_0x11fd96){return function(_0xe903c8){if(!_0xe903c8){_0x4f8efe[_0xdb27('0x18')](0x194);}return _0xe903c8;};}function handleError(_0x4698a6,_0x2e4a80){_0x2e4a80=_0x2e4a80||0x1f4;return function(_0xb66181){logger[_0xdb27('0x24')](_0xb66181[_0xdb27('0x25')]);if(_0xb66181[_0xdb27('0x26')]){delete _0xb66181[_0xdb27('0x26')];}_0x4698a6[_0xdb27('0x19')](_0x2e4a80)['send'](_0xb66181);};}exports[_0xdb27('0x27')]=function(_0x270d03,_0xbdb473){var _0x2b493a={},_0x3dd589={},_0x9971bf={'count':0x0,'rows':[]};var _0x2bba7c=_[_0xdb27('0x28')](db[_0xdb27('0x29')][_0xdb27('0x2a')],function(_0x2f3d5e){return{'name':_0x2f3d5e[_0xdb27('0x2b')],'type':_0x2f3d5e['type'][_0xdb27('0x2c')]};});_0x3dd589[_0xdb27('0x2d')]=_[_0xdb27('0x28')](_0x2bba7c,'name');_0x3dd589[_0xdb27('0x2e')]=_[_0xdb27('0x2f')](_0x270d03[_0xdb27('0x2e')]);_0x3dd589[_0xdb27('0x30')]=_[_0xdb27('0x31')](_0x3dd589[_0xdb27('0x2d')],_0x3dd589[_0xdb27('0x2e')]);_0x2b493a['attributes']=_[_0xdb27('0x31')](_0x3dd589[_0xdb27('0x2d')],qs[_0xdb27('0x32')](_0x270d03[_0xdb27('0x2e')][_0xdb27('0x32')]));_0x2b493a[_0xdb27('0x33')]=_0x2b493a[_0xdb27('0x33')]['length']?_0x2b493a[_0xdb27('0x33')]:_0x3dd589[_0xdb27('0x2d')];if(!_0x270d03[_0xdb27('0x2e')][_0xdb27('0x34')](_0xdb27('0x35'))){_0x2b493a[_0xdb27('0x36')]=qs['limit'](_0x270d03[_0xdb27('0x2e')]['limit']);_0x2b493a[_0xdb27('0x1b')]=qs[_0xdb27('0x1b')](_0x270d03['query'][_0xdb27('0x1b')]);}_0x2b493a['order']=qs[_0xdb27('0x37')](_0x270d03['query'][_0xdb27('0x37')]);_0x2b493a['where']=qs[_0xdb27('0x30')](_['pick'](_0x270d03['query'],_0x3dd589['filters']),_0x2bba7c);if(_0x270d03[_0xdb27('0x2e')][_0xdb27('0x38')]){_0x2b493a[_0xdb27('0x39')]=_[_0xdb27('0x3a')](_0x2b493a['where'],{'$or':_[_0xdb27('0x28')](_0x2bba7c,function(_0x3c35c9){if(_0x3c35c9[_0xdb27('0x3b')]!==_0xdb27('0x3c')){var _0x512c92={};_0x512c92[_0x3c35c9[_0xdb27('0x26')]]={'$like':'%'+_0x270d03['query']['filter']+'%'};return _0x512c92;}})});}_0x2b493a=_[_0xdb27('0x3a')]({},_0x2b493a,_0x270d03['options']);var _0x2989ff={'where':_0x2b493a[_0xdb27('0x39')]};return db[_0xdb27('0x29')][_0xdb27('0x3d')](_0x2989ff)[_0xdb27('0x21')](function(_0x154ca7){_0x9971bf[_0xdb27('0x3d')]=_0x154ca7;if(_0x270d03['query'][_0xdb27('0x3e')]){_0x2b493a['include']=[{'all':!![]}];}return db[_0xdb27('0x29')]['findAll'](_0x2b493a);})[_0xdb27('0x21')](function(_0x1f179a){_0x9971bf[_0xdb27('0x3f')]=_0x1f179a;return _0x9971bf;})[_0xdb27('0x21')](respondWithFilteredResult(_0xbdb473,_0x2b493a))[_0xdb27('0x40')](handleError(_0xbdb473,null));};exports[_0xdb27('0x41')]=function(_0x3e52fd,_0x246f62){var _0x52543c={'raw':!![],'where':{'id':_0x3e52fd['params']['id']}},_0x4524fe={};_0x4524fe[_0xdb27('0x2d')]=_[_0xdb27('0x2f')](db[_0xdb27('0x29')]['rawAttributes']);_0x4524fe[_0xdb27('0x2e')]=_['keys'](_0x3e52fd[_0xdb27('0x2e')]);_0x4524fe[_0xdb27('0x30')]=_[_0xdb27('0x31')](_0x4524fe[_0xdb27('0x2d')],_0x4524fe[_0xdb27('0x2e')]);_0x52543c['attributes']=_['intersection'](_0x4524fe[_0xdb27('0x2d')],qs['fields'](_0x3e52fd['query'][_0xdb27('0x32')]));_0x52543c[_0xdb27('0x33')]=_0x52543c[_0xdb27('0x33')][_0xdb27('0x42')]?_0x52543c['attributes']:_0x4524fe[_0xdb27('0x2d')];if(_0x3e52fd[_0xdb27('0x2e')][_0xdb27('0x3e')]){_0x52543c['include']=[{'all':!![]}];}_0x52543c=_[_0xdb27('0x3a')]({},_0x52543c,_0x3e52fd[_0xdb27('0x43')]);return db[_0xdb27('0x29')]['find'](_0x52543c)[_0xdb27('0x21')](handleEntityNotFound(_0x246f62,null))[_0xdb27('0x21')](respondWithResult(_0x246f62,null))[_0xdb27('0x40')](handleError(_0x246f62,null));};exports[_0xdb27('0x44')]=function(_0x4c7784,_0x2df18e){return db[_0xdb27('0x29')][_0xdb27('0x44')](_0x4c7784[_0xdb27('0x45')],{})['then'](respondWithResult(_0x2df18e,0xc9))[_0xdb27('0x40')](handleError(_0x2df18e,null));};exports[_0xdb27('0x20')]=function(_0x1e6366,_0x40624d){if(_0x1e6366[_0xdb27('0x45')]['id']){delete _0x1e6366[_0xdb27('0x45')]['id'];}return db[_0xdb27('0x29')][_0xdb27('0x46')]({'where':{'id':_0x1e6366[_0xdb27('0x47')]['id']}})[_0xdb27('0x21')](handleEntityNotFound(_0x40624d,null))[_0xdb27('0x21')](saveUpdates(_0x1e6366[_0xdb27('0x45')],null))[_0xdb27('0x21')](respondWithResult(_0x40624d,null))[_0xdb27('0x40')](handleError(_0x40624d,null));};exports[_0xdb27('0x22')]=function(_0x3e7b81,_0x2c584e){return db[_0xdb27('0x29')][_0xdb27('0x46')]({'where':{'id':_0x3e7b81[_0xdb27('0x47')]['id']}})[_0xdb27('0x21')](handleEntityNotFound(_0x2c584e,null))[_0xdb27('0x21')](removeEntity(_0x2c584e,null))[_0xdb27('0x40')](handleError(_0x2c584e,null));};exports[_0xdb27('0x48')]=function(_0x411ef2,_0x294145){return db[_0xdb27('0x29')]['describe']()[_0xdb27('0x21')](respondWithResult(_0x294145,null))['catch'](handleError(_0x294145,null));};
\ No newline at end of file