class: center, middle, inverse, title-slide # 2.6 — Long Run Industry Equilibrium ## ECON 306 • Microeconomic Analysis • Spring 2021 ### Ryan Safner
Assistant Professor of Economics
safner@hood.edu
ryansafner/microS21
microS21.classes.ryansafner.com
--- class: inverse # Outline ### [Firm's *Long Run* Supply Decisions](#3) ### [Market Entry and Exit](#14) ### [Deriving the Industry Supply Curve](#20) ### [Zero Economic Profits & Economic Rents](#28) ### [Supply Functions](#46) ### [Price Elasticity of Supply](#52) --- class: inverse, center, middle # Firm's *Long Run* Supply Decisions --- # Firm Decisions in the Long Run I .pull-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-1-1.png" width="504" style="display: block; margin: auto;" /> ] .pull-right[ - `\(\color{orange}{AC(q)_{min}}\)` at a market price of $6 - At $6, the firm earns .hi["normal economic profits"] (of 0) - At any market price *below* $6.00, firm earns **losses** - Short Run: firm shuts down if `\(p<AVC(q)\)` - At any market price *above* $6.00, firm earns .hi["supernormal profits"] (>0) ] --- # Firm Supply Decisions in the Short Run vs. Long Run .pull-left[ - .hi-purple[Short run]: firms that shut down `\((q^*=0)\)` stuck in market, incur fixed costs `\(\pi=-f\)` ] .pull-right[ .center[ ] ] --- # Firm Supply Decisions in the Short Run vs. Long Run .pull-left[ - .hi-purple[Short run]: firms that shut down `\((q^*=0)\)` stuck in market, incur fixed costs `\(\pi=-f\)` - .hi-purple[Long run]: firms earning losses `\((\pi < 0)\)` can .hi[exit] the market and earn `\(\pi=0\)` - No more fixed costs, firms can sell/abandon `\(f\)` at `\(q^*=0\)` ] .pull-right[ .center[ ![](../images/goingoutofbusiness.jpg) ] ] --- # Firm Supply Decisions in the Short Run vs. Long Run .pull-left[ - .hi-purple[Short run]: firms that shut down `\((q^*=0)\)` stuck in market, incur fixed costs `\(\pi=-f\)` - .hi-purple[Long run]: firms earning losses `\((\pi < 0)\)` can .hi[exit] the market and earn `\(\pi=0\)` - No more fixed costs, firms can sell/abandon `\(f\)` at `\(q^*=0\)` - Entrepreneurs not *currently* in market can .hi[enter] and produce, if entry would earn them `\(\pi>0\)` ] .pull-right[ .center[ ![](../images/goingoutofbusiness.jpg) ![:scale 75%](../images/entry.jpg) ] ] --- # Firm Supply Decisions in the Short Run vs. Long Run .pull-left[ .center[ ![:scale 75%](../images/perfectcompetitionentrymeme.jpg) ] ] -- .pull-right[ .center[ ![:scale 55%](../images/perfectcompetitionsnapchat.png) ] ] --- # Firm's Long Run Supply: Visualizing .pull-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-2-1.png" width="504" style="display: block; margin: auto;" /> ] .pull-right[ .hi-red[When `\\(p<AVC\\)`] - Profits are *negative* - .hi-purple[Short run]: **shut down** production - Firm loses more `\(\pi\)` by producing than by not producing - .hi-purple[Long run]: firms in industry **exit** the industry - *No* new firms will *enter* this industry ] --- # Firm's Long Run Supply: Visualizing .pull-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-3-1.png" width="504" style="display: block; margin: auto;" /> ] .pull-right[ .hi-yellow[When `\\(AVC<p<AC\\)`] - Profits are *negative* - .hi-purple[Short run]: **continue** production - Firm loses *less* `\(\pi\)` by producing than by *not* producing - .hi-purple[Long run]: firms in industry **exit** the industry - *No* new firms will *enter* this industry ] --- # Firm's Long Run Supply: Visualizing .pull-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-4-1.png" width="504" style="display: block; margin: auto;" /> ] .pull-right[ .hi-green[When `\\(AC<p\\)`] - Profits are *positive* - .hi-purple[Short run]: **continue** production - Firm earning profits - .hi-purple[Long run]: firms in industry **stay** in industry - **New** firms will **enter** this industry ] --- # Production Rules, Updated: .smaller[ **1. Choose `\(q^*\)` such that `\(MR(q)=MC(q)\)`** **2. Profit `\(\pi=q[p-AC(q)]\)`** **3. Shut down in _short run_ if `\(p<AVC(q)\)`** **4. Exit in _long run_ if `\(p<AC(q)\)`** ] --- class: inverse, center, middle # Market Entry and Exit --- # Exit, Entry, and Long Run Industry Equilibrium I .pull-left[ - Now we must combine .hi-purple[optimizing] *individual* firms with *market-wide* adjustment to .hi-purple[equilibrium] - Since `\(\pi = [p-AC(q)]q\)`, in the **long run**, profit-seeking firms will: ] .pull-right[ ] --- # Exit, Entry, and Long Run Industry Equilibrium I .pull-left[ - Now we must combine .hi-purple[optimizing] *individual* firms with *market-wide* adjustment to .hi-purple[equilibrium] - Since `\(\pi = [p-AC(q)]q\)`, in the **long run**, profit-seeking firms will: - .hi-purple[Enter] markets where `\(p>AC(q)\)` ] .pull-right[ .center[ ![:scale 75%](../images/entry.jpg) ] ] --- # Exit, Entry, and Long Run Industry Equilibrium I .pull-left[ - Now we must combine .hi-purple[optimizing] *individual* firms with *market-wide* adjustment to .hi-purple[equilibrium] - Since `\(\pi = [p-AC(q)]q\)`, in the **long run**, profit-seeking firms will: - .hi-purple[Enter] markets where `\(p>AC(q)\)` - .hi-purple[Exit] markets where `\(p<AC(q)\)` ] .pull-right[ .center[ ![:scale 75%](../images/entry.jpg) ![](../images/goingoutofbusiness.jpg) ] ] --- # Exit, Entry, and Long Run Industry Equilibrium II .pull-left[ - .hi-purple[Long-run equilibrium]: entry and exit ceases when .hi-purple[`\\(p=AC(q)\\)`] for all firms, implying .hi-purple[normal economic profits] of .hi-purple[`\\(\pi=0\\)`] ] .pull-right[ .center[ ![:scale 100%](../images/breakeven.jpg) ] ] --- # Exit, Entry, and Long Run Industry Equilibrium II .pull-left[ - .hi-purple[Long-run equilibrium]: entry and exit ceases when .hi-purple[`\\(p=AC(q)\\)`] for all firms, implying .hi-purple[normal economic profits] of .hi-purple[`\\(\pi=0\\)`] - .hi-purple[Zero Economic Profits Theorem]: **long run economic profits for all firms in a _competitive_ industry are 0** - Firms must earn an *accounting* profit to stay in business ] .pull-right[ .center[ ![:scale 100%](../images/breakeven.jpg) ] ] --- class: inverse, center, middle # Deriving the Industry Supply Curve --- # The Industry Supply Curve - .hi[Industry supply curve]: horizontal sum of all individual firms' supply curves - recall: `\((MC(q)\)` curve above `\(AVC_{min})\)` (shut down price) - To keep it simple on the following slides: - assume no fixed costs, so `\(AC(q)=AVC(q)\)` - then industry supply curve is sum of individual `\(MC(q)\)` curves above `\(AC(q)_{min}\)` --- # Industry Supply Curves (Identical Firms) .tri-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-5-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-middle[ <img src="2.6-slides_files/figure-html/unnamed-chunk-6-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-7-1.png" width="504" style="display: block; margin: auto;" /> ] <br> <br> <br> <br> <br> <br> <br> <br> -- .smallest[ - .red[Industry supply curve] is the horizontal sum of all individual firm's supply curves - Which are each firm's marginal cost curve above its breakeven price ] --- # Industry Supply Curves (Identical Firms) .tri-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-8-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-middle[ <img src="2.6-slides_files/figure-html/unnamed-chunk-9-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-10-1.png" width="504" style="display: block; margin: auto;" /> ] <br> <br> <br> <br> <br> <br> <br> <br> .smallest[ - .blue[Industry demand curve] (where equal to supply) sets market price, demand for firms ] --- # Industry Supply Curves (Identical Firms) .tri-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-11-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-middle[ <img src="2.6-slides_files/figure-html/unnamed-chunk-12-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-13-1.png" width="504" style="display: block; margin: auto;" /> ] <br> <br> <br> <br> <br> <br> <br> <br> .smallest[ - **Short Run**: each firm is earning .hi-green[profits] `\(p>AC(q)\)` - **Long run**: induces entry by firm 3, firm 4, `\(\cdots\)`, firm `\(n\)` ] -- .smallest[ - .hi[Long run industry equilibrium]: ] --- # Industry Supply Curves (Identical Firms) .tri-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-14-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-middle[ <img src="2.6-slides_files/figure-html/unnamed-chunk-15-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-16-1.png" width="504" style="display: block; margin: auto;" /> ] <br> <br> <br> <br> <br> <br> <br> <br> .smallest[ - **Short Run**: each firm is earning .hi-green[profits] `\(p>AC(q)\)` - **Long run**: induces entry by firm 3, firm 4, `\(\cdots\)`, firm `\(n\)` - .hi[Long run industry equilibrium]: `\(p=AC(q)_{min}\)`, `\(\pi=0\)` at `\(p=\)` $6; supply becomes more **elastic** ] --- class: inverse, center, middle # Zero Economic Profits & Economic Rents --- # Back to Zero Economic Profits .pull-left[ - Recall, we've essentially defined a .hi-purple[firm] as a completely .hi[replicable recipe] (.hi[production function]) of resources `$$q=f(L,K)$$` - **“Any idiot”** can enter market, buy required `\((L,K)\)` at prices `\((w,r)\)`, produce `\(q^*\)` at market price `\(p\)` and earn the market rate of `\(\pi\)` ] .pull-right[ .center[ ![:scale 70%](../images/inputoutput.png) ] ] --- # Back to Zero Economic Profits .pull-left[ - Zero long run economic profit `\(\neq\)` industry *disappears*, just **stops growing** - Less attractive to entrepreneurs & start ups to enter than other, more profitable industries - These are **mature** industries (again, often commodities), the backbone of the economy, just not *sexy*! ] .pull-right[ .center[ ![](../images/commodities.png) ] ] --- # Back to Zero Economic Profits .pull-left[ - All factors being paid their market price - i.e. their .hi-purple[opportunity cost] - what that they could earn *elsewhere* in economy - Firms earning .hi-purple[normal market rate of return] - No *excess* rewards (economic profits) to attract *new* resources into the industry, nor *losses* to bleed resources out of industry ] .pull-right[ .center[ ![:scale 100%](../images/breakeven.jpg) ] ] --- # Back to Zero Economic Profits .pull-left[ - But we've so far been imagining a market where every firm is *identical*, just a recipe “any idiot” can copy - What about if firms have *different* technologies or costs? ] .pull-right[ .center[ ![:scale 70%](../images/inputoutput.png) ] ] --- # Industry Supply Curves (*Different* Firms) I .pull-left[ .smaller[ - Firms have **different technologies/costs** due to relative differences in: - Managerial talent - Worker talent - Location - First-mover advantage - Technological secrets/IP - License/permit access - Political connections - Lobbying - Let's derive .hi-red[industry supply curve] again, and see if this may affact profits ] ] .pull-right[ .center[ ![](../images/competerents.jpg) ] ] --- # Industry Supply Curves (*Different* Firms) II .tri-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-17-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-middle[ <img src="2.6-slides_files/figure-html/unnamed-chunk-18-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-19-1.png" width="504" style="display: block; margin: auto;" /> ] <br> <br> <br> <br> <br> <br> <br> <br> -- - .red[Industry supply curve] is the horizontal sum of all individual firm's supply curves - Which are each firm's marginal cost curve above its breakeven price --- # Industry Supply Curves (*Different* Firms) II .tri-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-20-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-middle[ <img src="2.6-slides_files/figure-html/unnamed-chunk-21-1.png" width="504" style="display: block; margin: auto;" /> ] .tri-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-22-1.png" width="504" style="display: block; margin: auto;" /> ] <br> <br> <br> <br> <br> <br> <br> <br> -- .smallest[ - .blue[Industry demand curve] (where equal to supply) sets market price, demand for firms ] -- .smallest[ - .hi[Long run industry equilibrium]: `\(p=AC(q)_{min}\)`, `\(\pi=0\)` for .hi-purple[marginal (highest cost) firm] (Firm 2) ] -- .smallest[ - Firm 1 (lower cost) appears to be earning .hi-green[profits]... ] --- # Economic Rents and Zero Economic Profits I .pull-left[ .center[ ![:scale 80%](../images/rentvictory.jpg) ] ] .pull-right[ - With differences between firms, .hi-purple[**long-run equilibrium** `\\(p=AC(q)_{min}\\)` of the _marginal (highest-cost)_ firm] - If `\(p>AC(q)\)` for that firm, would induce *more* entry into industry! ] --- # Economic Rents and Zero Economic Profits I .pull-left[ .center[ ![:scale 80%](../images/rentvictory.jpg) ] ] .pull-right[ - .hi-purple[“Inframarginal” (lower-cost)] firms earn .hi[economic rents] - returns **higher** than their opportunity cost (what is needed to bring them into *this* industry) - Economic rents arise from **relative differences** between firms - actually using *different* inputs! ] --- # Economic Rents and Zero Economic Profits III .pull-left[ .center[ ![:scale 80%](../images/rentvictory.jpg) ] ] .pull-right[ - .hi-purple[Some factors are relatively scarce _in the whole economy_] - (talent, location, secrets, IP, licenses, being first, political favoritism) - **Inframarginal** firms that use these scarce factors gain an *advantage* - It would seem these firms earn profits, as they have loewr costs... - ...But what will happen to the prices for the scarce factors over time? ] --- # Economic Rents and Zero Economic Profits IV .pull-left[ .center[ ![:scale 80%](../images/jobsiphone.jpg) ] ] .pull-right[ - Rival firms willing to pay for rent-generating factor to gain advantage - Competition over acquiring the scarce factors **push up their prices** - i.e. costs to firms of using the factor! - .hi-purple[Rents are included in the opportunity cost (price) for inputs over long run] - Must pay a factor enough to keep it *out of other uses* ] --- # Economic Rents and Zero Economic Profits V .pull-left[ .center[ ![:scale 80%](../images/jobsiphone.jpg) ] ] .pull-right[ - **Economic rents `\(\neq\)` economic profits!** - Rents actually *reduce* profits! - Firm does not earn the rents, they raise firm's costs and squeeze out profits! - .hi-purple[Scarce factor owners] (workers, landowners, inventors, etc) .hi-purple[earn the rents as higher income for their scarce services] (wages, rents, interest, royalties, etc). ] --- # Recall: Accounting vs. Economic Point of View .pull-left[ .smallest[ - Recall .hi-purple[“economic point of view”]: - Producing *your* product pulls scarce resources *out of other productive uses* in the economy - **Profits attract resources**: pulled out of other (less valuable) uses - **Losses repel resources**: pulled away to other (more valuable) uses - **Zero profits** `\(\implies\)` resources stay where they are - .hi-purple[Optimal social use of resources]! ] ] .pull-right[ .center[ ![](../images/costrevenue.jpg) ![](../images/disappear.jpg) ] ] --- class: inverse, center, middle # Supply Functions --- # Supply Function .pull-left[ - .hi[Supply function] relates quantity to price .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt5[ .green[**Example**]: `$$q=2p-4$$` ] - Not graphable (wrong axes)! ] .pull-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-23-1.png" width="504" style="display: block; margin: auto;" /> ] --- # Inverse Supply Function .pull-left[ - .hi[*Inverse* supply function] relates price to quantity - Take supply function, solve for `\(p\)` .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt5[ .green[**Example**]: `$$p=2+0.5q$$` ] - Graphable (price on vertical axis)! ] -- .pull-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-24-1.png" width="504" style="display: block; margin: auto;" /> ] --- # Inverse Supply Function .pull-left[ .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt5[ .green[**Example**]: `$$p=2+0.5q$$` ] - Slope: 0.5 - Vertical intercept called the .hi["Choke price"]: price where `\\(q_S=0\\)` ($2), just low enough to discourage *any* sales ] .pull-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-25-1.png" width="504" style="display: block; margin: auto;" /> ] --- # Inverse Supply Function .pull-left[ - Read two ways: - Horizontally: at any given price, how many units firm wants to sell - Vertically: at any given quantity, the .hi[minimum willingness to accept (WTA)] for that quantity ] .pull-right[ <img src="2.6-slides_files/figure-html/unnamed-chunk-26-1.png" width="504" style="display: block; margin: auto;" /> ] --- class: inverse, center, middle # Price Elasiticity of Supply --- # Price Elasticity of Supply .pull-left[ - .hi[Price elasticity of supply] measures *how much* (in %) quantity supplied changes in response to a (1%) change in price `$$\epsilon_{q_S,p} = \frac{\% \Delta q_S}{\% \Delta p}$$` ] .pull-right[ .center[ ![:scale 100%](../images/elastic.jpg) ] ] --- # Price Elasticity of Supply: Elastic vs. Inelastic `$$\epsilon_{q_S,p} = \frac{\% \Delta q_S}{\% \Delta p}$$` | | "Elastic" | "Unit Elastic" | "Inelastic" | |-----------------|-----------|----------------|------------| | **Intuitively**: | *Large* response | Proportionate response | *Little* response | | **Mathematically**: | `\(\epsilon_{q_s,p} > 1\)` | `\(\epsilon_{q_s,p} = 1\)` | `\(\epsilon_{q_s,p} < 1\)` | | | Numerator `\(>\)` Denominator | Numerator `\(=\)` Denominator | Numerator `\(<\)` Denominator | | **A 1% change in `\(p\)`** | More than 1% change in `\(q_S\)` | 1% change in `\(q_S\)` | Less than 1% change in `\(q_S\)` | --- # Visualizing Price Elasticity of Supply .center[ .smallest[ An identical 100% price increase on an: ] ] .pull-left[ .center[ .smallest[ "Inelastic" Supply Curve ] ] <img src="2.6-slides_files/figure-html/unnamed-chunk-27-1.png" width="504" style="display: block; margin: auto;" /> ] .pull-right[ .center[ .smallest[ "Elastic" Supply Curve ] ] <img src="2.6-slides_files/figure-html/unnamed-chunk-28-1.png" width="504" style="display: block; margin: auto;" /> ] --- # Price Elasticity of Supply Formula .pull-left[ `$$\epsilon_{q,p} = \mathbf{\frac{1}{slope} \times \frac{p}{q}}$$` - First term is the inverse of the slope of the inverse supply curve (that we graph)! - To find the elasticity at any point, we need 3 things: 1. The price 2. The associated quantity supplied 3. The slope of the (inverse) supply curve ] .pull-right[ .center[ ![:scale 100%](../images/elastic.jpg) ] ] --- # Example .bg-washed-green.b--dark-green.ba.bw2.br3.shadow-5.ph4.mt5[ .green[**Example**]: The supply of bicycle rentals in a small town is given by: `$$q_S=10p-200$$` ] 1. Find the inverse supply function. 2. What is the price elasticity of supply at a price of $25.00? 3. What is the price elasticity of supply at a price of $50.00? --- # Price Elasticity of Supply Changes Along the Curve .pull-left[ <img src="2.6-slides_files/figure-html/unnamed-chunk-29-1.png" width="504" style="display: block; margin: auto;" /> ] .pull-right[ `$$\epsilon_{q,p} = \mathbf{\frac{1}{slope} \times \frac{p}{q}}$$` - Elasticity `\(\neq\)` slope (but they are related)! - Elasticity changes along the supply curve - Often gets *less* elastic as `\(\uparrow\)` price `\((\uparrow\)` quantity) - Harder to supply more ] --- # Determinants of Price Elasticity of Supply I .pull-left[ .smallest[ .hi-purple[What determines how responsive your selling behavior is to a price change?] - .hi[The faster (slower) costs increase with output] `\(\implies\)` less (more) elastic supply - Mining for natural resources vs. automated manufacturing - Smaller (larger) .hi[share of market for inputs] `\(\implies\)` more (less) elastic - Will your suppliers raise the price much if you buy more? - How much competition is there in your input markets? ] ] .pull-right[ .center[ ![:scale 100%](../images/elastic.jpg) ] ] --- # Determinants of Price Elasticity of Supply II .pull-left[ .hi-purple[What determines how responsive your selling behavior is to a price change?] - More (less) .hi[time to adjust] to price changes `\(\implies\)` more (less) elastic - Supply of oil today vs. oil in 10 years ] .pull-right[ .center[ ![:scale 100%](../images/elastic.jpg) ] ] --- # Price Elasticity of Supply: Examples .pull-left[ .center[ [![](../images/corona_mask_import.png)](https://reason.com/2020/03/31/america-could-import-countless-more-face-masks-if-federal-regulators-would-get-out-of-the-way/) ] ] .pull-right[ .smallest[ <blockquote class="twitter-tweet"><p lang="en" dir="ltr">A report by <a href="https://twitter.com/PIIE?ref_src=twsrc%5Etfw">@PIIE</a> found an N-95 respirator mask still faces a 7% U.S. tariff. <br><br>Remaining US duties include<br>• 5% on hand sanitizer<br>• 4.5% on protective medical clothing<br>• 2.5% on goggles<br>• 6.4-8.3% on other medical headwear<br><br>By <a href="https://twitter.com/ABehsudi?ref_src=twsrc%5Etfw">@ABehsudi</a> 1/<a href="https://t.co/LcxE0FFlXO">https://t.co/LcxE0FFlXO</a></p>— Chad P. Bown (@ChadBown) <a href="https://twitter.com/ChadBown/status/1252602275098492928?ref_src=twsrc%5Etfw">April 21, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ] ] --- # Price Elasticity of Supply: Examples .pull-left[ .center[ [![](../images/fdahandsanitizer.png)](https://reason.com/2020/04/02/the-fda-is-making-it-much-much-harder-for-distilleries-to-produce-hand-sanitizer/) ] ] .pull-right[ .center[ [![](../images/masksshortage.png)](https://www.flexport.com/blog/why-there-arent-enough-masks-and-how-to-get-more/) ] ] --- # Price Elasticity of Supply: Examples .pull-left[ .center[ [![](../images/mrhousingelasticity.png)](https://marginalrevolution.com/marginalrevolution/2019/08/the-supply-of-housing-has-become-less-elastic.html) ] ]