Skip to content

Instantly share code, notes, and snippets.

/clrTrigger.sql Secret

Created March 16, 2016 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/655301dd98489ee41e1b to your computer and use it in GitHub Desktop.
Save anonymous/655301dd98489ee41e1b to your computer and use it in GitHub Desktop.
USE master
GO
/* Reset
IF EXISTS ( SELECT * FROM sys.databases WHERE name = 'clrTriggerTest' )
BEGIN
ALTER DATABASE clrTriggerTest SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE clrTriggerTest
END
*/
IF NOT EXISTS ( SELECT * FROM sys.databases WHERE name = 'clrTriggerTest' )
CREATE DATABASE clrTriggerTest
GO
ALTER DATABASE clrTriggerTest SET RECOVERY SIMPLE
GO
-- Enable CLR
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'clr enabled', 1
RECONFIGURE
GO
USE clrTriggerTest
GO
CREATE TABLE [dbo].[Person](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](40) NULL,
padding VARCHAR(MAX) DEFAULT REPLICATE( '$', 1000 ),
CONSTRAINT [PK_Person_Id] PRIMARY KEY CLUSTERED ( [Id] ASC )
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
-- Scale ye; make that scan hurt
;WITH cte AS (
SELECT TOP 1000000 ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 ) ) rn
FROM master.sys.columns c1
CROSS JOIN master.sys.columns c2
CROSS JOIN master.sys.columns c3
)
INSERT INTO dbo.Person ( Name )
SELECT LEFT( NEWID(), 5 )
FROM cte
GO
INSERT INTO dbo.Person ( Name ) VALUES( 'John Doe' );
SELECT SCOPE_IDENTITY() Id
GO
/* Assembly contains this code; basically intercept the update and add a 'z' to the end of the updated name.
Excuse the VB; feel free to convert to c#.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Partial Public Class Triggers
<Microsoft.SqlServer.Server.SqlTrigger(Name:="SqlTrigger1", Target:="dbo.Person", Event:="INSTEAD OF UPDATE")> _
Public Shared Sub SqlTrigger1()
SqlContext.Pipe.Send("Trigger FIRED")
'Do some actual work against the table; need to make sure trigger does not fire again.
Try
Using conn As New SqlConnection("context connection=true")
conn.Open()
Dim sqlComm As New SqlCommand
Dim sqlP As SqlPipe = SqlContext.Pipe()
sqlComm.Connection = conn
sqlComm.CommandText = "UPDATE p SET p.Name = i.name + 'z' FROM dbo.Person p INNER JOIN inserted i ON p.Id = i.Id"
sqlComm.ExecuteNonQuery()
End Using
Catch ex As Exception
End Try
End Sub
End Class
*/
-- Add the assembly using hex (just for purposes of demo; normally use SSDT)
CREATE ASSEMBLY [clrTriggerTest]
FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C0104008C55E9560000000000000000E00002210B010B000014000000080000000000003E33000000200000004000000000001000200000000200000400000000000000060000000000000000A000000004000000000000020060850000100000100000000010000010000000000000100000000000000000000000E83200005300000000600000C002000000000000000000000000000000000000008000000C000000004000001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E7465787400000044130000002000000014000000040000000000000000000000000000200000602E7364617461000038010000004000000002000000180000000000000000000000000000400000C02E72737263000000C00200000060000000040000001A0000000000000000000000000000400000402E72656C6F6300000C0000000080000000020000001E000000000000000000000000000040000042000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020330000000000004800000002000500C02200002810000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002602280100000A00002A00002A0002280500000A00002A00AA730700000A8001000004730800000A8002000004730900000A8003000004730A00000A8004000004002A00133001001000000001000011007E010000046F0B00000A0A2B00062A133001001000000002000011007E020000046F0C00000A0A2B00062A133001001000000003000011007E030000046F0D00000A0A2B00062A133001001000000004000011007E040000046F0E00000A0A2B00062A133002001200000005000011000203281200000A281300000A0A2B00062A0000133001000C000000060000110002281400000A0A2B00062A13300100100000000700001100D005000002281500000A0A2B00062A133001000C000000080000110002281600000A0A2B00062A133001001B0000000900001100028C0100001B2D0A280100002B0A2B082B0500020A2B0100062A0013300200120000000A00001100031200FE150200001B06810200001B002A00002A0002281800000A00002A00133002002F0000000B00001100027B1A00000A6F1B00000A0B078C0300001B2D13280200002B0B027B1A00000A076F1C00000A0000070A2B00062A00560002281800000A0002731D00000A7D1A00000A002A00002602281800000A00002A00001B300200710000000C00001100281F00000A72010000706F2000000A000000721D000070732100000A0A00066F2200000A00732300000A0B281F00000A0C07066F2400000A0007724D0000706F2500000A00076F2600000A2600DE0C062C07066F2700000A0000DC00DE0F25282800000A0D00282900000ADE0000002A000000011C000002001F003150000C00000000000012004D5F000F1700000142534A4201000100000000000C00000076342E302E33303331390000000005006C000000C0050000237E00002C0600003806000023537472696E677300000000640C00000401000023555300680D0000100000002347554944000000780D0000B002000023426C6F6200000000000000020000015715A209090E000000FA253300160000010000001F000000070000000500000012000000030000002D0000002B0000000C000000020000000500000005000000090000000100000004000000020000000300000002000000000023060100000000000A00C9009F000A00FD00DF0006000D0106010A0065019F000600E30106010A0065023B020E00AC0296020E00C50296020E00F202DA0206001C0309030600390309030A00780351030A00900313000E00C503A8030600FA03DA0306001804060106003C0406010A00550413000600A30484041200D904C3041200E704C30412000D05F20406001505060112001F05F20406006C0506010A00800551031200AE05F2040600C20509037300D60500000600E505DA0306000506DA0300000000010000000000010001000000000029003700050001000100000000004900370009000100020000011000540037000D0001000300050100005E0000000D0005000800050100006C0000000D0005000F0001000000870090000D0006001100310028012000310051012D00310073013A003100980147002100740290005020000000000618D900130001005C20000000000618D90013000100682000000000111814011700010094200000000013081B011B000100B020000000001308410128000100CC200000000013086A0135000100E8200000000013088801420001000421000000004602CE01630001002421000000004602D701680002003C21000000008300E8016C0002005821000000004602F001710002007021000000001100F901780002009821000000000100170280000300B821000000000618D90013000400C4210000000003082B028B0004000022000000000618D900130004001822000000000618D9001300040024220000000016008A021700040000000100D501000001000E02000001000E020900D90013003900D9009D004900D900AC005100D90013001100D90013005900D90013002400D90013002C00D90013003400D90013003C00D900130024002B028B002C002B028B0034002B028B003C002B028B006100D90013006900D90013007100D9000001790009044B011900CE0163001900D701680029002A0458011900F00171008900460468011900D90013009100D90078014400740290004C0070048B004C007A04F5014C00D90013009900D9000402C1002A050F02B10033050001A100D9000001A10038051300A900D9001300A9003D051402A9004C050001A9005C056800C90078051300D1008C051A02D1009C051700D900D9001300E100D9007102F100D9007702F900D900130020002300CB0029008B002D012E005B017C022E00630185022E006B018E0240003300CB0040001300A30043001300A30043001B00B20049008B00190160002300CB0063001300A30063001B00B20069008B003E0180003300CB0083007B00CB0083001B00B20083008300CB0089008B000501A0003300CB00A3001300A300A300CB008001C0003300CB00C300F3000902C3001300A300E0003300CB0000013300CB0000011300A30020013300CB0020011300A30040013300CB0040011300A30060011300A30060013300CB0080013300CB00A0013300CB00C0013300CB00C0011300A300E0013300CB0000023300CB0000021300A30020022300CB00400253012B02EC00F100F600FB00500154015F01640173017301FB01200204000100060005000000FD004F000000B60154000000650159000000C2015E0000007E02980002000400030002000500050002000600070002000700090002000F000B00750075008800D000D700DE00E500E201E9010480000000000000000000000000000000009000000004000000000000000000000001000A00000000000A00000000000000000000000A0013000000000004000000000000000000000001000601000000000400000000000000000000000100B704000000000500040006000400000010000C000C020000100019000C02000000001B000C022F006E012F00F0010000003C4D6F64756C653E006D73636F726C6962004D6963726F736F66742E56697375616C4261736963004D794170706C69636174696F6E00636C7254726967676572546573742E4D79004D79436F6D7075746572004D7950726F6A656374004D79576562536572766963657300546872656164536166654F626A65637450726F7669646572603100547269676765727300636C725472696767657254657374004D6963726F736F66742E56697375616C42617369632E4170706C69636174696F6E5365727669636573004170706C69636174696F6E42617365002E63746F72004D6963726F736F66742E56697375616C42617369632E4465766963657300436F6D70757465720053797374656D004F626A656374002E6363746F72006765745F436F6D7075746572006D5F436F6D70757465724F626A65637450726F7669646572006765745F4170706C69636174696F6E006D5F4170704F626A65637450726F76696465720055736572006765745F55736572006D5F557365724F626A65637450726F7669646572006765745F5765625365727669636573006D5F4D7957656253657276696365734F626A65637450726F7669646572004170706C69636174696F6E00576562536572766963657300457175616C73006F0047657448617368436F64650054797065004765745479706500546F537472696E67004372656174655F5F496E7374616E63655F5F005400696E7374616E636500446973706F73655F5F496E7374616E63655F5F006765745F476574496E7374616E6365004D6963726F736F66742E56697375616C42617369632E4D7953657276696365732E496E7465726E616C00436F6E7465787456616C75656031006D5F436F6E7465787400476574496E7374616E63650053716C54726967676572310053797374656D2E436F6D706F6E656E744D6F64656C00456469746F7242726F777361626C6541747472696275746500456469746F7242726F777361626C6553746174650053797374656D2E436F6465446F6D2E436F6D70696C65720047656E657261746564436F64654174747269627574650053797374656D2E446961676E6F73746963730044656275676765724E6F6E55736572436F646541747472696275746500446562756767657248696464656E417474726962757465004D6963726F736F66742E56697375616C42617369632E436F6D70696C65725365727669636573005374616E646172644D6F64756C6541747472696275746500486964654D6F64756C654E616D654174747269627574650053797374656D2E436F6D706F6E656E744D6F64656C2E44657369676E0048656C704B6579776F72644174747269627574650053797374656D2E52756E74696D652E436F6D70696C657253657276696365730052756E74696D6548656C70657273004765744F626A65637456616C75650052756E74696D655479706548616E646C65004765745479706546726F6D48616E646C6500416374697661746F7200437265617465496E7374616E6365004D7947726F7570436F6C6C656374696F6E417474726962757465006765745F56616C7565007365745F56616C75650053797374656D2E52756E74696D652E496E7465726F70536572766963657300436F6D56697369626C654174747269627574650053797374656D2E446174610053797374656D2E446174612E53716C436C69656E740053716C436F6E6E656374696F6E0053716C436F6D6D616E64004D6963726F736F66742E53716C5365727665722E5365727665720053716C5069706500457863657074696F6E0053716C436F6E74657874006765745F506970650053656E64004F70656E007365745F436F6E6E656374696F6E007365745F436F6D6D616E645465787400457865637574654E6F6E51756572790049446973706F7361626C6500446973706F73650050726F6A656374446174610053657450726F6A6563744572726F7200436C65617250726F6A6563744572726F720053716C547269676765724174747269627574650044656275676761626C6541747472696275746500446562756767696E674D6F64657300436F6D70696C6174696F6E52656C61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C69747941747472696275746500636C7254726967676572546573742E646C6C000000001B5400720069006700670065007200200046004900520045004400002F63006F006E007400650078007400200063006F006E006E0065006300740069006F006E003D0074007200750065000080B3550050004400410054004500200070002000530045005400200070002E004E0061006D00650020003D00200069002E006E0061006D00650020002B00200027007A0027002000460052004F004D002000640062006F002E0050006500720073006F006E0020007000200049004E004E004500520020004A004F0049004E00200069006E007300650072007400650064002000690020004F004E00200070002E004900640020003D00200069002E0049006400010000CC13637322479042B1D1F63D6D706B4D0008B77A5C561934E08908B03F5F7F11D50A3A0320000103000001040000120C070615121801120C040000120807061512180112080400001211070615121801121104000012140706151218011214040800120C040800120804080012110408001214042001021C0320000804200012150320000E021E00071001011E001E000730010101101E00021300042000130007061512190113000428001300052001011121080100010000000000052002010E0E1801000A4D7954656D706C6174650831312E302E302E30000004010000000615121801120C061512180112080615121801121106151218011214040701120C040701120804070112110407011214042001010E1301000E4D792E576562536572766963657300001301000E4D792E4170706C69636174696F6E00001001000B4D792E436F6D707574657200000C0100074D792E5573657200000400011C1C03070102030701080600011215114104070112150307010E051001001E00040A011E000407011E00072004010E0E0E0E6101003453797374656D2E5765622E53657276696365732E50726F746F636F6C732E536F617048747470436C69656E7450726F746F636F6C124372656174655F5F496E7374616E63655F5F13446973706F73655F5F496E7374616E63655F5F0000000615121801130006151219011300040A0113000520010113000807031300130013000420010102050100000000040000125905200101125105000101125D0A0704125112551259125D4501000300540E044E616D650B53716C5472696767657231540E065461726765740A64626F2E506572736F6E540E054576656E7411494E5354454144204F462055504441544505200101117504200101080801000301000000000801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F7773010000001033000000000000000000002E3300000020000000000000000000000000000000000000000000002033000000000000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008C55E95600000000020000001C0100001C4000001C180000525344538C3CDCC7DB1C294E95F4907F720EE8F401000000643A5C55736572735C64616F636F6E6E6F5C446F63756D656E74735C56697375616C2053747564696F20323031335C70726F6A656374735C636C7254726967676572546573745C636C7254726967676572546573745C6F626A5C44656275675C636C7254726967676572546573742E7064620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058600000640200000000000000000000640234000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000000000000000000000000000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004C4010000010053007400720069006E006700460069006C00650049006E0066006F000000A001000001003000300030003000300034006200300000002C0002000100460069006C0065004400650073006300720069007000740069006F006E000000000020000000300008000100460069006C006500560065007200730069006F006E000000000030002E0030002E0030002E003000000048001300010049006E007400650072006E0061006C004E0061006D006500000063006C007200540072006900670067006500720054006500730074002E0064006C006C00000000002800020001004C006500670061006C0043006F0070007900720069006700680074000000200000005000130001004F0072006900670069006E0061006C00460069006C0065006E0061006D006500000063006C007200540072006900670067006500720054006500730074002E0064006C006C0000000000340008000100500072006F006400750063007400560065007200730069006F006E00000030002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000030002E0030002E0030002E0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000C000000403300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
WITH PERMISSION_SET = SAFE
GO
ALTER ASSEMBLY [clrTriggerTest]
ADD FILE FROM 0x4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453000000000200000200000027000000C80000000000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38000000F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BCA3101380000000010000000100000000000001400FFFF04000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA3101380000000010000000100000000000001500FFFF0400000003800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942E31018C55E956010000008C3CDCC7DB1C294E95F4907F720EE8F4000000000000000001000000010000000000000000000000000000004191320100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF040000000380000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF040000000380000000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B8D0123A6CC2D011B44200A0244A1DD2C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A7991000000000000000EC52FAA32691E745566122B37FB4CE0C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B8D0123A6CC2D011B44200A0244A1DD2C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A7991000000000000000565A83BD52FF1C8A81F6C840FEA5F5CF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B8D0123A6CC2D011B44200A0244A1DD2C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BD60A66E40CF64824CB6F042D48172A7991000000000000000330BEEE2709BB8D690CD80E6E2F8900C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009A010000000000009A010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FEEFFEEF010000009D01000000433A5C55736572735C64616F636F6E6E6F5C417070446174615C4C6F63616C5C54656D705C2E4E45544672616D65776F726B2C56657273696F6E3D76342E352E53716C436C72417474726962757465732E76620000633A5C75736572735C64616F636F6E6E6F5C617070646174615C6C6F63616C5C74656D705C2E6E65746672616D65776F726B2C76657273696F6E3D76342E352E73716C636C72617474726962757465732E76620031376431346635632D613333372D343937382D383238312D353334393333373863313037312E766200643A5C55736572735C64616F636F6E6E6F5C446F63756D656E74735C56697375616C2053747564696F20323031335C70726F6A656374735C636C7254726967676572546573745C636C7254726967676572546573745C53716C54726967676572312E766200643A5C75736572735C64616F636F6E6E6F5C646F63756D656E74735C76697375616C2073747564696F20323031335C70726F6A656374735C636C7274726967676572746573745C636C7274726967676572746573745C73716C74726967676572312E7662000B000000000000005500000000000000AA0000005600000001000000D3000000380100000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000001BE23001D800000079E467CD817FD1010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000006000000010000000D0000000000000038010000280000001BE230019348F95458000000D3000000550000003801000065000000000000000000000056000000280000001BE23001983CC0A958000000010000005500000056000000650000000000000000000000AA000000280000001BE23001FCF9D97758000000AA00000055000000AA0000006500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000003A002A1100000000CC000000000000002F00000000000000000000000F000006E500000001000000006765745F476574496E7374616E6365000000001600031104000000C80000002F000000E5000000010000000E0024114031303036363332393800001E002011000000000B0000110000000000000000476574496E7374616E6365001A002011010000000B000011000000000000000056616C756500000022002011020000000B0000110000000000000400564224745F67656E657269632453300002000600020006002E002A11000000002C01000000000000150000000000000000000000100000061401000001000000002E63746F72000016000311D0000000280100001500000014010000010000000E0024114031303036363332393800000200060002000600F200000078000000E5000000010001002F00000000000000080000006C000000000000004B010080010000004C0100800D0000004D010080150000004E0100801B0000004F010080280000005001008029000000510100802D00000052010080110014001900350015002D00190026001900320015001B001500210011001800F20000004800000014010000010001001500000000000000040000003C000000000000005E010080010000005F010080080000006301008013000000600100800D001D0011001D001E0027000D001400F400000008000000AA00000000000000100000000000000020000000380000004C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000002E002A11000000007C0000000000000012000000000000000000000008000006740000000100000000457175616C73001600031104000000780000001200000074000000010000000E0024114031303036363332393800001A00201100000000050000110000000000000000457175616C730000020006000200060036002A110000000004010000000000000C00000000000000000000000900000686000000010000000047657448617368436F6465000000001600031180000000000100000C00000086000000010000000E0024114031303036363332393800001E0020110000000006000011000000000000000047657448617368436F646500020006000200060032002A110000000084010000000000001000000000000000000000000A00000692000000010000000047657454797065000000001600031108010000800100001000000092000000010000000E0024114031303036363332393800001A002011000000000700001100000000000000004765745479706500020006000200060032002A110000000008020000000000000C00000000000000000000000B000006A20000000100000000546F537472696E670000001600031188010000040200000C000000A2000000010000000E0024114031303036363332393800001E00201100000000080000110000000000000000546F537472696E670000000002000600020006003A002A11000000009C020000000000001B00000000000000000000000C000006AE00000001000000004372656174655F5F496E7374616E63655F5F00160003110C020000980200001B000000AE000000010000000E00241140313030363633323938000026002011000000000900001100000000000000004372656174655F5F496E7374616E63655F5F000002000600020006003E002A110000000030030000000000001200000000000000000000000D000006C90000000100000000446973706F73655F5F496E7374616E63655F5F0000000016000311A00200002C03000012000000C9000000010000000E00241140313030363633323938000022002011000000000A0000110000000000000400564224745F67656E657269632453300002000600020006002E002A110000000090030000000000000A00000000000000000000000E000006DB00000001000000002E63746F72000016000311340300008C0300000A000000DB000000010000000E0024114031303036363332393800000200060002000600F20000003C00000074000000010001001200000000000000030000003000000000000000F700008001000000F800008010000000F90000800D004B00110028000D001900F20000003C00000086000000010001000C00000000000000030000003000000000000000FB00008001000000FC0000800A000000FD0000800D003F0011002A000D001900F20000003C00000092000000010001001000000000000000030000003000000000000000FF00008001000000000100800E000000010100800D00480011002E000D001900F20000003C000000A2000000010001000C000000000000000300000030000000000000000301008001000000040100800A000000050100800D003B00110027000D001900F20000006C000000AE000000010001001B00000000000000070000006000000000000000080100800100000009010080090000000A010080130000000B010080140000000C010080180000000D010080190000000E0100800C005F0011002C00150023001100150015002400110017000D001900F20000003C000000C900000001000100120000000000000003000000300000000000000011010080010000001201008010000000130100800D004700110023000D001400F20000003C000000DB000000010001000A0000000000000003000000300000000000000017010080010000001801008008000000190100800D001D0010001C000D001400F400000008000000AA0000000000000038000000640000007C00000094000000B0000000C8000000E0000000F800000010010000280100004C0100006401000088010000A0010000B40100000000000000000000000000000000000000000000040000002E002A1100000000E8000000000000000A0000000000000000000000020000060000000001000000002E63746F7200001600031104000000E40000000A0000000000000001000000120024112A636C72547269676765725465737400320024114050583A786D6C3D687474703A2F2F7777772E77332E6F72672F584D4C2F313939382F6E616D657370616365000000002A0024114050583A786D6C6E733D687474703A2F2F7777772E77332E6F72672F323030302F786D6C6E732F000A0024114050583A3D00000016002411636C7254726967676572546573742E4D790000000200060002000600F20000003C00000000000000010001000A000000000000000300000030000000000000006B000080010000006C000080080000006D000080090019000D00190009001000F400000008000000AA0000000000000008000000CC010000E0010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000002E002A110000000060000000000000002A0000000000000000000000030000060A00000001000000002E6363746F720016000311040000005C0000002A0000000A000000010000000E002411403130303636333239380000020006000200060036002A1100000000E800000000000000100000000000000000000000040000063400000001000000006765745F436F6D70757465720000001600031164000000E40000001000000034000000010000000E0024114031303036363332393800001E00201100000000010000110000000000000000436F6D70757465720000000002000600020006003A002A11000000007401000000000000100000000000000000000000050000064400000001000000006765745F4170706C69636174696F6E0000000016000311EC000000700100001000000044000000010000000E0024114031303036363332393800001E002011000000000200001100000000000000004170706C69636174696F6E00020006000200060032002A1100000000F401000000000000100000000000000000000000060000065400000001000000006765745F557365720000001600031178010000F00100001000000054000000010000000E0024114031303036363332393800001A00201100000000030000110000000000000000557365720000000002000600020006003A002A11000000008002000000000000100000000000000000000000070000066400000001000000006765745F57656253657276696365730000000016000311F80100007C0200001000000064000000010000000E0024114031303036363332393800001E002011000000000400001100000000000000005765625365727669636573000200060002000600F2000000480000000A000000010001002A00000000000000040000003C000000000000007E0000800A0000008900008014000000940000801E0000001C0100801A0032001A002D001A002E001A003700F20000003C0000003400000001000100100000000000000003000000300000000000000079000080010000007A0000800E0000007B0000800D00100011003E000D001400F20000003C000000440000000100010010000000000000000300000030000000000000008500008001000000860000800E000000870000800D001000110039000D001400F20000003C000000540000000100010010000000000000000300000030000000000000009000008001000000910000800E000000920000800D00100011003A000D001400F20000003C00000064000000010001001000000000000000030000003000000000000000ED00008001000000EE0000800E000000EF0000800E001100110043000D001400F400000008000000AA0000000000000028000000F80100001002000028020000440200005C0200007C02000094020000AC020000C4020000E40200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000036002A1100000000FC010000000000007100000000000000000000001200000629010000010000000053716C5472696767657231000000001600031104000000F80100007100000029010000010000002200241140463A4D6963726F736F66742E53716C5365727665722E5365727665720000001A00241140463A53797374656D2E446174612E53716C5479706573001E00241140463A53797374656D2E446174612E53716C436C69656E74000000001200241140463A53797374656D2E4461746100000E00241140463A53797374656D000000120024112A636C72547269676765725465737400320024114050583A786D6C3D687474703A2F2F7777772E77332E6F72672F584D4C2F313939382F6E616D657370616365000000002A0024114050583A786D6C6E733D687474703A2F2F7777772E77332E6F72672F323030302F786D6C6E732F000A0024114050583A3D00000012002411636C7254726967676572546573740000160003113C000000F4010000490000003C010000010000001A002011000000000C0000110000000000000000636F6E6E00000000160003116C010000F00100002E00000048010000010000001A002011010000000C000011000000000000000073716C436F6D6D001A002011020000000C000011000000000000000073716C500000000002000600020006000200060002000600F2000000F00000002901000001000100710000000000000012000000E4000000000000000A000080010000000C000080110000000F000080120000001000008013000000100000801E000000EEEFFE801F0000001100008026000000120000802C0000001300008032000000150000803A0000001700008046000000190000804D0000001B0000804E000000EEEFFE80660000001C0000806C000000EEEFFE806E0000001D0000806F0000001F0000800500240009002E0009000C000D004700130047000100020011001C0015002E001500380011002A001100820011002A000D0016000100020009001E00010002000900100005000C00F400000008000000D30000000000000008000000FC020000180300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF1A092FF1000100007C020000E1010000010000001101000001000000190300000100000011020000010000004D0100000100000029010000010000004D00000001000000CD01000001000000A10100000100000039000000010000005D02000001000000F900000001000000E100000001000000AD0200000100000021000000010000006501000001000000E502000001000000450200000100000089010000010000007D02000001000000B501000001000000F90100000100000001000000010000007D00000001000000B100000001000000FD02000001000000290200000100000095020000010000006500000001000000C5020000010000009500000001000000C900000001000000010400000200000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000400000002000000000000000000000000020000400000020000000000000000000400000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000020000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000080000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000C0000001800000024000000300000003C00000048000000540000007800000084000000900000009C000000A8000000B4000000C0000000CC000000D8000000E4000000F0000000FC0000000801000014010000200100002C0100003801000044010000500100005C010000680100007401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E002511000000000400000004006765745F476574496E7374616E63650000001600291100000000040000000400303630303030306600001200251100000000D000000004002E63746F72001600291100000000D00000000400303630303030313000001600251100000000040000000300457175616C73000000001600291100000000040000000300303630303030303800001A0025110000000080000000030047657448617368436F64650000001600291100000000800000000300303630303030303900001600251100000000080100000300476574547970650000001600291100000000080100000300303630303030306100001600251100000000880100000300546F537472696E67000016002911000000008801000003003036303030303062000022002511000000000C02000003004372656174655F5F496E7374616E63655F5F0000000016002911000000000C0200000300303630303030306300002200251100000000A00200000300446973706F73655F5F496E7374616E63655F5F0000001600291100000000A002000003003036303030303064000012002511000000003403000003002E63746F720016002911000000003403000003003036303030303065000012002511000000000400000001002E63746F7200160029110000000004000000010030363030303030320000160025110000000010000000000000000000000000000000000000000000000000000000FFFFFFFF1A092FF100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000002002E6363746F72000000001600291100000000040000000200303630303030303300001A002511000000006400000002006765745F436F6D707574657200001600291100000000640000000200303630303030303400001E00251100000000EC00000002006765745F4170706C69636174696F6E0000001600291100000000EC00000002003036303030303035000016002511000000007801000002006765745F5573657200001600291100000000780100000200303630303030303600001E00251100000000F801000002006765745F57656253657276696365730000001600291100000000F80100000200303630303030303700001A0025110000000004000000050053716C547269676765723100000016002911000000000400000005003036303030303132000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF77093101010000001100008B1200FAC61300E84728020000C40100002C000000BC000000000000000000000016000000190000000000EEC00000000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000E00EC000000000000005400000001000000D842D3020000000000000000636C7254726967676572546573742E4D792E4D79436F6D707574657200444432443233343700000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000F00840200000000000070010000010000007844D3020000000000000000636C7254726967676572546573742E4D792E4D7950726F6A6563740043433230394144310000000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000D0094030000000000001C020000010000005845D3020000000000000000636C7254726967676572546573742E4D792E4D7950726F6A6563742E4D795765625365727669636573004439354536383236000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000C003001000000000000E000000001000000C845D3020000000000000000636C7254726967676572546573742E4D792E4D7950726F6A6563742E546872656164536166654F626A65637450726F766964657260310030443438374639350000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000001000000200000000000008010000010000006845D3020000000000000000636C7254726967676572546573742E5472696767657273004242313435333745000000002DBA2EF101000000000000000A00000000000000000000000000000000000000010000000A0000002A00000000000000010000000000000000000000010000003400000010000000000000000100000000000000000000000100000044000000100000000000000001000000000000000000000001000000540000001000000000000000010000000000000000000000010000006400000010000000000000000100000000000000000000000100000074000000120000000000000002000000000000000000000001000000860000000C000000000000000200000000000000000000000100000092000000100000000000000002000000000000000000000001000000A20000000C0000000000000002000000000000000000000001000000AE0000001B0000000000000002000000000000000000000001000000C9000000120000000000000002000000000000000000000001000000DB0000000A0000000000000002000000000000000000000001000000E50000002F000000000000000300000000000000000000000100000014010000150000000000000003000000000000000000000001000000290100007100000000000000040000000000000000000000020002000D01000000000100FFFFFFFF000000009A0100000802000000000000FFFFFFFF00000000FFFFFFFF050005000000010002000300040001000100010001000100000000000000000000000000000000002900000031376431346635632D613333372D343937382D383238312D353334393333373863313037312E766200643A5C55736572735C64616F636F6E6E6F5C446F63756D656E74735C56697375616C2053747564696F20323031335C70726F6A656374735C636C7254726967676572546573745C636C7254726967676572546573745C53716C54726967676572312E7662000000FEEFFEEF010000000100000000010000000000000000000000FFFFFFFFFFFFFFFFFFFF0B00FFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942E31018C55E956010000008C3CDCC7DB1C294E95F4907F720EE8F4250100002F4C696E6B496E666F002F6E616D6573002F7372632F686561646572626C6F636B002F7372632F66696C65732F633A5C75736572735C64616F636F6E6E6F5C617070646174615C6C6F63616C5C74656D705C2E6E65746672616D65776F726B2C76657273696F6E3D76342E352E73716C636C72617474726962757465732E7662002F7372632F66696C65732F31376431346635632D613333372D343937382D383238312D353334393333373863313037312E7662002F7372632F66696C65732F643A5C75736572735C64616F636F6E6E6F5C646F63756D656E74735C76697375616C2073747564696F20323031335C70726F6A656374735C636C7274726967676572746573745C636C7274726967676572746573745C73716C74726967676572312E766200060000000A000000010000003F000000000000002200000008000000110000000700000000000000050000008100000009000000B50000000A0000000A00000006000000000000004191320100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000200000009101000038000000430500003800000000000000DD010000D80000005800000058000000580000002800000024020000EC0500004C01000020040000140300008C0300002C000000300300000300000021000000060000001E0000001F00000020000000070000000C0000000D00000008000000090000000A0000000B0000000E0000000F000000100000001100000012000000130000001400000015000000160000001700000018000000190000001A0000001C0000001B0000001D0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
AS N'clrTriggerTest.pdb'
GO
CREATE TRIGGER [SqlTrigger1] ON dbo.Person
INSTEAD OF UPDATE
AS EXTERNAL NAME [clrTriggerTest].[clrTriggerTest.Triggers].[SqlTrigger1]
GO
/*
-- Reset
DISABLE TRIGGER [dbo].[SqlTrigger1] ON dbo.[Person]
UPDATE dbo.[Person]
SET Name = 'John Doe'
WHERE Id = 1000001
ENABLE TRIGGER [dbo].[SqlTrigger1] ON dbo.[Person]
GO
*/
SELECT 'before' s, * FROM dbo.[Person]
WHERE Id = 1000001
-- This will use a seek
DECLARE c CURSOR FOR
SELECT * FROM dbo.[Person]
WHERE Id = 1000001
FOR UPDATE
OPEN c
FETCH NEXT FROM c
UPDATE dbo.[Person]
SET Name = 'Jane Doe'
WHERE CURRENT OF c
CLOSE c
DEALLOCATE c
GO
SELECT 'after' s, * FROM dbo.[Person]
WHERE Id = 1000001
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment