Built motion from commit (unavailable).|2.5.8
[motion2.git] / server / api / intVtigerAccount / intVtigerAccount.controller.js
index 658b732..26d1006 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x2c78=['util','path','sox','to-csv','ejs','lodash','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../mysqldb','jayson/promise','client','http','test','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','name','index','map','VtigerAccount','rawAttributes','fieldName','type','model','query','filters','intersection','fields','length','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','includeAll','include','findAll','rows','catch','show','keys','merge','options','find','create','body','params','getConfigurations','findOne','VtigerConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','md5','username','description','moduleName','remoteUri','accessKey','substring','lastIndexOf','%s/webservice.php','GET','success','POST','token','describe','sessionName','autogenerated','reference','includes','remove','false','cf_','picklist','picklistValues','value','log','vTiger\x20error:\x20','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache'];(function(_0x4dafd9,_0x414af8){var _0x589ce3=function(_0x34f0bf){while(--_0x34f0bf){_0x4dafd9['push'](_0x4dafd9['shift']());}};_0x589ce3(++_0x414af8);}(_0x2c78,0x17f));var _0x82c7=function(_0xd158dc,_0x128608){_0xd158dc=_0xd158dc-0x0;var _0x12d25f=_0x2c78[_0xd158dc];return _0x12d25f;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x82c7('0x0'));var rimraf=require(_0x82c7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x82c7('0x2'));var rp=require(_0x82c7('0x3'));var moment=require(_0x82c7('0x4'));var BPromise=require(_0x82c7('0x5'));var Mustache=require(_0x82c7('0x6'));var util=require(_0x82c7('0x7'));var path=require(_0x82c7('0x8'));var sox=require(_0x82c7('0x9'));var csv=require(_0x82c7('0xa'));var ejs=require(_0x82c7('0xb'));var fs=require('fs');var _=require(_0x82c7('0xc'));var squel=require('squel');var crypto=require(_0x82c7('0xd'));var jsforce=require(_0x82c7('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x82c7('0xa'));var querystring=require(_0x82c7('0xf'));var Papa=require('papaparse');var Redis=require(_0x82c7('0x10'));var authService=require(_0x82c7('0x11'));var qs=require(_0x82c7('0x12'));var as=require(_0x82c7('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x82c7('0x14'));var utils=require(_0x82c7('0x15'));var config=require('../../config/environment');var db=require(_0x82c7('0x16'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x82c7('0x17'));var client=jayson[_0x82c7('0x18')][_0x82c7('0x19')]({'port':0x232a});function checkPasswordPattern(_0x5b0439,_0x148cb7,_0xf07710){if(_0xf07710){var _0x588e69=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x588e69[_0x82c7('0x1a')](_0x148cb7)){return _0x5b0439;}else{throw new db['Sequelize'][(_0x82c7('0x1b'))](_0x82c7('0x1c'));}}else{return _0x5b0439;}}function respondWithRpcPromise(_0x5c282c,_0x1effd0,_0x3f38da,_0x2d51ea){return new BPromise(function(_0x5e7bf5,_0x4e9ed9){var _0x114b29=_0x2d51ea||client;return _0x114b29[_0x82c7('0x1d')](_0x5c282c,_0x3f38da)['then'](function(_0x5bb6e4){logger[_0x82c7('0x1e')](_0x82c7('0x1f'),_0x1effd0,_0x82c7('0x20'));logger[_0x82c7('0x21')]('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x1effd0,_0x82c7('0x20'),JSON[_0x82c7('0x22')](_0x5bb6e4));if(_0x5bb6e4[_0x82c7('0x23')]){if(_0x5bb6e4[_0x82c7('0x23')][_0x82c7('0x24')]===0x1f4){logger[_0x82c7('0x23')](_0x82c7('0x1f'),_0x1effd0,_0x5bb6e4['error'][_0x82c7('0x25')]);return _0x4e9ed9(_0x5bb6e4[_0x82c7('0x23')][_0x82c7('0x25')]);}logger['error'](_0x82c7('0x1f'),_0x1effd0,_0x5bb6e4[_0x82c7('0x23')][_0x82c7('0x25')]);return _0x5e7bf5(_0x5bb6e4['error'][_0x82c7('0x25')]);}else{logger['info'](_0x82c7('0x1f'),_0x1effd0,_0x82c7('0x20'));_0x5e7bf5(_0x5bb6e4[_0x82c7('0x26')][_0x82c7('0x25')]);}})['catch'](function(_0x1b46b7){logger['error']('VtigerAccount,\x20%s,\x20%s',_0x1effd0,_0x1b46b7);_0x4e9ed9(_0x1b46b7);});});}function respondWithStatusCode(_0x107dd8,_0x1980cc){_0x1980cc=_0x1980cc||0xcc;return function(_0x4fd278){if(_0x4fd278){return _0x107dd8[_0x82c7('0x27')](_0x1980cc);}return _0x107dd8[_0x82c7('0x28')](_0x1980cc)[_0x82c7('0x29')]();};}function respondWithResult(_0x5c2739,_0x517336){_0x517336=_0x517336||0xc8;return function(_0x159ac0){if(_0x159ac0){return _0x5c2739[_0x82c7('0x28')](_0x517336)[_0x82c7('0x2a')](_0x159ac0);}};}function respondWithFilteredResult(_0x403b5b,_0x46e9f9){return function(_0x1c9ed6){if(_0x1c9ed6){var _0x10a123=_0x1c9ed6[_0x82c7('0x2b')],_0x4da67d=_0x46e9f9[_0x82c7('0x2c')],_0x5657d5=_0x46e9f9[_0x82c7('0x2c')]+_0x46e9f9[_0x82c7('0x2d')],_0x22a2ea;if(_0x5657d5>=_0x10a123){_0x5657d5=_0x10a123;_0x22a2ea=0xc8;}else{_0x22a2ea=0xce;}_0x403b5b[_0x82c7('0x28')](_0x22a2ea);return _0x403b5b[_0x82c7('0x2e')](_0x82c7('0x2f'),_0x4da67d+'-'+_0x5657d5+'/'+_0x10a123)[_0x82c7('0x2a')](_0x1c9ed6);}return null;};}function patchUpdates(_0x2fc560){return function(_0x1aef25){try{jsonpatch[_0x82c7('0x30')](_0x1aef25,_0x2fc560,!![]);}catch(_0x583d69){return BPromise[_0x82c7('0x31')](_0x583d69);}return _0x1aef25[_0x82c7('0x32')]();};}function saveUpdates(_0x2c11a6,_0x447bc8){return function(_0x519f94){if(_0x519f94){return _0x519f94[_0x82c7('0x33')](_0x2c11a6)[_0x82c7('0x34')](function(_0x5810be){return _0x5810be;});}return null;};}function removeEntity(_0x127e5c,_0x49706d){return function(_0x56eec0){if(_0x56eec0){return _0x56eec0[_0x82c7('0x35')]()[_0x82c7('0x34')](function(){_0x127e5c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x10b674,_0x3f8fd8){return function(_0x1486aa){if(!_0x1486aa){_0x10b674[_0x82c7('0x27')](0x194);}return _0x1486aa;};}function handleError(_0x2d548d,_0x19b141){_0x19b141=_0x19b141||0x1f4;return function(_0x405276){logger[_0x82c7('0x23')](_0x405276['stack']);if(_0x405276[_0x82c7('0x36')]){delete _0x405276['name'];}_0x2d548d[_0x82c7('0x28')](_0x19b141)['send'](_0x405276);};}exports[_0x82c7('0x37')]=function(_0x2ff80e,_0x12e6fb){var _0x3e7297={},_0x1d218f={},_0x8b181c={'count':0x0,'rows':[]};var _0x53e17b=_[_0x82c7('0x38')](db[_0x82c7('0x39')][_0x82c7('0x3a')],function(_0xc1dbeb){return{'name':_0xc1dbeb[_0x82c7('0x3b')],'type':_0xc1dbeb[_0x82c7('0x3c')]['key']};});_0x1d218f[_0x82c7('0x3d')]=_[_0x82c7('0x38')](_0x53e17b,_0x82c7('0x36'));_0x1d218f[_0x82c7('0x3e')]=_['keys'](_0x2ff80e[_0x82c7('0x3e')]);_0x1d218f[_0x82c7('0x3f')]=_[_0x82c7('0x40')](_0x1d218f[_0x82c7('0x3d')],_0x1d218f[_0x82c7('0x3e')]);_0x3e7297['attributes']=_[_0x82c7('0x40')](_0x1d218f[_0x82c7('0x3d')],qs[_0x82c7('0x41')](_0x2ff80e['query'][_0x82c7('0x41')]));_0x3e7297['attributes']=_0x3e7297['attributes'][_0x82c7('0x42')]?_0x3e7297[_0x82c7('0x43')]:_0x1d218f['model'];if(!_0x2ff80e[_0x82c7('0x3e')][_0x82c7('0x44')](_0x82c7('0x45'))){_0x3e7297['limit']=qs[_0x82c7('0x2d')](_0x2ff80e[_0x82c7('0x3e')][_0x82c7('0x2d')]);_0x3e7297['offset']=qs['offset'](_0x2ff80e['query'][_0x82c7('0x2c')]);}_0x3e7297[_0x82c7('0x46')]=qs[_0x82c7('0x47')](_0x2ff80e['query'][_0x82c7('0x47')]);_0x3e7297[_0x82c7('0x48')]=qs[_0x82c7('0x3f')](_[_0x82c7('0x49')](_0x2ff80e[_0x82c7('0x3e')],_0x1d218f[_0x82c7('0x3f')]),_0x53e17b);if(_0x2ff80e[_0x82c7('0x3e')][_0x82c7('0x4a')]){_0x3e7297[_0x82c7('0x48')]=_['merge'](_0x3e7297[_0x82c7('0x48')],{'$or':_['map'](_0x53e17b,function(_0x5ab9f4){if(_0x5ab9f4['type']!==_0x82c7('0x4b')){var _0x2d4380={};_0x2d4380[_0x5ab9f4['name']]={'$like':'%'+_0x2ff80e['query'][_0x82c7('0x4a')]+'%'};return _0x2d4380;}})});}_0x3e7297=_['merge']({},_0x3e7297,_0x2ff80e['options']);var _0x4ffd16={'where':_0x3e7297[_0x82c7('0x48')]};return db['VtigerAccount'][_0x82c7('0x2b')](_0x4ffd16)['then'](function(_0x1d09e6){_0x8b181c['count']=_0x1d09e6;if(_0x2ff80e[_0x82c7('0x3e')][_0x82c7('0x4c')]){_0x3e7297[_0x82c7('0x4d')]=[{'all':!![]}];}return db[_0x82c7('0x39')][_0x82c7('0x4e')](_0x3e7297);})[_0x82c7('0x34')](function(_0x4e5374){_0x8b181c[_0x82c7('0x4f')]=_0x4e5374;return _0x8b181c;})['then'](respondWithFilteredResult(_0x12e6fb,_0x3e7297))[_0x82c7('0x50')](handleError(_0x12e6fb,null));};exports[_0x82c7('0x51')]=function(_0x27a5c9,_0x560a32){var _0x44fe9f={'raw':![],'where':{'id':_0x27a5c9['params']['id']}},_0x497f7a={};_0x497f7a['model']=_[_0x82c7('0x52')](db[_0x82c7('0x39')][_0x82c7('0x3a')]);_0x497f7a[_0x82c7('0x3e')]=_[_0x82c7('0x52')](_0x27a5c9[_0x82c7('0x3e')]);_0x497f7a['filters']=_['intersection'](_0x497f7a[_0x82c7('0x3d')],_0x497f7a[_0x82c7('0x3e')]);_0x44fe9f[_0x82c7('0x43')]=_[_0x82c7('0x40')](_0x497f7a[_0x82c7('0x3d')],qs[_0x82c7('0x41')](_0x27a5c9[_0x82c7('0x3e')][_0x82c7('0x41')]));_0x44fe9f['attributes']=_0x44fe9f['attributes']['length']?_0x44fe9f['attributes']:_0x497f7a[_0x82c7('0x3d')];if(_0x27a5c9[_0x82c7('0x3e')][_0x82c7('0x4c')]){_0x44fe9f[_0x82c7('0x4d')]=[{'all':!![]}];}_0x44fe9f=_[_0x82c7('0x53')]({},_0x44fe9f,_0x27a5c9[_0x82c7('0x54')]);return db['VtigerAccount'][_0x82c7('0x55')](_0x44fe9f)['then'](handleEntityNotFound(_0x560a32,null))[_0x82c7('0x34')](respondWithResult(_0x560a32,null))['catch'](handleError(_0x560a32,null));};exports['create']=function(_0x494946,_0x461059){return db[_0x82c7('0x39')][_0x82c7('0x56')](_0x494946[_0x82c7('0x57')],{})['then'](respondWithResult(_0x461059,0xc9))[_0x82c7('0x50')](handleError(_0x461059,null));};exports[_0x82c7('0x33')]=function(_0xede581,_0x5e60f6){if(_0xede581['body']['id']){delete _0xede581[_0x82c7('0x57')]['id'];}return db[_0x82c7('0x39')][_0x82c7('0x55')]({'where':{'id':_0xede581['params']['id']}})[_0x82c7('0x34')](handleEntityNotFound(_0x5e60f6,null))[_0x82c7('0x34')](saveUpdates(_0xede581[_0x82c7('0x57')],null))[_0x82c7('0x34')](respondWithResult(_0x5e60f6,null))['catch'](handleError(_0x5e60f6,null));};exports[_0x82c7('0x35')]=function(_0x30e47e,_0x119072){return db[_0x82c7('0x39')][_0x82c7('0x55')]({'where':{'id':_0x30e47e[_0x82c7('0x58')]['id']}})[_0x82c7('0x34')](handleEntityNotFound(_0x119072,null))[_0x82c7('0x34')](removeEntity(_0x119072,null))[_0x82c7('0x50')](handleError(_0x119072,null));};exports[_0x82c7('0x59')]=function(_0x20e9cc,_0x1b3944,_0x4e0238){var _0x346650={};var _0x3b2d80={};var _0x25af5d;var _0x52f000;return db[_0x82c7('0x39')][_0x82c7('0x5a')]({'where':{'id':_0x20e9cc[_0x82c7('0x58')]['id']}})[_0x82c7('0x34')](handleEntityNotFound(_0x1b3944,null))[_0x82c7('0x34')](function(_0x591952){if(_0x591952){_0x25af5d=_0x591952;_0x3b2d80[_0x82c7('0x3d')]=_[_0x82c7('0x52')](db[_0x82c7('0x5b')][_0x82c7('0x3a')]);_0x3b2d80[_0x82c7('0x3e')]=_['keys'](_0x20e9cc[_0x82c7('0x3e')]);_0x3b2d80[_0x82c7('0x3f')]=_[_0x82c7('0x40')](_0x3b2d80[_0x82c7('0x3d')],_0x3b2d80[_0x82c7('0x3e')]);_0x346650[_0x82c7('0x43')]=_[_0x82c7('0x40')](_0x3b2d80[_0x82c7('0x3d')],qs[_0x82c7('0x41')](_0x20e9cc[_0x82c7('0x3e')]['fields']));_0x346650[_0x82c7('0x43')]=_0x346650[_0x82c7('0x43')][_0x82c7('0x42')]?_0x346650[_0x82c7('0x43')]:_0x3b2d80[_0x82c7('0x3d')];_0x346650[_0x82c7('0x46')]=qs[_0x82c7('0x47')](_0x20e9cc[_0x82c7('0x3e')][_0x82c7('0x47')]);_0x346650['where']=qs[_0x82c7('0x3f')](_[_0x82c7('0x49')](_0x20e9cc[_0x82c7('0x3e')],_0x3b2d80[_0x82c7('0x3f')]));if(_0x20e9cc['query'][_0x82c7('0x4a')]){_0x346650[_0x82c7('0x48')]=_[_0x82c7('0x53')](_0x346650[_0x82c7('0x48')],{'$or':_[_0x82c7('0x38')](_0x346650[_0x82c7('0x43')],function(_0x87d657){var _0x2db77b={};_0x2db77b[_0x87d657]={'$like':'%'+_0x20e9cc[_0x82c7('0x3e')][_0x82c7('0x4a')]+'%'};return _0x2db77b;})});}_0x346650=_['merge']({},_0x346650,_0x20e9cc[_0x82c7('0x54')]);return _0x25af5d['getConfigurations'](_0x346650);}})[_0x82c7('0x34')](function(_0xc68471){if(_0xc68471){_0x52f000=_0xc68471[_0x82c7('0x42')];if(!_0x20e9cc[_0x82c7('0x3e')][_0x82c7('0x44')](_0x82c7('0x45'))){_0x346650['limit']=qs[_0x82c7('0x2d')](_0x20e9cc[_0x82c7('0x3e')][_0x82c7('0x2d')]);_0x346650[_0x82c7('0x2c')]=qs[_0x82c7('0x2c')](_0x20e9cc[_0x82c7('0x3e')][_0x82c7('0x2c')]);}return _0x25af5d[_0x82c7('0x59')](_0x346650);}})[_0x82c7('0x34')](function(_0x3d90fe){if(_0x3d90fe){return _0x3d90fe?{'count':_0x52f000,'rows':_0x3d90fe}:null;}})[_0x82c7('0x34')](respondWithResult(_0x1b3944,null))[_0x82c7('0x50')](handleError(_0x1b3944,null));};exports[_0x82c7('0x5c')]=function(_0x133a0b,_0x2e01d1,_0x7bee2f){if(_0x133a0b[_0x82c7('0x57')]['id']){delete _0x133a0b['body']['id'];}return db['VtigerAccount'][_0x82c7('0x5a')]({'where':{'id':_0x133a0b[_0x82c7('0x58')]['id']}})['then'](handleEntityNotFound(_0x2e01d1,null))[_0x82c7('0x34')](function(_0x13f717){if(_0x13f717){_0x133a0b[_0x82c7('0x57')][_0x82c7('0x5d')]=_0x13f717['id'];_0x133a0b[_0x82c7('0x57')][_0x82c7('0x5e')]=integrations[_0x82c7('0x5f')](_0x133a0b['body'][_0x82c7('0x60')],_0x133a0b[_0x82c7('0x57')]['type']);_0x133a0b[_0x82c7('0x57')][_0x82c7('0x61')]=integrations[_0x82c7('0x62')](_0x133a0b[_0x82c7('0x57')]['channel'],_0x133a0b[_0x82c7('0x57')]['type']);return db[_0x82c7('0x5b')]['create'](_0x133a0b[_0x82c7('0x57')],{'include':[{'model':db[_0x82c7('0x63')],'as':_0x82c7('0x5e')},{'model':db[_0x82c7('0x63')],'as':'Descriptions'}]});}return null;})[_0x82c7('0x34')](respondWithResult(_0x2e01d1,null))['catch'](handleError(_0x2e01d1,null));};var md5=require(_0x82c7('0x64'));exports['getFields']=function(_0x2aae43,_0x279274,_0x257596){var _0x47ad15=null;var _0x3dc15=null;var _0x284593=null;var _0xe0373a=null;var _0x11626f='';return db[_0x82c7('0x39')][_0x82c7('0x5a')]({'where':{'id':_0x2aae43[_0x82c7('0x58')]['id']},'attributes':['id','name',_0x82c7('0x65'),_0x82c7('0x66'),_0x82c7('0x67'),_0x82c7('0x68'),'serverUrl',_0x82c7('0x69')]})[_0x82c7('0x34')](handleEntityNotFound(_0x279274,null))[_0x82c7('0x34')](function(_0x8af6d2){if(_0x8af6d2){_0x47ad15=_0x8af6d2[_0x82c7('0x65')];_0x3dc15=_0x8af6d2[_0x82c7('0x69')];_0x284593=_0x8af6d2[_0x82c7('0x67')];_0x11626f=_0x8af6d2[_0x82c7('0x68')];var _0x3b8889=_0x11626f['slice'](-0x1);if(_0x3b8889==='/'){_0x11626f=_0x11626f[_0x82c7('0x6a')](0x0,_0x11626f[_0x82c7('0x6b')](_0x3b8889));}_0xe0373a=util['format'](_0x82c7('0x6c'),_0x11626f);var _0x5dc502={'method':_0x82c7('0x6d'),'uri':_0xe0373a,'qs':{'operation':'getchallenge','username':_0x8af6d2[_0x82c7('0x65')]},'json':!![]};return rp(_0x5dc502);}})['then'](function(_0x43ac74){if(_0x43ac74[_0x82c7('0x6e')]){var _0x27f28c={'method':_0x82c7('0x6f'),'uri':_0xe0373a,'form':{'operation':'login','username':_0x47ad15,'accessKey':md5(_0x43ac74['result'][_0x82c7('0x70')]+_0x3dc15)},'json':!![]};return rp(_0x27f28c);}})[_0x82c7('0x34')](function(_0x3089e1){if(_0x3089e1[_0x82c7('0x6e')]){var _0x5a15c9={'method':_0x82c7('0x6d'),'uri':_0xe0373a,'qs':{'operation':_0x82c7('0x71'),'username':_0x47ad15,'sessionName':_0x3089e1[_0x82c7('0x26')][_0x82c7('0x72')],'elementType':_0x284593},'json':!![]};return rp(_0x5a15c9);}})[_0x82c7('0x34')](function(_0x38a0b8){if(_0x38a0b8[_0x82c7('0x6e')]){var _0x39be9d=[_0x82c7('0x73'),_0x82c7('0x74'),'owner'];_['remove'](_0x38a0b8[_0x82c7('0x26')][_0x82c7('0x41')],function(_0x1a502d){return _0x39be9d[_0x82c7('0x75')](_0x1a502d[_0x82c7('0x3c')][_0x82c7('0x36')]);});_[_0x82c7('0x76')](_0x38a0b8[_0x82c7('0x26')][_0x82c7('0x41')],function(_0x2518a9){return _0x2518a9['editable']===_0x82c7('0x77');});return{'count':_0x38a0b8[_0x82c7('0x26')]['fields'][_0x82c7('0x42')],'rows':_[_0x82c7('0x38')](_0x38a0b8[_0x82c7('0x26')][_0x82c7('0x41')],function(_0x1fdada){return{'id':_0x1fdada[_0x82c7('0x36')],'name':_0x1fdada['label'],'custom':_['startsWith'](_0x1fdada['name'],_0x82c7('0x78'))?!![]:![],'options':_0x1fdada[_0x82c7('0x3c')][_0x82c7('0x36')]===_0x82c7('0x79')&&_0x1fdada[_0x82c7('0x3c')][_0x82c7('0x7a')]['length']>0x0?_['map'](_0x1fdada[_0x82c7('0x3c')][_0x82c7('0x7a')],function(_0x4617f1){return{'name':_0x4617f1['label'],'value':_0x4617f1[_0x82c7('0x7b')]};}):[]};})};}})['then'](respondWithResult(_0x279274,null))[_0x82c7('0x50')](function(_0xc384e3){console[_0x82c7('0x7c')](_0x82c7('0x7d')+_0xc384e3);var _0x2d4946=_0x2aae43['query']['test']?0x1f4:_0xc384e3[_0x82c7('0x7e')]||0x1f4;logger[_0x82c7('0x23')](_0x82c7('0x7f'),_0x82c7('0x80'),_0x2d4946,JSON[_0x82c7('0x22')](_0xc384e3));delete _0xc384e3['name'];if(_0x2d4946===0x191){_0x2d4946=0x190;}_0x279274['status'](_0x2d4946)['send'](_0x2aae43[_0x82c7('0x3e')]['test']?{'message':_0x82c7('0x81'),'statusCode':_0xc384e3[_0x82c7('0x7e')]}:_0xc384e3);});};
\ No newline at end of file
+var _0x9fb1=['lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','catch','sendStatus','end','json','offset','status','set','Content-Range','apply','update','destroy','name','send','index','map','VtigerAccount','rawAttributes','type','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','include','findAll','rows','params','keys','find','create','body','getConfigurations','nolimit','addConfiguration','findOne','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','VtigerConfiguration','VtigerField','getFields','username','description','remoteUri','serverUrl','accessKey','moduleName','substring','format','%s/webservice.php','GET','getchallenge','result','describe','sessionName','success','autogenerated','remove','editable','false','startsWith','cf_','value','log','getFields,\x20%s,\x20%s,\x20%s','test','Wrong\x20credentials','statusCode','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv'];(function(_0x228e90,_0x12d534){var _0x161875=function(_0x185ea9){while(--_0x185ea9){_0x228e90['push'](_0x228e90['shift']());}};_0x161875(++_0x12d534);}(_0x9fb1,0xe6));var _0x19fb=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0x9fb1[_0x3e5086];return _0xfeb102;};'use strict';var pdf=require(_0x19fb('0x0'));var emlformat=require(_0x19fb('0x1'));var rimraf=require(_0x19fb('0x2'));var zipdir=require(_0x19fb('0x3'));var jsonpatch=require(_0x19fb('0x4'));var rp=require(_0x19fb('0x5'));var moment=require(_0x19fb('0x6'));var BPromise=require(_0x19fb('0x7'));var Mustache=require(_0x19fb('0x8'));var util=require('util');var path=require(_0x19fb('0x9'));var sox=require(_0x19fb('0xa'));var csv=require(_0x19fb('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x19fb('0xc'));var squel=require(_0x19fb('0xd'));var crypto=require(_0x19fb('0xe'));var jsforce=require(_0x19fb('0xf'));var deskjs=require(_0x19fb('0x10'));var toCsv=require(_0x19fb('0xb'));var querystring=require('querystring');var Papa=require(_0x19fb('0x11'));var Redis=require(_0x19fb('0x12'));var authService=require(_0x19fb('0x13'));var qs=require(_0x19fb('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x19fb('0x15'))(_0x19fb('0x16'));var utils=require(_0x19fb('0x17'));var config=require(_0x19fb('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x19fb('0x19'))['db'];var integrations=require(_0x19fb('0x1a'));var jayson=require(_0x19fb('0x1b'));var client=jayson[_0x19fb('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x28a48d,_0x1ab47d,_0x30436c,_0x474990){return new BPromise(function(_0x1f5e51,_0x364411){var _0x488416=_0x474990||client;return _0x488416['request'](_0x28a48d,_0x30436c)[_0x19fb('0x1d')](function(_0x521689){logger[_0x19fb('0x1e')](_0x19fb('0x1f'),_0x1ab47d,_0x19fb('0x20'));logger[_0x19fb('0x21')]('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x1ab47d,_0x19fb('0x20'),JSON[_0x19fb('0x22')](_0x521689));if(_0x521689['error']){if(_0x521689[_0x19fb('0x23')]['code']===0x1f4){logger[_0x19fb('0x23')](_0x19fb('0x1f'),_0x1ab47d,_0x521689[_0x19fb('0x23')][_0x19fb('0x24')]);return _0x364411(_0x521689[_0x19fb('0x23')][_0x19fb('0x24')]);}logger[_0x19fb('0x23')]('VtigerAccount,\x20%s,\x20%s',_0x1ab47d,_0x521689[_0x19fb('0x23')][_0x19fb('0x24')]);return _0x1f5e51(_0x521689[_0x19fb('0x23')][_0x19fb('0x24')]);}else{logger[_0x19fb('0x1e')](_0x19fb('0x1f'),_0x1ab47d,_0x19fb('0x20'));_0x1f5e51(_0x521689['result']['message']);}})[_0x19fb('0x25')](function(_0x4c9bd6){logger['error']('VtigerAccount,\x20%s,\x20%s',_0x1ab47d,_0x4c9bd6);_0x364411(_0x4c9bd6);});});}function respondWithStatusCode(_0xeab34b,_0x492721){_0x492721=_0x492721||0xcc;return function(_0x818ac0){if(_0x818ac0){return _0xeab34b[_0x19fb('0x26')](_0x492721);}return _0xeab34b['status'](_0x492721)[_0x19fb('0x27')]();};}function respondWithResult(_0x4c825b,_0xdf6404){_0xdf6404=_0xdf6404||0xc8;return function(_0x18bde1){if(_0x18bde1){return _0x4c825b['status'](_0xdf6404)[_0x19fb('0x28')](_0x18bde1);}};}function respondWithFilteredResult(_0x5b75af,_0x3b17a2){return function(_0x40e6db){if(_0x40e6db){var _0x827fc2=_0x40e6db['count'],_0x14623a=_0x3b17a2['offset'],_0x5269ce=_0x3b17a2[_0x19fb('0x29')]+_0x3b17a2['limit'],_0x2590e4;if(_0x5269ce>=_0x827fc2){_0x5269ce=_0x827fc2;_0x2590e4=0xc8;}else{_0x2590e4=0xce;}_0x5b75af[_0x19fb('0x2a')](_0x2590e4);return _0x5b75af[_0x19fb('0x2b')](_0x19fb('0x2c'),_0x14623a+'-'+_0x5269ce+'/'+_0x827fc2)[_0x19fb('0x28')](_0x40e6db);}return null;};}function patchUpdates(_0x55a612){return function(_0x3ccc90){try{jsonpatch[_0x19fb('0x2d')](_0x3ccc90,_0x55a612,!![]);}catch(_0x4d9472){return BPromise['reject'](_0x4d9472);}return _0x3ccc90['save']();};}function saveUpdates(_0x29041e,_0x56425a){return function(_0x412f92){if(_0x412f92){return _0x412f92[_0x19fb('0x2e')](_0x29041e)[_0x19fb('0x1d')](function(_0x3d8708){return _0x3d8708;});}return null;};}function removeEntity(_0x6523bf,_0x13d356){return function(_0x1dbaea){if(_0x1dbaea){return _0x1dbaea[_0x19fb('0x2f')]()[_0x19fb('0x1d')](function(){_0x6523bf[_0x19fb('0x2a')](0xcc)[_0x19fb('0x27')]();});}};}function handleEntityNotFound(_0x5aae8e,_0x4600f8){return function(_0xbb0d9){if(!_0xbb0d9){_0x5aae8e[_0x19fb('0x26')](0x194);}return _0xbb0d9;};}function handleError(_0x19619c,_0x3d7829){_0x3d7829=_0x3d7829||0x1f4;return function(_0x5c9d19){logger[_0x19fb('0x23')](_0x5c9d19['stack']);if(_0x5c9d19[_0x19fb('0x30')]){delete _0x5c9d19['name'];}_0x19619c[_0x19fb('0x2a')](_0x3d7829)[_0x19fb('0x31')](_0x5c9d19);};}exports[_0x19fb('0x32')]=function(_0x46e340,_0x1a03a5){var _0x4d7f07={},_0x363312={},_0xb62517={'count':0x0,'rows':[]};var _0x849aa0=_[_0x19fb('0x33')](db[_0x19fb('0x34')][_0x19fb('0x35')],function(_0x564533){return{'name':_0x564533['fieldName'],'type':_0x564533[_0x19fb('0x36')]['key']};});_0x363312['model']=_[_0x19fb('0x33')](_0x849aa0,_0x19fb('0x30'));_0x363312[_0x19fb('0x37')]=_['keys'](_0x46e340[_0x19fb('0x37')]);_0x363312[_0x19fb('0x38')]=_[_0x19fb('0x39')](_0x363312[_0x19fb('0x3a')],_0x363312['query']);_0x4d7f07[_0x19fb('0x3b')]=_[_0x19fb('0x39')](_0x363312['model'],qs[_0x19fb('0x3c')](_0x46e340['query'][_0x19fb('0x3c')]));_0x4d7f07[_0x19fb('0x3b')]=_0x4d7f07[_0x19fb('0x3b')][_0x19fb('0x3d')]?_0x4d7f07[_0x19fb('0x3b')]:_0x363312[_0x19fb('0x3a')];if(!_0x46e340[_0x19fb('0x37')][_0x19fb('0x3e')]('nolimit')){_0x4d7f07['limit']=qs[_0x19fb('0x3f')](_0x46e340['query']['limit']);_0x4d7f07['offset']=qs[_0x19fb('0x29')](_0x46e340[_0x19fb('0x37')][_0x19fb('0x29')]);}_0x4d7f07[_0x19fb('0x40')]=qs[_0x19fb('0x41')](_0x46e340['query'][_0x19fb('0x41')]);_0x4d7f07[_0x19fb('0x42')]=qs[_0x19fb('0x38')](_[_0x19fb('0x43')](_0x46e340[_0x19fb('0x37')],_0x363312[_0x19fb('0x38')]),_0x849aa0);if(_0x46e340[_0x19fb('0x37')][_0x19fb('0x44')]){_0x4d7f07[_0x19fb('0x42')]=_[_0x19fb('0x45')](_0x4d7f07[_0x19fb('0x42')],{'$or':_[_0x19fb('0x33')](_0x849aa0,function(_0x239e8c){if(_0x239e8c[_0x19fb('0x36')]!==_0x19fb('0x46')){var _0x2f22bb={};_0x2f22bb[_0x239e8c['name']]={'$like':'%'+_0x46e340[_0x19fb('0x37')][_0x19fb('0x44')]+'%'};return _0x2f22bb;}})});}_0x4d7f07=_[_0x19fb('0x45')]({},_0x4d7f07,_0x46e340[_0x19fb('0x47')]);var _0x1f8eca={'where':_0x4d7f07[_0x19fb('0x42')]};return db['VtigerAccount'][_0x19fb('0x48')](_0x1f8eca)[_0x19fb('0x1d')](function(_0x113857){_0xb62517[_0x19fb('0x48')]=_0x113857;if(_0x46e340[_0x19fb('0x37')]['includeAll']){_0x4d7f07[_0x19fb('0x49')]=[{'all':!![]}];}return db['VtigerAccount'][_0x19fb('0x4a')](_0x4d7f07);})['then'](function(_0x4b2939){_0xb62517[_0x19fb('0x4b')]=_0x4b2939;return _0xb62517;})[_0x19fb('0x1d')](respondWithFilteredResult(_0x1a03a5,_0x4d7f07))[_0x19fb('0x25')](handleError(_0x1a03a5,null));};exports['show']=function(_0x3e6b20,_0x1112c8){var _0x3b7732={'raw':![],'where':{'id':_0x3e6b20[_0x19fb('0x4c')]['id']}},_0x30a57c={};_0x30a57c[_0x19fb('0x3a')]=_[_0x19fb('0x4d')](db['VtigerAccount'][_0x19fb('0x35')]);_0x30a57c[_0x19fb('0x37')]=_[_0x19fb('0x4d')](_0x3e6b20[_0x19fb('0x37')]);_0x30a57c['filters']=_[_0x19fb('0x39')](_0x30a57c['model'],_0x30a57c[_0x19fb('0x37')]);_0x3b7732[_0x19fb('0x3b')]=_[_0x19fb('0x39')](_0x30a57c[_0x19fb('0x3a')],qs[_0x19fb('0x3c')](_0x3e6b20[_0x19fb('0x37')]['fields']));_0x3b7732['attributes']=_0x3b7732[_0x19fb('0x3b')]['length']?_0x3b7732[_0x19fb('0x3b')]:_0x30a57c[_0x19fb('0x3a')];if(_0x3e6b20['query']['includeAll']){_0x3b7732[_0x19fb('0x49')]=[{'all':!![]}];}_0x3b7732=_[_0x19fb('0x45')]({},_0x3b7732,_0x3e6b20[_0x19fb('0x47')]);return db[_0x19fb('0x34')][_0x19fb('0x4e')](_0x3b7732)['then'](handleEntityNotFound(_0x1112c8,null))['then'](respondWithResult(_0x1112c8,null))[_0x19fb('0x25')](handleError(_0x1112c8,null));};exports[_0x19fb('0x4f')]=function(_0x3fb562,_0x3c0931){return db[_0x19fb('0x34')]['create'](_0x3fb562['body'],{})[_0x19fb('0x1d')](respondWithResult(_0x3c0931,0xc9))['catch'](handleError(_0x3c0931,null));};exports[_0x19fb('0x2e')]=function(_0x4fe082,_0x4daffb){if(_0x4fe082[_0x19fb('0x50')]['id']){delete _0x4fe082[_0x19fb('0x50')]['id'];}return db[_0x19fb('0x34')][_0x19fb('0x4e')]({'where':{'id':_0x4fe082['params']['id']}})['then'](handleEntityNotFound(_0x4daffb,null))[_0x19fb('0x1d')](saveUpdates(_0x4fe082[_0x19fb('0x50')],null))[_0x19fb('0x1d')](respondWithResult(_0x4daffb,null))['catch'](handleError(_0x4daffb,null));};exports['destroy']=function(_0x40a16b,_0x16d387){return db[_0x19fb('0x34')][_0x19fb('0x4e')]({'where':{'id':_0x40a16b[_0x19fb('0x4c')]['id']}})[_0x19fb('0x1d')](handleEntityNotFound(_0x16d387,null))['then'](removeEntity(_0x16d387,null))[_0x19fb('0x25')](handleError(_0x16d387,null));};exports[_0x19fb('0x51')]=function(_0x164eb1,_0x4bc324,_0x508ae6){var _0x41387d={};var _0xd24565={};var _0x202f5c;var _0x153c16;return db[_0x19fb('0x34')]['findOne']({'where':{'id':_0x164eb1[_0x19fb('0x4c')]['id']}})[_0x19fb('0x1d')](handleEntityNotFound(_0x4bc324,null))[_0x19fb('0x1d')](function(_0x4d9a74){if(_0x4d9a74){_0x202f5c=_0x4d9a74;_0xd24565[_0x19fb('0x3a')]=_[_0x19fb('0x4d')](db['VtigerConfiguration'][_0x19fb('0x35')]);_0xd24565[_0x19fb('0x37')]=_['keys'](_0x164eb1[_0x19fb('0x37')]);_0xd24565[_0x19fb('0x38')]=_[_0x19fb('0x39')](_0xd24565['model'],_0xd24565[_0x19fb('0x37')]);_0x41387d[_0x19fb('0x3b')]=_[_0x19fb('0x39')](_0xd24565['model'],qs[_0x19fb('0x3c')](_0x164eb1['query']['fields']));_0x41387d[_0x19fb('0x3b')]=_0x41387d['attributes'][_0x19fb('0x3d')]?_0x41387d[_0x19fb('0x3b')]:_0xd24565[_0x19fb('0x3a')];_0x41387d[_0x19fb('0x40')]=qs[_0x19fb('0x41')](_0x164eb1[_0x19fb('0x37')][_0x19fb('0x41')]);_0x41387d[_0x19fb('0x42')]=qs['filters'](_[_0x19fb('0x43')](_0x164eb1['query'],_0xd24565[_0x19fb('0x38')]));if(_0x164eb1[_0x19fb('0x37')][_0x19fb('0x44')]){_0x41387d['where']=_['merge'](_0x41387d[_0x19fb('0x42')],{'$or':_[_0x19fb('0x33')](_0x41387d[_0x19fb('0x3b')],function(_0x33eede){var _0x38a7f4={};_0x38a7f4[_0x33eede]={'$like':'%'+_0x164eb1[_0x19fb('0x37')]['filter']+'%'};return _0x38a7f4;})});}_0x41387d=_[_0x19fb('0x45')]({},_0x41387d,_0x164eb1[_0x19fb('0x47')]);return _0x202f5c[_0x19fb('0x51')](_0x41387d);}})[_0x19fb('0x1d')](function(_0x37deeb){if(_0x37deeb){_0x153c16=_0x37deeb[_0x19fb('0x3d')];if(!_0x164eb1[_0x19fb('0x37')][_0x19fb('0x3e')](_0x19fb('0x52'))){_0x41387d[_0x19fb('0x3f')]=qs['limit'](_0x164eb1['query'][_0x19fb('0x3f')]);_0x41387d[_0x19fb('0x29')]=qs['offset'](_0x164eb1[_0x19fb('0x37')][_0x19fb('0x29')]);}return _0x202f5c[_0x19fb('0x51')](_0x41387d);}})[_0x19fb('0x1d')](function(_0x2159f1){if(_0x2159f1){return _0x2159f1?{'count':_0x153c16,'rows':_0x2159f1}:null;}})[_0x19fb('0x1d')](respondWithResult(_0x4bc324,null))[_0x19fb('0x25')](handleError(_0x4bc324,null));};exports[_0x19fb('0x53')]=function(_0x5bfefd,_0x536e56,_0x19a4ce){if(_0x5bfefd[_0x19fb('0x50')]['id']){delete _0x5bfefd[_0x19fb('0x50')]['id'];}return db[_0x19fb('0x34')][_0x19fb('0x54')]({'where':{'id':_0x5bfefd[_0x19fb('0x4c')]['id']}})[_0x19fb('0x1d')](handleEntityNotFound(_0x536e56,null))[_0x19fb('0x1d')](function(_0x5ec16c){if(_0x5ec16c){_0x5bfefd['body'][_0x19fb('0x55')]=_0x5ec16c['id'];_0x5bfefd[_0x19fb('0x50')][_0x19fb('0x56')]=integrations[_0x19fb('0x57')](_0x5bfefd[_0x19fb('0x50')]['channel'],_0x5bfefd[_0x19fb('0x50')]['type']);_0x5bfefd[_0x19fb('0x50')][_0x19fb('0x58')]=integrations[_0x19fb('0x59')](_0x5bfefd[_0x19fb('0x50')][_0x19fb('0x5a')],_0x5bfefd[_0x19fb('0x50')][_0x19fb('0x36')]);return db[_0x19fb('0x5b')][_0x19fb('0x4f')](_0x5bfefd['body'],{'include':[{'model':db['VtigerField'],'as':_0x19fb('0x56')},{'model':db[_0x19fb('0x5c')],'as':_0x19fb('0x58')}]});}return null;})[_0x19fb('0x1d')](respondWithResult(_0x536e56,null))[_0x19fb('0x25')](handleError(_0x536e56,null));};var md5=require('md5');exports[_0x19fb('0x5d')]=function(_0x38db77,_0x5b03e3,_0x1b3a1a){var _0x10b131=null;var _0x72437=null;var _0x5d8f8f=null;var _0x2e8f70=null;var _0xe91308='';return db[_0x19fb('0x34')][_0x19fb('0x54')]({'where':{'id':_0x38db77[_0x19fb('0x4c')]['id']},'attributes':['id',_0x19fb('0x30'),_0x19fb('0x5e'),_0x19fb('0x5f'),'moduleName',_0x19fb('0x60'),_0x19fb('0x61'),_0x19fb('0x62')]})['then'](handleEntityNotFound(_0x5b03e3,null))[_0x19fb('0x1d')](function(_0x27a92d){if(_0x27a92d){_0x10b131=_0x27a92d[_0x19fb('0x5e')];_0x72437=_0x27a92d[_0x19fb('0x62')];_0x5d8f8f=_0x27a92d[_0x19fb('0x63')];_0xe91308=_0x27a92d[_0x19fb('0x60')];var _0xdfea2e=_0xe91308['slice'](-0x1);if(_0xdfea2e==='/'){_0xe91308=_0xe91308[_0x19fb('0x64')](0x0,_0xe91308['lastIndexOf'](_0xdfea2e));}_0x2e8f70=util[_0x19fb('0x65')](_0x19fb('0x66'),_0xe91308);var _0x327592={'method':_0x19fb('0x67'),'uri':_0x2e8f70,'qs':{'operation':_0x19fb('0x68'),'username':_0x27a92d['username']},'json':!![]};return rp(_0x327592);}})[_0x19fb('0x1d')](function(_0x34532f){if(_0x34532f['success']){var _0x1c1fe5={'method':'POST','uri':_0x2e8f70,'form':{'operation':'login','username':_0x10b131,'accessKey':md5(_0x34532f[_0x19fb('0x69')]['token']+_0x72437)},'json':!![]};return rp(_0x1c1fe5);}})['then'](function(_0x42ab0b){if(_0x42ab0b['success']){var _0x4a0855={'method':_0x19fb('0x67'),'uri':_0x2e8f70,'qs':{'operation':_0x19fb('0x6a'),'username':_0x10b131,'sessionName':_0x42ab0b['result'][_0x19fb('0x6b')],'elementType':_0x5d8f8f},'json':!![]};return rp(_0x4a0855);}})[_0x19fb('0x1d')](function(_0x36b25a){if(_0x36b25a[_0x19fb('0x6c')]){var _0xc7dcdf=[_0x19fb('0x6d'),'reference','owner'];_[_0x19fb('0x6e')](_0x36b25a[_0x19fb('0x69')][_0x19fb('0x3c')],function(_0x30ecc8){return _0xc7dcdf['includes'](_0x30ecc8[_0x19fb('0x36')][_0x19fb('0x30')]);});_[_0x19fb('0x6e')](_0x36b25a[_0x19fb('0x69')][_0x19fb('0x3c')],function(_0x342354){return _0x342354[_0x19fb('0x6f')]===_0x19fb('0x70');});return{'count':_0x36b25a[_0x19fb('0x69')][_0x19fb('0x3c')][_0x19fb('0x3d')],'rows':_[_0x19fb('0x33')](_0x36b25a[_0x19fb('0x69')][_0x19fb('0x3c')],function(_0x2fcc05){return{'id':_0x2fcc05[_0x19fb('0x30')],'name':_0x2fcc05['label'],'custom':_[_0x19fb('0x71')](_0x2fcc05[_0x19fb('0x30')],_0x19fb('0x72'))?!![]:![],'options':_0x2fcc05[_0x19fb('0x36')][_0x19fb('0x30')]==='picklist'&&_0x2fcc05['type']['picklistValues'][_0x19fb('0x3d')]>0x0?_['map'](_0x2fcc05[_0x19fb('0x36')]['picklistValues'],function(_0x3201b3){return{'name':_0x3201b3['label'],'value':_0x3201b3[_0x19fb('0x73')]};}):[]};})};}})[_0x19fb('0x1d')](respondWithResult(_0x5b03e3,null))['catch'](function(_0x5c8946){console[_0x19fb('0x74')]('vTiger\x20error:\x20'+_0x5c8946);var _0x708085=_0x38db77[_0x19fb('0x37')]['test']?0x1f4:_0x5c8946['statusCode']||0x1f4;logger[_0x19fb('0x23')](_0x19fb('0x75'),_0x19fb('0x5d'),_0x708085,JSON[_0x19fb('0x22')](_0x5c8946));delete _0x5c8946['name'];if(_0x708085===0x191){_0x708085=0x190;}_0x5b03e3[_0x19fb('0x2a')](_0x708085)['send'](_0x38db77[_0x19fb('0x37')][_0x19fb('0x76')]?{'message':_0x19fb('0x77'),'statusCode':_0x5c8946[_0x19fb('0x78')]}:_0x5c8946);});};
\ No newline at end of file