1.18.120 • Published 10 months ago

@nsshunt/stsdatamanagement v1.18.120

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

stsdatamanagement

STS Data Management Modules, Utilities and Services

To create a database for testing use the following:

docker run --name postgres-5432 -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d --restart unless-stopped postgres \ -c max_connections=500 \ -c shared_buffers=2GB \ -c effective_cache_size=6GB \ -c maintenance_work_mem=512MB \ -c checkpoint_completion_target=0.9 \ -c wal_buffers=16MB \ -c default_statistics_target=100 \ -c random_page_cost=1.1 \ -c effective_io_concurrency=200 \ -c work_mem=1048kB \ -c min_wal_size=2GB \ -c max_wal_size=8GB \ -c max_worker_processes=6 \ -c max_parallel_workers_per_gather=3 \ -c max_parallel_workers=6 \ -c max_parallel_maintenance_workers=3

/ Samples Data {"id":"_b8b74a73_3275_4094_93b1_64a533c5924c_0_0fhir02_0","_resourceType":"Person","name":{"family":"Mccall","given":"Shane","use":"usual"},"text":{"div":"Updated record 0","status":"generated"}} /

select count(*) from stsresource;

/ Create General Search Indexes /

/ GIN Index / --drop index idx_stsresource_gin; CREATE INDEX idx_stsresource_gin ON stsresource USING GIN (resdesc_jsonb);

/ btree indexes / --drop index idx_stsresource_id; --We don't use where here becuase all FHIR resources will have an id field CREATE INDEX idx_stsresource_id ON stsresource ((resdesc_jsonb->>'id'));

-- Create Indexes for FHIR resources

--DROP INDEX idx_stsresource_given; CREATE INDEX idx_stsresource_given ON stsresource ((resdesc_jsonb->'name'->0->>'given')) WHERE resdesc_jsonb->>'_resourceType' = 'Person';

--drop index idx_stsresource_family; CREATE INDEX idx_stsresource_family ON stsresource ((resdesc_jsonb->'name'->0->>'family')) WHERE resdesc_jsonb->>'_resourceType' = 'Person';

--drop index idx_stsresource_text_div_01; CREATE INDEX idx_stsresource_text_div_01 ON stsresource ((resdesc_jsonb->'text'->>'div')) WHERE resdesc_jsonb->>'_resourceType' = 'Person';

/ btree indexes - alternate method - for queries, quotes will be need '""' / --drop index idx_stsresource_text_div_02; CREATE INDEX idx_stsresource_text_div_02 ON stsresource ((resdesc_jsonb#>'{text,div}')) WHERE (resdesc_jsonb#>'{_resourceType}')::text = '"Person"';

/ Queries using our indexes /

/ Get records using the GIN index / SELECT * FROM stsresource WHERE resdesc_jsonb @> '{"_resourceType": "Person"}' AND resdesc_jsonb @> '{"name": {"family": "Adams"}}' LIMIT 20

SELECT oid, resdesc_jsonb#>'{text,div}' AS text_div FROM stsresource WHERE resdesc_jsonb @> '{"_resourceType": "Person"}' AND resdesc_jsonb @> '{"text": {"div": "New Record 100"}}';

/ Get record using the BTREE index given / SELECT resdesc_jsonb->'id' as id, resdesc_jsonb->'name'->0->>'given' as given, resdesc_jsonb->'name'->0->>'family' as family, resdesc_jsonb->'name' as name FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND resdesc_jsonb->'name'->0->>'given' >= 'y' and resdesc_jsonb->'name'->0->>'given' < 'yzzzzzzzzzzzzz' AND validto is null ORDER BY family, given, id LIMIT 20;

/ Get record using the BTREE index 01 / SELECT oid, resdesc_jsonb#>'{text,div}' AS text_div FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND resdesc_jsonb->'text'->>'div' = 'New Record 200';

/ Get record using the BTREE index 02 / SELECT oid, resdesc_jsonb#>'{text,div}' AS text_div FROM stsresource WHERE (resdesc_jsonb#>'{_resourceType}')::text = '"Person"' AND resdesc_jsonb#>'{text,div}' = '"New Record 400"';

/ Query using id index / SELECT oid, resdescjsonb->>'id' as id, * FROM stsresource WHERE resdesc_jsonb->>'id' >= '' and resdesc_jsonb->>'id' < '_zzzzzzzzzzzz' ORDER BY resdesc_jsonb->>'id' LIMIT 20;

/ Query using given index / SELECT distinct given, family FROM ( SELECT resdesc_jsonb->'name'->0->>'given' as given, resdesc_jsonb->'name'->0->>'family' as family FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto is null AND resdesc_jsonb->'name'->0->>'given' >= 'a' AND resdesc_jsonb->'name'->0->>'given' < 'azzzzzzz' ) ORDER BY given DESC LIMIT 20;

/ Query using family indexes / SELECT distinct resdesc_jsonb->'name'->0->>'given' as given, resdesc_jsonb->'name'->0->>'family' as family FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto is null AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' ORDER BY given DESC LIMIT 20

/ Query using family and given indexes / SELECT distinct givenzz, familyzz FROM ( SELECT resdesc_jsonb->'name'->0->>'given' as givenzz, resdesc_jsonb->'name'->0->>'family' as familyzz FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto is null AND resdesc_jsonb->'name'->0->>'given' >= 'a' AND resdesc_jsonb->'name'->0->>'given' < 'azzzzzzz' AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' ) ORDER BY givenzz DESC LIMIT 20;

/ Query using given indexes / select count(*) from ( SELECT distinct resdesc_jsonb->'name'->0->>'given' as given FROM stsresource WHERE validto is null AND resdesc_jsonb->>'_resourceType' = 'Person' AND resdesc_jsonb->'name'->0->>'given' >= 'al' AND resdesc_jsonb->'name'->0->>'given' < 'alzzzzzzz' )

SELECT distinct resdesc_jsonb->'name'->0->>'given', resdesc_jsonb->'name'->0->>'family' FROM stsresource where validto is null AND resdesc_jsonb->>'_resourceType' = 'Person' AND resdesc_jsonb->'name'->0->>'given' >= 'a' AND resdesc_jsonb->'name'->0->>'given' < 'azzzzzzz' AND resdesc_jsonb->'name'->0->>'family' >= 's' AND resdesc_jsonb->'name'->0->>'family' < 'szzzzzzz' ORDER BY resdesc_jsonb->'name'->0->>'given' DESC, resdesc_jsonb->'name'->0->>'family' DESC LIMIT 20;

SELECT distinct resdesc_jsonb->'name'->0->>'given' as givenzz, resdesc_jsonb->'name'->0->>'family' as familyzz FROM stsresource where validto is null AND resdesc_jsonb->>'_resourceType' = 'Person' AND resdesc_jsonb->'name'->0->>'given' >= 'a' AND resdesc_jsonb->'name'->0->>'given' < 'azzzzzzz' AND resdesc_jsonb->'name'->0->>'family' >= 's' AND resdesc_jsonb->'name'->0->>'family' < 'szzzzzzz' ORDER BY givenzz DESC, familyzz DESC LIMIT 20;

SELECT distinct given as givenzz, family as familyzz FROM stsresource where validto is null AND given >= 'a' AND given < 'azzzzzzz' AND family >= 'n' AND family < 'nzzzzzzz' ORDER BY givenzz DESC, familyzz DESC LIMIT 20;

SELECT given, oid, * FROM stsresource where validto is null and given >= 'a' and given < 'azzzzzz' ORDER BY given LIMIT 20;

select count(*) from stsresource;

SELECT distinct givenzz, familyzz FROM ( SELECT resdesc_jsonb->'name'->0->>'given' as givenzz, resdesc_jsonb->'name'->0->>'family' as familyzz FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto is null AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' AND resdesc_jsonb->'name'->0->>'given' >= 'a' AND resdesc_jsonb->'name'->0->>'given' < 'azzzzzzz' ) ORDER BY givenzz DESC LIMIT 20;

SELECT distinct givenzz, familyzz FROM ( select * from ( SELECT resdesc_jsonb->'name'->0->>'given' as givenzz, resdesc_jsonb->'name'->0->>'family' as familyzz FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto is null AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' ) where givenzz >= 'a' and givenzz < 'azzzzzzzzzzzz' ) ORDER BY givenzz DESC LIMIT 20;

SELECT * FROM ( SELECT resdesc_jsonb->'name'->0->>'given' AS givenzz, resdesc_jsonb->'name'->0->>'family' AS familyzz FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto IS NULL AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' ) subquery WHERE givenzz >= 'a' AND givenzz < 'azzzzzzzzzzzz' ORDER BY givenzz DESC LIMIT 20;

BEGIN;

-- Step 1: Create and populate the temporary table SELECT * INTO TEMPORARY TABLE temp_table_name FROM ( SELECT resdesc_jsonb->'name'->0->>'given' AS givenzz, resdesc_jsonb->'name'->0->>'family' AS familyzz FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto IS NULL AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' ) subquery WHERE givenzz >= 'a' AND givenzz < 'azzzzzzzzzzzz';

-- Step 2: Query the temporary table SELECT DISTINCT givenzz, familyzz FROM temp_table_name ORDER BY givenzz DESC LIMIT 20;

DROP TABLE temp_table_name;

COMMIT;

SELECT given, family FROM ( select * from ( SELECT given, family FROM stsresource WHERE validto is null AND given >= 'a' AND given < 'azzzzzzz' ) subquery where family >= 'y' and family < 'yzzzzzzzzzzzz' ) ORDER BY given DESC LIMIT 20;

SELECT given, family FROM ( SELECT given, family FROM stsresource WHERE validto is null AND given >= 'a' AND given < 'azzzzzzz' AND family >= 'y' AND family < 'yzzzzzzzzzzzz' ) ORDER BY given DESC LIMIT 20;

WITH temp_table_name AS ( SELECT resdesc_jsonb->'name'->0->>'given' AS givenzz, resdesc_jsonb->'name'->0->>'family' AS familyzz, oid FROM stsresource WHERE resdesc_jsonb->>'_resourceType' = 'Person' AND validto IS NULL AND resdesc_jsonb->'name'->0->>'family' >= 'y' AND resdesc_jsonb->'name'->0->>'family' < 'yzzzzzzzzzzzz' ), tt2 AS ( SELECT givenzz, familyzz, oid FROM temp_table_name WHERE givenzz >= 'a' AND givenzz < 'azzzzzzzzzzzz' ) select * from tt2 ORDER BY givenzz ASC LIMIT 20;

-- select * from search_stsresource_given_family_v3('s', 'b'); -- drop function search_stsresource_given_family_v3; CREATE OR REPLACE FUNCTION public.search_stsresource_given_family_v3( _given character varying, _family character varying) RETURNS TABLE (given text, family text, oid bigint) LANGUAGE 'plpgsql' COST 100 VOLATILE ROWS 1000

AS $BODY$ DECLARE _resdesc_jsonb JSONB; BEGIN return query

WITH temp_table_name AS ( SELECT r.resdesc_jsonb->'name'->0->>'given' AS givenzz, r.resdesc_jsonb->'name'->0->>'family' AS familyzz, r.oid FROM stsresource r WHERE r.resdesc_jsonb->>'_resourceType' = 'Person' AND r.validto IS NULL AND r.resdesc_jsonb->'name'->0->>'family' >= _family AND r.resdesc_jsonb->'name'->0->>'family' < _family || 'zzzzzzzzzzzz' ), tt2 AS ( SELECT ttn.givenzz as given, ttn.familyzz as family, ttn.oid FROM temp_table_name ttn WHERE ttn.givenzz >= _given AND ttn.givenzz < _given || 'zzzzzzzzzzzz' ) select * from tt2 ORDER BY given ASC LIMIT 20;

END; $BODY$;

ALTER FUNCTION public.search_stsresource_given_family_v3(character varying, character varying) OWNER TO postgres;

-- select * from search_stsresource_given_family_v1('a', 'y'); -- drop function search_stsresource_given_family_v1; CREATE OR REPLACE FUNCTION public.search_stsresource_given_family_v1( _given character varying, _family character varying) RETURNS TABLE (given character varying, family character varying, oid bigint) LANGUAGE 'plpgsql' COST 100 VOLATILE ROWS 1000

AS $BODY$ DECLARE _resdesc_jsonb JSONB; BEGIN return query

SELECT rt.given, rt.family, rt.oid FROM ( SELECT r.given, r.family, r.oid FROM stsresource r WHERE r.validto is null AND r.given >= _given AND r.given < _given || 'zzzzzzz' AND r.family >= _family AND r.family < _family || 'zzzzzzzzzzzz' ) rt ORDER BY rt.given DESC LIMIT 20;

END; $BODY$;

ALTER FUNCTION public.search_stsresource_given_family_v1(character varying, character varying) OWNER TO postgres;

1.18.85

1 year ago

1.18.84

1 year ago

1.18.89

1 year ago

1.18.88

1 year ago

1.18.87

1 year ago

1.18.86

1 year ago

1.18.92

1 year ago

1.18.91

1 year ago

1.18.90

1 year ago

1.18.96

1 year ago

1.18.94

1 year ago

1.18.93

1 year ago

1.18.99

1 year ago

1.18.98

1 year ago

1.18.97

1 year ago

1.18.119

12 months ago

1.18.118

1 year ago

1.18.117

1 year ago

1.18.116

1 year ago

1.18.115

1 year ago

1.18.114

1 year ago

1.18.113

1 year ago

1.18.112

1 year ago

1.18.111

1 year ago

1.18.110

1 year ago

1.18.109

1 year ago

1.18.108

1 year ago

1.18.107

1 year ago

1.18.106

1 year ago

1.18.105

1 year ago

1.18.104

1 year ago

1.18.103

1 year ago

1.18.102

1 year ago

1.18.101

1 year ago

1.18.100

1 year ago

1.18.120

10 months ago

1.18.81

1 year ago

1.18.83

1 year ago

1.18.82

1 year ago

1.18.80

1 year ago

1.18.79

1 year ago

1.18.78

1 year ago

1.18.77

1 year ago

1.18.76

1 year ago

1.18.75

1 year ago

1.18.74

2 years ago

1.18.73

2 years ago

1.18.70

2 years ago

1.18.71

2 years ago

1.18.69

2 years ago

1.18.68

2 years ago

1.18.45

2 years ago

1.18.44

2 years ago

1.18.43

2 years ago

1.18.49

2 years ago

1.18.48

2 years ago

1.18.47

2 years ago

1.18.63

2 years ago

1.18.62

2 years ago

1.18.61

2 years ago

1.18.60

2 years ago

1.18.67

2 years ago

1.18.66

2 years ago

1.18.65

2 years ago

1.18.64

2 years ago

1.18.52

2 years ago

1.18.51

2 years ago

1.18.50

2 years ago

1.18.56

2 years ago

1.18.55

2 years ago

1.18.54

2 years ago

1.18.53

2 years ago

1.18.59

2 years ago

1.18.58

2 years ago

1.18.57

2 years ago

1.18.42

2 years ago

1.18.41

2 years ago

1.18.40

2 years ago

1.18.38

2 years ago

1.18.39

2 years ago

1.18.30

2 years ago

1.18.34

2 years ago

1.18.33

2 years ago

1.18.32

2 years ago

1.18.37

2 years ago

1.18.27

2 years ago

1.18.29

2 years ago

1.18.28

2 years ago

1.18.26

2 years ago

1.18.23

2 years ago

1.18.22

2 years ago

1.18.12

2 years ago

1.18.11

2 years ago

1.18.16

2 years ago

1.18.15

2 years ago

1.18.14

2 years ago

1.18.13

2 years ago

1.18.17

2 years ago

1.18.10

2 years ago

1.18.8

2 years ago

1.18.7

2 years ago

1.18.6

2 years ago

1.18.5

2 years ago

1.18.4

2 years ago

1.18.3

2 years ago

1.18.1

2 years ago

1.18.2

2 years ago

1.17.179

2 years ago

1.17.178

2 years ago

1.17.177

2 years ago

1.17.176

2 years ago

1.17.175

2 years ago

1.17.174

2 years ago

1.17.173

2 years ago

1.17.172

2 years ago

1.17.171

2 years ago

1.17.169

2 years ago

1.17.168

2 years ago

1.17.167

2 years ago

1.17.170

2 years ago

1.17.166

2 years ago

1.17.165

2 years ago

1.17.164

2 years ago

1.17.163

2 years ago

1.17.162

2 years ago

1.17.161

2 years ago

1.17.160

2 years ago

1.17.158

2 years ago

1.17.157

2 years ago

1.17.159

2 years ago

1.17.156

2 years ago

1.17.155

2 years ago

1.17.154

2 years ago

1.17.153

2 years ago

1.17.152

2 years ago

1.17.151

2 years ago

1.17.147

2 years ago

1.17.146

2 years ago

1.17.149

2 years ago

1.17.148

2 years ago

1.17.145

2 years ago

1.17.144

2 years ago

1.17.150

2 years ago

1.17.143

2 years ago

1.17.142

2 years ago

1.17.141

2 years ago

1.17.140

2 years ago

1.17.129

2 years ago

1.17.128

2 years ago

1.17.125

2 years ago

1.17.124

3 years ago

1.17.127

2 years ago

1.17.126

2 years ago

1.17.121

3 years ago

1.17.120

3 years ago

1.17.123

3 years ago

1.17.122

3 years ago

1.17.139

2 years ago

1.17.136

2 years ago

1.17.135

2 years ago

1.17.138

2 years ago

1.17.137

2 years ago

1.17.132

2 years ago

1.17.131

2 years ago

1.17.134

2 years ago

1.17.133

2 years ago

1.17.130

2 years ago

1.17.107

3 years ago

1.17.106

3 years ago

1.17.109

3 years ago

1.17.108

3 years ago

1.17.103

3 years ago

1.17.102

3 years ago

1.17.105

3 years ago

1.17.104

3 years ago

1.17.101

3 years ago

1.17.100

3 years ago

1.17.118

3 years ago

1.17.117

3 years ago

1.17.119

3 years ago

1.17.114

3 years ago

1.17.113

3 years ago

1.17.116

3 years ago

1.17.115

3 years ago

1.17.110

3 years ago

1.17.112

3 years ago

1.17.111

3 years ago

1.17.99

3 years ago

1.17.98

3 years ago

1.17.19

3 years ago

1.17.18

3 years ago

1.17.73

3 years ago

1.17.72

3 years ago

1.17.71

3 years ago

1.17.70

3 years ago

1.17.77

3 years ago

1.17.76

3 years ago

1.17.75

3 years ago

1.17.74

3 years ago

1.17.79

3 years ago

1.17.78

3 years ago

1.17.62

3 years ago

1.17.61

3 years ago

1.17.60

3 years ago

1.17.66

3 years ago

1.17.65

3 years ago

1.17.64

3 years ago

1.17.63

3 years ago

1.17.69

3 years ago

1.17.68

3 years ago

1.17.67

3 years ago

1.17.91

3 years ago

1.17.90

3 years ago

1.17.95

3 years ago

1.17.94

3 years ago

1.17.93

3 years ago

1.17.92

3 years ago

1.17.97

3 years ago

1.17.96

3 years ago

1.17.80

3 years ago

1.17.84

3 years ago

1.17.83

3 years ago

1.17.82

3 years ago

1.17.81

3 years ago

1.17.88

3 years ago

1.17.87

3 years ago

1.17.86

3 years ago

1.17.85

3 years ago

1.17.89

3 years ago

1.17.33

3 years ago

1.17.32

3 years ago

1.17.31

3 years ago

1.17.30

3 years ago

1.17.37

3 years ago

1.17.36

3 years ago

1.17.35

3 years ago

1.17.34

3 years ago

1.17.39

3 years ago

1.17.38

3 years ago

1.17.22

3 years ago

1.17.21

3 years ago

1.17.20

3 years ago

1.17.26

3 years ago

1.17.25

3 years ago

1.17.24

3 years ago

1.17.23

3 years ago

1.17.29

3 years ago

1.17.28

3 years ago

1.17.27

3 years ago

1.17.51

3 years ago

1.17.50

3 years ago

1.17.55

3 years ago

1.17.54

3 years ago

1.17.53

3 years ago

1.17.52

3 years ago

1.17.59

3 years ago

1.17.58

3 years ago

1.17.57

3 years ago

1.17.56

3 years ago

1.17.40

3 years ago

1.17.44

3 years ago

1.17.43

3 years ago

1.17.42

3 years ago

1.17.41

3 years ago

1.17.48

3 years ago

1.17.47

3 years ago

1.17.46

3 years ago

1.17.45

3 years ago

1.17.49

3 years ago

1.17.15

3 years ago

1.17.14

3 years ago

1.17.17

3 years ago

1.17.16

3 years ago

1.17.13

3 years ago

1.17.12

4 years ago

1.17.11

4 years ago

1.17.10

4 years ago

1.17.2

4 years ago

1.17.6

4 years ago

1.17.5

4 years ago

1.17.4

4 years ago

1.17.3

4 years ago

1.17.9

4 years ago

1.17.8

4 years ago

1.17.7

4 years ago

1.16.10

4 years ago

1.16.14

4 years ago

1.16.13

4 years ago

1.16.12

4 years ago

1.16.11

4 years ago

1.16.17

4 years ago

1.16.16

4 years ago

1.16.15

4 years ago

1.16.3

4 years ago

1.16.2

4 years ago

1.16.1

4 years ago

1.16.0

4 years ago

1.16.7

4 years ago

1.16.6

4 years ago

1.16.5

4 years ago

1.16.4

4 years ago

1.16.9

4 years ago

1.16.8

4 years ago

1.17.1

4 years ago

1.14.1

4 years ago

1.12.3

4 years ago

1.10.5

4 years ago

1.14.0

4 years ago

1.10.4

4 years ago

1.12.1

4 years ago

1.10.3

4 years ago

1.12.0

4 years ago

1.10.2

4 years ago

1.12.7

4 years ago

1.12.6

4 years ago

1.12.5

4 years ago

1.12.4

4 years ago

1.12.9

4 years ago

1.12.8

4 years ago

1.12.10

4 years ago

1.12.12

4 years ago

1.12.11

4 years ago

1.12.14

4 years ago

1.11.0

4 years ago

1.15.0

4 years ago

1.11.4

4 years ago

1.11.3

4 years ago

1.11.2

4 years ago

1.11.1

4 years ago

1.15.4

4 years ago

1.15.3

4 years ago

1.11.6

4 years ago

1.15.1

4 years ago

1.11.5

4 years ago

1.15.8

4 years ago

1.15.7

4 years ago

1.15.6

4 years ago

1.15.5

4 years ago

1.15.9

4 years ago

1.10.1

4 years ago

1.9.2

4 years ago

1.10.0

4 years ago

1.6.4

4 years ago

1.8.1

4 years ago

1.6.3

4 years ago

1.8.0

4 years ago

1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.7.9

4 years ago

1.7.8

4 years ago

1.7.7

4 years ago

1.6.11

4 years ago

1.7.5

4 years ago

1.6.13

4 years ago

1.7.4

4 years ago

1.6.12

4 years ago

1.6.15

4 years ago

1.6.14

4 years ago

1.6.16

4 years ago

1.7.3

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.5.1

4 years ago

1.6.9

4 years ago

1.6.8

4 years ago

1.6.7

4 years ago

1.6.6

4 years ago

1.6.5

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.18

4 years ago

1.3.19

4 years ago

1.3.20

4 years ago

1.3.13

4 years ago

1.3.17

4 years ago

1.3.15

4 years ago

1.3.16

4 years ago

1.3.12

4 years ago

1.3.11

4 years ago

1.3.10

4 years ago

1.3.9

4 years ago

1.3.8

4 years ago

1.3.7

4 years ago

1.3.6

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.1.20

4 years ago