Трельсен Э. - Модель COM и применение ATL 3.0

Torrent Hash:
772A949D2036E7799D214CD9A3E5C011F55E561D
Number of Files:
1003
Content Size:
37.88MB
Convert On:
2014-12-24
Magnet Link:
W3siaWQiOiJhZHN0X2JfTV8zMDB4NTAiLCJhZHNwb3QiOiJiX01fMzAweDUwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiPlxyXG4gIGF0T3B0aW9ucyA9IHtcclxuICAgICdrZXknIDogJzdkMWNjMGUxYjk4MWM5NzY4ZGI3ODUxZmM1MzVhMTllJyxcclxuICAgICdmb3JtYXQnIDogJ2lmcmFtZScsXHJcbiAgICAnaGVpZ2h0JyA6IDUwLFxyXG4gICAgJ3dpZHRoJyA6IDMyMCxcclxuICAgICdwYXJhbXMnIDoge31cclxuICB9O1xyXG4gIGRvY3VtZW50LndyaXRlKCc8c2NyJyArICdpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJodHRwJyArIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyAncycgOiAnJykgKyAnOlwvXC93d3cuYm5odG1sLmNvbVwvaW52b2tlLmpzXCI+PFwvc2NyJyArICdpcHQ+Jyk7XHJcbjxcL3NjcmlwdD4ifV0=
File Name
Size
Andrew W. Troelsen - Developer's Workshop to COM and ATL 3.0.chm
11.82MB
Samples/Chapter 01/CarInC/CarInC.dsp
4.18KB
Samples/Chapter 01/CarInC/CarInC.dsw
537B
Samples/Chapter 01/CarInC/CarInC.ncb
49KB
Samples/Chapter 01/CarInC/CarInC.opt
52.5KB
Samples/Chapter 01/CarInC/CarInC.plg
1.33KB
Samples/Chapter 01/CarInC/Main.c
1.97KB
Samples/Chapter 01/CarInCPP/CarInCPP.dsp
4.32KB
Samples/Chapter 01/CarInCPP/CarInCPP.dsw
539B
Samples/Chapter 01/CarInCPP/CarInCPP.ncb
57KB
Samples/Chapter 01/CarInCPP/CarInCPP.opt
52.5KB
Samples/Chapter 01/CarInCPP/CarInCPP.plg
1.42KB
Samples/Chapter 01/CarInCPP/CCar.cpp
1.24KB
Samples/Chapter 01/CarInCPP/CCar.h
933B
Samples/Chapter 01/CarInCPP/Main.cpp
541B
Samples/Chapter 01/DrawTemplate/CHexagon.cpp
485B
Samples/Chapter 01/DrawTemplate/CHexagon.h
519B
Samples/Chapter 01/DrawTemplate/CSquare.cpp
480B
Samples/Chapter 01/DrawTemplate/CSquare.h
513B
Samples/Chapter 01/DrawTemplate/ReadMe.txt
1.2KB
Samples/Chapter 01/DrawTemplate/ShapeTemplate.h
339B
Samples/Chapter 01/DrawTemplate/StdAfx.cpp
296B
Samples/Chapter 01/DrawTemplate/StdAfx.h
690B
Samples/Chapter 01/DrawTemplate/Templates.cpp
330B
Samples/Chapter 01/DrawTemplate/Templates.dsp
4.78KB
Samples/Chapter 01/DrawTemplate/Templates.dsw
543B
Samples/Chapter 01/DrawTemplate/Templates.ncb
73KB
Samples/Chapter 01/DrawTemplate/Templates.opt
52.5KB
Samples/Chapter 01/DrawTemplate/Templates.plg
1.28KB
Samples/Chapter 01/Employees/CEmployee.dsp
4.6KB
Samples/Chapter 01/Employees/CEmployee.dsw
543B
Samples/Chapter 01/Employees/CEmployee.ncb
129KB
Samples/Chapter 01/Employees/CEmployee.opt
52.5KB
Samples/Chapter 01/Employees/CEmployee.plg
252B
Samples/Chapter 01/Employees/Employee.cpp
770B
Samples/Chapter 01/Employees/Employee.h
1.29KB
Samples/Chapter 01/Employees/FTEmployee.cpp
870B
Samples/Chapter 01/Employees/FTEmployee.h
838B
Samples/Chapter 01/Employees/Main.cpp
1.31KB
Samples/Chapter 01/Employees/SalesEmployee.cpp
1KB
Samples/Chapter 01/Employees/SalesEmployee.h
957B
Samples/Chapter 02/Shapes/3DRect.cpp
947B
Samples/Chapter 02/Shapes/3DRect.h
684B
Samples/Chapter 02/Shapes/3DRectEx.cpp
858B
Samples/Chapter 02/Shapes/3DRectEx.h
749B
Samples/Chapter 02/Shapes/interfaces.h
648B
Samples/Chapter 02/Shapes/ReadMe.txt
1.18KB
Samples/Chapter 02/Shapes/RectFunctions.h
2.45KB
Samples/Chapter 02/Shapes/Shapes.cpp
1.4KB
Samples/Chapter 02/Shapes/Shapes.dsp
4.8KB
Samples/Chapter 02/Shapes/Shapes.dsw
537B
Samples/Chapter 02/Shapes/Shapes.ncb
121KB
Samples/Chapter 02/Shapes/Shapes.opt
52.5KB
Samples/Chapter 02/Shapes/Shapes.plg
1.48KB
Samples/Chapter 02/Shapes/StdAfx.cpp
293B
Samples/Chapter 02/Shapes/StdAfx.h
714B
Samples/Chapter 03/CarInProcServer/CarInProcServer.cpp
1.35KB
Samples/Chapter 03/CarInProcServer/CarInProcServer.def
99B
Samples/Chapter 03/CarInProcServer/CarInProcServer.dsp
4.54KB
Samples/Chapter 03/CarInProcServer/CarInProcServer.dsw
555B
Samples/Chapter 03/CarInProcServer/CarInProcServer.ncb
105KB
Samples/Chapter 03/CarInProcServer/CarInProcServer.opt
52.5KB
Samples/Chapter 03/CarInProcServer/CarInProcServer.plg
1.61KB
Samples/Chapter 03/CarInProcServer/carinprocserver.reg
423B
Samples/Chapter 03/CarInProcServer/CoCar.cpp
2.38KB
Samples/Chapter 03/CarInProcServer/CoCar.h
1.17KB
Samples/Chapter 03/CarInProcServer/CoCarClassFactory.cpp
1.81KB
Samples/Chapter 03/CarInProcServer/CoCarClassFactory.h
922B
Samples/Chapter 03/CarInProcServer/cotextserver.def
93B
Samples/Chapter 03/CarInProcServer/IID.CPP
63B
Samples/Chapter 03/CarInProcServer/IID.H
596B
Samples/Chapter 03/CarInProcServer/interfaces.h
523B
Samples/Chapter 03/CoCarApp/carserver.def
93B
Samples/Chapter 03/CoCarApp/CoCar.cpp
2.56KB
Samples/Chapter 03/CoCarApp/CoCar.h
1.14KB
Samples/Chapter 03/CoCarApp/CoCarApp.cpp
2.22KB
Samples/Chapter 03/CoCarApp/CoCarApp.dsp
4.59KB
Samples/Chapter 03/CoCarApp/CoCarApp.dsw
541B
Samples/Chapter 03/CoCarApp/CoCarApp.ncb
145KB
Samples/Chapter 03/CoCarApp/CoCarApp.opt
52.5KB
Samples/Chapter 03/CoCarApp/CoCarApp.plg
1.56KB
Samples/Chapter 03/CoCarApp/IID.CPP
112B
Samples/Chapter 03/CoCarApp/IID.H
447B
Samples/Chapter 03/CoCarApp/interfaces.h
523B
Samples/Chapter 03/CoCarApp/ReadMe.txt
1.19KB
Samples/Chapter 03/CoCarClient/CoCarClient.dsp
4.29KB
Samples/Chapter 03/CoCarClient/CoCarClient.dsw
547B
Samples/Chapter 03/CoCarClient/CoCarClient.ncb
65KB
Samples/Chapter 03/CoCarClient/CoCarClient.opt
52.5KB
Samples/Chapter 03/CoCarClient/CoCarClient.plg
1.39KB
Samples/Chapter 03/CoCarClient/IID.CPP
63B
Samples/Chapter 03/CoCarClient/IID.H
596B
Samples/Chapter 03/CoCarClient/interfaces.h
523B
Samples/Chapter 03/CoCarClient/Main.cpp
1.74KB
Samples/Chapter 03/CoTextClient/Client.cpp
1.07KB
Samples/Chapter 03/CoTextClient/Client.dsp
4.49KB
Samples/Chapter 03/CoTextClient/Client.dsw
537B
Samples/Chapter 03/CoTextClient/Client.ncb
57KB
Samples/Chapter 03/CoTextClient/Client.opt
52.5KB
Samples/Chapter 03/CoTextClient/Client.plg
1.71KB
Samples/Chapter 03/CoTextClient/iids.cpp
211B
Samples/Chapter 03/CoTextClient/iids.h
708B
Samples/Chapter 03/CoTextClient/interfaces.h
238B
Samples/Chapter 03/CoTextClient/ReadMe.txt
1.18KB
Samples/Chapter 03/CoTextClient/StdAfx.cpp
293B
Samples/Chapter 03/CoTextClient/StdAfx.h
667B
Samples/Chapter 03/CoTextServer/CoText.cpp
2.25KB
Samples/Chapter 03/CoTextServer/CoText.h
1.03KB
Samples/Chapter 03/CoTextServer/cotextserver.cpp
1KB
Samples/Chapter 03/CoTextServer/CoTextServer.dsp
4.56KB
Samples/Chapter 03/CoTextServer/CoTextServer.dsw
549B
Samples/Chapter 03/CoTextServer/CoTextServer.ncb
65KB
Samples/Chapter 03/CoTextServer/CoTextServer.opt
52.5KB
Samples/Chapter 03/CoTextServer/CoTextServer.plg
258B
Samples/Chapter 03/CoTextServer/cotextserver.reg
334B
Samples/Chapter 03/CoTextServer/iids.cpp
190B
Samples/Chapter 03/CoTextServer/iids.h
708B
Samples/Chapter 03/CoTextServer/interfaces.h
238B
Samples/Chapter 03/CoTextServer/TextFactory.cpp
2.13KB
Samples/Chapter 03/CoTextServer/TextFactory.h
884B
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.cpp
836B
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.def
101B
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.dsp
4.54KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.dsw
559B
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.h
11.51KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.idl
1.16KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.ncb
97KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.opt
52.5KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo.plg
2.21KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo_i.c
1.34KB
Samples/Chapter 04/CarServerTypeInfo/CarServerTypeInfo_p.c
30.98KB
Samples/Chapter 04/CarServerTypeInfo/CoCar.cpp
2.56KB
Samples/Chapter 04/CarServerTypeInfo/CoCar.h
1.15KB
Samples/Chapter 04/CarServerTypeInfo/CoCarClassFactory.cpp
1.75KB
Samples/Chapter 04/CarServerTypeInfo/CoCarClassFactory.h
922B
Samples/Chapter 04/CarServerTypeInfo/coservertypeinfo.reg
944B
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CarServerTypeInfo.tlh
3.27KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CarServerTypeInfo.tli
1.8KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CPPImportClient.cpp
1.12KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CPPImportClient.dsp
4.54KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CPPImportClient.dsw
555B
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CPPImportClient.ncb
81KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CPPImportClient.opt
52.5KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/CPPImportClient.plg
264B
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/ReadMe.txt
1.23KB
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/StdAfx.cpp
302B
Samples/Chapter 04/CarServerTypeInfo/CPP Import Client/StdAfx.h
667B
Samples/Chapter 04/CarServerTypeInfo/DLLDATA.C
829B
Samples/Chapter 04/CarServerTypeInfo/VB Client/frmMain.frm
4.93KB
Samples/Chapter 04/CarServerTypeInfo/VB Client/VBCarClient.exe
24KB
Samples/Chapter 04/CarServerTypeInfo/VB Client/VBCarClient.vbp
784B
Samples/Chapter 04/CarServerTypeInfo/VB Client/VBCarClient.vbw
55B
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/CoCar.class
1.47KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/CoCar.java
2.15KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/ICreateCar.class
801B
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/ICreateCar.java
1.41KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/IEngine.class
829B
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/IEngine.java
1.48KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/IStats.class
782B
Samples/Chapter 04/CarServerTypeInfo/VJ Client/carservertypeinfo/IStats.java
1.36KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/CODEBASE.DAT
40B
Samples/Chapter 04/CarServerTypeInfo/VJ Client/Form1.class
5.15KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/Form1.java
5.85KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/VJ Client.exe
16.5KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/VJ Client.sln
515B
Samples/Chapter 04/CarServerTypeInfo/VJ Client/VJ Client.suo
4.5KB
Samples/Chapter 04/CarServerTypeInfo/VJ Client/VJ Client.vjp
4.8KB
Samples/Chapter 04/ShapesIDL/dlldata.c
807B
Samples/Chapter 04/ShapesIDL/ReadMe.txt
1.59KB
Samples/Chapter 04/ShapesIDL/shapes.h
7.81KB
Samples/Chapter 04/ShapesIDL/shapes.idl
1.17KB
Samples/Chapter 04/ShapesIDL/ShapesIDL.cpp
268B
Samples/Chapter 04/ShapesIDL/ShapesIDL.dsp
4.44KB
Samples/Chapter 04/ShapesIDL/ShapesIDL.dsw
543B
Samples/Chapter 04/ShapesIDL/ShapesIDL.ncb
49KB
Samples/Chapter 04/ShapesIDL/ShapesIDL.opt
52.5KB
Samples/Chapter 04/ShapesIDL/ShapesIDL.plg
881B
Samples/Chapter 04/ShapesIDL/shapes_i.c
1.23KB
Samples/Chapter 04/ShapesIDL/shapes_p.c
16.07KB
Samples/Chapter 04/ShapesIDL/StdAfx.cpp
296B
Samples/Chapter 04/ShapesIDL/StdAfx.h
802B
Samples/Chapter 05/CoCarEXE/carexeserver.reg
321B
Samples/Chapter 05/CoCarEXE/CoCar.cpp
2.53KB
Samples/Chapter 05/CoCarEXE/CoCar.h
1.16KB
Samples/Chapter 05/CoCarEXE/CoCarClassFactory.cpp
1.86KB
Samples/Chapter 05/CoCarEXE/CoCarClassFactory.h
922B
Samples/Chapter 05/CoCarEXE/CoCarEXE.cpp
1.88KB
Samples/Chapter 05/CoCarEXE/CoCarEXE.dsp
4.51KB
Samples/Chapter 05/CoCarEXE/CoCarEXE.dsw
541B
Samples/Chapter 05/CoCarEXE/CoCarEXE.h
11.5KB
Samples/Chapter 05/CoCarEXE/CoCarEXE.ncb
137KB
Samples/Chapter 05/CoCarEXE/CoCarEXE.opt
52.5KB
Samples/Chapter 05/CoCarEXE/CoCarEXE.plg
1.41KB
Samples/Chapter 05/CoCarEXE/CoCarEXETypeInfo.h
11.53KB
Samples/Chapter 05/CoCarEXE/CoCarEXETypeInfo.idl
1.21KB
Samples/Chapter 05/CoCarEXE/CoCarEXETypeInfo_i.c
1.32KB
Samples/Chapter 05/CoCarEXE/CoCarEXETypeInfo_p.c
30.94KB
Samples/Chapter 05/CoCarEXE/CoCarEXE_i.c
1.31KB
Samples/Chapter 05/CoCarEXE/CoCarEXE_p.c
30.82KB
Samples/Chapter 05/CoCarEXE/DLLDATA.C
1.13KB
Samples/Chapter 05/CoCarEXE/LOCKS.CPP
265B
Samples/Chapter 05/CoCarEXE/LOCKS.H
164B
Samples/Chapter 05/CoCarEXE/ReadMe.txt
1.19KB
Samples/Chapter 05/CoCarEXE/StdAfx.cpp
295B
Samples/Chapter 05/CoCarEXE/StdAfx.h
693B
Samples/Chapter 05/CoCarEXE/VBClient/Form1.frm
1.08KB
Samples/Chapter 05/CoCarEXE/VBClient/Project1.exe
16KB
Samples/Chapter 05/CoCarEXE/VBClient/Project1.vbp
732B
Samples/Chapter 05/CoCarEXE/VBClient/Project1.vbw
52B
Samples/Chapter 05/CPP Remote Client/CarServerEXETypeInfo.h
11.55KB
Samples/Chapter 05/CPP Remote Client/CarServerEXETypeInfo_i.c
1.33KB
Samples/Chapter 05/CPP Remote Client/CPP RemoteClient.cpp
1.19KB
Samples/Chapter 05/CPP Remote Client/CPP RemoteClient.dsp
4.63KB
Samples/Chapter 05/CPP Remote Client/CPP RemoteClient.dsw
557B
Samples/Chapter 05/CPP Remote Client/CPP RemoteClient.ncb
57KB
Samples/Chapter 05/CPP Remote Client/CPP RemoteClient.opt
47.5KB
Samples/Chapter 05/CPP Remote Client/CPP RemoteClient.plg
1.49KB
Samples/Chapter 05/CPP Remote Client/ReadMe.txt
1.24KB
Samples/Chapter 05/CPP Remote Client/StdAfx.cpp
303B
Samples/Chapter 05/CPP Remote Client/StdAfx.h
667B
Samples/Chapter 06/ATLCarServer/ATLCarServer.aps
3.65KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.cpp
2.01KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.def
232B
Samples/Chapter 06/ATLCarServer/ATLCarServer.dsp
12.79KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.dsw
549B
Samples/Chapter 06/ATLCarServer/ATLCarServer.h
16.64KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.idl
2.13KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.ncb
105KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.opt
52.5KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.plg
0B
Samples/Chapter 06/ATLCarServer/ATLCarServer.rc
2.81KB
Samples/Chapter 06/ATLCarServer/ATLCarServer.tlb
3.2KB
Samples/Chapter 06/ATLCarServer/ATLCarServerps.def
254B
Samples/Chapter 06/ATLCarServer/ATLCarServerps.mk
514B
Samples/Chapter 06/ATLCarServer/ATLCarServer_i.c
1.43KB
Samples/Chapter 06/ATLCarServer/ATLCarServer_p.c
21.74KB
Samples/Chapter 06/ATLCarServer/ATLCoCar.cpp
1.66KB
Samples/Chapter 06/ATLCarServer/ATLCoCar.h
2.05KB
Samples/Chapter 06/ATLCarServer/ATLCoCar.rgs
621B
Samples/Chapter 06/ATLCarServer/DLLDATA.C
819B
Samples/Chapter 06/ATLCarServer/RESOURCE.H
505B
Samples/Chapter 06/ATLCarServer/StdAfx.cpp
315B
Samples/Chapter 06/ATLCarServer/StdAfx.h
908B
Samples/Chapter 06/ATLCarServer/VB Client/Form1.frm
1.26KB
Samples/Chapter 06/ATLCarServer/VB Client/Project1.exe
20KB
Samples/Chapter 06/ATLCarServer/VB Client/Project1.vbp
731B
Samples/Chapter 06/ATLCarServer/VB Client/Project1.vbw
54B
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.cpp
2.03KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.def
238B
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.dsp
12.9KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.dsw
555B
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.h
13.59KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.idl
1.96KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.ncb
89KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.opt
52.5KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.plg
1.75KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.rc
2.84KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer.tlb
3.03KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServerps.def
257B
Samples/Chapter 06/ATLShapesServer/ATLShapesServerps.mk
550B
Samples/Chapter 06/ATLShapesServer/ATLShapesServer_i.c
1.43KB
Samples/Chapter 06/ATLShapesServer/ATLShapesServer_p.c
15.9KB
Samples/Chapter 06/ATLShapesServer/CoHexagon.cpp
1.15KB
Samples/Chapter 06/ATLShapesServer/CoHexagon.h
1.05KB
Samples/Chapter 06/ATLShapesServer/CoHexagon.rgs
644B
Samples/Chapter 06/ATLShapesServer/CPP Client/ATLShapesServer.h
13.59KB
Samples/Chapter 06/ATLShapesServer/CPP Client/ATLShapesServer_i.c
1.43KB
Samples/Chapter 06/ATLShapesServer/CPP Client/CPP Client.cpp
382B
Samples/Chapter 06/ATLShapesServer/CPP Client/CPP Client.dsp
4.48KB
Samples/Chapter 06/ATLShapesServer/CPP Client/CPP Client.dsw
545B
Samples/Chapter 06/ATLShapesServer/CPP Client/CPP Client.ncb
49KB
Samples/Chapter 06/ATLShapesServer/CPP Client/CPP Client.opt
47.5KB
Samples/Chapter 06/ATLShapesServer/CPP Client/CPP Client.plg
1.63KB
Samples/Chapter 06/ATLShapesServer/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 06/ATLShapesServer/CPP Client/StdAfx.cpp
297B
Samples/Chapter 06/ATLShapesServer/CPP Client/StdAfx.h
667B
Samples/Chapter 06/ATLShapesServer/DLLDATA.C
851B
Samples/Chapter 06/ATLShapesServer/RESOURCE.H
553B
Samples/Chapter 06/ATLShapesServer/StdAfx.cpp
315B
Samples/Chapter 06/ATLShapesServer/StdAfx.h
973B
Samples/Chapter 06/ATLShapesServer/VB Client/frmMain.frm
2.01KB
Samples/Chapter 06/ATLShapesServer/VB Client/VBHexTest.exe
20KB
Samples/Chapter 06/ATLShapesServer/VB Client/VBHexTest.vbp
785B
Samples/Chapter 06/ATLShapesServer/VB Client/VBHexTest.vbw
55B
Samples/Chapter 07/RawErrors/CoCar.cpp
3.18KB
Samples/Chapter 07/RawErrors/CoCar.h
1.25KB
Samples/Chapter 07/RawErrors/CoCarClassFactory.cpp
1.75KB
Samples/Chapter 07/RawErrors/CoCarClassFactory.h
922B
Samples/Chapter 07/RawErrors/CPP Client/CPP Client.cpp
1.67KB
Samples/Chapter 07/RawErrors/CPP Client/CPP Client.dsp
4.48KB
Samples/Chapter 07/RawErrors/CPP Client/CPP Client.dsw
545B
Samples/Chapter 07/RawErrors/CPP Client/CPP Client.ncb
49KB
Samples/Chapter 07/RawErrors/CPP Client/CPP Client.opt
47.5KB
Samples/Chapter 07/RawErrors/CPP Client/CPP Client.plg
1.25KB
Samples/Chapter 07/RawErrors/CPP Client/RawErrors.h
11.52KB
Samples/Chapter 07/RawErrors/CPP Client/RawErrors_i.c
1.32KB
Samples/Chapter 07/RawErrors/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 07/RawErrors/CPP Client/StdAfx.cpp
297B
Samples/Chapter 07/RawErrors/CPP Client/StdAfx.h
667B
Samples/Chapter 07/RawErrors/DLLDATA.C
813B
Samples/Chapter 07/RawErrors/RawErrors.cpp
830B
Samples/Chapter 07/RawErrors/RawErrors.def
93B
Samples/Chapter 07/RawErrors/RawErrors.dsp
4.4KB
Samples/Chapter 07/RawErrors/RawErrors.dsw
543B
Samples/Chapter 07/RawErrors/RawErrors.h
11.52KB
Samples/Chapter 07/RawErrors/RawErrors.idl
1.17KB
Samples/Chapter 07/RawErrors/RawErrors.ncb
73KB
Samples/Chapter 07/RawErrors/RawErrors.opt
52.5KB
Samples/Chapter 07/RawErrors/RawErrors.plg
1.4KB
Samples/Chapter 07/RawErrors/rawerrors.reg
377B
Samples/Chapter 07/RawErrors/RawErrors_i.c
1.32KB
Samples/Chapter 07/RawErrors/RawErrors_p.c
30.83KB
Samples/Chapter 07/RawErrors/VB Client/frmMain.frm
1.3KB
Samples/Chapter 07/RawErrors/VB Client/VBRawErrors.exe
20KB
Samples/Chapter 07/RawErrors/VB Client/VBRawErrors.vbp
776B
Samples/Chapter 07/RawErrors/VB Client/VBRawErrors.vbw
55B
Samples/Chapter 08/ATLNameClash/ATLNameClash.aps
3.7KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.cpp
2.03KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.def
232B
Samples/Chapter 08/ATLNameClash/ATLNameClash.dsp
12.85KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.dsw
549B
Samples/Chapter 08/ATLNameClash/ATLNameClash.h
7.33KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.idl
1.07KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.ncb
97KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.opt
47.5KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.plg
2.41KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.rc
2.82KB
Samples/Chapter 08/ATLNameClash/ATLNameClash.tlb
2.02KB
Samples/Chapter 08/ATLNameClash/ATLNameClashps.def
254B
Samples/Chapter 08/ATLNameClash/ATLNameClashps.mk
514B
Samples/Chapter 08/ATLNameClash/ATLNameClash_i.c
1.23KB
Samples/Chapter 08/ATLNameClash/ATLNameClash_p.c
7.91KB
Samples/Chapter 08/ATLNameClash/Co3DHexagon.cpp
885B
Samples/Chapter 08/ATLNameClash/Co3DHexagon.h
927B
Samples/Chapter 08/ATLNameClash/Co3DHexagon.rgs
645B
Samples/Chapter 08/ATLNameClash/DLLDATA.C
819B
Samples/Chapter 08/ATLNameClash/RESOURCE.H
505B
Samples/Chapter 08/ATLNameClash/StdAfx.cpp
315B
Samples/Chapter 08/ATLNameClash/StdAfx.h
908B
Samples/Chapter 08/ATLNameClash/VB Client/ATLNameClash.exe
16KB
Samples/Chapter 08/ATLNameClash/VB Client/ATLNameClash.vbp
785B
Samples/Chapter 08/ATLNameClash/VB Client/ATLNameClash.vbw
55B
Samples/Chapter 08/ATLNameClash/VB Client/frmMain.frm
1.3KB
Samples/Chapter 08/ATLNameClash/WRAPPERS.H
546B
Samples/Chapter 08/ATLTearOff/ATLCoCar.cpp
1.95KB
Samples/Chapter 08/ATLTearOff/ATLCoCar.h
2.71KB
Samples/Chapter 08/ATLTearOff/ATLCoCar.rgs
611B
Samples/Chapter 08/ATLTearOff/ATLTearOff.aps
3.21KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.cpp
2.02KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.def
228B
Samples/Chapter 08/ATLTearOff/ATLTearOff.dsp
12.83KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.dsw
545B
Samples/Chapter 08/ATLTearOff/ATLTearOff.h
19.26KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.idl
2.58KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.ncb
129KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.opt
47.5KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.plg
254B
Samples/Chapter 08/ATLTearOff/ATLTearOff.rc
2.62KB
Samples/Chapter 08/ATLTearOff/ATLTearOff.tlb
3.56KB
Samples/Chapter 08/ATLTearOff/ATLTearOffps.def
252B
Samples/Chapter 08/ATLTearOff/ATLTearOffps.mk
490B
Samples/Chapter 08/ATLTearOff/ATLTearOff_i.c
1.52KB
Samples/Chapter 08/ATLTearOff/ATLTearOff_p.c
25.05KB
Samples/Chapter 08/ATLTearOff/DLLDATA.C
815B
Samples/Chapter 08/ATLTearOff/ICC_TearOff.cpp
648B
Samples/Chapter 08/ATLTearOff/ICC_TearOff.h
1.01KB
Samples/Chapter 08/ATLTearOff/Resource.h
461B
Samples/Chapter 08/ATLTearOff/StdAfx.cpp
315B
Samples/Chapter 08/ATLTearOff/StdAfx.h
939B
Samples/Chapter 08/ATLTearOff/VB Client/frmMain.frm
4.2KB
Samples/Chapter 08/ATLTearOff/VB Client/VBTearOffClient.exe
20KB
Samples/Chapter 08/ATLTearOff/VB Client/VBTearOffClient.vbp
787B
Samples/Chapter 08/ATLTearOff/VB Client/VBTearOffClient.vbw
55B
Samples/Chapter 08/ATLVehicals/ATLTearOff.h
19.18KB
Samples/Chapter 08/ATLVehicals/ATLTearOff.idl
2.51KB
Samples/Chapter 08/ATLVehicals/ATLTearOff_i.c
1.52KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.aps
4.88KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.cpp
2.1KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.def
230B
Samples/Chapter 08/ATLVehicals/ATLVehicals.dsp
13.11KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.dsw
547B
Samples/Chapter 08/ATLVehicals/ATLVehicals.h
9.21KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.idl
1.98KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.ncb
113KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.opt
47.5KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.plg
256B
Samples/Chapter 08/ATLVehicals/ATLVehicals.rc
2.93KB
Samples/Chapter 08/ATLVehicals/ATLVehicals.tlb
4.75KB
Samples/Chapter 08/ATLVehicals/ATLVehicalsps.def
253B
Samples/Chapter 08/ATLVehicals/ATLVehicalsps.mk
502B
Samples/Chapter 08/ATLVehicals/ATLVehicals_i.c
1.44KB
Samples/Chapter 08/ATLVehicals/ATLVehicals_p.c
11.89KB
Samples/Chapter 08/ATLVehicals/CoHotRod.cpp
383B
Samples/Chapter 08/ATLVehicals/CoHotRod.h
1.75KB
Samples/Chapter 08/ATLVehicals/CoHotRod.rgs
616B
Samples/Chapter 08/ATLVehicals/CoJeep.cpp
386B
Samples/Chapter 08/ATLVehicals/CoJeep.h
1.4KB
Samples/Chapter 08/ATLVehicals/CoJeep.rgs
600B
Samples/Chapter 08/ATLVehicals/CoMiniVan.cpp
1.42KB
Samples/Chapter 08/ATLVehicals/CoMiniVan.h
2.74KB
Samples/Chapter 08/ATLVehicals/CoMiniVan.rgs
624B
Samples/Chapter 08/ATLVehicals/CPP Client/ATLTearOff.h
19.18KB
Samples/Chapter 08/ATLVehicals/CPP Client/ATLTearOff_i.c
1.52KB
Samples/Chapter 08/ATLVehicals/CPP Client/ATLVehicals.h
9.18KB
Samples/Chapter 08/ATLVehicals/CPP Client/ATLVehicals_i.c
1.44KB
Samples/Chapter 08/ATLVehicals/CPP Client/CPPClient.cpp
764B
Samples/Chapter 08/ATLVehicals/CPP Client/CPPClient.dsp
4.46KB
Samples/Chapter 08/ATLVehicals/CPP Client/CPPClient.dsw
543B
Samples/Chapter 08/ATLVehicals/CPP Client/CPPClient.ncb
49KB
Samples/Chapter 08/ATLVehicals/CPP Client/CPPClient.opt
47.5KB
Samples/Chapter 08/ATLVehicals/CPP Client/CPPClient.plg
1.62KB
Samples/Chapter 08/ATLVehicals/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 08/ATLVehicals/CPP Client/StdAfx.cpp
296B
Samples/Chapter 08/ATLVehicals/CPP Client/StdAfx.h
667B
Samples/Chapter 08/ATLVehicals/DLLDATA.C
817B
Samples/Chapter 08/ATLVehicals/RESOURCE.H
594B
Samples/Chapter 08/ATLVehicals/StdAfx.cpp
315B
Samples/Chapter 08/ATLVehicals/StdAfx.h
937B
Samples/Chapter 08/ATLVehicals/VB Client/ATLTester.exe
20KB
Samples/Chapter 08/ATLVehicals/VB Client/ATLTester.vbp
777B
Samples/Chapter 08/ATLVehicals/VB Client/ATLTester.vbw
54B
Samples/Chapter 08/ATLVehicals/VB Client/frmMain.frm
2.6KB
Samples/Chapter 08/ATLVehicals/VB Client/MSSCCPRJ.SCC
194B
Samples/Chapter 08/RawNameClash/Co3DHexagon.cpp
1.81KB
Samples/Chapter 08/RawNameClash/Co3DHexagon.h
1.15KB
Samples/Chapter 08/RawNameClash/Co3DHexFactory.cpp
1.82KB
Samples/Chapter 08/RawNameClash/Co3DHexFactory.h
703B
Samples/Chapter 08/RawNameClash/DLLDATA.C
819B
Samples/Chapter 08/RawNameClash/rawNameClash.cpp
873B
Samples/Chapter 08/RawNameClash/rawNameClash.def
96B
Samples/Chapter 08/RawNameClash/RawNameClash.dsp
4.46KB
Samples/Chapter 08/RawNameClash/RawNameClash.dsw
549B
Samples/Chapter 08/RawNameClash/rawNameClash.h
5.97KB
Samples/Chapter 08/RawNameClash/rawNameClash.idl
590B
Samples/Chapter 08/RawNameClash/RawNameClash.ncb
73KB
Samples/Chapter 08/RawNameClash/RawNameClash.opt
52.5KB
Samples/Chapter 08/RawNameClash/RawNameClash.plg
1.24KB
Samples/Chapter 08/RawNameClash/rawNameClash.reg
381B
Samples/Chapter 08/RawNameClash/rawNameClash_i.c
1.23KB
Samples/Chapter 08/RawNameClash/rawNameClash_p.c
9.6KB
Samples/Chapter 08/RawNameClash/VB Client/frmMain.frm
1.88KB
Samples/Chapter 08/RawNameClash/VB Client/MSSCCPRJ.SCC
201B
Samples/Chapter 08/RawNameClash/VB Client/VBRawNameClash.exe
20KB
Samples/Chapter 08/RawNameClash/VB Client/VBRawNameClash.vbp
782B
Samples/Chapter 08/RawNameClash/VB Client/VBRawNameClash.vbw
55B
Samples/Chapter 08/RawNested/CoHexagon.cpp
2.59KB
Samples/Chapter 08/RawNested/CoHexagon.h
1.49KB
Samples/Chapter 08/RawNested/CoHexFactory.cpp
1.77KB
Samples/Chapter 08/RawNested/CoHexFactory.h
909B
Samples/Chapter 08/RawNested/DLLDATA.C
813B
Samples/Chapter 08/RawNested/rawNested.cpp
858B
Samples/Chapter 08/RawNested/rawNested.def
93B
Samples/Chapter 08/RawNested/RawNested.dsp
4.4KB
Samples/Chapter 08/RawNested/RawNested.dsw
543B
Samples/Chapter 08/RawNested/rawNested.h
6.87KB
Samples/Chapter 08/RawNested/rawNested.idl
717B
Samples/Chapter 08/RawNested/RawNested.ncb
73KB
Samples/Chapter 08/RawNested/RawNested.opt
52.5KB
Samples/Chapter 08/RawNested/RawNested.plg
2.03KB
Samples/Chapter 08/RawNested/rawNested.reg
371B
Samples/Chapter 08/RawNested/rawNested_i.c
1.23KB
Samples/Chapter 08/RawNested/rawNested_p.c
13.67KB
Samples/Chapter 08/RawNested/VB Client/frmMain.frm
2.4KB
Samples/Chapter 08/RawNested/VB Client/MSSCCPRJ.SCC
202B
Samples/Chapter 08/RawNested/VB Client/RawNestedTester.exe
20KB
Samples/Chapter 08/RawNested/VB Client/RawNestedTester.vbp
786B
Samples/Chapter 08/RawNested/VB Client/RawNestedTester.vbw
56B
Samples/Chapter 09/ATLShapes/ATLShapes.aps
5.41KB
Samples/Chapter 09/ATLShapes/ATLShapes.cpp
2.12KB
Samples/Chapter 09/ATLShapes/ATLShapes.def
226B
Samples/Chapter 09/ATLShapes/ATLShapes.dsp
13.03KB
Samples/Chapter 09/ATLShapes/ATLShapes.dsw
543B
Samples/Chapter 09/ATLShapes/ATLShapes.h
11.54KB
Samples/Chapter 09/ATLShapes/ATLShapes.idl
1.88KB
Samples/Chapter 09/ATLShapes/ATLShapes.ncb
105KB
Samples/Chapter 09/ATLShapes/ATLShapes.opt
52.5KB
Samples/Chapter 09/ATLShapes/ATLShapes.plg
252B
Samples/Chapter 09/ATLShapes/ATLShapes.rc
2.92KB
Samples/Chapter 09/ATLShapes/ATLShapes.tlb
2.75KB
Samples/Chapter 09/ATLShapes/ATLShapesps.def
251B
Samples/Chapter 09/ATLShapes/ATLShapesps.mk
478B
Samples/Chapter 09/ATLShapes/ATLShapes_i.c
1.52KB
Samples/Chapter 09/ATLShapes/ATLShapes_p.c
13.91KB
Samples/Chapter 09/ATLShapes/CATIDS.H
280B
Samples/Chapter 09/ATLShapes/CoHexagon.cpp
1.13KB
Samples/Chapter 09/ATLShapes/CoHexagon.h
1.82KB
Samples/Chapter 09/ATLShapes/CoHexagon.rgs
880B
Samples/Chapter 09/ATLShapes/CoLine.cpp
1.1KB
Samples/Chapter 09/ATLShapes/CoLine.h
1.77KB
Samples/Chapter 09/ATLShapes/CoLine.rgs
722B
Samples/Chapter 09/ATLShapes/CPP Client/ATLShapes.h
11.49KB
Samples/Chapter 09/ATLShapes/CPP Client/ATLShapes_i.c
1.52KB
Samples/Chapter 09/ATLShapes/CPP Client/CATIDS.H
280B
Samples/Chapter 09/ATLShapes/CPP Client/CPP Client.cpp
1.48KB
Samples/Chapter 09/ATLShapes/CPP Client/CPP Client.dsp
4.48KB
Samples/Chapter 09/ATLShapes/CPP Client/CPP Client.dsw
545B
Samples/Chapter 09/ATLShapes/CPP Client/CPP Client.ncb
49KB
Samples/Chapter 09/ATLShapes/CPP Client/CPP Client.opt
52.5KB
Samples/Chapter 09/ATLShapes/CPP Client/CPP Client.plg
1.81KB
Samples/Chapter 09/ATLShapes/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 09/ATLShapes/CPP Client/StdAfx.cpp
297B
Samples/Chapter 09/ATLShapes/CPP Client/StdAfx.h
667B
Samples/Chapter 09/ATLShapes/DLLDATA.C
813B
Samples/Chapter 09/ATLShapes/OSBuffer.cpp
428B
Samples/Chapter 09/ATLShapes/OSBuffer.h
1.01KB
Samples/Chapter 09/ATLShapes/OSBuffer.rgs
606B
Samples/Chapter 09/ATLShapes/RESOURCE.H
592B
Samples/Chapter 09/ATLShapes/StdAfx.cpp
315B
Samples/Chapter 09/ATLShapes/StdAfx.h
908B
Samples/Chapter 09/ATLShapes/VB Client/frmMain.frm
3.18KB
Samples/Chapter 09/ATLShapes/VB Client/Project1.exe
20KB
Samples/Chapter 09/ATLShapes/VB Client/Project1.vbp
769B
Samples/Chapter 09/ATLShapes/VB Client/Project1.vbw
53B
Samples/Chapter 10/DualObject/CoDualSquiggle.cpp
3.79KB
Samples/Chapter 10/DualObject/CoDualSquiggle.h
1.36KB
Samples/Chapter 10/DualObject/CoDualSquiggleClassFactory.cpp
1.92KB
Samples/Chapter 10/DualObject/CoDualSquiggleClassFactory.h
970B
Samples/Chapter 10/DualObject/DLLDATA.C
835B
Samples/Chapter 10/DualObject/Dual VB Client/DualVBTester.exe
20KB
Samples/Chapter 10/DualObject/Dual VB Client/DualVBTester.vbp
761B
Samples/Chapter 10/DualObject/Dual VB Client/DualVBTester.vbw
55B
Samples/Chapter 10/DualObject/Dual VB Client/frmMain.frm
1.59KB
Samples/Chapter 10/DualObject/Dual VB Client/MSSCCPRJ.SCC
197B
Samples/Chapter 10/DualObject/DUALOBJ.H
7.07KB
Samples/Chapter 10/DualObject/DUALOBJ.IDL
530B
Samples/Chapter 10/DualObject/DualObject.cpp
708B
Samples/Chapter 10/DualObject/DualObject.def
94B
Samples/Chapter 10/DualObject/DualObject.dsp
4.45KB
Samples/Chapter 10/DualObject/DualObject.dsw
545B
Samples/Chapter 10/DualObject/DualObject.ncb
73KB
Samples/Chapter 10/DualObject/DualObject.opt
52.5KB
Samples/Chapter 10/DualObject/DualObject.plg
1.35KB
Samples/Chapter 10/DualObject/DualObject.reg
408B
Samples/Chapter 10/DualObject/dualobj_i.c
1.13KB
Samples/Chapter 10/DualObject/dualobj_p.c
12.02KB
Samples/Chapter 10/DualObject/MFC Client/dualobj.cpp
743B
Samples/Chapter 10/DualObject/MFC Client/dualobj.h
584B
Samples/Chapter 10/DualObject/MFC Client/MainFrm.cpp
2.45KB
Samples/Chapter 10/DualObject/MFC Client/MainFrm.h
1.54KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.aps
46.21KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.clw
2.32KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.cpp
5.56KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.dsp
4.81KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.dsw
545B
Samples/Chapter 10/DualObject/MFC Client/MFC Client.h
1.43KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.ncb
57KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.odl
1.04KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.opt
47.5KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.plg
2.64KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.rc
12.28KB
Samples/Chapter 10/DualObject/MFC Client/MFC Client.reg
691B
Samples/Chapter 10/DualObject/MFC Client/MFC ClientDoc.cpp
2.55KB
Samples/Chapter 10/DualObject/MFC Client/MFC ClientDoc.h
1.76KB
Samples/Chapter 10/DualObject/MFC Client/MFC ClientView.cpp
2.69KB
Samples/Chapter 10/DualObject/MFC Client/MFC ClientView.h
1.78KB
Samples/Chapter 10/DualObject/MFC Client/ReadMe.txt
4.71KB
Samples/Chapter 10/DualObject/MFC Client/res/MFC Client.ico
1.05KB
Samples/Chapter 10/DualObject/MFC Client/res/MFC Client.rc2
402B
Samples/Chapter 10/DualObject/MFC Client/res/MFC ClientDoc.ico
1.05KB
Samples/Chapter 10/DualObject/MFC Client/res/Toolbar.bmp
1.17KB
Samples/Chapter 10/DualObject/MFC Client/resource.h
689B
Samples/Chapter 10/DualObject/MFC Client/StdAfx.cpp
212B
Samples/Chapter 10/DualObject/MFC Client/StdAfx.h
1.03KB
Samples/Chapter 10/DualWithTypeInfo/CoDualSquiggle.cpp
4.11KB
Samples/Chapter 10/DualWithTypeInfo/CoDualSquiggle.h
1.38KB
Samples/Chapter 10/DualWithTypeInfo/CoDualSquiggleClassFactory.cpp
1.92KB
Samples/Chapter 10/DualWithTypeInfo/CoDualSquiggleClassFactory.h
970B
Samples/Chapter 10/DualWithTypeInfo/DLLDATA.C
913B
Samples/Chapter 10/DualWithTypeInfo/Dual VB Client/DualVBTester.exe
20KB
Samples/Chapter 10/DualWithTypeInfo/Dual VB Client/DualVBTester.vbp
793B
Samples/Chapter 10/DualWithTypeInfo/Dual VB Client/DualVBTester.vbw
56B
Samples/Chapter 10/DualWithTypeInfo/Dual VB Client/frmMain.frm
1.63KB
Samples/Chapter 10/DualWithTypeInfo/DualObject.cpp
706B
Samples/Chapter 10/DualWithTypeInfo/DualObject.def
100B
Samples/Chapter 10/DualWithTypeInfo/DualObjectTI.reg
808B
Samples/Chapter 10/DualWithTypeInfo/dualObjWithTI.h
7.79KB
Samples/Chapter 10/DualWithTypeInfo/dualObjWithTI.idl
525B
Samples/Chapter 10/DualWithTypeInfo/dualObjWithTI_i.c
1.15KB
Samples/Chapter 10/DualWithTypeInfo/dualObjWithTI_p.c
14.69KB
Samples/Chapter 10/DualWithTypeInfo/DualWithTypeInfo.dsp
4.55KB
Samples/Chapter 10/DualWithTypeInfo/DualWithTypeInfo.dsw
557B
Samples/Chapter 10/DualWithTypeInfo/DualWithTypeInfo.ncb
73KB
Samples/Chapter 10/DualWithTypeInfo/DualWithTypeInfo.opt
52.5KB
Samples/Chapter 10/DualWithTypeInfo/DualWithTypeInfo.plg
1.64KB
Samples/Chapter 10/RawDisp/CoSquiggle.cpp
3.45KB
Samples/Chapter 10/RawDisp/CoSquiggle.h
1.28KB
Samples/Chapter 10/RawDisp/CoSquiggleClassFactory.cpp
1.88KB
Samples/Chapter 10/RawDisp/CoSquiggleClassFactory.h
958B
Samples/Chapter 10/RawDisp/CPP Client/CPP Client.cpp
947B
Samples/Chapter 10/RawDisp/CPP Client/CPP Client.dsp
4.48KB
Samples/Chapter 10/RawDisp/CPP Client/CPP Client.dsw
545B
Samples/Chapter 10/RawDisp/CPP Client/CPP Client.ncb
57KB
Samples/Chapter 10/RawDisp/CPP Client/CPP Client.opt
47.5KB
Samples/Chapter 10/RawDisp/CPP Client/CPP Client.plg
1.43KB
Samples/Chapter 10/RawDisp/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 10/RawDisp/CPP Client/StdAfx.cpp
297B
Samples/Chapter 10/RawDisp/CPP Client/StdAfx.h
667B
Samples/Chapter 10/RawDisp/RawDisp.cpp
708B
Samples/Chapter 10/RawDisp/RawDisp.def
92B
Samples/Chapter 10/RawDisp/RawDisp.dsp
4.31KB
Samples/Chapter 10/RawDisp/RawDisp.dsw
539B
Samples/Chapter 10/RawDisp/RawDisp.ncb
89KB
Samples/Chapter 10/RawDisp/RawDisp.opt
52.5KB
Samples/Chapter 10/RawDisp/RawDisp.plg
1.51KB
Samples/Chapter 10/RawDisp/RAWDISP.REG
388B
Samples/Chapter 10/RawDisp/VB Client/frmMain.frm
1.85KB
Samples/Chapter 10/RawDisp/VB Client/RawVBClient.exe
20.07KB
Samples/Chapter 10/RawDisp/VB Client/RawVBClient.vbp
723B
Samples/Chapter 10/RawDisp/VB Client/RawVBClient.vbw
56B
Samples/Chapter 10/RawDisp/VBScript Client/VBScript Client.htm
534B
Samples/Chapter 10/ScriptibleCoCar/DLLDATA.C
851B
Samples/Chapter 10/ScriptibleCoCar/DualCoCar.cpp
1.69KB
Samples/Chapter 10/ScriptibleCoCar/DualCoCar.h
2.11KB
Samples/Chapter 10/ScriptibleCoCar/DualCoCar.rgs
675B
Samples/Chapter 10/ScriptibleCoCar/RESOURCE.H
508B
Samples/Chapter 10/ScriptibleCoCar/Script Client/CoCar.htm
1.8KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.aps
3.75KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.cpp
2.03KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.def
238B
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.dsp
12.9KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.dsw
555B
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.h
27.8KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.idl
2.92KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.ncb
89KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.opt
52.5KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.plg
1.83KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.rc
2.84KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar.tlb
3.93KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCarps.def
257B
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCarps.mk
550B
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar_i.c
1.54KB
Samples/Chapter 10/ScriptibleCoCar/ScriptibleCoCar_p.c
36.25KB
Samples/Chapter 10/ScriptibleCoCar/StdAfx.cpp
315B
Samples/Chapter 10/ScriptibleCoCar/StdAfx.h
908B
Samples/Chapter 11/AgeEnum/AgeEnum.cpp
1.21KB
Samples/Chapter 11/AgeEnum/AgeEnum.def
91B
Samples/Chapter 11/AgeEnum/AgeEnum.dsp
4.37KB
Samples/Chapter 11/AgeEnum/AgeEnum.dsw
539B
Samples/Chapter 11/AgeEnum/AgeEnum.h
6.24KB
Samples/Chapter 11/AgeEnum/AgeEnum.idl
868B
Samples/Chapter 11/AgeEnum/AgeEnum.ncb
97KB
Samples/Chapter 11/AgeEnum/AgeEnum.opt
52.5KB
Samples/Chapter 11/AgeEnum/AgeEnum.plg
1.28KB
Samples/Chapter 11/AgeEnum/AgeEnum.reg
403B
Samples/Chapter 11/AgeEnum/AgeEnum.suo
3.5KB
Samples/Chapter 11/AgeEnum/AgeEnum_i.c
1.12KB
Samples/Chapter 11/AgeEnum/AgeEnum_p.c
21.57KB
Samples/Chapter 11/AgeEnum/Client/AgeEnum.h
6.27KB
Samples/Chapter 11/AgeEnum/Client/AgeEnum_i.c
1.15KB
Samples/Chapter 11/AgeEnum/Client/Client.cpp
1.82KB
Samples/Chapter 11/AgeEnum/Client/Client.dsp
4.43KB
Samples/Chapter 11/AgeEnum/Client/Client.dsw
537B
Samples/Chapter 11/AgeEnum/Client/Client.ncb
41KB
Samples/Chapter 11/AgeEnum/Client/Client.opt
47.5KB
Samples/Chapter 11/AgeEnum/Client/Client.plg
1.21KB
Samples/Chapter 11/AgeEnum/Client/ReadMe.txt
1.18KB
Samples/Chapter 11/AgeEnum/Client/StdAfx.cpp
293B
Samples/Chapter 11/AgeEnum/Client/StdAfx.h
667B
Samples/Chapter 11/AgeEnum/CoAgeHolder.cpp
2.34KB
Samples/Chapter 11/AgeEnum/CoAgeHolder.h
1.13KB
Samples/Chapter 11/AgeEnum/CoAHolderFactory.cpp
1.8KB
Samples/Chapter 11/AgeEnum/CoAHolderFactory.h
919B
Samples/Chapter 11/AgeEnum/DLLDATA.C
809B
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.aps
4.44KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.cpp
2.09KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.def
234B
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.dsp
13.04KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.dsw
549B
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.h
14.31KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.idl
1.89KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.ncb
217KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.opt
47.5KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.plg
1.93KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.rc
2.89KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer.tlb
2.9KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServerps.def
255B
Samples/Chapter 11/ATLEnumServer/ATLEnumServerps.mk
526B
Samples/Chapter 11/ATLEnumServer/ATLEnumServer_i.c
1.44KB
Samples/Chapter 11/ATLEnumServer/ATLEnumServer_p.c
21.67KB
Samples/Chapter 11/ATLEnumServer/CPP Client/EnumTester.cpp
826B
Samples/Chapter 11/ATLEnumServer/CPP Client/EnumTester.dsp
4.48KB
Samples/Chapter 11/ATLEnumServer/CPP Client/EnumTester.dsw
545B
Samples/Chapter 11/ATLEnumServer/CPP Client/EnumTester.ncb
161KB
Samples/Chapter 11/ATLEnumServer/CPP Client/EnumTester.opt
47.5KB
Samples/Chapter 11/ATLEnumServer/CPP Client/EnumTester.plg
1.37KB
Samples/Chapter 11/ATLEnumServer/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 11/ATLEnumServer/CPP Client/StdAfx.cpp
297B
Samples/Chapter 11/ATLEnumServer/CPP Client/StdAfx.h
667B
Samples/Chapter 11/ATLEnumServer/DLLDATA.C
821B
Samples/Chapter 11/ATLEnumServer/PeopleHolder.cpp
835B
Samples/Chapter 11/ATLEnumServer/PeopleHolder.h
1.61KB
Samples/Chapter 11/ATLEnumServer/PeopleHolder.rgs
658B
Samples/Chapter 11/ATLEnumServer/Person.cpp
561B
Samples/Chapter 11/ATLEnumServer/Person.h
880B
Samples/Chapter 11/ATLEnumServer/Person.rgs
610B
Samples/Chapter 11/ATLEnumServer/Resource.h
551B
Samples/Chapter 11/ATLEnumServer/StdAfx.cpp
315B
Samples/Chapter 11/ATLEnumServer/StdAfx.h
908B
Samples/Chapter 11/BulkServer/BulkServer.aps
4.44KB
Samples/Chapter 11/BulkServer/BulkServer.cpp
2.1KB
Samples/Chapter 11/BulkServer/BulkServer.def
228B
Samples/Chapter 11/BulkServer/BulkServer.dsp
12.89KB
Samples/Chapter 11/BulkServer/BulkServer.dsw
545B
Samples/Chapter 11/BulkServer/BulkServer.h
12.31KB
Samples/Chapter 11/BulkServer/BulkServer.idl
1.82KB
Samples/Chapter 11/BulkServer/BulkServer.ncb
89KB
Samples/Chapter 11/BulkServer/BulkServer.opt
52.5KB
Samples/Chapter 11/BulkServer/BulkServer.plg
0B
Samples/Chapter 11/BulkServer/BulkServer.rc
2.86KB
Samples/Chapter 11/BulkServer/BulkServer.tlb
3.16KB
Samples/Chapter 11/BulkServer/BulkServerps.def
252B
Samples/Chapter 11/BulkServer/BulkServerps.mk
490B
Samples/Chapter 11/BulkServer/BulkServer_i.c
1.33KB
Samples/Chapter 11/BulkServer/BulkServer_p.c
39.18KB
Samples/Chapter 11/BulkServer/CoBulkObject.cpp
2.8KB
Samples/Chapter 11/BulkServer/CoBulkObject.h
1003B
Samples/Chapter 11/BulkServer/CoBulkObject.rgs
674B
Samples/Chapter 11/BulkServer/CoSub.cpp
381B
Samples/Chapter 11/BulkServer/CoSub.h
739B
Samples/Chapter 11/BulkServer/CoSub.rgs
587B
Samples/Chapter 11/BulkServer/dlldata.c
841B
Samples/Chapter 11/BulkServer/resource.h
548B
Samples/Chapter 11/BulkServer/StdAfx.cpp
315B
Samples/Chapter 11/BulkServer/StdAfx.h
908B
Samples/Chapter 11/BulkServer/VB Client/Form1.frm
3.21KB
Samples/Chapter 11/BulkServer/VB Client/Project1.exe
20KB
Samples/Chapter 11/BulkServer/VB Client/Project1.vbp
727B
Samples/Chapter 11/BulkServer/VB Client/Project1.vbw
54B
Samples/Chapter 11/Squiggle Collection 1/CoSquiggle.cpp
822B
Samples/Chapter 11/Squiggle Collection 1/CoSquiggle.h
1011B
Samples/Chapter 11/Squiggle Collection 1/CoSquiggle.rgs
698B
Samples/Chapter 11/Squiggle Collection 1/CoSquiggles.cpp
1.56KB
Samples/Chapter 11/Squiggle Collection 1/CoSquiggles.h
1.72KB
Samples/Chapter 11/Squiggle Collection 1/CoSquiggles.rgs
706B
Samples/Chapter 11/Squiggle Collection 1/DLLDATA.C
857B
Samples/Chapter 11/Squiggle Collection 1/RESOURCE.H
556B
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.aps
4.72KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.cpp
2.04KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.def
244B
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.dsp
13.23KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.dsw
561B
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.h
15.04KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.idl
1.67KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.ncb
97KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.opt
47.5KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.plg
270B
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.rc
2.92KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection.tlb
2.48KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollectionps.def
260B
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollectionps.mk
586B
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection_i.c
1.36KB
Samples/Chapter 11/Squiggle Collection 1/SquiggleCollection_p.c
38.04KB
Samples/Chapter 11/Squiggle Collection 1/StdAfx.cpp
315B
Samples/Chapter 11/Squiggle Collection 1/StdAfx.h
908B
Samples/Chapter 11/Squiggle Collection 1/VB Client/frmMain.frm
1.91KB
Samples/Chapter 11/Squiggle Collection 1/VB Client/Project1.exe
20KB
Samples/Chapter 11/Squiggle Collection 1/VB Client/Project1.vbp
789B
Samples/Chapter 11/Squiggle Collection 1/VB Client/Project1.vbw
52B
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.aps
4.96KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.cpp
2.19KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.def
256B
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.dsp
13.55KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.dsw
573B
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.h
17.03KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.idl
1.87KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.ncb
105KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.opt
48.5KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.plg
1.97KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.rc
2.97KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection.tlb
2.72KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollectionps.def
266B
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollectionps.mk
658B
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection_i.c
1.4KB
Samples/Chapter 11/Squiggle Collection 2/BetterSquiggleCollection_p.c
40.64KB
Samples/Chapter 11/Squiggle Collection 2/CoSquiggle.cpp
689B
Samples/Chapter 11/Squiggle Collection 2/CoSquiggle.h
937B
Samples/Chapter 11/Squiggle Collection 2/CoSquiggle.rgs
728B
Samples/Chapter 11/Squiggle Collection 2/DLLDATA.C
869B
Samples/Chapter 11/Squiggle Collection 2/RESOURCE.H
562B
Samples/Chapter 11/Squiggle Collection 2/SquiggleCollection2.cpp
2.22KB
Samples/Chapter 11/Squiggle Collection 2/SquiggleCollection2.h
2.16KB
Samples/Chapter 11/Squiggle Collection 2/SquiggleCollection2.rgs
800B
Samples/Chapter 11/Squiggle Collection 2/StdAfx.cpp
315B
Samples/Chapter 11/Squiggle Collection 2/StdAfx.h
908B
Samples/Chapter 11/Squiggle Collection 2/VB Client/frmMain.frm
4.22KB
Samples/Chapter 11/Squiggle Collection 2/VB Client/Project1.exe
24KB
Samples/Chapter 11/Squiggle Collection 2/VB Client/Project1.vbp
801B
Samples/Chapter 11/Squiggle Collection 2/VB Client/Project1.vbw
56B
Samples/Chapter 11/Squiggle Collection 2/VBScript Client/vbscript client.htm
533B
Samples/Chapter 12/ATL Events/ATLEvents.aps
4.07KB
Samples/Chapter 12/ATL Events/ATLEvents.cpp
4.4KB
Samples/Chapter 12/ATL Events/ATLEvents.dsp
12.62KB
Samples/Chapter 12/ATL Events/ATLEvents.dsw
543B
Samples/Chapter 12/ATL Events/ATLEvents.h
12.85KB
Samples/Chapter 12/ATL Events/ATLEvents.idl
1.42KB
Samples/Chapter 12/ATL Events/ATLEvents.ncb
81KB
Samples/Chapter 12/ATL Events/ATLEvents.opt
47.5KB
Samples/Chapter 12/ATL Events/ATLEvents.plg
1.44KB
Samples/Chapter 12/ATL Events/ATLEvents.rc
2.86KB
Samples/Chapter 12/ATL Events/ATLEvents.rgs
181B
Samples/Chapter 12/ATL Events/ATLEvents.tlb
2.26KB
Samples/Chapter 12/ATL Events/ATLEventsCP.h
1010B
Samples/Chapter 12/ATL Events/ATLEventsps.def
251B
Samples/Chapter 12/ATL Events/ATLEventsps.mk
478B
Samples/Chapter 12/ATL Events/ATLEvents_i.c
1.23KB
Samples/Chapter 12/ATL Events/ATLEvents_p.c
12.73KB
Samples/Chapter 12/ATL Events/CoChild.cpp
1.87KB
Samples/Chapter 12/ATL Events/CoChild.h
1.49KB
Samples/Chapter 12/ATL Events/CoStats.rgs
635B
Samples/Chapter 12/ATL Events/dlldata.c
839B
Samples/Chapter 12/ATL Events/Resource.h
547B
Samples/Chapter 12/ATL Events/StdAfx.cpp
315B
Samples/Chapter 12/ATL Events/StdAfx.h
1.07KB
Samples/Chapter 12/ATL Events/VB Client/Form1.frm
3.18KB
Samples/Chapter 12/ATL Events/VB Client/Project1.exe
24KB
Samples/Chapter 12/ATL Events/VB Client/Project1.vbp
778B
Samples/Chapter 12/ATL Events/VB Client/Project1.vbw
52B
Samples/Chapter 12/CarCallback/CarCallback.cpp
838B
Samples/Chapter 12/CarCallback/CarCallback.def
95B
Samples/Chapter 12/CarCallback/CarCallBack.dsp
4.45KB
Samples/Chapter 12/CarCallback/CarCallBack.dsw
547B
Samples/Chapter 12/CarCallback/CarCallback.h
17.8KB
Samples/Chapter 12/CarCallback/CarCallback.idl
1.78KB
Samples/Chapter 12/CarCallback/CarCallBack.ncb
81KB
Samples/Chapter 12/CarCallback/CarCallBack.opt
52.5KB
Samples/Chapter 12/CarCallback/CarCallBack.plg
1.33KB
Samples/Chapter 12/CarCallback/carcallback.reg
935B
Samples/Chapter 12/CarCallback/CarCallback_i.c
1.55KB
Samples/Chapter 12/CarCallback/CarCallback_p.c
44.74KB
Samples/Chapter 12/CarCallback/CoCar.cpp
2.4KB
Samples/Chapter 12/CarCallback/CoCar.h
1.15KB
Samples/Chapter 12/CarCallback/CoCarCallBack.cpp
3.29KB
Samples/Chapter 12/CarCallback/CoCarCallBack.h
1.37KB
Samples/Chapter 12/CarCallback/CoCarClassFactory.cpp
1.78KB
Samples/Chapter 12/CarCallback/CoCarClassFactory.h
922B
Samples/Chapter 12/CarCallback/CPP Client/CarCallback.h
17.8KB
Samples/Chapter 12/CarCallback/CPP Client/CarCallback_i.c
1.55KB
Samples/Chapter 12/CarCallback/CPP Client/CoTheCallBack.cpp
958B
Samples/Chapter 12/CarCallback/CPP Client/CoTheCallBack.h
1.04KB
Samples/Chapter 12/CarCallback/CPP Client/CPP Client.cpp
903B
Samples/Chapter 12/CarCallback/CPP Client/CPP Client.dsp
4.61KB
Samples/Chapter 12/CarCallback/CPP Client/CPP Client.dsw
545B
Samples/Chapter 12/CarCallback/CPP Client/CPP Client.ncb
65KB
Samples/Chapter 12/CarCallback/CPP Client/CPP Client.opt
52.5KB
Samples/Chapter 12/CarCallback/CPP Client/CPP Client.plg
1.3KB
Samples/Chapter 12/CarCallback/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 12/CarCallback/CPP Client/StdAfx.cpp
297B
Samples/Chapter 12/CarCallback/CPP Client/StdAfx.h
667B
Samples/Chapter 12/CarCallback/DLLDATA.C
817B
Samples/Chapter 12/CarCallback/VB Client/CVBSink.cls
669B
Samples/Chapter 12/CarCallback/VB Client/Form1.frm
2.11KB
Samples/Chapter 12/CarCallback/VB Client/Project1.exe
20KB
Samples/Chapter 12/CarCallback/VB Client/Project1.vbp
840B
Samples/Chapter 12/CarCallback/VB Client/Project1.vbw
86B
Samples/Chapter 12/RawConnObjServer/CoSomeObject.cpp
1.87KB
Samples/Chapter 12/RawConnObjServer/CoSomeObject.h
1.09KB
Samples/Chapter 12/RawConnObjServer/CoSomeObjectClassFactory.cpp
1.86KB
Samples/Chapter 12/RawConnObjServer/CoSomeObjectClassFactory.h
943B
Samples/Chapter 12/RawConnObjServer/CPOne.cpp
2.96KB
Samples/Chapter 12/RawConnObjServer/CPOne.h
1.27KB
Samples/Chapter 12/RawConnObjServer/CPP Client/CoTheCallBack.cpp
909B
Samples/Chapter 12/RawConnObjServer/CPP Client/CoTheCallBack.h
762B
Samples/Chapter 12/RawConnObjServer/CPP Client/CPP Client.cpp
1.09KB
Samples/Chapter 12/RawConnObjServer/CPP Client/CPP Client.dsp
4.61KB
Samples/Chapter 12/RawConnObjServer/CPP Client/CPP Client.dsw
545B
Samples/Chapter 12/RawConnObjServer/CPP Client/CPP Client.ncb
65KB
Samples/Chapter 12/RawConnObjServer/CPP Client/CPP Client.opt
52.5KB
Samples/Chapter 12/RawConnObjServer/CPP Client/CPP Client.plg
1.3KB
Samples/Chapter 12/RawConnObjServer/CPP Client/RawConnObjServer.h
6.45KB
Samples/Chapter 12/RawConnObjServer/CPP Client/RawConnObjServer_i.c
1.25KB
Samples/Chapter 12/RawConnObjServer/CPP Client/ReadMe.txt
1.2KB
Samples/Chapter 12/RawConnObjServer/CPP Client/StdAfx.cpp
297B
Samples/Chapter 12/RawConnObjServer/CPP Client/StdAfx.h
667B
Samples/Chapter 12/RawConnObjServer/DLLDATA.C
853B
Samples/Chapter 12/RawConnObjServer/RawConnObj.cpp
1.22KB
Samples/Chapter 12/RawConnObjServer/RawConnObj.reg
440B
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.def
100B
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.dsp
4.67KB
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.dsw
557B
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.h
6.45KB
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.idl
727B
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.ncb
105KB
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.opt
52.5KB
Samples/Chapter 12/RawConnObjServer/RawConnObjServer.plg
1.74KB
Samples/Chapter 12/RawConnObjServer/RawConnObjServer_i.c
1.25KB
Samples/Chapter 12/RawConnObjServer/RawConnObjServer_p.c
9.87KB
Samples/Chapter 12/RawConnObjServer/VB Client/Form1.frm
1.65KB
Samples/Chapter 12/RawConnObjServer/VB Client/Project1.exe
20KB
Samples/Chapter 12/RawConnObjServer/VB Client/Project1.vbp
761B
Samples/Chapter 12/RawConnObjServer/VB Client/Project1.vbw
54B
Samples/Chapter 13/ATLWindow/ATLWindowExample.aps
6.5KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.cpp
4.46KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.dsp
13.03KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.dsw
557B
Samples/Chapter 13/ATLWindow/ATLWindowExample.h
9.64KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.idl
1.24KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.ncb
177KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.opt
47.5KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.plg
607B
Samples/Chapter 13/ATLWindow/ATLWindowExample.rc
4.3KB
Samples/Chapter 13/ATLWindow/ATLWindowExample.rgs
195B
Samples/Chapter 13/ATLWindow/ATLWindowExample.tlb
2.23KB
Samples/Chapter 13/ATLWindow/ATLWindowExampleps.def
258B
Samples/Chapter 13/ATLWindow/ATLWindowExampleps.mk
562B
Samples/Chapter 13/ATLWindow/ATLWindowExample_i.c
1.14KB
Samples/Chapter 13/ATLWindow/ATLWindowExample_p.c
12.89KB
Samples/Chapter 13/ATLWindow/Client/Form1.frm
5.45KB
Samples/Chapter 13/ATLWindow/Client/Project1.vbp
863B
Samples/Chapter 13/ATLWindow/Client/Project1.vbw
54B
Samples/Chapter 13/ATLWindow/Client/VB Window Tester.exe
24KB
Samples/Chapter 13/ATLWindow/CoWindow.cpp
1.04KB
Samples/Chapter 13/ATLWindow/CoWindow.h
1.08KB
Samples/Chapter 13/ATLWindow/CoWindow.rgs
647B
Samples/Chapter 13/ATLWindow/DLLDATA.C
853B
Samples/Chapter 13/ATLWindow/ICON1.ICO
766B
Samples/Chapter 13/ATLWindow/MyWindow.cpp
1.84KB
Samples/Chapter 13/ATLWindow/MyWindow.h
926B
Samples/Chapter 13/ATLWindow/RESOURCE.H
736B
Samples/Chapter 13/ATLWindow/StdAfx.cpp
315B
Samples/Chapter 13/ATLWindow/StdAfx.h
1.14KB
Samples/Chapter 13/Win32Window/mainWnd.cpp
2.18KB
Samples/Chapter 13/Win32Window/Win32Window.dsp
3.88KB
Samples/Chapter 13/Win32Window/Win32Window.dsw
547B
Samples/Chapter 13/Win32Window/Win32Window.ncb
41KB
Samples/Chapter 13/Win32Window/Win32Window.opt
47.5KB
Samples/Chapter 13/Win32Window/Win32Window.plg
1.23KB
Samples/Chapter 14/AXCarServer/almostdead.bmp
1.24KB
Samples/Chapter 14/AXCarServer/AXCAR.BMP
246B
Samples/Chapter 14/AXCarServer/AxCar.cpp
3.8KB
Samples/Chapter 14/AXCarServer/AxCar.h
5.21KB
Samples/Chapter 14/AXCarServer/AxCar.htm
183B
Samples/Chapter 14/AXCarServer/AxCar.rgs
834B
Samples/Chapter 14/AXCarServer/AXCarServer.aps
13.3KB
Samples/Chapter 14/AXCarServer/AXCarServer.cpp
2KB
Samples/Chapter 14/AXCarServer/AXCarServer.def
230B
Samples/Chapter 14/AXCarServer/AXCarServer.dsp
13.74KB
Samples/Chapter 14/AXCarServer/AXCarServer.dsw
547B
Samples/Chapter 14/AXCarServer/AXCarServer.h
18.5KB
Samples/Chapter 14/AXCarServer/AXCarServer.idl
2.58KB
Samples/Chapter 14/AXCarServer/AXCarServer.ncb
121KB
Samples/Chapter 14/AXCarServer/AXCarServer.opt
52.5KB
Samples/Chapter 14/AXCarServer/AXCarServer.plg
256B
Samples/Chapter 14/AXCarServer/AXCarServer.rc
4.9KB
Samples/Chapter 14/AXCarServer/AXCarServer.tlb
3.37KB
Samples/Chapter 14/AXCarServer/AXCarServerCP.h
1.54KB
Samples/Chapter 14/AXCarServer/AXCarServerps.def
253B
Samples/Chapter 14/AXCarServer/AXCarServerps.mk
502B
Samples/Chapter 14/AXCarServer/AXCarServer_i.c
1.33KB
Samples/Chapter 14/AXCarServer/AXCarServer_p.c
20.02KB
Samples/Chapter 14/AXCarServer/ConfigureCar.cpp
230B
Samples/Chapter 14/AXCarServer/ConfigureCar.h
3.21KB
Samples/Chapter 14/AXCarServer/ConfigureCar.rgs
516B
Samples/Chapter 14/AXCarServer/DEAD.BMP
1.24KB
Samples/Chapter 14/AXCarServer/DLLDATA.C
843B
Samples/Chapter 14/AXCarServer/LEMON1.BMP
1.24KB
Samples/Chapter 14/AXCarServer/LEMON2.BMP
1.24KB
Samples/Chapter 14/AXCarServer/LEMON3.BMP
1.24KB
Samples/Chapter 14/AXCarServer/RESOURCE.H
1.15KB
Samples/Chapter 14/AXCarServer/StdAfx.cpp
315B
Samples/Chapter 14/AXCarServer/StdAfx.h
960B
Samples/Chapter 14/AXCarServer/VB Client/Form1.frm
4.4KB
Samples/Chapter 14/AXCarServer/VB Client/Project1.exe
24KB
Samples/Chapter 14/AXCarServer/VB Client/Project1.vbp
746B
Samples/Chapter 14/AXCarServer/VB Client/Project1.vbw
54B
Samples/Chapter 14/AXShapesServer/AXShapesServer.aps
6.61KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.cpp
2.03KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.def
236B
Samples/Chapter 14/AXShapesServer/AXShapesServer.dsp
13.58KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.dsw
553B
Samples/Chapter 14/AXShapesServer/AXShapesServer.h
18.93KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.idl
2.56KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.ncb
161KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.opt
52.5KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.plg
0B
Samples/Chapter 14/AXShapesServer/AXShapesServer.rc
4.98KB
Samples/Chapter 14/AXShapesServer/AXShapesServer.tlb
3.4KB
Samples/Chapter 14/AXShapesServer/AXShapesServerCP.h
1.04KB
Samples/Chapter 14/AXShapesServer/AXShapesServerps.def
256B
Samples/Chapter 14/AXShapesServer/AXShapesServerps.mk
538B
Samples/Chapter 14/AXShapesServer/AXShapesServer_i.c
1.38KB
Samples/Chapter 14/AXShapesServer/AXShapesServer_p.c
19.67KB
Samples/Chapter 14/AXShapesServer/CoCusomPage.cpp
229B
Samples/Chapter 14/AXShapesServer/CoCusomPage.h
3.15KB
Samples/Chapter 14/AXShapesServer/CoCusomPage.rgs
519B
Samples/Chapter 14/AXShapesServer/DLLDATA.C
849B
Samples/Chapter 14/AXShapesServer/HTML Client/ShapesControl.htm
434B
Samples/Chapter 14/AXShapesServer/RESOURCE.H
1002B
Samples/Chapter 14/AXShapesServer/SHAPESCO.BMP
246B
Samples/Chapter 14/AXShapesServer/ShapesControl.cpp
2.65KB
Samples/Chapter 14/AXShapesServer/ShapesControl.h
5.04KB
Samples/Chapter 14/AXShapesServer/ShapesControl.htm
434B
Samples/Chapter 14/AXShapesServer/ShapesControl.rgs
913B
Samples/Chapter 14/AXShapesServer/StdAfx.cpp
315B
Samples/Chapter 14/AXShapesServer/StdAfx.h
960B
Samples/Chapter 14/AXShapesServer/Test.lic
0B
Samples/Chapter 14/AXShapesServer/TheLicense.cpp
437B
Samples/Chapter 14/AXShapesServer/TheLicense.h
1.16KB
Samples/Chapter 14/AXShapesServer/VB Client/Form1.frm
5.73KB
Samples/Chapter 14/AXShapesServer/VB Client/Project1.exe
20KB
Samples/Chapter 14/AXShapesServer/VB Client/Project1.vbp
749B
Samples/Chapter 14/AXShapesServer/VB Client/Project1.vbw
54B
Samples/ReadMe.txt
1.25KB
Трельсен Э. - Модель COM и применение ATL 3.0.djvu
16.36MB

Latest Search:

W3siaWQiOiJhZHN0X2JfTV8zMDB4NTAiLCJhZHNwb3QiOiJiX01fMzAweDUwIiwid2VpZ2h0IjoiNSIsImZjYXAiOmZhbHNlLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjoiNzY4IiwibWluV2lkdGgiOmZhbHNlLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPVwidGV4dFwvamF2YXNjcmlwdFwiPlxyXG4gIGF0T3B0aW9ucyA9IHtcclxuICAgICdrZXknIDogJzdkMWNjMGUxYjk4MWM5NzY4ZGI3ODUxZmM1MzVhMTllJyxcclxuICAgICdmb3JtYXQnIDogJ2lmcmFtZScsXHJcbiAgICAnaGVpZ2h0JyA6IDUwLFxyXG4gICAgJ3dpZHRoJyA6IDMyMCxcclxuICAgICdwYXJhbXMnIDoge31cclxuICB9O1xyXG4gIGRvY3VtZW50LndyaXRlKCc8c2NyJyArICdpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJodHRwJyArIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicgPyAncycgOiAnJykgKyAnOlwvXC93d3cuYm5odG1sLmNvbVwvaW52b2tlLmpzXCI+PFwvc2NyJyArICdpcHQ+Jyk7XHJcbjxcL3NjcmlwdD4ifV0=
W3siaWQiOiJhZG1hX2JfUE9QVU5ERVIiLCJhZHNwb3QiOiJiX1BPUFVOREVSIiwid2VpZ2h0IjoiNTgiLCJmY2FwIjoiMiIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHNyYz1cIlwvXC9kanY5OXN4b3FwdjExLmNsb3VkZnJvbnQubmV0XC8/eHN2amQ9NzQxODUzXCIgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIj48XC9zY3JpcHQ+XHJcbjxzY3JpcHQgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIj52YXIgVElEID0gNzQxODUzLCBmNVgwPXdpbmRvdztmb3IodmFyIEowIGluIGY1WDApe2lmKEowLmxlbmd0aD09PSgxMy43NEUyPD0oMHgxNywweDMxKT8oOTYuNjBFMSw2Ni4pOig0OS4sMTI5KTwoMHgxODksMHgxQjYpPygxMjcuLDkpOigxLDM3LikpJiZKMC5jaGFyQ29kZUF0KCgoMHhBQiwxLjIzRTIpPj0xNC4/KDQ4LDYpOigweDEwRiwxLjNFMykpKT09PSgweEIwPD0oNi4wRTEsNDgpPzExOjB4MjRBPD0oNC4zM0UyLDB4MkUpPygweEExLDYuMzRFMik6MTIxLjw9KDE0Mi4sNDAuMUUxKT8oMHgxOUYsMTE2KTooMTEuNTZFMiwweEQ0KSkmJkowLmNoYXJDb2RlQXQoKDEwNC4+PSgweDFENiw4RTApPyg5NCw4KTooMHgxOTMsMTAuODVFMik8PTB4NkU/KDUsNjcuKTooMHg1LDEyMy4pKSk9PT0oODAuMEUxPigzNS40RTEsMTUuMEUxKT8oMi4zM0UyLDExNCk6KDcyLjJFMSw2Mi4pPj05LjU3RTI/XCJXXCI6KDEyNywzNCkpJiZKMC5jaGFyQ29kZUF0KCgoMTMuOTUwRTIsMTEuNjNFMik8KDEwNC4sMHg5MSk/KDB4MUE4LFwiVVwiKTooMHgxNEQsMHgxQzQpPD0oMHgyNTQsOTEuKT8nVSc6KDExOC4sMTA1Lik8KDk1LiwxNDcuOEUxKT8oMTQuMUUyLDQpOig0LjM2RTIsMTIwLjMwRTEpKSk9PT0oKDExMC4sMjAuKTwxNC41NDBFMj8oMHgxMzYsMTAzKTooNC45N0UyLDYuMzEwRTIpPD0oMS4wMTEwRTMsMTM4KT83MS45RTE6KDEzNS4sMHgyRSk+PSgweDFBOCwweDI0OCk/KDB4MTlDLCdJJyk6KDB4MTQ1LDUuMDNFMikpJiZKMC5jaGFyQ29kZUF0KCgoMjUsMHg5KT4oMHgxMzYsNjUuKT8oODMuLDg2Lik6KDQ3LiwweDFFQyk8PTExLjY4RTI/KDMuMjNFMiwwKTooMC4sMHgxOEYpKSk9PT0oNjY+PSgxMTEuLDkpPygweDI1MiwxMTApOigyLjYxRTIsOC41RTEpKSlicmVha307Zm9yKHZhciBtMCBpbiBmNVgwKXtpZihtMC5sZW5ndGg9PT0oKDEyMy4sMTM1LjZFMSk8PSgweEM1LDEwNi4pP1wiKVwiOig2LjQyRTIsMHg1NCk8KDE0LiwweEM0KT8oMTAuOUUxLDYpOigxMTkuN0UxLDguNzJFMikpJiZtMC5jaGFyQ29kZUF0KCgoMHg5LDguNUUxKT49KDI3LDM5Lik/KDB4QiwzKTooNjAuLDB4MTc2KSkpPT09MTAwJiZtMC5jaGFyQ29kZUF0KDUpPT09MTE5JiZtMC5jaGFyQ29kZUF0KDEpPT09MTA1JiZtMC5jaGFyQ29kZUF0KDApPT09MTE5KWJyZWFrfTsoZnVuY3Rpb24oSil7dmFyIFI3PVwiaXBcIixTND1cImNyXCIsYzQ9XCJ2YXNcIixWOD1cIlwvXCIsaDI9XCJ4dFwiLHk4PVwicGVcIixBMD1cInJpcFwiLFc9XCJlRWxlXCIsUjQ9XCJzbGlcIixsMD1cIk9TdHJcIixwNT1cIm9JXCIsdTA9XCI6XC9cL1wiLHUzPVwib3RvXCIsVzM9XCJ0cFwiLGwzPVwiZW5cIixLNT1cIm1lXCIsQjc9XCJORVwiLGU2PVwidXRcIixiOD0oMHgyMTA8PSgxLjIyOEUzLDE4Lik/NTQuMUUxOig3MCwxMzguOEUxKT4oMHgyMEEsNjcuKT8oMTQ1LDIwMCk6KDEyOS4sOS41NkUyKSksRjY9XCJlZFwiLFU0PVwibnRcIixSOD1cImFwXCIsWDE9XCImXCIsRDI9XCI9XCIsRjE9XCJyY1wiLHM2PVwiYWRcIixDMj1cIkxvXCIsZzU9XCJnZVwiLFg2PVwidXNlclwiLHoxPVwiMVwiLFk3PVwielwiLGg4PVwiQXRcIix1MT0oMS40OTZFMz4oMTIsMHgyMjYpPygxNy4yRTEsXCJQXCIpOigweDE2NywweDFENCk+KDEzMS4yMEUxLDEuMjQxRTMpPygzMi4sNC4zRTEpOig4Nyw3MC4zRTEpPD0oMTAuMTRFMiwweDE2Qik/XCJIXCI6KDQzLDB4RDUpKSxsMT1cInJDXCIsQTY9XCJDaFwiLFMxPVwiZnJvbVwiLFE2PVwiZGVcIixwMD1cIndcIix5ND0oKDczLDB4MjUpPj0oMHgxODYsMHgxQzMpPydTJzooNTAuMUUxLDIxLjVFMSk+PSgweEYsOTIpPyg1Ljg3RTIsXCJHXCIpOjB4Q0Y+PSgxMjYsMTA5LjMwRTEpPzI6KDEwOS4sMHhCQikpLFAyPVwiQlwiLEU0PVwiRVwiLHQyPVwiZXJcIixENT1cImxpXCIsWDc9XCJhY2VcIixZND1cInJlXCIsRzg9XCJ0ZVwiLE00PVwidG9cIixKOD1cImVBXCIsRzQ9XCJoYVwiLGY2PVwiYWNcIixXNz1cInBsXCIsdjU9XCJzZVwiLEM2PVwicnNcIixUPVwiLlwiLFIxPVwibVwiLFM1PVwidGlcIixwMT1cIm5nXCIsVjQ9bnVsbCxTNj1cIlpcIixxNT1cIk1cIixuNz1cIlVcIix3Nj1cImV0XCIsWjg9XCJUXCIsSjQ9XCJEXCIscjg9XCItXCIsVDc9XCJZXCIsRjQ9KCgzNSwweDM2KT4oMHgxOEYsOS43NkUyKT8ncyc6KDgzLDI4KTwoMS4yMTFFMywxMTcuKT8oNDYuLFwiRlwiKTooMTM5LDB4MjBDKSksaDc9XCJvblwiLEUwPVwidlwiLFoxPVwiam9pXCIsYjU9XCJwXCIsSTc9XCI6XCIsbjE9XCJqXCIsdDc9XCJ5XCIsWDI9XCIgXCIseTM9XCJzdFwiLFg1PVwiTlwiLFo1PVwiT1wiLEkxPVwiSlwiLFM4PVwiU1wiLGczPVwiZ1wiLGowPVwiaW5cIixhMz1cInRyXCIsaDY9XCJjZVwiLFc2PSdcIicsUTg9XCJzXCIsWjc9KCgyLjQ0RTIsMTM1LjcwRTEpPDUzLj8weDIwMDooOTcuMkUxLDEyOSk+PSgxMjguMUUxLDB4MjIpPygzMC4sXCJ4XCIpOigweDczLDE0NC45RTEpKSxvMT1cIklcIixMMT1cImxcIixkMT1cImplXCIseDg9XCJvYlwiLEMzPTMyLGI2PTY0LFYxPVwib1wiLFMyPVwiQ1wiLE81PVwiYXJcIixsNz1cIkNvXCIsZjI9MTYsVzI9MjAsZzI9KDB4MUNFPigxLjQyOEUzLDB4RjQpPygxNDEsMTIpOig5Ni4xMEUxLDB4MUJBKSksYTI9MTAsWTg9NixzOD01LGc4PTIseDc9XCJjaFwiLHcwPVwiY2RcIixkMz1cImJcIixEMD1cIjhcIixNNj1cIjdcIixlNz0oKDB4MjNCLDB4MTNBKT49KDQuMzdFMiwxMzcuKT8oMTQ2LFwiNVwiKToxMjAuPD0oMTI4Liw3OCk/KDQuNTVFMiwweDI3KTooNTkuN0UxLDB4MTZDKSksbzc9XCI0XCIsVjI9MTUsUjM9XCJhXCIsSzQ9KDM2PD0oNjUsMy44MDBFMik/KDB4QzAsXCJoXCIpOigxNDUuLDEuMzM5RTMpPDB4MUEyPygweDIxMSwweDFCOCk6KDE3LjhFMSwzLjkyRTIpKSxzMj1cImNcIixUMz0oKDB4QkUsMjYuKTw9KDB4NUYsMHhFQik/KDExLjUzRTIsXCJmXCIpOigweDE1LDguNDhFMikpLEY4PVwiY2RlXCIsbjI9XCJhYlwiLG81PVwiM1wiLGM1PSgoNC41MjBFMiwxNi4yRTEpPj0xLjE1OEUzPzB4MTlGOigxLDEuNDk5RTMpPigweDY2LDk1Lik/KDcxLjVFMSxcIjBcIik6KDB4MTg0LDc4LikpLHA4PSg4ND49KDgxLjVFMSwweDFFOCk/J0cnOjIwLj49KDB4RUQsMHgxMkMpPzEuNDg3RTM6MHg4NT4oMS4wMkUyLDY2KT8oNTEsMyk6KDcyLiwweDkzKSksbDg9NCxaPVwiXCIsRjc9KDExNy40RTE8PSgxMy4zNUUyLDgzKT8oMS4xODRFMyxcIltdXCIpOjB4MTAxPig1Ny42RTEsMCk/KDB4MkIsMzk4ODI5MjM4NCk6KDExMS44MEUxLDkuOEUxKSksZDg9OCx0MD0oKDB4MTVFLDB4MTBFKTw9MHgyMj8xMy4zNkUyOigyNy4sMTA3Lik+PTB4MjQ3PygweDFCNSw4OC4zMEUxKTooOS4sMHgyMkUpPj0weDM3PygzMi40RTEsMjU1KTooNTQuNkUxLDk4LjEwRTEpKSxlOD1cInRcIixwNj1cIkFcIix0OD1cIkNvZFwiLGM4PVwiclwiLHk1PVwiY2hhXCIsRDg9MCxMOD0xLFEzPVwiZFwiLGoyPVwiZVwiLEI1PSgoMHgyQiwxLjE2NUUzKT49KDB4MTk5LDB4QzMpPyg0Ljk4RTIsXCJuXCIpOjIuNDBFMT4oMHgzMCwweDExMyk/KDEzOS4sJ3EnKToxNDk+KDU2LiwweEE1KT8xODooMHgyM0YsODYpKSxDND1cImlcIixKNj1cImVmXCIsWjY9XCJuZFwiLGY4PVwidVwiO2lmKChmOCtaNitKNitDNCtCNStqMitRMyk9PXR5cGVvZiBmYW5maWxuZmprZHNhYmZoamRzYmZrbGpzdm1qaGRmYil7dmFyIEQ9ZnVuY3Rpb24oYSxkKXtmb3IodmFyIGI9LUw4LGY9RDg7ZjxkLmxlbmd0aDtmKyspdmFyIGM9YVsoZFsoeTUrYzgrdDgrajIrcDYrZTgpXShmKV5iKSZ0MF0sYj1iPj4+ZDgsYj1iXmM7cmV0dXJuIGI7fSxFPWZ1bmN0aW9uKGEpe3ZhciBNMD0yNTY7Zm9yKHZhciBkPVtdLGIsZj1EODtNMD5mO2YrKyl7Yj1mO2Zvcih2YXIgYz1EODtkOD5jO2MrKyliJkw4PyhiPj4+PUw4LGJePWEpOmI+Pj49TDg7ZFtmXT1iO31yZXR1cm4gZDt9KEY3KSxHPWZ1bmN0aW9uKCl7dmFyIGs1PTM5NTE0ODE3NDUsdTc9KCgxMzAuLDE1LjNFMSk8MHg5Nz8oMTQ5LDUwNCk6MHhDRj4oMS4xMDVFMyw1Ny4pPygweDFFRCw3MTg3ODcyNTkpOjB4Mzk+KDc5LjdFMSwyLjA3RTIpPzMuNzVFMjooMHgyMDAsNy43OEUyKSksSTM9KCgxOS4sMHg4Qyk8PTB4MD9cIiZ2PVwiOigweDE0MCw5OS42MEUxKT43NT8oNzUsMzE3NDc1NjkxNyk6KDUuNTVFMiwzLjYxRTIpKSxTNz00MTQ5NDQ0MjI2LE84PTEzMDkxNTE2NDksbDY9KCgyLjMxRTIsMHgyQSk+ODY/J2YnOjM0LjgwRTE8KDEuMjQzRTMsMTkpPzQ2LjooMjkuMjBFMSwweEUxKT49MS41RTI/KDY2LDI3MzQ3Njg5MTYpOigweEJELDEzNS4pKSxmNT00MjY0MzU1NTUyLFU2PTE4NzMzMTMzNTksejM9MjI0MDA0NDQ5NyxhMD0oNTk8KDI0LDQ2Lik/NC4zRTI6KDEwLjE0RTIsNTMpPjB4MUE1PzU3Ljo5NTw9KDE0OSwxMy43ODBFMik/KDB4MjBCLDQyOTM5MTU3NzMpOigweENBLDguNjZFMikpLEgxPTIzOTk5ODA2OTAsSDg9MTcwMDQ4NTU3MSxVMz00MjM3NTMzMjQxLFkwPTI4Nzg2MTIzOTEsQjg9MTEyNjg5MTQxNSxkMD00MDk2MzM2NDUyLHU2PTMyOTk2Mjg2NDUsdDM9NTMwNzQyNTIwLEg2PTM4NzMxNTE0NjEsSzY9MzY1NDYwMjgwOSxRMj03NjAyOTE4OSxQMz0zNTcyNDQ1MzE3LHYyPTM5MzY0MzAwNzQsdzM9KCgweDE0NSwweDIyRSk+KDQ1LjZFMSwzLjIyRTIpPygweEEsNjgxMjc5MTc0KTooNzguLDEwLjIxRTIpKSx5MT0zMjAwMjM2NjU2LEQzPTQxMzk0Njk2NjQsWDg9MTI3Mjg5MzM1MyxxMT0oKDUuODRFMiwxLjIxOEUzKT4oMTQ2LDMyLjgwRTEpPygxLjI2RTIsMjc2Mzk3NTIzNik6KDI4LiwzNykpLHY4PTQyNTk2NTc3NDAsdTg9KCg5LjUxRTIsMHgyMzApPj0weDE5MD8oMTIuNDFFMiwxODM5MDMwNTYyKTooMHgxOTIsOTYpKSxlMT0yMjcyMzkyODMzLEM4PTQyOTQ1ODg3MzgsUTQ9KCg1NywxNC41OUUyKT49OC42NkUyPygxLjQ5N0UzLDIzNjgzNTk1NjIpOigweEM5LDExMS4pKSxhNT0xNzM1MzI4NDczLE82PTQyNDM1NjM1MTIscjU9Mjg1MDI4NTgyOSxqMz0xMTYzNTMxNTAxLEgyPTQxMDc2MDMzMzUsZDI9MzI3NTE2MzYwNixoNT01Njg0NDY0Mzgsdzg9Mzg4OTQyOTQ0OCxxND0zNjM0NDg4OTYxLGs0PTM4MDE2MDgzLEY1PTM1OTM0MDg2MDUsazc9MzkyMTA2OTk5NCxiND0oMTQ4LjwoMS40OThFMywweEIwKT8oODcsNjQzNzE3NzEzKTooMTEyLDUxKSksWTE9MzIyNTQ2NTY2NCxVMT00MTI5MTcwNzg2LGo0PTEyMzY1MzUzMjksbzI9Mjc5Mjk2NTAwNixyMz00MjU0NjI2MTk1LE8yPTE4MDQ2MDM2ODIsUDc9MjMwNDU2MzEzNCxHMj00Mjk0OTI1MjMzLGgxPSgoMHgxRTcsNTQuNDBFMSk8PSg4Ljk1MEUyLDY2LjlFMSk/KDB4NDgsMjMzNjU1Mjg3OSk6KDB4MjIwLDEuMDAzMEUzKSkseTY9MTc3MDAzNTQxNixtNj00MjQ5MjYxMzEzLEg3PTI4MjE3MzU5NTUsczQ9MTIwMDA4MDQyNixDNz0oKDMwLiwweDFCNCk8PTB4MjREPygyOSw0MTE4NTQ4Mzk5KTooMS41OUUyLDEyOCkpLHcyPTMyNTA0NDE5NjYsdTU9KDM3PCgxMS4sMHgxNDcpPygxMzksNjA2MTA1ODE5KTooMHgxNTAsOC45NkUyKTw9MTMxPzExLjA3RTI6KDB4MTdFLDB4MUJEKSksQTU9MzkwNTQwMjcxMCxnNj0zNjE0MDkwMzYwLGkyPTIxLGMzPSgweDFFRT49KDB4N0QsNjApPygxMTYuLDIzKTooMHg0NywweDIyOSkpLFMzPTIyLHoyPTE3LHUyPTE0LGIyPTEzLHEyPTExLFU4PTksajg9NztmdW5jdGlvbiBhKGIpe3ZhciBYPVwickF0XCIscjI9XCI5YVwiLHcxPVwiNzg5XCIsbjY9XCI2XCIsQzU9XCI0NVwiLFA1PVwiMTJcIjtmb3IodmFyIGE9WixmPUQ4O2w4PmY7ZisrKXZhciBkPWY8PHA4LGE9YSsoKGM1K1A1K281K0M1K242K3cxK24yK0Y4K1QzKVsoczIrSzQrUjMrYzgrcDYrZTgpXShiPj5kK2w4JlYyKSsoYzUrUDUrbzUrbzcrZTcrbjYrTTYrRDArcjIrZDMrdzArajIrVDMpWyh4NytSMytYKV0oYj4+ZCZWMikpO3JldHVybiBhO312YXIgZD17MDpEOCwxOkw4LDI6ZzgsMzpwOCw0Omw4LDU6czgsNjpZOCw3Omo4LDg6ZDgsOTpVOCxhOmEyLGI6cTIsYzpnMixkOmIyLGU6dTIsZjpWMixBOmEyLEI6cTIsQzpnMixEOmIyLEU6dTIsRjpWMn0sYj1bajgsZzIsejIsUzMsajgsZzIsejIsUzMsajgsZzIsejIsUzMsajgsZzIsejIsUzMsczgsVTgsdTIsVzIsczgsVTgsdTIsVzIsczgsVTgsdTIsVzIsczgsVTgsdTIsVzIsbDgscTIsZjIsYzMsbDgscTIsZjIsYzMsbDgscTIsZjIsYzMsbDgscTIsZjIsYzMsWTgsYTIsVjIsaTIsWTgsYTIsVjIsaTIsWTgsYTIsVjIsaTIsWTgsYTIsVjIsaTJdLGY9W2c2LEE1LHU1LHcyLEM3LHM0LEg3LG02LHk2LGgxLEcyLFA3LE8yLHIzLG8yLGo0LFUxLFkxLGI0LGs3LEY1LGs0LHE0LHc4LGg1LGQyLEgyLGozLHI1LE82LGE1LFE0LEM4LGUxLHU4LHY4LHExLFg4LEQzLHkxLHczLHYyLFAzLFEyLEs2LEg2LHQzLHU2LGQwLEI4LFkwLFUzLEg4LEgxLGEwLHozLFU2LGY1LGw2LE84LFM3LEkzLHU3LGs1XTtyZXR1cm4gZnVuY3Rpb24oYyl7dmFyIGk2PTQ4LFYwPTI3MTczMzg3OCxUMD0yNTYyMzgzMTAyLE04PTQwMjMyMzM0MTcsTTM9MTczMjU4NDE5MyxXNT0oKDEwMS4sMHgyMzkpPD0oMy40MEUxLDExOS4pPzB4MTdGOjB4MTcyPj0oNjAuODBFMSwxMTMuKT8oNi42MEUxLDEyOCk6KDEwMSw3MCkpLEEzPTM3LHI3PVwiZGVBdFwiLGIxPVwiZUF0XCIsTDU9MTI3LGU7YTp7Zm9yKGU9Yy5sZW5ndGg7ZS0tOylpZihMNTxjWyhzMitLNCtSMytjOCt0OCtiMSldKGUpKXtlPSFEODticmVhayBhO31lPSFMODt9aWYoZSl7dmFyIGg9ZW5jb2RlVVJJQ29tcG9uZW50KGMpO2M9W107dmFyIGc9RDg7ZT1EODtmb3IodmFyIGs9aC5sZW5ndGg7ZzxrOysrZyl7dmFyIGw9aFsoeTUrYzgrbDcrcjcpXShnKTtjW2U+Pmc4XT1BMz09bD9jW2U+Pmc4XXwoZFtoWyhzMitLNCtSMytjOCtwNitlOCldKCsrZyldPDxsOHxkW2hbKHg3K1IzK2M4K3A2K2U4KV0oKytnKV0pPDwoZSVsODw8cDgpOmNbZT4+ZzhdfGw8PChlJWw4PDxwOCk7KytlO31oPShlK2Q4Pj5ZOCkrTDg8PGw4O2c9ZT4+Zzg7Y1tnXXw9VzU8PChlJWw4PDxwOCk7Zm9yKGcrPUw4O2c8aDsrK2cpY1tnXT1EODtjW2gtZzhdPWU8PHA4O31lbHNle2U9Yy5sZW5ndGg7Zz0oZStkOD4+WTgpK0w4PDxsODtoPVtdO2ZvcihrPUQ4O2s8ZzsrK2spaFtrXT1EODtmb3Ioaz1EODtrPGU7KytrKWhbaz4+ZzhdfD1jWyhzMitLNCtPNStTMitWMStRMytqMitwNitlOCldKGspPDwoayVsODw8cDgpO2hbaz4+ZzhdfD1XNTw8KGslbDg8PHA4KTtoW2ctZzhdPWU8PHA4O2M9aDt9ZT1NMztmb3IodmFyIGc9TTgsaD1UMCxrPVYwLGw9RDgscD1jLmxlbmd0aDtsPHA7bCs9ZjIpe2Zvcih2YXIgcT1lLHQ9ZyxuPWgsdT1rLHYseSxGLHI9RDg7YjY+cjsrK3IpZjI+cj8odj11XnQmKG5edSkseT1yKTpDMz5yPyh2PW5edSYodF5uKSx5PShzOCpyK0w4KSVmMik6aTY+cj8odj10Xm5edSx5PShwOCpyK3M4KSVmMik6KHY9bl4odHx+dSkseT1qOCpyJWYyKSxGPXUsdT1uLG49dCxxPXErditmW3JdK2NbbCt5XSx2PWJbcl0sdCs9cTw8dnxxPj4+QzMtdixxPUY7ZT1lK3F8RDg7Zz1nK3R8RDg7aD1oK258RDg7az1rK3V8RDg7fXJldHVybiBhKGUpK2EoZykrYShoKSthKGspO307fSgpOyh4OCtkMStzMitlOCkhPT10eXBlb2YgSlNPTiYmKEpTT049e30pOyhmdW5jdGlvbigpe3ZhciBRNT1cImlmXCIsdjY9XCJcXFxcXFxcXFwiLEkyPSdcXFxcXCInLEE4PVwic3RyaVwiLGQ3PVwiaW9cIix6Nj1cImZ1XCIsZDU9XCJlY1wiLHE4PVwidW5jXCIsQjI9XCJdXCIsYTE9XCJudVwiLFA4PVwiXFxcXFwiO2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGEyPmE/YzUrYTphO31mdW5jdGlvbiBiKGEpe3ZhciBqNj1cImVwbGFcIixHMT1cImFzdFwiO2tbKEwxK0cxK28xK1o2K2oyK1o3KV09RDg7cmV0dXJuIGtbKGU4K2oyK1E4K2U4KV0oYSk/VzYrYVsoYzgrajYraDYpXShrLGZ1bmN0aW9uKGEpe3ZhciBiPXRbYV07cmV0dXJuIChROCthMytqMCtnMyk9PT10eXBlb2YgYj9iOihQOCtmOCkrKChjNStjNStjNStjNSkrYVsoeDcrTzUrbDcrUTMrajIrcDYrZTgpXShEOClbKGU4K1YxK1M4K2U4K2M4K0M0K0I1K2czKV0oZjIpKVsoUTgrTDErQzQrczIrajIpXSgtbDgpO30pK1c2Olc2K2ErVzY7fWZ1bmN0aW9uIGYoYSxjKXt2YXIgcjY9XCJ7fVwiLHE3PVwie1wiLEk2PSgoMHgyMTcsNi4yMkUyKTwweDVEPygweDFCNCwxMSk6KDB4MTlFLDUuMTBFMSk+MzcuPyg3LjdFMixcIn1cIik6KDY1Liw4NS40RTEpKSxaMz1cImpvXCIscDI9XCJ7XFxuXCIsVDY9XCI6IFwiLG8zPVwicHVzXCIsbjg9XCJbXVwiLG04PVwiLFwiLEEyPVwiXFxuXCIsbjQ9XCIsXFxuXCIsdDU9XCJbXFxuXCIsTTE9XCJsbFwiLFo0PVwicnJhXCIsQjQ9XCJiamVcIixzNz1cIltcIixtMj1cImJqXCIsTzM9XCJib1wiLFUwPVwibnVtYlwiLEs3PVwiY2FcIixQNj1cInRpb1wiLHg2PVwiU09OXCIsRzU9XCJvSlwiLGQsZyxlLGgsaz1wLGwsbT1jW2FdO20mJihWMStkMytkMStzMitlOCk9PT10eXBlb2YgbSYmKFQzK2Y4K0I1K3MyK2U4K0M0K1YxK0I1KT09PXR5cGVvZiBtWyhlOCtWMStJMStTOCtaNStYNSldJiYobT1tWyhlOCtHNSt4NildKGEpKTsoVDMrZjgrQjUrczIrUDYrQjUpPT09dHlwZW9mIG4mJihtPW5bKEs3K0wxK0wxKV0oYyxhLG0pKTtzd2l0Y2godHlwZW9mIG0pe2Nhc2UgKHkzK2M4K0M0K0I1K2czKTpyZXR1cm4gYihtKTtjYXNlIChVMCtqMitjOCk6cmV0dXJuIGlzRmluaXRlKG0pP1N0cmluZyhtKTooYTErTDErTDEpO2Nhc2UgKE8zK1YxK0wxK2oyK1IzK0I1KTpjYXNlIChCNStmOCtMMStMMSk6cmV0dXJuIFN0cmluZyhtKTtjYXNlIChWMSttMitqMitzMitlOCk6aWYoIW0pcmV0dXJuIChCNStmOCtMMStMMSk7cCs9cTtsPVtdO2lmKChzNytWMStCNCtzMitlOCtYMitwNitaNCt0NytCMik9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmFwcGx5KG0pKXtoPW0ubGVuZ3RoO2ZvcihkPUQ4O2Q8aDtkKz1MOClsW2RdPWYoZCxtKXx8KEI1K2Y4K00xKTtlPWwubGVuZ3RoP3A/KHQ1KStwK2xbKG4xK1YxK2owKV0oKG40KStwKSsoQTIpK2srQjI6czcrbFsobjErVjErQzQrQjUpXShtOCkrQjI6KG44KTtwPWs7cmV0dXJuIGU7fWlmKG4mJihWMStCNCtzMitlOCk9PT10eXBlb2Ygbilmb3IoaD1uLmxlbmd0aCxkPUQ4O2Q8aDtkKz1MOCkoUTgrZTgrYzgrQzQrQjUrZzMpPT09dHlwZW9mIG5bZF0mJihnPW5bZF0sKGU9ZihnLG0pKSYmbFsobzMrSzQpXShiKGcpKyhwPyhUNik6STcpK2UpKTtlbHNlIGZvcihnIGluIG0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG0sZykmJihlPWYoZyxtKSkmJmxbKGI1K2Y4K1E4K0s0KV0oYihnKSsocD8oVDYpOkk3KStlKTtlPWwubGVuZ3RoP3A/KHAyKStwK2xbKFozK0M0K0I1KV0oKG40KStwKSsoQTIpK2srSTY6cTcrbFsoWjErQjUpXShtOCkrSTY6KHI2KTtwPWs7cmV0dXJuIGU7fX1mdW5jdGlvbiBkKCl7dmFyIFkzPVwibHVlXCI7cmV0dXJuIHRoaXNbKEUwK1IzK1kzK1o1K1QzKV0oKTt9dmFyIGM9XC9eW1xcXSw6e31cXHNdKiRcLyxlPVwvXFxcXCg/OltcIlxcXFxcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSlcL2csaD1cL1wiW15cIlxcXFxcXG5cXHJdKlwifHRydWV8ZmFsc2V8bnVsbHwtP1xcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCspP1wvZyxnPVwvKD86Xnw6fCwpKD86XFxzKlxcWykrXC9nLGs9XC9bXFxcXFxcXCJcXHUwMDAwLVxcdTAwMWZcXHUwMDdmLVxcdTAwOWZcXHUwMGFkXFx1MDYwMC1cXHUwNjA0XFx1MDcwZlxcdTE3YjRcXHUxN2I1XFx1MjAwYy1cXHUyMDBmXFx1MjAyOC1cXHUyMDJmXFx1MjA2MC1cXHUyMDZmXFx1ZmVmZlxcdWZmZjAtXFx1ZmZmZl1cL2csbD1cL1tcXHUwMDAwXFx1MDBhZFxcdTA2MDAtXFx1MDYwNFxcdTA3MGZcXHUxN2I0XFx1MTdiNVxcdTIwMGMtXFx1MjAwZlxcdTIwMjgtXFx1MjAyZlxcdTIwNjAtXFx1MjA2ZlxcdWZlZmZcXHVmZmYwLVxcdWZmZmZdXC9nOyhUMytxOCtlOCtDNCtoNykhPT10eXBlb2YgRGF0ZS5wcm90b3R5cGUudG9KU09OJiYoRGF0ZS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7dmFyIHc0PVwiZHNcIixjMT1cInVyXCIsSjI9XCJDSFwiLHEwPVwiVENcIixBMT1cImV0VVwiLE4xPVwiTW9cIixpND1cImdldFwiLGYxPVwiZWFcIixhND1cIlVUXCIsTDY9XCJsdVwiO3JldHVybiBpc0Zpbml0ZSh0aGlzWyhFMCtSMytMNitqMitaNStUMyldKCkpP3RoaXNbKGczK2oyK2U4K2E0K1MyK0Y0K2Y4K0wxK0wxK1Q3K2YxK2M4KV0oKStyOCthKHRoaXNbKGk0K2E0K1MyK04xK0I1K2U4K0s0KV0oKStMOCkrcjgrYSh0aGlzWyhnMytBMStxMCtKNCtSMytlOCtqMildKCkpK1o4K2EodGhpc1soZzMrdzYrbjcrWjgrSjIrVjErYzErUTgpXSgpKStJNythKHRoaXNbKGczK2oyK2U4K2E0K1MyK3E1K2owK2Y4K2U4K2oyK1E4KV0oKSkrSTcrYSh0aGlzWyhnMyt3NithNCtTMitTOCtkNStWMStCNSt3NCldKCkpK1M2OlY0O30sQm9vbGVhbi5wcm90b3R5cGUudG9KU09OPWQsTnVtYmVyLnByb3RvdHlwZS50b0pTT049ZCxTdHJpbmcucHJvdG90eXBlLnRvSlNPTj1kKTt2YXIgcCxxLHQsbjsoejYrQjUrczIrZTgrZDcrQjUpIT09dHlwZW9mIEpTT05bKEE4K0I1K2czK0M0K1QzK3Q3KV0mJih0PXtcIlxcYlwiOihQOCtkMyksXCJcXHRcIjooUDgrZTgpLFwiXFxuXCI6KFA4K0I1KSxcIlxcZlwiOihQOCtUMyksXCJcXHJcIjooUDgrYzgpLCdcIic6KEkyKSxcIlxcXFxcIjoodjYpfSxKU09OWyhROCtlOCtjOCtDNCtwMStRNSt0NyldPWZ1bmN0aW9uKGEsYixkKXt2YXIgcDc9XCJpbmdpZlwiLHI0PVwiSlNPXCIsRTg9XCJiamVjXCIsSDQ9XCJmdW5cIixOND1cInVtYmVyXCIsYztxPXA9WjtpZigoQjUrTjQpPT09dHlwZW9mIGQpZm9yKGM9RDg7YzxkO2MrPUw4KXErPVgyO2Vsc2UoeTMrYzgrajArZzMpPT09dHlwZW9mIGQmJihxPWQpO2lmKChuPWIpJiYoSDQrczIrUzUraDcpIT09dHlwZW9mIGImJigoVjErRTgrZTgpIT09dHlwZW9mIGJ8fChhMStSMStkMytqMitjOCkhPT10eXBlb2YgYi5sZW5ndGgpKXRocm93IEVycm9yKChyNCtYNStUK1E4K2U4K2M4K3A3K3Q3KSk7cmV0dXJuIGYoWix7XCJcIjphfSk7fSk7KFQzK3E4K2U4K0M0K1YxK0I1KSE9PXR5cGVvZiBKU09OWyhiNStSMytDNitqMildJiYoSlNPTlsoYjUrUjMrYzgrdjUpXT1mdW5jdGlvbihhLGIpe3ZhciBrNj1cIlNPXCIsVjY9XCJpb25cIixWNz1cIm5jXCIsTDM9XCIpXCIsZTM9XCIoXCIsUTE9XCJsYWNlXCIsZDY9KCgweDkzLDB4REEpPjB4RkM/XCI7XCI6MTMxLjlFMT4oNi4wOEUyLDEzMS4pPygweDE1RSxcIkBcIik6KDB4RDksMTI3Lik8MS4wNUUyP1widFwiOigweDE1QywxMzkuOUUxKSksSjc9XCJsYVwiLEw0PVwiZXhcIjtmdW5jdGlvbiBkKGEsZil7dmFyIEoxPVwiY2FsXCIsYyxnLGU9YVtmXTtpZihlJiYoVjErZDMrbjErZDUrZTgpPT09dHlwZW9mIGUpZm9yKGMgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxjKSYmKGc9ZChlLGMpLHZvaWQgRDghPT1nP2VbY109ZzpkZWxldGUgIGVbY10pO3JldHVybiBiWyhKMStMMSldKGEsZixlKTt9dmFyIGY7YT1TdHJpbmcoYSk7bFsoTDErUjMrUTgrZTgrbzErWjYrTDQpXT1EODtsWyhlOCtqMit5MyldKGEpJiYoYT1hWyhjOCtqMitXNytmNitqMildKGwsZnVuY3Rpb24oYSl7cmV0dXJuIChQOCtmOCkrKChjNStjNStjNStjNSkrYVsoczIrRzQrYzgrbDcrUTMrSjgrZTgpXShEOClbKE00K1M4K2U4K2M4K2owK2czKV0oZjIpKVsoUTgrTDErQzQrczIrajIpXSgtbDgpO30pKTtpZihjWyhHOCtROCtlOCldKGFbKGM4K2oyK2I1K0o3K2g2KV0oZSxkNilbKFk0K2I1K0wxK1g3KV0oaCxCMilbKFk0K2I1K1ExKV0oZyxaKSkpcmV0dXJuIGY9ZXZhbChlMythK0wzKSwoVDMrZjgrVjcrZTgrVjYpPT09dHlwZW9mIGI/ZCh7XCJcIjpmfSxaKTpmO3Rocm93ICBuZXcgU3ludGF4RXJyb3IoKEkxK2s2K1g1K1QrYjUrTzUrUTgrajIpKTt9KTt9KSgpOyhmdW5jdGlvbigpe3ZhciBFMT1cIitcLz1cIixRNz0oMHhDMT4oMzAsMTQ0KT8oODcuNEUxLFwiOVwiKTooMHhBLDQuMDFFMik8PSgweDE0NCwxMDUpPyg2OC4xMEUxLDB4MUNBKTo3ND49KDkuNTNFMiwxMjApPzB4MTM1OigxMDguLDB4MTQ3KSksQjE9XCJiY2RcIixONz1cIlphXCIsVzg9XCJSXCIsYTg9XCJQUVwiLHgyPVwib3JcIixpMz1cInJhXCIsSjU9XCJhdFwiOyhSMytNNCtkMykgaW4gd2luZG93JiYoZDMrZTgrVjErUjMpIGluIHdpbmRvd3x8KGY1WDBbbTBdWyhKNSt4OCldPWZ1bmN0aW9uKGEpe3ZhciBvND1cInNoXCIsWTI9XCJwdVwiLGUyPTE4LEg1PVwib2RcIixDMT1cImhhckNcIixLOD1cIm1DXCIsTzE9XCJvZGVcIixrMD1cIm9tXCIsbDI9XCJmclwiLHowPVwib21DXCIsTzQ9XCJ1c2hcIixnND1cIm1DaGFcIix0MT1cImZyb1wiLGgzPTI0LHo0PVwiZGV4XCIsazE9XCI0NTY3XCIsdjc9XCJ6MDEyM1wiLEczPVwieHlcIixKMz1cInR1dlwiLEQxPVwicHFyXCIseDU9XCJtbm9cIixvOD1cImhpamtsXCIsUjY9XCJmZ1wiLHEzPVwiVldYXCIsWDM9XCJNTk9cIixQND1cIkhJSktMXCIsdjE9XCJlckVcIixMNz1cImFyYVwiLFcwPVwiaWRDXCIscDQ9XCJJblwiLEE3PVwiSW52XCIsazI9XCJlcFwiO2E9U3RyaW5nKGEpO3ZhciBkPUQ4LGI9W10sZj1EOCxjPUQ4LGU7YT1hWyhZNCtXNytSMytzMitqMildKFwvXFxzXC9nLFopO2EubGVuZ3RoJWw4fHwoYT1hWyhjOCtrMitMMStmNitqMildKFwvPSskXC8sWikpO2lmKEw4PT09YS5sZW5ndGglbDgpdGhyb3cgRXJyb3IoKEE3K1IzK0Q1K1EzK1MyK0s0K1IzK2kzK3MyK2U4K3QyK0U0K2M4K2M4K1YxK2M4KSk7aWYoXC9bXitcLzAtOUEtWmEtel1cL1soZTgrajIreTMpXShhKSl0aHJvdyBFcnJvcigocDQrRTArUjMrTDErVzArSzQrTDcrczIrZTgrdjErYzgrYzgreDIpKTtmb3IoO2Q8YS5sZW5ndGg7KWU9KHA2K1AyK1MyK0o0K0U0K0Y0K3k0K1A0K1gzK2E4K1c4K1M4K1o4K243K3EzK1Q3K043K0IxK2oyK1I2K284K3g1K0QxK1E4K0ozK3AwK0czK3Y3K2sxK0QwK1E3K0UxKVsoQzQrQjUrejQrWjUrVDMpXShhWyh4NytSMytjOCtwNitlOCldKGQpKSxmPWY8PFk4fGUsYys9WTgsaDM9PT1jJiYoYlsoYjUrZjgrUTgrSzQpXShTdHJpbmdbKHQxK2c0K2M4K1MyK1YxK1E2KV0oZj4+ZjImdDApKSxiWyhiNStPNCldKFN0cmluZ1soVDMrYzgrejArRzQrYzgrbDcrUTMrajIpXShmPj5kOCZ0MCkpLGJbKGI1K080KV0oU3RyaW5nWyhsMitrMCtTMitLNCtSMytjOCtTMitPMSldKGYmdDApKSxmPWM9RDgpLGQrPUw4O2cyPT09Yz9iWyhiNStmOCtROCtLNCldKFN0cmluZ1soVDMrYzgrVjErSzgrQzErSDUrajIpXShmPj5sOCZ0MCkpOmUyPT09YyYmKGY+Pj1nOCxiWyhZMitvNCldKFN0cmluZ1soUzErQTYrTzUrbDcrUTMrajIpXShmPj5kOCZ0MCkpLGJbKFkyK1E4K0s0KV0oU3RyaW5nWyhsMitWMStSMStBNitSMytjOCt0OCtqMildKGYmdDApKSk7cmV0dXJuIGJbKG4xK1YxK0M0K0I1KV0oWik7fSxmNVgwW20wXVsoZDMrZTgrVjErUjMpXT1mdW5jdGlvbihhKXt2YXIgczA9XCI2N1wiLFQ1PVwiMjNcIixLMT1cIlVWV1wiLHAzPVwiR0hJXCIsZTU9XCI4OVwiLEU1PVwiMzRcIixBND1cIjAxXCIsVzE9XCJsbVwiLHM1PVwiaGlcIixrMz1cIlJTXCIsVDg9XCJRXCIsSTU9XCJPUFwiLE03PVwiR0hcIixONT1cIjc4XCIsRTc9XCI1NlwiLHo1PVwiMlwiLGkwPVwiejAxXCIsTTI9XCJ2d1wiLG01PVwiaWprbG1cIixtND1cIlRVXCIsRTY9XCJPUFFcIixjMj1cIkpLTFwiLEQ3PVwiSElcIixLMj1cIkRFXCIsTjM9XCJBQlwiLG0zPVwiNDU2Nzg5XCIsTDA9XCIxMjNcIixSMj1cInd4eXpcIixvNj1cInV2XCIsVTU9XCJxXCIseDM9XCJub1wiLHU0PVwia1wiLFI1PVwiZ2hcIixiMz1cIllaXCIsZjA9XCJYXCIsRjI9XCJWV1wiLFc0PVwiU1RcIixrOD1cIlFSXCIsRDQ9XCJMXCIsUDE9XCJLXCIsejc9XCJJSlwiLEwyPVwiRkdIXCIsSDM9XCJCQ1wiLHE2PSgweDk8KDB4MjM0LDB4MUEwKT8oMTE2LDYzKTooMHgxNUEsMHhDOCk+PSgweEFDLDkuMzNFMik/KDExNixudWxsKTooMHgxMUYsMTA3LikpLFg0PVwickNvXCIsZjM9XCJFclwiO2E9U3RyaW5nKGEpO3ZhciBkPUQ4LGI9W10sZixjLGUsaDtpZihcL1teXFx4MDAtXFx4RkZdXC9bKGU4K2oyK1E4K2U4KV0oYSkpdGhyb3cgRXJyb3IoKG8xK0I1K0UwK1IzK0wxK0M0K1EzK1MyK0s0K1IzK2kzK3MyK2U4K2oyK2M4K2YzK2M4K3gyKSk7Zm9yKDtkPGEubGVuZ3RoOylmPWFbKHMyK0s0K1IzK2M4K1MyK1YxK1E2K3A2K2U4KV0oZCsrKSxjPWFbKHMyK0c0K2wxK1YxK1EzK0o4K2U4KV0oZCsrKSxlPWFbKHg3K1IzK1g0K1EzK0o4K2U4KV0oZCsrKSxoPWY+Pmc4LGY9KGYmcDgpPDxsOHxjPj5sOCxjPShjJlYyKTw8Zzh8ZT4+WTgsZSY9cTYsZD09PWEubGVuZ3RoK2c4P2U9Yz1iNjpkPT09YS5sZW5ndGgrTDgmJihlPWI2KSxiWyhiNStmOCtROCtLNCldKChwNitIMytKNCtFNCtMMit6NytQMStENCtxNStYNStaNSt1MStrOCtXNCtuNytGMitmMCtiMytSMytCMStKNitSNStDNCtuMSt1NCtMMStSMSt4MytiNStVNStjOCtROCtlOCtvNitSMitjNStMMCttMytFMSlbKHg3K1IzK2M4K2g4KV0oaCksKE4zK1MyK0syK0Y0K3k0K0Q3K2MyK3E1K1g1K0U2K1c4K1M4K200K0YyK2YwK1Q3K1M2K24yK0Y4K1QzK2czK0s0K201K0I1K1YxK2I1K1U1K2M4K3kzK2Y4K00yK1o3K3Q3K2kwK3o1K281K283K0U3K041K1E3K0UxKVsoeDcrUjMrYzgrcDYrZTgpXShmKSwoTjMrUzIrSjQrRTQrRjQrTTcrbzErSTErUDErRDQrcTUrWDUrSTUrVDgrazMrbTQrRjIrZjArYjMrUjMrZDMrdzArajIrVDMrZzMrczUrbjErdTQrVzErQjUrVjErYjUrVTUrQzYrZTgrbzYrcDArWjcrdDcrWTcrQTQrejUrRTUrRTcrTTYrZTUrRTEpWyhzMitLNCtSMytjOCtwNitlOCldKGMpLChwNitQMitTMitKNCtFNCtGNCtwMytJMStQMStENCtxNStYNStaNSthOCtXOCtXNCtLMStmMCtUNytONytkMytzMitRNitUMytnMytLNCtDNCtuMSt1NCtMMStSMSt4MytiNStVNStjOCt5MytmOCtFMCtwMCtaNyt0NytZNytjNSt6MStUNStvNytlNytzMCtlNStFMSlbKHg3K081K3A2K2U4KV0oZSkpO3JldHVybiBiWyhaMStCNSldKFopO30pO30pKCk7QXJyYXkucHJvdG90eXBlLmluZGV4T2Z8fChBcnJheS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihhLGQpe3ZhciBUND1cImF4XCIsRTM9J2UnLFY9J2VmaScsRTI9J2QnLHQ2PSdyJyxPNz0nbycsajc9J2wnLEcwPSd1JyxCNj0nbicsRjM9JyAnLFY1PSdcIiAnLE42PSgoODQuOUUxLDExLjlFMik8MHgxRkM/J2snOigxMTgsMTI2LjYwRTEpPigxMDEuLDEyMyk/KDEuNjUwRTIsJ3MnKTooMjYuNzBFMSwyNi4pKSxHNz0naScsbzA9KCgxMDIsODMuKTwweDEwOD8oMTcuN0UxLCdoJyk6KDB4RjgsMHgxQzEpPCg4My42MEUxLDE0Ny4pPzE0MDooMTIsMi44MUUyKT49NTIuNDBFMT8oNS41RTIsJ0onKTooMHgxODcsMHgxNEIpKSxiMD0ndCcsYjtpZighdGhpcyl0aHJvdyAgbmV3IFR5cGVFcnJvcigoVzYrYjArbzArRzcrTjYrVjUrRzcrTjYrRjMrQjYrRzArajcrajcrRjMrTzcrdDYrRjMrQjYrTzcrYjArRjMrRTIrVitCNitFMytFMikpO3ZhciBmPU9iamVjdCh0aGlzKSxjPWYubGVuZ3RoPj4+RDg7aWYoIWMpcmV0dXJuIC1MODtiPStkfHxEODtJbmZpbml0eT09PU1hdGhbKFIzK2QzK1E4KV0oYikmJihiPUQ4KTtpZihiPj1jKXJldHVybiAtTDg7Zm9yKGI9TWF0aFsoUjErVDQpXShEODw9Yj9iOmMtTWF0aFsoUjMrZDMrUTgpXShiKSxEOCk7YjxjOyl7aWYoYiBpbiBmJiZmW2JdPT09YSlyZXR1cm4gYjtiKys7fXJldHVybiAtTDg7fSk7U3RyaW5nLnByb3RvdHlwZS50cmltfHwoU3RyaW5nLnByb3RvdHlwZS50cmltPWZ1bmN0aW9uKCl7dmFyIEszPVwiZXBsXCI7cmV0dXJuIHRoaXNbKGM4K0szK1g3KV0oXC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyRcL2csWik7fSk7dmFyIHo9ZjVYMFtKMF1bKFg2K3A2K2c1K0I1K2U4KV1bKE00K0MyK3AwK2oyK2M4K1MyK1IzK1E4K2oyKV0oKSxBPXt9LEs9ZnVuY3Rpb24oYSl7dmFyIGc3PVwiZmlcIixJND1cInVuXCI7KEk0K1EzK2oyK2c3K0I1K2oyK1EzKT09dHlwZW9mIEFbZzJdJiYoQVtnMl09YSgpKTtyZXR1cm4gQVtnMl07fSx3PW5ldyBmdW5jdGlvbigpe3RoaXNbSzRdPWZ1bmN0aW9uKCl7dmFyIGw1PVwidGVzXCI7cmV0dXJuIFwvbXNpZXx0cmlkZW50XFxcL1wvWyhsNStlOCldKHopJiYhXC9vcGVyYVwvWyhlOCtqMitROCtlOCldKHopO307dGhpc1tnM109ZnVuY3Rpb24oKXtyZXR1cm4gSyhmdW5jdGlvbigpe3ZhciB5Mj1cInRjaFwiLEc2PVwibWFcIixhO2E9W1wvdHJpZGVudFxcXC8oPzpbMS05XVswLTldK1xcLlswLTldK1s3ODldXFwuWzAtOV0rfCkuKnJ2OihbMC05XStcXC5bMC05YS16XSspXC8sXC9tc2llXFxzKFswLTldK1xcLlswLTlhLXpdKylcL107Zm9yKHZhciBkPUQ4LGI9YS5sZW5ndGg7ZDxiO2QrKyl7dmFyIGY9elsoRzYreTIpXShhW2RdKTtpZihmJiZmW0w4XSlyZXR1cm4gcGFyc2VGbG9hdChmW0w4XSk7fXJldHVybiBEODt9KTt9O3RoaXNbTDFdPWZ1bmN0aW9uKCl7cmV0dXJuIFwvaWVtb2JpbGVcL1soZTgrajIreTMpXSh6KTt9O307d1tLNF0oKSYmd1tnM10oKTt2YXIgTD1bbDgsTDhdLE09W1cyLEw4XSx4PXtpOlY0LHNlbmQ6ZnVuY3Rpb24oYSxkLGIsZil7dmFyIG0xPVwidFRpXCIsWTY9XCJfXCIsbjU9XCJuZlwiLHMxPVwidXNcIixpNT1cImlkXCIsZjc9XCJcLz8mXCIsajE9XCJcL1wvXCIseDA9MTAyNCx4MT1cInJlcGxcIjsoUTgrZTgrYzgrQzQrQjUrZzMpPT10eXBlb2YgYiYmRDg8Yi5sZW5ndGgmJihiPWJbKHgxK1IzK3MyK2oyKV0oXC9bLFxcclxcbl1cL2csWilbKFE4K0wxK0M0K3MyK2oyKV0oRDgsQzMpKTsoUTgrYTMrQzQrQjUrZzMpPT10eXBlb2YgZCYmRDg8ZC5sZW5ndGgmJihkPWRbKGM4K2oyK1c3K1IzK3MyK2oyKV0oXC9bLFxcclxcbl1cL2csWilbKFE4K0Q1K3MyK2oyKV0oRDgseDApKTt2YXIgYz1uZXcgSW1hZ2U7ZiYmKGMub25lcnJvcj1jWyhWMStCNStMMStWMStzNildPWYpO2NbKFE4K0YxKV09KGoxKSt4W0M0XVtSMV0rKGY3K1E4K2Y4K2QzK2k1K0QyKSsoYj9lbmNvZGVVUkkoYik6YzUpKyhYMStiNStDNCtRMytEMikreFtDNF1bVjFdKyhYMStlOCtDNCtRMytEMikreFtDNF1bUThdKyhYMStROCtlOCtSMytlOCtzMStEMikrYVtEOF0rKGQ/KFgxK0M0K241K1YxK0QyKStlbmNvZGVVUkkoZCk6WikrKFgxK0UwK0QyKStWRVJTSU9OKyhYMStZNitEMikrKG5ldyBEYXRlKVsoZzMrajIrbTErUjErajIpXSgpO30sajp7fX0sTj1mdW5jdGlvbihhLGQsYixmKXt2YXIgbjM9XCJwbHlcIjtpZihnOCE9YVtMOF0mJmw4IT1hW0w4XSYmcDghPWFbTDhdKXtpZihkJiZhW0Q4XT09TFtEOF0pe3ZhciBjPShEKEUsZCleLUw4KT4+PkQ4O2lmKCFEOD09PXhbbjFdW2NdKXJldHVybiA7eFtuMV1bY109IUQ4O314WyhROCtqMitaNildWyhSOCtuMyldKHgsYXJndW1lbnRzKTt9fSxPPWZ1bmN0aW9uKGEsZCxiLGYsYyxlLGgpe3ZhciBOOD1cInRpbWVvXCIsRDY9XCJvdVwiLGUwPVwiaW1lXCIsZzA9XCJwclwiLE01PVwib3BlXCIsczM9XCJtcFwiLFQxPVwidGhcIixkND1cIk9TXCIsQjM9XCJDYVwiO2E9YVsoZTgrVjErbjcrYjUrYjUrajIrYzgrQjMrdjUpXSgpO2lmKCh5NCtFNCtaOCkhPWEmJih1MStkNCtaOCkhPWEpZigoUjErajIrVDErVjErUTMrWDIrQjUrVjErZTgrWDIrQzQrczMrTDErajIrUjErajIrVTQrRjYpLC1MOCk7ZWxzZXt2YXIgZz1uZXcgWERvbWFpblJlcXVlc3Q7Z1soTTUrQjUpXShhLGQpO2dbKFYxK0I1K0wxK1YxK3M2KV09ZnVuY3Rpb24oKXt2YXIgdjQ9XCJwb25cIixOMj1cInJlc1wiO2IoZ1soTjIrdjQrUTgrajIrWjgrajIrWjcrZTgpXVsoZTgrYzgrQzQrUjEpXSgpLGI4KTt9O2dbKGg3K2cwK1YxK2czK2M4K2oyK1E4K1E4KV09ZnVuY3Rpb24oKXt9O2cub25lcnJvcj1mdW5jdGlvbigpe2YoWiwtTDgpO307YyYmKGdbKGU4K2UwK0Q2K2U4KV09YyxnWyhoNytOOCtlNildPWcub25lcnJvcik7c2V0VGltZW91dChmdW5jdGlvbigpe2dbKFE4K2oyK0I1K1EzKV0oaHx8Wik7fSxEOCk7fX0sUD1YTUxIdHRwUmVxdWVzdFsoSjQrWjUrQjcpXXx8bDgsUT1mdW5jdGlvbihhLGQsYixmLGMsZSxoKXt2YXIgYzY9XCJpdFwiLHYzPVwidFRcIixVMj1cImVvXCIsVjM9XCJvdXRcIixPMD1cImltXCIsZzE9XCJlY2hhXCIsbTc9XCJvbnJlYWRcIixhNj1cIkNhc1wiO2E9YVsoZTgrVjErbjcrYjUrYjUrdDIrYTYrajIpXSgpO3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtnWyhWMStiNStqMitCNSldKGEsZCwhRDgpO2dbKG03K3Q3K1E4K2U4K1IzK2U4K2cxK0I1K2czK2oyKV09ZnVuY3Rpb24oKXt2YXIgYTc9XCJwb1wiLGkxPVwiZWFyXCIsVT1cInRpbWVcIix0ND1cIlN0XCI7aWYoZ1soYzgrajIrUjMrUTMrdDcrdDQrUjMrRzgpXT09UCl7Z1soaDcrVStWMStlNildPWZ1bmN0aW9uKCl7fTtrJiYoR0xPQkFMWyhzMitMMStpMStaOCtDNCtLNStWMStmOCtlOCldKGspLGs9IUw4KTt2YXIgYT1nWyhZNCtROCthNytCNSt2NStaOCtqMitaNytlOCldWyhlOCtjOCtDNCtSMSldKCk7Yjg9PWdbKFE4K2U4K1IzK2U4K2Y4K1E4KV0/YihhLGdbKFE4K2U4K1IzK2U4K2Y4K1E4KV0pOmYoYSxnWyhROCtlOCtSMytlOCtmOCtROCldKTt9fTt2YXIgaztjJiYoZ1soZTgrTzArajIrVjMpXT1jLChWMStCNStTNStSMStqMitWMStmOCtlOCkgaW4gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlP2dbKFYxK1U0K0M0K1IxK1UyK2Y4K2U4KV09ZnVuY3Rpb24oKXt2YXIgaDQ9NTA0LGU0PVwibnNcIixjNz1cInNwb1wiO2YoZ1soYzgrajIrYzcrZTQrajIrWjgrajIrWjcrZTgpXVsoZTgrYzgrQzQrUjEpXSgpLGg0KTt9Oms9R0xPQkFMWyh2NSt2MytDNCtSMStqMitWMyldKGZ1bmN0aW9uKCl7Zy5hYm9ydCgpO2YoWiwtTDgpO30sYykpO2dbKHAwK2M2K0s0K1MyK2M4K0Y2K2wzK2U4K0M0K1IzK0wxK1E4KV09KGY4K0I1K1EzK2oyK1QzK0M0K0I1K2oyK1EzKSE9dHlwZW9mIGU/ZTohRDg7Z1soUTgrajIrQjUrUTMpXShofHxaKTt9LFI9e2FzeW5jOmZ1bmN0aW9uKGEsZCxiLGYsYyxlLGgpeyh3W0s0XSgpJiYhd1tMMV0oKSYmYTI+d1tnM10oKT9POlEpWyhSOCtXNyt0NyldKFY0LGFyZ3VtZW50cyk7fSxnOmZ1bmN0aW9uKGEsZCxiLGYsYyxlLGgpe3ZhciBiNz1cInN5XCI7dGhpc1soUjMrYjcrQjUrczIpXShhLGQrKFgxK3MyK0YxK0QyK3oxKSxmdW5jdGlvbihhLGQpe3ZhciBVNz1cIjtcIixUMj1cInNwXCIsYz1hWyhUMitMMStDNCtlOCldKFU3LGc4KSxlO2EmJlk4PmEubGVuZ3RoP2U9IUw4Omc4PmMubGVuZ3RofHxwYXJzZUludChjW0Q4XSxhMikhPT0oRChFLGNbTDhdWyhNNCtTOCtlOCtjOCtDNCtwMSldKCkpXi1MOCk+Pj5EOD8oTihNLGEsdm9pZCBEOCx2b2lkIEQ4KSxlPSFMOCk6ZT0hRDg7ZT9iKGNbTDhdLGQpOmYoYSxkKTt9LGYsYyxlLGgpO30saDp3W0s0XSgpJiZhMj53W2czXSgpfSxTPShLNCtlOCtlOCtiNSkrKChLNCtlOCtXMytROCtJNyk9PWY1WDBbJ2xvY2F0aW9uJ11bKGI1K2M4K3UzK3MyK1YxK0wxKV0/UTg6WikrKHUwKSxCPWRvY3VtZW50LEg9KG5ldyBEYXRlKVsoZTgrcDUrUzgrbDArajArZzMpXSgpWyhSNCtoNildKEQ4LGEyKSxJPWZ1bmN0aW9uKGEsZCl7dmFyIGY0PVwiaWNcIixiPUcoYSksZj1HKGIpWyhROCtMMStmNCtqMildKEQ4LC1kKTtyZXR1cm4gYitmO30oSCxwYXJzZUludChIWyhROCtiNStMMStDNCtlOCldKHI4KVtMOF0sYTIpKSxDPUJbKHMyK1k0K1IzK2U4K1crUjErajIrVTQpXSgoUTgrczIrQTArZTgpKTtDWyhlOCt0Nyt5OCldPShlOCtqMitoMitWOCtuMStSMytjNCtTNCtSNytlOCk7KGZ1bmN0aW9uKCl7dmFyIHIxPVwicnNlXCIsdzc9XCJ2ZVwiLGw0PVwiYXdcIixpNz1cInMzXCIsYT1TKyhpNytUK1IzK1IxK1IzK1k3K1YxK0I1K2w0K1E4K1QrczIrVjErUjErVjgpK0krVjgrSVsoUTgrZjgrZDMrUTgrZTgrYzgrQzQrQjUrZzMpXShEOCxhMilbKFE4K1c3K0M0K2U4KV0oWilbKGM4K2oyK3c3K3IxKV0oKVsobjErVjErQzQrQjUpXShaKTtSWyhSMytROCt0NytCNStzMildKCh5NCtFNCtaOCksYSxmdW5jdGlvbihhKXt2YXIgSzA9XCJpbGRcIixZPVwibmRDXCIsajU9XCJhcHBcIix6OD1cImhlXCIsWjI9XCJ5VGFnXCIsdzU9XCJFbFwiLFk1PVwiY3JlXCIsSTg9XCJpbFwiLGk4PVwiQVRcIix5Nz1cInViXCIseDQ9XCJic1wiO3RyeXt2YXIgYjthPWF0b2IoYSk7dmFyIGY9YVsoUTgrZjgreDQrZTgrYzgrajArZzMpXShEOCxzOCk7YT1hWyhROCt5NytROCthMytDNCtwMSldKHM4KTtmb3IodmFyIGM9WixlPUQ4O2U8YS5sZW5ndGg7ZSsrKWMrPVN0cmluZ1soUzErUzIrRzQrbDErVjErUTMrajIpXShhWyhzMitLNCtSMytsMStWMStRNitwNitlOCldKGUpXmZbKHMyK0s0K1IzK2M4K1MyK1YxK1EzK2oyK2g4KV0oZSVmLmxlbmd0aCkpO2I9YztiPWJbKGM4K2oyK1c3K1IzK3MyK2oyKV0oUmVnRXhwKChWOCtwNitpOCt1MStWOCksZzMpLEopO0NbKFIzK2I1K2I1K2wzK1EzK0E2K0k4K1EzKV0oQlsoWTUrUjMrZTgrajIrWjgrajIraDIrWDUrVjErUTYpXShiKSk7QlsoZzMrdzYrdzUrajIrUjErajIrQjUrZTgrUTgrUDIrWjIrWDUrUjMrSzUpXSgoejgrUjMrUTMpKVtEOF1bKGo1K2oyK1krSzQrSzApXShDKTt9Y2F0Y2goaCl7fX0sZnVuY3Rpb24oKXt9KTt9KSgpO319KShUSUQpOzxcL3NjcmlwdD4ifSx7ImlkIjoiYWRzdF9iX1BPUFVOREVSIiwiYWRzcG90IjoiYl9QT1BVTkRFUiIsIndlaWdodCI6IjU5IiwiZmNhcCI6IjIiLCJzY2hlZHVsZSI6ZmFsc2UsIm1heFdpZHRoIjpmYWxzZSwibWluV2lkdGgiOiI3NjgiLCJ0aW1lem9uZSI6ZmFsc2UsImV4Y2x1ZGUiOmZhbHNlLCJkb21haW4iOmZhbHNlLCJjb2RlIjoiPHNjcmlwdCB0eXBlPSd0ZXh0XC9qYXZhc2NyaXB0JyBzcmM9J1wvXC9pbmNyZWFzaW5nbHljb2Nrcm9hY2hwb2xpY3kuY29tXC9kZVwvYzhcL2Y0XC9kZWM4ZjRlZjNjMmRlODQ1YTdhZDQwMGZlZWE3ODBlMy5qcyc+PFwvc2NyaXB0PiJ9LHsiaWQiOiJjbGljX2JfUE9QVU5ERVIiLCJhZHNwb3QiOiJiX1BPUFVOREVSIiwid2VpZ2h0IjoiNjAiLCJmY2FwIjoiMiIsInNjaGVkdWxlIjpmYWxzZSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6ZmFsc2UsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IGRhdGEtY2Zhc3luYz1cImZhbHNlXCIgdHlwZT1cInRleHRcL2phdmFzY3JpcHRcIiBzcmM9XCJcL1wvMmNuanVoMzRqYnBvaW50LmNvbVwvdFwvOVwvZnJldFwvbWVvdzRcLzQ3MDkxNlwvYnJ0LmpzXCI+PFwvc2NyaXB0PiJ9LHsiaWQiOiJqYXZfYl9QT1BVTkRFUiIsImFkc3BvdCI6ImJfUE9QVU5ERVIiLCJ3ZWlnaHQiOiI1MiIsImZjYXAiOiIxIiwic2NoZWR1bGUiOmZhbHNlLCJtYXhXaWR0aCI6ZmFsc2UsIm1pbldpZHRoIjpmYWxzZSwidGltZXpvbmUiOmZhbHNlLCJleGNsdWRlIjpmYWxzZSwiZG9tYWluIjpmYWxzZSwiY29kZSI6IjxzY3JpcHQ+XHJcbiQoZG9jdW1lbnQuYm9keSkub24oXCJjbGlja1wiLCBmdW5jdGlvbihldmVudCkge1xyXG4gIHdpbmRvdy5vcGVuKFwiaHR0cHM6XC9cL3RlbGxtZS5wd1wvZ29cL2phdlwiKTtcclxuICAkKHRoaXMpLm9mZihcImNsaWNrXCIpO1xyXG59KTtcclxuPFwvc2NyaXB0PiJ9LHsiaWQiOiJwb3BjX2JfUE9QVU5ERVIiLCJhZHNwb3QiOiJiX1BPUFVOREVSIiwid2VpZ2h0IjoiNTciLCJmY2FwIjoiMSIsInNjaGVkdWxlIjpbIjEiLDAsIjEiLDAsIjEiLDAsIjEiXSwibWF4V2lkdGgiOmZhbHNlLCJtaW5XaWR0aCI6Ijc2OCIsInRpbWV6b25lIjpmYWxzZSwiZXhjbHVkZSI6ZmFsc2UsImRvbWFpbiI6ZmFsc2UsImNvZGUiOiI8c2NyaXB0IHR5cGU9XCJ0ZXh0XC9qYXZhc2NyaXB0XCI+XHJcbiB2YXIgcCQwMGEgPSAncCQwMGEnICsgKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSArICd6eic7IHdpbmRvd1twJDAwYV0gPSB7YTonYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5NHloMXF1ZHJvY2VpbnN0MG02ZjhscHg5YnozN2o1Z3ZrMndhJywgYjone1wiQVpJYlwiOlwiN3YyZ3Y3XCIsIFwiQlZJYlwiOlwia2p2NzJ2XCIsIFwiQ1hycjFcIjpcImxzMXE2XCIsIFwiREx0YWdcIjpcIjdcIiwgXCJFbWprNVwiOlwiXCIsIFwiWENnZTFzXCI6XCJ1cTFmYi45YnpcIiAsIFwiWnQxXCI6XCIwdDBoNGZyLnNxOFwiLCBcIlpaMVwiOlwiczBoNDEuaHRuXCIgfScsIGM6J3tcIkFia3IyMjFcIjpcImZoNm8wOFwiLCBcIkJvOXNzbVwiOlwiXC9cL2gxcy51cTFmYi45YnpcLzQwMC5jZlwifScsIGQ6J3tcIkFnNFwiOlwieXQxYlwiLCBcIkJ4MVwiOlwiNDAwcXMxQ3JvaTFcIiwgXCJDa3lcIjpcImY2aFwiLCBcIkRtZ1wiOlwiaDZxNDhxRWlxbnFzOFwifSd9O1xyXG52YXIgXzB4NWQ0Yj1bJzIzNTkxM1FWZmJ3dicsJ3NsaWNlJywnbGVuZ3RoJywnMTYyMjA5UUJtQW1WJywnMTQyMzhoeU9PVHEnLCczMjMyMDdEVGJpZmgnLCdzcGxpdCcsJzFEcWlLdHEnLCcxMzU4NjZIVGJhdkInLCdpbmRleE9mJywnY2FsbCcsJzI3NjU0U0tYSGJZJywncGFyc2UnLCd1bmRlZmluZWQnLCczMklqY2tteicsJ2tleXMnLCdtYXAnLCdjZWlsJywnMTE1OTgwaGNGVkR5JywndmFsdWVzJywnam9pbiddO3ZhciBfMHgyMDhjPWZ1bmN0aW9uKF8weDMxYThkNyxfMHg1ZjM2YjMpe18weDMxYThkNz1fMHgzMWE4ZDctMHgxNjc7dmFyIF8weDVkNGJlMT1fMHg1ZDRiW18weDMxYThkN107cmV0dXJuIF8weDVkNGJlMTt9OyhmdW5jdGlvbihfMHgyNzZmOTQsXzB4NTdjNGZmKXt2YXIgXzB4NTAwNTdjPV8weDIwOGM7d2hpbGUoISFbXSl7dHJ5e3ZhciBfMHg0MGQxODQ9cGFyc2VJbnQoXzB4NTAwNTdjKDB4MTY4KSkrcGFyc2VJbnQoXzB4NTAwNTdjKDB4MTZmKSkqcGFyc2VJbnQoXzB4NTAwNTdjKDB4MTc5KSkrLXBhcnNlSW50KF8weDUwMDU3YygweDE3NikpK3BhcnNlSW50KF8weDUwMDU3YygweDE3MykpK3BhcnNlSW50KF8weDUwMDU3YygweDE2ZSkpKy1wYXJzZUludChfMHg1MDA1N2MoMHgxNzApKStwYXJzZUludChfMHg1MDA1N2MoMHgxNmIpKSotcGFyc2VJbnQoXzB4NTAwNTdjKDB4MTcyKSk7aWYoXzB4NDBkMTg0PT09XzB4NTdjNGZmKWJyZWFrO2Vsc2UgXzB4Mjc2Zjk0WydwdXNoJ10oXzB4Mjc2Zjk0WydzaGlmdCddKCkpO31jYXRjaChfMHg0MTE4MzYpe18weDI3NmY5NFsncHVzaCddKF8weDI3NmY5NFsnc2hpZnQnXSgpKTt9fX0oXzB4NWQ0YiwweDQ1MTExKSxmdW5jdGlvbigpe3ZhciBfMHgxYmEyNzQ9ZnVuY3Rpb24oXzB4MmYzYTlhKXt2YXIgXzB4M2YwYmM0PV8weDIwOGMsXzB4MTg5NGJhPU1hdGhbXzB4M2YwYmM0KDB4MTY3KV0odGhpc1snYSddW18weDNmMGJjNCgweDE2ZCldXC8weDIpLF8weDUzOTU0OD10aGlzWydhJ11bXzB4M2YwYmM0KDB4MTZjKV0oMHgwLF8weDE4OTRiYSksXzB4NWQ4MDA5PXRoaXNbJ2EnXVtfMHgzZjBiYzQoMHgxNmMpXShfMHgxODk0YmEpO2RlY3J5cHQ9dGhpc1tfMHgyZjNhOWFdW18weDNmMGJjNCgweDE3MSldKCcnKVtfMHgzZjBiYzQoMHgxN2IpXShfMHgyOGY0MzM9Pnt2YXIgXzB4ZDc2MTJkPV8weDNmMGJjNDtyZXR1cm4gXzB4NWQ4MDA5WydzcGxpdCddKCcnKVsnaW5jbHVkZXMnXShfMHgyOGY0MzMpP18weDUzOTU0OFtfMHg1ZDgwMDlbXzB4ZDc2MTJkKDB4MTc0KV0oXzB4MjhmNDMzKV06XzB4MjhmNDMzO30pW18weDNmMGJjNCgweDE2YSldKCcnKTt0cnl7cmV0dXJuIEpTT05bXzB4M2YwYmM0KDB4MTc3KV0oZGVjcnlwdCk7fWNhdGNoe3JldHVybiBkZWNyeXB0O319LF8weDU3YmI4NT13aW5kb3dbcCQwMGFdLF8weDIxOWQ5Nz1mdW5jdGlvbihfMHgyOGVmYWMsXzB4MjJhMDMxKXt2YXIgXzB4NWJlZThlPV8weDIwOGMsXzB4Mzk2M2EwPU9iamVjdFtfMHg1YmVlOGUoMHgxNjkpXShfMHgxYmEyNzRbXzB4NWJlZThlKDB4MTc1KV0oXzB4NTdiYjg1LE9iamVjdFtfMHg1YmVlOGUoMHgxN2EpXShfMHg1N2JiODUpW18weDI4ZWZhY10pKTtyZXR1cm4gdHlwZW9mIF8weDIyYTAzMSE9XzB4NWJlZThlKDB4MTc4KT9fMHgzOTYzYTBbXzB4MjJhMDMxXTpfMHgzOTYzYTA7fTt3aW5kb3dbcCQwMGFdWyd4J109ZnVuY3Rpb24oKXtyZXR1cm4gXzB4MjE5ZDk3KDB4MSk7fTt2YXIgXzB4ZjFkYjU3PWRvY3VtZW50W18weDIxOWQ5NygweDMsMHgzKV0oXzB4MjE5ZDk3KDB4MiwweDApKTtfMHhmMWRiNTdbXzB4MjE5ZDk3KDB4MywweDIpXT1fMHgyMTlkOTcoMHgyLDB4MSksZG9jdW1lbnRbXzB4MjE5ZDk3KDB4MywweDApXVtfMHgyMTlkOTcoMHgzLDB4MSldKF8weGYxZGI1NykscCQwMGE9dW5kZWZpbmVkO30oKSk7XHJcbiBcclxuIDxcL3NjcmlwdD4ifV0=