ohdsi / commonevidencemodel Goto Github PK
View Code? Open in Web Editor NEWCommon Evidence Model (CEM) is a structure for standardizing evidence about drug-outcome relationship across disparate evidence sources.
License: Apache License 2.0
Common Evidence Model (CEM) is a structure for standardizing evidence about drug-outcome relationship across disparate evidence sources.
License: Apache License 2.0
Need to fix this portion once this issue is fixed:
https://github.com/OHDSI/CommonEvidenceModel/blob/master/postProcessingNegativeControls/inst/sql/sql_server/splicerConditions.sql
Need to bring back the idea of "confidence that a concept exists across data sources"
When looking for universe, always put drugs before conditions
Also fix the SQL for faster pull.
Need to update process to go the opposite way, when given conditions produce drug negative controls.
A manually annotated dataset created by the FDA: https://bionlp.nlm.nih.gov/tac2017adversereactions/ -- see the Data Access section.
And, these for liver toxicity: https://www.fda.gov/ScienceResearch/BioinformaticsTools/LiverToxicityKnowledgeBase/ucm226811.htm
Create export function that:
Output is data tables and DDL.
Then based on these updates, fix the SOURCE file.
Via a WebAPI call
alter table owner to rw_grp
This commit contains the changes:
db50d15
Files to review:
When using FAERS in Negative Control Building I'm folloing the Evan's paper however I wasn't able to calculate X^2 need to go back and fix that.
Since Postgres is case sensitive, maybe at the staging level cast things we query on to LOWER() (or I prefer UPPER() but I know no one else does) so that we know we don't have to deal with it in the CEM stage.
Tagging @leeevans
Thanks to @rkboyce for this idea!
Actually instead of doing this in STAGING I'll do it when pulling into CEM.
UPPERS are slowing down the queries, eliminate them where possible.
Took it out because I was having trouble with Postgres, but need to get it back in.
967823 | Sodium Chloride |
---|
19049105 | Potassium Chloride |
---|
Remove row counts from Atlas processing.
When trying to find Drug negative controls from a condition, there are drug classes in the evidence that I should exclude when trying to pick a drug. Right now I'm finding them by hand.
SELECT SOURCE_CODE_1, SOURCE_CODE_NAME_1, CONCEPT_ID_1, COUNT(DISTINCT UNIQUE_IDENTIFIER)
FROM CEM_TRANSLATED.dbo.MEDLINE_AVILLACH s
WHERE s.CONCEPT_ID_2 IN (
4055484,378414
)
GROUP BY SOURCE_CODE_1, SOURCE_CODE_NAME_1, CONCEPT_ID_1
ORDER BY 4 DESC, 2
Review this thread:
http://forums.ohdsi.org/t/broad-drugs/4219/2
Hi Erica,
Some suggestions:
For readability, instead of having a SQL snippet as parameter I would create a Boolean parameter @avillach , and use it like:
{@avillach} ? { AND lower(qualifier.value) = 'adverse effects'}
There are some things that may better be precomputed once In a permanent table (with indexes) that you delete at the end.
For example, quite a lot goes in to filtering PMIDs, and for example this lower() function means you’re not using any index so slowing down your query: https://github.com/OHDSI/CommonEvidenceModel/blob/master/evidenceProcessingClean/inst/sql/sql_server/medline_coocurrence.sql#L107
You actually compute a lot of stuff for PMIDs only to filter them out. I would create a single table of PMIDs to include once at the start of the process, and then join everything with that one.
Another opportunity for precomputing is the MeSH hierarchy. Here you join three large tables: https://github.com/OHDSI/CommonEvidenceModel/blob/master/evidenceProcessingClean/inst/sql/sql_server/medline_coocurrence.sql#L107
And again:
https://github.com/OHDSI/CommonEvidenceModel/blob/master/evidenceProcessingClean/inst/sql/sql_server/medline_coocurrence.sql#L55
I’m not clear why you’re joining with the mesh_term table here anyway, since you end up using the ui you already had.
Why not create a single new relationship table combining mesh_ancestor and mesh_relationship. You can restrict one side of the table to uis that appear in the chemical list, so this table should be a lot smaller and therefore quicker to search.
You may also want to break up the query in parts just to find out what is taking so long.
Cheers,
@schuemie
Here would be a good place to start:
http://www.ohdsi.org/web/wiki/doku.php?id=documentation:software:splicer
Tagging @anthonysena
Right now for the CUI to CONCEPT_ID mapping we use UMLS, however this means we are missing RxNorm extension maps. We could double back and just look for direct string mappings or some other ways to improve the mapping.
Right now my DC count is a hack because the real DC count wouldn't come back in a timely manner. Need to fix.
Right now the processing requires access the patient level data, need to think of a way to do that without it.
Need to create a hierarchy of publication types. For example Clinical trials
trump case reports. However we should do that in an informed way understanding
how they types get used and their relationships between each other.
Once raw data sources are up-to-date, the SOURCE file is updated, CEM has been run make a release of the code in Git.
For people who don't have access to patient data, precompute patient counts for them to use.
Could probably pull in Indication and Contraindications as well to the Indications column
select * from devv5.concept_ancestor
join concept on ancestor_concept_id = concept_id and CONCEPT_CLASS_ID in ('Ind / CI', 'Indication')
where descendant_concept_id = 1112807 -- Aspirin
These were on the label, why did CEM fail to catch them:
CONCEPT_ID | CONCEPT_NAME |
---|---|
194083 | Vaginitis and vulvovaginitis |
194081 | Acute cystitis |
201078 | Atrophic vaginitis |
4081648 | Acute vaginitis |
There are two main issues when going from MedDRA --> SNOMED:
1. Directionality in Vocabularies
The original mapping used in the OMOP Vocab is SNOMED -> MedDRA. Sometimes a specific SNOMED term gets mapped to a broad MedDRA term, in that direction it is correct. However if you flip the direction, it may not still hold true.
Take the example of MedDRA term Malaria in the OMOP Vocab. It has direct mappings to these SNOMEDs:
432690 Maternal malaria during pregnancy - baby delivered
434424 Malaria in mother complicating pregnancy, childbirth AND/OR puerperium
438067 Malaria
4058268 H/O: malaria
It is correct to say that “Malaria in mother complicating pregnancy, childbirth AND/OR puerperium” in SNOMED is a “Malaria” in MedDRA.
But it is not correct to say “Malaria” (MedDRA) is a “Malaria in mother complicating pregnancy, childbirth AND/OR puerperium” (SNOMED).
What we really want to say is “Malaria” (MedDRA) is a “Malaria” (SNOMED)
This isn’t a problem with the Vocab, just a new use case – we want to be able to go MedDRA --> SNOMED without casting to large of net.
2. Concept Ancestor
I was trying to use CONCEPT_ANCESTOR before in my mapping but it casts just too wide of a net. Using CONCEPT_RELATIONSHIP is best.
After speaking with Patrick we really need to generate an appropriate mapping for MedDRA --> SNOMED for CEM. I’m going to do the following:
Using this process, I was able to map about 40% of the codes (doesn’t mean the map is perfect – especially with the “[03] Select a Parent” option).
The next step would be to put this through USAGI. I would auto accept my mapping using “[01] Only 1 Vocab Map” and “[02] Exact String Match”. I would review “[03] Select a Parent” to make sure it didn’t go to high or to a bad spot. Then use USAGI to map things that didn’t get a map.
I am interested if you have any thoughts about our need for a MedDRA SNOMED mapping for CEM and how to go about it.
For AEOLUS we shouldn't just use a Meddra to SNOMED mapping, we have
learned this isn't very good.
I should look for some type of combination of:
WITH CTE_FAERS_MEDDRA_USAGE AS (
SELECT SOURCE_CODE_2 AS MEDDRA_CONCEPT_ID, c.CONCEPT_NAME AS MEDDRA_CONCEPT_NAME, c.VOCABULARY_ID AS MEDDRA_VOCABULARY_ID,
COUNT(DISTINCT UNIQUE_IDENTIFIER) AS FAERS_DISTINCT_REPORT_TYPES, SUM(CASE_COUNT) AS FAERS_SUM_REPORT
FROM CLEAN.AEOLUS a
JOIN vocabulary.CONCEPT c
ON CAST(c.CONCEPT_ID AS VARCHAR(100)) = a.SOURCE_CODE_2
--AND c.CONCEPT_ID = 36718566
GROUP BY SOURCE_CODE_2, c.CONCEPT_NAME, c.VOCABULARY_ID
),
CTE_MEDDRA_TO_SNOMED AS (
SELECT CAST(c.CONCEPT_ID AS VARCHAR(100)) AS MEDDRA_CONCEPT_ID, c.CONCEPT_NAME AS MEDDRA_CONCEPT_NAME, c.VOCABULARY_ID AS MEDDRA_VOCABUALRY_ID,
cr.RELATIONSHIP_ID,
c2.CONCEPT_ID AS SNOMED_CONCEPT_ID, c2.CONCEPT_NAME AS SNOMED_CONCEPT_NAME, c2.VOCABULARY_ID AS SNOMED_VOCABULARY_ID, c2.DOMAIN_ID AS SNOMED_DOMAIN_ID
FROM vocabulary.CONCEPT c
JOIN vocabulary.CONCEPT_RELATIONSHIP cr
ON cr.CONCEPT_ID_2 = c.CONCEPT_ID
AND UPPER(cr.RELATIONSHIP_ID) = 'SNOMED - MEDDRA EQ'
JOIN vocabulary.CONCEPT c2
ON c2.CONCEPT_ID = cr.CONCEPT_ID_1
AND UPPER(c2.DOMAIN_ID) = 'CONDITION'
),
CTE_COUNT_SNOMED AS (
SELECT MEDDRA_CONCEPT_ID, COUNT(DISTINCT SNOMED_CONCEPT_ID) AS SNOMED_COUNT
FROM CTE_MEDDRA_TO_SNOMED
GROUP BY MEDDRA_CONCEPT_ID
),
CTE_SELECT_A_PARENT AS (
SELECT *
FROM (
SELECT ms.MEDDRA_CONCEPT_ID, ms.MEDDRA_CONCEPT_NAME,
c1.CONCEPT_ID AS SNOMED_CONCEPT_ID, c1.CONCEPT_NAME, SUM(MAX_LEVELS_OF_SEPARATION) AS SUM_DISTANCES, COUNT(DISTINCT ms.SNOMED_CONCEPT_ID) AS SNOMED_COUNT,
ROW_NUMBER() OVER (PARTITION BY ms.MEDDRA_CONCEPT_ID ORDER BY SUM(MAX_LEVELS_OF_SEPARATION)) AS ROW_NUM
FROM CTE_MEDDRA_TO_SNOMED ms
JOIN CTE_COUNT_SNOMED cs
ON cs.MEDDRA_CONCEPT_ID = ms.MEDDRA_CONCEPT_ID
AND SNOMED_COUNT > 1
JOIN vocabulary.CONCEPT_ANCESTOR ca
ON ca.DESCENDANT_CONCEPT_ID = ms.SNOMED_CONCEPT_ID
JOIN vocabulary.CONCEPT c1
ON c1.CONCEPT_ID = ca.ANCESTOR_CONCEPT_ID
AND UPPER(c1.DOMAIN_ID) = 'CONDITION'
AND UPPER(c1.STANDARD_CONCEPT) = 'S'
GROUP BY ms.MEDDRA_CONCEPT_ID, ms.MEDDRA_CONCEPT_NAME, c1.CONCEPT_ID, c1.CONCEPT_NAME, cs.SNOMED_COUNT
HAVING COUNT(DISTINCT ms.SNOMED_CONCEPT_ID) = cs.SNOMED_COUNT
) z
WHERE z.ROW_NUM = 1
),
CTE_EXACT_MATCH AS (
SELECT CAST(c.CONCEPT_ID As VARCHAR(100)) AS MEDDRA_CONCEPT_ID, c2.CONCEPT_ID AS SNOMED_CONCEPT_ID
FROM vocabulary.CONCEPT c
JOIN vocabulary.CONCEPT c2
ON UPPER(c2.CONCEPT_NAME) = UPPER(c.CONCEPT_NAME)
AND UPPER(c2.DOMAIN_ID) = 'CONDITION'
AND UPPER(c2.STANDARD_CONCEPT) = 'S'
WHERE UPPER(c.VOCABULARY_ID) = 'MEDDRA'
),
CTE_MAPPING_MEDDRA AS (
SELECT DISTINCT
mu.MEDDRA_CONCEPT_ID, mu.MEDDRA_CONCEPT_NAME, MEDDRA_VOCABULARY_ID,
ms.RELATIONSHIP_ID,
CASE
WHEN cs.SNOMED_COUNT = 1 THEN '[01] Only 1 Vocab Map'
WHEN em.SNOMED_CONCEPT_ID IS NOT NULL THEN '[02] Exact String Match'
WHEN p.SNOMED_CONCEPT_ID IS NOT NULL THEN '[03] Select a Parent'
ELSE NULL
END AS SNOMED_MAPPING_TYPE,
CASE
WHEN cs.SNOMED_COUNT = 1 THEN ms.SNOMED_CONCEPT_ID
WHEN em.SNOMED_CONCEPT_ID IS NOT NULL THEN em.SNOMED_CONCEPT_ID
WHEN p.SNOMED_CONCEPT_ID IS NOT NULL THEN p.SNOMED_CONCEPT_ID
ELSE NULL
END AS SNOMED_CONCEPT_ID,
cs.SNOMED_COUNT,
mu.FAERS_DISTINCT_REPORT_TYPES,
mu.FAERS_SUM_REPORT
FROM CTE_FAERS_MEDDRA_USAGE mu
LEFT OUTER JOIN CTE_COUNT_SNOMED cs
ON cs.MEDDRA_CONCEPT_ID = mu.MEDDRA_CONCEPT_ID
LEFT OUTER JOIN CTE_MEDDRA_TO_SNOMED ms
ON mu.MEDDRA_CONCEPT_ID = ms.MEDDRA_CONCEPT_ID
LEFT OUTER JOIN CTE_EXACT_MATCH em
ON em.MEDDRA_CONCEPT_ID = mu.MEDDRA_CONCEPT_ID
LEFT OUTER JOIN CTE_SELECT_A_PARENT p
ON p.MEDDRA_CONCEPT_ID = mu.MEDDRA_CONCEPT_ID
AND p.SNOMED_CONCEPT_ID NOT IN (
/*BROAD CONCEPTS*/
432867,4024561,138525,77670,4232079,40484136,40479768,40485074,40485073,40479766,4231941,40479422,4335808,4238518,4149782,312437,4262174,4219740,46273647,46273520,46273646,46270397,46273519,40483794,46273645,46270434,4326993,4169985,4035422,4147003,4324765,72405,4201372,139900,440417,4219481,77073,78227,4048139,4181453,200219,320741,75037,439678,36716009,4311853,78506,73554,80180,4003476,444247,4133004,254761,4275649,4269128,4278454,4262812,4212238,4215628,4029334,4065081,4078796,4242744,4206197,4220969,4147995,4124682,4301516,4096625,192767,135777,4236724,43021941,4014218,77646,4018496,4018970,320425,316999,4133718,4040820,40480937,36716182,4151057,4018956,4048512,4146173,4135647,40481302,140673,4220328,4309070,81902,435839,4138412,4095428,4016543,4138275,133299,257315,4023316,4292524,45766599,439265,4104506,4138282,73673,139906,141104,200881,433595,4040388,4199409,4055474,438608,4055473,4195780,4050234,4050550,4052210,4055479,4110161,4050549,4135097,313902,4056453,4180276,4056454,4152294,4136693,4015344,4014219,255573,316501,4055475,4138276,4050544,434531,4106354,4168183,194797,4004352,313878,4038043,134438,4016831,4222174,4230268,135892,443410,4136692,4055597,4055596,440572,4055595,4055594,437152,255848,77955,4085549,4055477,4050548,139110,4050546,319843,74733,4055476,4145607,4050547,4052209,4052208,4149044,4052207,4005907,4110155,198599,4050678,4050682,317712,437147,4052217,4056573,4112796,4116723,4054058,134186,4052214,195125,75126,4050554,433736,4232869,4055590,4050674,4213373,73085,4050555,435684,4055593,4052218,4116717,195760,4328821,195400,4050542,40482807,37018842,439266,199762,138378,40484571,44783380,4056455,4055589,4113929,4189541,4050552,4241439,4062253,4059242,4087577,4110164,4056568,43020630,314208,441725,4055472,4056460,4056457,4050553,201164,44799731,44800498,42709754,4056458,4056561,4056564,437149,4056560,434224,4050557,4055598,4056567,74808,4056562,4055591,442321,440257,4116728,439270,439267,132703,4050679,319967,438024,442581,313360,4050680,4050681,321726,44796137,44796163,4056571,4055599,4327479,4052213,4056570,437120,4050551,194209,4056456,444188,4147300,4132551,196851,4132550,443878,193907,195124,197153,197151,197140,199959,40491866,4054892,40489827,4190345,4015757,141094,313062,4056440,140214,4152341,315399,4056439,443745,40484607,321389,196849,4134184,4136573,75344,4052977,4170638,4056151,4224480,439190,436277,437427,315116,373648,40486118,4298193,4153359,4105482,4113801,37016155,4056585,4053138,439271,320888,438903,37018671,40480185,36716800,4086198,4055866,4108639,4113815,4331101,4196291,378253,4271776,195118,4137343,4187244,4134171,4138152,4157453,40487489,4181456,140664,74448,37018679,4027540,4220002,4181454,193627,4153730,443860,40493018,444235,4155082,4138150,40480453,4177851,75628,4108642,4106356,4164349,138102,4110709,444237,4178956,4189293,4292542,4292541,4194597,444435,4106355,444206,4213507,443582,4116086,4170730,4108638,444049,4106352,444193,4051134,4324788,443583,4055859,4177053,77355,4115696,4159964,4058364,4108643,4086201,4086200,4043679,40492779,40480978,72997,40482662,443557,317585,4136555,4054054,37395579,435098,4221189,4055870,4135090,4016263,75047,438515,4134182,4323193,4323893,4117771,75949,36717463,258369,4052998,4050380,320746,4157457,4162993,199870,4041510,4188191,4148916,46272749,433015,74399,36716697,4028073,4153380,4159164,444218,314463,4163710,4237912,43021868,321319,4329734,442256,74396,4152928,4030291,43020948,4132130,4146947,40491477,4108742,4209843,135759,4116245,135765,40489940,4266193,4266805,4109481,43022059,4187240,4109468,4056169,4193597,44806517,4154439,4262590,442135,4035610,40480128,4056152,4129730,4054408,443955,4153973,4056158,4051280,4082514,4057588,4035744,4052992,4052991,4052990,4291025,4170635,4086196,81611,4113004,4340264,136354,443388,40492938,4050399,4129215,4054739,36716183,45757442,4164342,4050093,79903,4163900,4128888,436782,439103,4316226,4216555,4180167,4296204,4108467,4123196,4060006,76777,4054547,80493,73290,81939,4190229,74726,4134174,4298595,46269695,193344,4313487,4266654,4031484,4290726,4290964,4095251,4072641,4124681,80494,4189855,73553,4274404,4018369,258895,4019340,443425,4199961,4121460,4119454,4201174,4119941,4053147,4056314,4334729,4162251,4112752,4050400,4051308,141232,4052978,4112758,139750,44782977,40485985,321109,4152843,4328721,4304010,135333,4050224,4050526,4056157,4039212,4225906,433178,4242095,4203449,4236021,4272468,4242704,4028677,437537,4059102,4052985,4219135,4052976,46269882,46269877,46269887,440383,44801154,44799035,44795104,44794371,44794370,4152280,4062233,4062232,442077,4326519,4051426,4051425,4056312,4053144,315282,4050090,43020949,435972,4155297,4179980,4111920,4154440,4056305,4051307,4277276,437663,4268842,4268846,133547,4095427,4138833,4029803,4168057,4081246,37017125,4129078,4341654,134736,314054,40491478,200882,200171,36715557,4054854,440893,4059090,134441,4152478,138996,439966,4221679,4299106,4152477,44782946,4239727,4110707,4171257,444209,4266786,4054736,4299294,440260,437461,43020946,43021473,43020947,43020950,4333742,4187067,4155491,4155492,4217633,442309,197148,4157332,4292361,4266803,43531579,43530647,37395516,37395521,37395514,37395519,37395517,37395520,37395518,197320,36716312,44809061,44809062,44809063,193641,4054770,4062110,4054771,4062111,4058963,4094964,46269878,4159137,46274073,201167,4162253,46269883,439417,4081229,4029043,4103224,4112853,4113802,4134603,137944,4295611,4316083,4112141,4063481,4077056,4063484,4262920,4153972,195948,201093,81251,4131014,4154438,44782947,197422,4056446,442789,4138269,197154,197714,4202813,4239386,4052200,4105287,380731,81195,4062221,4058964,4054772,4054773,4058965,4096006,4343689,4093843,80576,443644,194180,441443,442788,4139109,4246209,438603,4052197,4298721,4266339,4271029,194807,444290,4050538,4113927,4047868,45766654,4295714,36716852,4119621,312327,4055468,140168,198019,138936,4140204,4058953,4044402,4095264,4152476,317713,315113,4054890,4301414,4136849,4258285,437725,432480,438600,4052203,36713561,36713560,4083118,435358,36713562,435933,4095882,4151981,4095276,138612,4062108,4054762,4054763,4056885,4056886,4058956,4056887,4056889,4094962,4056718,45772673,45766655,432458,438580,4216828,195673,4016546,4019718,4095553,4149600,138876,313608,4195932,201157,4151986,432296,4060621,4297643,4287931,4221820,4110154,4270502,4136660,36713411,37017593,4160362,4054852,4058957,4054767,4054768,4054769,4058958,4058959,4062109,4058960,4054765,4058961,4058962,4054766,4095542,4056438,45768794,4095881,4144389,257094,46273640,4028389,4134940,435663,433883,4054053,4237809,4119786,4028118,46270493,439171,438894,4048093,437413,435390,198016,438285,432474,436553,4054887,435391,373057,4298007,4059100,440250,433050,373347,4154170,4095879,4246290,259044,42872427,74179,141972,4300061,258781,317009,4252581,40487824,253506,4119796,257907,4087379,4318404,4312754,4300880,36716582,36716907,45766714,4080926,133835,4029295,4331304,4242720,4206876,198286,435964,440251,440244,434789,441147,439182,438003,440236,432752,437133,441985,439194,433899,4056714,439949,436258,435104,197417,441709,4095880,439944,438595,435959,436557,440870,256556,4019713,4071066,4180998,4003349,4328879,4096608,434508,4129394,381440,320563,4206875,4019341,4311280,4018366,435672,441158,444095,432764,436842,436526,437106,4087151,4134926,439950,4003147,4001786,432478,37017260,4057019,435646,432475,442341,438279,4173162,4116727,4275428,261433,256844,255105,433051,435960,441432,252477,4039014,433623,440561,433624,4068577,4103202,4307813,4338664,4028484,4199290,4006471,438596,134743,442568,439405,436841,444197,433058,444196,444198,433052,434785,4291304,316535,440869,42873157,4009796,134757,196260,195398,132446,4033514,4110254,193620,197311,4151224,192763,4308537,44806657,4054909,4093223,437993,312349,4095643,314409,4347418,4220631,4054908,4308093,4001790,4001132,4001785,4001787,4001788,4001789,316795,79908,37017028,381591,381316,4266046,46271022,4266792,4246661,4058375,76239,4175807,77387,4155078,4128544,4155604,433604,432585,316139,4112611,4096610,4159875,4298720,4006984,134118,4083300,4301027,4116878,4027539,4028056,4319304,36713625,4149682,4048886,4116706,4218591,4147280,4233644,4216413,4207522,4276038,4265920,436824,4242290,443248,4059096,321052,44782775,4054878,4054857,373101,4054855,36715774,432719,4025193,4129393,434337,4062235,4062234,4057023,4227086,4054856,317305,319844,76241,4033051,4299804,4301018,4030274,4062230,4059101,138841,254061,316993,4059095,4085103,4296184,4134132,4317258,44801656,4133026,4228879,4080321,4033355,4266661,4299545,40484572,4271016,4189459,4295465,45768719,4033500,4295326,4133000,4330636,4031490,4081245,4024549,44807964,4266657,4033034,4031629,442761,80860,4053828,4146496,4062231,40485984,4062229,4057020,4066995,4185932,4329847,4298736,4132999,4054401,4054853,433208,44783617,4322024,4033802,4290835,4297644,4320791,200174,4132089,4133001,4105286,437990,435665,433602,433331,438874,440222,435377,437105,438575,437391,436830,437108,435662,4131748,314659,4122617,4057580,312336,4103495,4047867,4152374,4054867,382034,4062238,433606,72457,441133,432742,318443,253607,4159165,437708,4119774,43021632,4007911,4007910,4008988,437983,438569,439143,442993,4010871,436818,442994,442992,442999,437386,4169459,77403,36716537,77129,4054868,4110141,4176173,4095860,4170742,4079562,435138,4062239,313543,4058511,321886,312339,4194610,4059112,321887,4278217,4162038,4180636,43020847,43020845,4057030,4059115,4059113,4062242,4062226,4054870,4057035,4112481,4109232,4208028,433642,4056898,36715775,36715773,434504,439943,197418,4325866,381416,441134,375366,42872560,4133018,42872561,439933,440221,439384,437685,4011508,45772685,434764,4136701,4054860,435681,4175651,4324690,201435,4302223,79212,4062240,4057018,439211,4226282,4110293,4057029,4001336,373056,40492393,4059098,4057028,4050964,4054869,434509,36716603,4129397,4106172,4057027,4054859,136865,4056902,36715776,36716599,4264035,4248131,256451,36717351,4029831,4131328,4057350,78235,4054865,4059107,4062245,441703,439945,440551,4193520,4102446,4210469,4331317,4054864,4059106,4054866,4062236,4132083,443944,4133017,4132082,381978,42872578,438280,444239,438590,36715609,36716905,4347416,377439,4057017,4059092,4062227,4056900,4056901,4133715,4195439,36716540,4234112,4191596,4096616,36715608,36715607,36715606,4016540,36716577,4132546,46270764,4095852,45763835,4152375,4059109,142033,44796176,44813482,4059097,4059091,4056899,4062228,4059094,43531029,43531030,43531649,4059110,4054879,36717481,4178773,4043672,45763834,46273183,197024,321876,4054872,377266,40487970,4175582,4318800,79168,78880,4220695,4119460,4174520,4048695,4180126,44784217,4068155,4248028,435093,45766773,4062244,4291005,441479,4062243,46271082,4054873,44783024,4057033,4062246,4044351,44801158,44795688,4056895,4057031,4057032,4218884,4267553,133646,199204,4015352,4071876,318174,4234997,40488439,4145868,4119777,40488825,4119775,4145867,439415,192359,4300192,317296,441589,4176301,4299440,441980,4185607,4264033,4137275,4190192,4194729,4091710,4092155,4150304,443210,4208466,4027369,443784,36713504,4311420,4152378,434462,4044405,4062224,4059088,4194060,4314002,4194153,197656,312723,40456182,4099994,4103130,4322316,193016,201161,193630,4340114,4176139,4047862,440543,36715674,4152631,4047866,196724,4101468,36716541,193355,4134584,4190194,4136697,4136694,4160875,4138288,80767,319845,40490966,36716739,4096315,4282857,436209,4340123,4202065,37016841,4168061,201990,4056713,4160289,4154164,73349,44782949,4053833,44802665,4059116,4057036,4112480,435829,4095851,4062225,4199590,193079,442619,4180779,201313,4323289,4266370,4342643,40491492,4185758,442560,78916,4185273,4176137,4182555,4278672,4131595,4178962,4079931,312358,435101,4134889,134453,4015350,4050747,46272915,4142905,4179826,4177556,4134336,4048393,4134338,4263367,40480859,4179519,4181799,4189531,79116,314383,193253,4135566,319825,37395689,4169743,443575,4059173,4054605,4151202,4332937,4018481,4155322,4057354,78910,4153396,4051895,4164489,433064,4018480,4095554,44783947,75970,4057352,4155493,193250,4170637,4108637,4024306,76611,4131616,438777,4177494,4024552,4230774,4134586,43020780,4334638,321588,4102856,4101488,4132088,43020945,4166245,4119458,43021803,43020844,4167693,43020653,43020655,43022061,43020843,4165905,4048520,4281749,4195003,4100136,442982,4239975,4101621,43020904,4027255,40457757,4054819,37017259,45763653,4187096,4130375,4291649,4151200,195363,4283381,196559,199991,4126132,194995,192964,443923,37016648,4137332,4134920,4113942,4113941,195107,4027396,4003666,37018708,4050235,435123,78937,4044403,4043673,4096005,4049002,432754,4129398,4014519,4320020,434329,4157036,198897,444215,443091,192753,201718,201160,443092,373638,200566,4219086,4059104,4242392,4158483,372547,44783026,4057038,4054861,443225,36716912,4116573,4059103,45770735,4059452,45757752,4208264,197136,4126119,435395,40483287,4242411,4126305,40487130,40487131,198124,4128220,4030518,4128201,433629,444212,443872,442639,4095415,4095884,4059253,4053591,4086530,4086529,44782948,36717491,4053831,200247,4129400,4053592,4053593,197710,4053832,36715892,4072650,4135623,4054059,4212235,4053834,4094324,434770,201756,4058951,4058952,4054760,4055466,136279,442008,139239,254832,437431,441183,132775,136309,4271034,4240404,4062101,4013775,4088018,442103,4055460,4055464,4055461,4054758,4055463,4062102,4054759,4275024,4055457,78149,73001,4128532,4233941,195482,4176943,44784302,44784609,40492837,40492697,40493327,40488813,36717471,36717576,4134129,377680,382014,40480936,4180790,4044770,4154088,4153401,4047859,4129407,77074,4208025,44806633,44806635,4134947,4034005,4057484,4156050,78097,435701,78621,4054989,434530,4247802,4246461,444132,40492239,4011811,4212887,4170714,72618,4271598,4126293,437763,373082,4319256,4247654,375716,380265,4202381,4061735,443398,443396,4059105,141608,36715926,4043720,200611,44783025,197089,4151221,4057022,4046348,4046347,4078976,4054862,4248551,4154173,4151210,4048039,4048040,4151825,440545,4062388,4104919,4057176,4056716,4330086,444115,4054977,4166905,4279139,4265765,74216,137909,74135,134398,4281516,46273899,4177483,43531034,43531033,4182966,4053308,439975,4238825,4130995,4131598,4130514,4131614,435411,440587,135717,437471,438935,434525,432774,443400,4232159,4222327,4282445,4296169,4238982,132344,4090111,37017130,37017127,37397434,133002,4096009,134735,443454,4136764,4226266,4228484,4233604,4228485,4236885,4233605,44805546,4228486,4228487,4236886,4233607,4228488,4226267,4226268,4157319,195575,197808,4131746,141663,4151205,194684,4177488,4212991,436303,138455,201714,4335893,195585,4244235,4239382,4055020,4212992,4338764,4098851,4335980,4335979,4235826,4207288,200060,442530,4162138,376267,4134459,4147015,4154578,4071709,4246693,4033966,36713486,4129887,4129868,4335891,4335892,4112494,442628,4138286,4335978,4335977,4179094,4112493,134730,4180144,4167909,376564,4218018,4094966,4165911,4334742,4338869,4335872,4152401,36715605,4338883,4210440,4016541,4206874,40491472,4129744,4054423,4129236,4054421,4129743,4331953,315085,135858,432833,4193869,36716920,135122,75996,443976,141758,4058954,4055270,28083,4049938,4307254,4194977,4048279,4071589,376713,4122755,4112974,4152156,4053701,4129869,432941,80497,374748,44784365,36715772,36716598,40489826,4235863,4154171,4173809,4054429,4054828,4053595,4030889,44806631,44806640,44806632,4166904,4087572,4053306,4198381,73571,4244949,4132458,4340958,201221,195906,4030056,196347,132356,37016130,139057,4062391,4057178,4057177,4108813,198704,4057170,4138837,45766265,4276025,45765647,4133611,4130045,4151989,4334725,4334727,4122226,4095549,4096010,4110759,4337359,200564,4094967,4153712,318772,434877,194087,4283232,44808285,44806638,44806639,4167103,374226,4208700,4106678,4102550,200872,4094968,4107554,4053403,4093228,4155029,46270817,198010,443100,4154442,4053830,4052678,4175522,4206244,4174262,79890,4175329,195961,442270,45772120,4083964,4155080,4151821,4002661,4154572,4280659,4152644,4123732,4153713,4112889,4096496,4096497,4060536,4158480,4094976,4228447,4152481,4053272,4049809,4169992,40486462,75053,4084934,46270317,4095546,4237734,4307518,4056717,4059258,4244080,4031116,4059257,4096008,4344273,4028969,4062390,4152163,46273310,4027237,4344027,4059256,4059259,4344259,4090615,4090616,4054980,374313,192671,4338544,4312944,4154739,4151199,4344387,194990,43022062,195761,4001981,443588,443561,4133973,45763833,36715577,443387,4001445,200355,4096056,4153400,444455,4053159,4247357,4094816,4051290,4050382,4053120,4056168,197654,4054063,80578,4208663,4061734,440965,4301239,4044349,4112731,44783027,23164,4043241,4043242,4043243,4043244,4158482,4273449,4273452,4280421,4273448,4273451,4273447,4280419,4277674,4273450,4280420,81670,4113129,4131611,193626,4016547,4155764,26052,4134430,4140164,74211,374915,4104859,46269881,46269886,46269876,4266701,28385,4054986,4057479,193518,4090129,75406,4051900,4059553,4114197,4159865,506636,4276587,44791649,44809088,44791591,46286830,4275347,40491505,4050990,4052810,194804,4095565,4216397,4054910,4254542,4147478,4056892,4058966,4056891,439407,4125021,4055361,381952,374221,4054774,4062222,4056890,36715671,36715672,36715673,4154172,380378,4232071,373724,4130037,4272646,442553,4034150,4147013,4137339,4044384,4000938,4166906,40486605,23986,4019720,4098736,4019722,81454,4309673,4053596,4311270,4129401,4295126,4052831,4003839,197508,201340,4292402,4214982,4009314,4030203,4181350,4118989,4341650,443949,4311557,4305006,4314630,4064161,4062387,378135,4227090,4101997,376647,258084,197816,316866,252840,4134591,135772,133228,443795,4009635,44782549,4302295,4151103,4301248,4194971,4057044,40490974,4134455,4237168,444202,4326255,4171019,4176868,440703,4207688,198678,4233825,439842,442105,4134156,434251,4151208,4134932,4112120,4110295,4151985,36717345,437385,4267417,435803,4129865,432307,4151982,4154163,435537,194984,4144765,4277921,4110858,4052648,437409,42873007,4181760,4101480,132780,4025024,4106092,4022231,4151824,444465,443772,4117779,194791,4054979,81752,444466,4108471,40486604,4170636,4323139,4194941,4154165,4155324,4054064,74606,45769840,4049932,4096477,4181343,4167777,4129737,4054813,138906,444403,4120952,135417,4122774,4122776,76914,4094338,4095266,197709,4054443,4137348,4053835,4153554,4320822,4181484,374888,443701,4019343,435835,4156265,36715807,4155495,4054985,4051901,4153882,4153393,4151703,4151820,4049957,260246,4018479,4133990,4179823,4130990,4166907,4154441,4238868,4233525,4094815,4172488,4096314,4106679,4164344,4048141,444191,4152293,4152164,140821,4293897,4182210,375239,4318864,4168666,4153392,4243161,4106357,37017244,196363,4220824,4236986,439840,4167105,79069,4290881,4171254,4146847,4174422,4301415,4079861,4086195,141411,375415,4334643,4152162,4133008,4200423,4164341,4197180,45763953,200680,4129178,375504,4093226,37018711,4131456,375800,443564,373718,4027558,4028366,4180005,4140510,444467,4069441,4239720,36712767,4164867,4168585,374009,4023986,195963,4096028,373747,4219283,4208051,78025,76848,372328,4130842,4080305,4126291,4151827,75426,4308811,193897,200252,443078,193354,4059554,4148082,4016550,4153397,443202,4051897,4132549,4298441,4096026,44783029,4336254,4106353,4051896,435402,434595,4016548,4211106,4019730,4106680,4239360,4120461,4126292,80591,196152,4032939,4059434,4059551,4304969,4130372,4154733,37018294,72497,433350,443937,196845,442746,40487453,40487456,4019728,4268004,4096771,40487455,4047791,4178904,4153399,4153716,4153717,40489808,37017294,4311499,4035436,4129405,440674,439224,4173389,4165666,4163664,4170505,4165634,4165471,4166819,4169051,4169020,4170318,4166017,444204,197913,4151983,42872732,441788,4054984,4059433,74809,4057477,4057478,4057476,4162685,4153715,4054062,443957,75114,4051898,4059432,36715303,437818,434742,442284,4086197,4164346,444129,4124521,80004,444210,4134585,132706,4299555,4298732,4050989,374020,4054448,77630,4193169,196151,4340368,4129899,4033977,4344633,4053585,37017319,4043674,4161180,4028087,377085,4099090,4053594,4027522,4129392,4054060,4295346,4134128,4129898,138965,4029499,200579,74817,378523,4090614,4218013,197230,4028265,4090135,4042838,141124,4176794,132797,4044251,4104577,4289999,443257,197324,444063,4049930,4135631,4134929,4049931,195002,4342655,142026,4122768,4155081,4120947,4122771,44802272,434822,378143,77679,44784364,73546,443905,4054987,4155327,4095850,4129406,138387,201240,36717608,4247420,4095312,439382,200293,4057482,373216,4001632,4156051,439920,4134130,4134127,4040720,253481,432347,4164347,193666,193242,435242,4181338,4341631,435253,201719,4027543,4129900,4072639,4053307,4145825,443951,36716744,261309,252911,196160,46269880,4027566,4044252,4002355,378144,135526,4177243,40486208,4185528,4156052,4168054,40486152,37019054,4347406,4043738,4029498,4106574,4244738,4215937,4332246,4181190,4134927,4134921,4151201,372887,4329160,4318862,4028072,4319467,378745,43021132,433524,4026004,318096,4057822,36715874,4134952,4113104,40493409,4094845,4155627,4028244,4198624,4029816,134057,4028367,4179992,4028058,4231363,79072,4163232,4344040,44814072,4137472,4058933,4046076,4198828,4247331,4320030,4054514,4054617,4129250,36716756,4131451,4174382,37018868,316356,45765623,4260515,435786,37018869,435657,72410,4253010,4132086,4309222,4033902,4102937,4023985,373126,37017279,4314190,381783,4272488,201773,4201402,201618,45763613,4340234,4311399,4027881,4027880,4208083,4127437,4002905,4001716,4272162,4134562,4112603,4112117,46284319,257370,4022201,4194894,4053825,4149680,4034972,134520,4308931,4090134,4090613,45771288,37017094,4344265,4178774,4085557,4056894,75354,4168461,201986,4131931,376208,4093225,4093227,4344497,80665,442542,140364,141253,4142479,444111,442942,4131008,4047648,4131007,4009797,374366,4155497,74533,4151831,4153827,42709770,4153402,4153824,4153825,4103653,4053604,37016775,4053837,4294241,4151987,4151206,4151204,4344386,4160354,4009310,4167096,4196380,75909,44799715,4133027,4153116,4176800,4347300,4153722,4149694,443920,4054502,4054836,4111018,4282761,438022,4180915,80471,4057481,442299,4108641,43530814,4027882,77030,4129213,40486062,4155328,443218,4053602,4317831,40482651,36716733,40491865,4133009,4115963,4057355,4151823,433076,4059555,4054990,4146602,44783028,4058510,73072,4167230,442564,435524,73366,4054988,4151093,76270,4152297,4106351,444190,4155499,4112878,4101511,444131,4151203,4154169,4260844,75709,4182251,73925,4057780,443858,4332657,4273442,4270575,4277664,4277665,4181351,4054877,4059120,379019,4155484,195977,4131619,4129884,4153398,4053599,141095,4054982,375545,78907,4289832,4057474,139200,4057357,4153714,4152377,79962,4057473,134222,44806518,199178,201817,444189,4057487,4199740,4320024,4153395,4216185,444195,4193875,73362,4058513,4174977,78609,4057356,4209553,4054957,4016551,4028252,4054052,4208507,72487,4055059,4154443,4154444,4276508,442328,4153828,4153826,4153403,4153829,4129886,4130851,44797551,36712842,4167229,201238,436362,4309340,75128,4054067,4169598,4151829,4051743,4059557,4164348,444130,4151207,4054512,80592,4057486,4154579,443732,4094114,4166908,197751,77162,43021252,253717,31610,36713491,4280597,4193873,4143700,40479707,4113015,440890,79768,4152468,44790797,4174250,4178018,4309538,4104918,4096020,4132080,4159649,4047650,4114001,36716695,4092212,4242982,4009312,43530813,4178968,138708,132853,4154577,140666,140057,36715915,4294055,4164707,4155326,4177244,197435,4151828,4023317,4097962,4056435,194229,4057485,4057483,44784105,44798434,4174096,4130852,44782619,4182738,4167107,4166909,197810,36716624,42873123,317510,4055265,4054520,198194,443767,4113639,4038037,4203096,26935,4249292,4158481,4131756,375428,4247726,4317685,376961,439711,4233903,443728,4312034,4062251,439710,141814,40493020,4023310,4241921,438725,439712,4130532,4044250,199913,4054513,4100932,4280305,4273444,4280417,4280304,4270689,4273445,4103045,4277671,4277668,4277670,4277666,4280307,4270688,4277669,4273443,4280306,4273446,4165092,439709,4312545,198819,4314073,195588,4054511,436080,255711,4151992,4151222,253670,137813,4160276,4247962,4154630,36716538,4056893,4134439,4173075,4342868,4190297,4072640,196307,4059086,40490353,256811,195682,4154286,4152299,4154285,4308794,45757478,4282921,436222,197304,4182796,4280298,4270685,4277660,4273440,4270579,4273333,4277657,4273441,4280299,4280301,4242546,4277663,4280297,4280303,4273332,4280300,4270581,4277662,4277658,4280302,4130032,4317284,439727,193345,4209556,433916,4154174,4151197,4151223,4151980,4151993,4151979,375539,4271634,4270551,4270554,4278609,4270552,4278607,4277521,4271641,4277516,4277515,4271636,4277519,4271534,4277518,4278608,4277522,4270556,4277517,4270549,4271635,4271640,4277513,4271638,4277512,4277520,4270555,4271637,4278606,4236178,78518,4280282,4270558,4198494,4270692,4273453,4280422,4270693,4280423,4280424,4277675,443357,4279218,4100438,4273454,4000516,4113949,4247409,4044013,4130839,40481910,40482784,200871,201996,196734,198017,4279237,4273474,4273472,4280439,4279234,4279238,4270703,4273473,4273471,4280441,4280442,4280440,4280438,4184709,4280296,4270577,4198645,374034,4053820,4208662,4207184,4240153,4152373,201436,4049933,4206878,4272240,4056721,4339485,4116572,43530862,4181251,4280291,4273325,4280290,4280288,4277530,4270572,4273324,4277528,4270569,4280289,4273326,4277529,4270570,4280292,4270568,4280287,4270573,4280294,4270566,4273328,4273327,4198798,4155629,4280283,4270560,4277526,4277525,4271643,4280284,4273320,4270563,4273322,4270561,4277524,4280286,4270562,73847,4270564,4277527,4181250,4119158,4153720,4322161,4083353,198892,4342882,4279362,4273607,4280448,4270711,4270712,4273608,4273605,4273603,4280449,4279363,4273604,4270710,4270709,4270694,4280428,4273460,4279224,4101641,4104503,4273456,4279222,443356,4280429,4104502,4280426,4279221,4270697,4270695,4280431,4273459,4273457,4279220,4279223,4279225,4279226,4273461,4101656,440009,43021977,43021240,4029812,441408,4229909,4048485,196271,4176571,4248125,4287542,4273600,4280446,4280445,4279359,4270708,4198822,4302801,4273601,4270706,4273599,4280444,4273602,4279360,4279361,4273598,4270704,4270707,4280443,4273329,4277532,4182791,133298,4167106,195108,4058948,4152935,4169252,4054455,4180313,40485387,196214,436091,36716740,40486603,200588,4314946,4084789,4217497,195685,4313916,36716602,4054754,437161,4083638,442529,4156941,434824,4151226,4151227,4152300,4137353,4085075,4305008,4329906,4250613,4032365,36713658,4032528,4214826,46286899,4193702,45767057,37018218,45767316,4031881,4237624,4254373,4059748,136575,435463,4249437,4206579,4054837,4293432,4053826,4299012,4298592,439404,4312023,4264853,312922,4182318,135033,4035023,381733,381732,4224011,4309914,4060704,432453,4154401,434489,45765703,4302198,443584,4306164,4305552,4269348,44806491,4239819,4209070,4199558,4268708,4179218,4206255,4168960,4086969,4102134,4159873,4276588,4149529,4060353,4060982,4061887,441140,4061886,4271391,4159877,4276280,197163,4101635,4102560,193631,4023576,4300649,4129138,4101662,4182647,4198964,4219381,4186164,4213400,4126892,4218029,4184707,4184708,4182664,4101498,4126575,4126572,4126574,4129135,4103643,4179309,4182459,4095947,4091534,4181972,4022448,4182151,4152464,45772081,4151826,4153721,4052969,4188027,201727,4107678,377091,4134134,44806656,4152641,4152482,4153975,196259,439148,4000609,201891,4265600,4027663,4155325,4108640,4167108,4168618,4314071,432484,74786,4144835,4107514,4153719,4082831,4022202,40487977,4172855,4154168,194108,4169994,4317551,4316049,378425,192353,4094683,4308329,4314923,4154166,4152295,4154167,201265,37016189,316084,4106203,198620,433600,196856,4334322,4164345,438068,4151529,4055709,194526,44798461,441737,433694,4271501,4091650,4269129,192952,440029,4252853,4022810,4236143,4277745,4147672,4248392,4023319,4253153,4022207,4141878,4088368,4207186,42873124,42873109,4059114,261528,25189,4114353,4169307,4122227,444052,136937,254669,436045,252280,4112735,4134605,441819,44783939,256531,433656,193983,4178815,4027381,73302,4241146,4242661,4243411,443545,4131439,4180168,4028930,4130986,4131604,4123594,435836,4054510,46270500,4316615,4181191,4053652,4154574,4177093,40484020,4239871,4129247,46270499,201518,4226263,31057,193262,439199,195867,81239,4193168,4166589,4103776,4027537,437169,4066295,4120313,4116648,4181813,4179720,40492458,4247822,316822,4177097,4180012,444093,4260918,4037691,24969,31602,4048236,4313834,135061,442180,4180643,4194856,4313511,4077969,4181858,4193176,40493428,4282930,4051577,43530807,140823,435280,201257,4176945,4178431,4180010,4297375,4026163,4093957,196158,4134424,4127726,433730,4317829,4181583,195312,4207302,4114212,437541,4318691,4156115,376660,4215370,4021807,4128408,4333227,44790646,42689534,42689535,42689539,46286018,42689538,46286017,42689531,42689560,42689542,44791199,42690665,42689532,44790743,42689530,46286084,42689529,44791698,42689541,46286019,42689533,42689537,42689540,46286094,42689536,46286082,44790727,44791197,44791198,44790728,44790744,44790745,44790746,44790747,44791203,44791204,44791205,44790762,44790763,4147145,442264,4344039,4215217,4181477,4242498,4088937,4268849,4275498,4023358,4022129,198988,73017,40491439,4179999,4212885,4208786,317248,4131124,4134131,4297179,4008701,4186405,4169954,193165,4032351,4030441,197804,4177242,4181485,443568,377889,197605,4192174,4302836,4300595,4239897,4160345,4130668,4208665,4193167,4153394,4151822,4053597,4155285,4114336,36715485,4101350,29979,4155494,4134133,4176946,4244662,4028365,4178680,4339410,4178826,24818,4240847,4218389,4208661,439928,4242980,4054845,4311409,4149414,4283893,4024550,4021759,4023983,256440,4023984,37016649,4272867,443240,4230389,4266464,4118121,4118122,4309912,4130373,201820,45757077,4027258,373432,261176,4180312,4054508,4054841,442790,4217478,201337,4293479,4032437,4043671,254068,4276801,4032587,196738,4132092,4041256,4175810,4042514,4153553,36717034,439093,140190,138225,36717482,196931,4131770,4180778,4193166,4124677,4024006,4068363,4312698,378414,4115239,4117286,4021769,4322687,75650,376918,4085833,4312000,4177236,4193874,4060429,4180794,437982,435726,4051331,4151702,4246695,4021606,4265879,4206460,4175379,439156,4269555,4269556,4266765,4187520,4266763,4200202,4199559,4201383,4103472,4126735,4199560,4126738,4201382,4126409,4090747,4269452,4268980,201388,4170415,4279142,4041283,4194619,4088739,4030759,4228480,4214962,4268836,4182455,4118265,4022230,4277353,4181999,4021605,4270005,46286973,45770396,46284461,4277369,4270571,4202797,4270000,4025202,44811500,46285820,4262177,4274415,4090324,434173,4185946,4269999,4188906,4146944,4102115,4185198,4116798,4118266,4114804,4117140,4327857,4191142,4223182,4101203,4117138,4028872,4271387,4040737,4185197,4021604,4253739,4265570,444108,4302476,4031365,4041278,4279366,4266757,4023181,4221108,4278447,4093837,4022830,46284465,4270715,46287163,4093850,444035,4153160,46287164,4269139,4086984,46284437,46284462,4243947,4048755,36716415,4014476,4304359,4063821,4207164,4156035,4221796,4167037,4009872,46286969,4182003,444194,4182317,4103199,4115241,4181685,4257054,4022130,46284495,4217210,4041989,4023988,4028922,4209159,4187369,4030912,4276577,4193695,4153285,4103474,4042137,4271383,4271386,42690493,4228809,4038493,4271512,4042138,4071866,254213,44782981,4152480,4145142,4234320,4086202,4154162,4155030,4108636,197506,40492037,132776,138713,436665,4162283,4301416,40482750,30361,4322737,4054839,4095257,43530816,4150129,4172522,196172,78560,439847,260131,4288734,4119451,4337463,4133353,40481902,194406,4318939,4089963,434033,193431,4121450,4134946,4181200,4329445,4320821,44806516,44806495,44806512,44806648,44806515,44814085,44806490,44806514,44806494,44806493,377270,4157331,380395,4133974,4054503,4129891,441170,43530821,4028939,4132094,4212927,4167354,444211,133280,444249,441992,4131106,434073,4130161,4054501,201956,196162,4035007,77635,4318985,4224741,4102561,4028528,4161546,378416,36717282,4208223,36712992,4119139,4296205,4029964,433243,4159157,141050,437902,4078431,260759,36716623,4028241,444200,201603,4113913,4122115,434592,4294303,4300113,433917,195403,4299128,4082487,4235162,4109394,200780,442781,4303951,4038838,4003183,442013,4112341,4175297,4170143,4047784,4029880,4029118,4160342,4134301,4312955,4313083,432513,4257686,4153852,4173025,4153419,4173657,4046112,374035,437530,4264851,4300157,4280434,4182972,4023176,4182974,4021668,4177604,4182973,4117293,4090583,4083311,4090581,4082593,4270699,4273464,4273463,439961,140526,434167,4106840,40492403,4207628,4027702,4134613,4143833,4055782,438039,4094808,4085340,440358,441669,436805,372424,4148204,4028970,252662,444110,435459,439408,4300243,4207307,434547,443539,42690708,42689818,42689820,42689819,4246696,74470,4338843,435517,444187,36712756,44806406,4153710,4127290,4123271,4264281,4095859,4209845,4126318,4322407,4096479,440913,438923,4053494,443647,439215,4155218,432787,44790611,44790612,44790613,4070268,444002,436867,444003,438653,4179079,4312714,439540,439536,439539,439541,439530,439538,439537,4148572,4310789,439548,439544,439547,439549,439550,439546,439545,4309623,439533,439517,439532,439534,439535,439531,439516,4054683,4068575,443664,443657,443658,443665,443666,4070397,443659,443662,443663,443660,443661,4065955,443654,443648,443655,443656,4065196,443649,443652,443653,443650,443651,4068576,443639,437765,443638,443645,443646,4172516,443104,4053484,4053422,4054378,4054377,4054365,4053560,4053561,4053559,4204615,437428,4057353,4153974,4196565,441565,4153362,44799223,435641,4300467,4113009,4173175,4082319,4151842,443108,4228469,440921,4219871,436568,4096614,4314728,4212076,45769811,4031009,44790962,44783443,44783442,4155044,4154419,4154161,4054302,44790556,44790637,36712858,42690707,4324187,4228467,4228466,4233467,4233469,4180872,42689731,4054307,4053477,4094830,44790717,44790718,4072665,40483249,42689785,42689763,42689764,42689765,42690698,42689791,42689780,42689800,42689735,42690596,42690697,42689752,42689824,42689732,42689724,42689789,42689749,42689796,42689798,42689799,42689804,42690702,42690695,42689748,42689809,42690700,42689808,42689760,42690600,42689814,42690706,42689730,42689766,42690703,42689772,42689770,42689728,42689774,42689782,42690705,42689811,42690602,42689812,42689783,42689773,42689802,42690701,42689803,42689801,42689823,42689793,42689754,42689753,42689759,42690699,42689822,42689758,42689746,42689768,42689736,42689776,42689817,42690704,42689729,42689797,42689781,42689755,42689756,42690709,42689711,42689727,42689717,42689714,42689707,42690599,42689722,42690592,42689721,42689720,42689705,42689726,42689718,42689709,42689712,42689761,42689747,42689710,42689713,42689708,42690694,42689762,42690691,42689706,42689719,42689715,42689716,42690593,42690693,42689723,42690692,42689740,42689779,42689769,42689788,42689790,42690603,42689815,42689816,42689757,42689738,42689737,42689742,42689767,42689743,42689741,42689792,42690595,42689795,42689751,42689750,42689777,42690597,42689744,42689739,42689775,42689725,42690601,42689771,42689794,42689810,42689784,42690470,42689733,42690598,42689778,42689821,42689813,42689786,42689787,42689745,42689734,42690696,42689806,42689807,42689805,42690594,443419,4126319,4095263,4154715,4142267,4144296,4142253,4141057,4312136,4314920,44790649,44790650,44791180,44790652,4250614,44783441,4167104,44783440,4053584,4107861,37017129,4134407,45768454,43530815,4168335,438754,432916,4329511,134741,4247260,4229751,432323,436652,436651,4038835,4103916,4109721,4109722,374040,372635,380401,40480179,195856,199929,4177067,44783869,44783871,133857,4129390,4053705,37396728,4053405,4072651,439429,436601,4182470,4182777,4181989,4182288,4182289,4182610,4182471,4182606,4182776,4181986,4182285,4181990,4182608,4182472,4181991,4182605,4182287,4182778,4182609,4181988,4182286,4182469,4182284,44805888,4071565,4071566,4071567,4071568,4071316,4071575,436893,434834,4071569,4073614,437771,4055243,4072373,4054928,4073618,4055788,4073613,4054932,4055789,4055790,4055781,4073504,4055792,4055239,4055241,4055238,4073620,4073615,4073616,4054933,440013,4073510,4073617,4055240,4055787,4055786,4073506,4073503,4055232,4073507,4055785,4055783,4054930,4073509,4073508,4055784,4054931,435168,4055233,4055234,4054934,4073505,4175076,440926,4055235,4072371,4054927,4073619,4055780,4055237,4055236,4054929,4055245,4055244,4055791,4055795,441772,441766,4170645,439419,432519,42710039,4055794,4072304,4072305,4071570,4074175,432520,4071572,439434,4071317,4072306,434838,4055242,439423,439422,439421,439420,4071573,4055793,439436,4071315,433940,437481,439430,439428,439427,439426,439425,4072310,435156,439433,440935,439432,439431,439435,435448,4072308,440615,439397,439396,439389,4161331,442045,4072642,4122066,4025198,4093987,4179314,4181984,4253778,4267560,78804,4124645,4129499,40481998,45757399,4063381,4181199,4028876,4162282,4180170,4052554,320136,4006969,4224259,4027553,46270398,4197065,381854,46269998,317299,443350,377280,4270897,4146001,45770925,44805373,44805372,4151280,44805371,4042904,432620,196064,4144769,4142306,40491001,4116238,40488823,439030,373785,4154760,4058224,72986,436134,439439,31821,4130671,4176808,4040385,439235,4257906,4055128,4148580,439236,141771,440314,435155,433107,437200,440932,4072217,436317,434252,4071466,435167,4074053,435715,4072212,436885,437201,4074054,4071463,4072213,4074056,4071464,4072210,4074052,4071188,4072215,4054809,4055155,4074057,4054808,433118,434846,432810,4073500,4073499,441770,432801,441190,4073501,4055775,437464,433672,4071305,140297,4201531,4158245,436892,432795,44801101,44801109,4053720,4267683,37016824,4307140,42690668,46286360,46286365,42689548,46286372,46286364,42689606,42689605,46286363,42690585,46286368,46286369,42689546,46286366,46286367,46287268,46287267,42689634,42689547,42689549,37394594,42689607,42689545,42689550,46286374,46286373,42689553,42690586,42689552,4273331,46286371,46286362,42689551,46286361,46287266,42690667,46286375,46286370,4054924,436878,4151398,4072226,442047,4055777,4055776,4054925,4055230,4073502,443272,136016,4071306,439443,433103,439440,43530876,4171889,4162868,4306085,4147035,45768447,43530877,442770,375807,4132792,444207,4183040,4028363,375252,4132556,37018677,4116208,4134422,433477,4027883,4319474,4209989,4303513,46270009,4145627,443431,4087649,4079851,441830,4035139,197917,4068261,4043343,4340396,432571,435785,4345680,136779,4184398,4113408,4204187,381559,4012234,4181985,4185355,4023567,4184257,4184397,4353722,4087618,4115391,46271827,4114468,4087002,4181983,4090408,4114467,4086652,4182773,4182466,4086997,4181982,78831,4087647,76191,4134443,444090,437779,4042501,4028253,4111798,44782620,4027383,4181064,4042834,4028074,133468,4180011,4040719,193460,44784106,4042503,4181057,44784347,4116963,43021257,36712821,4192640,192963,4341771,4342872,4115107,4102114,4113714,4126895,4339088,4126904,4113998,4299449,4305027,4093170,4023577,4101510,4022924,4104490,4102427,4104486,4100463,4102425,4104482,4279219,4270698,4102562,40481843,4113082,4280425,4227252,37018713,4185640,433417,138239,4092563,42709797,4278596,4092564,4092569,40482430,42709843,4186162,4115395,43531064,4115396,4274099,4197328,444221,4193464,4185823,4093189,77358,444220,4022923,4022922,4198802,4184882,4181093,4184706,4184704,4184881,4185639,4022449,4181089,4169466,4193465,4020346,4020347,4177829,4277511,4277535,4277531,4270578,4270576,4087010,4270977,4092885,4271530,4086687,4203095,4205256,4336074,4206592,40480061,4081177,4270559,4063941,4298309,4100593,4198958,4277534,4270574,4277536,4079179,380510,4044878,4118018,200450,4127712,432851,434570,4143250,4103992,4166587,4028070,4133989,4099840,438066,4109397,434056,4101227,4143397,374360,4113116,375801,135923,435742,4252534,4253013,4257545,4030292,4314648,4314958,197331,4301471,4128536,4238036,4027567,133303,4106212,42709918,372604,4190307,198860,4170116,201131,4132457,4207977,45757479,4195137,36715548,4134442,46273429,4276175,4254485,4271239,4155079,375819,43021974,4249456,4124511,443212,4051956,442019,4126124,4317269,4027133,443420,4126445,4147829,376703,4023314,4023313,4108905,4082014,381575,4300116,4085406,374364,4149084,193254,77987,4278456,4115385,4275650,4275652,4152502,4027548,4074037,4269131,381866,4091066,4181820,4181821,200452,81303,4132087,4101918,436101,381865,435645,4100778,4179167,435739,199063,25572,436033,4285734,4027395,376125,4228178,4278591,4270437,4271528,4277507,4278593,4277504,4270434,4182780,4271523,4277366,4278585,4271524,74392,4278590,4278592,4277367,4277372,4270438,4271527,4277506,4270435,4278465,4278586,4278589,4270436,4278588,4271525,4179148,4185177,4277368,4278594,4271529,4277371,4278595,4277361,4182779,4271522,4277365,4277362,4278587,192438,4181992,254361,77960,4182011,4182028,4279233,4182007,4272224,4216200,4270713,4089635,4279364,4179141,4272098,4205390,4270714,4270716,259827,258755,257293,4319609,442610,377568,40481368,4335747,40486024,45763557,4287399,4134597,4183452,378161,4132093,45757697,36714286,4062790,4191597,4021773,4199394,4024568,4082164,4309542,4211252,4206591,45772100,4104310,376106,4213310,4046447,4251578,4024563,4299729,199067,432734,434557,132724,201951,437312,4307580,4002659,440631,4008721,4242338,4241043,4186146,4185637,4184117,4181084,4242368,4113121,4114223,135930,4185201,4182160,4042505,4043349,4182032,4183522,4186159,4179288,4181081,4185643,4184245,4180948,4183246,4022921,4181067,4179296,4185202,4183378,4183519,4185359,4183514,4218347,4097137,4185194,4154799,4100611,4215513,4186158,4186165,4183521,4185507,4184114,4183517,4185494,4183371,4185504,4180974,4020345,4185206,4214304,4270548,4271532,4270547,4277510,4280450,4185976,4179462,4094284,4275342,4116964,4272225,4022913,4202835,4181094,4116968,4095203,4185973,4002898,4271770,4243365,76797,440409,4027731,4275359,4212079,435842,4042502,4028251,4122228,4106676,4033922,4094986,433967,441543,432725,200843,432545,4200533,4161193,4248801,36715956,436677,4178179,4181298,4118020,4318699,432910,45757635,4318700,380834,4028245,373499,4043345,377861,4182553,4328214,4324555,4129391,442132,442131,4193182,4193988,435783,37016748,4099350,30346,4216273,4134552,434633,4262364,444214,4177325,45757779,75865,4178955,4319447,4028069,4107729,374142,4102400,4054499,436073,37016741,37016719,443730,80294,200836,4151863,43531045,377554,37396146,440213,4024715,4276722,443436,4291291,44783012,441655,4116810,434008,4219296,4166872,4022199,133278,4116322,4146242,432582,444100,43021849,433968,4169977,4193990,4134887,4266176,4081090,4291290,4214445,4148914,4028387,443261,4033853,4267682,4176947,374377,437547,432868,4144746,4130066,201728,198249,4134606,4317294,200768,4103650,374653,443343,442259,4154150,441848,4305075,40483613,40486161,4179095,4079986,4181194,4180154,43530714,4134595,4168062,4266190,4159963,4171379,4018852,4179871,4178979,40479582,4149850,4116236,4114222,37396745,433702,4023329,4112852,4193989,438359,435188,4022818,441793,4224822,378444,4028865,4021470,432251,43531046,4329158,4168834,4180314,4251321,4049810,444252,4180159,437191,4063155,4114349,4134145,376337,4132091,4080146,4045840,4043889,4180629,4175154,373852,4301699,4048027,4041681,4116574,441493,443367,443370,4166164,432809,434554,441744,4096125,4096435,443628,435147,443373,434556,443353,439238,440292,441206,436315,4116092,4131436,4054835,434239,435173,441207,443345,436008,4129244,4232106,4111017,4112586,36716548,4134607,4116332,4000610,37017421,4134429,4197094,4266809,4295370,4129389,4202064,4318716,4247120,4138253,432739,4133980,4214409,4025120,4133002,4178816,435506,40481474,4239865,4300206,4132553,200524,4134593,4074815,4190185,4043371,4201745,4132552,4224063,4181047,4297887,4309188,4198525,377877,378165,435642,439761,36715590,439392,36716620,439045,4054430,135473,4212705,377870,4329707,436658,377885,435788,4189294,440142,40488964,432661,4181217,4188971,4178818,4181188,4176645,4176644,4180628,4329041,443720,4212886,440363,4318379,4190076,4318982,4116813,44790620,4223584,4118269,4115413,4142861,4118270,4177196,4258370,4180158,4214408,4180173,4181326,4121131,4077644,4260916,4038217,4132926,4116811,4264996,4116951,4082445,4115418,4116817,4118275,4134440,438536,77673,434323,440005,443782,437828,4147164,443392,40484156,4162276,4311439,4300118,435216,4012356,4271013,4105192,4099942,434300,433435,4263109,435613,37018293,4270826,4304926,4083333,4087808,201965,36717239,4225982,441523,438112,4294433,40571981,4111953,4173971,4290837,4132554,4132555,4128893,4189640,4291594,4227653,440424,433823,434819,4114475,4090416,434614,4095458,4094891,4094434,435569,433740,4087380,4120636,4121285,4239314,441818,4091208,4181831,4115236,4176944,74174,375527,440002,443935,4114487,434540,4274970,4294298,439394,44783159,436295,44783281,4287251,4117274,4101207,4145556,4091367,44783160,4181960,4091823,4269005,4091366,4113541,4310835,4022571,440270,4055774,438688,255334,437688,440905,4122199,4106211,4337941,44783003,443282,439206,4089385,4115733,4182451,4182147,43530950,434842,4159691,434223,434281,437456,435416,4303975,436886,4080299,25056,437158,436006,434247,433134,438649,437183,443253,4084325,4161621,443283,443915,432796,436296,433102,438028,4157814,4160962,4196024,4165559,4077081,4208841,434094,438815,4036507,4035674,4025199,443903,4114481,4150307,4182444,4182131,27314,4182627,4182132,4199550,4182128,134401,4182630,4150422,4150306,4132600,4150432,4132598,4182629,4114480,4133349,45768668,4182125,4182441,4181817,4182443,4182625,4150445,443219,4103983,4116806,4103980,4115404,4075827,46271834,4103977,4122577,46273710,4113532,4113539,4118267,4114482,4307122,4090902,4115403,4091937,4091364,4181815,4091939,4091375,4182440,4182124,4182126,4113533,4116808,4114483,4103982,4182129,4086828,4113997,4322566,40481371,4182442,4060063,4313909,4083062,4022570,4004998,43530620,4090894,4091365,4113534,4271513,4096692,4182626,4182130,4158189,4101204,4182624,4181818,4090887,4012069,4182123,4182127,4132462,4182439,4060062,377286,4091363,441364,433701,4207190,4094061,4241110,4310567,4297098,440795,435325,435875,4024560,4338120,437758,434821,4116653,442983,4177609,4117271,4273467,4104133,4149859,440069,4166143,4091948,4115252,4091953,4155904,4115254,4278451,4278452,4172539,4079308,4103327,4091496,4158326,4090884,45770820,4091360,4096565,4269006,4091821,4091356,4078327,4219002,4103320,435784,199860,4028373,4053270,4275199,4300137,4269984,4267653,4275190,4275196,4275211,4269713,4273008,4273011,4274274,4276563,4274269,4267649,4268832,4267647,4269721,4276573,4303688,4296542,4180030,4035267,434311,435233,4031941,46272739,36715326,36715346,36715347,36715348,36713789,36713790,36715426,36713446,36713447,46271312,43020878,4029881,441268,4035283,4031796,4079879,444377,4188467,4145580,4181187,4042836,36716870,4180647,4042835,4049222,4033494,45770886,4101069,4114454,4201555,4117272,4080664,4080663,4034987,4173938,4129540,4184252,4269019,4042837,4183245,4184253,4182283,4185207,4100606,4198042,4032334,4275521,4090401,4037310,4082416,4275522,4114331,4113389,4102880,4114458,4114457,4101059,4101073,4119467,4114470,4113401,4114335,4114625,4142301,4137574,4102878,4114333,4102881,4137577,4102876,4082784,4101053,4268995,4114462,4102112,4083629,4101079,4082423,4090398,4278445,4083627,4082780,4268994,4102891,4200516,4202328,4275510,4278309,4081007,4081498,4303380,4268977,4087966,4087941,4088106,4278315,4278316,4090268,4082134,4268974,4275512,4080857,4275647,4094032,4079583,4080993,4228755,4081491,4087958,4182158,4223594,4081493,4082135,4201693,4278444,4080849,4280430,4269449,4201563,4158968,4199421,4201238,4201556,4199425,4117269,4200045,4200050,4101796,4103657,4201562,4199428,4103352,4201236,4182161,4101799,4200055,4201242,4201557,4199420,4199427,4117273,4201558,4201237,4103321,4201251,4268991,4116799,4201566,4201691,4025945,4200042,4117270,4200046,4265432,4271384,4025353,4326003,4138620,4271395,4275518,4269003,4269001,4278450,4269004,4275506,4271385,4268850,4271390,4304798,4080992,4268983,4247371,36714387,4353709,4311115,4201399,4081638,4278313,4087818,4304927,4087814,4221913,4278433,4087815,4275513,4087934,4167193,4278432,4268976,4082140,4201554,4199417,4116650,4081476,4079572,4079344,4087155,4082284,443360,4331509,40480483,4304928,4275507,4145817,4189730,4042142,4090874,4087936,4089810,4268978,4271394,4271393,4083610,4090395,4087949,4087950,4080853,4079578,4304925,4080847,4278429,4268975,4275509,4270007,4268972,4278314,4081153,4268852,4081627,4271401,4088100,4278312,4268854,4268853,4278310,4278311,4275511,4268851,4081156,4162092,4278431,4082275,4090246,4271392,4090239,4082274,4081495,4271389,4153213,4158242,4268979,4079347,4081478,4083473,4278430,255919,4339468,4178545,4182467,443258,435127,442295,438905,444243,4250025,439003,40480698,40480699,437514,4197787,4262793,4030370,4291019,4305951,4030372,441827,4030374,4101293,4044705,4295357,4119311,4029098,4235585,4096209,440981,4103821,4114292,4103825,4100774,4182969,4114291,4102715,4103822,4100776,44811877,45770358,44811863,45770354,4127194,4128827,4122715,4126253,4126254,4122714,4278307,432595,438408,435521,4220675,4127205,4124631,4129334,4129329,4124633,4127202,4129328,4127195,4124506,4129331,4127696,4039378,4038488,444112,4288940,4280435,4299676,4299678,4279230,40481101,4182977,4025935,443288,4126392,4125612,4091675,4181850,44810825,4122729,195877,4177607,4127069,4021479,4127828,4125616,4177603,4183951,4183957,42709864,442981,443289,4021665,4181854,4113566,4090854,4181859,4127207,4181851,4181839,4273466,136610,4083927,4183953,4273465,4152361,4182456,4014716,4096418,4088581,4182684,4279229,4182767,4279228,4280433,141960,4032669,4319300,4297811,4256625,4270701,4279227,433031,4132102,4127854,4124636,4124479,4124637,436672,135157,4023987,4275489,4269994,4268839,4276729,43021214,4268837,4275487,4275488,4269992,4123202,4268840,4276728,4269990,4268838,4031885,4088476,441460,4023347,4026076,4026169,4262968,4263312,46269879,4250314,438721,4171352,4148051,4270083,4029602,4042399,4047637,4048687,4048869,46269874,439968,4089958,4104153,4157605,440647,435227,4029269,4276360,437515,4029735,4029732,4130526,4029738,4029737,434798,4012208,43020471,4024000,4182446,4182137,4182142,4092881,4181824,4182447,4092648,4181825,4101355,4113697,4101361,4113700,4113701,4104156,4115721,4113696,4113702,4113703,4115722,4115716,4113694,4101359,4091213,4101362,4200656,4182138,4182139,4182140,4182141,4091056,45769862,4104155,4021780,4092659,4182635,4181829,4181828,4101356,4181826,4091342,4182636,4090872,197330,4092653,4182143,4025212,4182637,4092640,434908,4301410,4055611,36713238,4055610,4038501,40481131,4268997,4108141,4275646,4262160,4163130,4082434,4083635,4082789,4154841,4090410,4036955,4278448,4268998,4271404,4268999,4278446,4268996,4275523,4021782,4029621,4085063,4272256,4266151,4273955,4046662,4268107,46269884,43530845,442575,4050767,434899,441838,4100681,440066,4188970,4139452,4147761,435979,4050689,440371,4056580,4137676,4052750,4140301,4041284,4267213,4127379,4199549,4201255,36714481,46284335,4081862,4042139,44801803,4270006,4041275,4127380,4114722,4199431,42689983,437896,4123214,4200192,4201256,4123215,4200193,4200183,44808928,4278306,4041282,4188013,4089214,4101829,4115737,4041277,4125592,4270979,4270985,4271131,4270969,4267081,4265987,4265986,4266006,4265138,4270854,4273949,4270836,4270972,4267057,4272067,4270974,4267973,4265127,4265131,4265141,4273938,4272097,4271925,4270983,4268103,4265995,4273943,4273944,4268098,4271241,4268102,4273941,4271135,4266004,4276439,4265140,4267974,4267058,4270978,4270853,4265270,4265271,4267059,4271107,4262172,4274403,4271926,4270843,4272070,4267071,4265993,4265998,4271253,4271246,4273951,4273953,44792427,4268104,4266154,4271248,4266152,4274092,4266149,4271247,4273954,4266150,4266143,4273952,4271242,4272071,4272073,4265282,4270992,4182454,4265129,4270838,4271123,4266138,4273945,4271117,4270989,4271120,4273946,4273937,4271128,4270835,4273932,44801888,4273939,4266932,4270839,4266945,4265126,4265267,4208333,4265139,4271939,4271937,4268095,4265278,37018388,37018390,37018389,4267073,4266002,4270994,4273942,4265285,4273958,4268106,4266147,4266145,4266146,4268108,4271251,4273948,4266141,4273956,4271250,4273957,4270829,4270848,4271934,4268105,4267070,4270847,4270850,4271936,4270971,4266944,4270851,4268111,4265273,4270982,4271935,4265136,4270984,4267064,4272069,4267065,4265277,4270988,4265276,4267069,4268113,4270968,4271243,4270837,4273950,4266140,4267061,4267062,4265279,4265994,4272095,4273013,4266588,4274400,4270980,4270993,4271124,4270828,4270990,4266589,4274402,4265274,4265275,4273016,4272074,4266466,4270981,4266005,4265269,4266587,4267082,4276720,4273936,4268097,4271119,4265992,4265991,4267972,4267214,4271121,4270986,4267066,4270844,4265265,4271931,4265132,4270845,4271932,4265134,4265135,4271933,4265137,4271930,44792433,4267076,4271129,4271133,4267067,4267056,4265266,4266934,4266935,4265124,4271254,4270830,4270832,4271922,4265120,4271923,4266927,4270831,4266928,4265119,4270833,4270841,4270842,4271940,4271941,4265125,4271942,4265121,4265122,4270840,4265997,4266000,4268092,4273933,4266937,4266943,4265144,4265142,4265143,4271924,4270975,44801553,4271122,4273940,4267978,4268099,4268096,4265130,4271260,4266930,4270976,37018399,4265128,4266941,4266942,4266946,4268112,4273015,4267976,4268094,4267212,4271125,4272089,4265990,4272092,37396656,4265984,4268100,4268110,4265283,4273934,4266008,4267977,4271252,4273792,4265280,4265988,4265284,4272072,4272075,4267078,4267074,4265985,4271134,4272091,4267211,4271118,4265999,4266148,4271127,4265281,4272076,4265996,4267079,4268093,4279369,4273614,4266938,4266939,4271928,4267667,4041276,4313860,4040734,4123443,4021343,4114865,43021229,4041991,4110772,4099800,4122717,44810949,4267676,4269859,4021901,4275341,4024706,4041281,4092349,4181843,4025923,4089382,4321696,4275490,4024012,4121038,4182632,4120752,4021489,4107761,4042145,4266144,4162589,4129143,435774,4300168,4181841,4124647,4104167,4127857,4113721,4104161,4127065,4124481,4126581,4190189,4127994,4124660,4129494,4124659,4128326,4078455,4095940,4095941,4095939,4124664,4190186,4172857,433633,4024004,4127031,4127028,4181833,4124473,4025213,4104157,4089548,4127846,4089532,4182145,4182763,4091795,4127855,4095793,4101818,4113712,4101364,4129175,4129483,4128176,4126732,4126587,4127848,4127850,4124329,4127847,4090743,4104160,4124639,4126731,4088431,4127064,4095807,4127853,4129173,4127842,4129146,4127993,4128185,4127833,4124493,4129152,4124324,4124489,4124634,4124483,4127852,4128193,4201849,4129321,4129171,4127689,4181832,4114798,4129317,4127046,4182760,4124485,4126585,4126728,4199544,4089535,4095796,4091212,4127047,4127043,4129163,4113711,4181837,4090864,4088977,443285,4124650,4113713,4115735,4104162,4127688,4124325,4096534,4090861,4181838,4314323,4129482,4182453,4182762,193529,4182758,4091796,4181840,4182449,4182764,4181835,4182144,4093344,4096980,4182146,4096536,4182450,4181830,4181842,4182638,4182759,4182448,4181834,4182761,4115728,4268533,4091204,4095922,4124486,4088777,4089540,4088900,4088906,4089404,4126903,4127048,4126724,4088421,4095800,4181836,4088775,4107655,4270002,4276737,4113002,4021826,4276736,4023990,4041274,4032662,4278305,4040738,4038490,439620,4041285,4143062,4165545,4027557,4181196,4323825,436670,4096947,4265629,4080012,4048363,45772127,4031808,4170226,4031814,4021042,4029608,4031960,4224804,4181048,4310649,4102763,4006316,4056581,437141,437584,40490404,434621,441488,4303952,443401,4012350,4028369,437727,137275,4027240,4182419,440272,444296,441722,4185471,4031159,4214550,440889,441993,435446,4209352,435973,435119,4170634,4074169,443508,4055604,4050683,193863,4176793,4178673,4131597,444429,197050,433401,438959,4073287,4134592,4134142,4114506,442176,432250,4271450,438332,4200532,4028062,4024018,4140599,4041286,440985,4025215,441542,4113821,4274094,4266161,4274115,4266163,4268240,4268247,4272714,4274111,4237620,4022133,4075831,4266301,4114975,4105183,441126,43020670,441398,4148897,434153,4178664,4093352,4304916,4092897,4093358,36716675,4091532,4303385,4101348,4103988,4091509,4101220,4103991,4113552,4182633,4091058,4113563,4101213,4101212,4101346,4115583,4201391,4214970,4104139,4038678,4104138,4103990,4101216,4113565,4115697,4042178,4113564,4115581,4101344,4182634,4182134,4101343,4182135,4089624,4088667,4325357,4113545,4103995,4113547,4012219,4206598,4096976,4038677,444114,444113,4022205,4266662,4190397,4271706,4220676,4025195,4176798,4178676,4079975,45765642,4180001,4301891,4079976,4113738,4204553,4010341,4125650,436666,4293175,4272869,4274424,4284848,4113621,4120421,4117523,4116282,4116264,4113496,4116279,4116261,4113486,4120569,4116271,4116260,4116394,4113612,4116398,4117515,4116276,4120417,4120566,4120571,4117519,4113479,4120572,4023194,4116407,4113489,4113480,4274260,4162723,4273002,444401,42689922,42689923,42689924,4269863,4212760,4185673,4131797,4268544,4085093,4021191,37394552,4153979,4113931,4306645,4266465,4269869,4268710,4276286,4276407,4276411,4273157,4273164,4269571,4267502,4276283,4267529,4273312,4269706,4269576,4273175,4267499,4269979,4268821,4275354,4268822,4276594,4275352,4276592,4268823,4275353,4268824,4275351,4275350,4276593,4276591,4275349,4276721,4150852,4024757,4154448,4075938,4272864,4268834,4250116,4262158,4272878,4267368,4025217,4268531,4273019,4268551,4274407,4273028,4269978,4085502,4021900,4276718,4075936,4268829,4276717,4268828,4276716,4268825,4268827,4269982,4275357,4276714,4276715,4269985,4269314,4025214,4081310,4090012,4024707,4025218,4268833,4126787,4075218,4085024,4094235,4088165,4088488,4213776,4267372,4268830,4268819,4267354,4269864,4088164,4268263,4085503,4274248,4269983,4274262,4275356,4276719,4268706,4276590,4273147,440508,45765673,4104127,4104001,432590,4092424,4302537,4030917,4101229,4113553,4115574,4113556,4101234,4115580,4115572,4092876,4115576,4104000,4093333,4115106,4182631,442793,4004672,201461,437754,4312497,253549,4180645,4176799,443200,4037306,433128,44798962,44798625,4105886,40589905,45772881,4021558,4223616,444199,43530874,4211546,440389,4056770,40483111,4046804,4053838,40482783,443445,4163851,4038495,4216316,4126388,4200201,4128840,4125599,4126264,4128836,4125609,4126390,4125606,4181845,4122720,4096383,4125602,4182150,4038496,4182149,4181846,434902,4053583,4304781,4174549,4036149,4289305,432441,4061847,194694,444094,4132566,40484207,439658,4029496,4182148,4171359,44801963,4126257,4125593,4199274,4128832,4126258,4041988,4039379,4040730,4182766,4067106,4041279,40539858,4040733,4034097,443604,4146479,435232,43020503,4024567,4031379,4156136,4152911,4152292,44805087,44805089,4161595,4308356,4152418,4191827,4265861,4116777,4278453,4269134,4041664,4271506,4271505,4117280,4115386,4116794,4116784,4115387,4116776,4116783,4028091,4021770,4275659,4271507,4103331,4199395,4116778,4115259,4115260,4115105,4275653,4269008,4023993,4096558,4154943,4269137,4277351,4116786,4271500,4199701,4275657,4181812,4108173,4119821,4027547,4277350,4267789,4275658,4275656,4269133,4269135,4275655,4299317,4103330,4027549,4134415,4269136,433993,433453,4176902,438392,4031958,4239381,4334472,138667,4025940,444250,40481346,4195634,4289104,4266361,436587,443625,4178421,4029638,4300404,4309063,4021344,4268845,4268844,4270001,43531688,4275366,4276735,4275497,4268835,4254479,4113020,4109370,4042889,4109371,443437,4269989,4276726,4275505,4275367,4275365,4269988,4092411,4168684,4041822,4047125,442023,4102986,4105188,46284789,4105191,436381,4266169,436634,432306,4148387,4288747,4148284,4090909,438020,4043545,4333000,4134596,4185575,4009182,4049386,432586,4100101,43020452,4025200,4008565,4249458,4103849,43530691,43531054,437420,434204,437459,4114159,436581,440076,434488,4123283,433933,4048345,433097,373786,4071365,4052225,4114164,4116638,4117136,4181682,40493502,4012384,4024013,4036154,4103826,4114302,4102723,44783587,4090426,4126244,4177708,4156629,4114801,4183971,4024712,4296465,4270687,4154801,4170962,4270690,442562,440310,4261870,4094202,4113237,4150614,4044415,4338039,4200181,4024716,4056578,4118054,195664,436641,4148091,4047120,4279309,4209223,4212884,80217,4081541,4181819,4101222,4182133,435244,444208,45770624,4035137,45771096,4335174,44782478,443783,4181055,4180021,441406,4287485,4323285,4213100,4021766,4042220,4180310,4176958,4187201,4173002,440059,4201705,4176969,4180770,4134294,4042141,4029363,4181063,4180169,4027384,4269221,43531056,4043346,441840,44797208,44793953,44796023,44795095,44794515,44798213,44800388,44795745,44794594,44800673,44797901,44813417,44795936,4088748,4104148,4278601,4096864,4271533,4270550,4179011,4290597,4241218,4054382,443883,4221489,4174159,43021227,4221798,4224260,4126394,4245242,4131992,4295654,4271642,4170673,4354265,4297361,4280295,4181975,4176522,4267521,4173994,4174158,4108607,4116635,4266770,4095786,4047308,43021588,4095631,43021599,4182438,4182623,4268993,4082835,4223595,4182613,4181678,4176705,4193523,4171799,4006473,4077761,4312226,4174627,4277505,4278438,4275514,4182460,4219057,4071689,4333743,4080561,4321148,4145214,4022933,4095790,4182462,4300154,4270567,4291437,4196732,4095633,4182622,4021777,4182311,4182612,4103190,4103183,4353966,4021775,4090072,4023995,4115558,4277352,4021774,4182614,4353840,4147185,4169123,4141523,4086181,4217077,4176545,4306520,4105888,4182312,4154773,4269130,4092490,4257441,4182607,4278435,4299315,4094294,4213737,4038492,4300146,4107669,4182769,4182000,4182621,4182320,4182457,4274410,4267233,4265005,4278442,4353828,4182619,4182001,4245113,4140549,4024014,4181973,4280285,4182458,4209224,4312259,4168498,4182166,4179873,4143544,4087297,4267229,4278455,4162739,4274025,4193506,4271400,4024558,4047779,36714559,4160062,444089,43531052,4042833,4287929,4053327,4266188,4051670,443723,37017423,43530975,43530976,45763639,43530974,4042500,4185470,4179872,4180630,45771080,43531053,43531055,443404,4028071,4178626,4288085,4035837,4296108,4297095,4297094,4301709,4296109,4296110,4178804,4300956,4300957,4301711,4179244,4182005,4128624,4087641,4087640,4087642,4179757,4182445,4208104,4159874,45765791,45773405,444363,4294057,4167864,4022204,4182468,4024017,4021908,4263283,4180036,4266769,4224515,4314326,137193,4132108,4246288,4245700,4277661,4287344,4030364,4038502,4182757,4275520,4268987,4271399,4182774,4162087,4008090,4129486,4086316,4278598,4024705,4182770,4091642,4181848,4271775,4266772,4136529,4269559,4216341,4095460,4094893,4025219,4295641,4299322,4299324,4295643,4164485,4299320,4295645,4295646,4300143,4041434,4040740,4041287,4041435,4042143,4042140,43531058,43531061,4126883,43021801,4199275,4158309,4129672,4128494,4115698,4186153,4115244,4154314,4126405,4113691,4213101,4185192,4126569,4101673,4179308,4185196,4199402,4115708,4254076,4128489,4128322,4159361,4021487,4177614,4125617,4113569,4128162,4113570,44788977,4128197,4128997,4124318,4129010,4126889,4091645,4095791,4128830,4116970,4125619,4126396,4129673,4127860,4126412,4128170,4122740,4182037,4154783,44792185,4104311,4297708,4103189,4114162,4201384,4126255,4157351,4103184,4104314,4179307,4200648,4201711,4126416,4102730,4104150,4122738,4126888,4126564,4156026,4183510,4183516,4126406,4113704,4113236,4124656,4184239,4179304,4091050,4126397,4182768,4115700,4021613,4117137,4156630,4126887,4179305,43531059,43531060,4041987,4126750,4126422,4122885,4128171,4113221,4186155,44803043,4113688,4126402,4128984,4126403,4226938,4222872,4122716,4156025,4090721,4185503,4114163,4174252,4116633,43531065,4126881,4306009,4185751,4142309,4200028,4183511,4103661,4182165,4179299,4128846,44811702,4115704,4128199,4117930,4182038,43531057,4200056,4201690,4185193,4177611,4177612,4270691,4270702,4279235,4273455,4273458,4275363,4266924,4265118,4280432,4270700,4298314,4181680,4275360,4150046,4179301,4181978,4266768,4265569,4132559,4276724,4175850,4275362,4103829,4041273,4303401,4278603,4182765,4324769,4266007,4270580,4182002,4089844,4181981,4182282,4278604,4182775,4270440,4024016,4182452,4264133,4168259,4093991,4268982,4278600,4287625,4181847,4294060,4246062,4188147,4132573,4266760,4266653,4278599,4128096,4116634,4173845,4133149,4134446,4271503,443916,4202472,4130197,4295638,4295639,4278605,4181823,4179598,43021226,43530897,42709887,4262752,4223759,4141833,4130200,44805233,4244894,4228656,4257530,4260210,4268534,4143065,4182152,4266192,4288388,4280293,4089402,4172421,4172201,4182615,4182616,436435,4182313,4128492,4128194,4077967,37018424,4266771,4269557,4246059,4244837,4091528,4104961,4300155,4161665,4295651,4079147,4262998,4203098,4113999,4102111,4102113,4116962,40481517,4171231,4245478,4115390,44810437,432455,4299325,4117129,4175540,4300142,4280436,4275651,4203631,4271784,4266773,4266764,4024710,4277360,4149865,4103172,4269561,4028076,4106059,4186392,4024566,4273609,4108611,4103192,4354249,4182315,4262874,4263521,4237172,4125412,4117123,4266186,4021902,4170179,4011630,4103662,4353949,4133152,4228128,4025220,4095779,4182611,4294061,4152342,4224742,4172247,4266774,4181204,4090739,4156036,4158351,4152356,4196709,4090071,4020924,4271398,4268989,4268990,4275516,4268985,4275517,4268986,4090497,4275515,4271397,4269000,4080011,4214848,4090513,4264438,4166498,4175400,4177128,4176983,4179748,4168104,4176979,4166499,4053782,36713290,4178411,4268101,4202478,4269132,4271508,4276589,4156503,4271130,4266780,4278443,44784102,4161988,4103193,4024003,4053317,4182004,4081176,4277363,4181987,4181974,4182122,4273330,4332151,4187213,4295648,4299326,4230027,4230028,4230150,4235556,4181681,4266926,4042015,4182463,4266767,444201,4119969,4041280,4103317,4051204,444205,4088927,4266766,4181816,4260324,4275648,4082925,4172024,4305025,4303802,4168644,4264994,4299337,4164339,4161553,4264993,43530872,4023059,4300144,4207195,4217143,4234703,4266213,4273017,4267227,4221066,4114158,4278440,4278434,4311117,4139999,4145668,4133151,4268992,4021903,4268981,4278437,4271774,4226404,4300139,4182153,4263298,4169942,4181998,4182618,4181684,4182617,4182314,4271639,4169984,4086189,4021905,4174619,4196708,4025203,4041990,4269987,4275361,4269986,443403,4021907,4221555,4271531,4108454,4181677,4021906,4181976,4271773,4181979,4268543,4212577,44807963,4262734,4083787,4270439,4246374,4181995,4141968,4275519,4270442,4312116,4113619,4021783,4278441,4081173,4093335,4182319,4264695,4277508,4245475,4181683,4277509,4278439,4246061,4305682,4182461,40483632,4306659,44811708,44811709,44811710,44811704,44811705,4182316,4275722,4102121,4102117,4080740,4181977,44790589,44790587,44790588,4191716,4114166,4052407,4241182,4241183,4194614,4032012,4267228,4267226,4181814,4025351,4263127,4040732,4024015,4287482,46272922,4246262,4164313,4241430,4295649,4246247,4271570,4182628,443251,4277370,4114160,4266929,4271920,4042020,4300153,4216788,4263380,4163439,4300140,4025352,4267235,4267236,4177703,4172399,40492407,4079709,4182006,4128977,4096860,4059947,4246058,4245578,4274409,437382,4262600,4193463,4161274,4246385,4080870,4155883,4271509,4095634,4269138,4182620,4181827,4230709,4237659,4227253,4125411,4278436,4174922,4266001,4037885,4326403,4264995,4287341,4267522,4353957,4021480,42709875,4021667,4028271
)
),
CTE_FINAL_MAP AS (
SELECT DISTINCT m.MEDDRA_CONCEPT_ID, m.MEDDRA_CONCEPT_NAME, m.MEDDRA_VOCABULARY_ID,
m.SNOMED_MAPPING_TYPE,
c1.CONCEPT_ID AS SNOMED_CONCEPT_ID, c1.CONCEPT_NAME AS SNOMED_CONCEPT_NAME, c1.VOCABULARY_ID AS SNOMED_VOCABULARY_ID,
m.FAERS_DISTINCT_REPORT_TYPES, m.FAERS_SUM_REPORT
FROM CTE_MAPPING_MEDDRA m
LEFT OUTER JOIN vocabulary.CONCEPT c1
ON c1.CONCEPT_ID = m.SNOMED_CONCEPT_ID
)
SELECT c.CONCEPT_CODE AS SOURCE_CODE, fm.MEDDRA_CONCEPT_ID AS SOURCE_CONCEPT_ID, c.VOCABULARY_ID AS SOURCE_VOCABULARY_ID,
c.CONCEPT_NAME AS SOURCE_CODE_DESCRIPTION,
SNOMED_CONCEPT_ID AS TARGET_CONCEPT_ID, SNOMED_CONCEPT_NAME AS TARGET_CONCEPT_NAME,
SNOMED_VOCABULARY_ID AS TARGET_VOCABULARY_ID,
'1/1/1970' AS VALID_START_DATE,
'12/31/2099' AS VALID_END_DATE,
NULL AS INVALID_REASON,
SNOMED_MAPPING_TYPE, FAERS_DISTINCT_REPORT_TYPES, FAERS_SUM_REPORT
FROM CTE_FINAL_MAP fm
JOIN vocabulary.CONCEPT c
ON CAST(c.CONCEPT_ID AS VARCHAR(100)) = fm.MEDDRA_CONCEPT_ID
ORDER BY FAERS_SUM_REPORT DESC, SOURCE_CODE_DESCRIPTION
May have done this backwards, review
I created two new columns:
Found in this commit:
956cf70
Files that changed
Evidence is not coming back for this drug. Need to review.
SELECT DISTINCT SOURCE_ID
FROM EVIDENCE.EVIDENCE_UNIFIED
WHERE CONCEPT_ID_1 IN (
21036605,21066061,21095475,21115160,21134685,21144572,21144573,36222380,36222381,36233737,36233738,40226579,40226580,40226581,40226582,40226583,40226584,40226585,40855000,40867373,41010885,41189695,41229826
)
Thank you Laura Hester
UPPERS are slowing down the queries.
What is the plan going forward for the OHDSI LAERTES virtuoso semantic web server?
Do we need to build a new CEM workflow to create a compatible semantic (RDF) database extract from CEM and load that data into Virtuoso (replacing the current LAERTES data load), or just shut down the Virtuoso server as part of the LAERTES sunset activities?
Negative control outcome generation for the following concept set returns observation domain concepts
{"items" :[{"concept":{"CONCEPT_ID":1118084,"CONCEPT_NAME":"celecoxib","STANDARD_CONCEPT":"S","INVALID_REASON":"V","CONCEPT_CODE":"140587","DOMAIN_ID":"Drug","VOCABULARY_ID":"RxNorm","CONCEPT_CLASS_ID":"Ingredient","INVALID_REASON_CAPTION":"Valid","STANDARD_CONCEPT_CAPTION":"Standard"},"isExcluded":false,"includeDescendants":false,"includeMapped":false},{"concept":{"CONCEPT_ID":1177480,"CONCEPT_NAME":"Ibuprofen","STANDARD_CONCEPT":"S","INVALID_REASON":"V","CONCEPT_CODE":"5640","DOMAIN_ID":"Drug","VOCABULARY_ID":"RxNorm","CONCEPT_CLASS_ID":"Ingredient","INVALID_REASON_CAPTION":"Valid","STANDARD_CONCEPT_CAPTION":"Standard"},"isExcluded":false,"includeDescendants":false,"includeMapped":false},{"concept":{"CONCEPT_ID":1115008,"CONCEPT_NAME":"Naproxen","STANDARD_CONCEPT":"S","INVALID_REASON":"V","CONCEPT_CODE":"7258","DOMAIN_ID":"Drug","VOCABULARY_ID":"RxNorm","CONCEPT_CLASS_ID":"Ingredient","INVALID_REASON_CAPTION":"Valid","STANDARD_CONCEPT_CAPTION":"Standard"},"isExcluded":false,"includeDescendants":false,"includeMapped":false}]}
When performing an analysis, we generally match patients based on propensity score however there is a process one must go through to remove covariates that are associated. It would be nice to be informed by the data as well as CEM.LITERATURE which to exclude.
Bridge between feature extraction and CEM.
You could do this on the top 20 out of balance covariates.
Thank you @alondhe for the idea.
Recreate this process given new data:
Voss EA, Boyce RD, Ryan PB, van der Lei J, Rijnbeek PR, Schuemie MJ. Accuracy of an automated knowledge base for identifying drug adverse reactions. J Biomed Inform. 2017 Feb;66:72-81. doi: 10.1016/j.jbi.2016.12.005. Epub 2016 Dec 16. PubMed PMID: 27993747; PubMed Central PMCID: PMC5316295.
Make process for developing the model repeatable.
Make the negative controls process clean up its tables after processing.
Export DB Name in Definition
For concepts that were "optimized" out of negative control selection, add a column for that.
Let the Too Broad concepts run for DRUGS too.
967823 | Sodium Chloride |
---|---|
19049105 | Potassium Chloride |
Add more conditions:
CONCEPT_ID | CONCEPT_NAME |
---|---|
444239 | Postprocedural state finding |
136237 | Cardiovascular system problem |
4319325 | Acquired deformity of trunk |
4168222 | Intra-abdominal and pelvic swelling, mass and lump |
138255 | Abnormal cardiovascular function |
137967 | Muscle, ligament and fascia disorders |
195603 | Vulval and/or perineal noninflammatory disorders |
4164707 | Canceled operative procedure |
Right now I'm missing the Evans approach for looking for signals in FAERS. Need to add back in.
Hi, I ran through this kettle job with some stops and starts. These todos are potential enhancements to help others deploy at their location. These could be in the form of notes or job tasks:
schema staging_vocabulary needs created under cem if this is the first run
The vocab tables for the CDM need to be loaded into staging_vocabulary if this is the first run
Thanks,
-R
Add code to process raw data sources into the repository
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.