Zac Connelly wrote:
Getting the error that better_errors gem needs ruby 2.0.0+ but the readme says that 1.9.3 would be fine. That's probably okay in general but at the very least the readme should be updated!
Posts: 3
Participants: 2
Zac Connelly wrote:
Getting the error that better_errors gem needs ruby 2.0.0+ but the readme says that 1.9.3 would be fine. That's probably okay in general but at the very least the readme should be updated!
Posts: 3
Participants: 2
Mittineague wrote:
Having a Topic with a lot of member's posts might not be so common, and perhaps most would never expand the map to notice, and those that do might not care, but ......
(tested with Firefox, IE, Chrome and Opera Windows 7)
Is this an easy CSS fix? eg.
Posts: 6
Participants: 3
Tobias Eigen wrote:
take a look at screenshot below - the link to TOS is displayed with HTML code, doesn't work. I can't repro on try because the TOS is not linked during signup process.
Posts: 2
Participants: 2
Can I already use google font with discourse?
if not any idea on how to implement it?
Posts: 1
Participants: 1
if there's way to let user who just register post without activation?
Posts: 2
Participants: 2
Billdo O'reilly wrote:
While it's no big deal if a single video starts autoplaying. When there's multiple autoplay videos in the post they all start playing at once.
Posts: 3
Participants: 2
Sol wrote:
The new look of the Ajax icon is a bit strange on mobile as it is too near the top and why do I do not get it when the home page is loaded?
Kind regardPS: maybe you like it the way it is but no answer to my question why it is not visible when the home page is loading and why close it directly? I also tried to put the text in the topic but I made the screenshot on the road and mobile is flaky there sometimes
Posts: 3
Participants: 2
anonymous234 wrote:
I don't know if this is an existing feature or not, but it would be nice if older browsers that support Javascript but aren't really usable with Discourse could just see the same static content that you see with Javascript disabled, instead of a broken page or an error message. After all, the web was designed to gracefully degrade.
It seems like this should only take a few extra lines of Javascript at the top to check if the browser is blacklisted or lacks certain features, and then skip the rest of the script and "enable" the content from inside the < noscript> tag. I don't know if there's any particular reason why it would be harder than that.
For example, I use Opera Mobile Classic and Opera Mini on my phone (because they're much faster than Chrome). Opera Mobile sort of works for reading, but has too many bugs to really use any of the UI. Opera Mini just shows an error message saying that the browser is too old (funnily enough, you can actually navigate and read the forums via the built-in RSS reader :-P). While it is possible to disable javascript in these browsers, the option is very hard to find.
Posts: 1
Participants: 1
anonymous234 wrote:
Random example:
This gets translated to a < video style="position:absolute; top:0; left:0; width:100%; height:100%" controls="" autoplay="">< /video>
I assume this is not intended, because it can be really annoying. Either the autoplay attribute should be removed, or the "muted" attribute added.
Edit: It doesn't seem to work at all here. Apparently it just turns into a blank iframe. You should be able to see it here: http://what.thedailywtf.com/t/instagram-autoplay-with-sound/3704
Posts: 11
Participants: 5
Marco wrote:
In the following screenshot:
techAPJ replied to Webinsane and this is clear with the "replied to" icon.
Two messages below I (vulkanino) have replied to Webinsane but there's no evidence of this. Is this by design?Also, there are three possible reply commands:
- Reply as linked topic
- Reply to the post
- Reply to the topic
But for the last two actions the text is the same: Reply. Only the tooltip is different.
Wouldn't it be clearer if the text was different. like:
- Reply to post
- Reply to main topic
?
Posts: 3
Participants: 2
Mittineague wrote:
I like very much that "search by name / email" has been added to some Admin pages.
I could really benefit if some of the other Admin pages were sortable. So much so that I am looking into writing a userscript. It could be relatively easy for the Admin->Users->List (table) pages though not so easy for Admin->Logs (divs) by using jquery.sortable
Before I get too far into it however, I thought I would float the idea here in the chance that it could be considered as something to add to the Core.
Posts: 4
Participants: 3
Gerhard Schlager wrote:
Why does the categories drop-down list use the ►symbol when it's closed?
Since the arrow points to the right I'd expect it to open that way. But no, it's just a simple drop-down list. It uses the correct arrow when it's opened.
Posts: 5
Participants: 4
Molly Cushing wrote:
Immediately, I may have bit off more than I can chew in terms of setting this up by myself, but I want to give it a shot. This will likely be a long post because I want to give the most information I can, any help or advice would be greatly appreciated. And again, understand that I'm brand new to this side of things but want to learn. I followed this guide to set up my discourse community on digital ocean.
I cannot get discourse.ghostvolta.com to display my Discourse forum. The IP address, however, works.
I received my activation email and upon clicking it, the page cannot be displayed. The email address that sends my activation email says that it's from "info@unconfigured.discourse.org" I tried activating it with the IP address in place of the url, but I receive a message that says,
"Sorry, this account confirmation link is no longer valid. Perhaps your account is already active?"
When I try to log in with those credentials, it says that I haven't bee activated yet. And the vicious cycle continues.
There has to be some issue with DNS I assume, I just don't know where to find the issue. So I'll share what I have set up and hope that it's something easy I overlooked.
My host name was purchased from DreamHost. The subdomain information for discourse.ghostvolta.com on DreamHost looks like this:
I registered discourse.ghostvolta.com on DigitalOcean first. My configuration for that looks like this:
Have I typed something incorrectly? I'm so close and am so eager to use this forum but I don't know where to go next. Any help or suggestions would be greatly appreciated. If you need further information to help, I'm happy to provide it as well.
Posts: 7
Participants: 4
Gerhard Schlager wrote:
Steps to reproduce:
- Go to a category that has subcategories (like extensibility)
- Open the drop-down for the main category (e.g. click on )
- Open the drop-down for the subcategories (e.g. click on )
- Once more, open the drop-down for the main category.
Now both drop-down lists are shown. That looks quite ugly.
Expected result: Only the selected drop-down list should be visible.
Posts: 3
Participants: 2
Aran Jones wrote:
Hi folks - I'm sticking this in support rather than features because I'm not sure what the state of play is with it...
At the 'all categories' level, refreshing for new material is dealt with very well, with the tab alert and with the blue 'new stuff' bar at the head of the topic list.
Individual threads also update very neatly for new posts.
But as far as I can see, at the individual category level, the notification button is the only thing that gets refreshed when there's new content. There doesn't seem to be a tab alert or a 'new stuff' bar.
Am I missing something? Or needing to switch some settings? Or is this current behaviour and needs to be a feature request?
Posts: 3
Participants: 2
Sol wrote:
Why is there so much free space at the end of the categories page on mobile (Note 3 with Chrome / 4.4.2).?
Posts: 1
Participants: 1
Ilya Kuchaev wrote:
!!ArgumentError (wrong number of arguments (1 for 0)) > > /var/www/discourse/app/controllers/users/omniauth_callbacks_controller.rb:72:in `complete_response_data' /var/www/discourse/app/controllers/users/omniauth_callbacks_controller.rb:41:in `complete' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/implicit_render.rb:4:in `send_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/abstract_controller/base.rb:189:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/rendering.rb:10:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/abstract_controller/callbacks.rb:20:in `block in process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:113:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:166:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:229:in `block in halting' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:149:in `block in halting_and_conditional' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:86:in `run_callbacks' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/abstract_controller/callbacks.rb:19:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/rescue.rb:29:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/instrumentation.rb:31:in `block in process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:159:in `block in instrument' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications/instrumenter.rb:20:in `instrument' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/notifications.rb:159:in `instrument' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/instrumentation.rb:30:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/params_wrapper.rb:250:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.6/lib/active_record/railties/controller_runtime.rb:18:in `process_action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/abstract_controller/base.rb:136:in `process' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionview-4.1.6/lib/action_view/rendering.rb:30:in `process' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-mini-profiler-0.9.2/lib/mini_profiler/profiling_methods.rb:79:in `block in profile_method' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal.rb:196:in `dispatch' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_controller/metal.rb:232:in `block in action' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:82:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:82:in `dispatch' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:50:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:73:in `block in call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:59:in `each' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/journey/router.rb:59:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/routing/route_set.rb:678:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:404:in `call_app!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:362:in `callback_phase' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-oauth2-1.2.0/lib/omniauth/strategies/oauth2.rb:77:in `callback_phase' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:227:in `callback_call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:184:in `call!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:186:in `call!' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/strategy.rb:164:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/omniauth-1.2.2/lib/omniauth/builder.rb:59:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/conditionalget.rb:25:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/head.rb:11:in `call' /var/www/discourse/lib/middleware/anonymous_cache.rb:117:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/params_parser.rb:27:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/flash.rb:254:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/message_bus-0.9.6/lib/message_bus/rack/middleware.rb:55:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:225:in `context' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/session/abstract/id.rb:220:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/cookies.rb:560:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.6/lib/active_record/query_cache.rb:36:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/activesupport-4.1.6/lib/active_support/callbacks.rb:82:in `run_callbacks' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/callbacks.rb:27:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/remote_ip.rb:76:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/logster-0.1.6/lib/logster/middleware/reporter.rb:23:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.1.6/lib/rails/rack/logger.rb:38:in `call_app' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.1.6/lib/rails/rack/logger.rb:22:in `call' /var/www/discourse/config/initializers/quiet_logger.rb:10:in `call_with_quiet_assets' /var/www/discourse/config/initializers/silence_logger.rb:26:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/actionpack-4.1.6/lib/action_dispatch/middleware/request_id.rb:21:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/methodoverride.rb:21:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/runtime.rb:17:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/sendfile.rb:112:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-mini-profiler-0.9.2/lib/mini_profiler/profiler.rb:193:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.1.6/lib/rails/engine.rb:514:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.1.6/lib/rails/application.rb:144:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.1.6/lib/rails/railtie.rb:194:in `public_send' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/railties-4.1.6/lib/rails/railtie.rb:194:in `method_missing' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/builder.rb:138:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/urlmap.rb:65:in `block in call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/urlmap.rb:50:in `each' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/urlmap.rb:50:in `call' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:576:in `process_client' /var/www/discourse/lib/middleware/unicorn_oobgc.rb:95:in `process_client' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:670:in `worker_loop' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:525:in `spawn_missing_workers' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.8.3/lib/unicorn/http_server.rb:140:in `start' /var/www/discourse/vendor/bundle/ruby/2.0.0/gems/unicorn-4.8.3/bin/unicorn:126:in `<top (required)>' /var/www/discourse/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `load' /var/www/discourse/vendor/bundle/ruby/2.0.0/bin/unicorn:23:in `<main>'
Posts: 6
Participants: 5
Varun wrote:
I'm looking into the cheapest possible options for hosting Discourse and came across this deal from OVH for their VPS http://www.ovh.co.uk/vps/vps-classic.xml
The Classic 1 package seems to satisfy all the minimum requirements (1GB RAM etc) and is at a really great price...too great in fact, so I just wanted to check whether this would actually be suitable for running a relatively small Discourse instance and whether anyone has had some experience with them already
PS - I read somewhere that there are issues with Docker on OpenVZ so I'm open to using the Bitnami installer as well if it makes any difference
Posts: 5
Participants: 4
Marco wrote:
Just upgraded to 1.1.0.beta4
I don't know exacty what's changed but I love the user interface, it's more polished. More space between topics?Then I saw in the logs the following error:
PG::Error: ERROR: cached plan must not change result type : SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1
Should I worry?
Posts: 4
Participants: 4
Rodrigo Farcas wrote:
Sorry for this very newbie question, but I would like to know where should I see the changelog from one release to another?
Thanks!
Posts: 2
Participants: 2