REBOL [
    Title: "Patch for the ESMTP handler object and net-utils object"
    Date: 01-Aug-2005
    File: %patch-esmtp-net.r
    Author: "Cesar Chavez"
    Purpose: {Patches to fix smtp authentication other than "CRAM-MD5".}
    Comment: {	The authentication methods "CRAM-MD5" and "PLAIN" are individually well implemented in REBOL/View 1.3.1.3.1, but
				the ESMTP protocol try first with "CRAM-MD5", and if this fail, then try "PLAIN". Some smtp servers response have 
				more than one line when "CRAM-MD5" fail and here is the problem.

				With this patches, I send a EHLO command to smtp server, to know which authentication methods there are implemented
				and use the appropriate one to init the user session.

				This script change the open function within system/schemes/esmtp/handler object and the confirm function within
				net-utils object.

				The "CRAM-MD5" and "PLAIN" methods are the originals in the handler, but I rewrite the flow procedure, and I add
				"LOGIN" method. By the way, with this new flow, it will be easy to add new methods.

				In the confirm function I add only a new refinement to capture all the server responses to EHLO command.

				I think that this changes have not side effects, because the new confirm refinement are used only within open function
				of esmtp handler.

				However, all of this need to be tested.

				Special thanks to Bernie Schneider, who help me to test this script under AVG antivirus environment.

	}
    Version: 1.2.1 ; majorv.minorv.status
                   ; status: 0: unfinished; 1: testing; 2: stable
    History: [
        26-Jul-2005 1.1.1 "History start"
        01-Aug-2005 1.2.1 "To avoid HELO/EHLO duplication and updates to doc"
    ]

	Library: [
    	level: 'intermediate
        platform: [windows]
        type: [protocol]
        domain: [protocol email patch]
        tested-under: ["REBOL/View 1.3.1.3.1 WinXP"]
        support: none
        license: none
	]
]

	; -----
	; ----- step 1 - compare original code patched with the code to patch (to prevent overwrite RT updates)
	; ----- step 2 - install patches
	; -----
	; ----- For test purposes you can open a new REBOL/View instance and within this, run the script, after it, run your application
	; ----- for send email (into the same instance). In other instances the objects remain unchanged.
	; -----
	; ----- Your application need to set username and password in ESMTP scheme
	; ----- system/schemes/esmtp/user: "your-user-name"
	; ----- system/schemes/esmtp/pass: "your-password"
	; -----
	; ----- For use in every instance you can add the following line to user.r file before set-net function
	; ----- do %path-to-script/patch-esmtp-net.r
	; -----
	; ----- You can decompress *-original and *-new variables to see the changes
	; -----


net-utils-original: 
#{
789CED1A4D73DBB8F59E5F0133074B6D55CA4A9C64359BB8D9343A75BC996D7B
E2E8005390C53545B02094D84DF3DFFBDE0340022428D9DD747A29B29144F07D
7F03D93DBF134CDEFC2A727DC6B2670C562EAB6DA1F64BB63D54B9DDC3F5F583
79C16A5EA886C92D6B74B13F9405D392E99D281413F73510121BA64453CBAA11
CD37D6E2D7526996E1E7D99A259FF009101B516D522572517C166CABE43EF130
88517653CAFCEE8C55B21288F99ED1060A60002C15C6E1AF91C0A3918284BA28
8B4A787B80CF4B40529F859A35BC40DC99504A2A561DF604B7EE142FB66C2B0F
D5E6CA09D4BEC1E530972CAB84B65494D84AB05496FC9578300391900DD226DF
89BDF0D9AFD72CA07953802A86D939992D780BA405CF772C73F677D65E4705C4
859295F2368632802D3AC7FEF88E9DA3D95956002CC841C258E52C509C82A3EF
91188059507C7BE55B63C9EA02FC4BBC2E46F070052809846D05AE2F64C5B6BC
28C526190AE6D646B66E8BC24474B2C276D1342E17804D48033FC05E4ED95BF6
3C992547107141FC2D2105EB87B4E6A0BF4FE2C5B842B8785D63160001E0C38E
688FEB50811A274421716CE0F8729C441AF5E549CC2D047EBAE71AA2DBE7E892
726CAD47DFC6DF8CF8571450C694292F575D081FF57425759B908516FBC7A059
D44ED994570F81C24429BB01B277501CF541554CAB8338A2E7A9803EADC4B834
AD4AC7790C7623668EC45300D311F190FBC006C892727DEA332F9BB06823C017
8AA5AC5645C5926B87018558C91B018A6D0EB96084DAB1C3C71E1F287F9A97A5
E3750EE85ACE2A0E65DCFC342DD43E60B4CFC06EB6CFDC9477ECDE130D9EA159
5C5FFFEDD392EDB1FF360F0DF83B0516D586AB4D6A3AE5C076A66F2C99C77C00
63592F7B920CE076C0AA146A198A3F24C79B061AF3928AF4F0750E512F664DF1
4F80B88C602B79FF60750C678C8138B2D1CB4EF84343A201F325D30FB5E37FF3
60B6F061186C611C79FECC41D95B416E30E6C6B8906A7316B5A4730619BBE979
C86C12A920D2207F2C88ACB10535E93F0E85D026F0E8AB6594D0EF5C96AC947C
036D6ABDF682EDEFBFFC65F6892BD27FC46E2E0C022B188B055B115B19338750
CEE63D5CBDEB6D69AE6E451F5BF3DB3EE6A2B7F119B481704701492412C2B125
469674E7C04D715B68ABFF4DA1C15F67ECF9D767736FAD56F317F327AE67DF5A
0EBCAC777C46BDF61497D5C715ACF96BF7FD042EC65333883F758CCFAB37BF91
0F1AF10497D5E56BA0FA7E65167C1397CBA770410F9EE2F2E6F587D56AF193A1
FEC6EA72F1345D9A66840B90FA81C4FF68D570DF8F5CBE2EAA9CA94389F99D59
2FD1B8453AD22F8C52F38BAC4BBFB630569A5F10F7F463DDF7356E024D1CE098
9BF3257E74A100D3199C04B2244D13F62FCA95F53A34B24F84F2E6807830D713
265988A4B0D840F04F8E149BF8B51377A6EBD0B63E71CA47383E1181ACB92B6A
66F617B88B9B133B55DA2F42C0FD7A311D0ADFDACCD1A7540F8437E46DF2539E
37433AADC5D13B256F76160D6B05BDABE44638B4100BDF00566D781AE47194D6
A14E6053899845EF833BAF2F5199E75619D81C83379AA31218026DFE0C250FE0
DA6C1EC0197B01DC05745B7AF0B587A63183B81E9CDB717DFDC50C91F09E6DB8
E690520C8EA9393FD05467CEA7AE93719C80C03DD08BBE854DDD0C26AE25D9A3
7C00810C828D14BBADCD04380DDB23A4D9E89D51D24ADAE373F2674992E89D92
5F5AF9FEC0EC287CFDF3F547862399E09B3F26DDC418EA8C3A62F389CC2E76D0
279BA530D791D86D4D88CC28C36912EC90808118356B08EC7694544DFF346F09
5026D3FD476A72143FE3A0946606D424327EC64129C50CA8E9EEF83942D5A69D
25EC1A3F0C26A08EB8458398BD31A1F4AE150AC703FC8C83DA3432C06E70B05D
3E8A803EC8BC48315F6B4BC14D3C2029CE6DEDDBE8F41B8E812CB341DDC656EC
96061DE9AE68200CD65E2DF28733718F0C8617631F691FE3D4CED1782305A9AC
7745750B41CC35CC7AF2AE6165011D8DB31DC4AD505E6E593497596B96FCDC12
324CFD1B2D73AA404B3498A907885838A11D4A4D7BFDDB2B82835620EEB18129
8896FEB06F68589046E4120A7D1FC63070D3B08604B83D6393C59CFD8E95A2BA
D5BB2BC368DAA1B85331B9CC481B265677AF66E4B2BA44B2CF5C3E695E944E53
9B6E19114FF04417D0A8C417BCA4E99D09C28009D4360FB1C3A761E84581BD68
9AD1E966D6C8FCAE79E96282E2206D0E37B376CA8707FAEDFC86E5971104C242
24E7773353D73CA7F9DB8E360468FF188F990367F56C32714E40EA53F62383F6
3C99585FDABD77EC87F9347611604F2EE4A2342F25B484E1A523AE2E73E0F3F4
B1DD1D8C7C6B64CE1C4B76AEF3DA3FE45B932C437924CC1D29FAB201C3EF6B39
B85871C56102D5A12CB4AD1096CB3454A23B66A6E43D2A99BD0646A519AB5751
7990EC9CCA77D80DA9344740A97C0F1AA7399677BCED5ECC72B63FE9435D8A2B
3A27B2B6C2F7D4DFEDA01287101EC5082C24E586FD2A41E44DD52CD3348AD755
0F5568312B6417B1184D48854884F49F7F9DBF9C5FF46606700B0D337ED36129
5B5CBE8AC329B1E745B5113D8C517893F7A05AFCB5CD81D1F750A3D591D750A0
14B4BDD1F773CF687E0EFAF5836F2206B4879B8AAB8733F606FE4473BF6B511F
BAEB6D2D93969A0989C4DE7847D2C92B5C3CCF456DEB962B2A288C295A5D75FA
AFD7A14797A156BADF5A8A9C135A8211275CCCF1BF136E784F36C4B6EEFF7B83
927B73D9C5868E309CB861E9DF923959ECDCD6DDF913E0CB08605B457027BD84
DE8B59F17BF3F86AAC4505BD698FC7A0FFB44199D932BC637D7C81B713A8AD7E
78ADC7DEB273D33F596639C49A6B28AE393F5826EBB8BFFE07A1FA5DC2F4FF3D
F058E781F672395FCCE7F3C5373F3D1E536017F0C70FC47808BC8BC4C05BC8B1
CB41104402A0651F00760190252BAA0DB650E0057CB3031993B1D969188B3D21
9ED49B714D5CD7BA980E43B57DE98CE2B909FD1E41E9413C8D2606C8719A08D1
1BE0E32D16D793A3005750DC7A0E228DF80106B14A1739C7421F77951DD62676
5A6B4BFAB43F7D51E2916B92E431D35A97A8DF6B3ABBECCD66AD7F9C0ED41EDE
4259C6FF03011458805017EBE908D67CECC58BB117CE7FC63E037547B07A3714
E11439C6CA431A1F29A7DF657C7BD4E4F0D4010E2B807147EB8D40D1D1B90257
409D2E4E283A8F0C1901D623060D63B3B17173FD6FDA9EF96358240000
}
handler-original:
#{
789CC5585B6FDB36147EEFAF60B887B4C05C35B70113B66546D3AD01726BEA60
0F860BD0126DAB91448DA49A7845FFFB0E0F2989BA25690B6C7AB045EAF05C3F
9E73C88CDD7222961F79A477C8FC1981A710524F56295BAB901CEEFD7C78F0EA
10E745C1F349B4E1D16D48E6B9C839A1FBFBAF2899D3B76FCE2E29515BA57916
E45CDF09791B6C84D20B20397A4517B83E4A85E23503FAEEE674460D8B3DF7FD
4E269A7705D4AB933CD121599579E4D4340FBD62527172737D46581E0742125C
4EF486A31944153C72E651522FC34FF4263716F1B8A1F44870E1E7A95C9719CF
3529985240A9057A8180A0CC38EE3943D93044A799452FBE344C8254442C250A
94CA38CE2E1ADD931529657A6C25CDC16B935227A90A60725218B364807F1398
68545C782A22DB10BF0576D036D1B00A2D7F5FAAF1ECB1253031F2DC691EA308
97124C927C25640691BA10C4059580569FB824F0813AF984260A6524AB84C72E
5868EA98507455123F492EDACDE25872A59E26F559F38B802DA4D0A2079CCF97
268C06264A44B75C9348E439802411B9419219AE1250C2D90BE20B912BFEF24B
1744A7004B9626FF8CC02850E5D2AA10090042B9C477FF3B8F4AE9C52D580324
65127541A40872322262A6196C87C9726B504956491E57EFCB620065B9D0A4A5
C6BCD22324BB3A2ABC403528346FA95883E57119710886715892AF29EC8189D2
125E1B732846A6F9E021B28B025DA509511867ABE0EF3201F7CF0B58087FB48A
037001FD6803D385C7C933B98A2C22D979C16DBBFB450762A0C04A94797C4C06
708F7C85E42CDA10C84359C5AC4FE558B17C3BF2D13C2C053FDF87A86A90311D
6D02B30005237BCD12D8FCF78B410EA0B9E4BA94005159F23E4D7BC6F30C5A01
68E183DB307FDC69A8DB90E7D05CBB8BDD0A9E157A5B8D1A8D517C4725177A5D
1629AC4F058B5D08CC6F4870BF3B5C409A8955007188C94791E424CE551804C4
569316539EC0FE952DFCFB06F563637CD9715C9FC86AF4B832A48F9E6145DA12
87E2E20C41C8B4A86DBA94E27E1BF4452E8B109DDA648226A57B0BDDB7364240
53C80290F9D42126407564FF16FE4ABD2D7C180DA856A5A4D04B1C6E034F2C8F
56DEC1ECB5EB08EAEC312AA2E1DE8A86C9EA419AE45C4196CE0AE82906A258D5
C6E79094D2444FCCD25AE28B7EEC6CD4FD40741C417E25BB556AAEFE97903AE7
9D18F56742AC7D5E22EB4B2FA1CCB83A6E5EFB0476D35AC6BD6856E1809AFADD
26383EF5A41B3E946E3A48A8DE46FA0054CC153D074395129D02F4AAF080F056
C015602B1331576D51159BD0E6C845A7F7A9C8029D645C94DAB9CF8DC6884723
D1261B8D47974C6F6A32BD19D590C935AF15C4C15049763D499095298C930A53
B53F9AFEBC2B4833CD03D7D17767EAE615479DEEE9FFEB9B6C35D2594158A937
935BBEED76364D776739745ADF0703391ABF0AA1AE4F68D6FB13AEDE752B1C76
AFC780C6A1BE002C09FBB1EC229A4E6F666FC9EBEBE9F9E4FCE4084E47070787
742061E0C120309A1A0FCD0D19A1E0FC625BBBCB9C55781E0F2CAE284212F325
83F4592F79801471A54A401FD71B110786BC5EB79BC5470F65A7C7ECAE9ACCC1
5E88E7A864752A6842928A3B2E23F3CD92046D63F67E1AB0DD3C74FFE0883EDA
52F595E937C773FAD7F4FAE2F4E2CF1D72A3B0F14D19740946053834261133FB
E2E55000BFCB23D88A58A85C9D4D4F2F20F4B593F09BE7A41FE887DF29191C5B
187FBB8B06CF5C78C8EFA78D7765A25D52F8B14E1298300CFD7042E9E58C696E
4FDF4DC2E8E6045B82DAAE1CCFA49691772DE19DADFD026475AC8B9A775BD1BF
9038E12B06F9D97E36EA4A0401816C9642AE5B4901278B72B532F8655B2E5FF6
AE25FA56361478F4A327E617B637CAE8F96008A6B05548CA3FF1B4D26B45A85F
09F2322374B9D55CF960B5173289E8381495682FF6FC629AE59E5B9E6AD9B4F2
0D580770350703C48661FA958662D3FE343B0DE9D79A09357AD2343D4F347708
AE41AB61B2CCD91DBBED63EBA95C4DBBD9D114DBA76F888A6DBB202CE6852CA1
28DFF6C4B5B6CA7AA457C3394F29F55F2A35D640769532116FEE274FA6B3A9A9
C04787D5FDA5CD1A1338756490BA8635AF478E6A1CB40F277E97C91D17FF22B4
BA0E856C3A70217A7AF1FECDF5AC4A37C27AB097632E9B8BCFCE1EECEAEB4EEE
D814A1AB8F49687706DEBCE2EB9C672C49774027D8B670ACCCA022E30CF4F478
21B403DDF9BCB9E0A36FDE9FCFAE42729A7F821630AE8CF4B764C7D7C4B547E7
D3D333F2C7F5E579487EA1283CD823F4377F657587632E0D2DC57EA78C8EF0BE
7E7D3523B34BE48C8B0DDFA153CC63216C6034524F6CEC7A8187E621B24D1D36
72A8FB01A11F02A811E6D72F158FF3A33EF9632A7B57EF0E638B7F01C94D0917
19180000
}
net-utils-new:
#{
789CED1A5D77DBB6F53DBF02A61F2C75D3282B7192EA34F1B22C7EDA497BDAB3
271E3DC01464B1A6080E8412BB69FEFBEEBD004880042579CDCE5EC6349208DC
EF6F20DDF17BC1E4EDAF22D7672C7BC6E0C965B529D46EC936FB2AB76BF87C79
6F3658CD0BD530B9618D2E76FBB2605A32BD158562E2A1064262CD94686A5935
A2F9CA5AFC5A2ACD32FC3C5BB1E4277C03C44654EB54895C149F04DB28B94B3C
0C6294DD9632BF3F6395AC0462BE63B4800218004B8571F86B24F068A420A12E
CAA212B1B5192F4B6F1DE8F21288A94F42CD1A5E20CD99504A2A56ED77FE0622
12DEAA3350B1611BB9AFD6D74EF076071F4769C9B24A684B55898D048B66C92F
449A1988846C9536F956EC84CF75B56201CDDB025436CC2EC8BCC12E90163CDF
B2CCF9C979651515101F94AC94773194016CD105C00F6FD905BA876505C0821C
248C55CE02C52938FA1E89019805C5DD6BDF1A4B56171007C4EB72040F9F0025
81F0AE20440A59B10D2F4AB14E8682B9672D5BB74561223A596179F5C8B22EF4
82805B9D262B822E211B77B504FB64136F6B3AC2D8329F905DFC307E31656FD8
79324B0EB0C607A21C59D68F69CDC1AA3E89E7E32CF1E1758D398869729EB003
36C5675F81358E8842E2D870F4E5388A341A214731AD0E3D1F3C8DFB065232DD
710D79E7E3815D0EA2AE4677E33B2301200A28C4CA14C8EB2EB9C62D4D79A5DB
525168B13B05CDA276CAA618F0BEC24429BB05B2F750DEF55E554CABBD38A0E7
B1543BAEC4B834AD4A87790C5623668EC46400D311F190AD5FC2BE132A146B2E
31C5637C0D4FF369E573EDFB132F9BB04721C0670AD0AC5645C5928F0E03FA8E
92B702ACB5DEE782116AA703BEF6F840B5D754A50CAF0B40D7725671E85AE6A7
992CEC0BA6E10C9C61DBEC6D79CF1E3CD1E01D7AA36876BA5EB21DCE25CD6303
5194028F6ACDD53A3513C4C023A64F2E99C77D0063792F7BA20CE0B6C0AA146A
19CA3F24C79B0606962535A5E1760EB924664DF11B405C45B0957C78B43A86B3
D7401CD9E86527FCBE21D180F992E9C7DAF1BF7D344BF8320CE1303A3D87E6A0
EC9D203F1873636048B53E8B5AD239838CDDF43C64168954106A90951644D6D8
729BF45FFB42681379F4D5324AE8772E4B564ABE86B6BCF2A3FA9F3FFF63F613
57A4FF88DD5C18045630160B9622B632660EA19CCD7BB87ADB5BD25CDD893EB6
E6777DCC456FE1136803F18E0292482484634B8C2CE9CE81EBE2AED056FFDB42
83BFCED8F9976773EFB9B9993F9F3FF179F6B5E5C0CB7ACB6734051CE372F3E1
069EF92BF7FD042EC65333883F7588CFCBD77F900F1AF108979BAB5740F5DD8D
79E09BB85C3D850B7AF01897D7AFDEDFDC2CFE66A8BFB6BA5C3E4D97A619E102
A4BE27F13F5835DCF7898FAF8B2A676A5F627E67D64B3408928EF40BA3D4FC22
EBD2AF0D8CD1E617C43DFD58F57D8D8B4013474BE6CE35123FBA5080B9114E3E
5992A609FB9D7265B50A8DEC13A1BCD9231E9C6308932C4452586C20F857478A
4DFCDA892BD355685B9F38E5231C2B8940D6DC173533EB0B5CC5C5899D15ED17
21E07ABD980E856F6DE6E853AA07C21BF236F929CF9B219DD6E2E89D92375B8B
86B582F62AB9160E2DC4C21DC0AA0D4F833C8ED23AD4096C2A11B3E87D70E7F5
252A736E9581C53178A3392A8121D0E6CF50F200AECDE6019CB117C05D42B7A5
175F7B681A3388EBC17D063E5F7E36A329ECB335D71C528AC1B13CE77B9A15CD
79DC75328E2310B8077AD1D7B0A99BC1C4B5247BC5114020836021C56E6B3301
4EFFF6C86C167AA7A7B492F6BA20F9BB2449F456C9CFAD7C7F6676C0FEF8E3C7
0F0C6732C1D77F49BAE9B03F406A6A3E91D9C58EA964B314475414BBAD099119
65384E821D123010A3660D81DDCE92AAE9DF5E580294C9742F949A1CC5CF3828
A5990135898C9F71504A31036ABA3B7E8E50B5696709BBC60F8309A823EED020
666D4C28BD6D85C2F1003FE3A0368D0CB01B1C6C978F22D031C18B14F3B5B214
DCC40392E2DCD6EE46A7DF700C64990DEA36B662B752E84877250561B0F26A91
3F9C89076430BC30FC40EB18A7768EC69B3A4865BD2DAA3B0862AE61D693F70D
2B0BE8689C6D216E85F272CBA2B9CC5AB1E4C7969061EADFF49963055AA2C14C
DD43C4C2B90F8E5CB4D6BFAD23386805E2011B988268E90FFB86860569442EA1
D0F7610C03370D6B4880BB333659CCD977AC14D59DDE5E1B46D30EC59DB5C965
46DA30B1BA7B442397D525927DE6B24DF3A2749ADA74CB88788247BA8046253E
E3F1B3772608032650DBBCC48EB486A11705F6626D46A79B5923F3FBE6858B09
8A83B4D9DFCEDA291F5EE8B7F31B965F4610080B919CDFCF4C5DF39CE62F3BDA
10A0FD33B2BB809B4C9C1390FA94FDC0A03D4F26D69776ED2DFB7E3E8D5D2FD8
930BB928CD4BBC851B5EB2E2D3650E7C1EBF0C700723DF1A9933C7925DE8BCF6
A09D4996A13C12E68E147DD97457846199B7C56102D5A12CB4AD1096CB3454A2
3B66A6E43D2A99BD0646A519AB57517990EC82CA77D80DA9344740A97C0F1AA7
399677BCEDDA816B14BDAF4B714DE744D656F89EFADB2D54E21062F44A856021
29D7EC570922AFAB6699A651BCAE7AA8428B5921BB88C568422A4422A47FFE65
FE627ED99B19C02D34CCF84D87A56C71F5320EA7C48E17D55AF43046E14DDE83
6AF16D9B03A3FB50A3D5816D28500ADADEE8FEDC339A9F837EFDE0EB8801EDE1
A6E2EAF18CBD863FD1DCEF5AD4FBEE3A5FCBA4A5664222B137FC9174F20A17CF
7351DBBAE58A0A0A638A56579DFEEB75E8E432D44AF7474B9173424B30E284CB
39FE77C40DEFC886D8D6FD7F5F5172672EBBD8D0118613372CFD5B32278B9DDB
BA7F8D20C01711C0B68AE04A7A05BD17B3E24FE6F5E5588B0A7AD30E8F41FF69
8332B36578C97A7A81B713A8AD7E78ADC7DEB00BD33F596639C49A6B28AE393F
5826ABB8BFFE07A1FA4DC2F4FF3DF050E781F672355FCCE7F3C5573F3D4E29B0
0BF8E307623C04DE4662E00DE4D8D520082201D0B20F00BB00C8921BAA0DB650
E0057CB3051993B1D969188B3D219ED49BF199B8AE75391D866ABBE98CE2B909
FD1E41E9413C8D2606C8619A08D11BE0E32D169F2747013E4171EB398834E27B
18C42A5DE41C0B7DDC5576589BD869AD2DE9D3FEF4458947AE499253A6B52E51
BFD57476D59BCD5AFF381DA83DBC81B28CFFC70528B000A12E57D311ACF9D8C6
F3B10DE73F639F81BA2358BD1B8A708A1C63E5218D8F94D36F32BE9D34393C75
80C30A60DCD17A23507474AEC027A04E1727149D07868C00EB8441C3D86C6CDC
5CFD1B68C745B370250000
}
handler-new:
#{
789CC559DB6EDC36107DCF57D0EA8363A01BC5B70215DABA8BD84D0CF816C746
1F161B402B71BDAA255115A9D8DB20FFDE99212951377BD314AD1E76256A383C
3373381C525978CF9958FCC123B5C5662F185C8528D564998677326007BB3F1E
ECBF3EA07651F07C12AD78741FB0592E72CEBCBDBDD71E9B79EF4ECE2E3D26D7
52F1CCCFB97A10E5BDBF1252CD41E4F0B537A7FE61A55675FF9977F26E934E51
2A24AF7B79EF6F4F6F3C1C77D7BC7F2813C5BBA8EADE499EA8802DAB3C32B6E1
E55D85A5E4ECF6FA8C8579EC8B925177A6569C6C67B2E091F189C7EA6EF4CABB
CDD10D3C6E241D11EAF8795ADE5519CF152B4229415209721D838132F4F6CB90
C68647F23476DAF9D228F15311852993002AE3D43A6FB0274B5695E9911E6906
5E9B542A49A50F8D9302CD2A7DFA9B40430371EE4024B501BDF3F543DB445415
68FDEEA8E8D9232D803172DC891702E1650926957C29CA0C22752198092A0354
9F78C9E08567C6675E22698C6499F0D8048B4C1D1B945C95C41B8D4B7687715C
7229371BF545F34B2C2F4AA1448F389F2F318C481329A27BAE5824F21C489288
1C99848FCB0440187B61F842E492BFFAD225D129D0324C93BF4668E4CB6AA121
440288502DE8DE7DCFA3AA74E2E6DF0125CB24EA924832D28443C4A10A613A4C
166B64255B26796CEF17C500CB72A1580BC6CCE208D8B68A0A27500D0BF12E15
7760795C451C82810E4BF23B0FE6C044AA126E1B733C8A4CF3C261649705CAA6
0951A0B3A5FF679580FB670574843FCFC601B4003EAFA1E9DCD1E4986C234B4C
365E30D3EE71DEA11800588A2A8F8FD800EF49AF287918AD18E4A1CC2AEB4B19
5561BE1E79895798829F1F0382EA67A18A563E76A08149BD0A1398FC8FF3410D
80BCE4AA2A81A265C5FB32ED16C7336405B0850F4EC3FC79A711B621CF91B97A
169B1E3C2BD4DA3E358869F80E24137A551529F44F45189B10E06FC068BE1B5E
409A89A50F7188D91F22C9599CCBC0F7995E4D5A4A7902F3B76CF1DF35A81F1B
F465C7717D218DE87930ACCF9E6120ED1187E2620C21CAB4A475BA2CC5E3DAEF
0FB92802726A93099A94EE7434EFDA0C01A4900520F3C9034A80F250FFCDDD9E
6A5DB8341A80665352E0240E3381275A472BEF50F6DA360275F6181DA2D1DE8A
0666753F4D722E214B6705D4140351B46BE34B484A69A226D8B51E71A71F3B1D
7537101D47B09FD9B64DCDF67F01A973D68951BF25A0B5CF4964FDD12B5866CC
3A8EB77D013D69B5E25E346D38604DFD66138C9EBAD13C3E956E3A4CB0772375
0001338B9EA1A14C994A817A363C30782BE012B8958998CBF650564DA073E4BC
53FB58315F2519179532EE334F63C2A391688B8DC6A32BA656B5985A8D220CCB
3B5E03A487A125D9D4247E56A5F09C584ED5FE688AFAEE402A54DC37DB806E4B
5DBCD253A77AFAFFEA26BD1AA9ACD07B8D8CAB95885992C1028205398F4D93EC
163C4DD1A715772AE227E33B1A560743CF2578F1550AC54F08456DABD95811A5
09409E38E08D7F5A4D5AFD6836EC2BC14DD49BEBE9F9E4FCF810365267976F4F
2FE0FFEA6C0AFFDD494AFBA41AA6A94BB00671B07BD3DB9B770C76819128D643
10B1D4A31D595B795F3230030EE8A064D8EA6EFD6A5297292B6C2B94851C54C1
82B1991B61DB7079710210674044580AB59E0EE27E9D3B1B941BE09B1FF402F5
E209F1A0AEA05B8A9DC00DD0C9E54E1966937A1ADCF3F5B3058CED11F4534737
81EA803B1CDADF3FE806B7668F8FA9BB86334359E00A51C5624382F0BCEB44BC
AC44C062BE088119759727442997C90A321EF9D247F1BADF76161F3EB5223E67
FC6058ECC573026977A24DBE48C5032F237CA745FCB631BB3F0CD88E97B7B77F
E87D5D196F27B4E6C750A437355187D9E6078C317B692CAC2DDB197A819EDDD1
D89F86AA73CE4650EB09E7FD3EBDBE38BD78BBC56E256D1AD3102A6C74254CA0
240A714D7935C4C66F8A2C95F1DA21041A285C079BDE39C1FECEFBF8ABC7069F
F596E75F0B35A5ACC67DCD5988D7F687C966BAEE6F92CDE8A90B555B66CFDBD8
E13698BD5B0BCE70F268EA8E09AA6DFBBC39107C2ED162F26889B8EB3B4D3790
183CCEA1F3C37E45F2BE4A945908BEAFEB0FAA45507EB856E99523D35C1FEC35
B548B7AED0D56DDBEAF1224D2B724E3C9D633BB7B6D518EB7AD93908ED9F751E
F3650821D0AF116EA93901CB440A0BDFB214195B54CB25A6A970CDCB57BD13CF
BE958D049D2A79C7F80B599CC6E8F960681643466429FFC4538B6BC93CB7C8CC
AB8C798BB5E2D29DCBFAAC37111D8712887667C72FB80FEFB96553CBA6D63760
1DCC02A41A7103957EA5A1741EB0999D28FAB56642F93F69F6531B9A3B4457BF
B5173327F70FE17D9F5B9B6AC5E2AD83947666FF202A7A470761C11BB6806AE7
BE375C6BAADC8D6C03A9CD0125FF4B50637BD32E288C78F3E9E3787A33C595F8
F0C07E1AD1596312892C83D4358CBC7E3252E3A47D7A5D340B9DD1E27E63B15F
5A209B0E7C6B39BDF870727D63D38DD01EECE598CBE69B4A670E76F19A43415A
A3C8D5472CD03383F60E743BE319EC51B6701720F0C42A83C28B5AE64C9F356F
CDDBEBE5C987F39BAB809DE69F6077195B23DD29D9F13533A5F0F9F4F48CFD76
7D791EB09F3C1ADCDF65DE2F6E4F7B3C8CDF23B4C45E779336ACFBFACDD50DBB
B924CDD419F50E2DD9CF85B0A1D1C87AA263D70B3CD4569129E0B15E27ECFBCC
FBE8C31A81BFEE52F1BC3ECF157F0EB2F355CF706CFE377F035E87A91C0000
}

net-utils-local: compress mold get 'net-utils
handler-local: compress mold get in system/schemes/esmtp 'handler

either all [(= net-utils-original net-utils-local) (= handler-original handler-local)][
	if error? try [ net-utils: do decompress net-utils-new
					handler-esmtp: do decompress handler-new
					net-utils/net-install 'esmtp handler-esmtp 25][
		alert "ERROR: PATCH NOT INSTALLED"
	]
][
	alert "net-utils is different from patch based net-utils or esmtp handler is different from patch based esmtp handler PATCH NOT INSTALLED"
]

system/schemes/esmtp/handler/open-check:  [none "220"] ; this line is because some servers do not support HELO/EHLO duplication.

unset 'handler-local
unset 'handler-new
unset 'handler-original
unset 'net-utils-local
unset 'net-utils-new
unset 'net-utils-original
recycle