@effekt-lang/effekt 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/effekt CHANGED
Binary file
@@ -8,14 +8,54 @@ import option
8
8
  /// A mutable 0-indexed fixed-sized array.
9
9
  extern type Array[T]
10
10
 
11
+ /** We represent arrays like positive types.
12
+ * The tag is 0 and the obj points to memory with the following layout:
13
+ *
14
+ * +--[ Header ]--+------+------------+
15
+ * | Rc | Eraser | Size | Fields ... |
16
+ * +--------------+------+------------+
17
+ */
18
+
19
+ extern llvm """
20
+ declare noalias ptr @calloc(i64, i64)
21
+
22
+ define void @array_erase_fields(ptr %array_pointer) {
23
+ entry:
24
+ %data_pointer = getelementptr inbounds i64, ptr %array_pointer, i64 1
25
+ %size = load i64, ptr %array_pointer, align 8
26
+ %size_eq_0 = icmp eq i64 %size, 0
27
+ br i1 %size_eq_0, label %exit, label %loop
28
+ loop:
29
+ %loop_phi = phi i64 [ %inc, %loop ], [ 0, %entry ]
30
+
31
+ %element_pointer = getelementptr inbounds %Pos, ptr %data_pointer, i64 %loop_phi
32
+ %element = load %Pos, ptr %element_pointer
33
+
34
+ call void @erasePositive(%Pos %element)
35
+ %inc = add nuw i64 %loop_phi, 1
36
+ %cmp = icmp ult i64 %inc, %size
37
+ br i1 %cmp, label %loop, label %exit
38
+ exit:
39
+ ret void
40
+ }
41
+ """
42
+
11
43
  /// Allocates a new array of size `size`, keeping its values _undefined_.
12
44
  /// Prefer using `array` constructor instead to ensure that values are defined.
13
45
  extern global def allocate[T](size: Int): Array[T] =
14
46
  js "(new Array(${size}))"
15
47
  chez "(make-vector ${size})" // creates an array filled with 0s on CS
16
48
  llvm """
17
- %z = call %Pos @c_array_new(%Int ${size})
18
- ret %Pos %z
49
+ %size0 = shl i64 ${size}, 4
50
+ %size1 = add i64 %size0, 24
51
+ %calloc = tail call noalias ptr @calloc(i64 %size1, i64 1)
52
+ %eraser_pointer = getelementptr ptr, ptr %calloc, i64 1
53
+ %size_pointer = getelementptr ptr, ptr %calloc, i64 2
54
+ store i64 0, ptr %calloc
55
+ store ptr @array_erase_fields, ptr %eraser_pointer
56
+ store i64 ${size}, ptr %size_pointer
57
+ %ret_pos = insertvalue %Pos { i64 0, ptr poison }, ptr %calloc, 1
58
+ ret %Pos %ret_pos
19
59
  """
20
60
  vm "array::allocate(Int)"
21
61
 
@@ -49,8 +89,12 @@ extern pure def size[T](arr: Array[T]): Int =
49
89
  js "${arr}.length"
50
90
  chez "(vector-length ${arr})"
51
91
  llvm """
52
- %z = call %Int @c_array_size(%Pos ${arr})
53
- ret %Int %z
92
+ %pos_data = extractvalue %Pos ${arr}, 1
93
+ %size_pointer = getelementptr inbounds i64, ptr %pos_data, i64 2
94
+ %size = load i64, ptr %size_pointer
95
+
96
+ tail call void @erasePositive(%Pos ${arr})
97
+ ret i64 %size
54
98
  """
55
99
  vm "array::size[T](Array[T])"
56
100
 
@@ -62,8 +106,15 @@ extern global def unsafeGet[T](arr: Array[T], index: Int): T =
62
106
  js "${arr}[${index}]"
63
107
  chez "(vector-ref ${arr} ${index})"
64
108
  llvm """
65
- %z = call %Pos @c_array_get(%Pos ${arr}, %Int ${index})
66
- ret %Pos %z
109
+ %pos_data = extractvalue %Pos ${arr}, 1
110
+
111
+ %data_pointer = getelementptr inbounds ptr, ptr %pos_data, i64 3
112
+ %element_pointer = getelementptr inbounds %Pos, ptr %data_pointer, i64 ${index}
113
+ %element = load %Pos, ptr %element_pointer
114
+
115
+ tail call void @sharePositive(%Pos %element)
116
+ tail call void @erasePositive(%Pos ${arr})
117
+ ret %Pos %element
67
118
  """
68
119
  vm "array::unsafeGet[T](Array[T], Int)"
69
120
 
@@ -82,8 +133,15 @@ extern global def unsafeSet[T](arr: Array[T], index: Int, value: T): Unit =
82
133
  js "array$set(${arr}, ${index}, ${value})"
83
134
  chez "(begin (vector-set! ${arr} ${index} ${value}) #f)"
84
135
  llvm """
85
- %z = call %Pos @c_array_set(%Pos ${arr}, %Int ${index}, %Pos ${value})
86
- ret %Pos %z
136
+ %array_data = extractvalue %Pos ${arr}, 1
137
+
138
+ %data_pointer = getelementptr inbounds i64, ptr %array_data, i64 3
139
+ %element_pointer = getelementptr inbounds %Pos, ptr %data_pointer, i64 ${index}
140
+ %element = load %Pos, ptr %element_pointer, align 8
141
+ tail call void @erasePositive(%Pos %element)
142
+ store %Pos ${value}, ptr %element_pointer, align 8
143
+ tail call void @erasePositive(%Pos ${arr})
144
+ ret %Pos zeroinitializer
87
145
  """
88
146
  vm "array::unsafeSet[T](Array[T], Int, T)"
89
147
 
@@ -2,6 +2,17 @@ module bytearray
2
2
 
3
3
  /**
4
4
  * A memory managed, mutable, fixed-length array of bytes.
5
+ *
6
+ * We represent bytearrays like positive types.
7
+ *
8
+ * - The field `tag` contains the size
9
+ * - The field `obj` points to memory with the following layout:
10
+ *
11
+ * +--[ Header ]--+--------------+
12
+ * | Rc | Eraser | Contents ... |
13
+ * +--------------+--------------+
14
+ *
15
+ * The eraser does nothing.
5
16
  */
6
17
  extern type ByteArray
7
18
  // = llvm "%Pos"
@@ -12,32 +23,47 @@ extern type ByteArray
12
23
  extern global def allocate(size: Int): ByteArray =
13
24
  js "(new Uint8Array(${size}))"
14
25
  llvm """
15
- %arr = call %Pos @c_bytearray_new(%Int ${size})
16
- ret %Pos %arr
26
+ %object_size = add i64 ${size}, 16
27
+ %object_alloc = tail call noalias ptr @malloc(i64 noundef %object_size)
28
+ store i64 0, ptr %object_alloc, align 8
29
+ %object_data_ptr = getelementptr inbounds i8, ptr %object_alloc, i64 8
30
+ store ptr @bytearray_erase_noop, ptr %object_data_ptr, align 8
31
+ %ret_object1 = insertvalue %Pos poison, i64 ${size}, 0
32
+ %ret_object2 = insertvalue %Pos %ret_object1, ptr %object_alloc, 1
33
+ ret %Pos %ret_object2
17
34
  """
18
35
  chez "(make-bytevector ${size})"
19
36
 
20
37
  extern pure def size(arr: ByteArray): Int =
21
38
  js "${arr}.length"
22
39
  llvm """
23
- %size = call %Int @c_bytearray_size(%Pos ${arr})
24
- ret %Int %size
40
+ %size = extractvalue %Pos ${arr}, 0
41
+ tail call void @erasePositive(%Pos ${arr})
42
+ ret i64 %size
25
43
  """
26
44
  chez "(bytevector-length ${arr})"
27
45
 
28
46
  extern global def unsafeGet(arr: ByteArray, index: Int): Byte =
29
47
  js "(${arr})[${index}]"
30
48
  llvm """
31
- %byte = call %Byte @c_bytearray_get(%Pos ${arr}, %Int ${index})
32
- ret %Byte %byte
49
+ %arr_ptr = extractvalue %Pos ${arr}, 1
50
+ %arr_data_ptr = getelementptr inbounds i8, ptr %arr_ptr, i64 16
51
+ %element_ptr = getelementptr inbounds i8, ptr %arr_data_ptr, i64 ${index}
52
+ %element = load i8, ptr %element_ptr, align 1
53
+ tail call void @erasePositive(%Pos ${arr})
54
+ ret i8 %element
33
55
  """
34
56
  chez "(bytevector-u8-ref ${arr} ${index})"
35
57
 
36
58
  extern global def unsafeSet(arr: ByteArray, index: Int, value: Byte): Unit =
37
59
  js "bytearray$set(${arr}, ${index}, ${value})"
38
60
  llvm """
39
- %z = call %Pos @c_bytearray_set(%Pos ${arr}, %Int ${index}, %Byte ${value})
40
- ret %Pos %z
61
+ %arr_ptr = extractvalue %Pos ${arr}, 1
62
+ %arr_data_ptr = getelementptr inbounds i8, ptr %arr_ptr, i64 16
63
+ %element_ptr = getelementptr inbounds i8, ptr %arr_data_ptr, i64 ${index}
64
+ store i8 ${value}, ptr %element_ptr, align 1
65
+ tail call void @erasePositive(%Pos ${arr})
66
+ ret %Pos zeroinitializer
41
67
  """
42
68
  chez "(bytevector-u8-set! ${arr} ${index} ${value})"
43
69
 
@@ -121,6 +147,12 @@ extern js """
121
147
  }
122
148
  """
123
149
 
150
+ extern llvm """
151
+ define void @bytearray_erase_noop(ptr readnone %0) {
152
+ ret void
153
+ }
154
+ """
155
+
124
156
  extern chez """
125
157
  (define (bytearray$compare b1 b2)
126
158
  (let ([len1 (bytevector-length b1)]
@@ -9,17 +9,44 @@ extern js """
9
9
  }
10
10
  """
11
11
 
12
+ extern llvm """
13
+ define void @c_ref_erase_field(ptr %0) {
14
+ %field = load %Pos, ptr %0, align 8
15
+ tail call void @erasePositive(%Pos %field)
16
+ ret void
17
+ }
18
+ """
19
+
12
20
  /// Global, mutable references
13
21
  extern type Ref[T]
14
22
 
23
+ /** We represent references like positive types in LLVM
24
+ * The tag is 0 and the obj points to memory with the following layout:
25
+ *
26
+ * +--[ Header ]--------------+------------+
27
+ * | ReferenceCount | Eraser | Field |
28
+ * +--------------------------+------------+
29
+ */
30
+
15
31
  /// Allocates a new reference, keeping its value _undefined_.
16
32
  /// Prefer using `ref` constructor instead to ensure that the value is defined.
17
33
  extern global def allocate[T](): Ref[T] =
18
34
  js "{ value: undefined }"
19
35
  chez "(box #f)"
20
36
  llvm """
21
- %z = call %Pos @c_ref_fresh(%Pos zeroinitializer)
22
- ret %Pos %z
37
+ ; sizeof Header + sizeof Pos = 32
38
+ %ref = tail call noalias ptr @malloc(i64 noundef 32)
39
+ %refEraser = getelementptr ptr, ptr %ref, i64 1
40
+ %fieldTag = getelementptr ptr, ptr %ref, i64 2
41
+ %fieldData_pointer = getelementptr ptr, ptr %ref, i64 3
42
+
43
+ store i64 0, ptr %ref, align 8
44
+ store ptr @c_ref_erase_field, ptr %refEraser, align 8
45
+ store i64 0, ptr %fieldTag, align 8
46
+ store ptr null, ptr %fieldData_pointer, align 8
47
+
48
+ %refWrap = insertvalue %Pos { i64 0, ptr poison }, ptr %ref, 1
49
+ ret %Pos %refWrap
23
50
  """
24
51
 
25
52
  /// Creates a new reference with the initial value `init`.
@@ -27,8 +54,20 @@ extern global def ref[T](init: T): Ref[T] =
27
54
  js "{ value: ${init} }"
28
55
  chez "(box ${init})"
29
56
  llvm """
30
- %z = call %Pos @c_ref_fresh(%Pos ${init})
31
- ret %Pos %z
57
+ %initTag = extractvalue %Pos ${init}, 0
58
+ %initObject_pointer = extractvalue %Pos ${init}, 1
59
+ ; sizeof Header + sizeof Pos = 32
60
+ %ref = tail call noalias ptr @malloc(i64 noundef 32)
61
+ %refEraser = getelementptr ptr, ptr %ref, i64 1
62
+ %refField = getelementptr ptr, ptr %ref, i64 2
63
+
64
+ store i64 0, ptr %ref, align 8
65
+ store ptr @c_ref_erase_field, ptr %refEraser, align 8
66
+ store %Pos ${init}, ptr %refField, align 8
67
+
68
+ %refWrap = insertvalue %Pos { i64 0, ptr poison }, ptr %ref, 1
69
+
70
+ ret %Pos %refWrap
32
71
  """
33
72
  vm "ref::ref[T](T)"
34
73
 
@@ -36,9 +75,15 @@ extern global def ref[T](init: T): Ref[T] =
36
75
  extern global def get[T](ref: Ref[T]): T =
37
76
  js "${ref}.value"
38
77
  chez "(unbox ${ref})"
39
- llvm """
40
- %z = call %Pos @c_ref_get(%Pos ${ref})
41
- ret %Pos %z
78
+ llvm """
79
+ %ref_pointer = extractvalue %Pos ${ref}, 1
80
+ %refField_pointer = getelementptr inbounds ptr, ptr %ref_pointer, i64 2
81
+ %refField = load %Pos, ptr %refField_pointer, align 8
82
+
83
+ tail call void @sharePositive(%Pos %refField)
84
+ tail call void @erasePositive(%Pos ${ref})
85
+
86
+ ret %Pos %refField
42
87
  """
43
88
  vm "ref::get[T](Ref[T])"
44
89
 
@@ -47,7 +92,15 @@ extern global def set[T](ref: Ref[T], value: T): Unit =
47
92
  js "set$impl(${ref}, ${value})"
48
93
  chez "(set-box! ${ref} ${value})"
49
94
  llvm """
50
- %z = call %Pos @c_ref_set(%Pos ${ref}, %Pos ${value})
51
- ret %Pos %z
95
+ %refField_pointer = extractvalue %Pos ${ref}, 1
96
+
97
+ %field_pointer = getelementptr ptr, ptr %refField_pointer, i64 2
98
+ %field = load %Pos, ptr %field_pointer, align 8
99
+
100
+ tail call void @erasePositive(%Pos %field)
101
+ store %Pos ${value}, ptr %field_pointer
102
+ tail call void @erasePositive(%Pos ${ref})
103
+
104
+ ret %Pos zeroinitializer
52
105
  """
53
106
  vm "ref::set[T](Ref[T], T)"
@@ -13,8 +13,6 @@
13
13
  #include "bytearray.c"
14
14
  #include "io.c"
15
15
  #include "panic.c"
16
- #include "ref.c"
17
- #include "array.c"
18
16
 
19
17
 
20
18
  extern void effektMain();
@@ -1,5 +1,5 @@
1
1
  <!doctype html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>Eclipse Public License 2.0 (EPL) | The Eclipse Foundation</title>
2
- <meta property="og:title" content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=twitter:title content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=twitter:description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=author content="Wayne Beaton"><link href=/favicon.ico rel=icon type=image/x-icon><meta property="og:image" content="https://www.eclipse.org/images/logos/eclipse-foundation-400x400.png"><meta name=twitter:image content="https://www.eclipse.org/images/logos/eclipse-foundation-400x400.png"><meta name=twitter:card content="summary"><meta name=twitter:site content="@eclipsefdn"><meta name=twitter:creator content="@eclipsefdn"><meta property="og:url" content="https://www.eclipse.org/legal/epl-2.0/"><meta property="og:type" content="website"><meta property="og:site_name" content="Eclipse Foundation"><meta name=keywords content="epl,epl-2.0,legal,foundation,eclipse,eclipse public license,license,licenses"><meta name=generator content="Hugo 0.144.2"><link rel=canonical href=https://www.eclipse.org/legal/epl-2.0/><link rel=alternate href=/legal/epl-2.0/index.xml type=application/rss+xml title><link rel=stylesheet href="/public/css/styles.css?v=1743598368"><script>(function(e,t,n,s,o){e[s]=e[s]||[],e[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n),r=s!="dataLayer"?"&l="+s:"";i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id="+o+r,a.parentNode.insertBefore(i,a)})(window,document,"script","dataLayer","GTM-5WLCZXC")</script><script>var tableClasses="table"</script><link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel=stylesheet type=text/css></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC" height=0 width=0 style=display:none;visibility:hidden></iframe></noscript><a class=sr-only href=#content>Skip to main content</a><header class="header-wrapper header-wrapper" id=header><div class=header-toolbar><div class=container><div class=header-toolbar-row><div class="toolbar-btn toolbar-search-btn dropdown"><button class=dropdown-toggle id=toolbar-search type=button data-toggle=dropdown tabindex=0 aria-label=Search>
2
+ <meta property="og:title" content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=twitter:title content="Eclipse Public License 2.0 (EPL) | The Eclipse Foundation"><meta name=description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=twitter:description content="The Eclipse Foundation provides our global community of individuals and organisations with a mature, scalable, and business-friendly environment for open source …"><meta name=author content="Wayne Beaton"><link href=/favicon.ico rel=icon type=image/x-icon><meta property="og:image" content="https://www.eclipse.org/images/logos/eclipse-foundation-400x400.png"><meta name=twitter:image content="https://www.eclipse.org/images/logos/eclipse-foundation-400x400.png"><meta name=twitter:card content="summary"><meta name=twitter:site content="@eclipsefdn"><meta name=twitter:creator content="@eclipsefdn"><meta property="og:url" content="https://www.eclipse.org/legal/epl-2.0/"><meta property="og:type" content="website"><meta property="og:site_name" content="Eclipse Foundation"><meta name=keywords content="epl,epl-2.0,legal,foundation,eclipse,eclipse public license,license,licenses"><meta name=generator content="Hugo 0.144.2"><link rel=canonical href=https://www.eclipse.org/legal/epl-2.0/><link rel=alternate href=/legal/epl-2.0/index.xml type=application/rss+xml title><link rel=stylesheet href="/public/css/styles.css?v=1744568130"><script>(function(e,t,n,s,o){e[s]=e[s]||[],e[s].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var a=t.getElementsByTagName(n)[0],i=t.createElement(n),r=s!="dataLayer"?"&l="+s:"";i.async=!0,i.src="https://www.googletagmanager.com/gtm.js?id="+o+r,a.parentNode.insertBefore(i,a)})(window,document,"script","dataLayer","GTM-5WLCZXC")</script><script>var tableClasses="table"</script><link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel=stylesheet type=text/css></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC" height=0 width=0 style=display:none;visibility:hidden></iframe></noscript><a class=sr-only href=#content>Skip to main content</a><header class="header-wrapper header-wrapper" id=header><div class=header-toolbar><div class=container><div class=header-toolbar-row><div class="toolbar-btn toolbar-search-btn dropdown"><button class=dropdown-toggle id=toolbar-search type=button data-toggle=dropdown tabindex=0 aria-label=Search>
3
3
  <i class="fa fa-search fa-lg" aria-role=none></i></button><div class="toolbar-search-bar-wrapper dropdown-menu dropdown-menu-right" aria-labelledby=toolbar-search><form action=https://www.eclipse.org/home/search method=get><div class=search-bar><input class=search-bar-input name=q placeholder=Search>
4
4
  <button>
5
5
  <i class="fa fa-search" type=submit></i></button></div></form></div></div><div class="toolbar-btn toolbar-user-menu-btn dropdown"><button class=dropdown-toggle id=toolbar-user-menu type=button data-toggle=dropdown tabindex=0 aria-label="User Menu">
@@ -60,4 +60,4 @@ open source software collaboration and innovation.</p></div><div class=mega-menu
60
60
  <i class="fa-brands fa-linkedin-in fa-stack-1x fa-inverse" aria-hidden=true></i>
61
61
  <span class=sr-only>Linkedin account</span></span></a></li></ul></div></div><div class="footer-sections row equal-height-md font-bold"><div class=col-md-15><div class=row><section id=footer-eclipse-foundation class="footer-section col-sm-8"><div class=menu-heading>Eclipse Foundation</div><ul class=nav><li><a href=https://www.eclipse.org/org/>About</a></li><li><a href=https://projects.eclipse.org/>Projects</a></li><li><a href=https://www.eclipse.org/collaborations/>Collaborations</a></li><li><a href=https://www.eclipse.org/membership/>Membership</a></li><li><a href=https://www.eclipse.org/sponsor/>Sponsor</a></li></ul></section><section id=footer-legal class="footer-section col-sm-8"><div class=menu-heading>Legal</div><ul class=nav><li><a href=https://www.eclipse.org/legal/privacy/>Privacy Policy</a></li><li><a href=https://www.eclipse.org/legal/terms-of-use/>Terms of Use</a></li><li><a href=https://www.eclipse.org/legal/compliance/>Compliance</a></li><li><a href=https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php>Code of Conduct</a></li><li><a href=https://www.eclipse.org/legal/>Legal Resources</a></li><li><a class=toolbar-manage-cookies href=# onclick=event.preventDefault()>Manage Cookies</a></li></ul></section><section id=footer-more class="footer-section col-sm-8"><div class=menu-heading>More</div><ul class=nav><li><a href=https://www.eclipse.org/security/>Report a Vulnerability</a></li><li><a href=https://status.eclipse.org/>Service Status</a></li><li><a href=https://www.eclipse.org/org/foundation/contact.php>Contact Us</a></li><li><a href=https://www.eclipse.org/projects/support/>Support</a></li></ul></section></div></div><div id=footer-end class="footer-section col-md-8 col-md-offset-1 col-sm-24"><div class=footer-end-newsletter><form id=mc-embedded-subscribe-form action="https://eclipse.us6.list-manage.com/subscribe/post?u=eaf9e1f06f194eadc66788a85&amp;id=e7538485cd&amp;f_id=00f9c2e1f0" method=post novalidate target=_blank><label class=footer-end-newsletter-label for=email>Subscribe to our Newsletter</label><div class=footer-end-newsletter-input-wrapper><input class=footer-end-newsletter-input type=email id=email name=EMAIL autocomplete=email placeholder="Enter your email address">
62
62
  <button class="footer-end-newsletter-submit btn btn-link" id=mc-embedded-subscribe type=submit name=subscribe>
63
- <i class="fa fa-solid fa-envelope fa-lg" aria-hidden=true></i></button></div></form></div></div></div><div class="col-sm-24 margin-top-20"><div class=row><div id=copyright class=col-md-16><p id=copyright-text>Copyright &copy; Eclipse Foundation AISBL. All Rights Reserved.</p></div></div></div><a href=# class=scrollup>Back to the top</a></div></footer><div id=footer-js><script src="/public/js/main.js?v1.0?v=1743598368"></script><script>(function(){})(jQuery,document)</script></div></body></html>
63
+ <i class="fa fa-solid fa-envelope fa-lg" aria-hidden=true></i></button></div></form></div></div></div><div class="col-sm-24 margin-top-20"><div class=row><div id=copyright class=col-md-16><p id=copyright-text>Copyright &copy; Eclipse Foundation AISBL. All Rights Reserved.</p></div></div></div><a href=# class=scrollup>Back to the top</a></div></footer><div id=footer-js><script src="/public/js/main.js?v1.0?v=1744568130"></script><script>(function(){})(jQuery,document)</script></div></body></html>
@@ -214,7 +214,7 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
214
214
  padding: 0 !important;
215
215
  }
216
216
  </style>
217
- <link rel='stylesheet' id='wp-block-library-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.5.0' type='text/css' media='all' />
217
+ <link rel='stylesheet' id='wp-block-library-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.6.0' type='text/css' media='all' />
218
218
  <style id='osi-event-list-style-inline-css' type='text/css'>
219
219
  /*!***************************************************************************************************************************************************************************************************************************************!*\
220
220
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./src/style.scss ***!
@@ -240,10 +240,10 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
240
240
  <style id='jetpack-sharing-buttons-style-inline-css' type='text/css'>
241
241
  .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}
242
242
  </style>
243
- <link rel='stylesheet' id='coblocks-frontend-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.14' type='text/css' media='all' />
244
- <link rel='stylesheet' id='coblocks-extensions-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.14' type='text/css' media='all' />
243
+ <link rel='stylesheet' id='coblocks-frontend-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.15' type='text/css' media='all' />
244
+ <link rel='stylesheet' id='coblocks-extensions-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.15' type='text/css' media='all' />
245
245
  <link rel='stylesheet' id='coblocks-animation-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-animation.css?ver=2677611078ee87eb3b1c' type='text/css' media='all' />
246
- <link rel='stylesheet' id='contact-form-7-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.5' type='text/css' media='all' />
246
+ <link rel='stylesheet' id='contact-form-7-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.6' type='text/css' media='all' />
247
247
  <link rel='stylesheet' id='events-manager-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager/includes/css/events-manager.min.css?ver=6.6.4.4' type='text/css' media='all' />
248
248
  <link rel='stylesheet' id='events-manager-pro-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager-pro/includes/css/events-manager-pro.css?ver=3.5' type='text/css' media='all' />
249
249
  <style id='global-styles-inline-css' type='text/css'>
@@ -251,9 +251,9 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
251
251
  :root :where(.wp-block-pullquote){font-size: clamp(0.984em, 0.984rem + ((1vw - 0.2em) * 0.645), 1.5em);line-height: 1.6;}
252
252
  </style>
253
253
  <link rel='stylesheet' id='comment_styles-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/wp-discourse/lib/../css/comments.css?ver=1734028771' type='text/css' media='all' />
254
- <link rel='stylesheet' id='cmplz-general-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1741804769' type='text/css' media='all' />
254
+ <link rel='stylesheet' id='cmplz-general-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1743792002' type='text/css' media='all' />
255
255
  <link rel='stylesheet' id='dashicons-css' href='https://c0.wp.com/c/6.7.2/wp-includes/css/dashicons.min.css' type='text/css' media='all' />
256
- <link rel='stylesheet' id='wp-components-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/components/style.css?ver=20.5.0' type='text/css' media='all' />
256
+ <link rel='stylesheet' id='wp-components-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/components/style.css?ver=20.6.0' type='text/css' media='all' />
257
257
  <link rel='stylesheet' id='godaddy-styles-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' type='text/css' media='all' />
258
258
  <link rel='stylesheet' id='indieweb-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/indieweb/static/css/indieweb.css?ver=4.0.5' type='text/css' media='all' />
259
259
  <link rel='stylesheet' id='webmention-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/webmention/assets/css/webmention.css?ver=5.3.3' type='text/css' media='all' />
@@ -267,7 +267,7 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
267
267
 
268
268
  .wp-block-cover { background-image:url()}
269
269
  </style>
270
- <link rel='stylesheet' id='genericons-css' href='https://c0.wp.com/p/jetpack/14.5/_inc/genericons/genericons/genericons.css' type='text/css' media='all' />
270
+ <link rel='stylesheet' id='genericons-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' type='text/css' media='all' />
271
271
  <link rel='stylesheet' id='jetpack-social-menu-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-classic-theme-helper/src/social-menu/social-menu.css?ver=1.0' type='text/css' media='all' />
272
272
  <style id='akismet-widget-style-inline-css' type='text/css'>
273
273
 
@@ -357,12 +357,12 @@ jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","curr
357
357
  <script type="text/javascript" src="https://c0.wp.com/c/6.7.2/wp-includes/js/jquery/ui/dialog.min.js" id="jquery-ui-dialog-js"></script>
358
358
  <script type="text/javascript" id="events-manager-js-extra">
359
359
  /* <![CDATA[ */
360
- var EM = {"ajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","locationajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/css\/jquery-ui\/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false}},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/js\/em-uploader.js","required":true,"event":"em_uploader_ready"}}}},"bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"f6df4f2043","attendance_api_url":"https:\/\/opensource.org\/wp-json\/events-manager\/v1\/attendance"};
360
+ var EM = {"ajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","locationajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/css\/jquery-ui\/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false}},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/js\/em-uploader.js","required":true,"event":"em_uploader_ready"}}}},"bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"533dd81915","attendance_api_url":"https:\/\/opensource.org\/wp-json\/events-manager\/v1\/attendance"};
361
361
  /* ]]> */
362
362
  </script>
363
363
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager/includes/js/events-manager.js?ver=6.6.4.4" id="events-manager-js"></script>
364
364
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager-pro/includes/js/events-manager-pro.js?ver=3.5" id="events-manager-pro-js"></script>
365
- <script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1743705680" id="plausible-analytics-js"></script>
365
+ <script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1744569696" id="plausible-analytics-js"></script>
366
366
  <script type="text/javascript" id="plausible-analytics-js-after">
367
367
  /* <![CDATA[ */
368
368
  window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }
@@ -942,7 +942,23 @@ form.customize-unpreviewable {
942
942
  .nelio-content-series-post-list__title {
943
943
  display: none;
944
944
  }
945
- </style>
945
+
946
+ #menu-item-2395 > a:first-of-type {
947
+ color: var(--wp--custom--button--color--text);
948
+ cursor: pointer;
949
+ background-color: var(--wp--custom--button--color--background);
950
+ border: var(--wp--custom--button--border--width) var(--wp--custom--button--border--style) var(--wp--custom--button--border--color);
951
+ border-radius: var(--wp--custom--button--border--radius);
952
+ display: inline-block;
953
+ font-family: var(--wp--custom--button--typography--font-family);
954
+ -webkit-font-smoothing: auto;
955
+ height: auto;
956
+ font-weight: bold;
957
+ padding: var(--wp--custom--button--spacing--padding--top) var(--wp--custom--button--spacing--padding--right) var(--wp--custom--button--spacing--padding--bottom) var(--wp--custom--button--spacing--padding--left);
958
+ text-decoration: none;
959
+ transition: all 0.3s;
960
+ width: auto;
961
+ } </style>
946
962
  </head>
947
963
 
948
964
  <body data-cmplz=1 class="license-template-default single single-license postid-395 wp-custom-logo wp-embed-responsive jps-theme-osi">
@@ -953,14 +969,14 @@ form.customize-unpreviewable {
953
969
  <div class="site-branding header--blog-name">
954
970
  <a href="https://opensource.org"><img class="header-logo" src="https://i0.wp.com/opensource.org/wp-content/uploads/2023/03/cropped-OSI-horizontal-large.png?fit=640%2C229&#038;ssl=1" alt="Open Source Initiative" /></a> </div><!-- .site-branding -->
955
971
  <nav aria-label="Primary" id="site-navigation" class="nav-main" role="navigation">
956
- <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="nav-main--menu"><li id="menu-item-2395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">DONATE</a></li>
972
+ <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="nav-main--menu"><li id="menu-item-2395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">Donate</a></li>
957
973
  <li id="menu-item-2358" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2358"><a href="https://opensource.org/about">About</a></li>
958
974
  <li id="menu-item-2360" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://opensource.org/osd">Open Source Definition</a></li>
959
975
  <li id="menu-item-2535" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2535"><a href="https://opensource.org/licenses">Licenses</a></li>
960
976
  <li id="menu-item-76872" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76872"><a href="https://opensource.org/ai">Open Source AI</a></li>
961
977
  <li id="menu-item-17606" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-17606"><a href="https://opensource.org/blog">Blog</a></li>
962
978
  <li id="menu-item-5690" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5690"><a href="https://opensource.org/programs">Programs</a></li>
963
- </ul></div><div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="nav-mobile--menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">DONATE</a></li>
979
+ </ul></div><div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="nav-mobile--menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">Donate</a></li>
964
980
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2358"><a href="https://opensource.org/about">About</a></li>
965
981
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://opensource.org/osd">Open Source Definition</a></li>
966
982
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2535"><a href="https://opensource.org/licenses">Licenses</a></li>
@@ -1108,7 +1124,9 @@ form.customize-unpreviewable {
1108
1124
  <li id="menu-item-5429" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5429"><a href="https://go.opensource.org/osaid-latest">OSAI Definition</a></li>
1109
1125
  <li id="menu-item-5421" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5428"><a href="https://opensource.org/ai/process">Process</a></li>
1110
1126
  <li id="menu-item-5430" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5430"><a href="https://opensource.org/ai/timeline">Timeline</a></li>
1127
+ <li id="menu-item-17411" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17411"><a href="https://opensource.org/ai/open-weights">Open Weights</a></li>
1111
1128
  <li id="menu-item-24456" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24456"><a href="https://opensource.org/ai/faq">FAQ</a></li>
1129
+ <li id="menu-item-24457" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24457"><a href="https://opensource.org/ai/checklist">Checklist</a></li>
1112
1130
  <li id="menu-item-17410" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17410"><a href="https://opensource.org/ai/forums">Forum</a></li>
1113
1131
  </ul>
1114
1132
  </div>
@@ -1299,15 +1317,15 @@ form.customize-unpreviewable {
1299
1317
  </div>
1300
1318
  <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">Manage consent</button>
1301
1319
 
1302
- </div><script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.14" id="coblocks-animation-js"></script>
1303
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/vendors/tiny-swiper.js?ver=3.1.14" id="coblocks-tiny-swiper-js"></script>
1320
+ </div><script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.15" id="coblocks-animation-js"></script>
1321
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/vendors/tiny-swiper.js?ver=3.1.15" id="coblocks-tiny-swiper-js"></script>
1304
1322
  <script type="text/javascript" id="coblocks-tinyswiper-initializer-js-extra">
1305
1323
  /* <![CDATA[ */
1306
1324
  var coblocksTinyswiper = {"carouselPrevButtonAriaLabel":"Previous","carouselNextButtonAriaLabel":"Next","sliderImageAriaLabel":"Image"};
1307
1325
  /* ]]> */
1308
1326
  </script>
1309
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-tinyswiper-initializer.js?ver=3.1.14" id="coblocks-tinyswiper-initializer-js"></script>
1310
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.5" id="swv-js"></script>
1327
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-tinyswiper-initializer.js?ver=3.1.15" id="coblocks-tinyswiper-initializer-js"></script>
1328
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.6" id="swv-js"></script>
1311
1329
  <script type="text/javascript" id="contact-form-7-js-before">
1312
1330
  /* <![CDATA[ */
1313
1331
  var wpcf7 = {
@@ -1319,7 +1337,7 @@ var wpcf7 = {
1319
1337
  };
1320
1338
  /* ]]> */
1321
1339
  </script>
1322
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.5" id="contact-form-7-js"></script>
1340
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.6" id="contact-form-7-js"></script>
1323
1341
  <script type="text/javascript" id="load_comments_js-js-extra">
1324
1342
  /* <![CDATA[ */
1325
1343
  var wpdc = {"commentsURL":"https:\/\/opensource.org\/wp-json\/wp-discourse\/v1\/discourse-comments"};
@@ -1336,11 +1354,11 @@ wp.jpI18nLoader.state = {"baseUrl":"https://opensource.org/wp-content/languages/
1336
1354
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/url/index.min.js?ver=1203626ff9ccb36dc17c" id="wp-url-js"></script>
1337
1355
  <script type="text/javascript" id="jetpack-instant-search-js-before">
1338
1356
  /* <![CDATA[ */
1339
- var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23fdd7b9%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%22attachment%22%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A12%2C%22siteId%22%3A210318891%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%2C%22supporter%22%3A%7B%22singular_name%22%3A%22Supporter%22%2C%22name%22%3A%22Supporters%22%7D%2C%22board-member%22%3A%7B%22singular_name%22%3A%22Board%20Member%22%2C%22name%22%3A%22Board%20Members%22%7D%2C%22license%22%3A%7B%22singular_name%22%3A%22License%22%2C%22name%22%3A%22Licenses%22%7D%2C%22meeting-minutes%22%3A%7B%22singular_name%22%3A%22Meeting%20Minutes%22%2C%22name%22%3A%22Meeting%20Minutes%22%7D%2C%22press-mentions%22%3A%7B%22singular_name%22%3A%22Press%20mentions%22%2C%22name%22%3A%22Press%20mentions%22%7D%2C%22podcast%22%3A%7B%22singular_name%22%3A%22Episode%22%2C%22name%22%3A%22Episode%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-content%5C%2Fplugins%5C%2Fjetpack%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%22f6df4f2043%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Post%20Types%22%2C%22type%22%3A%22post_type%22%2C%22count%22%3A6%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22post_type_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D"));
1357
+ var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23fdd7b9%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%22attachment%22%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A12%2C%22siteId%22%3A210318891%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%2C%22supporter%22%3A%7B%22singular_name%22%3A%22Supporter%22%2C%22name%22%3A%22Supporters%22%7D%2C%22board-member%22%3A%7B%22singular_name%22%3A%22Board%20Member%22%2C%22name%22%3A%22Board%20Members%22%7D%2C%22license%22%3A%7B%22singular_name%22%3A%22License%22%2C%22name%22%3A%22Licenses%22%7D%2C%22meeting-minutes%22%3A%7B%22singular_name%22%3A%22Meeting%20Minutes%22%2C%22name%22%3A%22Meeting%20Minutes%22%7D%2C%22press-mentions%22%3A%7B%22singular_name%22%3A%22Press%20mentions%22%2C%22name%22%3A%22Press%20mentions%22%7D%2C%22podcast%22%3A%7B%22singular_name%22%3A%22Episode%22%2C%22name%22%3A%22Episode%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-content%5C%2Fplugins%5C%2Fjetpack%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%22533dd81915%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Post%20Types%22%2C%22type%22%3A%22post_type%22%2C%22count%22%3A6%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22post_type_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D"));
1340
1358
  /* ]]> */
1341
1359
  </script>
1342
1360
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?minify=false&amp;ver=a470649482eafd442e42" id="jetpack-instant-search-js"></script>
1343
- <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202514" id="jp-tracks-js"></script>
1361
+ <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202516" id="jp-tracks-js"></script>
1344
1362
  <script type="text/javascript" id="osi-theme-scripts-js-before">
1345
1363
  /* <![CDATA[ */
1346
1364
  const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","action":"osi_license_db"}
@@ -1350,23 +1368,23 @@ const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-aja
1350
1368
  <script type="text/javascript" id="jetpack-stats-js-before">
1351
1369
  /* <![CDATA[ */
1352
1370
  _stq = window._stq || [];
1353
- _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"210318891\",\"post\":\"395\",\"tz\":\"0\",\"srv\":\"opensource.org\",\"hp\":\"atomic\",\"ac\":\"3\",\"amp\":\"0\",\"j\":\"1:14.5\"}") ]);
1371
+ _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"210318891\",\"post\":\"395\",\"tz\":\"0\",\"srv\":\"opensource.org\",\"hp\":\"atomic\",\"ac\":\"3\",\"amp\":\"0\",\"j\":\"1:14.6-a.1\"}") ]);
1354
1372
  _stq.push([ "clickTrackerInit", "210318891", "395" ]);
1355
1373
  /* ]]> */
1356
1374
  </script>
1357
- <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202514.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
1375
+ <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202516.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
1358
1376
  <script type="text/javascript" id="cmplz-cookiebanner-js-extra">
1359
1377
  /* <![CDATA[ */
1360
- var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"81","version":"7.3.1","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/opensource.org\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"16","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/opensource.org\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=81","page_links":{"eu":{"cookie-statement":{"title":"","url":"https:\/\/opensource.org\/blog\/your-support-our-focus-the-osis-2025-roadmap-to-a-stronger-open-source-ecosystem"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
1378
+ var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"81","version":"7.4.0","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/opensource.org\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"16","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/opensource.org\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=81","page_links":{"eu":{"cookie-statement":{"title":"","url":"https:\/\/opensource.org\/license\/gpl-3-0"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
1361
1379
  /* ]]> */
1362
1380
  </script>
1363
- <script defer type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1741804769" id="cmplz-cookiebanner-js"></script>
1381
+ <script defer type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1743792002" id="cmplz-cookiebanner-js"></script>
1364
1382
 
1365
- <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'92b19f0fea00c871',t:'MTc0Mzc3ODI2MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
1383
+ <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'93004515d8f83aff',t:'MTc0NDYwMjk1MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
1366
1384
  </html>
1367
1385
  <!--
1368
- generated 117 seconds ago
1369
- generated in 0.716 seconds
1386
+ generated 9 seconds ago
1387
+ generated in 0.631 seconds
1370
1388
  served from batcache in 0.003 seconds
1371
- expires in 183 seconds
1389
+ expires in 291 seconds
1372
1390
  -->
@@ -214,7 +214,7 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
214
214
  padding: 0 !important;
215
215
  }
216
216
  </style>
217
- <link rel='stylesheet' id='wp-block-library-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.5.0' type='text/css' media='all' />
217
+ <link rel='stylesheet' id='wp-block-library-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.6.0' type='text/css' media='all' />
218
218
  <style id='osi-event-list-style-inline-css' type='text/css'>
219
219
  /*!***************************************************************************************************************************************************************************************************************************************!*\
220
220
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./src/style.scss ***!
@@ -240,10 +240,10 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
240
240
  <style id='jetpack-sharing-buttons-style-inline-css' type='text/css'>
241
241
  .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}
242
242
  </style>
243
- <link rel='stylesheet' id='coblocks-frontend-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.14' type='text/css' media='all' />
244
- <link rel='stylesheet' id='coblocks-extensions-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.14' type='text/css' media='all' />
243
+ <link rel='stylesheet' id='coblocks-frontend-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.15' type='text/css' media='all' />
244
+ <link rel='stylesheet' id='coblocks-extensions-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.15' type='text/css' media='all' />
245
245
  <link rel='stylesheet' id='coblocks-animation-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-animation.css?ver=2677611078ee87eb3b1c' type='text/css' media='all' />
246
- <link rel='stylesheet' id='contact-form-7-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.5' type='text/css' media='all' />
246
+ <link rel='stylesheet' id='contact-form-7-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.6' type='text/css' media='all' />
247
247
  <link rel='stylesheet' id='events-manager-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager/includes/css/events-manager.min.css?ver=6.6.4.4' type='text/css' media='all' />
248
248
  <link rel='stylesheet' id='events-manager-pro-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager-pro/includes/css/events-manager-pro.css?ver=3.5' type='text/css' media='all' />
249
249
  <style id='global-styles-inline-css' type='text/css'>
@@ -251,9 +251,9 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
251
251
  :root :where(.wp-block-pullquote){font-size: clamp(0.984em, 0.984rem + ((1vw - 0.2em) * 0.645), 1.5em);line-height: 1.6;}
252
252
  </style>
253
253
  <link rel='stylesheet' id='comment_styles-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/wp-discourse/lib/../css/comments.css?ver=1734028771' type='text/css' media='all' />
254
- <link rel='stylesheet' id='cmplz-general-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1741804769' type='text/css' media='all' />
254
+ <link rel='stylesheet' id='cmplz-general-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1743792002' type='text/css' media='all' />
255
255
  <link rel='stylesheet' id='dashicons-css' href='https://c0.wp.com/c/6.7.2/wp-includes/css/dashicons.min.css' type='text/css' media='all' />
256
- <link rel='stylesheet' id='wp-components-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/components/style.css?ver=20.5.0' type='text/css' media='all' />
256
+ <link rel='stylesheet' id='wp-components-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/components/style.css?ver=20.6.0' type='text/css' media='all' />
257
257
  <link rel='stylesheet' id='godaddy-styles-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' type='text/css' media='all' />
258
258
  <link rel='stylesheet' id='indieweb-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/indieweb/static/css/indieweb.css?ver=4.0.5' type='text/css' media='all' />
259
259
  <link rel='stylesheet' id='webmention-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/webmention/assets/css/webmention.css?ver=5.3.3' type='text/css' media='all' />
@@ -267,7 +267,7 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
267
267
 
268
268
  .wp-block-cover { background-image:url()}
269
269
  </style>
270
- <link rel='stylesheet' id='genericons-css' href='https://c0.wp.com/p/jetpack/14.5/_inc/genericons/genericons/genericons.css' type='text/css' media='all' />
270
+ <link rel='stylesheet' id='genericons-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' type='text/css' media='all' />
271
271
  <link rel='stylesheet' id='jetpack-social-menu-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-classic-theme-helper/src/social-menu/social-menu.css?ver=1.0' type='text/css' media='all' />
272
272
  <style id='akismet-widget-style-inline-css' type='text/css'>
273
273
 
@@ -357,12 +357,12 @@ jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","curr
357
357
  <script type="text/javascript" src="https://c0.wp.com/c/6.7.2/wp-includes/js/jquery/ui/dialog.min.js" id="jquery-ui-dialog-js"></script>
358
358
  <script type="text/javascript" id="events-manager-js-extra">
359
359
  /* <![CDATA[ */
360
- var EM = {"ajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","locationajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/css\/jquery-ui\/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false}},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/js\/em-uploader.js","required":true,"event":"em_uploader_ready"}}}},"bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"f6df4f2043","attendance_api_url":"https:\/\/opensource.org\/wp-json\/events-manager\/v1\/attendance"};
360
+ var EM = {"ajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","locationajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/css\/jquery-ui\/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false}},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/js\/em-uploader.js","required":true,"event":"em_uploader_ready"}}}},"bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"533dd81915","attendance_api_url":"https:\/\/opensource.org\/wp-json\/events-manager\/v1\/attendance"};
361
361
  /* ]]> */
362
362
  </script>
363
363
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager/includes/js/events-manager.js?ver=6.6.4.4" id="events-manager-js"></script>
364
364
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager-pro/includes/js/events-manager-pro.js?ver=3.5" id="events-manager-pro-js"></script>
365
- <script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1743705680" id="plausible-analytics-js"></script>
365
+ <script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1744569696" id="plausible-analytics-js"></script>
366
366
  <script type="text/javascript" id="plausible-analytics-js-after">
367
367
  /* <![CDATA[ */
368
368
  window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }
@@ -942,7 +942,23 @@ form.customize-unpreviewable {
942
942
  .nelio-content-series-post-list__title {
943
943
  display: none;
944
944
  }
945
- </style>
945
+
946
+ #menu-item-2395 > a:first-of-type {
947
+ color: var(--wp--custom--button--color--text);
948
+ cursor: pointer;
949
+ background-color: var(--wp--custom--button--color--background);
950
+ border: var(--wp--custom--button--border--width) var(--wp--custom--button--border--style) var(--wp--custom--button--border--color);
951
+ border-radius: var(--wp--custom--button--border--radius);
952
+ display: inline-block;
953
+ font-family: var(--wp--custom--button--typography--font-family);
954
+ -webkit-font-smoothing: auto;
955
+ height: auto;
956
+ font-weight: bold;
957
+ padding: var(--wp--custom--button--spacing--padding--top) var(--wp--custom--button--spacing--padding--right) var(--wp--custom--button--spacing--padding--bottom) var(--wp--custom--button--spacing--padding--left);
958
+ text-decoration: none;
959
+ transition: all 0.3s;
960
+ width: auto;
961
+ } </style>
946
962
  </head>
947
963
 
948
964
  <body data-cmplz=1 class="license-template-default single single-license postid-373 wp-custom-logo wp-embed-responsive jps-theme-osi">
@@ -953,14 +969,14 @@ form.customize-unpreviewable {
953
969
  <div class="site-branding header--blog-name">
954
970
  <a href="https://opensource.org"><img class="header-logo" src="https://i0.wp.com/opensource.org/wp-content/uploads/2023/03/cropped-OSI-horizontal-large.png?fit=640%2C229&#038;ssl=1" alt="Open Source Initiative" /></a> </div><!-- .site-branding -->
955
971
  <nav aria-label="Primary" id="site-navigation" class="nav-main" role="navigation">
956
- <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="nav-main--menu"><li id="menu-item-2395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">DONATE</a></li>
972
+ <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="nav-main--menu"><li id="menu-item-2395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">Donate</a></li>
957
973
  <li id="menu-item-2358" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2358"><a href="https://opensource.org/about">About</a></li>
958
974
  <li id="menu-item-2360" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://opensource.org/osd">Open Source Definition</a></li>
959
975
  <li id="menu-item-2535" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2535"><a href="https://opensource.org/licenses">Licenses</a></li>
960
976
  <li id="menu-item-76872" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76872"><a href="https://opensource.org/ai">Open Source AI</a></li>
961
977
  <li id="menu-item-17606" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-17606"><a href="https://opensource.org/blog">Blog</a></li>
962
978
  <li id="menu-item-5690" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5690"><a href="https://opensource.org/programs">Programs</a></li>
963
- </ul></div><div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="nav-mobile--menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">DONATE</a></li>
979
+ </ul></div><div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="nav-mobile--menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">Donate</a></li>
964
980
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2358"><a href="https://opensource.org/about">About</a></li>
965
981
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://opensource.org/osd">Open Source Definition</a></li>
966
982
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2535"><a href="https://opensource.org/licenses">Licenses</a></li>
@@ -1106,7 +1122,9 @@ form.customize-unpreviewable {
1106
1122
  <li id="menu-item-5429" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5429"><a href="https://go.opensource.org/osaid-latest">OSAI Definition</a></li>
1107
1123
  <li id="menu-item-5421" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5428"><a href="https://opensource.org/ai/process">Process</a></li>
1108
1124
  <li id="menu-item-5430" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5430"><a href="https://opensource.org/ai/timeline">Timeline</a></li>
1125
+ <li id="menu-item-17411" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17411"><a href="https://opensource.org/ai/open-weights">Open Weights</a></li>
1109
1126
  <li id="menu-item-24456" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24456"><a href="https://opensource.org/ai/faq">FAQ</a></li>
1127
+ <li id="menu-item-24457" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24457"><a href="https://opensource.org/ai/checklist">Checklist</a></li>
1110
1128
  <li id="menu-item-17410" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17410"><a href="https://opensource.org/ai/forums">Forum</a></li>
1111
1129
  </ul>
1112
1130
  </div>
@@ -1297,15 +1315,15 @@ form.customize-unpreviewable {
1297
1315
  </div>
1298
1316
  <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">Manage consent</button>
1299
1317
 
1300
- </div><script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.14" id="coblocks-animation-js"></script>
1301
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/vendors/tiny-swiper.js?ver=3.1.14" id="coblocks-tiny-swiper-js"></script>
1318
+ </div><script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.15" id="coblocks-animation-js"></script>
1319
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/vendors/tiny-swiper.js?ver=3.1.15" id="coblocks-tiny-swiper-js"></script>
1302
1320
  <script type="text/javascript" id="coblocks-tinyswiper-initializer-js-extra">
1303
1321
  /* <![CDATA[ */
1304
1322
  var coblocksTinyswiper = {"carouselPrevButtonAriaLabel":"Previous","carouselNextButtonAriaLabel":"Next","sliderImageAriaLabel":"Image"};
1305
1323
  /* ]]> */
1306
1324
  </script>
1307
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-tinyswiper-initializer.js?ver=3.1.14" id="coblocks-tinyswiper-initializer-js"></script>
1308
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.5" id="swv-js"></script>
1325
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-tinyswiper-initializer.js?ver=3.1.15" id="coblocks-tinyswiper-initializer-js"></script>
1326
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.6" id="swv-js"></script>
1309
1327
  <script type="text/javascript" id="contact-form-7-js-before">
1310
1328
  /* <![CDATA[ */
1311
1329
  var wpcf7 = {
@@ -1317,7 +1335,7 @@ var wpcf7 = {
1317
1335
  };
1318
1336
  /* ]]> */
1319
1337
  </script>
1320
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.5" id="contact-form-7-js"></script>
1338
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.6" id="contact-form-7-js"></script>
1321
1339
  <script type="text/javascript" id="load_comments_js-js-extra">
1322
1340
  /* <![CDATA[ */
1323
1341
  var wpdc = {"commentsURL":"https:\/\/opensource.org\/wp-json\/wp-discourse\/v1\/discourse-comments"};
@@ -1334,11 +1352,11 @@ wp.jpI18nLoader.state = {"baseUrl":"https://opensource.org/wp-content/languages/
1334
1352
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/url/index.min.js?ver=1203626ff9ccb36dc17c" id="wp-url-js"></script>
1335
1353
  <script type="text/javascript" id="jetpack-instant-search-js-before">
1336
1354
  /* <![CDATA[ */
1337
- var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23fdd7b9%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%22attachment%22%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A12%2C%22siteId%22%3A210318891%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%2C%22supporter%22%3A%7B%22singular_name%22%3A%22Supporter%22%2C%22name%22%3A%22Supporters%22%7D%2C%22board-member%22%3A%7B%22singular_name%22%3A%22Board%20Member%22%2C%22name%22%3A%22Board%20Members%22%7D%2C%22license%22%3A%7B%22singular_name%22%3A%22License%22%2C%22name%22%3A%22Licenses%22%7D%2C%22meeting-minutes%22%3A%7B%22singular_name%22%3A%22Meeting%20Minutes%22%2C%22name%22%3A%22Meeting%20Minutes%22%7D%2C%22press-mentions%22%3A%7B%22singular_name%22%3A%22Press%20mentions%22%2C%22name%22%3A%22Press%20mentions%22%7D%2C%22podcast%22%3A%7B%22singular_name%22%3A%22Episode%22%2C%22name%22%3A%22Episode%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-content%5C%2Fplugins%5C%2Fjetpack%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%22f6df4f2043%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Post%20Types%22%2C%22type%22%3A%22post_type%22%2C%22count%22%3A6%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22post_type_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D"));
1355
+ var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23fdd7b9%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%22attachment%22%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A12%2C%22siteId%22%3A210318891%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%2C%22supporter%22%3A%7B%22singular_name%22%3A%22Supporter%22%2C%22name%22%3A%22Supporters%22%7D%2C%22board-member%22%3A%7B%22singular_name%22%3A%22Board%20Member%22%2C%22name%22%3A%22Board%20Members%22%7D%2C%22license%22%3A%7B%22singular_name%22%3A%22License%22%2C%22name%22%3A%22Licenses%22%7D%2C%22meeting-minutes%22%3A%7B%22singular_name%22%3A%22Meeting%20Minutes%22%2C%22name%22%3A%22Meeting%20Minutes%22%7D%2C%22press-mentions%22%3A%7B%22singular_name%22%3A%22Press%20mentions%22%2C%22name%22%3A%22Press%20mentions%22%7D%2C%22podcast%22%3A%7B%22singular_name%22%3A%22Episode%22%2C%22name%22%3A%22Episode%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-content%5C%2Fplugins%5C%2Fjetpack%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%22533dd81915%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Post%20Types%22%2C%22type%22%3A%22post_type%22%2C%22count%22%3A6%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22post_type_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D"));
1338
1356
  /* ]]> */
1339
1357
  </script>
1340
1358
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?minify=false&amp;ver=a470649482eafd442e42" id="jetpack-instant-search-js"></script>
1341
- <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202514" id="jp-tracks-js"></script>
1359
+ <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202516" id="jp-tracks-js"></script>
1342
1360
  <script type="text/javascript" id="osi-theme-scripts-js-before">
1343
1361
  /* <![CDATA[ */
1344
1362
  const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","action":"osi_license_db"}
@@ -1348,23 +1366,23 @@ const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-aja
1348
1366
  <script type="text/javascript" id="jetpack-stats-js-before">
1349
1367
  /* <![CDATA[ */
1350
1368
  _stq = window._stq || [];
1351
- _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"210318891\",\"post\":\"373\",\"tz\":\"0\",\"srv\":\"opensource.org\",\"hp\":\"atomic\",\"ac\":\"3\",\"amp\":\"0\",\"j\":\"1:14.5\"}") ]);
1369
+ _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"210318891\",\"post\":\"373\",\"tz\":\"0\",\"srv\":\"opensource.org\",\"hp\":\"atomic\",\"ac\":\"3\",\"amp\":\"0\",\"j\":\"1:14.6-a.1\"}") ]);
1352
1370
  _stq.push([ "clickTrackerInit", "210318891", "373" ]);
1353
1371
  /* ]]> */
1354
1372
  </script>
1355
- <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202514.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
1373
+ <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202516.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
1356
1374
  <script type="text/javascript" id="cmplz-cookiebanner-js-extra">
1357
1375
  /* <![CDATA[ */
1358
- var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"81","version":"7.3.1","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/opensource.org\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"16","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/opensource.org\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=81","page_links":{"eu":{"cookie-statement":{"title":"","url":"https:\/\/opensource.org\/ai\/open-weights"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
1376
+ var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"81","version":"7.4.0","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/opensource.org\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"16","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/opensource.org\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=81","page_links":{"eu":{"cookie-statement":{"title":"","url":"https:\/\/opensource.org\/license\/gpl-3-0"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
1359
1377
  /* ]]> */
1360
1378
  </script>
1361
- <script defer type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1741804769" id="cmplz-cookiebanner-js"></script>
1379
+ <script defer type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1743792002" id="cmplz-cookiebanner-js"></script>
1362
1380
 
1363
- <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'92b19f0e9801c871',t:'MTc0Mzc3ODI2MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
1381
+ <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'93004514afb63aff',t:'MTc0NDYwMjk0OS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
1364
1382
  </html>
1365
1383
  <!--
1366
- generated 9 seconds ago
1367
- generated in 0.681 seconds
1384
+ generated 51 seconds ago
1385
+ generated in 0.636 seconds
1368
1386
  served from batcache in 0.003 seconds
1369
- expires in 291 seconds
1387
+ expires in 249 seconds
1370
1388
  -->
@@ -214,7 +214,7 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
214
214
  padding: 0 !important;
215
215
  }
216
216
  </style>
217
- <link rel='stylesheet' id='wp-block-library-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.5.0' type='text/css' media='all' />
217
+ <link rel='stylesheet' id='wp-block-library-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/block-library/style.css?ver=20.6.0' type='text/css' media='all' />
218
218
  <style id='osi-event-list-style-inline-css' type='text/css'>
219
219
  /*!***************************************************************************************************************************************************************************************************************************************!*\
220
220
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./src/style.scss ***!
@@ -240,10 +240,10 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
240
240
  <style id='jetpack-sharing-buttons-style-inline-css' type='text/css'>
241
241
  .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em}
242
242
  </style>
243
- <link rel='stylesheet' id='coblocks-frontend-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.14' type='text/css' media='all' />
244
- <link rel='stylesheet' id='coblocks-extensions-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.14' type='text/css' media='all' />
243
+ <link rel='stylesheet' id='coblocks-frontend-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.15' type='text/css' media='all' />
244
+ <link rel='stylesheet' id='coblocks-extensions-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.15' type='text/css' media='all' />
245
245
  <link rel='stylesheet' id='coblocks-animation-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/style-coblocks-animation.css?ver=2677611078ee87eb3b1c' type='text/css' media='all' />
246
- <link rel='stylesheet' id='contact-form-7-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.5' type='text/css' media='all' />
246
+ <link rel='stylesheet' id='contact-form-7-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.0.6' type='text/css' media='all' />
247
247
  <link rel='stylesheet' id='events-manager-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager/includes/css/events-manager.min.css?ver=6.6.4.4' type='text/css' media='all' />
248
248
  <link rel='stylesheet' id='events-manager-pro-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager-pro/includes/css/events-manager-pro.css?ver=3.5' type='text/css' media='all' />
249
249
  <style id='global-styles-inline-css' type='text/css'>
@@ -251,9 +251,9 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
251
251
  :root :where(.wp-block-pullquote){font-size: clamp(0.984em, 0.984rem + ((1vw - 0.2em) * 0.645), 1.5em);line-height: 1.6;}
252
252
  </style>
253
253
  <link rel='stylesheet' id='comment_styles-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/wp-discourse/lib/../css/comments.css?ver=1734028771' type='text/css' media='all' />
254
- <link rel='stylesheet' id='cmplz-general-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1741804769' type='text/css' media='all' />
254
+ <link rel='stylesheet' id='cmplz-general-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/assets/css/cookieblocker.min.css?ver=1743792002' type='text/css' media='all' />
255
255
  <link rel='stylesheet' id='dashicons-css' href='https://c0.wp.com/c/6.7.2/wp-includes/css/dashicons.min.css' type='text/css' media='all' />
256
- <link rel='stylesheet' id='wp-components-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/components/style.css?ver=20.5.0' type='text/css' media='all' />
256
+ <link rel='stylesheet' id='wp-components-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/components/style.css?ver=20.6.0' type='text/css' media='all' />
257
257
  <link rel='stylesheet' id='godaddy-styles-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' type='text/css' media='all' />
258
258
  <link rel='stylesheet' id='indieweb-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/indieweb/static/css/indieweb.css?ver=4.0.5' type='text/css' media='all' />
259
259
  <link rel='stylesheet' id='webmention-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/webmention/assets/css/webmention.css?ver=5.3.3' type='text/css' media='all' />
@@ -267,7 +267,7 @@ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15
267
267
 
268
268
  .wp-block-cover { background-image:url()}
269
269
  </style>
270
- <link rel='stylesheet' id='genericons-css' href='https://c0.wp.com/p/jetpack/14.5/_inc/genericons/genericons/genericons.css' type='text/css' media='all' />
270
+ <link rel='stylesheet' id='genericons-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css?ver=3.1' type='text/css' media='all' />
271
271
  <link rel='stylesheet' id='jetpack-social-menu-css' href='https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-classic-theme-helper/src/social-menu/social-menu.css?ver=1.0' type='text/css' media='all' />
272
272
  <style id='akismet-widget-style-inline-css' type='text/css'>
273
273
 
@@ -357,12 +357,12 @@ jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Close","curr
357
357
  <script type="text/javascript" src="https://c0.wp.com/c/6.7.2/wp-includes/js/jquery/ui/dialog.min.js" id="jquery-ui-dialog-js"></script>
358
358
  <script type="text/javascript" id="events-manager-js-extra">
359
359
  /* <![CDATA[ */
360
- var EM = {"ajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","locationajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/css\/jquery-ui\/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false}},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/js\/em-uploader.js","required":true,"event":"em_uploader_ready"}}}},"bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"f6df4f2043","attendance_api_url":"https:\/\/opensource.org\/wp-json\/events-manager\/v1\/attendance"};
360
+ var EM = {"ajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","locationajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php?action=locations_search","firstDay":"1","locale":"en","dateFormat":"yy-mm-dd","ui_css":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/css\/jquery-ui\/build.min.css","show24hours":"0","is_ssl":"1","autocomplete_limit":"10","calendar":{"breakpoints":{"small":560,"medium":908,"large":false}},"phone":"","datepicker":{"format":"Y-m-d"},"search":{"breakpoints":{"small":650,"medium":850,"full":false}},"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager","assets":{"input.em-uploader":{"js":{"em-uploader":{"url":"https:\/\/opensource.org\/wp-content\/plugins\/events-manager\/includes\/js\/em-uploader.js","required":true,"event":"em_uploader_ready"}}}},"bookingInProgress":"Please wait while the booking is being submitted.","tickets_save":"Save Ticket","bookingajaxurl":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","bookings_export_save":"Export Bookings","bookings_settings_save":"Save Settings","booking_delete":"Are you sure you want to delete?","booking_offset":"30","bookings":{"submit_button":{"text":{"default":"Submit Booking","free":"Submit Booking","payment":"Submit Booking - %s","processing":"Processing ..."}},"update_listener":""},"bb_full":"Sold Out","bb_book":"Book Now","bb_booking":"Booking...","bb_booked":"Booking Submitted","bb_error":"Booking Error. Try again?","bb_cancel":"Cancel","bb_canceling":"Canceling...","bb_cancelled":"Cancelled","bb_cancel_error":"Cancellation Error. Try again?","txt_search":"Search","txt_searching":"Searching...","txt_loading":"Loading...","cache":"1","api_nonce":"533dd81915","attendance_api_url":"https:\/\/opensource.org\/wp-json\/events-manager\/v1\/attendance"};
361
361
  /* ]]> */
362
362
  </script>
363
363
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager/includes/js/events-manager.js?ver=6.6.4.4" id="events-manager-js"></script>
364
364
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/events-manager-pro/includes/js/events-manager-pro.js?ver=3.5" id="events-manager-pro-js"></script>
365
- <script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1743705680" id="plausible-analytics-js"></script>
365
+ <script type="text/javascript" defer data-domain='opensource.org' data-api='https://opensource.org/wp-json/fcdf21/v1/da74/d08e74b0' data-cfasync='false' src="//opensource.org/wp-content/uploads/4931f7089c/801c1c58.js?ver=1744569696" id="plausible-analytics-js"></script>
366
366
  <script type="text/javascript" id="plausible-analytics-js-after">
367
367
  /* <![CDATA[ */
368
368
  window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }
@@ -942,7 +942,23 @@ form.customize-unpreviewable {
942
942
  .nelio-content-series-post-list__title {
943
943
  display: none;
944
944
  }
945
- </style>
945
+
946
+ #menu-item-2395 > a:first-of-type {
947
+ color: var(--wp--custom--button--color--text);
948
+ cursor: pointer;
949
+ background-color: var(--wp--custom--button--color--background);
950
+ border: var(--wp--custom--button--border--width) var(--wp--custom--button--border--style) var(--wp--custom--button--border--color);
951
+ border-radius: var(--wp--custom--button--border--radius);
952
+ display: inline-block;
953
+ font-family: var(--wp--custom--button--typography--font-family);
954
+ -webkit-font-smoothing: auto;
955
+ height: auto;
956
+ font-weight: bold;
957
+ padding: var(--wp--custom--button--spacing--padding--top) var(--wp--custom--button--spacing--padding--right) var(--wp--custom--button--spacing--padding--bottom) var(--wp--custom--button--spacing--padding--left);
958
+ text-decoration: none;
959
+ transition: all 0.3s;
960
+ width: auto;
961
+ } </style>
946
962
  </head>
947
963
 
948
964
  <body data-cmplz=1 class="license-template-default single single-license postid-395 wp-custom-logo wp-embed-responsive jps-theme-osi">
@@ -953,14 +969,14 @@ form.customize-unpreviewable {
953
969
  <div class="site-branding header--blog-name">
954
970
  <a href="https://opensource.org"><img class="header-logo" src="https://i0.wp.com/opensource.org/wp-content/uploads/2023/03/cropped-OSI-horizontal-large.png?fit=640%2C229&#038;ssl=1" alt="Open Source Initiative" /></a> </div><!-- .site-branding -->
955
971
  <nav aria-label="Primary" id="site-navigation" class="nav-main" role="navigation">
956
- <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="nav-main--menu"><li id="menu-item-2395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">DONATE</a></li>
972
+ <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="nav-main--menu"><li id="menu-item-2395" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">Donate</a></li>
957
973
  <li id="menu-item-2358" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2358"><a href="https://opensource.org/about">About</a></li>
958
974
  <li id="menu-item-2360" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://opensource.org/osd">Open Source Definition</a></li>
959
975
  <li id="menu-item-2535" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2535"><a href="https://opensource.org/licenses">Licenses</a></li>
960
976
  <li id="menu-item-76872" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76872"><a href="https://opensource.org/ai">Open Source AI</a></li>
961
977
  <li id="menu-item-17606" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-17606"><a href="https://opensource.org/blog">Blog</a></li>
962
978
  <li id="menu-item-5690" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5690"><a href="https://opensource.org/programs">Programs</a></li>
963
- </ul></div><div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="nav-mobile--menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">DONATE</a></li>
979
+ </ul></div><div class="menu-primary-menu-container"><ul id="menu-primary-menu-1" class="nav-mobile--menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2395"><a href="https://members.opensource.org/donate">Donate</a></li>
964
980
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2358"><a href="https://opensource.org/about">About</a></li>
965
981
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2360"><a href="https://opensource.org/osd">Open Source Definition</a></li>
966
982
  <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2535"><a href="https://opensource.org/licenses">Licenses</a></li>
@@ -1108,7 +1124,9 @@ form.customize-unpreviewable {
1108
1124
  <li id="menu-item-5429" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5429"><a href="https://go.opensource.org/osaid-latest">OSAI Definition</a></li>
1109
1125
  <li id="menu-item-5421" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5428"><a href="https://opensource.org/ai/process">Process</a></li>
1110
1126
  <li id="menu-item-5430" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5430"><a href="https://opensource.org/ai/timeline">Timeline</a></li>
1127
+ <li id="menu-item-17411" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17411"><a href="https://opensource.org/ai/open-weights">Open Weights</a></li>
1111
1128
  <li id="menu-item-24456" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24456"><a href="https://opensource.org/ai/faq">FAQ</a></li>
1129
+ <li id="menu-item-24457" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24457"><a href="https://opensource.org/ai/checklist">Checklist</a></li>
1112
1130
  <li id="menu-item-17410" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17410"><a href="https://opensource.org/ai/forums">Forum</a></li>
1113
1131
  </ul>
1114
1132
  </div>
@@ -1299,15 +1317,15 @@ form.customize-unpreviewable {
1299
1317
  </div>
1300
1318
  <div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">Manage consent</button>
1301
1319
 
1302
- </div><script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.14" id="coblocks-animation-js"></script>
1303
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/vendors/tiny-swiper.js?ver=3.1.14" id="coblocks-tiny-swiper-js"></script>
1320
+ </div><script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.15" id="coblocks-animation-js"></script>
1321
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/vendors/tiny-swiper.js?ver=3.1.15" id="coblocks-tiny-swiper-js"></script>
1304
1322
  <script type="text/javascript" id="coblocks-tinyswiper-initializer-js-extra">
1305
1323
  /* <![CDATA[ */
1306
1324
  var coblocksTinyswiper = {"carouselPrevButtonAriaLabel":"Previous","carouselNextButtonAriaLabel":"Next","sliderImageAriaLabel":"Image"};
1307
1325
  /* ]]> */
1308
1326
  </script>
1309
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-tinyswiper-initializer.js?ver=3.1.14" id="coblocks-tinyswiper-initializer-js"></script>
1310
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.5" id="swv-js"></script>
1327
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/coblocks/dist/js/coblocks-tinyswiper-initializer.js?ver=3.1.15" id="coblocks-tinyswiper-initializer-js"></script>
1328
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.0.6" id="swv-js"></script>
1311
1329
  <script type="text/javascript" id="contact-form-7-js-before">
1312
1330
  /* <![CDATA[ */
1313
1331
  var wpcf7 = {
@@ -1319,7 +1337,7 @@ var wpcf7 = {
1319
1337
  };
1320
1338
  /* ]]> */
1321
1339
  </script>
1322
- <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.5" id="contact-form-7-js"></script>
1340
+ <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.0.6" id="contact-form-7-js"></script>
1323
1341
  <script type="text/javascript" id="load_comments_js-js-extra">
1324
1342
  /* <![CDATA[ */
1325
1343
  var wpdc = {"commentsURL":"https:\/\/opensource.org\/wp-json\/wp-discourse\/v1\/discourse-comments"};
@@ -1336,11 +1354,11 @@ wp.jpI18nLoader.state = {"baseUrl":"https://opensource.org/wp-content/languages/
1336
1354
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/gutenberg/build/url/index.min.js?ver=1203626ff9ccb36dc17c" id="wp-url-js"></script>
1337
1355
  <script type="text/javascript" id="jetpack-instant-search-js-before">
1338
1356
  /* <![CDATA[ */
1339
- var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23fdd7b9%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%22attachment%22%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A12%2C%22siteId%22%3A210318891%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%2C%22supporter%22%3A%7B%22singular_name%22%3A%22Supporter%22%2C%22name%22%3A%22Supporters%22%7D%2C%22board-member%22%3A%7B%22singular_name%22%3A%22Board%20Member%22%2C%22name%22%3A%22Board%20Members%22%7D%2C%22license%22%3A%7B%22singular_name%22%3A%22License%22%2C%22name%22%3A%22Licenses%22%7D%2C%22meeting-minutes%22%3A%7B%22singular_name%22%3A%22Meeting%20Minutes%22%2C%22name%22%3A%22Meeting%20Minutes%22%7D%2C%22press-mentions%22%3A%7B%22singular_name%22%3A%22Press%20mentions%22%2C%22name%22%3A%22Press%20mentions%22%7D%2C%22podcast%22%3A%7B%22singular_name%22%3A%22Episode%22%2C%22name%22%3A%22Episode%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-content%5C%2Fplugins%5C%2Fjetpack%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%22f6df4f2043%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Post%20Types%22%2C%22type%22%3A%22post_type%22%2C%22count%22%3A6%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22post_type_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D"));
1357
+ var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23fdd7b9%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%22attachment%22%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%22%2C%22locale%22%3A%22en-US%22%2C%22postsPerPage%22%3A12%2C%22siteId%22%3A210318891%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%2C%22supporter%22%3A%7B%22singular_name%22%3A%22Supporter%22%2C%22name%22%3A%22Supporters%22%7D%2C%22board-member%22%3A%7B%22singular_name%22%3A%22Board%20Member%22%2C%22name%22%3A%22Board%20Members%22%7D%2C%22license%22%3A%7B%22singular_name%22%3A%22License%22%2C%22name%22%3A%22Licenses%22%7D%2C%22meeting-minutes%22%3A%7B%22singular_name%22%3A%22Meeting%20Minutes%22%2C%22name%22%3A%22Meeting%20Minutes%22%7D%2C%22press-mentions%22%3A%7B%22singular_name%22%3A%22Press%20mentions%22%2C%22name%22%3A%22Press%20mentions%22%7D%2C%22podcast%22%3A%7B%22singular_name%22%3A%22Episode%22%2C%22name%22%3A%22Episode%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-content%5C%2Fplugins%5C%2Fjetpack%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fopensource.org%5C%2Fwp-json%5C%2F%22%2C%22apiNonce%22%3A%22533dd81915%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Afalse%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Post%20Types%22%2C%22type%22%3A%22post_type%22%2C%22count%22%3A6%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22post_type_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-4%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D"));
1340
1358
  /* ]]> */
1341
1359
  </script>
1342
1360
  <script type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?minify=false&amp;ver=a470649482eafd442e42" id="jetpack-instant-search-js"></script>
1343
- <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202514" id="jp-tracks-js"></script>
1361
+ <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="//stats.wp.com/w.js?ver=202516" id="jp-tracks-js"></script>
1344
1362
  <script type="text/javascript" id="osi-theme-scripts-js-before">
1345
1363
  /* <![CDATA[ */
1346
1364
  const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-ajax.php","action":"osi_license_db"}
@@ -1350,23 +1368,23 @@ const OSI_LICENSE_DB = {"ajaxURL":"https:\/\/opensource.org\/wp-admin\/admin-aja
1350
1368
  <script type="text/javascript" id="jetpack-stats-js-before">
1351
1369
  /* <![CDATA[ */
1352
1370
  _stq = window._stq || [];
1353
- _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"210318891\",\"post\":\"395\",\"tz\":\"0\",\"srv\":\"opensource.org\",\"hp\":\"atomic\",\"ac\":\"3\",\"amp\":\"0\",\"j\":\"1:14.5\"}") ]);
1371
+ _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"210318891\",\"post\":\"395\",\"tz\":\"0\",\"srv\":\"opensource.org\",\"hp\":\"atomic\",\"ac\":\"3\",\"amp\":\"0\",\"j\":\"1:14.6-a.1\"}") ]);
1354
1372
  _stq.push([ "clickTrackerInit", "210318891", "395" ]);
1355
1373
  /* ]]> */
1356
1374
  </script>
1357
- <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202514.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
1375
+ <script data-service="jetpack-statistics" data-category="statistics" type="text/plain" data-cmplz-src="https://stats.wp.com/e-202516.js" id="jetpack-stats-js" defer="defer" data-wp-strategy="defer"></script>
1358
1376
  <script type="text/javascript" id="cmplz-cookiebanner-js-extra">
1359
1377
  /* <![CDATA[ */
1360
- var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"81","version":"7.3.1","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/opensource.org\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"16","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/opensource.org\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=81","page_links":{"eu":{"cookie-statement":{"title":"","url":"https:\/\/opensource.org\/ai\/open-weights"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
1378
+ var complianz = {"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"","banner_version":"81","version":"7.4.0","store_consent":"","do_not_track_enabled":"1","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"1","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/opensource.org\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"","cookie_domain":"","current_policy_id":"16","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/opensource.org\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=81","page_links":{"eu":{"cookie-statement":{"title":"","url":"https:\/\/opensource.org\/blog\/key-insights-from-the-2025-state-of-open-source-report"}}},"tm_categories":"","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"};
1361
1379
  /* ]]> */
1362
1380
  </script>
1363
- <script defer type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1741804769" id="cmplz-cookiebanner-js"></script>
1381
+ <script defer type="text/javascript" src="https://149753425.v2.pressablecdn.com/wp-content/plugins/complianz-gdpr/cookiebanner/js/complianz.min.js?ver=1743792002" id="cmplz-cookiebanner-js"></script>
1364
1382
 
1365
- <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'92b19f0f38dfc871',t:'MTc0Mzc3ODI2MC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
1383
+ <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'93004515384d3aff',t:'MTc0NDYwMjk0OS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
1366
1384
  </html>
1367
1385
  <!--
1368
- generated 82 seconds ago
1369
- generated in 0.582 seconds
1386
+ generated 11 seconds ago
1387
+ generated in 0.659 seconds
1370
1388
  served from batcache in 0.003 seconds
1371
- expires in 218 seconds
1389
+ expires in 289 seconds
1372
1390
  -->
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@effekt-lang/effekt",
3
3
  "author": "Jonathan Brachthäuser",
4
- "version": "0.25.0",
4
+ "version": "0.26.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/effekt-lang/effekt.git"
@@ -1,57 +0,0 @@
1
- #ifndef EFFEKT_ARRAY_C
2
- #define EFFEKT_ARRAY_C
3
-
4
- /** We represent arrays like positive types.
5
- * The tag is 0 and the obj points to memory with the following layout:
6
- *
7
- * +--[ Header ]--+------+------------+
8
- * | Rc | Eraser | Size | Fields ... |
9
- * +--------------+------+------------+
10
- */
11
-
12
- void c_array_erase_fields(void *envPtr) {
13
- uint64_t *sizePtr = envPtr;
14
- struct Pos *dataPtr = envPtr + sizeof(uint64_t);
15
- uint64_t size = *sizePtr;
16
- for (uint64_t i = 0; i < size; i++) {
17
- erasePositive(dataPtr[i]);
18
- }
19
- }
20
-
21
- struct Pos c_array_new(const Int size) {
22
- void *objPtr = calloc(sizeof(struct Header) + sizeof(uint64_t) + size * sizeof(struct Pos), 1);
23
- struct Header *headerPtr = objPtr;
24
- uint64_t *sizePtr = objPtr + sizeof(struct Header);
25
- *headerPtr = (struct Header) { .rc = 0, .eraser = c_array_erase_fields, };
26
- *sizePtr = size;
27
- return (struct Pos) {
28
- .tag = 0,
29
- .obj = objPtr,
30
- };
31
- }
32
-
33
- Int c_array_size(const struct Pos arr) {
34
- uint64_t *sizePtr = arr.obj + sizeof(struct Header);
35
- uint64_t size = *sizePtr;
36
- erasePositive(arr);
37
- return size;
38
- }
39
-
40
- struct Pos c_array_get(const struct Pos arr, const Int index) {
41
- struct Pos *dataPtr = arr.obj + sizeof(struct Header) + sizeof(uint64_t);
42
- struct Pos element = dataPtr[index];
43
- sharePositive(element);
44
- erasePositive(arr);
45
- return element;
46
- }
47
-
48
- struct Pos c_array_set(const struct Pos arr, const Int index, const struct Pos value) {
49
- struct Pos *dataPtr = arr.obj + sizeof(struct Header) + sizeof(uint64_t);
50
- struct Pos element = dataPtr[index];
51
- erasePositive(element);
52
- dataPtr[index] = value;
53
- erasePositive(arr);
54
- return Unit;
55
- }
56
-
57
- #endif
@@ -1,47 +0,0 @@
1
- #ifndef EFFEKT_REF_C
2
- #define EFFEKT_REF_C
3
-
4
- /** We represent references like positive types.
5
- * The tag is 0 and the obj points to memory with the following layout:
6
- *
7
- * +--[ Header ]--------------+------------+
8
- * | ReferenceCount | Eraser | Field |
9
- * +--------------------------+------------+
10
- */
11
-
12
- void c_ref_erase_field(void *envPtr) {
13
- struct Pos *fieldPtr = envPtr;
14
- struct Pos element = *fieldPtr;
15
- erasePositive(element);
16
- }
17
-
18
- struct Pos c_ref_fresh(const struct Pos value) {
19
- void *objPtr = malloc(sizeof(struct Header) + sizeof(struct Pos));
20
- struct Header *headerPtr = objPtr;
21
- struct Pos *fieldPtr = objPtr + sizeof(struct Header);
22
- *headerPtr = (struct Header) { .rc = 0, .eraser = c_ref_erase_field, };
23
- *fieldPtr = value;
24
- return (struct Pos) {
25
- .tag = 0,
26
- .obj = objPtr,
27
- };
28
- }
29
-
30
- struct Pos c_ref_get(const struct Pos ref) {
31
- struct Pos *fieldPtr = ref.obj + sizeof(struct Header);
32
- struct Pos element = *fieldPtr;
33
- sharePositive(element);
34
- erasePositive(ref);
35
- return element;
36
- }
37
-
38
- struct Pos c_ref_set(const struct Pos ref, const struct Pos value) {
39
- struct Pos *fieldPtr = ref.obj + sizeof(struct Header);
40
- struct Pos element = *fieldPtr;
41
- erasePositive(element);
42
- *fieldPtr = value;
43
- erasePositive(ref);
44
- return Unit;
45
- }
46
-
47
- #endif