Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Certificates: add migration for certificate registration #5814

Merged
merged 1 commit into from
Apr 17, 2018

Conversation

dtivel
Copy link
Contributor

@dtivel dtivel commented Apr 17, 2018

Progress on #5634.

CC @skofman1

@joelverhagen, here's the SQL:

CREATE TABLE [dbo].[UserCertificates] (
    [Key] [int] NOT NULL IDENTITY,
    [CertificateKey] [int] NOT NULL,
    [UserKey] [int] NOT NULL,
    [IsActive] [bit] NOT NULL,
    CONSTRAINT [PK_dbo.UserCertificates] PRIMARY KEY ([Key])
)
CREATE INDEX [IX_CertificateKey] ON [dbo].[UserCertificates]([CertificateKey])
CREATE INDEX [IX_UserKey] ON [dbo].[UserCertificates]([UserKey])
CREATE TABLE [dbo].[PackageRegistrationRequiredSigners] (
    [PackageRegistrationKey] [int] NOT NULL,
    [UserKey] [int] NOT NULL,
    CONSTRAINT [PK_dbo.PackageRegistrationRequiredSigners] PRIMARY KEY ([PackageRegistrationKey], [UserKey])
)
CREATE INDEX [IX_PackageRegistrationKey] ON [dbo].[PackageRegistrationRequiredSigners]([PackageRegistrationKey])
CREATE INDEX [IX_UserKey] ON [dbo].[PackageRegistrationRequiredSigners]([UserKey])
ALTER TABLE [dbo].[Certificates] ADD [Sha1Thumbprint] [varchar](40)
ALTER TABLE [dbo].[Packages] ADD [CertificateKey] [int]
CREATE INDEX [IX_CertificateKey] ON [dbo].[Packages]([CertificateKey])
ALTER TABLE [dbo].[Packages] ADD CONSTRAINT [FK_dbo.Packages_dbo.Certificates_CertificateKey] FOREIGN KEY ([CertificateKey]) REFERENCES [dbo].[Certificates] ([Key])
ALTER TABLE [dbo].[UserCertificates] ADD CONSTRAINT [FK_dbo.UserCertificates_dbo.Users_UserKey] FOREIGN KEY ([UserKey]) REFERENCES [dbo].[Users] ([Key]) ON DELETE CASCADE
ALTER TABLE [dbo].[UserCertificates] ADD CONSTRAINT [FK_dbo.UserCertificates_dbo.Certificates_CertificateKey] FOREIGN KEY ([CertificateKey]) REFERENCES [dbo].[Certificates] ([Key]) ON DELETE CASCADE
ALTER TABLE [dbo].[PackageRegistrationRequiredSigners] ADD CONSTRAINT [FK_dbo.PackageRegistrationRequiredSigners_dbo.PackageRegistrations_PackageRegistrationKey] FOREIGN KEY ([PackageRegistrationKey]) REFERENCES [dbo].[PackageRegistrations] ([Key]) ON DELETE CASCADE
ALTER TABLE [dbo].[PackageRegistrationRequiredSigners] ADD CONSTRAINT [FK_dbo.PackageRegistrationRequiredSigners_dbo.Users_UserKey] FOREIGN KEY ([UserKey]) REFERENCES [dbo].[Users] ([Key]) ON DELETE CASCADE
INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion])
VALUES (N'201804171613337_AddCertificateRegistration', N'NuGetGallery.Migrations.MigrationsConfiguration',  0x1F8B0800000000000400ED5DDD6E1CB972BE0F907718CC55126C2CCBBBE7E0C4B01278656B8F10CB362CEF2277426B86923ADBD33DA7BBC7964E9027CB451E29AF10F6EFF0A78A2C76B37F466760C0D034C92259FC58248BC5AAFFFB9FFF7DF36F8F9B68F18DA55998C467CBD3172F970B16AF927518DF9F2D77F9DD3FFF69F96FFFFAF77FF7E6FD7AF3B8F8ADC9F763918F978CB3B3E5439E6F5F9F9C64AB07B609B2179B709526597297BF58259B93609D9CBC7AF9F25F4E4E4F4F1827B1E4B4168B375F76711E6E58F983FF3C4FE215DBE6BB20BA4AD62CCAEAEF3CE5BAA4BAF8186C58B60D56EC6CF971F70BCB7F09A288A54FCBC5DB280C781BAE5974B75C04719CE441CE5BF8FAD78C5DE76912DF5F6FF98720FAFAB4653CDF5D1065AC6EF9EB7D766A275EBE2A3A71B22FD8905AEDB23CD938123CFDB1E6CA895ABC136F972DD738DFDE73FEE64F45AF4BDE9D2DCF599A8777E12AC879FFD5FA5E9F47699157E6EE0BA1CC0F0B392549F9A7060E1C35C5BF1F16E7BB28DFA5EC2C66BB3C0DA21F169F77B751B8FA77F6F435F99DC567F12E8AC466F286F234E903FFF4394DB6BCE6A72FECAE6E3CCFB45C9CC8054FD4926D39B150D5ABCB38FFF1D59277218A82DB88B5381038709DF32EFDC26296F2DEAE3F0779CE523E8C976B567252AB5EA9ECFA2138FDFAB0DBDC6ED330CE9B7A3904F93C5A2EAE82C70F2CBECF1FCE963FF18973113EB275F3A16ECAAF71C8671D2F93A73B66AB8D54D3AB3FFC915495C615A5EE8FC1B7F0BE6492D20A3EC7520122D972F1854565C6EC21DC569352C4D08D5EE0224D365F9248C6A796EFE63AD9A52BDEB2AF0921F3D720BD67B9DC8D3727FB09619C260A35F25451CA1DA78B19C002AB08F59A6915ACEF4DE4327BBBCAC36FACA1F273C28116C43D668784A2A126468375D2C4686691CBFC069B5E2418DB0C66D01A0BE7825AE9347D9DE6EC71A29AE7C5FB4D10466FD7EB94659987B5C63293F9C633BE0BD30D5B8F5B2F0742CCFF3254F4C79FBCACA52077A328F9CED6CE92479360EF58C4F2FE84DEC745E62B0EF9F0225871F8BCDDE50F055A56F5DEB41FF98F099FEB4F9F83D5EFC13DFBBCCB1E3CB4B860E379059DB28DE5AC348C6631697AA3E6739065DF9374FD85652C9FA8C6F78FDB302DBBFCAE5C67AAFA8BBFBF861B2BBDF3941542E1D77CE55AF24390E5179CE9BC3FC97D1877A020943E4F76FB8D2C71F9C697DD9495A28D978297DD36FDA65A2C8495564ED2175725DD753DBDE2B28C631E6E5749719F43594B9B046D272CA7425B5F538B3EA5F7411CFEB54CBA0AEF2B247D617FD9B12CC75B692EA5B4DC9419EE8DB184CF1E1A06C252CCA18FC890998BF4E9A55BE7487DA277C54B0F884D37B799D058F756168237FDC6D6AD3A0A6EAA96EDE6D377BE01931A8CE5D1A40E9AD155FC14E40CACAD931596965F61565649AE2CBC66AB5DCA379E9F13BE810E0D0D92323E69C21AC9021E32A07C5D0E43566547C78311C85EBF7A8DFDDA45D7FEB5458E87A411341045D9D10F20BF05D1CE54AB2F1DA2DA571607717EB91EFC64F78E65AB34DC8AE796C1EADAA365E08AEA6DBBBEE3EE00F1F364B3DD95C42C47ACE2A0C132D75DFEFE7CF2355CFD9E0933A4C0B3FD8CC16716D04FF25AB3E23F61495D26DD8852712FA4D5346D4DD13278D3AC399C4E349D38727AE9B45C943D24AF1465EEE322619DB5F5F8F45E2ACA0DA04EC57243B5BBFD4FB6325D18F13F3D48A75A9D55A8D38D42975A9B074D407F09A04E36544490CF3BC5101ADA55A7AB4D2A3F23ADA9D27A4DFB5291566B13C8B35F2C741402E6C9F173B236ED0FFCCCC00234F096D42221D85E0DD755153B9694F99A74DB74A313B2611A38274588DFEC73EE672798419BA7702E57D15175BD8F1211BC88D3548C9D248859374894282622D34A988FECBBD8B84E0207A2D16737F076BD09632F4750972B145FCBB7A6612B4719BECDE83CB95B168DA3F105E7174D494CED9102A23194F5CEBDEA2749AED8E6964F6BDE1D57F1A1959C56665804062667AA5E7492305EC58BDC949E3636C53CECBBC578B652AAE5F4105737D6D9DB591459E59098E1A6EA21D4764336ADF5A6BCDEF62F9DF62B1E65CDE2E7206335B41B042C8983A2B27998615137B89421A4DF9697529CDA745B9B498DED79C9B25F783AAC5587B748CD65859A7879B220D8CF65B6557C8F23B7EDB38C20A97B8A68ED429C3CD9B492477555BFEBC1D3577F1A627B75995D3F04A934C27D6D233FA7EC2E7CF437B71B830EDFD61FEA22653513A136B836B8FCC2EEC32C4F0D76367A8D70515367A01284AE81C57AADC80045B2B400CA1EE585ED0A7C7C61F12EF91E4749B0EE6245AA89093E96E15DE8C318FB43B2FABD039D2E0207002A2072F05CDACC3464ED2876E80DDF173037BDC9476A7C9BD9DDE0EF2FBB90AF44D7E1BD13FBB572E6CE28D9497D52CB8C66CBE86939B0DB391A57913ECB81EB127014FBB67709DA4079B88BD83EA5E1FDC3F05789539853D1ECD2FCF48F4F6A1664EC6392EFEDB706ABCCE36AFCFEB1E06910D5E8FA358D066FFD9F83ECE16D749FA461FEB0316D657C3CE22E2A1BDFF4F27295C463B092EF800AABE5DE06050D9DEBBC28E48D1ADB70F9FDCA6FE33C112DED1EB7EBD1655251EFFB7508566B2919AE589C8D3343C335ABABFBC2B649DA1B5F1F82F87E57EE09F099E863B6979B01F1B1E328635ACBCE8B90A333FC2B130472617FEBC82AFEB3B0ED1963988BB1CD42DEF7A791C4FE1716ACAF18E74BB9E468A0B25F0716D6D13530DFAE0A673641DC5F6F75BDDB6C8274788BB1AFC1FDF05B83AF611E19A79917E3F87A5B3EFA4B8A8F49BA09223EC7D6DE5A60B3D62B569B0FEC1B030C8A49F2BA3C690D3EEC92B41E63367FE087101F1A9CCF294BABAD735F5A175121B763B62E5ED227E9F03C6F2B7CC7B62CE6A7B8EAA5DD58B5D6AB4E51DDF0B55E85F17914F283AA7DDEFDE463DE75B1ACF5E499A1E62BDF6DE6BB4C6883A886AA12DD8FDBCCE090876C66D7C01BD792DDB479348D58938469BFDA74574D97CD134F435FCAA7374FF4AD833551CCE3DA4C79AE1ADA2967D41B2AA6A32D9532B9365592E9C6C64A396F5AFD9BD668309FA623346676BDFFAECBFD992F17FCC06FE67995E9C9D0012507D674355BC746CB175A43A9D6913E98F5F08E3DA9170903DCE58C3ADCC57414EE5226E737EBBB6D8134B6BE48F9EFEF49FABBB1C56D2E035CB43C18B3F58CDE1E1B3604D5C70CE27794A1FDDF18D6942AA9EEAA92AF4A1D15F3A40D437F1BE0C0E81CABE346CE261AFAEE239019A5ED33FAA0B75D469F5C11BC2F7944F13828F6629D40D23E5C6FD96A704D4705EF767DF05F5FAFF9E9B449C5662AB893ED335D15D5B1DB8C950A1F27ED3893D6E4A3CE559B5A98A20B5AD96E0DA228B206BABB3B4F361BE6C5E7B3E341CFE188B72F6139E33519B11D2692BBA301D270675452F3D54DBE0719D6517A1DE556AFADAE2F2346835996A34EC57DC291B42ADAF4EC03D95AEBE10AD9BAD811B2E32CB55D34DBC5429CE5C166DB7B751EE77A70AC1B98F1CCD7C634251BCB7868448392676BD430AAD9DFD10262448BBF19D9307AB52F72337CF3676EE5F128E17E4F841C1FB0EB245F4AFF863EA2FB17936D4DF47613507C71DD221629C7FDE121DF0238DB6F4D71DBE07407896933C18BCA3E1346D0FDBACD9AB6E071EA1CB08EBDDB3D3322CDF10BE94E082D68D3DFE5F3CC4724CEEA0AB658D43B060B005D55C871043A414AF7E4EF14E94B2E7A845B175D90DF0DC340B724D7BB5B9F4EDF3D7BD41F62A2FA8EA101C5A330C5DAE8349DCF7725322F587146A386A4D897394EE059AD175741CCF70CC892210CDBCD3EA3E0DA1E48D7FDDB4399BCBA23106B806C25A17463333543CA3E13C5F5EDBA5CEC385D2CFAFAFDB0F55EF686780EFF76578C791183318A9EEAC6F67EE212AFA2DDBA3F9D8154CCB83DBFB872F89AC75AB03FD364F76DAD2DCF55C8F105D07E436E4C2A998AF49251B55CB966795E8E3E5146C9C58E32CA32CFD8630EBE7DF634E75CD54FA54B2057E7CC40D9E3B88FBF9E14FEC3E12832DD5C2173FCF9A1277A773EE7401DE5EA72105FCE788817600EDCEC0B683A3C301FA6C783337BF01648EE8965F5221621F58FBA8E990DAE240093BBA995337751C94EEA9E5AC6C7255BF514D5FDB14251EA28A849CF7C3FC5EE8204A6F4F39307F91C64A3C4E152B570E17D1C143818A16AC393DA9A8DA6595D65BA11F26A3359CD82CD5E2DDF10EE12EB4A0CAF39951C96D6FAD152BC5DAD0A975F8EE2452A75142F238B979AFBBD658C3F693527A95173079C8A126E6FD402FB0969CAA74D4B6366776F0226D10756258B3E240BADD588E8C3A5C96EA36F551A571697D94514DC67ED38BA6D5D2A2A3EC372FC1AAF591A3D715C8A5097C7A5F274DFC8C66F411855EEEBCAEBA1B3E54B6D20A502ADBF903AFBA9393BCF15AE834AF35297D00DB7A51217BC416CDD942BF60775B91FF501AB8646FCF836CB925558166CE6AD1A4C53AEFB7DBC5ED8226B3EB59E4CEAE0B3577C30C26D11253E7F3A5BFE93D62103D15699B7272A06FA94299F2ED5C5E1535C0DC0A20A62CA0FA541B60AD6BA08E1DC59CB5FF87AC2D2AA1E7E922D0E25619CEB8B4F18AFC26D1059DAAF94A32E5B45C3DA2AD494E649656E19104ADD4A485BBD156D650ADB6C5C7A7322408C82BCEA0866C68772EEEA8D37F94C26D0ABAE5965722F5FBCD027710FB048958F87138987946AF74AA149D0A1C6D3C646140DAE4D112026A86051B92D70995E26210D1F036AC86050AA6ECD5626411B1C261683862566EC1E207254663AF6CCE166471358C6668C812723A3290D90022A4F822C39B02F36E0701CDF31450DD61600746EA8EE843C901F63200EEC3CA56221ACF5743833868C358E37291AAC158FB844730852BBAFC41C017728A947E6C76878A4F08DD2187B0CECB980D5222969119927149FC428D3DDA0EE53C69238390BA03B496339B2FA2418370569C5B0438AD80A83C6451893E2F5EEAB01E2790F024842EFC74022813BA4F3F32C242D1809D401171D7037885435472C85B03A1E48A746E701C2128DB4898DBF3DECE61E03409859FAD1DB1AB6D3B2AB50683BF0043289B170052F02F10534EFA173C650D958BC697D875ADAA83B24D7B83092DC423D9B6A0D6ABCE90E22B510BE8C21B0100E50AA169FBF4F22A69AB68BFEE56D230D3A9BB7C28F30F14017F5A29A5B68E4608763435BC60413C0644AF56AAC84494125F959B58D3D1C19606AA906BB82D55A25BA5A1E54BC415C1A1396103F0E49D021FE092D30B07907D5F0A03C8570968436EF885885DEF723B0FF51A7D66BCE1D06E696EA23626419D2677A1B3B32E234370EE0214D77D5E7950548A8032C0D42ADD75067B0A2C1580E07A64817460428325087084DE33D3C907750504E730B6F68C404983A2CBB0EC8819775AF0D7AFB9A7CAF2DB50A178B952BBE4177D9107FC6DC65439C3824D9A67BFFB28CBDC1159836FE82C733673967086D6545BF2EEF3A4C538AB4B789F92E9A954905FB5412FD3045391C17CF4567AD3FAE7252910F2BE62DE1FC3AA0BD0F348D7C1B11AA46AE38887EED21FE6C905CBBE15E17CFA85C6F7C94B2235DFDA8B50E7E07A4DFCC01CD72B941848A8F709F08568BCF70873173B4C0827CCC61DDB03A9C93475DF5F648E797CD63DDECCDEF2D1D18436A5A066BFE6BBD660CE66E16E86E0DE860BC3A076B296B8FC7429A913394467C64DF2BA6CD08700E489B9DC1E9348651385F2601A213026701BFCA33B37194655FCC6E3B2D8C1A809522C1EF56A35C7F84DB774B3FD5DC7398615A9B901D89C10CC3E74CC35834DA64C3F831FFDD85683C42C6A5A910F8E81487C1402835B67032B052F836066629DCA1B463162644A05B661417461FCD026245E7AC0EEFA44DDE9D07530610FCAE5A1A6C286AE04E0725B38307D7093591DD2637B96BA34C71F2C01E9CCA10748C4C99912665B761C20FB54419FD37779F6C7DC00BB26944B882CC20AD448AE3F32975D9B043548B3AD9E21D559385B2D76267EDB5D9BFEAECF58A945E8C7825631C3CA2D667621733504F5C3612C4F22321FA39ED2B1CFB3715EC9FD30E03EA9FEA28D9058EA8D7E4412701E677F920A53BD299A9D08E8C28A53990ABF92951AE79CFB4600C77A509BC75A9DCE83AE31875C37928D8C53A30225EB171A2344176853B0374528D9B509FD1446C82066DD65A3A9B2439F0C3E8AB176B2FCD71EFBED58AFB6BFABC2539FD9DFDE4A5F4628C194C193687692C3AC89E642E637E9A9DD004AF347E11EBB2D278D1BB585A3119D866BE5CBC2FFD6FF332392FD1BA832EBF862C2BBEB3472898131FC9DACB7656FB5757E151D0BD66B97EC1912D17EF5BAFDFD0BD968634999476B9A693D32EA10824313AD6C27BF7A460CF0437B11642A54B5D8846ED90D8525C74A00851911D2C5A8899DDA8E9C4CD9EC62C9569C64D500D80051499AC999E9590666D09D103EC392D644143539D30A85BA1913690A392687CA3A0841A0F233472927B0294A6F8B49F46577A3D6BA0AC3C7B76226E274B25583D7B33B2A07D5748A358BD4143A955EFB768A4DAF73A067AC27B20DBDC29ED8F80E9525A0311E4B264720AB30CB20DB609EDFD350728B5C54B2C1A29C394532F9E2C04E52898104135BC266D6045BD8B616C65CD19755A17FB16E38CAEB6951672D2160A22A7EC521572C226475956C558140B219BB8C2A2F12AA4ED2E1AB1A2EDCB7E25D736700632CD76592023ED2CD4839ADC57321FEAE074180B00952CD06C59F9DAA5E3B22255A0506FC57AF756F5F40FF4D8180C406A33160E803656465203B200763F0F3082E0A75EEA83D953BDD013654B6A608BD937FD00CC913DA8034C31B858975A0E3B59B7B5D84002E8B4918F5D3B6FDEB2230CA1FB02D77B48F206EECE3892FF6F81ACE568333C7371B83938AF76E3431F60D2BC4E8FC860930F6480B36497C952D7294E939D7849718F2C1084CEC443708ECA32475EF96392853B3ED882FA8D055843F3312B75CAEA6556E818A46A30F0CBEA5776809513B24FC0F965C88D770B2F04F10CD6A318B866203F3CDF5A6FB338B36087B450173497B43A5B48ACD03CC9EA74DA667B6384A4A1C59981BA49053B02394AEDCA14C835AAB8E59794D0DED822ABC870BEE09E3EC1CE80BE3EBB720674D1A91393BBE28B43883F499C5514079450372D2E28F5FEAA5A483B272D4E27D12A066367ABA42272B3C9EFD8D30648C3F1B2A90167A5471EAA3E0F71EE19BD2342BDC2FC23EAFD11B4CA7666612E11476113A68880B2917B822921FA7067682D44C37D598B8FCB7C299F5D4C8BD97BCB7C89180E97BA0FBE58A3BB35C3D963718106F50A7782A6F74CBC18B1F30B777B36E814B3CD2DE2A4B2CD261A64469A3EB0F72EE261043688B39E1734C338DF0712CD266E50D818DD46113969F43665ED2FE66FCA375F310F5303C093E85B8AA465004BBA28062002836820C08A70101B47B3A3FA15F24185E85CADEEAA3485A8C961950222FDEEDAA26C35F9A81AEA1204F48844D15077514C7BD6478FAE41055CFA5058E5C4235FCC1941732AB898C1D80038A0D19B2DBBA071EFB6EC7446946655DBFC7454B73C44FA6CF6FFA1371F75FDE1CE09D4478742CAB3F2CAE8FD04BA7B277B4B916FCF29FE52882A3A3AE1915808B9DF80586775D321F7CCE4A84364956411656295C935C710961C76A71C38974CA5AC5D341436709074427270DF31FC9609F40361411EE1D864F418D11779A6E3916520BA9F92608704F8F188E0C0003AAF985D18E878500CFBEC0722B3D382E10EEAD647F14456BACD662285C1183CEDE4865AA43EC126B2DDF872DBCA06ECEDB66F7663AFB58783B5F61C0BE7A7F9E516D437F4ED1674DD569BCDDA3986BED61A9C4B04FD9CF1A9AAA137049D9C3B8B46D2C3195FA502ACA2BF6295FA467AC72AF45035C836B08DF472750078616F22A94C334E42DB034A8FACF233098B17BC45E1F6495F9BF6E6E47AF5C03641FDE1CD09CFB262DB7C174457C99A45599370156CB7C5C3837DC9FACBE2BA50F0F1FDD53F5F2F178F9B28CECE960F79BE7D7D729295A4B3179B709526597297BF58259B93609D9CBC7AF9F25F4E4E4F4F36158D9395349FD507886D4D7992F299A5A4F2AA794B2FC234CBDF0579701B144F6ECED71B2D5BF94178C02873AF656F531BF046511FBCE6254253A8F8BB763AB4FB85E5F59B8C170673953D272F78E7362CCECB7E32F8C0AA97E6E5AF574114A4CDC351F1E1EA7912ED36B1E1252B5EFEFA2138FDFAB0DBDC6ED3B090362229358D4E15A368A6F6E64461913A1027DA482853431D5DD2D8137410C4F157DF9EBA63C04A61281CA85E484552360FA538D5D62DAF480EF5D58BD3B9CC0AE705DF984C68FF7556587203D06556FCFDE9EE1F3424FD6347FC8C079AF26DC2DBF53A6559261392531C0013AF92F82E4C376C8D134733B90133E67FE9C8ACBEBAF2208A92EFC57B419D074D8A0BD8EB5D818AF6F6B343EBE2E03662A5D7858B60C5C1529872166F9056F5A15B6AB02D33BDDE8F0997184FF51EF9F32E7B507B036670E4FA798582B2715F93DF99DA1D240FBD96CF41967D4FD27571D199033540E97DA8BF7FDC86D5E9FF5D69186BAE4BCDED20EC535628C97ECD578AA017BED3A97D08B2FC82B39AAD3F24F761AC5185D2E9D48592E7D58148A4ADA7FA5F0A5C7600E21D5C07F16DBC37C4794495E3132D8AE2FBC8EE7B6BF4812E656B6D283CD4E2E86BEF53BDDF9776D1C08B7E1385DF8268A790A83F39B482C5419C5F2A527CFF954EE91DCB5669B8D5971F29C161B92C47365718BDFFEA2C164199E8B438158299A93BA2E6A3239D6AE50A57BF43F4C4443781CD81B8D6C574F5753682A37E52DE596654CE73DCC505526EB0B3572B9DF4A3979C44A7B9778B2992C39D65E294AE77B7FFC956AA6AA0F948A753EF842B2F743235256936F893DF5E7786A1E47DC91D8DE6E24381F2E764AD10A8BE38ECDCEAA7FC5A4BA4040720324D41C5DCD452BEA0FC3501FB257C9E0D845D9F9577D8E7DA7C0138EE7BEDE4D04327FB2E12D2C6074A77905FEB0D3FBC40E32EA738C87DF3F9B5D7D1B5669E7E8E9412660353C060B33336756F71EE8024D040575E13047BE04F0E6AA9E0DA106F10A7789995C8D594AAD5C7238E7BE1D80B807B21777AC822781D05AC1301007842D11907BA5B49773810680CB583F4A176B8CCAE1F8254F2AC298FBF96EC42FB73CAEEC2479564F375369822BEFF21A28A604047C01589CA50C852D5508E0AA8E47B1C25C11A50272B492E58FA8DA5E15DA85FDAECBFBB50FB90AC7ED769355FE786CCFE68EC8EC0F15007405E2389E571D94C6D9FD2F0FE21573751EDE7F1159ABE55B65F58C4828C7D4C72554B2AA74C3BA7DF3FE6C57570548FE9AF69A46A60F5743AF53F07D9C3DBE83E49C3FC6123135692DC68EAA49C24CF2A89B58EB61F9D2458614A936B12ACFEEA4EE93A2F2EA7617A4D5A07AA6CC305F42B846C93D8B5B566EA721647F5FD76ADCF6C29C18DDEFB7508926BBE3B50AB3CB1682012BF3B203A5CAB7EBB2578EBC92EFD8EEF77A55709B9D7CD57879561771B85BA8D83F0D97995B9083936C2BF6A46004AA203DD3429D49CDAB888DF5D24F836C9C2C24F8A46504972925E5F58B0BE629771255835515625BBAA0F8A6BB71A246F5785D56B10ABE708433617EDF26613A4CA86A0FDE8A05D0EEE9555B1FAE24021CC5551597F7238BDB134D3D6FBF6A38B2550BA09220ED63548114876B9112884E707F68DE937676A9AB3042BCF94A00CAB539C2956220A938C42AA0BE54C97DBF537C793705A6DBD80D3709BE270F7130579CE62B66E5D074A17405A6A07CAB2833990BCC9071DA90ED9AF115887C9F591A98EAB303E8F427EB001A7859E3ABEE1096885D8C106B1E610DFEFE4BB0C3B3109A963192D4F7B66C6FD7CBA9D9CEB182C9DCFCF58F9814FD1180E5C2F4502D586B7FA32B7D1B638EC741B7221444EE76137D1388CA1EFA704ACE5EAF596ADC02D4E95E0B2692B9E6F09B171E4FD9B923837782A0E37FB02543E9275C6A885CC61C0D4AFADF57571EBA91D5FF65FDD4E70C066B4D32EF43CD96C34E39CF6E34CC1EE0DE6BD013E1EB40F65B9DC3B6CED3B464D2CB5CE638412380CF1E3CD0A3DE467DE3CD86C55B542FB795CF50478AEEC709CF479DDE2DDB2DD9332DEAF4A76FE8A44FFD74B7F9B6AC4FED749435C720DA520F77DADD2E55260DA5517732DEEB6E296AF933A2FB770E9C3586BE9BB2B5F4AF769F1223845EF0B9AFDD9B833720C248682CF811EFA31B7AC54B3C4227CAFFB30C1C5FE664F3AA08FE8CE63028441761F210A91A1C6CBD739A5BF0CBEDEDD22DB7839651843D8A99E688B7E383BA3500C9DED0E3F63E9BF5939A13A34ED3B38DD0D2E6D04861A220117FA2D9F9236376BCEB7BB3C295EBEF0B4E8A96EACA6B30072382809E255B45B6BB6C2ED57174B0DEDBC8C1E94279A0C3596F9F7C2C7678FC92013EA30196C04069357EC313718C401C9B3193CD0C36BDF838348ADFBD9C14C65E0D3E7C022A8F1F10C3E87EDE00F40F1B1AB9185D2BBBD252C1C3EE24F09ABD467FB9250715ADB779E5474FAD80BC0E5879A1BB59DD1274D93DE7E76A6F5F393D62839C5054B41A69E0E9A6F0E278DF03E0EF25DAADEE6EE3FCF068D8A83DBCE6894E87440A3A5FC01A1B1EE09064931794AA4CF11A3B20364CBFBDB363E39F5916D5BC0FA94160B18A6090B730C789D7F340C6B74C1A12D98D9B6A847636BFFD45D1B8BAA72F0F6A99EAE9DB100055FB0A0C15484F004968808BC96BE98A06E171D516168F0E1E2028B25EE60DB2694A2D8B099CD7E70BE9B839177971F05398FF0300734EFDACC9ACE4420016210136FB2F6055C2FAC700EA381857BCA8B1B8F2840C32A776DA37BDBF831711D16A3BAB8CC3EEEA2E86C791744EAD31643D7075979B4C8BA0E4B905696B8169D765C8C9080BC07B02A21217E0F6979A2860E266F68E1E2D6ED2DC1C507690309557F207B5FB0E97E446E8FC9D01B6162E856C385729305BA27866EF30196EA115E479C89B616F51CC882C8D82307070AB55FC70A990DD7AEC4E38B29AC685766DA2EF21C47D914A8F490D6022C7E1A45D92B6427FACEC1D75824CA5A4F195853F5B8174002B7CD73EB8977DF8E1B2DD6979AA555C2D55FDADF6DACAF3ACE961400ACE44C11CE6BD12E8240E0AD2ACB72C199F02D5C1741B7AE9FB29C6D5E14195E5CFF25AADE2EEF33F02918DEB1AC8A5B71B67CF5F2F4D572F1360A83AC8ACE5687147BBDDA65C56D781C27791DBB8D1063ECF4C722C6185B6F4ED4E2EE91CA0A2A59B696C20408DAED46BA302442D31B3E962A221AA47C61770B14556F4ED4926F206C166D385B96E1B3CA29FD0BE3235F1965E485CF0CD1EF7D81BEC2C34C8BC013237D35D85755D5B7205D3D04E97271153C7E60F17DFE70B6FCE9A5483C4F75432695B681AE3A64AF2FE3357B3C5BFE5759F4F5E2F23F6EE478DC2DA91FF80CFB350EFFB2E3B9BEF2462CFE5B6AE5AB3FFCD1C203510D6D1C6E6350AE031E72F589BC5095DBB0F0D23F2C3EA57CA2BF5EBC2CC6C1B121EDCAEAD682BA58AFAAF731C4AABA6FC3DC276C9E0D56E4405B554531241D947947110F683C2FCFD5B4D1BD0C74FFF85347D63471BEA83082A0D83AD7E84EC41AC3AB3B693064578F9622E1B90C83F3E32BD7318722740D5C811A96ABAAAE783E948705F8DCE88BCFC4FB5182C270F5A3A807DF1204901F198A056E3A60493AE16257058EF22BFD6A4B76BAA8A6B5B40D2CE5770D905EE2FA25BD07845FBAADBF5675B222C03C4F36DB5D59C055203711AAFA49052D3055B344DC2B72812AB4AAA0542E8D228B1720D0D3014B16255894E3765E2CDC4BCAECCD3EDD5AD094C32AA7E0A50DE623CFC17FD8048FFFE84A4B894A65A1D86795C3233C1D301AAB70511EC6410A17E50629A1682F54B1FDE6A6CB56D7272A8520536EBC680B3A4C6E3282E9019C6888B6876AB2031CA2E1C6329D422FC128C789726B8A58B65723AC272E8A64D3C94A46F4F85ADD076396984C346059A3D9C0604443D6D861D813833E012877C4792EB465FB6ADCAA983DDDE5E973C0F058E07D1EC8ED0CDB89304B0684253ED301EFFFEC8A81D3577FEA30125AC4A73E1AD726D693F771B51A4F1DF0C85AD4325D865509D242D5234243BA0FB8D407184DA8A5A180F16CC08099B3B98969984ACF8D6EEBC2CFC3B16B342D9C4143D9A9E1B2CB3B0F04BD4D55287E9287F6298EE54C82CAD990A1F27FE759D7DD7A74F4D0F97D84A55EC24F8AAAE4815213E4C857A33C1094BCFA0D3DA9C5504A3D6FF1049F9D3E268B1E40A90F4B9BD049A619E23CE9048F89438F93E63E12BBBBA051133CA27A91E4923F543FA2B209A9048E3AAD55A8CFD33E0AD3DADDA90F8569E9F5D407A1CA47B1DFDBBDD6B9A3DF5B5920AC12B9029A465C8EAE04EE021CE459799CF3324A7A34252F44B39E76397220A5EE74F4D0493E6E58E080493E29CB61923C50D623241900FE9333C087B1D2A09928F43602D3632A75DFA58F61244A33B4D26CE63B1D31F704E8AD713DDC4331950EFF88DF9DE7BDEF2D02DD6A9320345C870D8B89741CBA1E9A73275DA1C38EA90AD0E47733A6B96CEE43DE157D8668474700F65003920C6869A79236CC52F7E514DD97F65623B5F1962600EDB3812BB4D2385E6EB8B2100C3074C02C9C7CC64FB77517A221F5143583E81A7C1E19FDDEAEF8BEF4F0A952F7AC719DBD52D0FB85D1DF8E86D0F57A68EAEB2CBFEA6EE38D8AEB2282EBFCBD2EBEC597E3CA3BF1399DAC151FE0CC8F38613B6014783DC4A220EBA1811B48F7A67B243AE0411C5AE3650BF573C0AC9BF07DA5F5F4D8E55C2F471DF24C1C34D2F4093434A8CF01236CE8C9690AB473C06C535D7C39DE2449A57B4DD3D99A2CC2B1807A5C3AB75180BAD3E87A0E24A3DD1449E780D10E44E2197C338B87B1396046CE76B64AF173DC5A2314EDD50428D68E5B4B740ADE5E1756017A3C2990067E9765887273C05347884FD2531F23870F71839858B627DAAB083B1648D176D5FB0026EEE4C8B03284AB39C28A81C16E3A616B4FA017C06681F27190490866434328D113B75E1071A76B87375CA3EBB2A7D398E1A5A3E717885DC798ECB2DCE328CF76DB37DB9126879AA14E6C3C3C8C9E1B8FD24299D06D4DAEB3B82ED86B40C5A6BBD5BF2F39E2043E3DCEE0673783DD636F0CBC38D3F072A06BF54C80E97459D3F5760B0F5A00A0050E68611FE509AF5CDA363B62AA2A36C46819E369D006CD1A0CC3A3949E8D567E7E52597460934D767A27F0C04FFF859013CD51B4708F7983FAE07D1FAF17C54492DCF4D64D2FA23ABC103F972EA9B751B8E2359F2DF5C0649FE2EA04BDA8FC2D729A41B60AF410DF65F40DAC1D953F4FB109F517B9F67FD288F2316369D5D4733ED85C9E877AD8DACF6918AFC26D10E9BD56B252D15074A7A5AAA634CF5172A973949A1447A07A9D2D6985B5363648714928D82995CA286C4AF9288E56F5411EAC972F5E9C6AE335D590431192261EECBDE67F9271DE63ED0658EE1CC77A20B1E02C9E0E0D2D8E92C810C96A04C488DE6E5B0FAD83CA08C9BFAE484B4E386C0CE04E84910A25BFBA9320A18CC5573759DD60CD43721C91035528F8209E0E370E2E879DB1848B1263AD2261734682F89A3766E8DC471A60F7F03C1730CD53320D02C443935CBD5128BBE49E047F621F6A77B556E0C99A096CB43317C1A67BD716C902A98320C7A07219084216AFE248ADF3105D007426C20C02966788920382871ECFBCD415C0D17B8561D57D528BA30BA48EB2E0C1162BC69641CBB127085AFC760F044382D50E5233F12670525842C19A67B2DB9A17F846DB5F75C7DBB47B2AE06E9628FBA08B777198C1F4512088D973595A37200CAD460A03A19264D986D44D36849918A6339685F303E268F2B00FF26621116F1A1F3096C18506735C78D53E148176342943CAB431D104798B446A143D3C4C0A23C1AF276E1420E491AEDDC4EF4EF7380EE0F475C58FF5735848D06EF999EC99755240489E83672F5C044F9F405BC4D4E7226430DFA648AD731134924D7B636F4DDDC483CF6FC58156328C894093B1BEADA56AF621316AF04A3A2C60C9AF199066989E2F4C0F60CBF69E0C8823680DA03D24B8E2EF67A6C42BEC8264860B7A3F517FB8CBBABB789ECBCA5EBBBD3D1C88357E7A8186B449CF0556A04FE20301D4E0D68453E3616C6D970B18E6A1E4129C7B1EC061B4A81F6A45F5FDB98894B23787244F5A0F9A3E97289A68D19C778A2485C4E7820DC409AB192037932364B4A5664485E7D88BCBE1AC2AD22D5DFDCDBABACCF71E79444C4D7C4FFC3CEE856B2FFAEBC23DD073B46338A5DC1F9F3E4F845A5C7C3C17C81E9E4DC3A4A09CDAAA8186C269D766DD9610E8CC733178B5C9745A81E76C0EDB558ECFDA3A164434ED026986CBFF21A17AAA6D81375CCF6A8BA0C79C98AFC700203E86DA1235F9B0F700B6802048B5337B07ECEBC5E6DC9FC98D068B6EAFE33EB2EF55C11941639EAF78A77A4137018048D5CD023645CBAD6786A957A7E22FADFEEAE3612306F67688543683F5A7428B653FAE8D163452CF082DE4011C152D45C689D152FC27186ECF7355521AA935C360C17F88D2C6D5C87F5AA123B4968EA60E6F319E2DB6C67ED3D10562B378DB213877BDB90AE2E09E70EF24C6FB9380267E1FC7E99FE2871769CD80CF12D1D8870301CDE87918039ACDD5F064409BF16DD1F4D01ACFB364074C4DBC3E4AD13321EDF9016ACD9590A000E09EA7098729142A52E5AC74DEA264B3DA0CCD6EED9C0C6E13AD9C2E309BC5C25937588CFBD9C6969CE5CA09341892B072FA61AFA0509728F54AE1456783AEE7B19CCE0786135B9E39A37256AB2B045025A0ED510A1AE1377B290845389E126BD5E8EFA37DCE195F75D859D0C34595F22C300545D7456A9403BCCE0047D47704AE4339BB7725EE633581F57F3D28D381438A17AD04379EA5A491035C8B8D50520E5BD218E27823350291ADE783A8FECB162E5A8E88302362CAB547F2175E8CCC9E601988A7BC4FBCF99AF8359CC2B1D2D125F98187CBE8E5B1DC3B4ADE97B10079999C976069A3DD4AD6EC224CB3FC5D9007B7811641BA2A75CD72FDBE72B978DF8617846E99AF570F6C139C2DD7B7091FF22A4AA17487ADE345AE4BBB25D6EAD37240756A77E7947A91CAF01AEC64C528643AE7844490716DBABDA23A2E9E5647FD1D225F26D929CBC190B40AE464A81E3187BD3A734413AD7A7376A839E66830B6E60146C05A9B803C5043B46C2EB51BABB5D567AF087816A5D507E481AAD5B2D96B0775875AFD602EA805D01B1B6A1BF07A8D7591E937FE6EB15A9A74435D8DD75F628DA2034CAC56318FA166C92F28B17AC55717D602259BA111524ED766581B40A99A5C69EB3A08ABB4CD60A8B4CAE3C0F1CAD50C5665956AA8AF72B443AC4BF05F8255286431D4DAE622C8AAD2D255174FE56750221546BDA41D81FA0C08DC1FA899B0DD82948F327ED2D5B0BE7B1053C1EDC33E03B92E5CEAA9190C359265E02F4114B1B4F850E880814AD50C50A5721E325265FD3B0656399701AF624607515C9D9671315CA51B457091C55EA3723ED76A54D2A11AA52C1DB610C8161BC947DA4A54F114BAEC2790C6A03989FB0AB706197DA8925646F7C5AA2AE7BA72016E11A8BC3B25334F7129E18E30DABE91568C843FB72DE5FE5906B88EE00B5693EAB4642008D77258968EC664D3E9E096594E6A99FD68A65728E8389473EF8D789216B28967E01B3C8C36124CBCEDA0FC5953DBEC4B4B87F0B260FD4555BACB5D2177B3BAF4467B08DC89032A3DA175D587493AA44696073A650C3EDFB363CEE3DCA18B702874A0A38498E93DBB0BE970CA927242EF2E972AE6BDAA47EFAA9CE160BB68D63A21DD768967DB8B1514155A49C99C717856E1107108D9FC4C98658A140C70891C58D8742783F44E5B7A251AA806B4A403A40EC11A2A4FC66306C2050FDDB7457A0538E1141C56EA10AAF82DFB05A41A98633C01C2F4A0E9EA9365F5BB231796414F957ACA9CE918031C75EC68B217C2BB6A3892951D05D30DACB31CE5319AC3B30F4796BD904F6CCD82416D24429C1D70B042A82B50D3292C90AF56C4D24D8AB7EE4AF7D178970D0F85B1E7DCE2E144FC6EEF3E856D3DBA2CDFFDE07DC663C7F91C6BFD524BA420A6FA6280397819CE1087A0675047C1EB33B1AF4A063BEB084A4894BE9A7D60E65A65AC43402E032B0CDD7E1E0C6D2716919188B5ADBFE9DB0FD5DDD9A2C629C219628C68E49315CA1DB158BC4DF2DD7D4C3105651B60AF326697E5F03186754BCA37D8688B77F362D9EABBAF4EEBD14EF08E5B22A3F8ECBC662C20121012BD8DBD05E783017CD8AD181CBB82781069F38F7E841B9129487805228B28C119A638F39E52CE74BA2DF5302C753BFE5282070C730E1E8D696ECEEB490A29138189347A36A8D30A8CC56C17ED9F89C078537FAE0CD7EDDED0C515CBEA73B2E3B67A6D7935D9FFED96D3A5D6207759E35FCD68FDA2F57EA86E0F77095376A1B4C131886C3D936F908BE6436DA9EAA3CF2EE28252CF64105E6A63A1868EDF45FD6D10D24D2DA3EFD1C434BD5A5A7F731B935F51C8F686EC87D4ABEA7A64A6185C60423CA17ACC9459A21B71572C11BF9B2C95608B3E9586A7FB1B93B3462A4B06D8CC4FC204451324EFA0505E984A8DB76F84CDF9457EF93B71836EF02C6021A81D3C4D9C51585053825DB5E16762826B373FA760E8B183882B397D1076106711B5E8E8DA9719B050F57E45649FD169D621E34BF37B8133C4EC22C30F13E4B735F2FD7395E2B9E3045DAFD113918F4E8CA8D935FACF015840F7B7D373FCC1B755655125651816C0C027F98639988E77746E623312EDE826A527DB3A1A9E1AD856B8712A88B49E3EDAB43727D5439BFA03FF9927299F8F57C99A4559F9F5CDC9173E54E18655BFDEB1ACD4CA372538CD98955EA4F6449B3C97F15DD27837515AD46469925B0F0679B00EF2E06D71900B56394F5EB12C2B5F77FE16443B5618ECDFB2F565FC69976F7739EF32DBDC4692C2AE709462AAFFCD89D6E6379FB6254F7D74813733E45D609FE29F7761B46EDB7D1144AAC90646A2F0C0F20BE3DFABB12CB621ECFEA9A5F4318989846AF6B58E63BEB2CD362A0EE99FE2EBE01BEBD2360EDF0FEC3E583DF1EFDFC27581658C887D2064B6BF791706F769B0C96A1AFBF2FC27C7F07AF3F8AFFF0F736D2982ACA80200 , N'6.1.3-40302')

@dtivel dtivel merged commit 24f5e4e into dev Apr 17, 2018
@dtivel dtivel deleted the dev-dtivel-migration branch April 17, 2018 22:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants