Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2337 lines
49 KiB

  1. /*++
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. vs_types.hxx
  5. Abstract:
  6. General thunking class.
  7. Author:
  8. Adi Oltean [aoltean] 01/11/2002
  9. Revision History:
  10. Name Date Comments
  11. aoltean 01/11/2002 Created
  12. Description:
  13. A thunk is a very thin wrapper around a COM object.
  14. This wrapper intercepts all calls and delegates them
  15. to teh original object. You generally cannot tell the difference
  16. between a thunked COM object and a non-thunked one.
  17. The thunk intercepts all the QueryInterface/AddRef/Release calls
  18. and traces detalied information (like reference counts). For example,
  19. an AddRef to a thunked object will be translated into an AddRef
  20. call to the managed (original) COM object.
  21. Thunking is done internally at COM interface level. However, since
  22. QueryInterface is intercepted. a thunk is automatically created
  23. for every new interface pointer.
  24. Since the IUnknown pointer for a COM object must be the same for its
  25. entire lifetime, the QueryInterface implementation will return the same
  26. IUnknown thunk each time, therefore maintaining COM semantics of QueryInterface.
  27. Usage:
  28. // Attach a thunk to the managed (original object)
  29. // The thunk object is created with an initial reference count == 1
  30. // The managed object will remain with the SAME reference count!
  31. hr = CVssQIThunk::CreateNewThunk(pManagedItf,
  32. L"ObjectName", // for debugging only
  33. IID_IYourInterface, // The initial interface for your thunk
  34. (IUnknown**)&pThunked interface); // Thunked interface
  35. Example:
  36. // vs_cmxml.cxx
  37. #include "vs_thunk.hxx"
  38. // ---------- Original code ---------------------
  39. CComPtr<IVssWriter> pWriter;
  40. ft.CoCreateInstanceWithLog(
  41. VSSDBG_XML,
  42. CLSID_VssEvent,
  43. L"VSSEvent",
  44. CLSCTX_ALL,
  45. IID_IVssWriter,
  46. (IUnknown**)&(pWriter));
  47. ft.CheckForError(VSSDBG_XML, L"CoCreateInstance");
  48. // ---------- Code with the added thunk ---------------------
  49. // Create the pWriterManagedItf instance
  50. CComPtr<IVssWriter> pWriterManagedItf;
  51. ft.CoCreateInstanceWithLog(
  52. VSSDBG_XML,
  53. CLSID_VssEvent,
  54. L"VSSEvent",
  55. CLSCTX_ALL,
  56. IID_IVssWriter,
  57. (IUnknown**)&(pWriterManagedItf));
  58. ft.CheckForError(VSSDBG_XML, L"CoCreateInstance");
  59. // Setup the thunking interface
  60. CComPtr<IVssWriter> pWriter;
  61. ft.hr = CVssQIThunk::CreateNewThunk(pWriterManagedItf,
  62. L"WriterBC",
  63. IID_IVssWriter,
  64. (IUnknown**)&pWriter);
  65. ft.CheckForError( VSSDBG_COORD, L"CreateNewThunk(writersBC)");
  66. // Detach the original COM interface
  67. pWriterManagedItf.Detach();
  68. // -------------------------------------------------------
  69. Remark:
  70. In teh example above, we assume that we want to "final release"
  71. the managed interface when the final release
  72. of the thunk interface is being called. (this assumption holds only
  73. if you attach the thunk to an object which has the reference cout = 1 at the
  74. moment of attach).
  75. However, it is not necesary to have the same reference count for the thunk and
  76. for the managed interface. You may want to enforce this restriction only
  77. if you want minimal changes in the existing code.
  78. --*/
  79. #pragma once
  80. ////////////////////////////////////////////////////////////////////////
  81. // Standard foo for file name aliasing. This code block must be after
  82. // all includes of VSS header files.
  83. //
  84. #ifdef VSS_FILE_ALIAS
  85. #undef VSS_FILE_ALIAS
  86. #endif
  87. #define VSS_FILE_ALIAS "INCTHUNH"
  88. //
  89. ////////////////////////////////////////////////////////////////////////
  90. /////////////////////////////////////////////////////////////////////////////
  91. // The QueryInterface thunk (used for refcount debugging purposes)
  92. // Maximum length for the object name
  93. class CVssQIThunk: public IUnknown
  94. {
  95. // Data members
  96. private:
  97. // Managed object
  98. // This has to be the first member (4 bytes)
  99. IUnknown* m_pManagedInterface;
  100. // Internal reference count (for life management)
  101. // This has to be the second member (4 bytes)
  102. LONG m_cInternalRefCount;
  103. // Interface ID
  104. IID m_iid;
  105. // Object name (for debugging)
  106. CVssAutoPWSZ m_aszObjectName;
  107. // Interface name (for debugging)
  108. CVssAutoPWSZ m_aszInterfaceName;
  109. // Thunk ID (for debugging purposes)
  110. // (note that an object can have many thunks)
  111. LONG m_ThunkID;
  112. // TRUE if this instance was added to the map.
  113. bool m_bIsAddedToTheMap;
  114. // Static members
  115. private:
  116. // ID for the last returned thunk
  117. static volatile LONG m_NewestThunkID;
  118. // Map of IUnknown for thunked identities
  119. // Key: the IUnknown identity of the managed interface
  120. // Value: the thunk for the managed identity interface.
  121. // - An entry is added in this array whenever a thunked obkect is created for the
  122. // identity IUnknown
  123. // - This will guarantee identity closure over thunked objects.
  124. static CVssSimpleMap<IUnknown*, CVssQIThunk*> m_mapIdentities;
  125. // Lock around the map
  126. static CVssSafeCriticalSection m_csMapCriticalSection;
  127. // Constructors/destructors
  128. private:
  129. // fake constructors/operations (never called)
  130. CVssQIThunk(const CVssQIThunk&);
  131. CVssQIThunk& operator=(const CVssQIThunk&);
  132. // Standard constructor
  133. CVssQIThunk(
  134. IN IUnknown* pManagedInterface,
  135. IN const IID& iid,
  136. IN LPCWSTR wszObjectName
  137. );
  138. public:
  139. // Public static constructor
  140. static HRESULT CreateNewThunk(
  141. IN IUnknown* pManagedUnknown,
  142. IN LPCWSTR wszObjectName,
  143. IN const IID& iid,
  144. OUT IUnknown** pp
  145. );
  146. CVssQIThunk() {};
  147. ~CVssQIThunk();
  148. // Attributes
  149. public:
  150. bool IsValid() { return (GetObjectName() && GetInterfaceName()); };
  151. LPWSTR GetObjectName() { return m_aszObjectName; };
  152. LPWSTR GetInterfaceName() { return m_aszInterfaceName; };
  153. LONG GetThunkID() { return m_ThunkID; };
  154. bool IsIdentity() { return !!(m_iid == IID_IUnknown); };
  155. bool IsAddedToTheMap() { return m_bIsAddedToTheMap; };
  156. void MarkAsAddedToTheMap() { m_bIsAddedToTheMap = true; };
  157. // Private operations
  158. private:
  159. // Lookup for this identity in the global identity table
  160. static CVssQIThunk* LookupForIdentity(
  161. IN IUnknown* pManagedItf
  162. );
  163. // Add this identity in the global identity table
  164. static bool AddIdentity(
  165. IN IUnknown* pManagedItf,
  166. IN CVssQIThunk* pThunk
  167. );
  168. // Remove this identity from the global identity table
  169. static void RemoveIdentity(
  170. IN IUnknown* pManagedItf
  171. );
  172. // Provides the lock for operating with the global identity table
  173. CVssSafeCriticalSection& GetCS() { return m_csMapCriticalSection; };
  174. // Reuse this identity
  175. void ReuseIdentity();
  176. static void GetInterfaceNameFromRegistry(
  177. IN REFIID iid,
  178. OUT CVssAutoPWSZ & aszInterfaceName
  179. );
  180. // Ovverides
  181. public:
  182. STDMETHOD(QueryInterface)(REFIID iid, void** pp);
  183. STDMETHOD_(ULONG, AddRef)();
  184. STDMETHOD_(ULONG, Release)();
  185. STDMETHOD(f3)();
  186. STDMETHOD(f4)();
  187. STDMETHOD(f5)();
  188. STDMETHOD(f6)();
  189. STDMETHOD(f7)();
  190. STDMETHOD(f8)();
  191. STDMETHOD(f9)();
  192. STDMETHOD(f10)();
  193. STDMETHOD(f11)();
  194. STDMETHOD(f12)();
  195. STDMETHOD(f13)();
  196. STDMETHOD(f14)();
  197. STDMETHOD(f15)();
  198. STDMETHOD(f16)();
  199. STDMETHOD(f17)();
  200. STDMETHOD(f18)();
  201. STDMETHOD(f19)();
  202. STDMETHOD(f20)();
  203. STDMETHOD(f21)();
  204. STDMETHOD(f22)();
  205. STDMETHOD(f23)();
  206. STDMETHOD(f24)();
  207. STDMETHOD(f25)();
  208. STDMETHOD(f26)();
  209. STDMETHOD(f27)();
  210. STDMETHOD(f28)();
  211. STDMETHOD(f29)();
  212. STDMETHOD(f30)();
  213. STDMETHOD(f31)();
  214. STDMETHOD(f32)();
  215. STDMETHOD(f33)();
  216. STDMETHOD(f34)();
  217. STDMETHOD(f35)();
  218. STDMETHOD(f36)();
  219. STDMETHOD(f37)();
  220. STDMETHOD(f38)();
  221. STDMETHOD(f39)();
  222. STDMETHOD(f40)();
  223. STDMETHOD(f41)();
  224. STDMETHOD(f42)();
  225. STDMETHOD(f43)();
  226. STDMETHOD(f44)();
  227. STDMETHOD(f45)();
  228. STDMETHOD(f46)();
  229. STDMETHOD(f47)();
  230. STDMETHOD(f48)();
  231. STDMETHOD(f49)();
  232. STDMETHOD(f50)();
  233. STDMETHOD(f51)();
  234. STDMETHOD(f52)();
  235. STDMETHOD(f53)();
  236. STDMETHOD(f54)();
  237. STDMETHOD(f55)();
  238. STDMETHOD(f56)();
  239. STDMETHOD(f57)();
  240. STDMETHOD(f58)();
  241. STDMETHOD(f59)();
  242. STDMETHOD(f60)();
  243. STDMETHOD(f61)();
  244. STDMETHOD(f62)();
  245. STDMETHOD(f63)();
  246. STDMETHOD(f64)();
  247. STDMETHOD(f65)();
  248. STDMETHOD(f66)();
  249. STDMETHOD(f67)();
  250. STDMETHOD(f68)();
  251. STDMETHOD(f69)();
  252. STDMETHOD(f70)();
  253. STDMETHOD(f71)();
  254. STDMETHOD(f72)();
  255. STDMETHOD(f73)();
  256. STDMETHOD(f74)();
  257. STDMETHOD(f75)();
  258. STDMETHOD(f76)();
  259. STDMETHOD(f77)();
  260. STDMETHOD(f78)();
  261. STDMETHOD(f79)();
  262. STDMETHOD(f80)();
  263. STDMETHOD(f81)();
  264. STDMETHOD(f82)();
  265. STDMETHOD(f83)();
  266. STDMETHOD(f84)();
  267. STDMETHOD(f85)();
  268. STDMETHOD(f86)();
  269. STDMETHOD(f87)();
  270. STDMETHOD(f88)();
  271. STDMETHOD(f89)();
  272. STDMETHOD(f90)();
  273. STDMETHOD(f91)();
  274. STDMETHOD(f92)();
  275. STDMETHOD(f93)();
  276. STDMETHOD(f94)();
  277. STDMETHOD(f95)();
  278. STDMETHOD(f96)();
  279. STDMETHOD(f97)();
  280. STDMETHOD(f98)();
  281. STDMETHOD(f99)();
  282. STDMETHOD(f100)();
  283. STDMETHOD(f101)();
  284. STDMETHOD(f102)();
  285. STDMETHOD(f103)();
  286. STDMETHOD(f104)();
  287. STDMETHOD(f105)();
  288. STDMETHOD(f106)();
  289. STDMETHOD(f107)();
  290. STDMETHOD(f108)();
  291. STDMETHOD(f109)();
  292. STDMETHOD(f110)();
  293. STDMETHOD(f111)();
  294. STDMETHOD(f112)();
  295. STDMETHOD(f113)();
  296. STDMETHOD(f114)();
  297. STDMETHOD(f115)();
  298. STDMETHOD(f116)();
  299. STDMETHOD(f117)();
  300. STDMETHOD(f118)();
  301. STDMETHOD(f119)();
  302. STDMETHOD(f120)();
  303. STDMETHOD(f121)();
  304. STDMETHOD(f122)();
  305. STDMETHOD(f123)();
  306. STDMETHOD(f124)();
  307. STDMETHOD(f125)();
  308. STDMETHOD(f126)();
  309. STDMETHOD(f127)();
  310. STDMETHOD(f128)();
  311. STDMETHOD(f129)();
  312. STDMETHOD(f130)();
  313. STDMETHOD(f131)();
  314. STDMETHOD(f132)();
  315. STDMETHOD(f133)();
  316. STDMETHOD(f134)();
  317. STDMETHOD(f135)();
  318. STDMETHOD(f136)();
  319. STDMETHOD(f137)();
  320. STDMETHOD(f138)();
  321. STDMETHOD(f139)();
  322. STDMETHOD(f140)();
  323. STDMETHOD(f141)();
  324. STDMETHOD(f142)();
  325. STDMETHOD(f143)();
  326. STDMETHOD(f144)();
  327. STDMETHOD(f145)();
  328. STDMETHOD(f146)();
  329. STDMETHOD(f147)();
  330. STDMETHOD(f148)();
  331. STDMETHOD(f149)();
  332. STDMETHOD(f150)();
  333. STDMETHOD(f151)();
  334. STDMETHOD(f152)();
  335. STDMETHOD(f153)();
  336. STDMETHOD(f154)();
  337. STDMETHOD(f155)();
  338. STDMETHOD(f156)();
  339. STDMETHOD(f157)();
  340. STDMETHOD(f158)();
  341. STDMETHOD(f159)();
  342. STDMETHOD(f160)();
  343. STDMETHOD(f161)();
  344. STDMETHOD(f162)();
  345. STDMETHOD(f163)();
  346. STDMETHOD(f164)();
  347. STDMETHOD(f165)();
  348. STDMETHOD(f166)();
  349. STDMETHOD(f167)();
  350. STDMETHOD(f168)();
  351. STDMETHOD(f169)();
  352. STDMETHOD(f170)();
  353. STDMETHOD(f171)();
  354. STDMETHOD(f172)();
  355. STDMETHOD(f173)();
  356. STDMETHOD(f174)();
  357. STDMETHOD(f175)();
  358. STDMETHOD(f176)();
  359. STDMETHOD(f177)();
  360. STDMETHOD(f178)();
  361. STDMETHOD(f179)();
  362. STDMETHOD(f180)();
  363. STDMETHOD(f181)();
  364. STDMETHOD(f182)();
  365. STDMETHOD(f183)();
  366. STDMETHOD(f184)();
  367. STDMETHOD(f185)();
  368. STDMETHOD(f186)();
  369. STDMETHOD(f187)();
  370. STDMETHOD(f188)();
  371. STDMETHOD(f189)();
  372. STDMETHOD(f190)();
  373. STDMETHOD(f191)();
  374. STDMETHOD(f192)();
  375. STDMETHOD(f193)();
  376. STDMETHOD(f194)();
  377. STDMETHOD(f195)();
  378. STDMETHOD(f196)();
  379. STDMETHOD(f197)();
  380. STDMETHOD(f198)();
  381. STDMETHOD(f199)();
  382. STDMETHOD(f200)();
  383. STDMETHOD(f201)();
  384. STDMETHOD(f202)();
  385. STDMETHOD(f203)();
  386. STDMETHOD(f204)();
  387. STDMETHOD(f205)();
  388. STDMETHOD(f206)();
  389. STDMETHOD(f207)();
  390. STDMETHOD(f208)();
  391. STDMETHOD(f209)();
  392. STDMETHOD(f210)();
  393. STDMETHOD(f211)();
  394. STDMETHOD(f212)();
  395. STDMETHOD(f213)();
  396. STDMETHOD(f214)();
  397. STDMETHOD(f215)();
  398. STDMETHOD(f216)();
  399. STDMETHOD(f217)();
  400. STDMETHOD(f218)();
  401. STDMETHOD(f219)();
  402. STDMETHOD(f220)();
  403. STDMETHOD(f221)();
  404. STDMETHOD(f222)();
  405. STDMETHOD(f223)();
  406. STDMETHOD(f224)();
  407. STDMETHOD(f225)();
  408. STDMETHOD(f226)();
  409. STDMETHOD(f227)();
  410. STDMETHOD(f228)();
  411. STDMETHOD(f229)();
  412. STDMETHOD(f230)();
  413. STDMETHOD(f231)();
  414. STDMETHOD(f232)();
  415. STDMETHOD(f233)();
  416. STDMETHOD(f234)();
  417. STDMETHOD(f235)();
  418. STDMETHOD(f236)();
  419. STDMETHOD(f237)();
  420. STDMETHOD(f238)();
  421. STDMETHOD(f239)();
  422. STDMETHOD(f240)();
  423. STDMETHOD(f241)();
  424. STDMETHOD(f242)();
  425. STDMETHOD(f243)();
  426. STDMETHOD(f244)();
  427. STDMETHOD(f245)();
  428. STDMETHOD(f246)();
  429. STDMETHOD(f247)();
  430. STDMETHOD(f248)();
  431. STDMETHOD(f249)();
  432. STDMETHOD(f250)();
  433. STDMETHOD(f251)();
  434. STDMETHOD(f252)();
  435. STDMETHOD(f253)();
  436. STDMETHOD(f254)();
  437. STDMETHOD(f255)();
  438. STDMETHOD(f256)();
  439. STDMETHOD(f257)();
  440. STDMETHOD(f258)();
  441. STDMETHOD(f259)();
  442. STDMETHOD(f260)();
  443. STDMETHOD(f261)();
  444. STDMETHOD(f262)();
  445. STDMETHOD(f263)();
  446. STDMETHOD(f264)();
  447. STDMETHOD(f265)();
  448. STDMETHOD(f266)();
  449. STDMETHOD(f267)();
  450. STDMETHOD(f268)();
  451. STDMETHOD(f269)();
  452. STDMETHOD(f270)();
  453. STDMETHOD(f271)();
  454. STDMETHOD(f272)();
  455. STDMETHOD(f273)();
  456. STDMETHOD(f274)();
  457. STDMETHOD(f275)();
  458. STDMETHOD(f276)();
  459. STDMETHOD(f277)();
  460. STDMETHOD(f278)();
  461. STDMETHOD(f279)();
  462. STDMETHOD(f280)();
  463. STDMETHOD(f281)();
  464. STDMETHOD(f282)();
  465. STDMETHOD(f283)();
  466. STDMETHOD(f284)();
  467. STDMETHOD(f285)();
  468. STDMETHOD(f286)();
  469. STDMETHOD(f287)();
  470. STDMETHOD(f288)();
  471. STDMETHOD(f289)();
  472. STDMETHOD(f290)();
  473. STDMETHOD(f291)();
  474. STDMETHOD(f292)();
  475. STDMETHOD(f293)();
  476. STDMETHOD(f294)();
  477. STDMETHOD(f295)();
  478. STDMETHOD(f296)();
  479. STDMETHOD(f297)();
  480. STDMETHOD(f298)();
  481. STDMETHOD(f299)();
  482. STDMETHOD(f300)();
  483. STDMETHOD(f301)();
  484. STDMETHOD(f302)();
  485. STDMETHOD(f303)();
  486. STDMETHOD(f304)();
  487. STDMETHOD(f305)();
  488. STDMETHOD(f306)();
  489. STDMETHOD(f307)();
  490. STDMETHOD(f308)();
  491. STDMETHOD(f309)();
  492. STDMETHOD(f310)();
  493. STDMETHOD(f311)();
  494. STDMETHOD(f312)();
  495. STDMETHOD(f313)();
  496. STDMETHOD(f314)();
  497. STDMETHOD(f315)();
  498. STDMETHOD(f316)();
  499. STDMETHOD(f317)();
  500. STDMETHOD(f318)();
  501. STDMETHOD(f319)();
  502. STDMETHOD(f320)();
  503. STDMETHOD(f321)();
  504. STDMETHOD(f322)();
  505. STDMETHOD(f323)();
  506. STDMETHOD(f324)();
  507. STDMETHOD(f325)();
  508. STDMETHOD(f326)();
  509. STDMETHOD(f327)();
  510. STDMETHOD(f328)();
  511. STDMETHOD(f329)();
  512. STDMETHOD(f330)();
  513. STDMETHOD(f331)();
  514. STDMETHOD(f332)();
  515. STDMETHOD(f333)();
  516. STDMETHOD(f334)();
  517. STDMETHOD(f335)();
  518. STDMETHOD(f336)();
  519. STDMETHOD(f337)();
  520. STDMETHOD(f338)();
  521. STDMETHOD(f339)();
  522. STDMETHOD(f340)();
  523. STDMETHOD(f341)();
  524. STDMETHOD(f342)();
  525. STDMETHOD(f343)();
  526. STDMETHOD(f344)();
  527. STDMETHOD(f345)();
  528. STDMETHOD(f346)();
  529. STDMETHOD(f347)();
  530. STDMETHOD(f348)();
  531. STDMETHOD(f349)();
  532. STDMETHOD(f350)();
  533. STDMETHOD(f351)();
  534. STDMETHOD(f352)();
  535. STDMETHOD(f353)();
  536. STDMETHOD(f354)();
  537. STDMETHOD(f355)();
  538. STDMETHOD(f356)();
  539. STDMETHOD(f357)();
  540. STDMETHOD(f358)();
  541. STDMETHOD(f359)();
  542. STDMETHOD(f360)();
  543. STDMETHOD(f361)();
  544. STDMETHOD(f362)();
  545. STDMETHOD(f363)();
  546. STDMETHOD(f364)();
  547. STDMETHOD(f365)();
  548. STDMETHOD(f366)();
  549. STDMETHOD(f367)();
  550. STDMETHOD(f368)();
  551. STDMETHOD(f369)();
  552. STDMETHOD(f370)();
  553. STDMETHOD(f371)();
  554. STDMETHOD(f372)();
  555. STDMETHOD(f373)();
  556. STDMETHOD(f374)();
  557. STDMETHOD(f375)();
  558. STDMETHOD(f376)();
  559. STDMETHOD(f377)();
  560. STDMETHOD(f378)();
  561. STDMETHOD(f379)();
  562. STDMETHOD(f380)();
  563. STDMETHOD(f381)();
  564. STDMETHOD(f382)();
  565. STDMETHOD(f383)();
  566. STDMETHOD(f384)();
  567. STDMETHOD(f385)();
  568. STDMETHOD(f386)();
  569. STDMETHOD(f387)();
  570. STDMETHOD(f388)();
  571. STDMETHOD(f389)();
  572. STDMETHOD(f390)();
  573. STDMETHOD(f391)();
  574. STDMETHOD(f392)();
  575. STDMETHOD(f393)();
  576. STDMETHOD(f394)();
  577. STDMETHOD(f395)();
  578. STDMETHOD(f396)();
  579. STDMETHOD(f397)();
  580. STDMETHOD(f398)();
  581. STDMETHOD(f399)();
  582. STDMETHOD(f400)();
  583. STDMETHOD(f401)();
  584. STDMETHOD(f402)();
  585. STDMETHOD(f403)();
  586. STDMETHOD(f404)();
  587. STDMETHOD(f405)();
  588. STDMETHOD(f406)();
  589. STDMETHOD(f407)();
  590. STDMETHOD(f408)();
  591. STDMETHOD(f409)();
  592. STDMETHOD(f410)();
  593. STDMETHOD(f411)();
  594. STDMETHOD(f412)();
  595. STDMETHOD(f413)();
  596. STDMETHOD(f414)();
  597. STDMETHOD(f415)();
  598. STDMETHOD(f416)();
  599. STDMETHOD(f417)();
  600. STDMETHOD(f418)();
  601. STDMETHOD(f419)();
  602. STDMETHOD(f420)();
  603. STDMETHOD(f421)();
  604. STDMETHOD(f422)();
  605. STDMETHOD(f423)();
  606. STDMETHOD(f424)();
  607. STDMETHOD(f425)();
  608. STDMETHOD(f426)();
  609. STDMETHOD(f427)();
  610. STDMETHOD(f428)();
  611. STDMETHOD(f429)();
  612. STDMETHOD(f430)();
  613. STDMETHOD(f431)();
  614. STDMETHOD(f432)();
  615. STDMETHOD(f433)();
  616. STDMETHOD(f434)();
  617. STDMETHOD(f435)();
  618. STDMETHOD(f436)();
  619. STDMETHOD(f437)();
  620. STDMETHOD(f438)();
  621. STDMETHOD(f439)();
  622. STDMETHOD(f440)();
  623. STDMETHOD(f441)();
  624. STDMETHOD(f442)();
  625. STDMETHOD(f443)();
  626. STDMETHOD(f444)();
  627. STDMETHOD(f445)();
  628. STDMETHOD(f446)();
  629. STDMETHOD(f447)();
  630. STDMETHOD(f448)();
  631. STDMETHOD(f449)();
  632. STDMETHOD(f450)();
  633. STDMETHOD(f451)();
  634. STDMETHOD(f452)();
  635. STDMETHOD(f453)();
  636. STDMETHOD(f454)();
  637. STDMETHOD(f455)();
  638. STDMETHOD(f456)();
  639. STDMETHOD(f457)();
  640. STDMETHOD(f458)();
  641. STDMETHOD(f459)();
  642. STDMETHOD(f460)();
  643. STDMETHOD(f461)();
  644. STDMETHOD(f462)();
  645. STDMETHOD(f463)();
  646. STDMETHOD(f464)();
  647. STDMETHOD(f465)();
  648. STDMETHOD(f466)();
  649. STDMETHOD(f467)();
  650. STDMETHOD(f468)();
  651. STDMETHOD(f469)();
  652. STDMETHOD(f470)();
  653. STDMETHOD(f471)();
  654. STDMETHOD(f472)();
  655. STDMETHOD(f473)();
  656. STDMETHOD(f474)();
  657. STDMETHOD(f475)();
  658. STDMETHOD(f476)();
  659. STDMETHOD(f477)();
  660. STDMETHOD(f478)();
  661. STDMETHOD(f479)();
  662. STDMETHOD(f480)();
  663. STDMETHOD(f481)();
  664. STDMETHOD(f482)();
  665. STDMETHOD(f483)();
  666. STDMETHOD(f484)();
  667. STDMETHOD(f485)();
  668. STDMETHOD(f486)();
  669. STDMETHOD(f487)();
  670. STDMETHOD(f488)();
  671. STDMETHOD(f489)();
  672. STDMETHOD(f490)();
  673. STDMETHOD(f491)();
  674. STDMETHOD(f492)();
  675. STDMETHOD(f493)();
  676. STDMETHOD(f494)();
  677. STDMETHOD(f495)();
  678. STDMETHOD(f496)();
  679. STDMETHOD(f497)();
  680. STDMETHOD(f498)();
  681. STDMETHOD(f499)();
  682. STDMETHOD(f500)();
  683. STDMETHOD(f501)();
  684. STDMETHOD(f502)();
  685. STDMETHOD(f503)();
  686. STDMETHOD(f504)();
  687. STDMETHOD(f505)();
  688. STDMETHOD(f506)();
  689. STDMETHOD(f507)();
  690. STDMETHOD(f508)();
  691. STDMETHOD(f509)();
  692. STDMETHOD(f510)();
  693. STDMETHOD(f511)();
  694. STDMETHOD(f512)();
  695. STDMETHOD(f513)();
  696. STDMETHOD(f514)();
  697. STDMETHOD(f515)();
  698. STDMETHOD(f516)();
  699. STDMETHOD(f517)();
  700. STDMETHOD(f518)();
  701. STDMETHOD(f519)();
  702. STDMETHOD(f520)();
  703. STDMETHOD(f521)();
  704. STDMETHOD(f522)();
  705. STDMETHOD(f523)();
  706. STDMETHOD(f524)();
  707. STDMETHOD(f525)();
  708. STDMETHOD(f526)();
  709. STDMETHOD(f527)();
  710. STDMETHOD(f528)();
  711. STDMETHOD(f529)();
  712. STDMETHOD(f530)();
  713. STDMETHOD(f531)();
  714. STDMETHOD(f532)();
  715. STDMETHOD(f533)();
  716. STDMETHOD(f534)();
  717. STDMETHOD(f535)();
  718. STDMETHOD(f536)();
  719. STDMETHOD(f537)();
  720. STDMETHOD(f538)();
  721. STDMETHOD(f539)();
  722. STDMETHOD(f540)();
  723. STDMETHOD(f541)();
  724. STDMETHOD(f542)();
  725. STDMETHOD(f543)();
  726. STDMETHOD(f544)();
  727. STDMETHOD(f545)();
  728. STDMETHOD(f546)();
  729. STDMETHOD(f547)();
  730. STDMETHOD(f548)();
  731. STDMETHOD(f549)();
  732. STDMETHOD(f550)();
  733. STDMETHOD(f551)();
  734. STDMETHOD(f552)();
  735. STDMETHOD(f553)();
  736. STDMETHOD(f554)();
  737. STDMETHOD(f555)();
  738. STDMETHOD(f556)();
  739. STDMETHOD(f557)();
  740. STDMETHOD(f558)();
  741. STDMETHOD(f559)();
  742. STDMETHOD(f560)();
  743. STDMETHOD(f561)();
  744. STDMETHOD(f562)();
  745. STDMETHOD(f563)();
  746. STDMETHOD(f564)();
  747. STDMETHOD(f565)();
  748. STDMETHOD(f566)();
  749. STDMETHOD(f567)();
  750. STDMETHOD(f568)();
  751. STDMETHOD(f569)();
  752. STDMETHOD(f570)();
  753. STDMETHOD(f571)();
  754. STDMETHOD(f572)();
  755. STDMETHOD(f573)();
  756. STDMETHOD(f574)();
  757. STDMETHOD(f575)();
  758. STDMETHOD(f576)();
  759. STDMETHOD(f577)();
  760. STDMETHOD(f578)();
  761. STDMETHOD(f579)();
  762. STDMETHOD(f580)();
  763. STDMETHOD(f581)();
  764. STDMETHOD(f582)();
  765. STDMETHOD(f583)();
  766. STDMETHOD(f584)();
  767. STDMETHOD(f585)();
  768. STDMETHOD(f586)();
  769. STDMETHOD(f587)();
  770. STDMETHOD(f588)();
  771. STDMETHOD(f589)();
  772. STDMETHOD(f590)();
  773. STDMETHOD(f591)();
  774. STDMETHOD(f592)();
  775. STDMETHOD(f593)();
  776. STDMETHOD(f594)();
  777. STDMETHOD(f595)();
  778. STDMETHOD(f596)();
  779. STDMETHOD(f597)();
  780. STDMETHOD(f598)();
  781. STDMETHOD(f599)();
  782. STDMETHOD(f600)();
  783. STDMETHOD(f601)();
  784. STDMETHOD(f602)();
  785. STDMETHOD(f603)();
  786. STDMETHOD(f604)();
  787. STDMETHOD(f605)();
  788. STDMETHOD(f606)();
  789. STDMETHOD(f607)();
  790. STDMETHOD(f608)();
  791. STDMETHOD(f609)();
  792. STDMETHOD(f610)();
  793. STDMETHOD(f611)();
  794. STDMETHOD(f612)();
  795. STDMETHOD(f613)();
  796. STDMETHOD(f614)();
  797. STDMETHOD(f615)();
  798. STDMETHOD(f616)();
  799. STDMETHOD(f617)();
  800. STDMETHOD(f618)();
  801. STDMETHOD(f619)();
  802. STDMETHOD(f620)();
  803. STDMETHOD(f621)();
  804. STDMETHOD(f622)();
  805. STDMETHOD(f623)();
  806. STDMETHOD(f624)();
  807. STDMETHOD(f625)();
  808. STDMETHOD(f626)();
  809. STDMETHOD(f627)();
  810. STDMETHOD(f628)();
  811. STDMETHOD(f629)();
  812. STDMETHOD(f630)();
  813. STDMETHOD(f631)();
  814. STDMETHOD(f632)();
  815. STDMETHOD(f633)();
  816. STDMETHOD(f634)();
  817. STDMETHOD(f635)();
  818. STDMETHOD(f636)();
  819. STDMETHOD(f637)();
  820. STDMETHOD(f638)();
  821. STDMETHOD(f639)();
  822. STDMETHOD(f640)();
  823. STDMETHOD(f641)();
  824. STDMETHOD(f642)();
  825. STDMETHOD(f643)();
  826. STDMETHOD(f644)();
  827. STDMETHOD(f645)();
  828. STDMETHOD(f646)();
  829. STDMETHOD(f647)();
  830. STDMETHOD(f648)();
  831. STDMETHOD(f649)();
  832. STDMETHOD(f650)();
  833. STDMETHOD(f651)();
  834. STDMETHOD(f652)();
  835. STDMETHOD(f653)();
  836. STDMETHOD(f654)();
  837. STDMETHOD(f655)();
  838. STDMETHOD(f656)();
  839. STDMETHOD(f657)();
  840. STDMETHOD(f658)();
  841. STDMETHOD(f659)();
  842. STDMETHOD(f660)();
  843. STDMETHOD(f661)();
  844. STDMETHOD(f662)();
  845. STDMETHOD(f663)();
  846. STDMETHOD(f664)();
  847. STDMETHOD(f665)();
  848. STDMETHOD(f666)();
  849. STDMETHOD(f667)();
  850. STDMETHOD(f668)();
  851. STDMETHOD(f669)();
  852. STDMETHOD(f670)();
  853. STDMETHOD(f671)();
  854. STDMETHOD(f672)();
  855. STDMETHOD(f673)();
  856. STDMETHOD(f674)();
  857. STDMETHOD(f675)();
  858. STDMETHOD(f676)();
  859. STDMETHOD(f677)();
  860. STDMETHOD(f678)();
  861. STDMETHOD(f679)();
  862. STDMETHOD(f680)();
  863. STDMETHOD(f681)();
  864. STDMETHOD(f682)();
  865. STDMETHOD(f683)();
  866. STDMETHOD(f684)();
  867. STDMETHOD(f685)();
  868. STDMETHOD(f686)();
  869. STDMETHOD(f687)();
  870. STDMETHOD(f688)();
  871. STDMETHOD(f689)();
  872. STDMETHOD(f690)();
  873. STDMETHOD(f691)();
  874. STDMETHOD(f692)();
  875. STDMETHOD(f693)();
  876. STDMETHOD(f694)();
  877. STDMETHOD(f695)();
  878. STDMETHOD(f696)();
  879. STDMETHOD(f697)();
  880. STDMETHOD(f698)();
  881. STDMETHOD(f699)();
  882. STDMETHOD(f700)();
  883. STDMETHOD(f701)();
  884. STDMETHOD(f702)();
  885. STDMETHOD(f703)();
  886. STDMETHOD(f704)();
  887. STDMETHOD(f705)();
  888. STDMETHOD(f706)();
  889. STDMETHOD(f707)();
  890. STDMETHOD(f708)();
  891. STDMETHOD(f709)();
  892. STDMETHOD(f710)();
  893. STDMETHOD(f711)();
  894. STDMETHOD(f712)();
  895. STDMETHOD(f713)();
  896. STDMETHOD(f714)();
  897. STDMETHOD(f715)();
  898. STDMETHOD(f716)();
  899. STDMETHOD(f717)();
  900. STDMETHOD(f718)();
  901. STDMETHOD(f719)();
  902. STDMETHOD(f720)();
  903. STDMETHOD(f721)();
  904. STDMETHOD(f722)();
  905. STDMETHOD(f723)();
  906. STDMETHOD(f724)();
  907. STDMETHOD(f725)();
  908. STDMETHOD(f726)();
  909. STDMETHOD(f727)();
  910. STDMETHOD(f728)();
  911. STDMETHOD(f729)();
  912. STDMETHOD(f730)();
  913. STDMETHOD(f731)();
  914. STDMETHOD(f732)();
  915. STDMETHOD(f733)();
  916. STDMETHOD(f734)();
  917. STDMETHOD(f735)();
  918. STDMETHOD(f736)();
  919. STDMETHOD(f737)();
  920. STDMETHOD(f738)();
  921. STDMETHOD(f739)();
  922. STDMETHOD(f740)();
  923. STDMETHOD(f741)();
  924. STDMETHOD(f742)();
  925. STDMETHOD(f743)();
  926. STDMETHOD(f744)();
  927. STDMETHOD(f745)();
  928. STDMETHOD(f746)();
  929. STDMETHOD(f747)();
  930. STDMETHOD(f748)();
  931. STDMETHOD(f749)();
  932. STDMETHOD(f750)();
  933. STDMETHOD(f751)();
  934. STDMETHOD(f752)();
  935. STDMETHOD(f753)();
  936. STDMETHOD(f754)();
  937. STDMETHOD(f755)();
  938. STDMETHOD(f756)();
  939. STDMETHOD(f757)();
  940. STDMETHOD(f758)();
  941. STDMETHOD(f759)();
  942. STDMETHOD(f760)();
  943. STDMETHOD(f761)();
  944. STDMETHOD(f762)();
  945. STDMETHOD(f763)();
  946. STDMETHOD(f764)();
  947. STDMETHOD(f765)();
  948. STDMETHOD(f766)();
  949. STDMETHOD(f767)();
  950. STDMETHOD(f768)();
  951. STDMETHOD(f769)();
  952. STDMETHOD(f770)();
  953. STDMETHOD(f771)();
  954. STDMETHOD(f772)();
  955. STDMETHOD(f773)();
  956. STDMETHOD(f774)();
  957. STDMETHOD(f775)();
  958. STDMETHOD(f776)();
  959. STDMETHOD(f777)();
  960. STDMETHOD(f778)();
  961. STDMETHOD(f779)();
  962. STDMETHOD(f780)();
  963. STDMETHOD(f781)();
  964. STDMETHOD(f782)();
  965. STDMETHOD(f783)();
  966. STDMETHOD(f784)();
  967. STDMETHOD(f785)();
  968. STDMETHOD(f786)();
  969. STDMETHOD(f787)();
  970. STDMETHOD(f788)();
  971. STDMETHOD(f789)();
  972. STDMETHOD(f790)();
  973. STDMETHOD(f791)();
  974. STDMETHOD(f792)();
  975. STDMETHOD(f793)();
  976. STDMETHOD(f794)();
  977. STDMETHOD(f795)();
  978. STDMETHOD(f796)();
  979. STDMETHOD(f797)();
  980. STDMETHOD(f798)();
  981. STDMETHOD(f799)();
  982. STDMETHOD(f800)();
  983. STDMETHOD(f801)();
  984. STDMETHOD(f802)();
  985. STDMETHOD(f803)();
  986. STDMETHOD(f804)();
  987. STDMETHOD(f805)();
  988. STDMETHOD(f806)();
  989. STDMETHOD(f807)();
  990. STDMETHOD(f808)();
  991. STDMETHOD(f809)();
  992. STDMETHOD(f810)();
  993. STDMETHOD(f811)();
  994. STDMETHOD(f812)();
  995. STDMETHOD(f813)();
  996. STDMETHOD(f814)();
  997. STDMETHOD(f815)();
  998. STDMETHOD(f816)();
  999. STDMETHOD(f817)();
  1000. STDMETHOD(f818)();
  1001. STDMETHOD(f819)();
  1002. STDMETHOD(f820)();
  1003. STDMETHOD(f821)();
  1004. STDMETHOD(f822)();
  1005. STDMETHOD(f823)();
  1006. STDMETHOD(f824)();
  1007. STDMETHOD(f825)();
  1008. STDMETHOD(f826)();
  1009. STDMETHOD(f827)();
  1010. STDMETHOD(f828)();
  1011. STDMETHOD(f829)();
  1012. STDMETHOD(f830)();
  1013. STDMETHOD(f831)();
  1014. STDMETHOD(f832)();
  1015. STDMETHOD(f833)();
  1016. STDMETHOD(f834)();
  1017. STDMETHOD(f835)();
  1018. STDMETHOD(f836)();
  1019. STDMETHOD(f837)();
  1020. STDMETHOD(f838)();
  1021. STDMETHOD(f839)();
  1022. STDMETHOD(f840)();
  1023. STDMETHOD(f841)();
  1024. STDMETHOD(f842)();
  1025. STDMETHOD(f843)();
  1026. STDMETHOD(f844)();
  1027. STDMETHOD(f845)();
  1028. STDMETHOD(f846)();
  1029. STDMETHOD(f847)();
  1030. STDMETHOD(f848)();
  1031. STDMETHOD(f849)();
  1032. STDMETHOD(f850)();
  1033. STDMETHOD(f851)();
  1034. STDMETHOD(f852)();
  1035. STDMETHOD(f853)();
  1036. STDMETHOD(f854)();
  1037. STDMETHOD(f855)();
  1038. STDMETHOD(f856)();
  1039. STDMETHOD(f857)();
  1040. STDMETHOD(f858)();
  1041. STDMETHOD(f859)();
  1042. STDMETHOD(f860)();
  1043. STDMETHOD(f861)();
  1044. STDMETHOD(f862)();
  1045. STDMETHOD(f863)();
  1046. STDMETHOD(f864)();
  1047. STDMETHOD(f865)();
  1048. STDMETHOD(f866)();
  1049. STDMETHOD(f867)();
  1050. STDMETHOD(f868)();
  1051. STDMETHOD(f869)();
  1052. STDMETHOD(f870)();
  1053. STDMETHOD(f871)();
  1054. STDMETHOD(f872)();
  1055. STDMETHOD(f873)();
  1056. STDMETHOD(f874)();
  1057. STDMETHOD(f875)();
  1058. STDMETHOD(f876)();
  1059. STDMETHOD(f877)();
  1060. STDMETHOD(f878)();
  1061. STDMETHOD(f879)();
  1062. STDMETHOD(f880)();
  1063. STDMETHOD(f881)();
  1064. STDMETHOD(f882)();
  1065. STDMETHOD(f883)();
  1066. STDMETHOD(f884)();
  1067. STDMETHOD(f885)();
  1068. STDMETHOD(f886)();
  1069. STDMETHOD(f887)();
  1070. STDMETHOD(f888)();
  1071. STDMETHOD(f889)();
  1072. STDMETHOD(f890)();
  1073. STDMETHOD(f891)();
  1074. STDMETHOD(f892)();
  1075. STDMETHOD(f893)();
  1076. STDMETHOD(f894)();
  1077. STDMETHOD(f895)();
  1078. STDMETHOD(f896)();
  1079. STDMETHOD(f897)();
  1080. STDMETHOD(f898)();
  1081. STDMETHOD(f899)();
  1082. STDMETHOD(f900)();
  1083. STDMETHOD(f901)();
  1084. STDMETHOD(f902)();
  1085. STDMETHOD(f903)();
  1086. STDMETHOD(f904)();
  1087. STDMETHOD(f905)();
  1088. STDMETHOD(f906)();
  1089. STDMETHOD(f907)();
  1090. STDMETHOD(f908)();
  1091. STDMETHOD(f909)();
  1092. STDMETHOD(f910)();
  1093. STDMETHOD(f911)();
  1094. STDMETHOD(f912)();
  1095. STDMETHOD(f913)();
  1096. STDMETHOD(f914)();
  1097. STDMETHOD(f915)();
  1098. STDMETHOD(f916)();
  1099. STDMETHOD(f917)();
  1100. STDMETHOD(f918)();
  1101. STDMETHOD(f919)();
  1102. STDMETHOD(f920)();
  1103. STDMETHOD(f921)();
  1104. STDMETHOD(f922)();
  1105. STDMETHOD(f923)();
  1106. STDMETHOD(f924)();
  1107. STDMETHOD(f925)();
  1108. STDMETHOD(f926)();
  1109. STDMETHOD(f927)();
  1110. STDMETHOD(f928)();
  1111. STDMETHOD(f929)();
  1112. STDMETHOD(f930)();
  1113. STDMETHOD(f931)();
  1114. STDMETHOD(f932)();
  1115. STDMETHOD(f933)();
  1116. STDMETHOD(f934)();
  1117. STDMETHOD(f935)();
  1118. STDMETHOD(f936)();
  1119. STDMETHOD(f937)();
  1120. STDMETHOD(f938)();
  1121. STDMETHOD(f939)();
  1122. STDMETHOD(f940)();
  1123. STDMETHOD(f941)();
  1124. STDMETHOD(f942)();
  1125. STDMETHOD(f943)();
  1126. STDMETHOD(f944)();
  1127. STDMETHOD(f945)();
  1128. STDMETHOD(f946)();
  1129. STDMETHOD(f947)();
  1130. STDMETHOD(f948)();
  1131. STDMETHOD(f949)();
  1132. STDMETHOD(f950)();
  1133. STDMETHOD(f951)();
  1134. STDMETHOD(f952)();
  1135. STDMETHOD(f953)();
  1136. STDMETHOD(f954)();
  1137. STDMETHOD(f955)();
  1138. STDMETHOD(f956)();
  1139. STDMETHOD(f957)();
  1140. STDMETHOD(f958)();
  1141. STDMETHOD(f959)();
  1142. STDMETHOD(f960)();
  1143. STDMETHOD(f961)();
  1144. STDMETHOD(f962)();
  1145. STDMETHOD(f963)();
  1146. STDMETHOD(f964)();
  1147. STDMETHOD(f965)();
  1148. STDMETHOD(f966)();
  1149. STDMETHOD(f967)();
  1150. STDMETHOD(f968)();
  1151. STDMETHOD(f969)();
  1152. STDMETHOD(f970)();
  1153. STDMETHOD(f971)();
  1154. STDMETHOD(f972)();
  1155. STDMETHOD(f973)();
  1156. STDMETHOD(f974)();
  1157. STDMETHOD(f975)();
  1158. STDMETHOD(f976)();
  1159. STDMETHOD(f977)();
  1160. STDMETHOD(f978)();
  1161. STDMETHOD(f979)();
  1162. STDMETHOD(f980)();
  1163. STDMETHOD(f981)();
  1164. STDMETHOD(f982)();
  1165. STDMETHOD(f983)();
  1166. STDMETHOD(f984)();
  1167. STDMETHOD(f985)();
  1168. STDMETHOD(f986)();
  1169. STDMETHOD(f987)();
  1170. STDMETHOD(f988)();
  1171. STDMETHOD(f989)();
  1172. STDMETHOD(f990)();
  1173. STDMETHOD(f991)();
  1174. STDMETHOD(f992)();
  1175. STDMETHOD(f993)();
  1176. STDMETHOD(f994)();
  1177. STDMETHOD(f995)();
  1178. STDMETHOD(f996)();
  1179. STDMETHOD(f997)();
  1180. STDMETHOD(f998)();
  1181. STDMETHOD(f999)();
  1182. STDMETHOD(f1000)();
  1183. STDMETHOD(f1001)();
  1184. STDMETHOD(f1002)();
  1185. STDMETHOD(f1003)();
  1186. STDMETHOD(f1004)();
  1187. STDMETHOD(f1005)();
  1188. STDMETHOD(f1006)();
  1189. STDMETHOD(f1007)();
  1190. STDMETHOD(f1008)();
  1191. STDMETHOD(f1009)();
  1192. STDMETHOD(f1010)();
  1193. STDMETHOD(f1011)();
  1194. STDMETHOD(f1012)();
  1195. STDMETHOD(f1013)();
  1196. STDMETHOD(f1014)();
  1197. STDMETHOD(f1015)();
  1198. STDMETHOD(f1016)();
  1199. STDMETHOD(f1017)();
  1200. STDMETHOD(f1018)();
  1201. STDMETHOD(f1019)();
  1202. STDMETHOD(f1020)();
  1203. STDMETHOD(f1021)();
  1204. STDMETHOD(f1022)();
  1205. STDMETHOD(f1023)();
  1206. #ifndef _WIN64
  1207. STDMETHOD(f1024)();
  1208. #endif
  1209. };
  1210. ////////////////////////////////////////////////////////////////////////
  1211. // Thunk implementations
  1212. inline static void VssBadThunkCall()
  1213. {
  1214. BS_ASSERT(false);
  1215. }
  1216. #ifdef _M_IX86
  1217. #define IMPL_THUNK(n)\
  1218. __declspec(naked) inline HRESULT CVssQIThunk::f##n()\
  1219. {\
  1220. __asm mov eax, [esp+4]\
  1221. __asm cmp dword ptr [eax+8], 0\
  1222. __asm jg goodref\
  1223. __asm call VssBadThunkCall\
  1224. __asm goodref:\
  1225. __asm mov eax, [esp+4]\
  1226. __asm mov eax, dword ptr [eax+4]\
  1227. __asm mov [esp+4], eax\
  1228. __asm mov eax, dword ptr [eax]\
  1229. __asm mov eax, dword ptr [eax+4*n]\
  1230. __asm jmp eax\
  1231. }
  1232. #else
  1233. #define IMPL_THUNK(x)
  1234. inline HRESULT CVssQIThunk::f##n()\
  1235. {\
  1236. return E_NOTIMPL;\
  1237. }
  1238. #endif
  1239. IMPL_THUNK(3)
  1240. IMPL_THUNK(4)
  1241. IMPL_THUNK(5)
  1242. IMPL_THUNK(6)
  1243. IMPL_THUNK(7)
  1244. IMPL_THUNK(8)
  1245. IMPL_THUNK(9)
  1246. IMPL_THUNK(10)
  1247. IMPL_THUNK(11)
  1248. IMPL_THUNK(12)
  1249. IMPL_THUNK(13)
  1250. IMPL_THUNK(14)
  1251. IMPL_THUNK(15)
  1252. IMPL_THUNK(16)
  1253. IMPL_THUNK(17)
  1254. IMPL_THUNK(18)
  1255. IMPL_THUNK(19)
  1256. IMPL_THUNK(20)
  1257. IMPL_THUNK(21)
  1258. IMPL_THUNK(22)
  1259. IMPL_THUNK(23)
  1260. IMPL_THUNK(24)
  1261. IMPL_THUNK(25)
  1262. IMPL_THUNK(26)
  1263. IMPL_THUNK(27)
  1264. IMPL_THUNK(28)
  1265. IMPL_THUNK(29)
  1266. IMPL_THUNK(30)
  1267. IMPL_THUNK(31)
  1268. IMPL_THUNK(32)
  1269. IMPL_THUNK(33)
  1270. IMPL_THUNK(34)
  1271. IMPL_THUNK(35)
  1272. IMPL_THUNK(36)
  1273. IMPL_THUNK(37)
  1274. IMPL_THUNK(38)
  1275. IMPL_THUNK(39)
  1276. IMPL_THUNK(40)
  1277. IMPL_THUNK(41)
  1278. IMPL_THUNK(42)
  1279. IMPL_THUNK(43)
  1280. IMPL_THUNK(44)
  1281. IMPL_THUNK(45)
  1282. IMPL_THUNK(46)
  1283. IMPL_THUNK(47)
  1284. IMPL_THUNK(48)
  1285. IMPL_THUNK(49)
  1286. IMPL_THUNK(50)
  1287. IMPL_THUNK(51)
  1288. IMPL_THUNK(52)
  1289. IMPL_THUNK(53)
  1290. IMPL_THUNK(54)
  1291. IMPL_THUNK(55)
  1292. IMPL_THUNK(56)
  1293. IMPL_THUNK(57)
  1294. IMPL_THUNK(58)
  1295. IMPL_THUNK(59)
  1296. IMPL_THUNK(60)
  1297. IMPL_THUNK(61)
  1298. IMPL_THUNK(62)
  1299. IMPL_THUNK(63)
  1300. IMPL_THUNK(64)
  1301. IMPL_THUNK(65)
  1302. IMPL_THUNK(66)
  1303. IMPL_THUNK(67)
  1304. IMPL_THUNK(68)
  1305. IMPL_THUNK(69)
  1306. IMPL_THUNK(70)
  1307. IMPL_THUNK(71)
  1308. IMPL_THUNK(72)
  1309. IMPL_THUNK(73)
  1310. IMPL_THUNK(74)
  1311. IMPL_THUNK(75)
  1312. IMPL_THUNK(76)
  1313. IMPL_THUNK(77)
  1314. IMPL_THUNK(78)
  1315. IMPL_THUNK(79)
  1316. IMPL_THUNK(80)
  1317. IMPL_THUNK(81)
  1318. IMPL_THUNK(82)
  1319. IMPL_THUNK(83)
  1320. IMPL_THUNK(84)
  1321. IMPL_THUNK(85)
  1322. IMPL_THUNK(86)
  1323. IMPL_THUNK(87)
  1324. IMPL_THUNK(88)
  1325. IMPL_THUNK(89)
  1326. IMPL_THUNK(90)
  1327. IMPL_THUNK(91)
  1328. IMPL_THUNK(92)
  1329. IMPL_THUNK(93)
  1330. IMPL_THUNK(94)
  1331. IMPL_THUNK(95)
  1332. IMPL_THUNK(96)
  1333. IMPL_THUNK(97)
  1334. IMPL_THUNK(98)
  1335. IMPL_THUNK(99)
  1336. IMPL_THUNK(100)
  1337. IMPL_THUNK(101)
  1338. IMPL_THUNK(102)
  1339. IMPL_THUNK(103)
  1340. IMPL_THUNK(104)
  1341. IMPL_THUNK(105)
  1342. IMPL_THUNK(106)
  1343. IMPL_THUNK(107)
  1344. IMPL_THUNK(108)
  1345. IMPL_THUNK(109)
  1346. IMPL_THUNK(110)
  1347. IMPL_THUNK(111)
  1348. IMPL_THUNK(112)
  1349. IMPL_THUNK(113)
  1350. IMPL_THUNK(114)
  1351. IMPL_THUNK(115)
  1352. IMPL_THUNK(116)
  1353. IMPL_THUNK(117)
  1354. IMPL_THUNK(118)
  1355. IMPL_THUNK(119)
  1356. IMPL_THUNK(120)
  1357. IMPL_THUNK(121)
  1358. IMPL_THUNK(122)
  1359. IMPL_THUNK(123)
  1360. IMPL_THUNK(124)
  1361. IMPL_THUNK(125)
  1362. IMPL_THUNK(126)
  1363. IMPL_THUNK(127)
  1364. IMPL_THUNK(128)
  1365. IMPL_THUNK(129)
  1366. IMPL_THUNK(130)
  1367. IMPL_THUNK(131)
  1368. IMPL_THUNK(132)
  1369. IMPL_THUNK(133)
  1370. IMPL_THUNK(134)
  1371. IMPL_THUNK(135)
  1372. IMPL_THUNK(136)
  1373. IMPL_THUNK(137)
  1374. IMPL_THUNK(138)
  1375. IMPL_THUNK(139)
  1376. IMPL_THUNK(140)
  1377. IMPL_THUNK(141)
  1378. IMPL_THUNK(142)
  1379. IMPL_THUNK(143)
  1380. IMPL_THUNK(144)
  1381. IMPL_THUNK(145)
  1382. IMPL_THUNK(146)
  1383. IMPL_THUNK(147)
  1384. IMPL_THUNK(148)
  1385. IMPL_THUNK(149)
  1386. IMPL_THUNK(150)
  1387. IMPL_THUNK(151)
  1388. IMPL_THUNK(152)
  1389. IMPL_THUNK(153)
  1390. IMPL_THUNK(154)
  1391. IMPL_THUNK(155)
  1392. IMPL_THUNK(156)
  1393. IMPL_THUNK(157)
  1394. IMPL_THUNK(158)
  1395. IMPL_THUNK(159)
  1396. IMPL_THUNK(160)
  1397. IMPL_THUNK(161)
  1398. IMPL_THUNK(162)
  1399. IMPL_THUNK(163)
  1400. IMPL_THUNK(164)
  1401. IMPL_THUNK(165)
  1402. IMPL_THUNK(166)
  1403. IMPL_THUNK(167)
  1404. IMPL_THUNK(168)
  1405. IMPL_THUNK(169)
  1406. IMPL_THUNK(170)
  1407. IMPL_THUNK(171)
  1408. IMPL_THUNK(172)
  1409. IMPL_THUNK(173)
  1410. IMPL_THUNK(174)
  1411. IMPL_THUNK(175)
  1412. IMPL_THUNK(176)
  1413. IMPL_THUNK(177)
  1414. IMPL_THUNK(178)
  1415. IMPL_THUNK(179)
  1416. IMPL_THUNK(180)
  1417. IMPL_THUNK(181)
  1418. IMPL_THUNK(182)
  1419. IMPL_THUNK(183)
  1420. IMPL_THUNK(184)
  1421. IMPL_THUNK(185)
  1422. IMPL_THUNK(186)
  1423. IMPL_THUNK(187)
  1424. IMPL_THUNK(188)
  1425. IMPL_THUNK(189)
  1426. IMPL_THUNK(190)
  1427. IMPL_THUNK(191)
  1428. IMPL_THUNK(192)
  1429. IMPL_THUNK(193)
  1430. IMPL_THUNK(194)
  1431. IMPL_THUNK(195)
  1432. IMPL_THUNK(196)
  1433. IMPL_THUNK(197)
  1434. IMPL_THUNK(198)
  1435. IMPL_THUNK(199)
  1436. IMPL_THUNK(200)
  1437. IMPL_THUNK(201)
  1438. IMPL_THUNK(202)
  1439. IMPL_THUNK(203)
  1440. IMPL_THUNK(204)
  1441. IMPL_THUNK(205)
  1442. IMPL_THUNK(206)
  1443. IMPL_THUNK(207)
  1444. IMPL_THUNK(208)
  1445. IMPL_THUNK(209)
  1446. IMPL_THUNK(210)
  1447. IMPL_THUNK(211)
  1448. IMPL_THUNK(212)
  1449. IMPL_THUNK(213)
  1450. IMPL_THUNK(214)
  1451. IMPL_THUNK(215)
  1452. IMPL_THUNK(216)
  1453. IMPL_THUNK(217)
  1454. IMPL_THUNK(218)
  1455. IMPL_THUNK(219)
  1456. IMPL_THUNK(220)
  1457. IMPL_THUNK(221)
  1458. IMPL_THUNK(222)
  1459. IMPL_THUNK(223)
  1460. IMPL_THUNK(224)
  1461. IMPL_THUNK(225)
  1462. IMPL_THUNK(226)
  1463. IMPL_THUNK(227)
  1464. IMPL_THUNK(228)
  1465. IMPL_THUNK(229)
  1466. IMPL_THUNK(230)
  1467. IMPL_THUNK(231)
  1468. IMPL_THUNK(232)
  1469. IMPL_THUNK(233)
  1470. IMPL_THUNK(234)
  1471. IMPL_THUNK(235)
  1472. IMPL_THUNK(236)
  1473. IMPL_THUNK(237)
  1474. IMPL_THUNK(238)
  1475. IMPL_THUNK(239)
  1476. IMPL_THUNK(240)
  1477. IMPL_THUNK(241)
  1478. IMPL_THUNK(242)
  1479. IMPL_THUNK(243)
  1480. IMPL_THUNK(244)
  1481. IMPL_THUNK(245)
  1482. IMPL_THUNK(246)
  1483. IMPL_THUNK(247)
  1484. IMPL_THUNK(248)
  1485. IMPL_THUNK(249)
  1486. IMPL_THUNK(250)
  1487. IMPL_THUNK(251)
  1488. IMPL_THUNK(252)
  1489. IMPL_THUNK(253)
  1490. IMPL_THUNK(254)
  1491. IMPL_THUNK(255)
  1492. IMPL_THUNK(256)
  1493. IMPL_THUNK(257)
  1494. IMPL_THUNK(258)
  1495. IMPL_THUNK(259)
  1496. IMPL_THUNK(260)
  1497. IMPL_THUNK(261)
  1498. IMPL_THUNK(262)
  1499. IMPL_THUNK(263)
  1500. IMPL_THUNK(264)
  1501. IMPL_THUNK(265)
  1502. IMPL_THUNK(266)
  1503. IMPL_THUNK(267)
  1504. IMPL_THUNK(268)
  1505. IMPL_THUNK(269)
  1506. IMPL_THUNK(270)
  1507. IMPL_THUNK(271)
  1508. IMPL_THUNK(272)
  1509. IMPL_THUNK(273)
  1510. IMPL_THUNK(274)
  1511. IMPL_THUNK(275)
  1512. IMPL_THUNK(276)
  1513. IMPL_THUNK(277)
  1514. IMPL_THUNK(278)
  1515. IMPL_THUNK(279)
  1516. IMPL_THUNK(280)
  1517. IMPL_THUNK(281)
  1518. IMPL_THUNK(282)
  1519. IMPL_THUNK(283)
  1520. IMPL_THUNK(284)
  1521. IMPL_THUNK(285)
  1522. IMPL_THUNK(286)
  1523. IMPL_THUNK(287)
  1524. IMPL_THUNK(288)
  1525. IMPL_THUNK(289)
  1526. IMPL_THUNK(290)
  1527. IMPL_THUNK(291)
  1528. IMPL_THUNK(292)
  1529. IMPL_THUNK(293)
  1530. IMPL_THUNK(294)
  1531. IMPL_THUNK(295)
  1532. IMPL_THUNK(296)
  1533. IMPL_THUNK(297)
  1534. IMPL_THUNK(298)
  1535. IMPL_THUNK(299)
  1536. IMPL_THUNK(300)
  1537. IMPL_THUNK(301)
  1538. IMPL_THUNK(302)
  1539. IMPL_THUNK(303)
  1540. IMPL_THUNK(304)
  1541. IMPL_THUNK(305)
  1542. IMPL_THUNK(306)
  1543. IMPL_THUNK(307)
  1544. IMPL_THUNK(308)
  1545. IMPL_THUNK(309)
  1546. IMPL_THUNK(310)
  1547. IMPL_THUNK(311)
  1548. IMPL_THUNK(312)
  1549. IMPL_THUNK(313)
  1550. IMPL_THUNK(314)
  1551. IMPL_THUNK(315)
  1552. IMPL_THUNK(316)
  1553. IMPL_THUNK(317)
  1554. IMPL_THUNK(318)
  1555. IMPL_THUNK(319)
  1556. IMPL_THUNK(320)
  1557. IMPL_THUNK(321)
  1558. IMPL_THUNK(322)
  1559. IMPL_THUNK(323)
  1560. IMPL_THUNK(324)
  1561. IMPL_THUNK(325)
  1562. IMPL_THUNK(326)
  1563. IMPL_THUNK(327)
  1564. IMPL_THUNK(328)
  1565. IMPL_THUNK(329)
  1566. IMPL_THUNK(330)
  1567. IMPL_THUNK(331)
  1568. IMPL_THUNK(332)
  1569. IMPL_THUNK(333)
  1570. IMPL_THUNK(334)
  1571. IMPL_THUNK(335)
  1572. IMPL_THUNK(336)
  1573. IMPL_THUNK(337)
  1574. IMPL_THUNK(338)
  1575. IMPL_THUNK(339)
  1576. IMPL_THUNK(340)
  1577. IMPL_THUNK(341)
  1578. IMPL_THUNK(342)
  1579. IMPL_THUNK(343)
  1580. IMPL_THUNK(344)
  1581. IMPL_THUNK(345)
  1582. IMPL_THUNK(346)
  1583. IMPL_THUNK(347)
  1584. IMPL_THUNK(348)
  1585. IMPL_THUNK(349)
  1586. IMPL_THUNK(350)
  1587. IMPL_THUNK(351)
  1588. IMPL_THUNK(352)
  1589. IMPL_THUNK(353)
  1590. IMPL_THUNK(354)
  1591. IMPL_THUNK(355)
  1592. IMPL_THUNK(356)
  1593. IMPL_THUNK(357)
  1594. IMPL_THUNK(358)
  1595. IMPL_THUNK(359)
  1596. IMPL_THUNK(360)
  1597. IMPL_THUNK(361)
  1598. IMPL_THUNK(362)
  1599. IMPL_THUNK(363)
  1600. IMPL_THUNK(364)
  1601. IMPL_THUNK(365)
  1602. IMPL_THUNK(366)
  1603. IMPL_THUNK(367)
  1604. IMPL_THUNK(368)
  1605. IMPL_THUNK(369)
  1606. IMPL_THUNK(370)
  1607. IMPL_THUNK(371)
  1608. IMPL_THUNK(372)
  1609. IMPL_THUNK(373)
  1610. IMPL_THUNK(374)
  1611. IMPL_THUNK(375)
  1612. IMPL_THUNK(376)
  1613. IMPL_THUNK(377)
  1614. IMPL_THUNK(378)
  1615. IMPL_THUNK(379)
  1616. IMPL_THUNK(380)
  1617. IMPL_THUNK(381)
  1618. IMPL_THUNK(382)
  1619. IMPL_THUNK(383)
  1620. IMPL_THUNK(384)
  1621. IMPL_THUNK(385)
  1622. IMPL_THUNK(386)
  1623. IMPL_THUNK(387)
  1624. IMPL_THUNK(388)
  1625. IMPL_THUNK(389)
  1626. IMPL_THUNK(390)
  1627. IMPL_THUNK(391)
  1628. IMPL_THUNK(392)
  1629. IMPL_THUNK(393)
  1630. IMPL_THUNK(394)
  1631. IMPL_THUNK(395)
  1632. IMPL_THUNK(396)
  1633. IMPL_THUNK(397)
  1634. IMPL_THUNK(398)
  1635. IMPL_THUNK(399)
  1636. IMPL_THUNK(400)
  1637. IMPL_THUNK(401)
  1638. IMPL_THUNK(402)
  1639. IMPL_THUNK(403)
  1640. IMPL_THUNK(404)
  1641. IMPL_THUNK(405)
  1642. IMPL_THUNK(406)
  1643. IMPL_THUNK(407)
  1644. IMPL_THUNK(408)
  1645. IMPL_THUNK(409)
  1646. IMPL_THUNK(410)
  1647. IMPL_THUNK(411)
  1648. IMPL_THUNK(412)
  1649. IMPL_THUNK(413)
  1650. IMPL_THUNK(414)
  1651. IMPL_THUNK(415)
  1652. IMPL_THUNK(416)
  1653. IMPL_THUNK(417)
  1654. IMPL_THUNK(418)
  1655. IMPL_THUNK(419)
  1656. IMPL_THUNK(420)
  1657. IMPL_THUNK(421)
  1658. IMPL_THUNK(422)
  1659. IMPL_THUNK(423)
  1660. IMPL_THUNK(424)
  1661. IMPL_THUNK(425)
  1662. IMPL_THUNK(426)
  1663. IMPL_THUNK(427)
  1664. IMPL_THUNK(428)
  1665. IMPL_THUNK(429)
  1666. IMPL_THUNK(430)
  1667. IMPL_THUNK(431)
  1668. IMPL_THUNK(432)
  1669. IMPL_THUNK(433)
  1670. IMPL_THUNK(434)
  1671. IMPL_THUNK(435)
  1672. IMPL_THUNK(436)
  1673. IMPL_THUNK(437)
  1674. IMPL_THUNK(438)
  1675. IMPL_THUNK(439)
  1676. IMPL_THUNK(440)
  1677. IMPL_THUNK(441)
  1678. IMPL_THUNK(442)
  1679. IMPL_THUNK(443)
  1680. IMPL_THUNK(444)
  1681. IMPL_THUNK(445)
  1682. IMPL_THUNK(446)
  1683. IMPL_THUNK(447)
  1684. IMPL_THUNK(448)
  1685. IMPL_THUNK(449)
  1686. IMPL_THUNK(450)
  1687. IMPL_THUNK(451)
  1688. IMPL_THUNK(452)
  1689. IMPL_THUNK(453)
  1690. IMPL_THUNK(454)
  1691. IMPL_THUNK(455)
  1692. IMPL_THUNK(456)
  1693. IMPL_THUNK(457)
  1694. IMPL_THUNK(458)
  1695. IMPL_THUNK(459)
  1696. IMPL_THUNK(460)
  1697. IMPL_THUNK(461)
  1698. IMPL_THUNK(462)
  1699. IMPL_THUNK(463)
  1700. IMPL_THUNK(464)
  1701. IMPL_THUNK(465)
  1702. IMPL_THUNK(466)
  1703. IMPL_THUNK(467)
  1704. IMPL_THUNK(468)
  1705. IMPL_THUNK(469)
  1706. IMPL_THUNK(470)
  1707. IMPL_THUNK(471)
  1708. IMPL_THUNK(472)
  1709. IMPL_THUNK(473)
  1710. IMPL_THUNK(474)
  1711. IMPL_THUNK(475)
  1712. IMPL_THUNK(476)
  1713. IMPL_THUNK(477)
  1714. IMPL_THUNK(478)
  1715. IMPL_THUNK(479)
  1716. IMPL_THUNK(480)
  1717. IMPL_THUNK(481)
  1718. IMPL_THUNK(482)
  1719. IMPL_THUNK(483)
  1720. IMPL_THUNK(484)
  1721. IMPL_THUNK(485)
  1722. IMPL_THUNK(486)
  1723. IMPL_THUNK(487)
  1724. IMPL_THUNK(488)
  1725. IMPL_THUNK(489)
  1726. IMPL_THUNK(490)
  1727. IMPL_THUNK(491)
  1728. IMPL_THUNK(492)
  1729. IMPL_THUNK(493)
  1730. IMPL_THUNK(494)
  1731. IMPL_THUNK(495)
  1732. IMPL_THUNK(496)
  1733. IMPL_THUNK(497)
  1734. IMPL_THUNK(498)
  1735. IMPL_THUNK(499)
  1736. IMPL_THUNK(500)
  1737. IMPL_THUNK(501)
  1738. IMPL_THUNK(502)
  1739. IMPL_THUNK(503)
  1740. IMPL_THUNK(504)
  1741. IMPL_THUNK(505)
  1742. IMPL_THUNK(506)
  1743. IMPL_THUNK(507)
  1744. IMPL_THUNK(508)
  1745. IMPL_THUNK(509)
  1746. IMPL_THUNK(510)
  1747. IMPL_THUNK(511)
  1748. IMPL_THUNK(512)
  1749. IMPL_THUNK(513)
  1750. IMPL_THUNK(514)
  1751. IMPL_THUNK(515)
  1752. IMPL_THUNK(516)
  1753. IMPL_THUNK(517)
  1754. IMPL_THUNK(518)
  1755. IMPL_THUNK(519)
  1756. IMPL_THUNK(520)
  1757. IMPL_THUNK(521)
  1758. IMPL_THUNK(522)
  1759. IMPL_THUNK(523)
  1760. IMPL_THUNK(524)
  1761. IMPL_THUNK(525)
  1762. IMPL_THUNK(526)
  1763. IMPL_THUNK(527)
  1764. IMPL_THUNK(528)
  1765. IMPL_THUNK(529)
  1766. IMPL_THUNK(530)
  1767. IMPL_THUNK(531)
  1768. IMPL_THUNK(532)
  1769. IMPL_THUNK(533)
  1770. IMPL_THUNK(534)
  1771. IMPL_THUNK(535)
  1772. IMPL_THUNK(536)
  1773. IMPL_THUNK(537)
  1774. IMPL_THUNK(538)
  1775. IMPL_THUNK(539)
  1776. IMPL_THUNK(540)
  1777. IMPL_THUNK(541)
  1778. IMPL_THUNK(542)
  1779. IMPL_THUNK(543)
  1780. IMPL_THUNK(544)
  1781. IMPL_THUNK(545)
  1782. IMPL_THUNK(546)
  1783. IMPL_THUNK(547)
  1784. IMPL_THUNK(548)
  1785. IMPL_THUNK(549)
  1786. IMPL_THUNK(550)
  1787. IMPL_THUNK(551)
  1788. IMPL_THUNK(552)
  1789. IMPL_THUNK(553)
  1790. IMPL_THUNK(554)
  1791. IMPL_THUNK(555)
  1792. IMPL_THUNK(556)
  1793. IMPL_THUNK(557)
  1794. IMPL_THUNK(558)
  1795. IMPL_THUNK(559)
  1796. IMPL_THUNK(560)
  1797. IMPL_THUNK(561)
  1798. IMPL_THUNK(562)
  1799. IMPL_THUNK(563)
  1800. IMPL_THUNK(564)
  1801. IMPL_THUNK(565)
  1802. IMPL_THUNK(566)
  1803. IMPL_THUNK(567)
  1804. IMPL_THUNK(568)
  1805. IMPL_THUNK(569)
  1806. IMPL_THUNK(570)
  1807. IMPL_THUNK(571)
  1808. IMPL_THUNK(572)
  1809. IMPL_THUNK(573)
  1810. IMPL_THUNK(574)
  1811. IMPL_THUNK(575)
  1812. IMPL_THUNK(576)
  1813. IMPL_THUNK(577)
  1814. IMPL_THUNK(578)
  1815. IMPL_THUNK(579)
  1816. IMPL_THUNK(580)
  1817. IMPL_THUNK(581)
  1818. IMPL_THUNK(582)
  1819. IMPL_THUNK(583)
  1820. IMPL_THUNK(584)
  1821. IMPL_THUNK(585)
  1822. IMPL_THUNK(586)
  1823. IMPL_THUNK(587)
  1824. IMPL_THUNK(588)
  1825. IMPL_THUNK(589)
  1826. IMPL_THUNK(590)
  1827. IMPL_THUNK(591)
  1828. IMPL_THUNK(592)
  1829. IMPL_THUNK(593)
  1830. IMPL_THUNK(594)
  1831. IMPL_THUNK(595)
  1832. IMPL_THUNK(596)
  1833. IMPL_THUNK(597)
  1834. IMPL_THUNK(598)
  1835. IMPL_THUNK(599)
  1836. IMPL_THUNK(600)
  1837. IMPL_THUNK(601)
  1838. IMPL_THUNK(602)
  1839. IMPL_THUNK(603)
  1840. IMPL_THUNK(604)
  1841. IMPL_THUNK(605)
  1842. IMPL_THUNK(606)
  1843. IMPL_THUNK(607)
  1844. IMPL_THUNK(608)
  1845. IMPL_THUNK(609)
  1846. IMPL_THUNK(610)
  1847. IMPL_THUNK(611)
  1848. IMPL_THUNK(612)
  1849. IMPL_THUNK(613)
  1850. IMPL_THUNK(614)
  1851. IMPL_THUNK(615)
  1852. IMPL_THUNK(616)
  1853. IMPL_THUNK(617)
  1854. IMPL_THUNK(618)
  1855. IMPL_THUNK(619)
  1856. IMPL_THUNK(620)
  1857. IMPL_THUNK(621)
  1858. IMPL_THUNK(622)
  1859. IMPL_THUNK(623)
  1860. IMPL_THUNK(624)
  1861. IMPL_THUNK(625)
  1862. IMPL_THUNK(626)
  1863. IMPL_THUNK(627)
  1864. IMPL_THUNK(628)
  1865. IMPL_THUNK(629)
  1866. IMPL_THUNK(630)
  1867. IMPL_THUNK(631)
  1868. IMPL_THUNK(632)
  1869. IMPL_THUNK(633)
  1870. IMPL_THUNK(634)
  1871. IMPL_THUNK(635)
  1872. IMPL_THUNK(636)
  1873. IMPL_THUNK(637)
  1874. IMPL_THUNK(638)
  1875. IMPL_THUNK(639)
  1876. IMPL_THUNK(640)
  1877. IMPL_THUNK(641)
  1878. IMPL_THUNK(642)
  1879. IMPL_THUNK(643)
  1880. IMPL_THUNK(644)
  1881. IMPL_THUNK(645)
  1882. IMPL_THUNK(646)
  1883. IMPL_THUNK(647)
  1884. IMPL_THUNK(648)
  1885. IMPL_THUNK(649)
  1886. IMPL_THUNK(650)
  1887. IMPL_THUNK(651)
  1888. IMPL_THUNK(652)
  1889. IMPL_THUNK(653)
  1890. IMPL_THUNK(654)
  1891. IMPL_THUNK(655)
  1892. IMPL_THUNK(656)
  1893. IMPL_THUNK(657)
  1894. IMPL_THUNK(658)
  1895. IMPL_THUNK(659)
  1896. IMPL_THUNK(660)
  1897. IMPL_THUNK(661)
  1898. IMPL_THUNK(662)
  1899. IMPL_THUNK(663)
  1900. IMPL_THUNK(664)
  1901. IMPL_THUNK(665)
  1902. IMPL_THUNK(666)
  1903. IMPL_THUNK(667)
  1904. IMPL_THUNK(668)
  1905. IMPL_THUNK(669)
  1906. IMPL_THUNK(670)
  1907. IMPL_THUNK(671)
  1908. IMPL_THUNK(672)
  1909. IMPL_THUNK(673)
  1910. IMPL_THUNK(674)
  1911. IMPL_THUNK(675)
  1912. IMPL_THUNK(676)
  1913. IMPL_THUNK(677)
  1914. IMPL_THUNK(678)
  1915. IMPL_THUNK(679)
  1916. IMPL_THUNK(680)
  1917. IMPL_THUNK(681)
  1918. IMPL_THUNK(682)
  1919. IMPL_THUNK(683)
  1920. IMPL_THUNK(684)
  1921. IMPL_THUNK(685)
  1922. IMPL_THUNK(686)
  1923. IMPL_THUNK(687)
  1924. IMPL_THUNK(688)
  1925. IMPL_THUNK(689)
  1926. IMPL_THUNK(690)
  1927. IMPL_THUNK(691)
  1928. IMPL_THUNK(692)
  1929. IMPL_THUNK(693)
  1930. IMPL_THUNK(694)
  1931. IMPL_THUNK(695)
  1932. IMPL_THUNK(696)
  1933. IMPL_THUNK(697)
  1934. IMPL_THUNK(698)
  1935. IMPL_THUNK(699)
  1936. IMPL_THUNK(700)
  1937. IMPL_THUNK(701)
  1938. IMPL_THUNK(702)
  1939. IMPL_THUNK(703)
  1940. IMPL_THUNK(704)
  1941. IMPL_THUNK(705)
  1942. IMPL_THUNK(706)
  1943. IMPL_THUNK(707)
  1944. IMPL_THUNK(708)
  1945. IMPL_THUNK(709)
  1946. IMPL_THUNK(710)
  1947. IMPL_THUNK(711)
  1948. IMPL_THUNK(712)
  1949. IMPL_THUNK(713)
  1950. IMPL_THUNK(714)
  1951. IMPL_THUNK(715)
  1952. IMPL_THUNK(716)
  1953. IMPL_THUNK(717)
  1954. IMPL_THUNK(718)
  1955. IMPL_THUNK(719)
  1956. IMPL_THUNK(720)
  1957. IMPL_THUNK(721)
  1958. IMPL_THUNK(722)
  1959. IMPL_THUNK(723)
  1960. IMPL_THUNK(724)
  1961. IMPL_THUNK(725)
  1962. IMPL_THUNK(726)
  1963. IMPL_THUNK(727)
  1964. IMPL_THUNK(728)
  1965. IMPL_THUNK(729)
  1966. IMPL_THUNK(730)
  1967. IMPL_THUNK(731)
  1968. IMPL_THUNK(732)
  1969. IMPL_THUNK(733)
  1970. IMPL_THUNK(734)
  1971. IMPL_THUNK(735)
  1972. IMPL_THUNK(736)
  1973. IMPL_THUNK(737)
  1974. IMPL_THUNK(738)
  1975. IMPL_THUNK(739)
  1976. IMPL_THUNK(740)
  1977. IMPL_THUNK(741)
  1978. IMPL_THUNK(742)
  1979. IMPL_THUNK(743)
  1980. IMPL_THUNK(744)
  1981. IMPL_THUNK(745)
  1982. IMPL_THUNK(746)
  1983. IMPL_THUNK(747)
  1984. IMPL_THUNK(748)
  1985. IMPL_THUNK(749)
  1986. IMPL_THUNK(750)
  1987. IMPL_THUNK(751)
  1988. IMPL_THUNK(752)
  1989. IMPL_THUNK(753)
  1990. IMPL_THUNK(754)
  1991. IMPL_THUNK(755)
  1992. IMPL_THUNK(756)
  1993. IMPL_THUNK(757)
  1994. IMPL_THUNK(758)
  1995. IMPL_THUNK(759)
  1996. IMPL_THUNK(760)
  1997. IMPL_THUNK(761)
  1998. IMPL_THUNK(762)
  1999. IMPL_THUNK(763)
  2000. IMPL_THUNK(764)
  2001. IMPL_THUNK(765)
  2002. IMPL_THUNK(766)
  2003. IMPL_THUNK(767)
  2004. IMPL_THUNK(768)
  2005. IMPL_THUNK(769)
  2006. IMPL_THUNK(770)
  2007. IMPL_THUNK(771)
  2008. IMPL_THUNK(772)
  2009. IMPL_THUNK(773)
  2010. IMPL_THUNK(774)
  2011. IMPL_THUNK(775)
  2012. IMPL_THUNK(776)
  2013. IMPL_THUNK(777)
  2014. IMPL_THUNK(778)
  2015. IMPL_THUNK(779)
  2016. IMPL_THUNK(780)
  2017. IMPL_THUNK(781)
  2018. IMPL_THUNK(782)
  2019. IMPL_THUNK(783)
  2020. IMPL_THUNK(784)
  2021. IMPL_THUNK(785)
  2022. IMPL_THUNK(786)
  2023. IMPL_THUNK(787)
  2024. IMPL_THUNK(788)
  2025. IMPL_THUNK(789)
  2026. IMPL_THUNK(790)
  2027. IMPL_THUNK(791)
  2028. IMPL_THUNK(792)
  2029. IMPL_THUNK(793)
  2030. IMPL_THUNK(794)
  2031. IMPL_THUNK(795)
  2032. IMPL_THUNK(796)
  2033. IMPL_THUNK(797)
  2034. IMPL_THUNK(798)
  2035. IMPL_THUNK(799)
  2036. IMPL_THUNK(800)
  2037. IMPL_THUNK(801)
  2038. IMPL_THUNK(802)
  2039. IMPL_THUNK(803)
  2040. IMPL_THUNK(804)
  2041. IMPL_THUNK(805)
  2042. IMPL_THUNK(806)
  2043. IMPL_THUNK(807)
  2044. IMPL_THUNK(808)
  2045. IMPL_THUNK(809)
  2046. IMPL_THUNK(810)
  2047. IMPL_THUNK(811)
  2048. IMPL_THUNK(812)
  2049. IMPL_THUNK(813)
  2050. IMPL_THUNK(814)
  2051. IMPL_THUNK(815)
  2052. IMPL_THUNK(816)
  2053. IMPL_THUNK(817)
  2054. IMPL_THUNK(818)
  2055. IMPL_THUNK(819)
  2056. IMPL_THUNK(820)
  2057. IMPL_THUNK(821)
  2058. IMPL_THUNK(822)
  2059. IMPL_THUNK(823)
  2060. IMPL_THUNK(824)
  2061. IMPL_THUNK(825)
  2062. IMPL_THUNK(826)
  2063. IMPL_THUNK(827)
  2064. IMPL_THUNK(828)
  2065. IMPL_THUNK(829)
  2066. IMPL_THUNK(830)
  2067. IMPL_THUNK(831)
  2068. IMPL_THUNK(832)
  2069. IMPL_THUNK(833)
  2070. IMPL_THUNK(834)
  2071. IMPL_THUNK(835)
  2072. IMPL_THUNK(836)
  2073. IMPL_THUNK(837)
  2074. IMPL_THUNK(838)
  2075. IMPL_THUNK(839)
  2076. IMPL_THUNK(840)
  2077. IMPL_THUNK(841)
  2078. IMPL_THUNK(842)
  2079. IMPL_THUNK(843)
  2080. IMPL_THUNK(844)
  2081. IMPL_THUNK(845)
  2082. IMPL_THUNK(846)
  2083. IMPL_THUNK(847)
  2084. IMPL_THUNK(848)
  2085. IMPL_THUNK(849)
  2086. IMPL_THUNK(850)
  2087. IMPL_THUNK(851)
  2088. IMPL_THUNK(852)
  2089. IMPL_THUNK(853)
  2090. IMPL_THUNK(854)
  2091. IMPL_THUNK(855)
  2092. IMPL_THUNK(856)
  2093. IMPL_THUNK(857)
  2094. IMPL_THUNK(858)
  2095. IMPL_THUNK(859)
  2096. IMPL_THUNK(860)
  2097. IMPL_THUNK(861)
  2098. IMPL_THUNK(862)
  2099. IMPL_THUNK(863)
  2100. IMPL_THUNK(864)
  2101. IMPL_THUNK(865)
  2102. IMPL_THUNK(866)
  2103. IMPL_THUNK(867)
  2104. IMPL_THUNK(868)
  2105. IMPL_THUNK(869)
  2106. IMPL_THUNK(870)
  2107. IMPL_THUNK(871)
  2108. IMPL_THUNK(872)
  2109. IMPL_THUNK(873)
  2110. IMPL_THUNK(874)
  2111. IMPL_THUNK(875)
  2112. IMPL_THUNK(876)
  2113. IMPL_THUNK(877)
  2114. IMPL_THUNK(878)
  2115. IMPL_THUNK(879)
  2116. IMPL_THUNK(880)
  2117. IMPL_THUNK(881)
  2118. IMPL_THUNK(882)
  2119. IMPL_THUNK(883)
  2120. IMPL_THUNK(884)
  2121. IMPL_THUNK(885)
  2122. IMPL_THUNK(886)
  2123. IMPL_THUNK(887)
  2124. IMPL_THUNK(888)
  2125. IMPL_THUNK(889)
  2126. IMPL_THUNK(890)
  2127. IMPL_THUNK(891)
  2128. IMPL_THUNK(892)
  2129. IMPL_THUNK(893)
  2130. IMPL_THUNK(894)
  2131. IMPL_THUNK(895)
  2132. IMPL_THUNK(896)
  2133. IMPL_THUNK(897)
  2134. IMPL_THUNK(898)
  2135. IMPL_THUNK(899)
  2136. IMPL_THUNK(900)
  2137. IMPL_THUNK(901)
  2138. IMPL_THUNK(902)
  2139. IMPL_THUNK(903)
  2140. IMPL_THUNK(904)
  2141. IMPL_THUNK(905)
  2142. IMPL_THUNK(906)
  2143. IMPL_THUNK(907)
  2144. IMPL_THUNK(908)
  2145. IMPL_THUNK(909)
  2146. IMPL_THUNK(910)
  2147. IMPL_THUNK(911)
  2148. IMPL_THUNK(912)
  2149. IMPL_THUNK(913)
  2150. IMPL_THUNK(914)
  2151. IMPL_THUNK(915)
  2152. IMPL_THUNK(916)
  2153. IMPL_THUNK(917)
  2154. IMPL_THUNK(918)
  2155. IMPL_THUNK(919)
  2156. IMPL_THUNK(920)
  2157. IMPL_THUNK(921)
  2158. IMPL_THUNK(922)
  2159. IMPL_THUNK(923)
  2160. IMPL_THUNK(924)
  2161. IMPL_THUNK(925)
  2162. IMPL_THUNK(926)
  2163. IMPL_THUNK(927)
  2164. IMPL_THUNK(928)
  2165. IMPL_THUNK(929)
  2166. IMPL_THUNK(930)
  2167. IMPL_THUNK(931)
  2168. IMPL_THUNK(932)
  2169. IMPL_THUNK(933)
  2170. IMPL_THUNK(934)
  2171. IMPL_THUNK(935)
  2172. IMPL_THUNK(936)
  2173. IMPL_THUNK(937)
  2174. IMPL_THUNK(938)
  2175. IMPL_THUNK(939)
  2176. IMPL_THUNK(940)
  2177. IMPL_THUNK(941)
  2178. IMPL_THUNK(942)
  2179. IMPL_THUNK(943)
  2180. IMPL_THUNK(944)
  2181. IMPL_THUNK(945)
  2182. IMPL_THUNK(946)
  2183. IMPL_THUNK(947)
  2184. IMPL_THUNK(948)
  2185. IMPL_THUNK(949)
  2186. IMPL_THUNK(950)
  2187. IMPL_THUNK(951)
  2188. IMPL_THUNK(952)
  2189. IMPL_THUNK(953)
  2190. IMPL_THUNK(954)
  2191. IMPL_THUNK(955)
  2192. IMPL_THUNK(956)
  2193. IMPL_THUNK(957)
  2194. IMPL_THUNK(958)
  2195. IMPL_THUNK(959)
  2196. IMPL_THUNK(960)
  2197. IMPL_THUNK(961)
  2198. IMPL_THUNK(962)
  2199. IMPL_THUNK(963)
  2200. IMPL_THUNK(964)
  2201. IMPL_THUNK(965)
  2202. IMPL_THUNK(966)
  2203. IMPL_THUNK(967)
  2204. IMPL_THUNK(968)
  2205. IMPL_THUNK(969)
  2206. IMPL_THUNK(970)
  2207. IMPL_THUNK(971)
  2208. IMPL_THUNK(972)
  2209. IMPL_THUNK(973)
  2210. IMPL_THUNK(974)
  2211. IMPL_THUNK(975)
  2212. IMPL_THUNK(976)
  2213. IMPL_THUNK(977)
  2214. IMPL_THUNK(978)
  2215. IMPL_THUNK(979)
  2216. IMPL_THUNK(980)
  2217. IMPL_THUNK(981)
  2218. IMPL_THUNK(982)
  2219. IMPL_THUNK(983)
  2220. IMPL_THUNK(984)
  2221. IMPL_THUNK(985)
  2222. IMPL_THUNK(986)
  2223. IMPL_THUNK(987)
  2224. IMPL_THUNK(988)
  2225. IMPL_THUNK(989)
  2226. IMPL_THUNK(990)
  2227. IMPL_THUNK(991)
  2228. IMPL_THUNK(992)
  2229. IMPL_THUNK(993)
  2230. IMPL_THUNK(994)
  2231. IMPL_THUNK(995)
  2232. IMPL_THUNK(996)
  2233. IMPL_THUNK(997)
  2234. IMPL_THUNK(998)
  2235. IMPL_THUNK(999)
  2236. IMPL_THUNK(1000)
  2237. IMPL_THUNK(1001)
  2238. IMPL_THUNK(1002)
  2239. IMPL_THUNK(1003)
  2240. IMPL_THUNK(1004)
  2241. IMPL_THUNK(1005)
  2242. IMPL_THUNK(1006)
  2243. IMPL_THUNK(1007)
  2244. IMPL_THUNK(1008)
  2245. IMPL_THUNK(1009)
  2246. IMPL_THUNK(1010)
  2247. IMPL_THUNK(1011)
  2248. IMPL_THUNK(1012)
  2249. IMPL_THUNK(1013)
  2250. IMPL_THUNK(1014)
  2251. IMPL_THUNK(1015)
  2252. IMPL_THUNK(1016)
  2253. IMPL_THUNK(1017)
  2254. IMPL_THUNK(1018)
  2255. IMPL_THUNK(1019)
  2256. IMPL_THUNK(1020)
  2257. IMPL_THUNK(1021)
  2258. IMPL_THUNK(1022)
  2259. IMPL_THUNK(1023)
  2260. IMPL_THUNK(1024)